function setNights() {
	var _nights = this.value.split('|')[1];
	var nights = _nights.split(',');
	var options = '';
	for(var i = 0; i < nights.length; i++) {
		options += '<option value="'+nights[i]+'">'+nights[i]+'</option>';
	}
	$("select#nights").html(options);
}

function updateExtras() {
	$.ajax({
		url: '/rest/rest.php?restcall=updateExtras',
		type: 'POST',
		data: $('#booking-form').serialize(),
		dataType: 'json',
		error: doUpdateError,
		success: doUpdateExtras
	});
}

function doUpdateError(xhr, status, error) {
	alert(error);
}

function doUpdateExtras(json) {
	$('#TOTAL-price').text(json.total);
	
	var count = json.extras.length - 1; // null padding at the end
	for(var i = 0; i < count; i++) {
		var extra = json.extras[i];
		if(extra == null) {
			break;
		}
		
		// set drop down
		//$(extra.code).val(extra.quantity);
		$('#'+extra.code+'-price').text(extra.price);
	}
}

function toggleCC() {
	if(this.value == 'CC') {
		$('#form-creditcard').show();
		//$('#form-other').hide();
	}
	else {
		$('#form-creditcard').hide();
		//$('#form-other').show();
	}
}

$(window).load(function() {
	/*
	$('body').nivoZoom({
		speed:500,
		zoomHoverOpacity:0.8,
		overlay:true,
		overlayColor:'#fff',
		overlayOpacity:0.5,
		captionOpacity:0.8
	});
	*/
	
	//$('.property-thumbnails a').lightBox({fixedNavigation:true});
	//$('#availability-date').change(setNights);
	$('.booking-extra').change(updateExtras);
	
	$('#paymentCC').change(toggleCC);
	$('#paymentCP').change(toggleCC);
	
	$("form.acuweb").validate();
});





var minDate, maxDate, minDateYear, maxDateYear, cutoff = new Date();

cutoff = new Date(cutoff.getFullYear(), cutoff.getMonth(), cutoff.getDate()+5);


	minDate = new Date(2011,0,01);
	minDateYear = minDate.getFullYear();

	maxDate = new Date(2013,11,31);
	maxDateYear = maxDate.getFullYear();


Shadowbox.loadSkin('classic', 'http://acumen.webapplicationsuk.com/system/shadowbox');

$(document).ready(function() {
	
	if(typeof(search_nights) != 'undefined') {
		$("#accuweb-nights-select").val(search_nights);
	}

	if(typeof(search_people) != 'undefined') {
		$("#people").val(search_people);
	}

	$(".accuweb-submit").attr("disabled", false);
	
	Shadowbox.init({animSequence: "sync", overlayOpacity: 0.8, overlayColor: "#999999"});
	
	if($('#calendar-container').length) {
		var dateString = "";
	
		if( dateString == "" && datearray.length > 1 )
			dateString = datearray[1];
				
		if ($("#calendar-date").val() != "")  {
			 dateString = $("#calendar-date").val();
			 dateChanged(null, dateString, false);
		} else 
			 dateChanged(null, dateString, true);
			 
		if( dateString != "" ) {
			var data = dateString.split("-",3);
			firstDate = new Date(data[0],data[1]-1,data[2]);
		}
			
		if( dateString != "" ) {
			var data = dateString.split("-",3);
			firstDate = new Date(data[0],data[1]-1,data[2]);
			dateChanged(null, dateString, true);
		}
		
		Calendar.setup({
			flat : "calendar-container",
			onSelect : dateChangedCallback,
			ifFormat : "%Y-%m-%d",
			dateStatusFunc : dateStatus,
			date : firstDate,
			range : [minDateYear, maxDateYear]
		});
	}
});

function dateChangedCallback(calendar, date)
{
	dateChanged(calendar, date, false);
}

function stringToDate(string) {
	var matches;
	var d;
	if (matches = string.match(/^(\d{4,4})-(\d{2,2})-(\d{2,2})$/)) 
	{
	  d = new Date(matches[1], matches[2] - 1, matches[3]);
	  // Add 3 hours to stop BST messing up the times.
	  d = new Date(d.getTime() + 10800000);
	  return d;
	} 
	else 
	{
	  return null;
	}
 }

