var cal1;
var over_cal = false;
var cur_field = '';
function init() {



	cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", {close:true});
	cal1.cfg.setProperty("MDY_DAY_POSITION", 1); 
	cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); 
	cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); 		
	cal1.cfg.setProperty("MD_DAY_POSITION", 1); 
	cal1.cfg.setProperty("MD_MONTH_POSITION", 2);     
	cal1.selectEvent.subscribe(getDate, cal1, true);
    cal1.renderEvent.subscribe(setupListeners, cal1, true);
    YAHOO.util.Event.addListener(['cal1Date', 'cal1Date2'], 'focus', showCal);
    YAHOO.util.Event.addListener(['cal1Date', 'cal1Date2'], 'blur', hideCal);
	
	YAHOO.util.Event.purgeElement("starttrigger",false, "click");
	YAHOO.util.Event.addListener("starttrigger", "click", showCal, cal1, true);
	YAHOO.util.Event.purgeElement("endtrigger",false, "click");
	YAHOO.util.Event.addListener("endtrigger", "click", showCal, cal1, true);

    cal1.render();

}

function setupListeners() {
    YAHOO.util.Event.addListener('cal1Container', 'mouseover', overCal);
    YAHOO.util.Event.addListener('cal1Container', 'mouseout', outCal);
}

function getDate() {
        var calDate = this.getSelectedDates()[0];
		var nday = calDate.getDate();
		var strday = nday.toString();
		if (strday.length == 1){
			strday = "0"+strday;
		}

		var nmonth = calDate.getMonth() + 1;
		var strmonth = nmonth.toString();
		if (strmonth.length == 1){
			strmonth = "0"+strmonth;
		}

        calDate = strday + '/' + strmonth + '/' + calDate.getFullYear();
		//alert(cur_field.id);
		if (cur_field.id == 'starttrigger'){
			document.getElementById("cal1Date").value = calDate;
		} else if (cur_field.id == 'endtrigger'){
			document.getElementById("cal1Date2").value = calDate;
		} else {
	        cur_field.value = calDate;
		}
        over_cal = false;
        hideCal();
		checkdates();
}

function showCal(ev) {
    var tar = YAHOO.util.Event.getTarget(ev);
	cur_field = tar;
    var xy = YAHOO.util.Dom.getXY(tar);
    var date = YAHOO.util.Dom.get(tar).value;
	//alert(date);
    if (date) {
		cal1.select(date);
		var firstDate = cal1.getSelectedDates()[0];
		cal1.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear());
        cal1.render();
    } else {
        cal1.cfg.setProperty('selected', '');
        cal1.cfg.setProperty('pagedate', new Date(), true);
        cal1.render();
    }
    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'block');
    xy[1] = xy[1] + 20;
    YAHOO.util.Dom.setXY('cal1Container', xy);
}

function hideCal() {
    if (!over_cal) {
        YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');
    }
}

function overCal() {
    over_cal = true;
}

function outCal() {
    over_cal = false;
}

function checkdates(){
	if (document.frmsearch.cal1Date.value != '' && document.frmsearch.cal1Date2.value != ''){
		var StartDateValue=document.frmsearch.cal1Date.value;
		var StartDate=new Date(eval(StartDateValue.substring(6,10)),eval(StartDateValue.substring(3,5))-1,eval(StartDateValue.substring(0,2)),0,0,0,0);
		var EndDateValue=document.frmsearch.cal1Date2.value;
		var EndDate=new Date(eval(EndDateValue.substring(6,10)),eval(EndDateValue.substring(3,5))-1,eval(EndDateValue.substring(0,2)),0,0,0,0);
		var DateDifference=(EndDate-StartDate)/1000/60/60/24;
		//alert(DateDifference);
		if (DateDifference<1){
			alert('Your departure date must be greater than your arrival date');
			document.frmsearch.cal1Date2.value = '';
			return false;
		}
	} else if (document.frmsearch.cal1Date.value != '' || document.frmsearch.cal1Date2.value != ''){
		var myDate=new Date()
		//alert(myDate);
		if (document.frmsearch.cal1Date.value != ''){
			var StartDateValue=document.frmsearch.cal1Date.value;
			var StartDate=new Date(eval(StartDateValue.substring(6,10)),eval(StartDateValue.substring(3,5))-1,eval(StartDateValue.substring(0,2)),0,0,0,0);
			var newdate = new Date(myDate.getFullYear(),myDate.getMonth(),myDate.getDate());
			datediff = StartDate.getTime() - newdate.getTime();
			if (datediff < 1){
				alert('Please choose a date in the future');
				document.frmsearch.cal1Date.value = '';
			}
			return false;
		}
		if (document.frmsearch.cal1Date2.value != ''){
			var StartDateValue=document.frmsearch.cal1Date2.value;
			var StartDate=new Date(eval(StartDateValue.substring(6,10)),eval(StartDateValue.substring(3,5))-1,eval(StartDateValue.substring(0,2)),0,0,0,0);
			var newdate = new Date(myDate.getFullYear(),myDate.getMonth(),myDate.getDate());
			datediff = StartDate.getTime() - newdate.getTime();
			if (datediff < 1){
				alert('Please choose a date in the future');
				document.frmsearch.cal1Date2.value = '';
			}
			return false;
		}
	}
	return true;
	
}

