
var exclude=1;
var agt=navigator.userAgent.toLowerCase();
var win=0;var mac=0;var lin=1;
if(agt.indexOf('win')!=-1){win=1;lin=0;}
if(agt.indexOf('mac')!=-1){mac=1;lin=0;}
var lnx=0;if(lin){lnx=1;}
var ice=0;
var ie=0;var ie4=0;var ie5=0;var ie6=0;var com=0;var dcm;
var op5=0;var op6=0;var op7=0;
var ns4=0;var ns6=0;var ns7=0;var mz7=0;var kde=0;var saf=0;
if(typeof navigator.vendor!="undefined" && navigator.vendor=="KDE"){
	var thisKDE=agt;
	var splitKDE=thisKDE.split("konqueror/");
	var aKDE=splitKDE[1].split("; ");
	var KDEn=parseFloat(aKDE[0]);
	if(KDEn>=2.2){
		kde=1;
		ns6=1;
		exclude=0;
		}
	}
else if(agt.indexOf('webtv')!=-1){exclude=1;}
else if(typeof window.opera!="undefined"){
	exclude=0;
	if(/opera[\/ ][5]/.test(agt)){op5=1;}
	if(/opera[\/ ][6]/.test(agt)){op6=1;}
	if(/opera[\/ ][7-9]/.test(agt)){op7=1;}
	}
else if(typeof document.all!="undefined"&&!kde){
	exclude=0;
	ie=1;
	if(typeof document.getElementById!="undefined"){
		ie5=1;
		if(agt.indexOf("msie 6")!=-1){
			ie6=1;
			dcm=document.compatMode;
			if(dcm!="BackCompat"){com=1;}
			}
		}
	else{ie4=1;}
	}
else if(typeof document.getElementById!="undefined"){
	exclude=0;
	if(agt.indexOf("netscape/6")!=-1||agt.indexOf("netscape6")!=-1){ns6=1;}
	else if(agt.indexOf("netscape/7")!=-1||agt.indexOf("netscape7")!=-1){ns6=1;ns7=1;}
	else if(agt.indexOf("gecko")!=-1){ns6=1;mz7=1;}
	if(agt.indexOf("safari")!=-1 || (typeof document.childNodes!="undefined" && typeof document.all=="undefined" && typeof navigator.taintEnabled=="undefined")){mz7=0;ns6=1;saf=1;}
	}
else if((agt.indexOf('mozilla')!=-1)&&(parseInt(navigator.appVersion)>=4)){
	exclude=0;
	ns4=1;
	if(typeof navigator.mimeTypes['*']=="undefined"){
		exclude=1;
		ns4=0;
		}
	}
if(agt.indexOf('escape')!=-1){exclude=1;ns4=0;}
if(typeof navigator.__ice_version!="undefined"){exclude=1;ie4=0;}

var is_ie  = ((navigator.userAgent.toLowerCase().indexOf("msie") != -1) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1));

function _F(x) {
	return document.getElementById(x);	
}
function _C(x) {
	return document.createElement(x);	
}
function _T(x) {
	return document.createTextNode(x);	
}
function _N(x) {
	return document.getElementsByTagName(x);	
}

function _GC( name ) {
	
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) &&
		( name != document.cookie.substring( 0, name.length ) ) )
		{
			return null;
		}
	if ( start == -1 ) 
		return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) 
		end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function doSubmit(sender, args) {
// the following line was changed because of name mangling done by ASP.Net with MasterPages
//	var f=_F("Form1");
	var f=_F("aspnetForm");
	
	if (f) {
	
		var el;
		el=_F("__action");
		if (el) el.value=sender;		
		if (args!=null) {
			el=_F("__action_args");
			if (el) el.value=args;
		};		
		
		f.submit();
	};
};

function validateBooking() {
	var required_fields=new Array("","");
	for (var i=0;i<required_fields.length;i++) {	
		
	};	
};

function isEmpty(x) {
	var el=(x.tagName==null) ? _F(x) : x;
	if (el.tagName=="INPUT") {
		if (el.value=="") {
			return true;
		};
	};
	return false;	
};

function copy_values(x,y) {
	var X=_F(x);
	var Y=_F(y);
	if (X!=null && Y!=null)
		Y.value=X.value;
};

function copy_values2(x, y) {
    var X = document.getElementById(x);
    var Y = document.getElementById(y);
    if (X != null && Y != null)
        Y.value = X.value;
};

function copy_DropDownList(x,y) {
	var X=_F(x);
	var Y=_F(y);
	
	if (X && Y)
		Y.selectedIndex = X.selectedIndex;
};

