/****************************************************************************   
Java Scripts used for Event Registration/Unregistration functionality
***************************************************************************/
var sessionErrMsg="";
var titleErrMsg="";
var firstNameErrMsg="";
var lastNameErrMsg="";
var emailIdErrMsg="";
var phoneNoErrMsg="";
var address1ErrMsg="";
var cityErrMsg="";
var postalCodeErrMsg="";
var countryErrMsg="";
var privacyPolErrMsg="";
var emailIdCheck=false;
var validEmail = true;
var emailValidMsg="";
var reqErrorMsg ="";

function sessionErrorMessage(sessionMsg){
	sessionErrMsg = sessionMsg;	
}
function emailValidationMessage(emailMsg){
	emailValidMsg = "<br />"+emailMsg;
}
function requiredFieldErrorMsg(reErrorMsg){
	reqErrorMsg = reErrorMsg;	
}

/* Function to submit event registration form. */
function submitRegisterForm(){
	
		var selected = 0;
		var errorMsg = '<p class="errorText">'+sessionErrMsg+'</p>';
		var checkboxObject=document.getElementsByName("sessionName");
		for (i=0; i<checkboxObject.length; i++){			
			if (checkboxObject[i].checked){
				selected = selected+1;
			}
		}
		
		if(selected > 0 || checkboxObject.length == 1){
			document.getElementById('regForm').submit();
			document.all.errors.innerHTML = "";
		}else{
			document.all.errors.innerHTML =errorMsg ;
			if(document.getElementById('reqFieldError')!= null){
			document.getElementById('reqFieldError').innerHTML	= reqErrorMsg;
			}	
	}
}
	

/* Function to format session dates as per local system setting. (Registration Process)*/
function formatEventSessionDate(startDate, endDate, multiSession, fieldName, sessionId){
		var date;
		var startDT;
		var endDT;
		var includeTime;
		var onlyTime;
		if(!multiSession) {
			includeTime = true;
			onlyTime = false;
		} else {
			includeTime = false;
			onlyTime = true;
		}
	    
		startDT = formatDateInStr(startDate, true, false);
		endDT = formatDateInStr(endDate, includeTime, onlyTime);
		date = sessionId+"|"+startDT+"|"+endDT; //To create a formate sessionId_SessionDate
		document.write('<input type="hidden" name="' + fieldName + '" value="' + date + '"/>');
		//return date;
	}
	

function countryIndex()
{	
	document.registrationForm.selectedIndexValue.value=document.registrationForm.country.selectedIndex;	
}

function setCountryIndex()
{	
	document.getElementById("hidingUnhiding").className = "";
	if(index!=null)
	{	
		document.registrationForm.country[index].selected = "1";
	}
	Custom.init();
}

function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}


function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}


function trim( value ) {
	return LTrim(RTrim(value));
	
}

function formValidationMessages(firstNameMsg, lastNameMsg, emailIdMsg, phoneNoMsg, address1Msg, cityMsg, postalCodeMsg, countryMsg, policyMsg){
	firstNameErrMsg=firstNameMsg;
	lastNameErrMsg=lastNameMsg;
	emailIdErrMsg=emailIdMsg;
	phoneNoErrMsg=phoneNoMsg;
	address1ErrMsg=address1Msg;
	cityErrMsg=cityMsg;
	postalCodeErrMsg=postalCodeMsg;
	countryErrMsg=countryMsg;
	privacyPolErrMsg=policyMsg;
}