function updatenumberofrooms(){
	var adults = document.frmsearch.adults.value;
	var children = document.frmsearch.children.value;
	document.frmsearch.numberofpeopleperroom.value = adults + "a" + children + "c";
}

function showroomoptions(rooms){
	for (i = 1;i < 6; i++){
		if (i <= rooms){
			//alert('showing room ' + i);
			document.getElementById("room" + i).style.display = '';	
			document.getElementById("include" + i).value = 1;	
		} else {
			//alert('hiding room ' + i);
			document.getElementById("room" + i).style.display = 'none';	
			document.getElementById("include" + i).value = 0;	
		}
	}
}

function showroomoptionsside(rooms){
	for (i = 1;i < 6; i++){
		if (i <= rooms){
			//alert('showing room ' + i);
			document.getElementById("room" + i + "side").style.display = '';	
			document.getElementById("include" + i + "side").value = 1;	
		} else {
			//alert('hiding room ' + i);
			document.getElementById("room" + i + "side").style.display = 'none';	
			document.getElementById("include" + i + "side").value = 0;	
		}
	}
}

function buildsearchform(){
	showroomoptions(1);
	document.getElementById('numberofrooms').selectedIndex = 0;
	for (i = 1;i < 6; i++){
		document.getElementById('adults' + i).selectedIndex = 0;
		document.getElementById('children' + i).selectedIndex = 0;
		document.getElementById('roomtype' + i).selectedIndex = 0;
	}
}

function buildhotelform(){
	document.getElementById('adults1').selectedIndex = 1;
}

function changeroomtypes(id){
	var adults = document.getElementById("adults" + id).value;
	var children = document.getElementById("children" + id).value;
	var myid = 'roomtype' + id;
	document.getElementById(myid).innerHTML = '';

	if (adults == 1){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 2){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
		}
	}

	if (adults == 2){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Twin";
			NewOption.value="TB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 2){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
	}

	if (adults == 3){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
		if (children == 2){
			alert('This adult/child combination is not available. Please select a different number of adults and children.');
			document.getElementById('adults' + id).selectedIndex = 0;
			document.getElementById('children' + id).selectedIndex = 0;
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			document.getElementById('roomtype' + id).selectedIndex = 0;
		}
	}

	if (adults == 4){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
		if (children == 1 || children == 2){
			alert('This adult/child combination is not available. Please select a different number of adults and children.');
			document.getElementById('adults' + id).selectedIndex = 0;
			document.getElementById('children' + id).selectedIndex = 0;
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			document.getElementById('roomtype' + id).selectedIndex = 0;
		}
	}
}
 

function changeroomtypesside(id){
	var adults = document.getElementById("adults" + id + "side").value;
	var children = document.getElementById("children" + id + "side").value;
	var myid = 'roomtype' + id + 'side';
	document.getElementById(myid).innerHTML = '';

	if (adults == 1){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 2){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
		}
	}

	if (adults == 2){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Twin";
			NewOption.value="TB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 2){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
	}

	if (adults == 3){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Double";
			NewOption.value="DB";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
		} else if (children == 1){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
		if (children == 2){
			alert('This adult/child combination is not available. Please select a different number of adults and children.');
			document.getElementById('adults' + id + 'side').selectedIndex = 0;
			document.getElementById('children' + id + 'side').selectedIndex = 0;
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			document.getElementById('roomtype' + id + 'side').selectedIndex = 0;
		}
	}

	if (adults == 4){
		if (children == 0){
			var NewOption=document.createElement("OPTION");
			NewOption.text="Triple";
			NewOption.value="TR";
			document.getElementById(myid).options.add(NewOption);
			var NewOption=document.createElement("OPTION");
			NewOption.text="Quad";
			NewOption.value="Q";
			document.getElementById(myid).options.add(NewOption);
		}
		if (children == 1 || children == 2){
			alert('This adult/child combination is not available. Please select a different number of adults and children.');
			document.getElementById('adults' + id + 'side').selectedIndex = 0;
			document.getElementById('children' + id + 'side').selectedIndex = 0;
			var NewOption=document.createElement("OPTION");
			NewOption.text="Single";
			NewOption.value="SB";
			document.getElementById(myid).options.add(NewOption);
			document.getElementById('roomtype' + id + 'side').selectedIndex = 0;
		}
	}
}





function checkfrmvals(){
	if (document.frmsearch.cal1Date.value == ''){
		alert('Please select an arrival date');
		return false;
	}
	if (document.frmsearch.cal1Date2.value == ''){
		alert('Please select a departure date');
		return false;
	}
	return true;
}
