// JavaScript Document

function validate_form()
{
	var bl_NameOk = false;
 
	var txtCompanyName = document.all ? document.all["txtCompanyName"] : document.getElementById("txtCompanyName");
	var msgCompanyName = document.all ? document.all["msgCompanyName"] : document.getElementById("msgCompanyName");
 
	bl_NameOk = validate_required_field(txtCompanyName, msgCompanyName);
	msgCompanyName.style.display = bl_NameOk ? "none" : "";
	
	/* Contact Details */
	var bl_ContactOk = false;
	
	var lstPrefix = document.all ? document.all["lstPrefix"] : document.getElementById("lstPrefix");
	var msgPrefix = document.all ? document.all["msgPrefix"] : document.getElementById("msgPrefix");
	var txtFirstname = document.all ? document.all["txtFirstname"] : document.getElementById("txtFirstname");
	var txtLastname = document.all ? document.all["txtLastname"] : document.getElementById("txtLastname");
 
 
	bl_ContactOk = validate_contact(lstPrefix, txtFirstname, txtLastname, msgPrefix);
	msgPrefix.style.display = bl_ContactOk ? "none" : "";
	
	/* Address Field */
	var bl_AddressOk = false;
	var txtAddress = document.all ? document.all["txtAddress"] : document.getElementById("txtAddress");
	var msgAddress = document.all ? document.all["msgAddress"] : document.getElementById("msgAddress");

 	bl_AddressOk = validate_required_field(txtAddress, msgAddress);
	msgAddress.style.display = bl_AddressOk ? "none" : "";
	 
	   
	
	/* Price */
	var bl_PriceOk = false;
	var txtPrice = document.all ? document.all["txtPrice"] : document.getElementById("txtPrice");
	var msgPrice = document.all ? document.all["msgPrice"] : document.getElementById("msgPrice");
 
	bl_PriceOk = validate_required_field(txtPrice, msgPrice);
	msgPrice.style.display = bl_PriceOk ? "none" : "";
	
	/* Authorisation Details */
	var bl_AuthOk = false;
	
	var lstAuthPrefix = document.all ? document.all["lstAuthPrefix"] : document.getElementById("lstAuthPrefix");
	var msgAuthorisedContact = document.all ? document.all["msgAuthorisedContact"] : document.getElementById("msgAuthorisedContact");
	var txtAuthFirstname = document.all ? document.all["txtAuthFirstname"] : document.getElementById("txtAuthFirstname");
	var txtAuthLastname = document.all ? document.all["txtAuthLastname"] : document.getElementById("txtAuthLastname");
 
 	bl_AuthOk = validate_contact(lstAuthPrefix, txtAuthFirstname, txtAuthLastname, msgAuthorisedContact);
	msgAuthorisedContact.style.display = bl_AuthOk ? "none" : "";
	
 
 	var bl_JournalOk = false;
 
 	var grpDescriptionWith = document.all ? document.all["grpDescriptionWith"] : document.getElementById("grpDescriptionWith");
 	var grpDescriptionWithout = document.all ? document.all["grpDescriptionWithout"] : document.getElementById("grpDescriptionWithout");	
	var msgJournal = document.all ? document.all["msgJournal"] : document.getElementById("msgJournal");
	 
	bl_JournalOk = validate_journal(grpDescriptionWith, grpDescriptionWithout, msgJournal);
	msgJournal.style.display = bl_JournalOk ? "none" : "";
	
	var bl_TermsOk = false;
 
 	var chkTerms = document.all ? document.all["chkTerms"] : document.getElementById("chkTerms");
 	var msgCheckbox = document.all ? document.all["msgCheckbox"] : document.getElementById("msgCheckbox");	
	 
	bl_TermsOk = validate_terms(chkTerms, msgCheckbox);
	msgCheckbox.style.display = bl_TermsOk ? "none" : "";
	
	var bl_EmailOk = false;

	var txtEmail = document.all ? document.all["txtEmail"] : document.getElementById("txtEmail");
 	var msgEmail = document.all ? document.all["msgEmail"] : document.getElementById("msgEmail");	
 
 	
	bl_EmailOk = validate_email(txtEmail, msgEmail);
	msgEmail.style.display = bl_EmailOk ? "none" : "";
	
	/* Fax */
	var bl_TitleOk = false;
	var txtBusinessTitle = document.all ? document.all["txtBusinessTitle"] : document.getElementById("txtBusinessTitle");
	var msgBusinessTitle = document.all ? document.all["msgBusinessTitle"] : document.getElementById("msgBusinessTitle");
 
	bl_TitleOk = validate_required_field(txtBusinessTitle, msgBusinessTitle);
	msgBusinessTitle.style.display = bl_TitleOk ? "none" : "";

	 return ((bl_TitleOk && bl_EmailOk && bl_NameOk && bl_TermsOk && bl_JournalOk && bl_AuthOk &&  bl_PriceOk && bl_AddressOk && bl_ContactOk && bl_NameOk));


}

 function validate_email(textField, messageField)
 {
	var error_message = "";
	
		var rgxEmail = new RegExp("^([a-zA-Z0-9_\\-])+(\\.([a-zA-Z0-9_\\-])+)*@((\\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\\]))|((([a-zA-Z0-9])+(([\\-])+([a-zA-Z0-9])+)*\\.)+([a-zA-Z])+(([\\-])+([a-zA-Z0-9])+)*))$");

	if (!rgxEmail.test(textField.value))
	{
		error_message += ((error_message!="")?"\r\n":"") + "Invalid email address";
	}
	set_message(messageField, error_message);
	return error_message=="";
 }

 function validate_terms(checkbox, messageField)
 {
	var error_message = "";

	if (!checkbox.checked)
	{
		error_message += ((error_message!="")?"\r\n":"") + "Please agree to our terms & conditions.";
	}
	set_message(messageField, error_message);
	return error_message=="";
 }

 function validate_journal(radio1, radio2, messageField)
 {
	var error_message = "";

	if (!(radio1.checked || radio2.checked))
	{
		error_message += ((error_message!="")?"\r\n":"") + "Please make a choice";
	}
	set_message(messageField, error_message);
	return error_message=="";
 }
  
 
 function validate_required_field(textField, messageField)
 {
	
	if (textField.value.length==0) 
	{
		set_message(messageField, "Required Field");
		return false;
	}

	set_message(messageField, "");
	return true;
 }
 
 function validate_contact(listBox, firstName, lastName, messageField)
 {
	var error_message = "";
	
	if (listBox.selectedIndex==0)
	{
		error_message += ((error_message!="")?"\r\n":"") + "The prefix is a required field";
	}
	 
	if (firstName.value.length==0) 
	{
		error_message += ((error_message!="")?"\r\n":"") + "The First name is a required field";
	}
	
	if (lastName.value.length==0) 
	{
		error_message += ((error_message!="")?"\r\n":"") + "The Last name is a required field";
	}
	 
	set_message(messageField, error_message);
	return error_message=="";
 }
 
 function validate_address(textField, messageField)
 {
	
	if (textField.value.length==0) 
	{
		set_message(messageField, "Required Field");
		return false;
	}

	set_message(messageField, "");
	return true;
 }
 
 function set_message(messageField, message)
 {
 
	var hasInnerText =(document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
 
	if(!hasInnerText) {
		messageField.textContent = message;
 
	}
	else {
		messageField.innerText = message;
	}

 }