/**
 * This function parses the date in the format of MM/DD/YYYY and returns a date object.
 * Validation are done according to the values for MM and DD
 * @param {Object} dateStr
 * @param {String} the policy to round the out of bound days to down or up
 */

/**
 * Validates the code and return true if any error detected
 */
function validateDepartDate() {
                
    //var departDate = Date.parse($F('departDate'));

    var departDate = parseDate($F('departDate'),'down' ,'departDate');
    var returnDate = parseDate($F('returnDate'),'up' ,'returnDate' );
    
    today = Date.parse('today');
    var isAnyError = false ;
    
    /* Invalid date format or characters */
    if((departDate == null)){
                    errorArray.depart_invalid_date = "You must choose a valid depart date";  isAnyError = true ;
    } else { 
                    errorArray.depart_invalid_date = "" ; 
    }
                    
    /* Date is not 3 days after today */
    if((departDate != null) && departDate.compareTo(Date.today().add(72).hours()) < 0){
                    errorArray.depart_in3days_date = "Packages must be booked at least 3 days in advance" ;          isAnyError = true ;
    }else {
                    errorArray.depart_in3days_date = "" ;
    }
    
    /* Date is beyond 11 month after today */
    if ((departDate != null) && departDate.compareTo(Date.today().add(11).months()) > 0 ) {
                    errorArray.depart_beyond_date = "Trips may only be booked up to 11 months in advance. For groups contact 1-866-875-4565";              isAnyError = true ;                                                                                                                                                                              
    } else {
                    errorArray.depart_beyond_date = "" ;
    }
    
    /* Both dates exist so update number of nights */
    if (returnDate!=null && departDate!=null ) {
                    nightNums = daysElapsed(departDate, returnDate) ;
                    if (nightNums < 1) {
                                    nightNums = 3 ;
                    }
                    $("numNights").value = nightNums;
                    validateNights() ;
    }
    
    /* return is updated based on depart date and number of nights */
    if (returnDate==null && departDate!=null && !isNaN(parseInt($("numNights").value) )) {
                    returnDate = new Date(departDate);
                    returnDate.setDate(returnDate.getDate() + parseInt($("numNights").value)) ;
                    $('returnDate').value = strToDisplayStr(dateToStr(returnDate));
                    validateElement('returnDate');
    }
    /* return is updated based on depart date and number of nights */
    if (returnDate==null && departDate!=null && isNaN(parseInt($("numNights").value) )) {
                    returnDate = new Date(departDate);
                    returnDate.setDate(returnDate.getDate() + 3) ;
                    $('numNights').value = 3;
                    $('returnDate').value = strToDisplayStr(dateToStr(returnDate));
                    validateElement('returnDate');
    }
    
    
    return isAnyError ;
}


function validateReturnDate() {
                var isAnyError = false ;
                var endDate = parseDate($F('returnDate'),'up' ,'returnDate' );
                var startDate = parseDate($F('departDate'),'down' ,'departDate');
                if (endDate == null) {
                                errorArray.return_invalid_date = "You must choose a valid return date"; isAnyError = true ;
                } else {
                                errorArray.return_invalid_date = "";
                }
                
                if ((endDate != null) && endDate.compareTo(Date.today().add(11).months()) > 0) {
                                errorArray.return_beyond_date = "Trips may only be booked up to 11 months in advance. For groups contact 1-866-875-4565";              
								isAnyError = true ;                                                                                                                                                                              
                } else {
                                errorArray.return_beyond_date = "" ;
                }
                
                if (endDate!= null && startDate!=null ) {
                                if (endDate>=startDate) {
                                                errorArray.return_beforedepart = "" ;
                                                nightNums = Math.abs(daysElapsed(startDate, endDate)) ;
                                                $("numNights").value = nightNums;
                                                resetErrorBorder('numNights');
                                                if ( nightNums < 2) {
                                                                errorArray.night_tooshort = "" ;
                                                                errorArray.return_in3days_date = "Minimum stay for packages is 2 nights"; isAnyError = true ;
                                                } else {
                                                                errorArray.return_in3days_date = "" ;
                                                }
                                } else {
                                                errorArray.return_beforedepart = "Return Date must be after depart date."
/* FIX ERROR 
                                            	startDate = new Date(startDate);
                                                endDate.setDate(startDate.getDate() + 3) ;
                                                $('numNights').value = 3;
                                                $('returnDate').value = strToDisplayStr(dateToStr(endDate));
 END FIX ERROR */
                                                	
                                }
                }
                if (endDate!= null && startDate==null && !isNaN($("numNights").value)  ) {
                                startDate = new Date(endDate);
                                startDate.setDate(endDate.getDate() - $("numNights").value) ;
                                $('departDate').value = strToDisplayStr(dateToStr(startDate));
                                validateElement('departDate');
                }
                
                return isAnyError ;
}

