 var path="/masterchem/jsps/views/registration/";
 var userAvilability = false;
 var usercheck = false;
 var Manager = {
         validate:function(){
         	 var userType =	document.getElementById('userType').value;
         	 var registernextpage =  document.getElementById('registernextpage');
             var message = new ObjectMap();
             var targetObjectName = ""; 
             var msgs = "";
             message.put("blank_username","Please enter the User Name");
             message.put("basic_username","User Name Requirement\n-- Minimum 6 characters\n-- Maximum 30 characters");
             message.put("available_username","Please check the availability of the User Name");
             
             message.put("blank_firstname","Please enter the First Name");
             message.put("blank_lastname","Please enter the Last Name");
             message.put("blank_companyname","Please enter the Company Name");
             message.put("blank_address1","Please enter the Address 1");
             message.put("blank_city","Please enter the City");
             message.put("blank_zipcode","Please enter the Zip/Postal Code");
             message.put("blank_email","Please enter the E-mail");
             message.put("blank_confirmemail","Please enter the Confirm E-mail");
             message.put("blank_password","Please enter the Password");
             message.put("blank_confirmpassword","Please enter the Confirm Password");
             message.put("valid_password","Password Requirement\n-- Minimum 6 characters\n-- At least 1 Numeral\n-- No Special characters");
             message.put("blank_securityanswer","Please enter the Security Answer");
             message.put("valid_email","Please enter a valid E-mail");
             message.put("valid_confirmemail","Please enter a valid Confirm E-mail");
             message.put("equal_email","E-mail and Confirm E-mail should be same");
             message.put("equal_password","Password and Confirm Password should be same");
             message.put("select_securityquestion","Please select a Security Question");
             message.put("select_country","Please select a Country");
             message.put("select_state","Please select a State");
             message.put("select_tos","Please select Masterchem Brands Terms of Service");
             message.put("select_annualcoatexpend","Please select an Anticipated Annual Coating Expenditure");
             message.put("valid_zipcode","Please enter valid Zip/Postal Code");
             
             if(registernextpage && registernextpage.value=='optionalpage'){
             
	             var mapOfUserNameBlank =	false;
	             var userActionId = (document.getElementById("userActionid").value	==	'create')?true:false;
	             
	             if(userActionId && FormValidator.isBlank("username")){
	             	msgs+="\n"+message.get("blank_username");
	             }else if(userActionId && (!FormValidator.isLessThan("username","6") || !FormValidator.isGreaterThan("username","30"))){
	             	msgs+="\n"+message.get("basic_username");
	             }else if(userActionId && !userAvilability){
	             	msgs+="\n"+message.get("available_username");
	             }
	             
	             
	             
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"username":"";
	             
	             msgs+=FormValidator.isBlank("firstname")?"\n"+message.get("blank_firstname"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"firstname":"";
	             
	             msgs+=FormValidator.isBlank("lastname")?"\n"+message.get("blank_lastname"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"lastname":"";
	              
	             if(userType == "professional"){
	             	msgs+=FormValidator.isBlank("companyname")?"\n"+message.get("blank_companyname"):"";
	             	targetObjectName = (targetObjectName=='' &&  msgs!='')?"companyname":"";
	             	
	             	msgs+=FormValidator.isBlank("address1")?"\n"+message.get("blank_address1"):"";
	             	targetObjectName = (targetObjectName=='' &&  msgs!='')?"address1":"";
	             	
	             	msgs+=FormValidator.isBlank("city")?"\n"+message.get("blank_city"):"";
	             	targetObjectName = (targetObjectName=='' &&  msgs!='')?"city":"";
	             	
	             	if(FormValidator.isBlank("zipcode")){
	             		msgs+="\n"+message.get("blank_zipcode");
		             }else if(!FormValidator.isAlphaNumeric("zipcode")){
		             	msgs+="\n"+message.get("valid_zipcode");
		             }
		             targetObjectName = (targetObjectName=='' &&  msgs!='')?"zipcode":"";
	             }     
	             
             	 msgs+=FormValidator.isUnSelected("country")?"\n"+message.get("select_country"):"";
             	 targetObjectName = (targetObjectName=='' &&  msgs!='')?"country":"";
             	 
	            if(userType == "professional"){ 	 
	             	 msgs+=FormValidator.isUnSelected("state")?"\n"+message.get("select_state"):"";
	             	 targetObjectName = (targetObjectName=='' &&  msgs!='')?"state":"";
	             }
	             
	             var validemail=true;
	             
	             if(FormValidator.isBlank("email")){
	             	msgs+="\n"+message.get("blank_email");
	             	validemail=false;
	             }else if(!FormValidator.isValidEmail("email")){
	             	msgs+="\n"+message.get("valid_email");
	             	validemail=false;
	             }
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"email":"";
	             if(FormValidator.isBlank("confirmemail")){
	             	msgs+="\n"+message.get("blank_confirmemail");
	             	validemail=false;
	             }else if(!FormValidator.isValidEmail("confirmemail")){
	             	msgs+="\n"+message.get("valid_confirmemail");
	             	validemail=false;
	             }
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"confirmemail":"";
	             msgs+=validemail && !FormValidator.matchValue("email","confirmemail")?"\n"+message.get("equal_email"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"confirmemail":"";
	             var validpassword=true;
	             
	             if(FormValidator.isBlank("password")){
	             	msgs+="\n"+message.get("blank_password");
	             	validpassword=false;
	             }else if(!FormValidator.isValidatePassword("password")){
	             	msgs+="\n"+message.get("valid_password");
	             	validpassword=false;
	             }
	              targetObjectName = (targetObjectName=='' &&  msgs!='')?"password":"";    
	             if(FormValidator.isBlank("confirmpassword")){
	             	msgs+="\n"+message.get("blank_confirmpassword");
	             	validpassword=false;
	             }
	            targetObjectName = (targetObjectName=='' &&  msgs!='')?"confirmpassword":"";   
	             msgs+=validpassword && !FormValidator.matchValue("password","confirmpassword")?"\n"+message.get("equal_password"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"confirmpassword":"";   
	             
	             msgs+=FormValidator.isUnSelected("securityquestion")?"\n"+message.get("select_securityquestion"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"securityquestion":"";   
	             msgs+=FormValidator.isBlank("securityanswer")?"\n"+message.get("blank_securityanswer"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"securityanswer":"";   
	             
	             msgs+=(userType == "professional" && FormValidator.isUnSelected("annualcoatexpend"))?"\n"+message.get("select_annualcoatexpend"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"annualcoatexpend":"";
	             
	             msgs+=!FormValidator.matchWithValue("tos","Yes")?"\n"+message.get("select_tos"):"";
	             targetObjectName = (targetObjectName=='' &&  msgs!='')?"tos":"";
	             
	             if(msgs==''){
	             	 UserManager.submitRegistration();
	             }else{
	             	 alert(msgs)
	             	 if(targetObjectName!='' && FormObjectBy.name(targetObjectName))FormObjectBy.name(targetObjectName).focus();
	             }
	         }else{
             	UserManager.submitRegistration();
             }
         },
         
     loginvalidate:function(){
     var message = new ObjectMap();
            
             message.put("blank_usernamelogin","Please enter the  User Name");
             message.put("blank_userpassword","Please enter the Password");
            
             var mapOfBlank = FormValidator.isBlank("usernamelogin","userpassword");
             if(mapOfBlank)
	             FormValidator.assert(mapOfBlank,message,"blank_");
       	    else{
    	        UserManager.loginme();
        	 }         
        },
         
isValidateForgotPassword:function(formvalue){
  var status =true ;
  var message = new ObjectMap();
            
             message.put("blank_username","Please enter the  User Name");
             message.put("blank_forgetAnswer","Please enter the Security Answer");
             var mapOfBlank;
             
             switch(formvalue){             
             case("submitEmail"): mapOfBlank= FormValidator.isBlank("username");
	             if(mapOfBlank){
				 status = false;               
	              FormValidator.assert(mapOfBlank,message,"blank_");}
            break;
                            
            case("submitSecurityAns"): mapOfBlank= FormValidator.isBlank("forgetAnswer"); 
	               if(mapOfBlank){
				   status = false;               
	               FormValidator.assert(mapOfBlank,message,"blank_");}
          	break;
            default :status=true;              
		       }
		    return status;
            }
      }

var UserManager = {
 	
 	registerMe:function(){
		document.getElementById("confirmbox").style.visibility="visible";
		document.getElementById("confirmyes").focus();
	},
	confirmUser:function(hint,title){
		if(hint=="Yes"){
			document.getElementById("userType").value="professional";
			document.getElementById("confirmbox").style.visibility="hidden";
			UserAjaxManager.loadRegistrationForm();
		} else {
			document.getElementById("userType").value="customer";
			document.getElementById("confirmbox").style.visibility="hidden";
			UserAjaxManager.loadRegistrationForm();
		}
		document.getElementById('titleHeader').innerHTML=title;
	},
	forgotPassword:function(value){
	
	if(Manager.isValidateForgotPassword(value) ==true){
		switch(value){
		case("forgetPassowrdForm"):UserAjaxManager.loadForgotPassowrdForm(path+"mcForgetPassowrdEmail.jsp","registrationContainer");
		break;
		case("submitEmail"):UserAjaxManager.loadForgotPassowrdForm(path+"mcSecurityQuestion.jsp","registrationContainer");
		break;		
		case("loginCancel"):reloadPage();
		break;
		case("submitSecurityAns"):UserAjaxManager.loadForgotPassowrdForm(path+"mcEmailSent.jsp","registrationContainer");
		break;
		
		}
		
			}
	},
	
	loginme:function(){
		storeLoginIDCookie('usernameid');
		JSAjax.sendRequest("POST","/masterchem/loginresponse",AjaxConstant.ALL_PARAMETER,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 			    JSObject.innerHTML("logincontainer","<div style='width300px;text-align:center;'><img src='../images/ajax-loader.gif' alt='In Progress...'></img></div>" );
 				
 			},
 			onComplete:function(){
 				UserManager.reLoadHeader(this.text);
 				
 			}
 		});
	},
	
	reLoadHeader:function(loginResponse){
		JSAjax.sendRequest("POST","/masterchem/jsps/views/common/mcHeader.jsp",AjaxConstant.ALL_PARAMETER,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 				
 			},
 			onComplete:function(){
 				JSObject.innerHTML("headercontainer",this.text);
 				JSObject.innerHTML("registrationContainer",loginResponse);
 				PageElements.reload();
 				resetCheckBox();
 				setCities();
 			}
 		});
	},
	
	logOut:function(){
		JSAjax.sendRequest("POST","/masterchem/jsps/views/common/mcHeader.jsp?view=logout",AjaxConstant.ALL_PARAMETER,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 				
 			},
 			onComplete:function(){
 				reloadPage();
 			}
 		});
	},
	
	submitRegistration:function() {	
		var usrActionId = (document.getElementById("userActionid").value	==	'create')?false:true;	
		if(usrActionId) {
			parms = new Parameter();
		}
	    var val = parms.getParameterByForm("registrationForm");
	    //alert(val)
		JSAjax.sendRequest("POST","/masterchem/registrationresponse",val,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 				JSObject.innerHTML("registrationContainer","<div style='width300px;text-align:center;margin-top:90px;'><img src='../images/ajax-loader.gif' alt='In Progress...' vspace=150px;></img></div>" );
 			},
 			onComplete:function(){
 				UserManager.reLoadHeader(this.text);
 				
 		}
 		});		
	},
	checkUserName:function() {
		JSAjax.sendRequest("POST","/masterchem/usernameresponse",AjaxConstant.ALL_PARAMETER,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 				JSObject.innerHTML("usernamestatus","<div style='width20px;text-align:center;'><img src='../images/ajax-loader.gif' alt='In Progress...' vspace=10px;></img></div>" );
 			},
 			onComplete:function(){
 				var response	=	this.text;
 				response	=	response.trim();
 				if(response	==	"") {
 					document.getElementById("usernamestatus").style.color="black";
 					JSObject.innerHTML("usernamestatus"," User Name Available");
 					document.getElementById("usernamestatus").style.display="block";
 					document.getElementById("suggestions").style.display="none";
 					userAvilability=true;
 					
 				} else {
 					userAvilability=false;
 					document.getElementById("usernamestatus").style.color="red";
 					JSObject.innerHTML("usernamestatus"," User Name not Available");
 					
					var responseArray	=	response.split(',');
					
					var	suggestion	=	"Below are some suggestions. <br />";
					suggestion		+=	"<a href=javascript:setUserName('"+responseArray[0]+"')>"+responseArray[0]+"</a><br />";
					suggestion		+=	"<a href=javascript:setUserName('"+responseArray[1]+"')>"+responseArray[1]+"</a>";		
					
 					JSObject.innerHTML("suggestions",suggestion);
 					document.getElementById("usernamestatus").style.display="block";
 					document.getElementById("suggestions").style.display="block";
 				}//else 			
 				usercheck	=	false;	
 			}//complete
 		});
	}
 }
 var responseJspPath;
 var containerName;
 var UserAjaxManager = {
 	
 	loadRegistrationForm:function(){
 	     parms =new Parameter();
  	     var val=parms.getParameterByForm("registrationForm");
 	    JSAjax.sendRequest("POST","/masterchem/jsps/views/registration/professionalRegistration.jsp",val,{
 			onError:function(){
 				
 			},
 			onProcess:function(){
 				JSObject.innerHTML("registrationContainer","<div style='width300px;text-align:center;margin-top:90px;'><img src='../images/ajax-loader.gif'  alt='In Progress...'></img></div>" );
 			},
 			onComplete:function(){
 				JSObject.innerHTML("registrationContainer",this.text);
 				enableDisableChilds('chkboxkilz','kilzPrimerId','kilzPrimerOther');

 			}
 		});
 	},
 	loadForgotPassowrdForm:function( responseJspPath,  containerName){ 
 					
 		JSAjax.sendRequest("POST",responseJspPath,AjaxConstant.ALL_PARAMETER,{
 			
 			onError:function(){ 	},
 			
 			onProcess:function(){
 			JSObject.innerHTML(containerName,"<div style='width300px;text-align:center;margin-top:90px;'><img src='../images/ajax-loader.gif' alt='In Progress...'></img></div>" ); 
 			},
 			
 			onComplete:function(){
 				JSObject.innerHTML(containerName,this.text);
 				getEmailIdFromCookie('email');
 				
 			}
 		});
 	}
 		
 	
 }
 
 
 function resetCheckBox(){
		var pbh = JSObject.getObject('prefcoatbrandshidden');
		var pih = JSObject.getObject('productintrestedhidden');
		var hah = JSObject.getObject('hearabouthidden');
		if(pbh && pbh.value)setCheckBoxButtons(pbh.value,'PreferredBrands');
		if(pih && pih.value)setCheckBoxButtons(pih.value,'interested');
		if(hah && hah.value)setCheckBoxButtons(hah.value,'hearAbout');
}
 
 function clearAll(cbNames,otherId){
		if(!document.getElementsByName(cbNames))
			return;
		var objCheckBoxes = document.getElementsByName(cbNames);
		if(!objCheckBoxes)
			return;
		var countCheckBoxes = objCheckBoxes.length;
		//set the check value for all check boxes
		for(var i = 0 ; i < countCheckBoxes ; i++){
			objCheckBoxes[i].checked = false;
		}
		if(document.getElementById(otherId))
			document.getElementById(otherId).value="";
 }

 function enableDisable(value, cbNames, childChkBoxName, otherId,chkBoxParentId){
		if(document.getElementsByName(cbNames)){
			var chkBoxParent=document.getElementsByName(cbNames);
			//set the check value for all parent check boxes
			if(value=='Yes'|| value=='yes'){
				for(var i = 0 ; i < chkBoxParent.length ; i++){
					chkBoxParent[i].disabled=false;
				}
				enableDisableChilds(childChkBoxName,chkBoxParentId,otherId);
			}else{
				clearAll(childChkBoxName,otherId);
				clearAll(cbNames,null);
				for(var i = 0 ; i < chkBoxParent.length ; i++){
					chkBoxParent[i].disabled=true;
				}
				if(document.getElementsByName(childChkBoxName)){
					var objChildChkBox = document.getElementsByName(childChkBoxName);
					//set the check value for all Child check boxes
					for(var i = 0 ; i < objChildChkBox.length ; i++){
						objChildChkBox[i].disabled=true;
					}
					if(document.getElementById(otherId))
						document.getElementById(otherId).disabled=true;
				}
			}
		}else return;
	 }
 
 