function copyBillingInfo() {
    //alert("In copyBillingInfo");

    copy_values2("ctl00_ContentPlaceHolder1_firstNameBillTxt", "ctl00_ContentPlaceHolder1_firstNameShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_lastNameBillTxt", "ctl00_ContentPlaceHolder1_lastNameShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_address1BillTxt", "ctl00_ContentPlaceHolder1_address1ShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_address2BillTxt", "ctl00_ContentPlaceHolder1_address2ShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_cityBillTxt", "ctl00_ContentPlaceHolder1_cityShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_zipBillTxt", "ctl00_ContentPlaceHolder1_zipShipTxt");
    copy_values2("ctl00_ContentPlaceHolder1_phoneBillTxt", "ctl00_ContentPlaceHolder1_phoneShipTxt");
    copy_DropDownList("ctl00_ContentPlaceHolder1_stateBillList", "ctl00_ContentPlaceHolder1_stateShipList");

};

function showChildrenRows() {
	var x=_F("NumberOfChildren");
	var p=_F("start_form_dl");
	if (p && x) {
		var els=p.getElementsByTagName("DT");
		var q=els.length;
		var m=q-4;
		var n=parseInt(x.options[x.selectedIndex].text);
		if (n!=m) {
			if (n>m) {
				for (var i=0;i<(n-m);i++) {
					var el=p.appendChild(_C("DT"));		
					el.appendChild(_T("Child " + (i + m + 1) + " Age "));
					var el1=el.appendChild(_C("SELECT"));
					
					el1.name=el1.id="ChildAge" + (i + m + 1);
					
					var el2=el1.appendChild(_C("OPTION"));
					el2.value=el2.text="-";
					
					for (var j=1;j<19;j++) {
						el2=el1.appendChild(_C("OPTION"));
						el2.value=el2.text=j;
					}
				};
			} else {
				for (var i=0;i<(m-n);i++) {
					p.removeChild(els[q - i - 1]);
				};
			};
		};
	};
};

function getSelectByName(x) {
	var els=document.getElementsByTagName("SELECT");
	for (var i=0;i<els.length;i++) {
		if (els[i].name==x)
			return els[i];
	};
	return null;
};

function selectOptionByValue(x,y) {
	for (var i=0;i<x.options.length;i++) {
		if (x.options[i].text==y) {
			x.selectedIndex=i;
			return;
		};	
	};
};

function processInitFilters() {
	var query=(window.location.search!=null) ? window.location.search.substring(1) : "";
	
	// added this 6/19/07 because Safari and Firefox were not processing Hotel filter properly.
	query=query.replace("%20"," ");

	var a=query.split("&");
	for (var i=0;i<a.length;i++) {
		var b=a[i].split("=");
		if (b[0].substring(0,7)=="filter_") {
			var el=getSelectByName(b[0]);
			if (el) {
				selectOptionByValue(el,b[1]);
			};
		};
	};
};

function processFilterChange(x) {
	var el=x;
	var filter=el.name;	
	var query=(window.location.search!=null) ? window.location.search.substring(1) : "";
	var nq="";
	if (query!="") {
		var a=query.split("&");
		var c=false;
		for (var i=0;i<a.length;i++) {
			var b=a[i].split("=");
			var v=a[i];
			
			if (b[0]==filter) {
				v=filter + "=" + el.options[el.selectedIndex].text;
				c=true;
			};			
			nq=nq + v + "&";
		};		
		if (!c) {
			nq=nq + filter + "=" + el.options[el.selectedIndex].text;
		};					
		query = "?" + nq.substring(0,nq.length);
		if (query.substring(query.length-1)=="&") {
			query=query.substring(0,query.length-1);
		};
	} else {
		query = "?" + filter + "=" + el.options[el.selectedIndex].text;
	};		
	
//alert("query before = " + query);

		query=query.replace("page=2","page=1");
		query=query.replace("page=3","page=1");
		query=query.replace("page=4","page=1");
		query=query.replace("page=5","page=1");
			
//alert("query after = " + query);

	
	var url="Main.aspx" + query;	
		
	window.location.href=url;
};


function trim(str,chr) {
	var i;
	var c=chr.length;
	while (str.substring(0,c) == chr)
	{
		str = str.substring(c,str.length);
	}

	while (str.substring(str.length-c,str.length) == chr)
	{
		str = str.substring(0,str.length-c);
	}
	
	return str;
};

function trimStart(str,chr) {
	var i;
	var c=chr.length;
	while (str.substring(0,c) == chr)
	{
		str = str.substring(c,str.length);
	}

	return str;
};