function validateNights(){
	try {
		error = false ;
		
		/* Invalid night number */
		var numNights = parseInt($F("numNights"));
		if (isNaN(numNights)) {
			alert("Invalid number of nights: " + numNights);
			errorArray.night_invalid = "Number of nights is invalid" ; error = true ;
			document.getElementById("numNights").value= 2;
	    } else  {
			errorArray.night_invalid = "" ;
		}
		
		/* less than 2 nights */
		if (numNights < 2) {
			numNights = 2
			document.getElementById("numNights").value= numNights;
		}
		
		/* If num nights is in normal range */
		if(numNights < 30) {
			/* updating return date based on depart date and number of nights */
				
			var departDate = parseDate($F('departDate'),'down' ,'departDate');
			var returnDate = parseDate($F('returnDate'),'up' ,'returnDate' );
			if (departDate) {
				//adjustReturnDate(numNights);
				departDate.setDate(departDate.getDate() + numNights);
				var endDate = dateToStr(departDate);
				$("returnDate").value = strToDisplayStr(endDate);
				validateElement("returnDate");
			} else if ((!departDate && returnDate)) {
				startDate.setDate(returnDate.getDate() - numNights);
				var beginDate = dateToStr(startDate);
				$("departDate").value = strToDisplayStr(beginDate);
				validateElement("departDate");
				//adjustDepartDate(numNights);
			}
		}  
		
		/* Too long stay */
		else if (numNights > 30) {
			errorArray.night_toolong = "For stays of more than 30 nights, please contact reservations at 1-866-875-4565" ; error = true ;
		} else {
			errorArray.night_toolong = "" ;
		}
	} catch(err){
		
		errorArray.night_invalid = "Number of Nights is Invalid" ; error = true ;
	}
	
	return error ;
}

function checkDeparture(){
	var departureCode = $abe('#departureCode');
	if(departureCode == null || departureCode.val() == ""){
		return "Invalid departure city or airport";
	}
	var validCode = false;
	for(var i=0; i<airports.length; i++){
		if(departureCode.val()==airports[i].def){
			validCode = true;
			break;
		}
	}
	if(!validCode){
		return "Invalid departure city or airport";
	}
	return;
}

function checkDates(){
	var startDate = $abe.datepicker.parseDate('mm/dd/yy', $abe('#departDate').val());
	var endDate = $abe.datepicker.parseDate('mm/dd/yy', $abe('#returnDate').val());
	var now = new Date();
	
	if(endDate==null || startDate==null){
		return "Depart and Return dates are required";
	}
	if(endDate<=startDate){
		return "Return date is before depart date";
	}
	if(startDate < now){
		return "Start date is before today";
	}
	
	return;
}

function startDateChange(){
	if($('#startDate').val()=="mm/dd/yyyy"){
		var startDate = new Date(0);
	}else{
		var startDate = $.datepicker.parseDate('mm/dd/yy', $('#departDate').val());
	}
	
	var numNights = $('#numNights').val();
	if(numNights == null || numNights <= 0){
		numNights = 3;
	}
	
	if($('#returnDate').val()=="mm/dd/yyyy"){
		var endDate = new Date(0);
	}else{
		var endDate = $.datepicker.parseDate('mm/dd/yy', $('#returnDate').val());
	}
	
	var now = new Date();
	var oneDay = 1000 * 60 * 60 * 24; // miliseconds in a day
	if(endDate==null || startDate==null || startDate < now || endDate < now){
		if(startDate==null || startDate < now){
			startDate.setTime(now.getTime() + oneDay*3); // 3 days from now 
			$("#departDate").val($.datepicker.formatDate('mm/dd/yy', startDate));
		}
		if(endDate==null || endDate < now){
			endDate.setTime(startDate.getTime() + oneDay*numNights); // add 3 days
			$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
		}
	}
	
	if(endDate <= startDate){
		endDate.setTime(startDate.getTime() + (oneDay*numNights));
		$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
	}
	
	numNights = Math.floor((endDate.getTime()-startDate.getTime())/oneDay);
	$('#numNights').val(numNights);
	return;
}

