function l_validateForm(){
    var e = document.frmcontact;
    var len = e.length;
    var tmpArr = Array('First Name', 'Last Name', 'Email', 'Phone No.', 'Comments');		
	l = tmpArr.length;

	var strError = "Please Enter: ";
	var errlog = 0;
	clearErrField();		
	for(i=0; i<l; i++){		
		if(e[i].name == 'firstname' || e[i].name == 'lastname' || e[i].name == 'email'|| e[i].name == 'phoneno' || e[i].name == 'comments'){
			tmpVal = trim(e[i].value);
			if(tmpVal == '' || e[i].value == ''){
				strError = strError + "<b>\n\t " + tmpArr[i] + "</b>";
				e[i].focus();
				setErrField(e[i]);
				msgErrorPrint(strError);					
				return false;
				errlog = 1;
			}
		}
	
	}
	if(errlog) {
		alert(strError + "\nPlease try again, thanks!"); 
		return false;
	}else{		
		gemail = document.getElementById('email');
		f = document.getElementById('phoneno');
		if(checkfone(f)){
			if(checkemail(gemail)){					
				return true;
			}
			else
				return false;
		}else{
			return false;
		}				
	}		
}
	
	// 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 = 10;
	
	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 trim(s)
	{   var i;
	    var returnString = "";
	    // Search through string's characters one by one.
	    // If character is not a whitespace, append to returnString.
	    for (i = 0; i < s.length; i++)
	    {   
	        // Check that current character isn't whitespace.
	        var c = s.charAt(i);
	        if (c != " ") returnString += c;
	    }
	    return returnString;
	}*/
	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){
		var bracket=3
		strPhone=trim(strPhone)
		if(strPhone.indexOf("+")>1) return false
		if(strPhone.indexOf("-")!=-1)bracket=bracket+1
		if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
		var brchr=strPhone.indexOf("(")
		if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
		if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
		s=stripCharsInBag(strPhone,validWorldPhoneChars);
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}*/
	function checkInternationalPhone(strPhone){
		var validWorldPhoneChars = phoneNumberDelimiters + "+";
		// Minimum no of digits in an international phone no.
		var minDigitsInIPhoneNumber = 10;
		
		var bracket=3
		strPhone=trim(strPhone)
		
		if(strPhone.indexOf("+")>1) return false
		if(strPhone.indexOf("(")!=-1 && strPhone.indexOf(")")==-1)return false
		if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
		s=stripCharsInBag(strPhone,validWorldPhoneChars);
		
		return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}

	function checkfone(fnb){
		if ((fnb.value==null)||(fnb.value=="")){
			setErrField(fnb);
			msgErrorPrint("Please enter valid phone number.");
			fnb.focus();
			return false;
		}
		
		if (checkInternationalPhone(fnb.value)==false){
			setErrField(fnb);
			msgErrorPrint("Please enter valid phone number.");
			//fnb.value=""
			fnb.focus();
			return false;
		}
		return true;
		
		/* old function 
		//patern = /^[0-9]{1,3}\-[0-9]{3}\-[0-9]{3}\-[0-9]{3,4}$/;
		patern = /^[0-9\-]{10,20}$/;
		if(!fnb.value.match(patern)){
			setErrField(fnb);
			msgErrorPrint("Please enter valid phone number.");
			fnb.focus();
			return false;
		}
		return true;
		*/
	}
	function msgErrorPrint(strErr){
		err = document.getElementById('errormsg');
		err.innerHTML = "";
		err.innerHTML = strErr;
		err.style.padding = "7px";
	}
	function clearErrField(){
		var e = document.frmcontact;
	    var len = e.length;
	    var tmpArr = Array('First Name', 'Last Name', 'Email', 'Phone No.', 'Comments');
		l = tmpArr.length;
	
		for(i=0; i<len; i++){
			e[i].removeAttribute('style');
		}
	}	
	function setErrField(obj){	
		obj.style.background = '#ff9b9b';//#
		obj.style.border = "1px #999 solid";//#e4e4e4
		obj.style.borderBottom = "1px #fff solid";
		obj.style.borderRight = "1px #fff solid";
		obj.style.padding = "2px";
	}
	
	function checkemail(emailadd){
		patern = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;///^([\w\-\.\+])+@+(([\w])+.+([.\w])+)$/; 
		if(!emailadd.value.match(patern)){
			//alert("The email entered is invalid!");
			setErrField(emailadd);
			msgErrorPrint("The email entered is invalid!");
			emailadd.focus();
			return false;
		}
		return true;
	}
	
	function validEmailField(emailadd){
		patern = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;///^([\w\-\.\+])+@+(([\w])+.+([.\w])+)$/; 
		if(!emailadd.value.match(patern)){
			//alert("The email entered is invalid!");
			setErrField(emailadd);
			err = document.getElementById('msgresult');
			err.innerHTML = "";
			err.innerHTML = "The email entered is invalid!";
			err.style.padding = "7px";
			emailadd.focus();
			return false;
		}
		return true;
	}
	
	function trim(str) {
	     return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' '); 
	}
			
			
	function openpg(url){
		window.open(url+'privacypolicy.html', 'null', 'height=500,width=800,status=no,toolbar=noe,menubar=no,location=no,scrollbars=yes');
		return false;
	}
	
	
	var Days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	Months = new Array("January","February","March","April","May","June","July", "August", "September", "November", "December");
	//var Days = new Array("Ch&#7911; nh&#7853;t","Th&#7913; hai","Th&#7913; ba","Th&#7913;  t&#432;","Th&#7913;  n&#259;m","Th&#7913; s&aacute;u","Th&#7913; b&#7843;y");
	var sign = "/";
	var signdigit = ":";
	var signchar = ",";
	var space=	" ";
	var tickTime;
	function startTime()
	{
		var DateTime = "";	
		var TheDate = new Date();
		var TheDay = Days[TheDate.getDay()];
			
		var TheMonth = TheDate.getMonth();//+1;
		//if (TheMonth < 10) TheMonth = "0" + TheMonth;
		TheMonth = Months[TheMonth];
		
		var TheMonthDay = TheDate.getDate();
		if (TheMonthDay < 10) TheMonthDay = "0" + TheMonthDay;
	
		var TheYear = TheDate.getYear();
		if (TheYear < 1000) TheYear += 1900;
		
		var timeType = "";
		//timeType = "GMT +7";
		
		var Digital=new Date()
		var hours=Digital.getHours()
		if (hours<=9) hours="0"+hours
		var minutes=Digital.getMinutes()
		if (minutes<=9) minutes="0"+minutes
		var seconds=Digital.getSeconds()
		if (seconds<=9) seconds="0"+seconds				
		
		//DateTime += space + TheDay + signchar + space + "ng&#224;y" + space + TheMonthDay + sign + TheMonth + sign + TheYear + space + space + hours + signdigit + minutes + signdigit + seconds;
		DateTime += TheMonth + space + TheMonthDay + signchar + space + TheYear
		document.getElementById("Timer").innerHTML = DateTime;
		tickTime=setTimeout("startTime()",1000);   
	}
	
	function PageLoad()
	{
		startTime();
	}
	
	function PageUnload()
	{	
	 	clearTimeout(tickTime);
	}
	
	/****************************Quote Form*********************************************************************/
	/**
	 * validate Quote Form
	 * @param {Object} frmname
	 * @param {Object} fname
	 */
	function validQuoteForms(frmname, fname){

	    var e = frmname;
	    var len = e.length;
		var tmpArr;
		var nameArr;
		
		if(fname == 'autoquote')	{	
	    	tmpArr = Array('Name','E-Mail','Postal Code','Driver Name','Licence No of Alberta Driver','Estimated daily commute (one way) in kilometres','Model Year','Make', 'Model','Estimated Annual Driving Distance in kilometres','Is the vehicle used for business or comercial purposes?', 'Select Liability Limits','Comprehensive Deductible','Collision Deductible','Disclaimer Agree');
			nameArr = Array('fname','email','Postal_Code','Driver1_Name','Driver1_Licence','Driver1_CommuteKilometres','Vehicle1_Year','Vehicle1_Make','Vehicle1_Model','Vehicle1_Annual_Kilometres','Vehicle1_BusinessUse','Liability_Limits_Vehicle1','Comprehensive_Deductible_Vehicle1','Collision_Deductible_Vehicle1','Disclaimer_Agree');
		}
			
		if(fname == 'homeowner'){		
	    	tmpArr = Array('Your Name', 'E-Mai', 'Phone', 'Disclaimer Agree');	
			nameArr = Array('Name','email','Phone', 'Disclaimer_Agreed');
		}
		
		if(fname == 'renters'){		
	    	tmpArr = Array('Your Name', 'E-Mail', 'Phone', 'Disclaimer Agree');	
			nameArr = Array('Name','email','Phone', 'Disclaimer_Agreed');
		}
		
		if(fname == 'bussiness')
		{
	    	tmpArr = Array('Your Name', 'E-Mail', 'Phone', 'Disclaimer Agree');	
			nameArr = Array('Name','reply_to','Phone', 'Disclaimer_Agreed');
		}
		
		if(fname == 'contractor'){		
	    	tmpArr = Array('Your Name', 'E-Mail', 'Phone', 'Disclaimer Agree');	
			nameArr = Array('Name','email','Phone', 'Disclaimer_Agreed');
		}	
				
		var strError = "Please check this field: ";
		var errlog = 0;
	
		clearQuoteField(frmname);
		for(i = 0; i < len; i++){//Foreach element in form
			for(j = 0; j < nameArr.length; j++) {//Foreach name of fields in form
				if(trim(e[i].name) == nameArr[j]) {		
						if( (e[i].type=='checkbox' && !e[i].checked) || (e[i].value == '')){
							strError = strError + "<b>\n\t " + tmpArr[j] + "</b>";
							e[i].focus();
							setErrField(e[i]);
							msgErrorPrint(strError);					
							return false;
							errlog = 1;
						}
					}
				}					
		}		
		if(errlog) {
			alert(strError + "\nPlease try again, thanks!"); 
			return false;
		}else{		
			gemail = document.getElementById('email');
			if(document.getElementById('phoneno')){
				f = document.getElementById('phoneno');
				if(checkfone(f)){
					if(checkemail(gemail)){					
						return true;
					}
					else
						return false;
				}else{
					return false;
				}
			}			
			else {
				if(checkemail(gemail)){					
					return true;
				}
				else
					return false;
			}				
		}		
	}

	function clearQuoteField(e){
	    var len = e.length;
	    var tmpArr = Array('First Name', 'Last Name', 'Email', 'Phone No.', 'Comments');
		l = tmpArr.length;
	
		for(i=0; i<len; i++){
			e[i].removeAttribute('style');
		}
	}
		/*$(document).ready(function(){
			$("#quotepage").change(function(){
				if($("option:selected", this).val() != '#')
				window.location.href= 'quote.php?go=' + $("option:selected", this).val();
			});
		});*/
		$(document).ready(function(){
			$("#quotepage").change(function(){
				if($("option:selected", this).val() != '#')
				window.location.href= $("option:selected", this).val();
			});
		});
		
		/**
		* @package: Javascript
		* @Author: Alien Pham
		* @Contact: nguyen.dung@phoenixsoftwareco.com
		* Set default value
		**/
		function resetForm(){
			$("#errormsg").html('');
			var e = document.frmcontact;
			var len = e.length;
			var tmpArr = Array('First Name', 'Last Name', 'Email', 'Phone No.', 'Comments');
			l = tmpArr.length;
		
			for(i = 0; i < len; i++){
				e[i].value = '';
			}
			return false;
		}
		
		/**
		* @package: Javascript
		* @Author: Alien Pham
		* @Contact: nguyen.dung@phoenixsoftwareco.com
		* actionForm Function
		**/
		function actionForm(forname, fname) {	
			$("#errormsg").html('');
			return validQuoteForms(forname, fname);
			//if(validQuoteForms(forname, fname)) {					
				//return ajaxQuote();
			//}
			//return false;
		}
