
var e_className
var once_per_session='0'; //Pop every time = 0, or Verify = 1
var s_navigator = navigator.userAgent.toLowerCase();
var isIE5 = (s_navigator.indexOf("msie 5")>-1&&s_navigator.indexOf("opera")==-1) ? 1 : 0;
var isMac = (s_navigator.indexOf("mac")>-1) ? 1:0;
function show_e(s_emsg,o_input){
	o_from = document.cbErrorMsg;
	o_e = eval("o_from."+s_emsg)
	document.getElementById("cb_emsg").innerHTML = o_e.value;
	o_input.blur();
	o_input.focus();
	document.getElementById("cb_e").style.display = "block";
	if(isMac&&isIE5)if(document.getElementById("cbNav"))document.getElementById("cbNav").style.visibility = "hidden";
	e_className = o_input.className;
	o_input.className+=" cb_efield";
	(o_input.type=='text') ? o_input.onblur = function (){this.className=e_className;} : o_input.onclick = function (){this.className=e_className}
	showMsgImage("error");
}
function close_e(){
	document.getElementById("cb_e").style.display = "none";
	if(isMac&&isIE5)if(document.getElementById("cbNav"))document.getElementById("cbNav").style.visibility = "visible";
}

function showMessageDatefield(err, type){
	if (err == null){
		close_e(); return;
	}

	document.getElementById("cb_emsg").innerHTML = err.msg;
    document.getElementById("cb_e").style.display = "block";
		
    if (isMac && isIE5){
        if (document.getElementById("cbNav")){
            document.getElementById("cbNav").style.visibility = "hidden";
		}
	}
	//highlights datefield w/ the error
	if (type == "error"){
		jQuery("#"+ err.fieldID).datepicker("highlight", err.error);	
	}else{
		jQuery("#"+ err.fieldID).datepicker("highlight", null);
	}	
	showMsgImage(type);
}

function showMsgImage(type){
	if  (type == "error"){
		document.getElementById("cb_e_alert").style.display="none";
		document.getElementById("cb_e_error").style.display="block";
	}else{
		document.getElementById("cb_e_error").style.display="none";
		document.getElementById("cb_e_alert").style.display="block";
	}
}

function handleDateError(errObj, isOnSubmit, formName){
	if (!errObj.error){
		showMessageDatefield(null,"error");
		return false;
	}

	if (isOnSubmit){
		if (errObj.error == "range_longer_than_allowed"){
			if (formName == "formair"){
				showMessageDatefield(errObj, "alert");
			}
			return false;
		}else{
			showMessageDatefield(errObj, "error");
		}
	}else{ //validation while user hasn't clicked submit yet
		
		if ((errObj.fieldID == "air_fromdate") || (errObj.fieldID == "air_todate")){
			//if range is longer than 21 days, it's not an error, just a warning
			if (errObj.error == "range_longer_than_allowed"){
				showMessageDatefield(errObj, "alert");
				return false;
			}
		}else{ //do not show error before submitting
			showMessageDatefield(null, "error");
		}
	}

	return true;
}