/* Function to validate the registration form and adds error messages to a var. */
function validationFunc(){
	var hasErrors=false;
	var errorMsgFromValidateForm=false;
	/*if(trim(document.registrationForm.title.value)==""){
		document.getElementById('titleLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('titleLabel').className ="requiredFieldLabel";
	}*/
	if(trim(document.registrationForm.firstName.value)==""){
		document.getElementById('firstNameLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('firstNameLabel').className ="requiredFieldLabel";
	}
	if(trim(document.registrationForm.lastName.value)==""){
		document.getElementById('lastNameLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('lastNameLabel').className ="requiredFieldLabel";
	}
	emailIdCheck = ValidateForm();
	if(emailIdCheck){		
			document.getElementById('emailIdLabel').className = "errorText";
			hasErrors = true;
	}else{
		document.getElementById('emailIdLabel').className ="requiredFieldLabel";
	}
	validEmail = ValidateEmail();
	if(!validEmail){
		document.getElementById('emailIdError').innerHTML =emailValidMsg;
		hasErrors = true;
	}else{
		document.getElementById('emailIdError').innerHTML ="";
	}
	if(trim(document.registrationForm.phone.value)==""){	
		document.getElementById('phoneLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('phoneLabel').className ="requiredFieldLabel";
	}
	if(trim(document.registrationForm.address1.value)==""){
		document.getElementById('address1Label').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('address1Label').className ="requiredFieldLabel";
	}
	if(trim(document.registrationForm.city.value)==""){		
		document.getElementById('cityLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('cityLabel').className ="requiredFieldLabel";
	}
	/* commented for QC defect 15195
	if(trim(document.registrationForm.zip.value)==""){
		document.getElementById('zipLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('zipLabel').className ="requiredFieldLabel";
	}
	*/
	if( document.registrationForm.country.selectedIndex==""){
		document.getElementById('countryLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('countryLabel').className ="requiredFieldLabel";
	}
	if(document.registrationForm.privacyPol.checked==0){
		document.getElementById('privacyPolLabel').className = "errorText";
		hasErrors = true;
	}else{
		document.getElementById('privacyPolLabel').className ="requiredFieldLabel";
	}
	if(!hasErrors){
		document.getElementById("hidingUnhiding").className = "";
		document.registrationForm.submit();
		return true;
	}
	else{
		document.getElementById("hidingUnhiding").className = "errorText";
		return false;
	}
}

/* Function to validate an e-mail address. */
function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1){
		   return false;
		}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;
		}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false;
		}
		 if (str.indexOf(at,(lat+1))!=-1){
		    return false;
		 }
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;
		 }
		 if (str.indexOf(dot,(lat+2))==-1){
		    return false;
		 }
		 if (str.indexOf(" ")!=-1){
		    
		    return false;
		 }
		 if(lstr-1==ldot){
			 return false;
		 }
 		 return true	;				
	}

/* Function to validate the entries in event registration form. */
function ValidateForm(){
	var emailID=document.registrationForm.emailAdd;
	if ((emailID.value==null)||(emailID.value=="")){
	 emailIdCheck = true;
	}else{
		emailIdCheck = false;
	}
	return emailIdCheck;
 }
function ValidateEmail(){
	var emailAddress=document.registrationForm.emailAdd;
	if (echeck(emailAddress.value)==false){
		validEmail = false;
	}else{
		validEmail = true;
	}
	return validEmail;
 }
 
function imposeMaxLength(Object, MaxLen){
	return (Object.value.length <= MaxLen);
}

/* Fuction to format event dates as per local system setting. (Registration process)*/
function formattedtDate(milliSecs, includeTime, onlyTime) {
		var displayDate =  new Date();
		var date;

		//  1.5.4 fix to resolve dst issues
		 
		 var stdoffset = stdTimeZoneOffset()*60*1000;
		 
		 var convertedTime= eval(milliSecs) + eval(stdoffset);
		 /*
		var offset = displayDate.getTimezoneOffset() * 60 * 1000;
        var convertedTime = eval(milliSecs) + eval(offset);*/

		displayDate.setTime(convertedTime);
		if(!onlyTime){
			if(includeTime){
				date = displayDate.toLocaleString();
			}else{
				date = displayDate.toLocaleDateString();
			}
		}else{
			date = displayDate.toLocaleTimeString();
		}
		var index = date.lastIndexOf(":");
		
		if(index > 0) {
		var subStr = date.substring(index).substring(3);
		date = date.substring(0,index)+subStr;
		}
		return date;
}




/* Function to submit unregistration form. */
function submitUnregisterForm(){
		document.unregisterForm.submit();
}
	
/* Function to formate event dates as per local system settings. (Ungregistration process)*/
function formatEventDate(milliSecs, includeTime, onlyTime, fieldName){
		var displayDate =  new Date();
		var stdoffset = stdTimeZoneOffset()*60*1000;		 
		 var convertedTime= eval(milliSecs) + eval(stdoffset);
/*		var offset = displayDate.getTimezoneOffset() * 60 * 1000;
        var convertedTime = eval(milliSecs) + eval(offset);*/
		var date;
		displayDate.setTime(convertedTime);
		if(!onlyTime){
			if(includeTime){
				date = displayDate.toLocaleString();
			}else{
				date = displayDate.toLocaleDateString();
			}
		}else{
			date = displayDate.toLocaleTimeString();
		}
		var index = date.lastIndexOf(":");
		
		if(index > 0) {
		var subStr = date.substring(index).substring(3);
		date = date.substring(0,index)+subStr;
		}
		document.write('<input type="hidden" name="' + fieldName + '" value="' + date + '"/>');
}


/* Function to submit and edit registration form */

function submitForEdit(){
	document.confirmForm.mode.value='edit' ;
	document.confirmForm.submit();
}

function submitForCompletion(){
	document.confirmForm.mode.value='process' ;	
	document.confirmForm.submit();
}

function changeWindowLocation(url){
	window.location = url;
}

function formatEventStartEndDate(startEndDate, fieldName){
		var date;
			
			    
		date = formatDateInSec(startEndDate, true, false);
				
		document.write('<input type="hidden" name="' + fieldName + '" value="' + date + '"/>');
		//return date;
	}	