function numNightsChange(){
	if($('#startDate').val()=="mm/dd/yyyy"){
		var startDate = new Date(0);
	}else{
		var startDate = $.datepicker.parseDate('mm/dd/yy', $('#departDate').val());
	}
	
	var numNights = $('#numNights').val();
	if(numNights == null || numNights <= 0){
		numNights = 3;
	}
	
	if($('#returnDate').val()=="mm/dd/yyyy"){
		var endDate = new Date(0);
	}else{
		var endDate = $.datepicker.parseDate('mm/dd/yy', $('#returnDate').val());
	}
	
	var now = new Date();
	var oneDay = 1000 * 60 * 60 * 24; // miliseconds in a day
	
	if(endDate==null || startDate==null || startDate < now || endDate < now){
		if(startDate==null || startDate < now){
			startDate.setTime(now.getTime() + oneDay*3); // 3 days from now 
			$("#departDate").val($.datepicker.formatDate('mm/dd/yy', startDate));
		}
		if(endDate==null || endDate < now){
			endDate.setTime(startDate.getTime() + oneDay*numNights); // add numNights days
			$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
		}
	}
	
	if(endDate <= startDate){
		endDate.setTime(startDate.getTime() + (oneDay*numNights));
		$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
	}
	
	endDate.setTime(startDate.getTime() + oneDay*numNights); // add numNights days
	$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
	return;
}

function endDateChange(){
	if($('#startDate').val()=="mm/dd/yyyy"){
		var startDate = new Date(0);
	}else{
		var startDate = $.datepicker.parseDate('mm/dd/yy', $('#departDate').val());
	}
	
	var numNights = $('#numNights').val();
	if(numNights == null || numNights <= 0){
		numNights = 3;
	}
	
	if($('#returnDate').val()=="mm/dd/yyyy"){
		var endDate = new Date(0);
	}else{
		var endDate = $.datepicker.parseDate('mm/dd/yy', $('#returnDate').val());
	}
	
	var now = new Date();
	var oneDay = 1000 * 60 * 60 * 24; // miliseconds in a day
	
	if(endDate==null || startDate==null || startDate < now || endDate < now){
		if(startDate==null || startDate < now){
			startDate.setTime(now.getTime() + (oneDay*3)); // 3 days from now 
			$("#departDate").val($.datepicker.formatDate('mm/dd/yy', startDate));
		}
		if(endDate==null || endDate < now){
			endDate.setTime(startDate.getTime() + (oneDay*numNights)); // add 3 days
			$("#returnDate").val($.datepicker.formatDate('mm/dd/yy', endDate));
		}
	}
	
	if(endDate <= startDate){
		startDate.setTime(endDate.getTime() - (oneDay*numNights)); // sub 3 days
		$("#departDate").val($.datepicker.formatDate('mm/dd/yy', startDate));
		startDateChange();
	}
	
	numNights = Math.floor((endDate.getTime()-startDate.getTime())/oneDay);
	$('#numNights').val(numNights);
	return;
}

function checkAnguillaForm(){
    var errors = new Array();
    
    var flightHotelButton = document.getElementsByName("bookOptionsRadio");
	
    if(flightHotelButton[0].checked){ // Air & Hotel 
    	var departError = checkDeparture();
    	if(departError != null && departError != ""){
    		errors.push(checkDeparture());
    	}
    	var adults = getNumberOfAdults();
    	var children = getNumberOfChildren();
    	var numTravelers = adults + children;
    	if(numTravelers > 6){
    		errors.push("Max of 6 travelers for Air & Hotel");
    	}
	}
    
    var dateError = checkDates();
    if(dateError != null && dateError != ""){
    	errors.push(dateError);
    }
    
    if(errors.length > 0){
    	printErrors(errors);
    	return false;
    }
    
    return true;
}