function dateChanged(calendar, date, useNightsRequest) {
	var i;
	var val;
	var opt;
	//var item = $.inArray(date.replace(/-0/g, "-"), datearray);
	var item = $.inArray(date, datearray);
	var nightsSelect = $("#accuweb-nights-select");
	var nightsSelectContainer = $("#accuweb-nights-select-container");
	var nightsbox = nightsSelect[0];

	var optionsstring = ""; //we need to preserve existing options somehow..
	
	if (item < 0)
	{
		nightsSelect.html(optionsstring);
		nightsSelectContainer.slideUp(250);
		return;
	}

	val = nightsSelect.val();
	
	
	var nights = nightsarray[item];
	
	if (nights != "") {

		nights = nights.split(",");
		for (i=0;i<nights.length;i++) {
		
		if(val == nights[i])
			optionsstring += '<option selected="selected" value="' + nights[i] + '">' + nights[i] + '</option>';
		else
			optionsstring += '<option value="' + nights[i] + '">' + nights[i] + '</option>';
		}
	} else {
		var min = minarray[item] != "" ? minarray[item] : 1;
		var max = maxarray[item] != "" ? maxarray[item] : 28;
		for (i=min;i<=max;i++) {
			if(val == i)
				optionsstring = optionsstring + '<option selected="selected" value="' + i + '">' + i + '</option>';
			else
				optionsstring = optionsstring + '<option value="' + i + '">' + i + '</option>';
		}
	}
	
	//put the string into the select element using jquery
	if(optionsstring=="")
		nightsSelectContainer.slideUp(250);
	else {
		nightsSelect.html(optionsstring);
		nightsSelectContainer.slideDown(250);
	}
	
	$("#calendar-date").val( calendar != null && dateStatus(calendar.date) == true ? "" : date);
};

function validate() {
	if ($("#calendar-date").val() == "") {
		alert("Please select a date from the calendar");
		return false;
	} else if ($("#accuweb-nights-select")[0].selectedIndex == -1) {
		alert("Please select a valid start date and a number of nights");
		return false;
	} else
		$(".accuweb-submit").attr("disabled", true);
};

function dateStatus(date) {
	
	// Add 3 hours to the date to avoid the BST problem.
	date = new Date(date.getTime() + 10800000);

	// If we are using the non-coloured calendar, just return true or false depending on if the date is in the start dates available.
	var configVal = "1";
	if (configVal != "1")
		return date<cutoff || date<minDate || date>maxDate || $.inArray(date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate(), datearray)==-1 ? true : false;

	// coloured calendar
	if (date<cutoff || date<minDate || date>maxDate)
		return true;
	
	var classToReturn = "";
	var calStartDate = stringToDate(calStart);
	
	for (var i = 0; i < availStr.length; i++) {
		var calDate = new Date(calStartDate.getTime() + (86400000 * i));
		
		if ((calDate.getYear() + "-" + calDate.getMonth() + "-" + calDate.getDate()) == (date.getYear() + "-" + date.getMonth() + "-" + date.getDate())) {

			if (availStr.charAt(i) == "-") 
			{
				// We know that its an availabile date but we'll set it to be invalid start for now.
				classToReturn = "availableInvalidStart";
				break;
			}
			else 
			{
				// This date is not available to return true. This will set the date to red/disabled.
				return true;
			}
		}
	}

	// If its a valid start date, i.e. the date is in the start date array then set the class to be valid.    
	if ($.inArray(date.getFullYear() + "-" + pad2(date.getMonth() + 1) + "-" + pad2(date.getDate()), datearray) != -1)
		classToReturn = "availableValidStart";

	return classToReturn;
};

g_ep_defaultPath = "http://acumen.webapplicationsuk.com/";
g_ep_alias = "milkbere";
g_ep_useFckEditor = "1" == "1";





function pad2(number) {
    return (number < 10 ? '0' : '') + number;
}

