var submitted = false;
function validate(f,a,b,c){	

	for(i=0;i<a.length;i++){
		f.elements[b[i]].className = '';
		switch(a[i]){
			case 0:
				if (!f.elements[b[i]].checked){
					openAlert(c[i]);
					f.elements[b[i]].checked = true;
					return false;
				}
				break;
			case 1:
				if(f.elements[b[i]].value==""){						
					// setStyleById(b[i], objProperty, objValue)
					f.elements[b[i]].className = 'fieldHighlight';
					openAlert(c[i]);
									
					return false;
				}
				break;
			case 2:
				if(f.elements[b[i]].value==""){
					openAlert(c[i]);
					f.elements[b[i]].className = 'fieldHighlight';
					return false;
				}else{
					if(!IsValidEmail(f.elements[b[i]].value)){
						openAlert(c[i]);
						f.elements[b[i]].className = 'fieldHighlight';
						return false;
					}
				}
				break;
			case 3:
				break;
			case 4:
				if(f.elements[b[i]].selectedIndex==0){						
					openAlert(c[i]);
					f.elements[b[i]].focus();
					return false;
				}
			case 5:			
				/*if(f.elements[b[i]].value==""){
					alert(c[i]);
					f.elements[b[i]].focus();
					return false;
				}else{
					if(!IsValidPostcode(f.elements[b[i]])){
						f.elements[b[i]].focus();
						return false;
					}
				}
				break; */
			default:
				break;
		}	
	}	
	return true;
}		
function setStyleById(objId, objProperty, objValue) {
//  This function will apply a style to an Element based on Id
//  Works with IE and Mozilla based browsers
        var element = (ie) ? document.all(objId) : document.getElementById(objId);
        element.style[objProperty] = objValue
}

function IsValidEmail(str) {
	// are regular expressions supported?
	var supported = 0;
	if (window.RegExp) {
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported) 
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}
function IsValidPostcode(postcode){ //check postcode format is valid
	var test = postcode.value; 

	 size = test.length;

	test = test.toUpperCase(); //Change to uppercase
	 
	 while (test.slice(0,1) == " ") //Strip leading spaces
	  {test = test.substr(1,size-1);size = test.length
	  }
	 while(test.slice(size-1,size)== " ") //Strip trailing spaces
	  {test = test.substr(0,size-1);size = test.length
	  }
	 postcode.value = test; //write back to form field
	 if (size < 6 || size > 8){ //Code length rule
	  openAlert(test + " is not a valid postcode - wrong length");
	  return false;
	  }
	 if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
	   openAlert(test + " is not a valid postcode - cannot start with a number");
	   return false;
	  }
	 if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
	   openAlert(test + " is not a valid postcode - alpha character in wrong position");
	   return false;
	  }
	 if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
	   openAlert(test + " is not a valid postcode - number in wrong position");
	   return false;
	  }
	 if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
	   openAlert(test + " is not a valid postcode - number in wrong position");
	   return false;
	  }
	 if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
	   openAlert(test + " is not a valid postcode - no space or space in wrong position");
	   return false;
	   }
	 count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
	 if (count1 != count2){//only one space rule
	   openAlert(test + " is not a valid postcode - only one space allowed");
	   return false;
	  }
	//alert("Postcode Format OK");
	return true;
}
function openAlert(msg) {
			   Dialog.alert('<span styles="color:#999999;">'+msg+'</span>', {windowParameters: {className: "atoa"}})
			  } 
function onsubmit_validate(f){
	switch(f.name) {
			case 'info_request':
					var a = new Array(1,1,2,3);
					var b = new Array("fname", "sname", "email", "btnSubmit");
					var c = new Array("Please enter your first name",
									  	"Please enter your surname",
										"Please Enter a valid email address");					
					return validate(f,a,b,c);					
					break;	
		}
		if (submitted == false){ //to only allow submission once
			submitted = true; 
			return true;
		}else{
			alert("You have already submitted the form.\nPlease wait while it processes the information.");
		}
}
