﻿/// <reference path="/common/templates/hotel/_shared/scripts/jquery-1.3.2-vsdoc.js" />

/*
* Namespace for RF Hotel_1. All the functionalities in this namespace
* are hotel_1 type specific (e.g. balmoral, amigo, etc. Choo 20/07/2009)
*/
var RF = window.RF ||
{};

RF.Hotel_1 = {};

RF.Hotel_1 = (function() {

	var fastSpeed = 500;
	var slowSpeed = 1000;

	function init() {
		heartbeat();
		roomsAndSuites();
		offersAndPackages();
		roccoBE();
	}

	function heartbeat() {
		try {
			setInterval("PageMethods.Heartbeat();", 300000);
		} catch (e) { }
	}

	function roomsAndSuites() {
		$(".dlink_details").hide();
		var showDetails = $("#ShowDetailsDlinkHiddenField").val();
		var hideDetails = $("#HideDetailsDlinkHiddenField").val();
		$(".dlink_room_trigger").html(showDetails);
		$(".dlink_room_trigger").click(function(e) {
			if ($(this).html() == showDetails) {
				$(this).html(hideDetails);
			}
			else {
				$(this).html(showDetails);
			}
			if ($(this).parent().parent().next().find(".dlink_details").is(":visible") == false) {
				$(this).parent().parent().next().find(".dlink_details").slideDown(fastSpeed);
			}
			else {
				$(this).parent().parent().next().find(".dlink_details").slideUp(fastSpeed);
			}
			e.preventDefault();
		});
	}

	function offersAndPackages() {
		$(".dlink_rate_container .dlink_rate_table tr").each(function() {
			if ($(this).attr("class").match("active") == null) {
				$(this).hide();
			}
		});
		$("#dlink_rate_list .trigger").click(function(e) {
			$(".dlink_rate_container .dlink_rate_table tr").removeClass("active");
			var index = $(this).attr("class");
			index = index.replace("trigger ", "");
			$(".dlink_rate_container .dlink_rate_table tr").hide();
			$(".dlink_rate_container .dlink_rate_table ." + index).addClass("active");
			$(".dlink_rate_container .dlink_rate_table ." + index).fadeIn(fastSpeed);
			e.preventDefault();
		});
		$(".dlink_rate_images").each(function() {
			slideshowEngine = new imageslideshowEngine();
			slideshowEngine.images = $(this).children("img").get();
			slideshowEngine.init(5000, fastSpeed);
		});
		$(".dlink_room_images").each(function() {
			slideshowEngine = new imageslideshowEngine();
			slideshowEngine.images = $(this).children("img").get();
			slideshowEngine.init(5000, fastSpeed);
		});
	}

	function roccoBE() {
		if ($("#roccobe_flashloader").size() > 0) {
			var roccoBEFlashLoaderContent = $("#roccobe_flashloader").html();
			if (roccoBEFlashLoaderContent.length == 0) {
				$("#roccobe.stage1 fieldset").fadeIn("fast");
			}
		}
	}

	function ajaxCalendarArrivalDate(sender, e) {
		var arrivalDateElement;
		var departureDateElement;
		var arrivalDateDropDownList;
		var arrivalMonthYearDropDownList;
		var departureDateDropDownList;
		var departureMonthYearDropDownList;
		var delimiter;
		if (sender._id.match("DLink") != null) {
			arrivalDateElement = ".dlink_arrival_date";
			departureDateElement = ".dlink_departure_date";
			arrivalDateDropDownList = ".dlink_arrival_date_dropdownlist";
			arrivalMonthYearDropDownList = ".dlink_arrival_monthyear_dropdownlist";
			departureDateDropDownList = ".dlink_departure_date_dropdownlist";
			departureMonthYearDropDownList = ".dlink_departure_monthyear_dropdownlist";
		}
		else if (sender._id.match("Panel") != null) {
			arrivalDateElement = ".panel_arrival_date";
			departureDateElement = ".panel_departure_date";
			arrivalDateDropDownList = ".panel_arrival_date_dropdownlist";
			arrivalMonthYearDropDownList = ".panel_arrival_monthyear_dropdownlist";
			departureDateDropDownList = ".panel_departure_date_dropdownlist";
			departureMonthYearDropDownList = ".panel_departure_monthyear_dropdownlist";
		}

		var arrivalDate = $(arrivalDateElement).val();
		var temp = [];
		var temp2 = [];
		var departureDate = new Date();
		var arrivalDateJoined;
		var departureDateJoined
		if (arrivalDate.indexOf("/") > -1) {
			delimiter = "/";
		}
		else if (arrivalDate.indexOf(".") > -1) {
			delimiter = ".";
		}
		temp = arrivalDate.split(delimiter);

		//temp[0] = date
		//temp[1] = month
		//temp[2] = year		
		if (temp[0].charAt(0) == "0") {
			temp[0] = temp[0].substring(1, 2);
		}
		$(arrivalDateDropDownList).val(temp[0]);
		if ($(arrivalMonthYearDropDownList).val().indexOf("/") > -1) {
			delimiter = "/";
		}
		else if ($(arrivalMonthYearDropDownList).val().indexOf(".") > -1) {
			delimiter = ".";
		}
		arrivalDateJoined = temp[1] + delimiter + temp[2];
		$(arrivalMonthYearDropDownList).val(arrivalDateJoined);

		departureDate.setFullYear(temp[2], temp[1] - 1, temp[0]);
		departureDate.setFullYear(departureDate.getFullYear(), departureDate.getMonth(), departureDate.getDate() + 1);
		departureDate = departureDate.format('dd/MM/yyyy');
		if (departureDate.indexOf("/") > -1) {
			delimiter = "/";
		}
		else if (departureDate.indexOf(".") > -1) {
			delimiter = ".";
		}
		temp2 = departureDate.split(delimiter);
		if (temp2[0].charAt(0) == "0") {
			temp2[0] = temp2[0].substring(1, 2);
		}
		$(departureDateDropDownList).val(parseInt(temp2[0], 10));
		if ($(departureMonthYearDropDownList).val().indexOf("/") > -1) {
			delimiter = "/";
		}
		else if ($(departureMonthYearDropDownList).val().indexOf(".") > -1) {
			delimiter = ".";
		}
		departureDateJoined = temp2[1] + delimiter + temp2[2];
		$(departureMonthYearDropDownList).val(departureDateJoined);
	}

	function ajaxCalendarDepartureDate(sender, e) {
		var arrivalDateElement;
		var departureDateElement;
		var arrivalDateDropDownList;
		var arrivalMonthYearDropDownList;
		var departureDateDropDownList;
		var departureMonthYearDropDownList;
		var delimiter;
		if (sender._id.match("DLink") != null) {
			arrivalDateElement = ".dlink_arrival_date";
			departureDateElement = ".dlink_departure_date";
			arrivalDateDropDownList = ".dlink_arrival_date_dropdownlist";
			arrivalMonthYearDropDownList = ".dlink_arrival_monthyear_dropdownlist";
			departureDateDropDownList = ".dlink_departure_date_dropdownlist";
			departureMonthYearDropDownList = ".dlink_departure_monthyear_dropdownlist";
		}
		else if (sender._id.match("Panel") != null) {
			arrivalDateElement = ".panel_arrival_date";
			departureDateElement = ".panel_departure_date";
			arrivalDateDropDownList = ".panel_arrival_date_dropdownlist";
			arrivalMonthYearDropDownList = ".panel_arrival_monthyear_dropdownlist";
			departureDateDropDownList = ".panel_departure_date_dropdownlist";
			departureMonthYearDropDownList = ".panel_departure_monthyear_dropdownlist";
		}

		var temp = [];
		var temp2 = [];
		var arrivalDate = new Date();
		var departureDate = new Date();
		var departureDateJoined;
		if ($(arrivalDateElement).val().indexOf("/") > -1) {
			delimiter = "/";
		}
		else if ($(arrivalDateElement).val().indexOf(".") > -1) {
			delimiter = ".";
		}
		temp = $(arrivalDateElement).val().split(delimiter);
		arrivalDate.setFullYear(temp[2], temp[1] - 1, temp[0]);
		temp2 = $(departureDateElement).val().split(delimiter);
		departureDate.setFullYear(temp2[2], temp2[1] - 1, temp2[0]);
		if (departureDate < arrivalDate) {
			$(departureDateDropDownList).val(arrivalDate.getDate() + 1);
			departureDateJoined = arrivalDate.getMonth() + 1;
			if (departureDateJoined <= 10) {
				departureDateJoined = "0" + departureDateJoined;
			}
			if ($(departureMonthYearDropDownList).val().indexOf("/") > -1) {
				delimiter = "/";
			}
			else if ($(departureMonthYearDropDownList).val().indexOf(".") > -1) {
				delimiter = ".";
			}
			departureDateJoined = departureDateJoined + delimiter + departureDate.getFullYear();
			$(departureMonthYearDropDownList).val(departureDateJoined);
			$(departureDateElement).val(arrivalDate.getDate() + 1 + delimiter + departureDateJoined);
		}
		else {
			$(departureDateDropDownList).val(departureDate.getDate());
			departureDateJoined = departureDate.getMonth() + 1;
			if (departureDateJoined <= 10) {
				departureDateJoined = "0" + departureDateJoined;
			}
			if ($(departureMonthYearDropDownList).val().indexOf("/") > -1) {
				delimiter = "/";
			}
			else if ($(departureMonthYearDropDownList).val().indexOf(".") > -1) {
				delimiter = ".";
			}
			departureDateJoined = departureDateJoined + delimiter + departureDate.getFullYear();
			$(departureMonthYearDropDownList).val(departureDateJoined);
			$(departureDateElement).val(departureDate.getDate() + delimiter + departureDateJoined);
		}
	}

	function arrivalDropDownList(type) {
		var arrivalDateDropDownList;
		var arrivalMonthYearDropDownList;
		var departureDateDropDownList;
		var departureMonthYearDropDownList;
		var delimiter;
		switch (type) {
			case "panel":
				arrivalDateDropDownList = ".panel_arrival_date_dropdownlist";
				arrivalMonthYearDropDownList = ".panel_arrival_monthyear_dropdownlist";
				departureDateDropDownList = ".panel_departure_date_dropdownlist";
				departureMonthYearDropDownList = ".panel_departure_monthyear_dropdownlist";
				break;
			case "dlink":
				arrivalDateDropDownList = ".dlink_arrival_date_dropdownlist";
				arrivalMonthYearDropDownList = ".dlink_arrival_monthyear_dropdownlist";
				departureDateDropDownList = ".dlink_departure_date_dropdownlist";
				departureMonthYearDropDownList = ".dlink_departure_monthyear_dropdownlist";
				break;
		}

		var selectedArrivalDate = $(arrivalDateDropDownList).val();
		var selectedArrivalMonthYear = $(arrivalMonthYearDropDownList).val();
		var temp = [];
		var arrivalDate = new Date();
		var departureDate = new Date();
		var departureDateJoined;
		if (selectedArrivalMonthYear.indexOf("/") > -1) {
			delimiter = "/";
		}
		else if (selectedArrivalMonthYear.indexOf(".") > -1) {
			delimiter = ".";
		}
		temp = selectedArrivalMonthYear.split(delimiter);
		//temp[0] = month
		//temp[1] = year
		arrivalDate.setFullYear(temp[1], temp[0] - 1, selectedArrivalDate);
		departureDate.setFullYear(arrivalDate.getFullYear(), arrivalDate.getMonth(), arrivalDate.getDate() + 1);
		$(departureDateDropDownList).val(departureDate.getDate());
		departureDateJoined = departureDate.getMonth() + 1;
		if (departureDateJoined < 10) {
			departureDateJoined = "0" + departureDateJoined;
		}
		departureDateJoined = departureDateJoined + delimiter + departureDate.getFullYear();
		$(departureMonthYearDropDownList).val(departureDateJoined);
		temp = selectedArrivalMonthYear.split(delimiter);

		if (temp[0].substring(0, 1) == 0) {
			temp[0] = temp[0].substring(1, temp[0].length);
		}
		switch (temp[0]) {
			//february                             
			case '2':
				if (selectedArrivalDate > 28) {
					$(arrivalDateDropDownList).val(28);
					$(departureDateDropDownList).val(departureDate.getDate() - 1);
				}
				break;
			//april, june, september or november                                                                                               
			case '4':
			case '6':
			case '9':
			case '11':
				if (selectedArrivalDate > 30) {
					$(arrivalDateDropDownList).val(30);
					$(departureDateDropDownList).val(departureDate.getDate() - 1);
				}
				break;
		}
	}

	function departureDropDownList(type) {
		var arrivalDateDropDownList;
		var arrivalMonthYearDropDownList;
		var departureDateDropDownList;
		var departureMonthYearDropDownList;
		var delimiter;
		switch (type) {
			case "panel":
				arrivalDateDropDownList = ".panel_arrival_date_dropdownlist";
				arrivalMonthYearDropDownList = ".panel_arrival_monthyear_dropdownlist";
				departureDateDropDownList = ".panel_departure_date_dropdownlist";
				departureMonthYearDropDownList = ".panel_departure_monthyear_dropdownlist";
				break;
			case "dlink":
				arrivalDateDropDownList = ".dlink_arrival_date_dropdownlist";
				arrivalMonthYearDropDownList = ".dlink_arrival_monthyear_dropdownlist";
				departureDateDropDownList = ".dlink_departure_date_dropdownlist";
				departureMonthYearDropDownList = ".dlink_departure_monthyear_dropdownlist";
				break;
		}
		var selectedArrivalDate = $(arrivalDateDropDownList).val();
		var selectedArrivalMonthYear = $(arrivalMonthYearDropDownList).val();
		var selectedDepartureDate = $(departureDateDropDownList).val();
		var selectedDepartureMonthYear = $(departureMonthYearDropDownList).val();
		var temp = [];
		var temp2 = [];
		var arrivalDate = new Date();
		var departureDate = new Date();
		var departureDateJoined;
		if (selectedArrivalMonthYear.indexOf("/") > -1) {
			delimiter = "/";
		}
		else if (selectedArrivalMonthYear.indexOf(".") > -1) {
			delimiter = ".";
		}
		temp = selectedArrivalMonthYear.split(delimiter);
		arrivalDate.setFullYear(temp[1], temp[0] - 1, selectedArrivalDate);
		temp2 = selectedDepartureMonthYear.split(delimiter);
		departureDate.setFullYear(temp2[1], temp2[0] - 1, selectedDepartureDate);
		departureDateJoined = arrivalDate.getMonth() + 1;
		if (departureDateJoined < 10) {
			departureDateJoined = "0" + departureDateJoined;
		}
		departureDateJoined = departureDateJoined + delimiter + arrivalDate.getFullYear();
		if (departureDate < arrivalDate) {
			$(departureDateDropDownList).val((arrivalDate.getDate() + 1));
			$(departureMonthYearDropDownList).val(departureDateJoined);
		}

		temp = [];
		temp = selectedDepartureMonthYear.split(delimiter);
		//temp[0] = month
		//temp[1] = year
		switch (temp[0]) {
			//february                                                                                           
			case '2':
				if (selectedDepartureDate > 28) {
					$(departureDateDropDownList).val(28);
				}
				break;
			//april, june, september or november                                                                                           
			case '4':
			case '6':
			case '9':
			case '11':
				if (selectedDepartureDate > 30) {
					$(departureDateDropDownList).val(30);
				}
				break;
		}
	}

	return {
		init: init,
		ajaxCalendarArrivalDate: ajaxCalendarArrivalDate,
		ajaxCalendarDepartureDate: ajaxCalendarDepartureDate,
		arrivalDropDownList: arrivalDropDownList,
		departureDropDownList: departureDropDownList
	};
})();

$(RF.Hotel_1.init);