function enableDisableChilds(cbName,chkBoxParentId,otherId){
	if(document.getElementById(chkBoxParentId)){
		var objParent=document.getElementById(chkBoxParentId);
		//set the check value for all check boxes
		if(document.getElementsByName(cbName)){
			var objChildChkBox = document.getElementsByName(cbName);
			if(objParent.checked){
				for(var i = 0 ; i < objChildChkBox.length ; i++){
					objChildChkBox[i].disabled=false;
				}
				if(document.getElementById(otherId)){
					document.getElementById(otherId).disabled=false;
					}
			}else{
				clearAll(cbName,otherId);
				 for(var i = 0 ; i < objChildChkBox.length ; i++){
					 objChildChkBox[i].disabled=true;
				 }
				 if(document.getElementById(otherId))
					document.getElementById(otherId).disabled=true;
			}
		}
	}
	else return;
}




var value;

function storeLoginIDCookie(componentId){
	
	
	value=document.getElementById(componentId).value;
	if(document.registrationForm.rememberme.checked ){
	createCookie(componentId,value,30);
	}
	else {
	createCookie(componentId,"",30);
	}
	
}


// 
function setCheckBoxButtons(value, chkObjectName){
	var valueList=value.split("^");
	if(document.getElementsByName(chkObjectName)){
		var chkObject = document.getElementsByName(chkObjectName)
		for(var j = 0 ; j < valueList.length ; j++){
			for(var i = 0 ; i < chkObject.length ; i++){
				if(	chkObject[i].value == valueList[j]){
					chkObject[i].checked = true;
				}
			}
		}
	}else return;
}