function printErrors(errors){
	var error = "";
	for(var i=0; i < errors.length; i++){
		error += errors[i] + "\n";
	}
	alert(error);
}

function validateForm() {
                document.getElementById("residual_booking_error").style.display = "none";
                
                errorArray.airport_invalid = "" ;
                errorArray.destination_invalid = "" ;
                
                
                validateElement('departDate');
                validateElement('returnDate');
                validateElement('numNights');
                validateElement('totalTravelers');
                
                if($F('destinationId') == -1){
                                errorArray.destination_invalid = "You must choose a destination.";
                                setErrorBorder('destinationId');
                }
                if(document.getElementsByName("bookOptionsRadio")[0].checked && ($F("departureCode") == "")){
                                errorArray.airport_invalid = "Depart airport is invalid.";
                                setErrorBorder(document.getElementsByName('departureKey')[0]);
                                flight = true;
                }
                var infants = 0;
                var children = 0;
                var ages = document.getElementsByName("ages[]");
                for(i = 0; i < ages.length; i++) {
                                age = ages[i].value;
                                if(age < 0) {
                                                error += "Age " + age + " is invalid<br>";
                                } else if (age > 17) {
                                                error += "Ages 18 and over are considered adults<br>";
                                } else if(isNaN(age)) {
                                                error += "You must enter a number for the child age<br>";
                                }                              
                                
                                if(age == 0 || age == 1){
                                                infants++;                                           
                                }else if(age > 11 && age < 18){
                                                children++;
                                }
                }
                
                if(flight){
                                if(infants > ($F("totalTravelers") - (infants + children) ) ){
                                                error += "For infants requiring an airline seat, pleasae call 1.866.875.4565.<br>";
                                }
                }
                
                /* String representation of all errors */
                var errorStr = "" ;
                
                /* String for alerts */
                var errorStr_alert = "" ;
                for(var err in errorArray) {
                                if (errorArray[err].length > 0) {
                                                errorStr += "<li><span>"+errorArray[err]+"</span></li>";
                                                errorStr_alert += errorArray[err]+"\n" ;
                                                errorArray[err] = "" ;
                                }
                }                              
                if (errorStr.length > 0) {
                                $("booking_error").update("<ul style='list-style-type: disc;'>"+errorStr+"</ul>");
                                $("booking_error").show();
                                return false;
                                alert(errorStr_alert);
                } else {
                                $("booking_error").hide();
                                return true ;
                }
}


function checkPackage(){
	return true;
}

function checkTravelDates(){
	$("#booking_error_dates").hide();
	$("#booking_error_dates").html("");
	var errors = "";
	var returnVal = true;
	var now = new Date();
	var oneDay = 1000 * 60 * 60 * 24; // miliseconds in a day
	
	if($('#departDate').val()=="mm/dd/yyyy"){
		var startDate = new Date(0);
	}else{
		var startDate = $.datepicker.parseDate('mm/dd/yy', $('#departDate').val());
	}
	
	if($('#returnDate').val()=="mm/dd/yyyy"){
		var endDate = new Date(0);
	}else{
		var endDate = $.datepicker.parseDate('mm/dd/yy', $('#returnDate').val());
	}
	
	if(startDate==null || startDate < now){
		errors += "You must choose a valid depart date<br>";
		returnVal = false;
	}else if(startDate.getTime() < now.getTime()+(oneDay*2)){
		errors += "For trips departing within 48 hours please call 1.866.875.4565<br>";
		returnVal = false;
	}
    
    if((endDate == null) || endDate <= startDate){
        errors += "You must choose a valid return date<br>";
        returnVal = false;
    }
    var elevenMonths = now;
    elevenMonths.setMonth(elevenMonths.getMonth()+11);
    
    if(endDate>elevenMonths){
    	errors += "Trips may only be booked up to 11 months in advance.";
    	returnVal = false;
    }
    
    if(!returnVal){
		$("#booking_error_dates").html(errors);
		$("#booking_error_dates").show();
    }
	return returnVal;
}