function isValidNames(x) {	

	var el=(x.tagName==null) ? _F(x) : x;	
	
//alert("el = " + el.value);
	
	if (el) {
		var re = new RegExp("^[a-zA-Z\.\' -]*$","gi");
		
		var b=re.test(el.value);
		
		var jj=trim(el.value," ");
//alert("Trimmed el = " + jj);

//		if (el.value !="" && b) {
//			return (true);
			
		if (jj !="" && b) {
			return (true);
			
		};	
		return (false);
	};
	return (false);
};


function StripNonNumeric(sText)
{
   var ValidChars = "0123456789";
   var numbers;
   var Char;

   for (i = 0; i < sText.length; i++) 
      { 
      Char = sText.charAt(i); 
      //alert("Char = " + Char);
      if (ValidChars.indexOf(Char) != -1) 
         {
        	 numbers += Char;
        	 //alert("numbers is now" + numbers);
         }
      }
   return numbers;
   
}

function IsInteger(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
        	 IsNumber = false;
         }
      }
   return IsNumber;
   
}


function isNumber(x) {
	var re=new RegExp("^[0-9]+$","g");
	if (re.test(x)) {
		return (true);
	};	
	return (false);
};
function isPositiveNumber(x) {

	return (IsInteger(x));
}
function isValidEmail(x) {

    // Changed this to return True because email addresses can accept only 1 character after the @, as in abc@d.com
    // Need to update the regular expression to use this again
    return (true);
    
	var el=_F(x);
	if (el) {

		// current reg exp
		
		var re=null;
		
		if (is_ie) {
		
			re = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/gi;

		} else {
			re=new RegExp("^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$","gi");	

		};	
		
		// reg exp from VS reg exp editor
		//var re=\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*;
		
		if (re.test(el.value)) 
			return (true);
	};
	return (false);
	
};
function isValidPhone(x) {
	var el=_F(x);
	if (el) {
		var re=new RegExp("^[01]?[- .]?\(?[2-9]\d{2}\)?[- .]?\d{3}[- .]?\d{4}$","g");
		if (re.test(el.value)) 
			return (true);
	};
	return (false);
};

function assembleStartInfo(x) {

	var params="&";
	
	var z="";
	
	z=_F("check_in_date").value;
	params=params + "d=" + z;
	
	z=_F("NumberOfNights").options[_F("NumberOfNights").selectedIndex].text;
	params=params + "&nn=" + z;
	
	z=_F("NumberOfAdults").options[_F("NumberOfAdults").selectedIndex].text;
	params=params + "&na=" + z;
	
	z=_F("NumberOfChildren").options[_F("NumberOfChildren").selectedIndex].text;
	params=params + "&nc=" + z;
	
	if (_F("ChildAge1")) {
		z=_F("ChildAge1").options[_F("ChildAge1").selectedIndex].value;
		params=params + "&c1=" + z;
	};	
	if (_F("ChildAge2")) {
		z=_F("ChildAge2").options[_F("ChildAge2").selectedIndex].value;
		params=params + "&c2=" + z;
	};		
	if (_F("ChildAge3")) {	 
		z=_F("ChildAge3").options[_F("ChildAge3").selectedIndex].value;
		params=params + "&c3=" + z;
	};		
	
	window.location.href=x + params;

}

function tryToPopulateStartInfo() {

    //alert("in tryToPopulateStartInfo");
	
	var q=window.location.search.substring(1);
	var rps=q.split("&");
	
	var ps=new Array();
	
	for (var i=0;i<rps.length;i++) {
		var a=rps[i].split("=");
		
		ps[a[0]]=(a.length==2) ? a[1] : "";
	}		
	
	if (ps["d"] && ps["d"]!="" && (package_start_date==null || package_start_date=='')) {
		_F("check_in_date").value=ps["d"];
	}
	if (ps["nn"] && ps["nn"]!="") {
		selectOptionByValue(_F("NumberOfNights"),ps["nn"]);
	}
	if (ps["na"] && ps["na"]!="") {
		selectOptionByValue(_F("NumberOfAdults"),ps["na"]);
	}
	if (ps["nc"] && ps["nc"]!="" && parseInt(ps["nc"])>0) {
		selectOptionByValue(_F("NumberOfChildren"),ps["nc"]);
		
		
		showChildrenRows();
		
	}
	else
	{
			selectOptionByValue(_F("NumberOfChildren"),"0");
	}

	if (ps["c1"] && ps["c1"]!="") {
		selectOptionByValue(_F("ChildAge1"),ps["c1"]);
	}
	if (ps["c2"] && ps["c2"]!="") {
		selectOptionByValue(_F("ChildAge2"),ps["c2"]);
	}
	if (ps["c3"] && ps["c3"]!="") {
		selectOptionByValue(_F("ChildAge3"),ps["c3"]);
	};
}
