//text field checks
	function emailCheck(){
	  var fieldName = emailCheck.arguments[0];
	  
	  var AtSym = fieldName.value.indexOf('@');
	  var Period = fieldName.value.lastIndexOf('.');
	  var Space = fieldName.value.indexOf(' ');
	  var Length = fieldName.value.length - 1;   // Array is from 0 to length-1
	  if ((AtSym < 1) ||                 // '@' cannot be in first position
	  (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
	  (Period == Length ) ||             // Must be atleast one valid char after '.'
	  (Space  != -1)){                   // No empty spaces permitted
	 	ValidOk = false;
		alert('Please enter a valid e-mail address.');
		fieldName.focus();
		fieldName.select();
	  }
	  return true;
	}
	
	function emailCheckSpecial(){
	  var fieldName = emailCheckSpecial.arguments[0];
	  var formName = emailCheckSpecial.arguments[1];
	  var AtSym = fieldName.value.indexOf('@');
	  var Period = fieldName.value.lastIndexOf('.');
	  var Space = fieldName.value.indexOf(' ');
	  var Length = fieldName.value.length - 1;   // Array is from 0 to length-1
	  
	  if (formName.receivebypost.checked == false){
		  if ((AtSym < 1) ||                 // '@' cannot be in first position
		  (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
		  (Period == Length ) ||             // Must be atleast one valid char after '.'
		  (Space  != -1)){                   // No empty spaces permitted
		 	ValidOk = false;
			alert('Please enter a valid e-mail address.');
			fieldName.focus();
			fieldName.select();
		  }
		  return true;
		 } 
	}
		
	
	function totalCheck(fieldName) {
		var fieldName = totalCheck.arguments[0];
		
		if (fieldName.value == 0) {
	 		ValidOk = false;
			alert('Please select your tickets.');
		}
	}
	
	function strCheck(){
	  var fieldName = strCheck.arguments[0];
	  var compareNumber = strCheck.arguments[1];
	  var alertText = strCheck.arguments[2];
	  
	  if ((fieldName.value.length < compareNumber) || (isNaN(fieldName.value) != true)){
	    ValidOk = false;
	    alert('Please enter your ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}

	function ShippingCheck() {
		var formName = ShippingCheck.arguments[0];
		with (formName) {
			if (IsShippingSameAsContact.checked == false) {
				if(shippingAddress.value.length == 0) {
					ValidOk = false;
	    			alert('Please enter your mailing address.');
					shippingAddress.focus();
				} else if (shippingState.selectedIndex == 0) {
					ValidOk = false;
	    			alert('Please select your mailing state.');
					shippingState.focus();
				} else if (shippingSuburb.value.length == 0) {
					ValidOk = false;
	    			alert('Please enter your mailing suburb.');
					shippingSuburb.focus();
				} else if (shippingPostcode.value.length != 4 || isNaN(shippingPostcode.value)) {
					ValidOk = false;
	    			alert('Please enter your 4 digit mailing postcode.');
					shippingPostcode.focus();
					shippingPostcode.select();
				}
			}
		}
	}

	function selectCheck(){
	  var fieldName = selectCheck.arguments[0];
	  var alertText = selectCheck.arguments[1];
	  if (((parseInt(navigator.appName.indexOf("Netscape")) == 0) && (parseInt(fieldName.selectedIndex) == 0))){
	    ValidOk = false;
	    alert('Please enter your ' + alertText + '.');
	  }else if(document.all){
	    if (parseInt(fieldName.selectedIndex) == 0){
          ValidOk = false;
	      alert('Please select your ' + alertText + '.');
		  fieldName.focus();
		}  
	  }  
	}
	
	function selectCheckSpecial(){
	  var fieldName = selectCheckSpecial.arguments[0];
	  var alertText = selectCheckSpecial.arguments[1];
	  var formName = selectCheckSpecial.arguments[2];
	
	  if (document.getElementById('aus').value == 'Australia'){
		  if (((parseInt(navigator.appName.indexOf("Netscape")) == 0) && (parseInt(fieldName.selectedIndex) == 0))){
		    ValidOk = false;
	    	alert('Please enter your ' + alertText + '.');
		  }else if(document.all){
		    if (parseInt(fieldName.selectedIndex) == 0){
        	  ValidOk = false;
		      alert('Please select your ' + alertText + '.');
			  fieldName.focus();
			}  
		}	
	  }  
	}
		
	function numCheck(){
	  var fieldName = numCheck.arguments[0];
	  var compareNumber = numCheck.arguments[1];
	  var alertText = numCheck.arguments[2];
	  if (fieldName.value.length < 1 || isNaN(fieldName.value)){
	    ValidOk = false;
	    alert('Please enter a valid ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	
	function postCodeCheck(){
	  var fieldName = postCodeCheck.arguments[0];
	
	  if (fieldName[0].checked == true){
		  if (document.getElementById("postcode").value.length != 4 || isNaN(document.getElementById("postcode").value)){
			ValidOk = false;
			alert('Please enter a valid postcode.');
			document.getElementById("postcode").focus();
			document.getElementById("postcode").select();
		  }
	  }
	}
	
	function CheckQuantity() {
		var fieldName = CheckQuantity.arguments[0];
		if (fieldName.value.length == 0) {
	    	ValidOk = false;
	    	alert('Please enter your quantity');
			fieldName.focus();
		} else if (isNaN(fieldName.value)) {
	    	ValidOk = false;
	    	alert('The quantity must be a numeric value');
			fieldName.select();
		} else if (fieldName.value.indexOf('.') != -1) {
	    	ValidOk = false;
	    	alert('The quantity can not contain decimal places.');
			fieldName.select();
		} else if (fieldName.value == 0) {
	    	ValidOk = false;
	    	alert('Please enter your quantity');
			fieldName.select();
		}
	}	
	
	function ccCheck(){
	  var fieldName = ccCheck.arguments[0];
	  var alertText = ccCheck.arguments[1];
	  
	  if (isNaN(fieldName.value) || fieldName.value.length == 0){
	    ValidOk = false;
	    alert('Please enter a valid ' + alertText + '.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	
	//Checks to make sure at least one radio button or chewck box is checked.
	function isChecked(){
		var fieldName = isChecked.arguments[0];
		var alertText = isChecked.arguments[1];
		var intNumOfButtons = fieldName.length;
		var i=0;
  
		while(i < intNumOfButtons){
			if (fieldName[i].checked == true){
				break;
			}
			i++;
  		}
		if(i == intNumOfButtons){
    		alert('Please select ' + alertText + '.');
			ValidOk = false;
		}
	}
	
	function emailtypeCheckdealer(){
		var formname = emailtypeCheckdealer.arguments[0];
		var email = formname.Email;
		var emailtype = formname.Email_type;
		
		if (email.value.length != 0) {
			isChecked(emailtype, 'email type');
		}
	}
	
	function emailtypeCheck(){
		var formname = emailtypeCheck.arguments[0];
		var email = formname.email;
		var emailtype = formname.email_type;
		
		if (email.value.length != 0) {
			isChecked(emailtype, 'email type');
		}
	}
	
	function ticketCheck(){
		var formName = ticketCheck.arguments[0];
		
		if((formName.family.value < 1) && (formName.adult.value < 1) && (formName.children.value < 1)){
			ValidOk = false;
			alert('Please choose the number of tickets you require.');
			formName.family.focus();
		}
	}
	
	
	function UnsureDealerCheck(){
		var formName = UnsureDealerCheck.arguments[0];
		var UnsureDealer = formName.UnsureDealer;

		if (UnsureDealer.checked != true){
	  	  selectCheck(formName.storeSuburb,'preferred dealer suburb');
		  if (ValidOk == true) {
	  	  selectCheck(formName.storeStores,'Volkswagen Dealership');	
		  }
		}
	}
	
	// Regular expression for phone numbers lets multiple australian numbers through
	function isRegExpPhone(str){
		var regExp = /^(\d{10}|\d{2} \d{4} \d{4}|\d{8}|\d{4} \d{3} \d{3}|\d{4}\-\d{3}\-\d{3}|\d{2} \d{6}|\d{4} \d{6}|\(\d{4}\) \d{3} \d{3}|\(\d{2}\) \d{4} \d{4}|\(\d{4}\)\d{6}|\d{2}\-\d{6}|\d{4}\-\d{4}|\d{4} \d{4}|\(\d{2}\)\d{8})$/;
		return regExp.test(str);
	}

	//CHecks for a valid phone number using the reg ex function above
	function phoneCheck(){
		var fieldName = phoneCheck.arguments[0];
		var alertText = phoneCheck.arguments[1];
		
		var valid = true;
		var str = fieldName.value;
	    
		if(!isRegExpPhone(str)){
			ValidOk = false;
			alert(alertText);
	    	fieldName.focus();
	    	fieldName.select();
		}
	}

	//radio button checks
	function genderCheck(){
	  var fieldName = genderCheck.arguments[0];
	  
	  if (fieldName[0].checked != true && fieldName[1].checked != true){
	    ValidOk = false;
	    alert("Please select your gender");
	  }
	}
	
	function countryCheck(){
	  var fieldName = countryCheck.arguments[0];
	  var formName = countryCheck.arguments[0];
	  
	  //if fornName.country.selectedIndex
	  if (fieldName[0].checked != true && fieldName[1].checked != true){
	    ValidOk = false;
	    alert("Please select your gender");
	  }
	}
	
	function tasteCheck(){
	  var fieldName = tasteCheck.arguments[0];
	  
	  if (fieldName[0].checked != true && fieldName[1].checked != true
	      && fieldName[2].checked != true && fieldName[3].checked != true
		  && fieldName[4].checked != true ){
	    ValidOk = false;
	    alert("Please select a rating");
	  }
	}

//Multiple Field Processes
	// This process checks that if the checkbox has been checked then something must be selected in the dropdown
	// if checkbox is selected then the drop down box must not equal 0 (0 = the first field)
	function checkboxDropdownCheck(){
	  var checkBoxFieldName = checkboxDropdownCheck.arguments[0];
	  var selectFieldName = checkboxDropdownCheck.arguments[1];
	  var alertText = checkboxDropdownCheck.arguments[2];
 	  if (checkBoxFieldName.checked == true && ((parseInt(navigator.appName.indexOf("Netscape")) == 0) && (parseInt(selectFieldName.selectedIndex) == 0)) ||
		checkBoxFieldName.checked == true && ((parseInt(navigator.appName.indexOf("Netscape")) != 0) && (parseInt(selectFieldName.selectedIndex) <= 0))){
		ValidOk = false;
		alert(alertText);
	  }
 	}

	// is at least one check box checked????
	function isCheckBoxChecked(){
	var formName = isCheckBoxChecked.arguments[0];
	var count = isCheckBoxChecked.arguments[1];
	var counter=0;
	while (count < 6)
	{
		if (formName.elements[count].checked == true)
		{
			counter++;

			break;
		}
		count++;
	}

	if (counter == 0)
	{
		alert("Please check at least one box");
		ValidOk = false;
	}
	}

	function checkDelivered(frm)
	{
		var count = checkDelivered.arguments[1];
	
		if (count == 37)
		{
			if (frm.Status[3].checked)
			{
				if ((frm.vin_txt.value).length != 17)
				{	
					alert("Invalid VIN");			
					ValidOk = false;
				}
			}
		}
	}
	
	function MandatoryCheck(){
	  var formName = MandatoryCheck.arguments[0];	
	  var fieldName = MandatoryCheck.arguments[1];
	  var compareNumber = MandatoryCheck.arguments[2];
	
	  if (((formName.phone.length < compareNumber) || (formName.phone.value == '')) && ((formName.phoneAH.length < compareNumber) || (formName.phoneAH.value == '')) && ((formName.mobile.length < compareNumber) || (formName.mobile.value == '')) && ((formName.Email.length < compareNumber) || (formName.Email.value == ''))){
	    ValidOk = false;
	    alert('Please enter either a phone number or email address.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}
	
	function MandatoryCheck2(){
	  var formName = MandatoryCheck2.arguments[0];	
	  var fieldName = MandatoryCheck2.arguments[1];
	  var compareNumber = MandatoryCheck2.arguments[2];
	
	  if (((formName.phone1.length < compareNumber) || (formName.phone1.value == '')) && ((formName.Email.length < compareNumber) || (formName.Email.value == ''))){
	    ValidOk = false;
	    alert('Please enter either a phone number or email address.');
	    fieldName.focus();
	    fieldName.select();
	  }
	}