function checkLocation(flight){
	$("#booking_error_location").html("");
	$("#booking_error_location").hide();
	var errors = "";
	var returnVal = true;
	if(flight){
		if($("#departureCode").val()==null || $("#departureCode").val() == ""){
			errors += "Depart airport is invalid<br>";
			returnVal = false;
		}
	}
	if($("#destinationId").val() == "-1"){
		errors += "You must choose a destination<br>";
		returnVal = false;
	}
	if(!returnVal){
		$("#booking_error_location").html(errors);
		$("#booking_error_location").show();
	}
	return returnVal;
}

function checkTravelers(flight){
	$("#booking_error_travelers").html("");
	$("#booking_error_travelers").hide();
	var errors = "";
	var returnVal = true;
	var childAge;
    var totalAdults = 0;
    var totalChildren = 0;
    var totalInfants = 0; 
    var numRooms = 1;
    
    // find the number of rooms
    var numRoomInputs = document.getElementById('numRoomsSelection').getElementsByTagName("input");
	
	for(var i=0; i < numRoomInputs.length; i++){
		if(numRoomInputs[i].checked){
			numRooms = numRoomInputs[i].value;
			break;
		}
	}
    
    // add up all children, adults and infants in the form
    for(var i = 1; i <= numRooms; i++) {
	    var adults = parseInt($("#adultsRoom"+i).val());
	    var children = parseInt($("#childrenRoom"+i).val());
	    totalAdults += adults;
	    for(var c = 1; c <= children; c++) {
	        childAge = (parseInt($("#ageRoom"+i+"Child"+c).val()));
	        if(childAge < 2) {
	            totalInfants++;
	        }else {
	            totalChildren++;
	        }
	    }
    }
    //If the customer is booking a flight, make sure there is a departure code
    if(flight){
        if((totalAdults + totalChildren + totalInfants) > 6){
	        errors += "For flights involving more than 6 people please call 1.866.875.4565<br>";
	        returnVal = false;
        }
        if(totalInfants > totalAdults){
            errors += "For infants requiring an airline seat, please call 1.866.875.4565.<br>";
            returnVal = false;
        }
    }
    
    if(!returnVal){
		$("#booking_error_travelers").html(errors);
		$("#booking_error_travelers").show();
	}
	return returnVal;
}
/**
 * Validate the form
 **/
function checkForm(){
    var error = "";
    var returnVal = true;
    
    var flight = document.getElementsByName("bookOptionsRadio")[0].checked;
    
    if(!checkTravelDates()){
    	returnVal = false;
    }
    
    if(!checkLocation(flight)){
    	returnVal = false;
    }
    
    if(!checkTravelers(flight)){
    	returnVal = false;
    }
    
    if(returnVal){
    	var bookingInfo = $("#BookingInfoForm").serialize();
    	$.ajax({
    		url: "/includes/php/processBookingInfo.php", 
    		type: "POST",
    		data: bookingInfo,
    		async: false});
    }
    
    return returnVal;
}

var dptCodeHolder = "";
function bookOptionChange(){

	var button = document.getElementsByName("bookOptionsRadio");
	if(button[1].checked){ // Hotel Only
		dptCodeHolder = document.getElementById("departureCode").value;
		document.getElementById("departureCode").value="";
        document.getElementById("departureCityContainer").style.display="none";
        //document.getElementById("nearbyAirports").style.display="none";
        document.getElementById("departDateLabel").innerHTML="Check-in";                              
        document.getElementById("returnDateLabel").innerHTML="Check-out";
	}else{
		document.getElementById("departureCode").value=dptCodeHolder;
        document.getElementById("departureCityContainer").style.display="";
        //document.getElementById("nearbyAirports").style.display="";
        document.getElementById("departDateLabel").innerHTML="Depart Date";                       
        document.getElementById("returnDateLabel").innerHTML="Return Date";                                                        
	}

}