function getEmailIdFromCookie(componentId){
	if(document.getElementById(componentId)!=null){
		var cookieEmail	=	readCookie(componentId);
		if(cookieEmail == null ) {
			cookieEmail	=	"";			
		} 		
		if( cookieEmail != "" ) {	
		var obj	=	document.getElementById('rememberme');		
			if(obj) 
				obj.checked	=	true;
			
		}
		
		document.getElementById(componentId).value=cookieEmail;
	}
	}

function enableDisableRegister(eleId1, eleId2){
	var eleObj1="";
	var eleObj2="";
	if(document.getElementById(eleId1)){
		eleObj1=document.getElementById(eleId1);
	    var val= eleObj1.options[eleObj1.selectedIndex].value;
	    if(val=='Yes' || val=='yes'){
	    	if(document.getElementById(eleId2)){
	    		eleObj2=document.getElementById(eleId2);
	    		eleObj2.disabled=false;
	    	}else return;
	    }else{
	    	if(document.getElementById(eleId2)){
	    		eleObj2=document.getElementById(eleId2);
	    		eleObj2.disabled=true;
	    	}else return;
	    };
	}else return;  
}
function reloadPage() {
//	alert(document.URL);
	location.href = document.URL;
}

function setStateValue(selCity) {
	var stateObj = document.getElementById("stateId");
	if(stateObj){
	      for (var i = 0; i < stateObj.length; i++) {
	         if(stateObj[i].value == selCity){
	           stateObj[i].selected = true;
	        }
	      }
	   }	   
}

