function validate(myfrm) {
	var validd = true;
	var strr = "";
	var Phone=myfrm.txtphone;
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 6;

	function isInteger(s) {   
		var i;
    	for (i = 0; i < s.length; i++)
    	{   
        	// Check that current character is number.
        	var c = s.charAt(i);
        	if (((c < "0") || (c > "9"))) return false;
    	}
    	// All characters are numbers.
    	return true;
	}

	function stripCharsInBag(s, bag) {   
		var i;
    	var returnString = "";
    	// Search through string's characters one by one.
    	// If character is not in bag, append to returnString.
    	for (i = 0; i < s.length; i++)
    	{   
        	// Check that current character isn't whitespace.
        	var c = s.charAt(i);
        	if (bag.indexOf(c) == -1) returnString += c;
    	}
    	return returnString;
	}

	function checkInternationalPhone(strPhone) {
		s=stripCharsInBag(strPhone,validWorldPhoneChars);
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
	
	//check name is non-blank
	if (myfrm.pday.value == "na") {
		validd = false;
		strr = strr + "Please select a Day\n";
		myfrm.pday.focus();
	}					
	else if (myfrm.pmonth.value == "na") {
		validd = false;
		strr = strr + "Please select a Month\n";
		myfrm.pmonth.focus();
	}					
	else if (myfrm.pyear.value == "na") {
		validd = false;
		strr = strr + "Please select a Year\n";
		myfrm.pyear.focus();
	}	
	else if (myfrm.txtinvno.value == "") {
		validd = false;
		strr = strr + "Please enter your Invoice Number \n";
		myfrm.txtinvno.focus();
	}		
	else if (myfrm.txtprodcodes.value == "") {
		validd = false;
		strr = strr + "Please enter the Product codes \n";
		myfrm.txtprodcodes.focus();
	}		
	else if (myfrm.txtbuyfrom.value == "") {
		validd = false;
		strr = strr + "Please enter where you purchased your goods from \n";
		myfrm.txtbuyfrom.focus();
	}		
	else if (myfrm.txtfirstname.value == "") {
		validd = false;
		strr = strr + "Please enter your First name\n";
		myfrm.txtfirstname.focus();
	}		
	else if (myfrm.txtsurname.value == "") {
		validd = false;
		strr = strr + "Please enter your Surname \n";
		myfrm.txtsurname.focus();
	}	
	else if (myfrm.txtphone.value == "") {
		validd = false;
		strr = strr + "Please enter a Contact Number\n";
		Phone.focus();
	}	
	else if (checkInternationalPhone(Phone.value)==false) {
		validd = false;
		strr = strr + "Contact Number is invalid.\nPlease try again\n";
		Phone.value="";
		Phone.focus();
	}	
	else if (myfrm.txtemail.value == "") {
		validd = false;
		strr = strr + "Please enter your Email address\n";
		myfrm.txtemail.focus();
	}	
	else if ((myfrm.txtemail.value != "") && ((myfrm.txtemail.value.indexOf("@") == -1) || (myfrm.txtemail.value.indexOf(".") == -1))) {
		validd = false;
		strr = strr + "E-mail address is invalid.\nPlease try again\n";
		myfrm.txtemail.value = "";
		myfrm.txtemail.focus();
	}	
	else if (myfrm.txtaddr.value == "") {
		validd = false;
		strr = strr + "Please enter a postal address\n";
		myfrm.txtaddr.focus();
	}
	else if (myfrm.txtsuburb.value == "") {
		validd = false;
		strr = strr + "Please enter a suburb\n";
		myfrm.txtsuburb.focus();
	}
	else if (myfrm.txtpcode.value == "") {
		validd = false;
		strr = strr + "Please enter a Postcode\n";
		myfrm.txtpcode.focus();
	}
	else if ((isInteger(myfrm.txtpcode.value)==false) || (myfrm.txtpcode.value.length != "4")){
		validd = false;
		strr = strr + "Postcode is invalid.\nPlease try again\n";
		myfrm.txtpcode.value="";
		myfrm.txtpcode.focus();
	}
	else if (myfrm.txtstate.value == "na") {
		validd = false;
		strr = strr + "Please enter a state\n";
		myfrm.txtstate.focus();
	}
	
	//display result of check
	if (!validd){
		alert(strr);
		return validd;
	}
	else return validd;
}
