//QUOTE FORM VALIDATION///////////
function validName() 
{
       if (document.quote_form.name.value != "") {
            return true;
       } else {
            alert("Please fill in your name");
            return false;
       }
}

function validEmail() 
{
       if (document.quote_form.email.value != "") {
            return true;
       } else {
            alert("Please fill in your email address");
            return false;
       }
}
  
function validCompany() 
{
       if (document.quote_form.company.value != "") {
            return true;
       } else {
            alert("Please tell us who you work for");
            return false;
       }
}

function validTelephone() 
{
       if (document.quote_form.telephone.value != "") {
            return true;
       } else {
            alert("Please fill out a contact number");
            return false;
       }
}

function formatClicked(index) 
{
       return document.quote_form.format[index].checked;
}

function validFormat() 
{
       if (formatClicked(0) ||
			formatClicked(1) ||
            formatClicked(2) ) {
            return true;
       } else {
            alert("Please tell us if you would like Broadsheet, Tabloid or Quarterfold");
            return false;
       }      
}

function validPages() 
{
       if (document.quote_form.pages.value != "") {
            return true;
       } else {
            alert("Please tell us how many pages you want");
            return false;
       }
}

function validQuantity() 
{
       if (document.quote_form.quantity.value != "") {
            return true;
       } else {
            alert("Please tell us how many copies you want");
            return false;
       }
}

function frequencyClicked(index) 
{
       return document.quote_form.frequency[index].checked;
}

function validFrequency() 
{
       if (frequencyClicked(0) ||
            frequencyClicked(1) ||
            frequencyClicked(2) ||
			frequencyClicked(3) ||
			frequencyClicked(4) ||
            frequencyClicked(5) ) {
            return true;
       } else {
            alert("Please tell us how often you would like it");
            return false;
       }      
}

function paperChecked(index) 
{
       return document.quote_form.paper[index].checked;
}

function validPaper() 
{
       if ( paperChecked(0) 
            || paperChecked(1)
			|| paperChecked(2)
			|| paperChecked(3)
            || paperChecked(4) ) {
            return true;
       } else {
            alert("Please tell us what paper stock you require");
            return false;
       }            
}
//Validation the quote form///////////
function validate_quote_form() 
{
       if( validName() &&
           validEmail() &&
		   validCompany() &&
		   validTelephone() &&
           validFormat() &&
		   validPages() &&
		   validQuantity() &&
		   validFrequency() &&
		   validPaper()
            ) 
		{         
            return true;
        } else {
            return false;
        }
}

//CONTACT FORM VALIDATION///////////
function validContactName() 
{
       if (document.email_query_form.contactname.value != "") {
            return true;
       } else {
            alert("Please fill in your name");
            return false;
       }
}

function validContactEmail() 
{
       if (document.email_query_form.contactemail.value != "") {
            return true;
       } else {
            alert("Please fill in your email address");
            return false;
       }
}
  
function validContactMessage() 
{
       if (document.email_query_form.contactmessage.value != "") {
            return true;
       } else {
            alert("Please fill out a message");
            return false;
       }
}
//Validation the contact form///////////
function validate_email_form ( )
{
	       if( validContactName() &&
           validContactEmail() &&
		   validContactMessage()
            ) 
		{         
            return true;
        } else {
            return false;
        }
}

//repopulate contact form
function repopulateContactForm(){
	
	var query = deserialiseQueryString(location.search);
	
	if(query != false){
		 
		 // populate fields
		 var fields = ['name', 'email', 'telephone', 'message'];
		 for(i = 0; i < fields.length; i++){
			 if(query[fields[i]] != null) document.email_query_form['contact' + fields[i]].value = query[fields[i]];
		 }
		 
		 if(query.invalid != null) document.getElementById('captchaMessage').className = '';
		 
	}
}

//repopulate quote form
function repopulateQuoteForm(){
	
	var query = deserialiseQueryString(location.search);
	
	if(query != false){
		 
		 // populate fields
		 var fields = ['name', 'email', 'company', 'address', 'telephone', 'fax', 'pages', 'quantity', 'requirements', 'format'];
		 for(i = 0; i < fields.length; i++){
			 if(query[fields[i]] != null) document.quote_form[fields[i]].value = query[fields[i]];
		 }
		 
		 // checkbox
		 var check = document.quote_form.full_colour;
		 check.checked = (check.value == query.full_colour);
		 
		 // populate radio buttons
		 var groups = ['frequency', 'mailroom'];
		 for(i = 0; i < groups.length; i++){
			 var check = document.quote_form[groups[i]];
		   for(c = 0; c < check.length; c++){
			   check[c].checked = (check[c].value == query[groups[i]]);
			 }
		 }
		 
		 // multi-value fields
		 var groups = ['format', 'paper', 'transmission'];
		 for(i = 0; i < groups.length; i++){
			 var check = document.quote_form[groups[i]];
			 var vals = query[groups[i]].split(', ');
		   for(c = 0; c < check.length; c++){
				 for(v = 0; v < vals.length; v++){
						if(check[c].value == vals[v]){
							check[c].checked = true;
						}
				 }
			 }
		 }
		 
		 if(query.invalid != null) document.getElementById('captchaMessage').className = '';
		 
	}
}

function urlDecode(str){
	return unescape(str.replace(/\+/g, ' '));
}

function deserialiseQueryString(qString){
	
		if(qString.charAt(0) != '?'){
			return false;
		}
	
    // deserialise query string
		var vars = qString.substr(1).split('&');
		var query = {};
		for(var i = 0; i < vars.length; i++){
			var pair = vars[i].split('=');
			if(pair.length == 2) query[urlDecode(pair[0])] = urlDecode(pair[1]);
		}
	
		return query;
}