function cancelClicked(url){
	if(url == 'true')
		window.location.reload();
	else
		window.open(url,'_self');
}

function closeThis(id){
	if(document.getElementById(id))
		document.getElementById(id).style.visibility = "hidden";
}

function showValidateBox(){
document.getElementById("validateBox").style.display='';

}
function hide_validateBox(objId){
document.getElementById(objId).style.display='none';
}

function submitUserForm() {
var value	=	document.getElementById('pageName').value;
switch(value){
		case("login"):
		Manager.loginvalidate();
		break;
		case("register"):
		Manager.validate();
		break;		
		case("forget"):
		var forgetform = document.getElementById('forgetform').value;
		UserManager.forgotPassword(forgetform);
		break;
		}
}

function setUserName(value) {
	if(document.getElementById("username")) {
		document.getElementById("username").value=value;
		userAvilability=true;
		document.getElementById("suggestions").style.display="none";
		document.getElementById("usernamestatus").style.display="none";
		
	}
}

function checkUser(){
	var msg	=	" User Name Requirement\n-- Minimum 6 characters\n-- Maximum 30 characters";
	var flag1=FormValidator.isLessThan("username","6",msg);	
	var flag2=FormValidator.isGreaterThan("username","30",msg);
	
	if(flag1 && flag2) 
		UserManager.checkUserName();
}

function setUserAvailability(){
	if(usercheck)
		checkUser();
}	
	    



