// 21 sep 2008

// to clear label values
var originalWindowLocation = '';
var d2dtotErr= new Array(); 
var chkClr = "y";
var mainErrorFlag = 1;
var rmdMeMyItinErrorCount = -1;
var lblVal="";

String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/gi,"") };

function clrSrvErr() {	
	var islabel = false;
	//clear values
	d2dtotErr[0] = 0;
	d2dtotErr[1]='';
	//clear server side errors
	arrDiv=document.getElementsByTagName('div');
	for(var j=0; j<arrDiv.length; j++) {		
		if (arrDiv[j].className == 'd2derr') {
			if (arrDiv[j].id){
				isSrvDiv = /srvErr/.test(arrDiv[j].id);
				if (isSrvDiv == true){
					arrDiv[j].innerHTML='';
					arrDiv[j].className='d2dDisplayNone';
					//arrDiv[j].visibility='hidden';
					//arrDiv[j].style.display='none';
				}
				islabel = /label/.test(arrDiv[j].id);
			}
			if (islabel ==true) {
				arrDiv[j].className='';
			}
			else {
				arrDiv[j].className='';
			}
		}
	}
	

}

function regErrHandle(inpField,errT,lblField,errField) {
	lblVal = document.getElementById(lblField);
	lblVal.className='d2derr';
	errMsg = 'sErrMsg'+inpField;
	errVal = document.getElementById(errField);
	errVal.className='d2derr';
	errCon = errVal.innerHTML;
	if (!errCon){
		errVal.innerHTML = eval(errMsg);
	}
	else {
		errVal.innerHTML = errVal.innerHTML + '<br>' 
		errVal.innerHTML = errVal.innerHTML + eval(errMsg);
	}
	
	return inpField;
}

// to append and to change label color as red this function is called

function spcErrHandle(inpField,errT,lblField,errField,errMsg) {
	if(lblField == 'none'){
	}else {
	lblVal = document.getElementById(lblField);
	lblVal.className='d2dMyItinerr';
	}
	errVal = document.getElementById(errField);
	//errVal.style.display='block';
	errVal.className='d2dMyItinerr';
	errCon = errVal.innerHTML;
	if (!errCon){
		errVal.innerHTML = errMsg;
	}
	else {
		errVal.innerHTML = errVal.innerHTML + '<br>' 
		errVal.innerHTML = errVal.innerHTML + errMsg;
	}
	return inpField;
}


var mainErrorFlag = 1;
var shipaddressErrorCount = -1;

// main validation method

function validateD2DForm(xForm){
	
	rmdMeDaysClicked = "Yes";
	// clear all previous values
	clrSrvErr();
	// clear all previous error messages
	d2dSrchErr('false');
	
	// main validating method
	d2dSrchErr(d2dtotErr,xForm);

	
	
	// to display main error starts..
	if (mainErrorFlag > 1) {				
		if (typeof requestSubmitted == 'boolean') {
		requestSubmitted = false;
		}
		mainVal = document.getElementById('mainerr');
		mainVal.display='visible';
		mainVal.className='w';				
		mainVal.innerHTML = "<div><p class='d2derr'>"+sD2dErrMain+"</p></div>";				
		mainVal.visibility='visible';	
		
		document.getElementById("mainerr").focus();
		
	
	}

	// to display main error ends..	
	// to focus on error field if only one error.
	if (d2dtotErr[0] == 1){
		if (typeof requestSubmitted == 'boolean') {
			requestSubmitted = false;
		}		
		
		document.getElementById("mainerr").focus();
	}

	if (d2dtotErr[0] > 1){
		if (typeof requestSubmitted == 'boolean') {
			requestSubmitted = false;
		}		
		//focField = document.getElementById(d2dtotErr[1]);		
		//focField.focus();
		
		document.getElementById("mainerr").focus();
		
	}

	// If no proceed with form submission
	if (d2dtotErr[0] == 0){
		if (typeof requestSubmitted == 'boolean') {
			requestSubmitted = true;
		}
		if(xForm == 'remindMeMyItinForm'){			
			submitMyItinSchdReminder();
		}else {				
			//document.forms[xForm].submit();
		}

	}
}

// extracts each and every label from the html and validates the input field