function checkBestDay(){
                var params = "";
                var destinationId = $F('destinationId');
                switch(destinationId){
                                case "34":
                                                params += "&destino=" + 2;
                                                break;
                                case "48":                                            
                                                params += "&destino=" + 1;
                                                break;
                                case "49":                                            
                                                params += "&destino=" + 8;
                                                break;
                                case "50":                                            
                                                params += "&destino=" + 30;
                                                break;
                                case "51":                                            
                                                params += "&destino=" + 16;
                                                break;
                                case "52":                                            
                                                params += "&destino=" + 12;
                                                break;
                                case "53":                                            
                                                params += "&destino=" + 13;
                                                break;
                                default:
                                                break;
                }
                
                if(params != ""){

                                var startDate = Date.parse($F("departDate"));
                                var endDate = Date.parse($F("returnDate"));
                
                                params += "&anio_desde=" + startDate.getFullYear();
                                params += "&mes_desde=" + (startDate.getMonth() + 1);
                                params += "&dia_desde=" + startDate.getDate();
                                params += "&anio_hasta=" + endDate.getFullYear();
                                params += "&mes_hasta=" + (endDate.getMonth() + 1);
                                params += "&dia_hasta=" + endDate.getDate();
                
                                //default hotel listing otherwise check for flights too
                                var page = "list.aspx";
                                if(document.getElementsByName("bookOptionsRadio")[0].checked){
                                                page = "Package.aspx";
                                }
                                
                                $('BookingInfoForm').action = "http://www.e-travelsolution.com/Partners/Reservations/Hotels/" + page + "?Type=Hotel&asoc=stst&idioma=ING" + params;
                }
                
                return true;
}

function dateToStr(date){
                month = date.getMonth()+1;
                if(month < 10){
                                month = "0"+month;
                }
                day = date.getDate();
                if(day < 10){
                                day = "0"+day;
                }
                return date.getFullYear()+"-"+month+"-"+day;
}

function strToDisplayStr(str){
                var displayStr = "";
                var date = /(\d{4})-(\d{2})-(\d{2})/;
                if(date.test(str)){
                                var year = RegExp.$1;
                                var month = RegExp.$2;
                                var day = RegExp.$3;
                                displayStr = month+"/"+day+"/"+year;
                }
                return displayStr;
}

function checkForInfants(){
                var message = "Infants under the age of 2 are considered lap children.<br>";
                var ages = document.getElementsByName("ages[]");
                var infants = 0;
                for(i = 0; i < ages.length; i++) {
                                age = ages[i].value;
                                if(age == 0 || age == 1) {
                                                infants++;
                                }
                }
                
                if(infants > 0){
                                document.getElementById("infantmessage").innerHTML = message;
                                document.getElementById("infantmessage").style.display = "";
                }else{
                                document.getElementById("infantmessage").innerHTML = "";
                                document.getElementById("infantmessage").style.display = "none";
                }
}


/**
 *  (print the age input fields)
 **/
