
/*Page Initialization Stuff*/
var qnArray=null;
var ansArray=null;
var qnPointer=0;
var totalQn=71;
var isValidEmail=false;
var nFocus=false;
var nlFocus=false;
var cnFocus=false;
var cnlFocus=false;

var initPage=function(){
	/*We need to create a list of calculation and there answer*/	
	qnPointer=Math.round(Math.random()*10);		
	initQnAnsValue();	
	renderQn();
	$('changeQnA').observe('click',changeQn);
	/*Question Pointer decision*/
	/*$('parent_email').observe('change',checkLogin.bindAsEventListener(this,'email'));*/	
	$('parent_name').observe('change',validateName);
	$('classId').observe('change',checkGrade);
	$('name').observe('change',validateChildName);
	//$('zip').observe('change',checkZip);
	$('stateId').observe('change',checkState);
	//$('parent_lastname').observe('change',validateName);
	$('password1').observe('change',validatePwd.bindAsEventListener(this,'password1'));
	$('password2').observe('change',validatePwd.bindAsEventListener(this,'password2'));
	$('captchaAns').observe('change',validateCaptcha);
	$('aggCheck').observe('change',validateAggCheck);
	$('email').observe('change',checkChildEmail);
	$('parent_email').observe('change',checkParentEmail)
}


var changeSubmitQn=function(obj,id){
	if(obj.value=='MONTHLY'){
		$('Register').value="Pay";
	}else{
		$('Register').value="Register";
	}
	$('planErrDiv').hide();	
}

var checkChildEmail=function(){
		var isValid=true;
		if($('email').value==""){
			$('emailErrDiv').hide();		
			addValidClass('email');
		}else{
			if(!validateEmail($('email').value)){			
				$('emailErrDiv').show();			
				$('emailErrSpan').update("<span style='color:#f50919;'>Invalid Email</span>");
				addInValidClass('email');
				isValid=false;		
			}else{
				$('emailErrDiv').hide();		
				addValidClass('email');
			}
		}
		return isValid;
}

