var j = jQuery.noConflict();

j(document).ready(function() {
	//initialise date picker(s)
	j('.datepicker').datepicker({
		duration: "fast",
		minDate: '0',
		maxDate: '1Y'
	});

	j('#arrive').bind('change', function() {
		//grab date string and parse
		var departDate = j.datepicker.parseDate('mm/dd/yy', j('#arrive').val());
		
		//split date for creation of new Date()
		var month = departDate.getMonth();
		var date = departDate.getDate();
		var year = departDate.getFullYear();
		
		//assure check-out date is > check-in date
		j('#depart').datepicker('option', 'minDate', new Date(year, month, date + 1));
	});
	
	j('#depart').bind('change', function() {
		j("input:disabled").val(getStayDuration());
	});

	
	//submit reservation form
	j('#artisan-reservation-widget').submit(function() {
		//constants
		domain = "https://res.windsurfercrs.com/bbe/page2.aspx";
		domainS1 = "https://res.windsurfercrs.com/bbe/page1.aspx";
		chainId = "Z7ART";
		
		//gather reservation form data
		var url = domain;
		var arrivalDate = j('#arrive').val();
		var departDate = j('#depart').val();

		// if the user clicks checks availability w/out selecting a date
		// simply send them over to windsurfercrs	
		if (arrivalDate == "mm/dd/yy" || departDate== "mm/dd/yyyy") {
			resURL = domainS1 + "?pcode=" + chainId;
			window.open(resURL);
			return false;
		}
		//determine lenght of stay
		var Lenght = getStayDuration();
		var adults = j('#adults').val();
		
		//generate URL string
		url += "?pcode="+chainId
			  +"&langid=1"
			  +"&Rooms=1"
			  +"&checkin="+escape(arrivalDate)
			  +"&nights="+Lenght
			  +"&adults="+adults
			  +"&children=0";
		
		//send url data to windsurfercrs booking engine
		window.open(url);
		
		return false;
	});
	//modify the dropdown lists
	adultsKids();

	// when the location changes
	j('#destination').bind('change', function() {
        setTimeout("adultsKids()", 250);
	});

	// when the adults ddl changes
	j('#adults').bind('change', function() {
        setTimeout("adultsKids()", 250);
	});

	// when the kids ddl changes
	j('#kids').bind('change', function() {
        setTimeout("adultsKids()", 250);
	});
});

function adultsKids () {

	// get the number of adults and then set this value if still exists.
	var adultsVal = j('#adults').val();
	
	// get the number of kids and then set this value if still exists.
	var kidsVal = j('#kids').val();

	// set the max value for the ddl add 1 to max number
	var kidsMaxVal = 13 - adultsVal ;
	var adultsMaxVal = 13 - kidsVal;
	
}

function getStayDuration() {
	//
		var departDate = j.datepicker.parseDate('mm/dd/yy', j('#depart').val());
		var arriveDate = j.datepicker.parseDate('mm/dd/yy', j('#arrive').val());

		
		//split date for creation of new Date()
		var depart_month = departDate.getMonth();
		var depart_date = departDate.getDate();
		var depart_year = departDate.getFullYear();

		var arrival_month = arriveDate.getMonth();
		var arrival_date = arriveDate.getDate();
		var arrival_year = arriveDate.getFullYear();
		
		//assure check-out date is > check-in date
		var duration = daysElapsed(new Date(depart_year, depart_month, depart_date),new Date(arrival_year, arrival_month, arrival_date));
		return duration;
}

function y2k(number) { 
	return (number < 1000) ? number + 1900 : number; 
}

function daysElapsed(date1,date2) {
    var difference = Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0) - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
    return difference/1000/60/60/24;
}