function printAgeInputs(){
                var output = "";
                var totalTravelers = $F("totalTravelers");
                
                document.getElementById("booking_error").style.display = "none";

                if((parseInt(totalTravelers) > 0) && (!isNaN(totalTravelers))){
                                
                                if(totalTravelers <= 6 && totalTravelers >= 1){
                                                for(i = 0; ((i < totalTravelers - 1) && (i < 5)); i++){
                                                                output += "<input name=\"ages[]\" type=\"text\" size=\"2\" style=\"width:25px\" /> ";
                                                }

                                                document.getElementById("childrensAges").innerHTML = output;
                                }else{
                                                output = "For more than 6 people please call 1.866.875.4565<br>";
                                                document.getElementById("booking_error").innerHTML = output;
                                                document.getElementById("booking_error").style.display = "";
                                }
                } else if(isNaN(totalTravelers)){

                                output = totalTravelers + " is not a number<br>";
                                
                                $("booking_error").update(output);
                                $("booking_error").show();
                                $("totalTravelers").value = "";
                } else if(totalTravelers < 1) {
                                                output = "You  must have at least one traveler<br>";
                                                document.getElementById("booking_error").innerHTML = output;
                                                document.getElementById("booking_error").style.display = "";
                }
}


	var numRooms = 1;
	function numRoomsChanged(){
		var numRoomInputs = document.getElementById('numRoomsSelection').getElementsByTagName("input");
		
		for(var i=0; i < numRoomInputs.length; i++){
			if(numRoomInputs[i].checked){
				numRooms = numRoomInputs[i].value;
				break;
			}
		}
		
		var hasChildren = false;
		var maxRooms = 6;
		for(var i=1; i <= maxRooms; i++){
			if(i <= numRooms){
				enableRoom(i);
			}else{
				disableRoom(i);
			}
		}
	}
	
	function clearRooms(){
		table = document.getElementById('roomsContainerTable');
		numRows = table.getElementsByTagName("tr").length;
		for(var i=2; i < numRows; i++){
			table.deleteRow(i);
		}
	}
	
	function disableRoom(roomNum){
		if(!$("#travelers_room_"+roomNum).hasClass('disabled')){
			$("#travelers_room_"+roomNum).addClass('disabled');
		}
		$("#adultsRoom"+roomNum).attr("name", "adultsRoom"+roomNum+"disabled");
		$("#childrenRoom"+roomNum).attr("name", "childrenRoom"+roomNum+"disabled");
	}
	
	function enableRoom(roomNum){
		if($("#travelers_room_"+roomNum).hasClass('disabled')){
			$("#travelers_room_"+roomNum).removeClass('disabled');
		}
		$("#adultsRoom"+roomNum).attr("name", "adultsRoom"+roomNum);
		$("#childrenRoom"+roomNum).attr("name", "childrenRoom"+roomNum);
	}
	
	function numRoomsChange(){
		var output = "";
		numRoomInputs = document.getElementById('numRoomsSelection').getElementsByTagName("input");
		alert("kim");
		
		for(i=0; i < numRoomInputs.size; i++){
			if(numRoomInputs[i].checked=="checked"){
				numRooms = numRoomsInput[i].value;
				break;
			}
		}
		
		var str = "";
		var hasChildren = false;
		var maxRooms = 4;
		if(numRooms <= maxRooms && numRooms >= 1){
			for(i = 1; (i <= numRooms) && (i <= maxRooms); i++){
				if(i == 1){
					output += "<table class='travelers' cellspacing='0' cellpadding='0' border='0' />";
					output += "<tr>";
					if(numRooms > 1){
						output += "<td>#</td>";
					}
					output += "<td>Adults</td><td>Kids</td><td id='agesHeader' style='display:none;'>Ages</td></tr>";
				}
				output += "<tr>";
				if(numRooms > 1){
					output += "<td>"+ i + "</td>";
				}
				output += "<td>"
				output += "<select id='adultsRoom" + i + "' name='adultsRoom" + i + "'>";
				for(j = 1; j <= 6; j++) { 
					if(j==2) {
						output += "<option value='" + j + "' selected>" + j + "</option>";
					} else {
						output += "<option value='" + j + "'>" + j + "</option>";
					}
				}
				output += "</select>";
				output += "</td><td>";
				output += "<select onchange='printChildAgeBoxes(" + i + ")' id='childrenRoom" + i + "' name='childrenRoom" + i + "'>";
				for(h = 0; h <= 4; h++) { 
					output +="<option value='" + h + "'>" + h + "</option>";
				}
				output += "</select>";
				output += "</td>";
				output += "<td><div style='display:none;' id='childAgeDiv" + i + "'/></td></tr>";
				if(i == numRooms || i == maxRooms){
					output += "</table>";
				}
			}
			$("#roomOccupanciesDiv").html(output);
			alert(output);
		}else{
			output = "For more than 6 people in one room please call 1.866.875.4565<br>";
			document.getElementById("booking_error").innerHTML = output;
			document.getElementById("booking_error").style.display = "";
		}
	}
	
	function printChildAgeBoxesSmall(rowNum){
		var numChildren = document.getElementById("childrenRoom" + rowNum + "").value;
	    var childAgeDiv = document.getElementById("childAgeDiv" + rowNum + "");
	    var output = "";
	    
	    var totalChildren = 0;
        var hasChildren = false;
    	for(i = 1; i <= numRooms; i++){
    		if(document.getElementById("childrenRoom" + i + "").value > 0){
    			hasChildren = true;
    			totalChildren += document.getElementById("childrenRoom" + i + "").value;
    		}
    	}
    	if(totalChildren == 0){
			hasChildren = false;
    	}
		
		if(hasChildren){
	        output += "<div id='childAgesRow" + rowNum + "' style='display:block;'>";
			if(numChildren > 0 ) {
				for(i = 1; i <= numChildren; i++) {
					output += "<span class='childAgeSelect' id='childAgeSelect" + rowNum + "" + i + "' style='display:inline;'>";
					output += "<select id='ageRoom" + rowNum + "Child" + i + "' name='ageRoom" + rowNum + "Child" + i + "'>";
					output += "<option value='1'><1</option>"; 
					for(j = 2; j < 18; j++) {
						output += "<option value='" + j + "'>" + j + "</option>";
					}
					output += "</select>";
					output += "</span>";
				} 
			}
	        output += "</div>";
	        document.getElementById("agesHeader").style.display="";
		}else{
			document.getElementById("agesHeader").style.display="none";
		}
	    childAgeDiv.innerHTML = output;
	    
	    childAgeDiv.style.display = ""; 
	}
	
	function printChildAgeBoxes(rowNum) {
	    var numChildren = document.getElementById("childrenRoom" + rowNum + "").value;
	    var childAgeDiv = document.getElementById("childAgeDiv" + rowNum + "");
	    var output = "";
	    
	    var hasChildren = false;
		
		if(numChildren > 0){
			hasChildren = true;
		}
		
		if(hasChildren){
	        output += "<div id='childAgesRow" + rowNum + "' style='display:block;'>";
			if(numChildren > 0 ) {
				for(i = 1; i <= numChildren; i++) {
					output += "<span class='childAgeSelect' id='childAgeSelect" + rowNum + "" + i + "' style='display:inline;'>";
					output += "<select id='ageRoom" + rowNum + "Child" + i + "' name='ageRoom" + rowNum + "Child" + i + "'>";
					output += "<option value='1'><1</option>"; 
					for(j = 2; j < 18; j++) {
						output += "<option value='" + j + "'>" + j + "</option>";
					}
					output += "</select>";
					output += "</span>";
				} 
			}
	        output += "</div>";
	        document.getElementById("agesHeader"+rowNum).style.display="";
		}else{
			document.getElementById("agesHeader"+rowNum).style.display="none";
		}
	    childAgeDiv.innerHTML = output;
	    
	    childAgeDiv.style.display = ""; 
                
	}