var checkParentEmail=function(){
	var isValid=true;
	if($('parent_email').value==""){
		$('parent_emailErrDiv').show();			
		$('parent_emailErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('parent_email');
		isValid=false;	
	}else{
		if(!validateEmail($('parent_email').value)){			
			$('parent_emailErrDiv').show();			
			$('parent_emailErrSpan').update("<span style='color:#f50919;'>Invalid Email</span>");
			addInValidClass('parent_email');
			isValid=false;		
		}else{
			$('parent_emailErrDiv').hide();		
			addValidClass('parent_email');
		}
	}
	return isValid;
}

var checkZip=function(){	
	var isValid=true;
	if($('zip').value==""){
		$('zipErrSpan').update('<span style="color:#f50919;">Required</span>');
		$('zipErrDiv').show();		
		addInValidClass('zip');
		isValid=false;
	}else{
		if(!isNumber($('zip').value)){
			$('zipErrSpan').update('<span style="color:#f50919;">5 digit ZIP required</span>');
			$('zipErrDiv').show();			
			addInValidClass('zip');
			isValid=false;
		}else{
			if($('zip').value.length>0&&$('zip').value.length<5){
				$('zipErrSpan').update('<span style="color:#f50919;">5 digit ZIP required</span>');
				$('zipErrDiv').show();			
				addInValidClass('zip');
				isValid=false;
			}else{
				$('zipErrDiv').hide();
				addValidClass('zip');
			}
		}
	}
	return isValid;
	
}

var isNumber=function(str){
	var numRegEx=/^[0-9]*$/;
	
	if(str.match(numRegEx)){
		return true;	
	}else{		
		return false;
	}
}	

var checkState=function(){
	var isValid=true;
	if($('stateId').value==""){
		$('stateErrDiv').show();
		$('stateErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('stateId');	
		isValid=false;		
	}else{
		$('stateErrDiv').hide();
		addValidClass('stateId');		
	}
	return isValid;
}

var checkGrade=function(){
	var isValid=true;
	if($('classId').value==""){
		$('classErrDiv').show();
		$('classErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('classId');		
		isValid=false;		
	}else{
		$('classErrDiv').hide();
		addValidClass('classId');		
	}
	return isValid;
}

var validateCaptcha=function(){
	if($('captchaAns').value==""){
		$('captchaErrDiv').show();
		$('captchaErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('captchaAns');				
	}else{
		$('captchaErrDiv').hide();
		addValidClass('captchaAns');			
	}
}

var validateAggCheck=function(){
	if($('aggCheck').checked==false){
		$('aggErrDiv').show();
		$('aggErrSpan').update("<span style='color:#f50919;'>Please accept terms &amp; conditions</span>");
		addInValidClass('aggCheck');				
	}else{
		$('aggErrDiv').hide();
		addValidClass('aggCheck');		
	}
}

var nameFocus=function(isChild){
	if(isChild){
		if(!cnFocus){
			$('name').setStyle({
				backgroundImage:''			  
			});
			cnFocus=true;
		}
	}else{
		if(!nFocus){
			$('parent_name').setStyle({
				backgroundImage:''			  
			});
			nFocus=true;
		}
	}
}

var lastNameFocus=function(isChild){
	if(isChild){
		if(!cnlFocus){
			$('lastName').setStyle({
			  backgroundImage: ''			  
			});
			cnlFocus=true;
		}
		
	}else{
		if(!nlFocus){
			$('parent_lastname').setStyle({
			  backgroundImage: ''			  
			});
			nlFocus=true;
		}
	}
}

var validatePwd=function(event,mode){
	if(mode=='password1'){
		if($('password1').value==""){
			$('passwordErrDiv').show();
			$('passwordErrSpan').update("<span style='color:#f50919;'>Required</span>");
			addInValidClass('password1');						
		}else{
			$('passwordErrDiv').hide();
			addValidClass('password1');			
		}
	}
	
	if(mode=='password2'){
		if($('password2').value==""){
			$('rePasswordErrDiv').show();
			$('rePasswordErrSpan').update("<span style='color:#f50919;'>Required</span>");			
			addInValidClass('password2');			
		}else{
			$('rePasswordErrDiv').hide();
			addValidClass('password2');			
		}		
	}
	
	if($('password1').value!=""&&$('password2').value!=""){
		$('passwordErrDiv').hide();			
		if($('password1').value!=$('password2').value){
			$('rePasswordErrDiv').show();
			$('rePasswordErrSpan').update("<span style='color:#f50919;'>Passwords Don't <br />Match</span>");
			addInValidClass('password2');			
		}else{
			$('rePasswordErrDiv').hide();
			addValidClass('password2');							
		}
	}
}


var validateName=function(){
	var isValid=true;
	if($('parent_name').value==""){
		isValid=false;
		addInValidClass('parent_name');		
	}else{
		addValidClass('parent_name');		
	}	
	if(!isValid){
		$('nameErrDiv').show();
		$('nameErrSpan').update("<span style='color:#f50919;'>Required</span>");
	}else{
		$('nameErrDiv').hide();
	}
	
	return isValid;
}

var validateChildName=function(){
	var isValid=true;
	if($('name').value==""){		
		addInValidClass('name');
		isValid=false;
	}else{
		isValid=true;
		addValidClass('name');		
	}	
	if(!isValid){
		$('nameErrDiv2').show();
		$('nameErrSpan2').update("<span style='color:#f50919;'>Required</span>");
	}else{
		$('nameErrDiv2').hide();
	}
	return isValid;
}

var submitForm=function(){	
	if(validateForm()){
		/*Invoking a overlay window with message..*/
		getRegFormSubmitOverlay();
		return true;	
	}else{
		return false;
	}
}

var getRegFormSubmitOverlay=function(){
	var disableMessage='<div style="clear:both;width:400px;height:150px;">'+
	'<div style="clear:both;text-align:center;padding:10px;">'+
	'<div style="float:left;color:#808080;font-size:25px;">Creating....</div>'+
	'<div style="float:left;padding-left:5px;padding-top:9px;"></div>'+
	'</div>'+
	'<div style="clear:both;padding:10px;">'+
	'<table cellspacing="0" cellpadding="0" border="0" style="width:400px;"><tr><td valign="top" width="22" style="padding-top:3px;padding-left:10x;padding-right:5px;"><img src="images/10Marks-grade-correct.gif" style="padding-left:20x;" />'+
	'</td><td valign="top"><div style="color:#808080;font-size:14px;">your parent account<div></td></tr><tr><td valign="top" width="22" style="padding-top:3px;padding-left:10x;padding-right:5px;">'+
	'<img src="images/10Marks-grade-correct.gif" style="padding-left:20x;" /></td><td valign="top"><div style="color:#808080;font-size:14px;">your child&#39;s student account<div></td>'+
	'</tr><tr><td valign="top" width="22" style="padding-top:3px;padding-left:10x;padding-right:5px;"><img src="images/10Marks-grade-correct.gif" style="padding-left:20x;" /></td><td valign="top">'+
	'<div style="color:#808080;font-size:14px;">playlist for your child (mapped to state standards)<div></td></tr></table>'
	'</div>'+					
	'</div>';
	var modal=new Dialog({	        
		content:disableMessage,
		close:{
			link:false,
			overlay:false,
			esc:false
			}
		});
	modal.open();
}

var validateForm=function(){
	var status=true;
	/*Validate the name field*/
	if(!validateName()){
		status=false;
	}
	if(!validateChildName()){
		status=false;
	}
	/*validate grade*/
	if(!checkGrade()){
		status=false;
	}
	/*validate zip
	if(!checkZip()){
		status=false;
	}*/
	/*validate state*/
	if(!checkState()){
		status=false;
	}
	/*Parent Email*/
	if(!checkParentEmail()){
		status=false;
	}
	/*Child Email*/
	if(!checkChildEmail()){
		status=false;
	}
	/*Validate the password stuff*/
	if($('password1').value==""){
		$('passwordErrDiv').show();
		$('passwordErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('password1');			
		status=false;
	}
	
	if($('password2').value==""){
			$('rePasswordErrDiv').show();
			$('rePasswordErrSpan').update("<span style='color:#f50919;'>Required</span>");			
			addInValidClass('password2');					
			status=false;
	}else{
		$('rePasswordErrDiv').hide();				
		addValidClass('password2');		
	}
	
	if($('password1').value!=""&&$('password2').value!=""){
		$('passwordErrDiv').hide();
		addValidClass('password1');		
		if($('password1').value!=$('password2').value){
			$('rePasswordErrDiv').show();
			$('rePasswordErrSpan').update("<span style='color:#f50919;'>Passwords Don't <br />Match</span>");
			addInValidClass('password2');			
			status=false;
			}else{
				$('rePasswordErrDiv').hide();
				addValidClass('password2');						
			}
	}
		
	
	/*Validate the captch entry*/
	if($('captchaAns').value==""){
		$('captchaErrDiv').show();
		$('captchaErrSpan').update("<span style='color:#f50919;'>Required</span>");
		addInValidClass('captchaAns');		
		status=false;
	}else{
		if($('captchaAns').value!=ansArray[qnPointer]){
			$('captchaErrDiv').show();
			$('captchaErrSpan').update("<span style='color:#f50919;'>Try Again</span>");
			addInValidClass('captchaAns');			
			status=false;
			changeQn();
			$('captchaAns').value="";
		}else{
			$('captchaErrDiv').hide();
			addValidClass('captchaAns');			
		}
	}
	/*Validate the aggrement*/
	if($('aggCheck').checked==false){
		$('aggErrDiv').show();
		$('aggErrSpan').update("<span style='color:#f50919;'>Please accept terms &amp; conditions</span>");
		addInValidClass('aggCheck');
		status=false;		
	}else{
		$('aggErrDiv').hide();
		addValidClass('aggCheck');		
	}

	if(!isCehckedRadioGroup('regbean.planCode')){
		$('planErrDiv').show();
		$('planErrSpan').update("<span style='color:#f50919;'>Select a Payment Plan</span>");
		status=false;
	}else{
		$('planErrDiv').hide();
	}
	
	return  status;
}

var isCehckedRadioGroup=function(obj){
	var radioGrp= document.getElementsByName(obj); //Eventually document.getElementById Will not run.
	if(radioGrp!=null){
		for (var i = 0; i < radioGrp.length; i++) {
		  if (radioGrp[i].checked) {
			 return true;
		   }
		}
		return false;
	}else{
		return null;
	}

}

var changeSubmitQn=function(obj,id){
	if(obj.value=='MONTHLY'){
		$('regSub').value="Pay";
	}else{
		$('regSub').value="Register";
	}
	$('planErrDiv').hide();
	
}

var checkLogin=function(event){	
	var toCheck=null;	
		isValidEmail=false;
		toCheck=$('parent_email').value;
		if($('parent_email').value==""){
			$('emailInfoDiv').hide();
			$('emailErrDiv').show();			
			$('emailErrSpan').update("<div class='left top5'><img src='images/10Marks-incorrect.gif' /></div><div class='left left2 top5'><span style='color:#f50919;'>Required</span></div>");
			addInValidClass('parent_email');			
			return false;
		}
		if(!validateEmail(toCheck)){
			$('emailInfoDiv').hide();
			$('emailErrDiv').show();			
			$('emailErrSpan').update("<div class='left top5'><img src='images/10Marks-incorrect.gif' /></div><div class='left left2 top5'><span style='color:#f50919;'>Invalid Email</span></div>");
			addInValidClass('parent_email');			
			return false;						
		}		
		$('emailErrDiv').hide();
		addValidClass('parent_email');
		$('emailInfoDiv').update("<div class='left top5'><img src='images/map-loader.gif' /></div><div class='left left2 top5'>Working</div>").show();
			

		new Ajax.Request('rgdoCheckValidLogIn.action',{method:'post',
							parameters:{'regbean.email':toCheck},
							onSuccess:function(transport){
								var response = transport.responseText;
      							if(response.isJSON()){
      								response=response.evalJSON();      								
      								if(response.status=="success"){      									
      										$('emailInfoDiv').show().update("<div class='left top5 left3'><img src='images/10Marks-grade-correct.gif' /></div><div class='left left5 top10'><span style='color:#80d100;font-weight:bold;'>AVAILABLE</span></div>");
      										$('emailErrDiv').hide();
      										isValidEmail=true;      									  																	
      								}else{      									
      										$('emailErrSpan').update("<div class='left top5'><img src='images/10Marks-incorrect.gif' /></div><div class='left left5 top2'><span style='color:#df3c35;'>This email ID is <br />already registered</span></div>");
      										$('emailErrDiv').show();
      										$('emailInfoDiv').hide();
      										addInValidClass('parent_email');      									
      								}
      							}else{
      								
      								$('emailErrSpan').update("<div class='left top5'><img src='images/10Marks-incorrect.gif' /></div><div class='left left5 top2'><span style='color:#df3c35;'>This email ID is <br />already registered</span></div>");
      								$('emailErrDiv').show();
      								$('emailInfoDiv').hide();
      								addInValidClass('parent_email');
      									
      							}		 
							 },
							onFailure:function(response){
								
								
							}		
			});	
}
var validateEmail=function(str){
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;	
	if(str.match(emailRegEx)){
		return true;	
	}else{		
		return false;
	}
}

var initQnAnsValue=function(){
	qnArray=new Array();
	ansArray=new Array();
	qnArray[0]="3 + 2";
	ansArray[0]="5";
	qnArray[1]="4 + 3";
	ansArray[1]="7";
	qnArray[2]="6 + 1";
	ansArray[2]="7";
	qnArray[3]="1 + 3";
	ansArray[3]="4";
	qnArray[4]="2 + 4";
	ansArray[4]="6";
	qnArray[5]="9 + 3";
	ansArray[5]="12";
	qnArray[6]="5 + 3";
	ansArray[6]="8";
	qnArray[7]="3 + 6";
	ansArray[7]="9";
	qnArray[8]="5 + 2";
	ansArray[8]="7";
	qnArray[9]="7 + 1";
	ansArray[9]="8";
	qnArray[10]="8 + 4";
	ansArray[10]="12";
	qnArray[11]="2 + 3";
	ansArray[11]="5";
	qnArray[12]="3 + 4";
	ansArray[12]="7";
	qnArray[13]="1 + 6";
	ansArray[13]="7";
	qnArray[14]="3 + 1";
	ansArray[14]="4";
	qnArray[15]="8 + 4";
	ansArray[15]="12";
	qnArray[16]="3 + 9";
	ansArray[16]="12";
	qnArray[17]="3 + 5";
	ansArray[17]="8";
	qnArray[18]="6 + 3";
	ansArray[18]="9";
	qnArray[19]="2 + 5";
	ansArray[19]="7";
	qnArray[20]="1 + 7";
	ansArray[20]="8";
	qnArray[21]="4 + 8";
	ansArray[21]="12";
	qnArray[22]="9 - 3";
	ansArray[22]="6";
	qnArray[23]="6 - 1";
	ansArray[23]="5";
	qnArray[24]="7 - 5";
	ansArray[24]="2";
	qnArray[25]="9 - 4";
	ansArray[25]="5";
	qnArray[26]="8 - 2";
	ansArray[26]="6";
	qnArray[27]="9 - 1";
	ansArray[27]="8";
	qnArray[28]="5 - 1";
	ansArray[28]="4";
	qnArray[29]="7 - 3";
	ansArray[29]="4";
	qnArray[30]="6 - 3";
	ansArray[30]="3";
	qnArray[31]="5 - 2";
	ansArray[31]="3";
	qnArray[32]="6 - 3";
	ansArray[32]="3";
	qnArray[33]="7 - 2";
	ansArray[33]="5";
	qnArray[34]="9 - 2";
	ansArray[34]="7";
	qnArray[35]="6 - 2";
	ansArray[35]="4";
	qnArray[36]="7 - 3";
	ansArray[36]="4";
	qnArray[37]="9 - 8";
	ansArray[37]="1";
	qnArray[38]="8 - 5";
	ansArray[38]="3";
	qnArray[39]="9 - 4";
	ansArray[39]="5";
	qnArray[40]="5 - 3";
	ansArray[40]="2";
	qnArray[41]="7 - 6";
	ansArray[41]="1";
	qnArray[42]="6 - 4";
	ansArray[42]="2";
	qnArray[43]="5 - 4";
	ansArray[43]="1";
	qnArray[44]="6 - 5";
	ansArray[44]="1";
	qnArray[45]="7 - 4";
	ansArray[45]="3";
	qnArray[46]="1 X 2";
	ansArray[46]="2";
	qnArray[47]="1 X 3";
	ansArray[47]="3";
	qnArray[48]="1 X 4";
	ansArray[48]="4";
	qnArray[49]="1 X 5";
	ansArray[49]="5";
	qnArray[50]="1 X 6";
	ansArray[50]="6";
	qnArray[51]="1 X 7";
	ansArray[51]="7";
	qnArray[52]="2 X 8";
	ansArray[52]="16";
	qnArray[53]="2 X 9";
	ansArray[53]="18";
	qnArray[54]="2 X 1";
	ansArray[54]="2";
	qnArray[55]="2 X 2";
	ansArray[55]="4";
	qnArray[56]="2 X 3";
	ansArray[56]="6";
	qnArray[57]="2 X 4";
	ansArray[57]="8";
	qnArray[58]="2 X 5";
	ansArray[58]="10";
	qnArray[59]="2 X 6";
	ansArray[59]="12";
	qnArray[60]="2 X 7";
	ansArray[60]="14";
	qnArray[61]="2 X 8";
	ansArray[61]="16";
	qnArray[62]="2 X 9";
	ansArray[62]="18";
	qnArray[63]="3 X 1";
	ansArray[63]="3";
	qnArray[64]="3 X 2";
	ansArray[64]="6";
	qnArray[65]="3 X 3";
	ansArray[65]="9";
	qnArray[66]="3 X 4";
	ansArray[66]="12";
	qnArray[67]="3 X 5";
	ansArray[67]="15";
	qnArray[68]="3 X 6";
	ansArray[68]="18";
	qnArray[69]="3 X 7";
	ansArray[69]="21";
	qnArray[70]="3 X 8";
	ansArray[70]="24";
	qnArray[71]="3 X 9";
	ansArray[71]="27";
}

var renderQn=function(){
	$('captchaQn').update(qnArray[qnPointer]);
}

var changeQn=function(){
	if(qnPointer<totalQn-1){
		qnPointer=qnPointer+1;
	}else{
		qnPointer=0;
	}
	renderQn();
	
}

var addInValidClass=function(objId){
	if($(objId).hasClassName('valid-cs')){			
		$(objId).removeClassName('valid-cs'); 
	}
	if(!$(objId).hasClassName('invalid-cs')){			
		$(objId).addClassName('invalid-cs'); 
	}
}

var addValidClass=function(objId){
	if(!$(objId).hasClassName('valid-cs')){			
		$(objId).addClassName('valid-cs'); 
	}
	if($(objId).hasClassName('invalid-cs')){			
		$(objId).removeClassName('invalid-cs'); 
	}
}

var showWsStart=function(wsId,trackId){		
	var iframeUrl='j-exploretm-index.action';
	var modal=new Dialog({				
			width:840,
			height:500,
			padding:0,
			margin:0,
			title:'Interactive Demo',
			iframe:iframeUrl,				
			close:{
            link:true,
            overlay:true,
            esc:true
    		}
		});
	modal.open();	
}
var cancelExplore=function(){
	//$('exploreTmDiv').scrollTo();
	Dialogs.close();	
}
/*At the root of the javascript file on dom load stuff of prototype*/
document.observe("dom:loaded", function() {			
			initPage();
			//pageMsgGTr.error("Dom Loaded!!",{sticky: true});
		});