﻿$(document).ready(function () {
	$('#txtAvailabilityDate').datepicker({ dateFormat: 'dd/mm/yy' });

	for (var i = 0; i < 24; i++) {
		$("#ddlAvailabilityHour").append($('<option></option>').attr("value", i).text(i));
	}

	$("#ddlAvailabilityHour").val("18").attr('selected', true);

	for (var i = 0; i < 60; i += 15) {
		$("#ddlAvailabilityMinute").append($('<option></option>').attr("value", i).text((i < 10 ? '0' : '') + i));
	}

	for (var i = 1; i < 9; i++) {
		$("#ddlCovers").append($('<option></option>').attr("value", i).text(i));
	}

	$("#ddlCovers").val("2").attr('selected', true);

	if ($("#ddlSuburb_ID").length) {
		// Populate suburbs
		PageMethod("ajaxcalls.aspx"
				, "suburbgetlistbylbvenue"
				, []
				, SuburbListSuccess
				, GenericFail);

		$("#ddlSuburb_ID").bind("change keyup", UpdateCuisineType);
	} else {
		UpdateCuisineType();
	}

	$('#btnAvailabilitySearch').click(function () {
		// fade out
		$('#btnAvailabilitySearch').hide();
		$('#availabilityForm').fadeTo("slow", 0.33);

		// Display searching (need an ani)
		$('#divAvailabilityLoading').html("Searching...");
		$('#divAvailabilityLoading').show();

		var suburb_ID = $("#ddlSuburb_ID").length ? $("#ddlSuburb_ID").val() : $("#hidSuburb_ID").val();
		var bookingDate = new Date($("#txtAvailabilityDate").datepicker("getDate"));
		bookingDate.setHours($("#ddlAvailabilityHour").val(), $("#ddlAvailabilityMinute").val(), 0, 0);

		PageMethod("ajaxcalls.aspx"
				, "livebookingavailabilitysearch"
				, ["suburb_id", suburb_ID
					, "cuisinetype_id", $("#ddlCuisineType_ID").val()
					, "bookingdate", bookingDate.getFullYear() + "-" + (parseInt(bookingDate.getMonth()) + 1) + "-" + bookingDate.getDate() + " " + bookingDate.getHours() + ":" + bookingDate.getMinutes() + ":00"
					, "session", $("#ddlSession").val()
					, "partysize", $("#ddlCovers").val()
				]
				, AvailabilitySearchSuccess
				, GenericFail);
	});
});

function UpdateCuisineType() {
	var suburb_ID = $("#ddlSuburb_ID").length ? $("#ddlSuburb_ID").val() : $("#hidSuburb_ID").val();

	PageMethod("ajaxcalls.aspx"
				, "cuisinegetlistbylbsuburb"
				, ["suburb_id", suburb_ID]
				, CuisineListSuccess
				, GenericFail);
}

function CuisineListSuccess(msg) {
	PopulateDDL('ddlCuisineType_ID', msg.d);

	if (!(undefined === window.currentCuisineType)) {
		$("#ddlCuisineType_ID").val(currentCuisineType).attr('selected', true);
	}
}

function SuburbListSuccess(msg) {
	PopulateDDL('ddlSuburb_ID', msg.d);

	UpdateCuisineType();
}

function AvailabilitySearchSuccess(msg) {
	if (msg.d == 0) {
		alert('Sorry, there is no restaurant availability for that request.  Please change your search criteria and try again');

		$('#btnAvailabilitySearch').show();
		$('#availabilityForm').fadeTo("slow", 1);
		$('#divAvailabilityLoading').html("");
	} else {
		window.location = '/availabilitysearch/results';
	}
}