function validateForm(o_form){
	var idDatepicker= "";
	var radioSelected= null;
	var radioSelDateType= null;

	if (o_form.name == "formHO"){
		idDatepicker= "#HO_fromdate";
	}else if (o_form.name == "formHCX"){
		idDatepicker= "#HCX_fromdate";
	}else if (o_form.name == "formCO"){
		idDatepicker= "#co-fromdate";
	}else if (o_form.name == "formact"){
		idDatepicker= "#act_fromdate";
	}else if (o_form.name == "formair"){
		radioSelected= jQuery("input[name='flightType']:checked").attr("value");
		radioSelDateType= jQuery("input[name='dateTypeSelect']:checked").attr("value");
		if (radioSelected == "multicity"){
			idDatepicker= "#airmc_fromdate";
		}else{
			idDatepicker= "#air_fromdate";
		}
	}else if (o_form.name == "formFH"){
		idDatepicker= "#FH_fromdate";
	}else if (o_form.name == "formFHC"){
		idDatepicker= "#FHC_fromdate";
	}
	
	if(o_form.name != "formHO" || jQuery("#ts-hotels").attr("checked") == true ){
		var ret= jQuery(idDatepicker).datepicker("validate", null, "true");
		if ( (ret.error) && (radioSelDateType != "flexibleDates")){
		    if (handleDateError(ret, true, o_form.name)) return false;
	    }
	}
	
		if ( (o_form.name != "formact") && (!formCtrl(o_form)) ) return false;
	
	return true;
}
//check 1
function e_checklength(o_input,i_min,i_max){
	b_valid = true;
	if(o_input.value.length < i_min || o_input.value.length > i_max){
		show_e('e_length',o_input)
		b_valid = false;
	}
	return b_valid;	
}
//check 2
function e_checkspace(o_input){
	b_valid = true;
	if(o_input.value.charCodeAt(0)==32){
		show_e('e_space',o_input)
		b_valid = false;
	}
	return b_valid;
}
//check 3
function e_checkchar(o_input){
	b_valid = true;
	b_charCodeError=false;
	s_checkvalue = o_input.value
	s_checkvalue = s_checkvalue.toLowerCase();
	for(var i=0;i<s_checkvalue.length;i++){
		if(s_checkvalue.charCodeAt(i)!=46&&s_checkvalue.charCodeAt(i)!=47&&s_checkvalue.charCodeAt(i)!=44&&s_checkvalue.charCodeAt(i)!=32&&s_checkvalue.charCodeAt(i)!=39&&(s_checkvalue.charCodeAt(i)<97||s_checkvalue.charCodeAt(i)>122))b_charCodeError=true;
//Flight + hotel path does not accept "/"		
		if(s_type=="FH")if(s_checkvalue.charCodeAt(i)==47)b_charCodeError=true;
	}
	return b_valid;	
}
//check 4
function e_same(o_inputT,o_inputF){
	b_valid = true;
	if(o_inputT.value==o_inputF.value) {
		show_e('e_same',o_inputT)
		b_valid = false;
	}
	return b_valid;
}
//check 5
function e_children(o_select, s_idbit){
	b_valid = true;
	if(o_select.selectedIndex>0){
		minorAges = document.getElementById("cb"+s_idbit+"childages").getElementsByTagName("select")
		for(var i=0;i < o_select.selectedIndex;i++){
			if(minorAges[i].selectedIndex==0){
				show_e('e_child',minorAges[i]);
				b_valid = false;
				i = minorAges.length
			}
		}
	}
	return b_valid;
}
//check 6
function e_dates(o_fromM,o_toM, o_fromD, o_toD){
	b_valid = true;
	if(o_fromM.selectedIndex==o_toM.selectedIndex){
		if(o_fromD.selectedIndex>o_toD.selectedIndex){
			show_e('e_date',o_toD)
			b_valid = false;
		}
	}else if((o_fromM.selectedIndex-o_toM.selectedIndex)==1){
		show_e('e_date',o_toM)
		b_valid = false;
	}
	return b_valid;
}
//check 7
function e_validdate(o_date){
	b_valid = true;	s_odate=o_date.value;
	s_delimitor = (s_odate.indexOf("/")>-1) ? "/" : (s_odate.indexOf(".")>-1) ? "." : (s_odate.indexOf("-")>-1) ? "-" : (s_odate.indexOf(",")>-1) ? "," : "/";
	a_sodate = s_odate.split(s_delimitor);
	if(a_sodate.length!=3)b_valid=false;
	for(var i=0;i< a_sodate.length;i++)if(isNaN(a_sodate[i])||a_sodate[i]=="") b_valid=false;
	if(!b_valid) show_e('e_validdate',o_date)
	return b_valid;
}
//check 9
function e_childrooms(s_type){
	o_rooms = document.getElementById(s_type+"_totalrooms");
	i_rooms = o_rooms.selectedIndex+1;
	for(var i=1;i<=i_rooms;i++){
		o_children = document.getElementById(s_type+"_child"+i);
		i_ages = o_children.selectedIndex;
		if(i_ages!=0){
			o_childrow = document.getElementById(s_type+"_childroom"+i)
			a_select = o_childrow.getElementsByTagName("select");
			for(var j=0;j<i_ages;j++){
				if(a_select[j].selectedIndex==0){
					show_e('e_child',a_select[j]);
					b_valid = false;
					return b_valid;
				}
			}
		}
	}
	b_valid = true;
	return b_valid;
}
function checkform(){
	a_arguments = checkform.arguments;
	o_form = a_arguments[0];
	a_form = o_form.name.split("form");
	s_type = a_form[1];
	s_type2 = s_type;
	s_airflex = 0;
	s_airbit = "";
	if(s_type2=="air"){
	if(document.formair.flightType.type!="hidden"){
			for(var i=0;i<document.formair.flightType.length;i++)if(document.formair.flightType[i].checked)s_airbit =document.formair.flightType[i].value;
			if(s_airbit == "multicity")s_type2+="mc";
		}
	if(document.formair.dateTypeSelect)for(var i=0;i<document.formair.dateTypeSelect.length;i++)if(document.formair.dateTypeSelect[i].checked && document.formair.dateTypeSelect[i].value=="flexibleDates")s_airflex=1;
	}
	b_submit = true;
	for(var i= 1;i<a_arguments.length;i++){
		switch (a_arguments[i]){
			case 1:
				if(document.getElementById(s_type2+"_from")) {
					if(s_type2=="FH"){
						b_submit = e_checklength(document.getElementById(s_type2+"_from"),3,125);
					} else {
						b_submit = e_checklength(document.getElementById(s_type2+"_from"),3,25);					
					}
				}
				if(b_submit) {
					if(document.getElementById(s_type2+"_to")){
						if(s_type2=="HO" || s_type2=="FH"){
							b_submit = e_checklength(document.getElementById(s_type2+"_to"),3,125);
						} else {
							b_submit = e_checklength(document.getElementById(s_type2+"_to"),3,25);
						}
					}
				}
			break;
			case 2:
				if(document.getElementById(s_type2+"_from")) b_submit = e_checkspace(document.getElementById(s_type2+"_from"));				
				if(b_submit) if(document.getElementById(s_type2+"_to")) b_submit = e_checkspace(document.getElementById(s_type2+"_to"));
			break;
			case 3:
				if(document.getElementById(s_type2+"_from")) b_submit = e_checkchar(document.getElementById(s_type2+"_from"));				
				if(b_submit) if(document.getElementById(s_type2+"_to")) b_submit = e_checkchar(document.getElementById(s_type2+"_to"));
			break;
			case 4:
				b_submit = e_same(document.getElementById(s_type2+"_from"),document.getElementById(s_type2+"_to"))
			break;
			case 5:
				if(document.getElementById(s_type+"_children")){if(document.getElementById(s_type+"_children").selectedIndex>0)b_submit = e_children(document.getElementById(s_type+"_children"), s_type);}else if(document.getElementById(s_type+"_child1")){if(document.getElementById(s_type+"_child1").selectedIndex>0)b_submit = e_children(document.getElementById(s_type+"_child1"), s_type);}
			break;
			case 6:
				if(document.getElementById(s_type+"_tomonth")) b_submit = e_dates(document.getElementById(s_type+"_frommonth"),document.getElementById(s_type+"_tomonth"),document.getElementById(s_type+"_fromdate"),document.getElementById(s_type+"_todate"));
			break;
			case 7:
				if(document.getElementById(s_type+"_adults")){
					if(document.getElementById(s_type+"_adults").selectedIndex==0&&document.getElementById(s_type+"_children").selectedIndex==0&&document.getElementById(s_type+"_seniors").selectedIndex==0) {
						show_e('e_pass',document.getElementById(s_type+"_adults"))
						b_submit =false;}
				}else{
					b_submit=true;
				}
				break;
			case 8:
				if(!s_airflex){
					b_oneway = 0;
					if(document.getElementById(s_type2+"_fromdate")){
						b_submit = e_validdate(document.getElementById(s_type2+"_fromdate"));
					} else if(document.getElementById(s_type2.toLowerCase()+"-fromdate")){
						b_submit = e_validdate(document.getElementById(s_type2.toLowerCase()+"-fromdate"));
					}
					if(s_airbit=="multicity"||s_airbit=="oneway")b_oneway = 1;
					if(document.getElementById(s_type2+"_todate")&&b_submit&&!b_oneway){
						b_submit = e_validdate(document.getElementById(s_type2+"_todate"));
					} else if(document.getElementById(s_type2.toLowerCase()+"-todate")&&b_submit&&!b_oneway){
						b_submit = e_validdate(document.getElementById(s_type2.toLowerCase()+"-todate"));
					}
				}else{
					b_submit=true;
				}
				break;
			case 9:
				if(document.getElementById(s_type+"_child1"))b_submit = e_childrooms(s_type);
				break;
			case 10:
				if(document.getElementById("pickupDate")){b_submit = e_checkspace(document.getElementById("pickupDate"));}
				if(b_submit){if(document.getElementById("pickupDate")){b_submit = e_validdate(document.getElementById("pickupDate"));}}
				break;
			case 11:
				if(document.getElementById("dropoffDate")){b_submit = e_checkspace(document.getElementById("dropoffDate"));}		
				if(b_submit){if(document.getElementById("dropoffDate")){b_submit = e_validdate(document.getElementById("dropoffDate"));}}
				break;		
			default:
		}
		if(!b_submit) i=a_arguments.length;
	}
	return b_submit;
}