function d2dSrchErr(chkClr, xFormVal){

	
	d2dtotErr[0]=0;	
	arrLab=document.getElementsByTagName('label');
	
	for(var i=0; i<arrLab.length; i++) {
	   yName = arrLab[i].id;
	   
	
		if (yName) {
			xName = document.getElementById(yName);
			if (xName.id.indexOf("label-") > -1) {
				xDefs=xName.id.split("-");
				//label-city-none-errloc1
				// xDefs[1] = input field name
				// xDefs[2] = type of error
				// xDefs[3] = err field name
				
				if (chkClr != 'false'){
					
					d2dcntErrs(d2derrList(xDefs[1],xDefs[2],arrLab[i].id,xDefs[3],xFormVal),d2dtotErr);					
				}
				else {				
					//remove all errors								
					lblVal = document.getElementById(yName);
					lblVal.className='';
					errVal = document.getElementById(xDefs[3]);
					errVal.innerHTML = '';
					//errVal.className='errhide';
					errVal.className='d2dDisplayNone';
				}					
		 	}
		}
	}
	if (chkClr == 'false') {
		if(document.getElementById("mainerr")){
		mainVal = document.getElementById("mainerr");
		mainVal.innerHTML = '';
		mainVal.className='d2dDisplayNone';
		//mainVal.className='errhide';
		//mainVal.visibility='none';
		mainErrorFlag = 1;
		}

		if(document.getElementById("fedExMainErr")){
		mainVal = document.getElementById("fedExMainErr");
		mainVal.innerHTML = '';
		mainVal.className='d2dDisplayNone';
		//mainVal.className='errhide';
		//mainVal.visibility='none';
		}

	}
	return d2dtotErr;
}

// to counr no of error messages. Based on count the corresponding input field gets focused
function d2dcntErrs(idToFoc) {
	
if (idToFoc){
	d2dtotErr[0]++
	d2dtotErr[1]=idToFoc;
}
return d2dtotErr;
}

// validation done at label level

function d2derrList(inpField,errT,lblField,errField,xFormVal) {	
	

if(xFormVal == 'remindMeMyItinForm'){

//Ship bags validation in select bags screen starts...
	
	if(errT == 'rmdMeMyItin'){
		
			rmdMeMyItinErrorCount = -1;
			if(inpField == 'firstname'){			
				chkVal=document.getElementById('firstname');
				chkVal.value = chkVal.value.trim();			
				isalpha = /^[ a-zA-Z\'\-]+$/.test(chkVal.value);
				if (chkVal.value == '') {				
					inpField = 'firstname';
					mainErrorFlag++;
					rmdMeMyItinErrorCount++;
					spcErrHandle('firstname',errT,'label-firstname-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgFirstNameReq);
					 return inpField;
				} else if (!isalpha) {
					inpField = 'firstname';
					mainErrorFlag++;
					rmdMeMyItinErrorCount++;
					 spcErrHandle('firstname',errT,'label-firstname-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgFirstNameValid);
					 return inpField;
				}
			}
			if(inpField == 'lastname'){			
				chkVal=document.getElementById('lastname');
				chkVal.value = chkVal.value.trim();			
				isalpha = /^[ a-zA-Z\'\-]+$/.test(chkVal.value);
				if (chkVal.value == '') {				
					inpField = 'lastname';
					mainErrorFlag++;
					rmdMeMyItinErrorCount++;
					spcErrHandle('lastname',errT,'label-lastname-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgLastNameReq);
					 return inpField;
				} else if (!isalpha) {
					inpField = 'lastname';
					mainErrorFlag++;
					rmdMeMyItinErrorCount++;
					 spcErrHandle('lastname',errT,'label-lastname-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgLastNameValid);
					 return inpField;
				}
			}
			
			
			
			
			// email validation starts..

 

                   if (inpField == 'emailAddr') {

                             chkVal=document.getElementById('emailAddr');
							 chkVal.value = chkVal.value.trim();

                             if (chkVal.value == '') {                                    

                                      inpField = 'emailAddr';

                                      mainErrorFlag++;

                                      rmdMeMyItinErrorCount++;

                                      spcErrHandle('emailAddr',errT,'label-emailAddr-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgEmailReq);

                                       return inpField;

                             } else if ( chkVal.value.length > 0 )

                             {

                             

                                      if(chkVal.value.indexOf(",") != -1 ){

                                      var emailAddrArr = chkVal.value.split(",");

                                      

                                      for(var emailCounter=0; emailCounter<emailAddrArr.length; emailCounter++) {

                                      

                                      

                                      emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|))$/i.test(emailAddrArr[emailCounter]);

 

                                      if (emailAddrArr[emailCounter].length < 7 || emailAddrArr[emailCounter].length > 35  || emailRe == false) {

                                                inpField = 'emailAddr';

                                                mainErrorFlag++;

                                                rmdMeMyItinErrorCount++;

                                                spcErrHandle('emailAddr',errT,'label-emailAddr-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgEmailValid);

                                                 return inpField;

                                      }        

                                      

                                      }//for loop ends

                                      

                                      }else {

                                                emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|))$/i.test(chkVal.value);

 

                                                if (chkVal.value.length < 7 || chkVal.value.length > 35  || emailRe == false) {

                                                          inpField = 'emailAddr';

                                                          mainErrorFlag++;

                                                          rmdMeMyItinErrorCount++;

                                                          spcErrHandle('emailAddr',errT,'label-emailAddr-rmdMeMyItin-rmdMeMyItinerrloc1',errField,sErrMsgEmailValid);

                                                           return inpField;

                                                }

                                      }

                             } // else if ends

                   }

 

          // email validation ends..


		}

}

}






