var ajaxError = true;
function ValidateForm(){
    //alert("validate Called");
	var alertMessage = "";

	var firstName=(document.getElementById("firstname")).value;
	var lastName=(document.getElementById("lastname")).value;
	var emailadd1=(document.getElementById("emailaddress")).value;
	var emailadd2=(document.getElementById("confirmemailaddress")).value;
	var password1=(document.getElementById("newpassword")).value;
	var password2=(document.getElementById("confirmnewpassword")).value;
	var zip=(document.getElementById("postalcode")).value;
    var zip2= (document.getElementById("postalcode2")).value; 
	var country=(document.getElementById("country")).value;	
	var gender=document.register.gender;
	var children=document.register.children;
	var expecting=document.register.expecting;
	var language=document.register.language;
	var address=(document.getElementById("address")).value;
	var city=(document.getElementById("city")).value;
	var state=(document.getElementById("state")).value;
	var birthMonthId=(document.getElementById("birthMonthId")).value;
    var birthDayId=(document.getElementById("birthDayId")).value;
    var birthYearId=(document.getElementById("birthYearId")).value;
	resetErrorLabel();
	resetServerSideErrorBlock();
	//resetBGColor();

	var errorFound = false;
	var focusElement="";
	var scrollLocation=0;
	
	var e1Value = false;
	var errorDivMessage="";
	
	
	if(isEmptyString(emailadd1)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une adresse &eacute;lectronique valide.";
		setValue('e3','eL3',"Veuillez inscrire une adresse &eacute;lectronique valide.");
		errorFound=true;		
		setFlag('e3a');
		errorFound = true;
		focusElement="emailaddress";
	}else{
		if(eMailIDcheck(emailadd1))
		{
			alertMessage = alertMessage  + "\n" + "Veuillez inscrire une adresse &eacute;lectronique valide.";
			setValue('e3','eL3',"Veuillez inscrire une adresse &eacute;lectronique valide.");			
			setFlag('e3a');
			if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="emailaddress";}
		}else{
			var emailAddr=document.getElementById("emailaddress");
			if(!email_onchage(emailAddr)){
				//alertMessage = alertMessage  + "\n" + "A User already exists with the given e-mail address.";
				//setValue('e3','eL3',"A User already exists with the given e-mail address.");	//check abhijeet		
				//setFlag('e3a');
				//if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="emailaddress";}
			}
		}
	} 
	if(isEmptyString(emailadd2)){
		alertMessage = alertMessage + "\n" + "Veuillez confirmer votre adresse &eacute;lectronique.";
		setValue('e4','eL4',"Veuillez confirmer votre adresse &eacute;lectronique.");		
		setFlag('e4a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="confirmemailaddress";}
	}
	else
	{
		if(!checkEqualString(emailadd1, emailadd2))
		{
			alertMessage = alertMessage + "\n" + "Veuillez confirmer votre adresse &eacute;lectronique.";
			setValue('e4','eL4',"Veuillez confirmer votre adresse &eacute;lectronique.");
			setFlag('e4a');
			if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="confirmemailaddress";}
		}
	}
	var e4Value = false;
	if(isEmptyString(password1)){		
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un mot de passe.";
		setValue('e5','eL5',"Veuillez inscrire un mot de passe.");		
		setFlag('e5a');
		e4Value = true;
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="newpassword";}
	}else if(password1.length<4){
		alertMessage = alertMessage + "\n" + "Votre mot de passe doit comporter au moins quatre caract&egrave;res, dont au moins un chiffre et une lettre.";
		setValue('e5','eL5',"Votre mot de passe doit comporter au moins quatre caract&egrave;res, dont au moins un chiffre et une lettre.");		
		setFlag('e5a');
		e4Value = true;
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="newpassword";}
	}else if(!alphanumeric(password1)){
		alertMessage = alertMessage + "\n" + "Votre mot de passe doit comporter au moins quatre caract&egrave;res, dont au moins un chiffre et une lettre.";
		setValue('e5','eL5',"Votre mot de passe doit comporter au moins quatre caract&egrave;res, dont au moins un chiffre et une lettre.");		
		setFlag('e5a');
		e4Value = true;
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="newpassword";}
	}
	if(isEmptyString(password2)){		
		alertMessage = alertMessage + "\n" + "Veuillez confirmer votre mot de passe.";
		//if(!e4Value){
			setValue('e6','eL6',"Veuillez confirmer votre mot de passe.");		
			setFlag('e6a');
		//}
	   if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="confirmnewpassword";}
	}else{
			if(!checkEqualString(password1,password2))
			{
				alertMessage = alertMessage + "\n" + "Veuillez confirmer votre mot de passe.";
				//if(!e4Value){				
					setValue('e6','eL6',"Veuillez confirmer votre mot de passe.");
					setFlag('e6a');
									//}
				if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="confirmnewpassword";}
			}
	}
	/*********************************************/
	if(isEmptyString(firstName)){		
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un pr&eacute;nom valide";
		//errorDivMessage=errorDivMessage+'<tr bgcolor="#ffffff"><td height="17" bgcolor="#ffffff"></td><td height="17" align="left"  style="font-size:11.5px; color:#de1212; padding-right:13px;">Please enter your first name.</td></tr>';
		setValue('e1','eL1',"Veuillez inscrire un pr&eacute;nom valide");		
		setFlag('e1a');
		e1Value = true;
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="firstname";}
	}else if(!chkAlphaCharacter(firstName,1)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un pr&eacute;nom valide";
		setValue('e1','eL1',"Veuillez inscrire un pr&eacute;nom valide");		
		//setFlag('e1a');
		e1Value = true;
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="firstname";}
	}
	/*********************************************/
	
	if(isEmptyString(lastName)){
		alertMessage = alertMessage + "\n" + " Veuillez inscrire un nom de famille valide.";
		setValue('e2','eL2'," Veuillez inscrire un nom de famille valide.");
		//setFlag('e2a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="lastname";}
	}else if(!chkAlphaCharacter(lastName,2)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un nom de famille valide.";
		setValue('e2','eL2',"Veuillez inscrire un nom de famille valide.");	
		setFlag('e2a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="lastname";}
	}
	/*********************************************/

	
	if(isEmptyString(address)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une adresse valide.";
		setValue('e7','eL7',"Veuillez inscrire une adresse valide.");		
		setFlag('e7a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="address";}
	}
		
		
	if(isEmptyString(city)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une ville valide.";
		setValue('e8','eL8',"Veuillez inscrire une ville valide.");		
		setFlag('e8a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="city";}
	}

	if(isEmptyString(state)){
		alertMessage = alertMessage + "\n" + "Veuillez entrer une province valide.";
		setValue('e9','eL9',"Veuillez entrer une province valide.");		
		setFlag('e9a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="state";}
	}


	if(isEmptyString(zip)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un code postal valide.";
		setValue('e10','eL10',"Veuillez inscrire un code postal valide.");		
		setFlag('e10a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="postalcode";}
	}else if(isEmptyString(zip2)){
	    alertMessage = alertMessage + "\n" + "Veuillez inscrire un code postal valide.";
		setValue('e10','eL10',"Veuillez inscrire un code postal valide.");		
		setFlag('e10a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="postalcode2";}
	}else if(!isPostCode(zip+zip2)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un code postal valide.";
		setValue('e10','eL10',"Veuillez inscrire un code postal valide.");		
		setFlag('e10a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="postalcode";}
	}	
	if(isEmptyString(country)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un pays valide.";
		setValue('e11','eL11',"Veuillez inscrire un pays valide.");		
		setFlag('e11a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="country";}
	}
	if( (!radio_button_checker(gender))){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire un genre valide.";
		setValue('e14','eL14',"Veuillez inscrire un genre valide.");		
		setFlag('e14a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="gender";}
	}	
    var dobFilled=true;
    if(birthMonthId=="0"){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une date de naissance valide.";
		setValue('e13','eL12',"Veuillez inscrire une date de naissance valide.");		
		setFlag('e13a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="birthMonthId";}
		dobFilled=false;
	}
	if(dobFilled && birthDayId=="0"){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une date de naissance valide.";
		setValue('e13b','eL12',"Veuillez inscrire une date de naissance valide.");		
		setFlag('e13b');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="birthDayId";}
		dobFilled=false;
	}
	if(dobFilled && birthYearId=="0"){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une date de naissance valide.";
		setValue('e12','eL12',"Veuillez inscrire une date de naissance valide.");		
		setFlag('e12a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="birthYearId";}
		dobFilled=false;
	} 
	//check valid date 
	if(dobFilled && !checkValiedData(birthMonthId,birthDayId,birthYearId)){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une date de naissance valide.";
		setValue('e13c','eL12',"Veuillez inscrire une date de naissance valide.");		
		setFlag('e13c');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="birthMonthId";}
		dobFilled=false;
	}

	if( (!radio_button_checker(language))){
		alertMessage = alertMessage + "\n" + "Veuillez inscrire une langue valide.";
		setValue('e24','eL24',"Veuillez inscrire une langue valide.");		
		//setFlag('e20a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="language";}
	}
	
	/*if( (!radio_button_checker(children))){
		alertMessage = alertMessage + "\n" + "Please enter whether or not you have children.";
		setValue('e21','eL21',"Please enter whether or not you have children.");		
		setFlag('e20a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="children";}
	}
	if( (!radio_button_checker(expecting))){
		alertMessage = alertMessage + "\n" + "Please enter whether or not you are pregnant.";
		setValue('e22','eL21',"Please enter whether or not you are pregnant.");		
		setFlag('e21a');
		if(!errorFound){errorFound = true;scrollLocation = 750;focusElement="expecting";}
	}*/
	if(errorFound){
	    setValue('errorMargin','req',"&nbsp;");	
	    //alert(alertMessage);
	    doFocus(focusElement);
		return false;
	}
	
	
	return true;	
 } 


// This method to remove server side error message form the page.

function resetServerSideErrorBlock(){

	 for (index = 0 ; index < 20 ; index++){
		 serverSideErrorObject = document.getElementById("servError" +index );	
		 if(serverSideErrorObject){
		 	serverSideErrorObject.className="hiddenErrorDiv";
		 }
	 }
	var errorMarginS = document.getElementById("errorMarginS");
	if(errorMarginS){
		errorMarginS.className="hiddenErrorDiv";				
	}
}

function setFlag(field){		
	//setValue(field,"<b>!&nbsp;&nbsp;<b>"); 
}

function resetErrorLabel(){		
	reSetValue("e1","eL1","");
	reSetValue("e2","eL2","");
	reSetValue("e3","eL3","");
	reSetValue("e4","eL4",""); 
	reSetValue("e5","eL5","");
	reSetValue("e6","eL6","");
	reSetValue("e7","eL7",""); 
	reSetValue("e8","eL8","");
	reSetValue("e9","eL9","");
	reSetValue("e10","eL10","");
	reSetValue("e11","eL11",""); 
	reSetValue("e12","eL12","");
	reSetValue("e13","eL12","");
	reSetValue("e13b","eL12","");
	reSetValue("e13c","eL12","");
	reSetValue("e14","eL14","");
	reSetValue("e21","eL21","");
	reSetValue("e22","eL21",""); 
	reSetValue("e24","eL24","");
	reSetValue("errorMargin","req","");
} 

 function setValue(field ,field2, value){ 	
 	var errorDiv = document.getElementById(field);	
 	errorDiv.innerHTML = value;	
 	errorDiv.className="showErrorDiv";	
 	var lableDiv = document.getElementById(field2);
 	lableDiv.className="showErrorlable";
 }
 
 function reSetValue(field,field2,value){ 	
 	var errorDiv = document.getElementById(field);	
 	errorDiv.innerHTML = value;	
 	errorDiv.className="hiddenErrorDiv";
 	var lableDiv = document.getElementById(field2);
 	lableDiv.className="noError";
 }
 function doFocus(field){		
	//setClass(field,"focused");	
	var obj = document.getElementById(field);	
	if(obj != null){		
		obj.focus();
	}
 }


function resetBGColor(){	
	setClass("firstname","none");
	setClass("lastname","none");
	setClass("emailaddress","none");
	setClass("confirmemailaddress","none");
	setClass("newpassword","none");
	setClass("confirmnewpassword","none");
	setClass("birthYearId","none");
	setClass("zip","none");
	setClass("address","none");
	setClass("city","none");
	setClass("state","none");
}


function setClass(field , className){
	var obj = document.getElementById(field);	
	if(obj != null){		
		obj.className = className;
	}
}


/***********************/
function email_onchage(field) {
		if(field != null){			
			
			var email = field.value;
			emailStatus = validateEmail(email);
			if(emailStatus=="invalid"){								
				return false;
			}else{
				return true;
			}
		}
	}
	
	function getHTTPRequest() {
		var xmlhttp = false;
		try {
			xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
		try {
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (E) {
			xmlhttp = false;
		}
		}
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}
	var responseMsg ="";	
	function validateEmail(email)			
	{
		var result = true;
		var responseMsg = "";
		var xmlhttp = getHTTPRequest();				
		var uri = '/pgeds/en_US/jsp/user/registration/EDS_Login_Validator.jsp?email=' + email;
		xmlhttp.open('GET',uri,false);
		
	xmlhttp.onreadystatechange = function()
	{
		    if (xmlhttp.readyState == 4) 
			{
				responseMsg=xmlhttp.responseText;
			}
		};
		xmlhttp.send(null);
		return responseMsg;

	}

	function validateImageUpload(){
		var alertMessage = "";
		var image=document.ProfileImage.profileImageId.value;
		var certify=document.ProfileImage.certify.checked;
		if(image==""){
			alertMessage = alertMessage + "\n" + "We're sorry. That file size or format is not supported.\n  Please use one of the following file formats: .jpg, .gif or .jpeg.";
			setValue('e1',"We're sorry. That file size or format is not supported.\n  Please use one of the following file formats: .jpg, .gif or .jpeg.");		
			return false;
		}else if (!certify){
			alertMessage = alertMessage + "\n" + "Please cerify the image.";
			setValue('e1',"Please cerify the image.");
			return false;
		}
		return true;
	}
	
	// Trim Function
	function trim(inputString){
		
	    if (typeof inputString != "string"){
			return inputString;
        }
		
	    var retValue = inputString;
	    var ch = retValue.substring(0, 1);

	    while (ch == " "){ 
	    	// Check for spaces at the beginning of the string
	        retValue = retValue.substring(1, retValue.length);
	        ch = retValue.substring(0, 1);
        }

	    ch = retValue.substring(retValue.length - 1, retValue.length);
	    while (ch == " "){ 
	    	// Check for spaces at the end of the string
	        retValue = retValue.substring(0, retValue.length - 1);
	        ch = retValue.substring(retValue.length - 1, retValue.length);
        }

	    while (retValue.indexOf("  ") != -1){                                                                                                                           // Note that there are two spaces in the string - look for multiple spaces within the string
	        retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ") + 1, retValue.length); // Again, there are two spaces in each of the strings
	    }
	    return retValue;                                                                                                                // Return the trimmed string back to the user
    }  