function getNumberOfChildren(){
	var numRooms = document.getElementById('numRooms').value;
	var totalChildren = 0;
	for(i = 1; i <= numRooms; i++){
		if(document.getElementById("childrenRoom" + i + "").value > 0){
			totalChildren += parseInt(document.getElementById("childrenRoom" + i + "").value);
		}
	}
	return totalChildren;
}

function getNumberOfAdults(){
	var numRooms = document.getElementById('numRooms').value;
	var totalAdults = 0;
	for(i = 1; i <= numRooms; i++){
		if(document.getElementById("adultsRoom" + i).value > 0){
			totalAdults += parseInt(document.getElementById("adultsRoom" + i).value);
		}
	}
	return totalAdults;
}
	
	
function printChildAgeBoxesHorizontal(rowNum) {
    var numChildren = document.getElementById("childrenRoom" + rowNum + "").value;
    var childAgeDiv = document.getElementById("childAgeDiv" + rowNum + "");
    var output = "";
    

    var totalChildren = 0;
	for(i = 1; i <= numRooms; i++){
		if(document.getElementById("childrenRoom" + i + "").value > 0){
			hasChildren = true;
			totalChildren += document.getElementById("childrenRoom" + i + "").value;
		}
	}
    
	if(totalChildren == 0){
		hasChildren = false;
	}
	
    output += "<div id='childAgesRow" + rowNum + "' style='float:left; margin-left:10px;display:block;text-align:left;'>";
	if(numChildren > 0 ) {
		document.getElementById("childAgeDivLabel").style.display = "";
		for(i = 1; i <= numChildren; i++) {
			output += "<span id='childAgeSelect" + rowNum + "" + i + "' style='display:inline;'>";
			output +=                            "<select id='ageRoom" + rowNum + "Child" + i + "' name='ageRoom" + rowNum + "Child" + i + "'>";
			output += "<option value='0'> <1 </option>"; 
			for(j = 1; j < 18; j++) {
							output += "<option value='" + j + "'>" + j + "</option>";
			}
			output += "</select>";
			output += "</span>";
		} 
	}else if(!hasChildren){
		 document.getElementById("childAgeDivLabel").style.display = "none";
	}
    output += "</div>";
//                output += "<div style='clear:both;' />";
    childAgeDiv.innerHTML = output;
    childAgeDiv.style.display = ""; 
                
}


