﻿/// <reference path=/common/library/javascript/jquery/jquery-1.4.1-vsdoc.js />

/*
* Namespace for RF CandI
*/
var RF = window.RF ||
{};
RF.CandI = {};
RF.CandI = (function() {

	var slideshowEngine;
	var loop = 0;
	var initialHref = window.location.href;
	var persistState = false;
	var requiredMajorVersion = 9; //Minor version of Flash required	
	var requiredMinorVersion = 0;
	var requiredRevision = 00; //Revision of Flash required

	function init() {
		createEventListeners();
		tabs();
		rightPanel();
		slideshow();
		tableHighlight();
		roomTracker();
	}

	function createEventListeners() {
		//Capacity search button
		$(".capacity_trigger_button").click(function(e) {
			var capacity = $(".capacity_textbox").val();
			if (capacity == "") {
				alert("Please enter capacity");
				e.preventDefault();
			}
		});

		//Search search dropdowns
		$(".hotel_list_capacity_search_dropdownlist, .hotel_rooms_count_dropdownlist, .meeting_rooms_count_dropdownlist, .seating_format_dropdownlist").change(function(e) {
			var selectedValue = $(this).val();
			$(this).next("input[type=hidden]").val(selectedValue);
		});

		//Accessibility search button
		$(".accessibility_trigger_button").click(function(e) {
		});

		//Room count search button
		$(".room_count_trigger_button").click(function(e) {
		});

		//Gallery dropdown
		$(".gallery_links_dropdownlist, .gallery_dropdownlist").change(function(e) {
			var selectedValue = $(this).val();
			if (selectedValue != "-1") {
				window.location = selectedValue;
			} else {
				e.preventDefault();
			}
		});

		//Meeting rooms details
		$("#room_list .information a").click(function(e) {
			var trigger = $(this);
			var target = $(this).parent().siblings(".room_details_container");
			if ($(target).is(":visible") == true) {
				$(target).slideUp("slow");
				$(trigger).children("span").html("CHOOSE ANOTHER ROOM");
				$("#room_list .information").removeClass("information").addClass("alternate_information");
				$(trigger).children(".arrow").hide();
			}
			else {
				$(target).slideDown("slow");
				$(trigger).children("span").html("Click on any room to find out more");
				$("#room_list .alternate_information").removeClass("alternate_information").addClass("information");
				$(trigger).children(".arrow").attr("src", "/common/template/images/openarrow.gif");
				$(trigger).children(".arrow").show();
			}
			e.preventDefault();
		});

		//Specific room link from group site
		if ($(".room_details_table").size() > 0) {
			if (window.location.hash.length > 0) {
				var hashValues = window.location.hash.split("#");
				var selectedValues = [];
				for (var i = 0; i < hashValues.length; i++) {
					if (hashValues[i] != "") {
						selectedValues.push(hashValues[i]);
					}
				}
				var Counter = $(".room_details_table tbody tr").size();
				for (var i = 0; i < Counter; i++) {
					var currentElement = $(".room_details_table tbody tr").eq(i).children(".room_name").children("input[type=hidden]");
					var currentValue = $(currentElement).val();
					if (currentValue == selectedValues[0]) {
						setTimeout(function() { (currentElement).prev("a").click(); }, 1000);
						break;
					}
				}
			}
		}

		//Flash floorplan dropdownlist
		if ($(".floorplan_dropdownlist").size() > 0) {
			try {
				var firstValue = $(".floorplan_dropdownlist").val();
				var content = "";
				//Detect flash
				var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
				if (hasRightVersion) {
				} else {
					firstValue = firstValue.replace("/flash/", "/images/");
					content = "<div class=\"flash_replacement_container\"><img src=\"" + escape(firstValue) + ".gif\" alt=\"\" /></div>";
				}

				if (content != "" && content != undefined) {
					$(".flash_floorplan_container").html(content);
				}
			} catch (e) { }
		}

		$(".floorplan_dropdownlist").change(function(e) {
			var selectedValue = $(this).val();
			var mediaType = $(".floorplan_media_type").children("input[type=hidden]").val();
			//Detech flash
			var content = "";
			try {
				if (mediaType == "flash") {
					var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
					if (hasRightVersion) {
						content = "<object width=\"664\" height=\"400\" id=\"RoccoForteCollectionFloorplanContainer\" data=\"/common/template/flash/floorplan_container.swf\" type=\"application/x-shockwave-flash\">" +
									"<param name=\"movie\" value=\"/common/template/flash/floorplan_container.swf\">" +
									"<param name=\"wmode\" value=\"transparent\">" +
									"<param name=\"quality\" value=\"high\">" +
									"<param name=\"flashvars\" value=\"source_file=" + escape(selectedValue) + ".swf\">" +
								  "</object>";
					} else {
						selectedValue = selectedValue.replace("/flash/", "/images/");
						content = "<div class=\"flash_replacement_container\"><img src=\"" + escape(selectedValue) + ".jpg\" alt=\"\" /></div>";
					}
				}
				else {
					selectedValue = selectedValue.replace("/flash/", "/images/");
					content = "<div class=\"flash_replacement_container\"><img src=\"" + escape(selectedValue) + ".gif\" alt=\"\" /></div>";
				}
			} catch (e) { }
			$(".flash_floorplan_container").html(content);
		});

		//Room tracker
		$(".add_to_room_tracker_trigger").click(function(e) {
			var hotelCodename = $(".hotel_codename").val();
			var roomCodename = $("#room_codename").val();
			var roomName = $("#room_floorplan .room_name").text();
			var seating = $("#seating_options :selected").val();
			var container = $(".room_tracker_list_container");
			//escape function won't work with german characters
			roomName = roomName.replace("&", "%20%26%20");
			$.ajax({
				type: "POST",
				data: "command=add_to_list&hotel_codename=" + hotelCodename + "&room_codename=" + escape(roomCodename) + "&seating=" + escape(seating) + "&roomname=" + roomName,
				url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				async: false,
				success: function(response) {
					if (response != "") {
						if ($(container).children(".item_list").children().size() == 0) {
							$(container).children(".item_list").html(response);
						}
						else {
							var existingList = $(container).children(".item_list").html();
							$(container).children(".item_list").html(existingList + response);
						}
					}
					//Check for empty list
					if ($(container).children(".item_list").children().size() > 0) {
						$(".empty_list_container").hide();
						if ($("#panel .room_tracker .panel_content").is(":visible") == false) {
							$("#panel .room_tracker .panel_content").slideDown("slow");
						}
					}
					else {
						$(".empty_list_container").show();
					}
				},
				error: function(response) {
				}
			});
			//Get room name and layout
			e.preventDefault();
		});

		//Gallery
		if ($(".gallery_container").size() > 0) {
			$(".gallery_container .small_image_container img").each(function(i) {
				$(this).click(function(e) {
					selectImage(i);
					e.preventDefault();
				});
			});

			function selectImage(i) {
				slideshowEngine.jumpToPair(i, false);
				galleryImageSwitched({
					to: i
				});
			}

			slideshowEngine = new imageslideshowEngine();
			slideshowEngine.images = $(".gallery_container .large_image_container img").get();
			slideshowEngine.init(6000, 1000, galleryImageSwitched);
			loop = 0;
		}

		function galleryImageSwitched(indexes) {
			$('.gallery_container .large_image_container img').eq(indexes.to).addClass('active').siblings().removeClass('active');
		}

		//RFP form
		$(".dropdown").change(function(e) {
			var selectedElement = $(this);
			var selectedValue = $(this).val();
			$(selectedElement).next("input[type=hidden]").val(selectedValue);
		});

		//Ajax upload
		if ($("#attach_file_trigger").size() > 0) {
			new AjaxUpload("attach_file_trigger", {
				action: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				name: "room_tracker_file",
				data: {
					command: "upload_room_tracker_file"
				},
				autoSubmit: true,
				responseType: "text/plain",
				onComplete: function(file, response) {
					var result = "<div class=\"uploaded_filename\">" + file + "</div>";
					$(".attached_file").html(result);
					$(".attached_file").next("input[type=hidden]").val(file);
				}
			});
		}

		//PDF Generation
		$(".show_pdf_form").click(function(e) {
			$(".generate_button_container").find(".pdf_link").hide();
			$(".content_validation").hide();
			$(".generate_button_container").find(".information_text").hide();
			$.ajax({
				type: "POST",
				data: "command=get_selected_rooms_markup",
				url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				async: false,
				success: function(response) {
					//Update room list
					if (response == null || response == "") {
						$(".factsheet_container").remove();
					} else {
						$(".selected_rooms_container").html(response);
					}
					$("#pdf_generator_container").fadeIn("fast");
					$(".generate_button_container").find(".trigger").show();
				}
			});
			e.preventDefault();
		});

		$(".close_pdf_form").click(function(e) {
			$("#pdf_generator_container").fadeOut("fast");
			e.preventDefault();
		});

		$("#pdf_generator_container .trigger").click(function(e) {
			$(".generate_button_container").find(".information_text").hide();
			//Validation
			if ($(".content_selection_container").find(":checked").size() == 0) {
				if ($(".content_validation").is(":visible") == false) {
					$(".content_validation").slideDown("fast");
				}
				e.preventDefault();
				return false;
			}

			if ($(".content_validation").is(":visible") == true) {
				$(".content_validation").slideUp("fast");
			}
			var currentProperty = $("#current_property").val();
			var information = $("#pdf_generator_container").find(".information").children("input[type=checkbox]").is(":checked");
			var destination = $("#pdf_generator_container").find(".destination").children("input[type=checkbox]").is(":checked");
			var transport = $("#pdf_generator_container").find(".transport").children("input[type=checkbox]").is(":checked");
			var selectedRooms = [];

			$("#pdf_generator_container").find(".selected_rooms_container").find("input[type=checkbox]").each(function(i) {
				var current = $(this);
				if ($(current).is(":checked")) {
					var hiddenValue = $(current).next("input[type=hidden]");
					selectedRooms.push(escape($(hiddenValue).val()));
				}
			});

			$(".generate_button_container").find(".trigger").hide();
			$(".generate_button_container").find(".information_text").show();
			$(".generate_button_container").append("<img class=\"loader\" alt=\"\" src=\"/common/template/images/ajax_loader.gif\" />");
			$.ajax({
				type: "POST",
				data: "command=generate_pdf&current_property=" + currentProperty + "&in=" + information + "&de=" + destination + "&tr=" + transport + "&sr=" + selectedRooms,
				url: "/common/template/usercontrols/handlers/GeneratePDF.ashx",
				async: true,
				success: function(response) {
					$(".generate_button_container").find(".loader").remove();
					$(".generate_button_container").find(".information_text").remove();
					$(".generate_button_container").find(".pdf_link").attr("href", response);
					$(".generate_button_container").find(".pdf_link").show();
				},
				error: function(response) {
					$(".generate_button_container").find(".loader").remove();
					$(".generate_button_container").find(".information_text").html("Cannot generate your PDF. Please try again later.");
				}
			});
			e.preventDefault();
		});

		//Mailing list
		$(".show_mail_list_form").click(function(e) {
			$(".content_validation").hide();
			$.ajax({
				type: "POST",
				data: "command=get_selected_rooms_markup",
				url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				async: false,
				success: function(response) {
					//Update room list
					if (response == null || response == "") {
						$(".selected_rooms_container").remove();
					} else {
						$(".selected_rooms_container").html(response);
						$("#mail_room_list_container").fadeIn("fast");
					}
				}
			});
			e.preventDefault();
		});

		$(".close_mailing_form").click(function(e) {
			$("#mail_room_list_container").fadeOut("fast");
			e.preventDefault();
		});

		$("#mail_room_list_container .trigger").click(function(e) {
			if ($(".content_validation").is(":visible") == true) {
				$(".content_validation").slideUp("fast");
			}

			var emailExpression = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
			var currentProperty = $("#current_property").val();
			var description = $("#mail_room_list_container").find(".description").children("input[type=checkbox]").is(":checked");
			var transport = $("#mail_room_list_container").find(".transport").children("input[type=checkbox]").is(":checked");
			var facilities = $("#mail_room_list_container").find(".facilities").children("input[type=checkbox]").is(":checked");
			var subject = $("#mail_room_list_container").find(".validation").children("span.subject").html()
			var senderName = $("#mail_room_list_container").find(".sender_name").val();
			var senderEmail = $("#mail_room_list_container").find(".sender_email").val();
			var recipientName = $("#mail_room_list_container").find(".recipient_name").val();
			var recipientEmail = $("#mail_room_list_container").find(".recipient_email").val();
			var ccEmail = $("#mail_room_list_container").find(".cc_email").val();
			var message = $("#mail_room_list_container").find(".message").val();

			//Validation
			if (description == false && transport == false && facilities == false) {
				$(".content_validation").html($(".validation .content").html());
				$(".content_validation").slideDown("fast");
				return false;
			}
			if (senderName == "") {
				$(".content_validation").html($(".validation .sender_name").html());
				$(".content_validation").slideDown("fast");
				return false;
			}
			if (senderEmail == "" || !emailExpression.test(senderEmail)) {
				$(".content_validation").html($(".validation .sender_email").html());
				$(".content_validation").slideDown("fast");
				return false;
			}
			if (recipientName == "") {
				$(".content_validation").html($(".validation .recipient_name").html());
				$(".content_validation").slideDown("fast");
				return false;
			}
			if (recipientEmail == "" || !emailExpression.test(recipientEmail)) {
				$(".content_validation").html($(".validation .recipient_email").html());
				$(".content_validation").slideDown("fast");
				return false;
			}
			if (message == "") {
				$(".content_validation").html($(".validation .message").html());
				$(".content_validation").slideDown("fast");
				return false;
			}

			var selectedRooms = [];
			$("#mail_room_list_container").find(".selected_rooms_container").find("input[type=checkbox]").each(function(i) {
				var current = $(this);
				var hiddenValue = $(current).next("input[type=hidden]");
				selectedRooms.push(escape($(hiddenValue).val()));
			});

			$.ajax({
				type: "POST",
				data: "command=mail_to_friend&current_property=" + currentProperty + "&de=" + description + "&tr=" + transport + "&fa=" + facilities + "&sr=" + selectedRooms + "&sj=" + subject + "&sn=" + senderName + "&se=" + senderEmail + "&rn=" + recipientName + "&re=" + recipientEmail + "&cc=" + ccEmail + "&me=" + message,
				url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				async: true,
				success: function(response) {
					$("#mail_room_list_container").find(".button_container").html($(".validation .sent_email_message").html());
				}
			});
			e.preventDefault();
		});
	}

	//Gallery move right button
	$(".gallery_container .move_right").click(function(e) {
		var imageCount = $(".image_thumbnail").children().size();
		var containerWidth = (imageCount * 68);
		containerWidth = containerWidth - (containerWidth * 2);

		var vleft = $(".image_thumbnail").css("left");
		var vwidth = $(".image_thumbnail").css("width");

		vleft = parseInt(vleft.substring(0, vleft.length - 2)) - 657;
		if (vleft >= containerWidth) {
			$(".image_thumbnail").animate({
				left: vleft
			}, 500);
		}
		e.preventDefault();
	});

	//Gallery move left button
	$(".gallery_container .move_left").click(function(e) {
		var vleft = $(".image_thumbnail").css("left");
		vleft = parseInt(vleft.substring(0, vleft.length - 2)) + 657;
		if (vleft <= 0) {
			$(".image_thumbnail").animate({
				left: vleft
			}, 500);
		}
		e.preventDefault();
	});

	function tabs() {
		//Headers
		$(".tabs").tabs({
			select: function(event, ui) {
				try {
					var selectedId = $(ui.panel).attr("id");
					if (selectedId == "room_floorplan") {
						$(".room_tracker_information").slideDown("slow");
					}
					else if (selectedId == "meeting_floors") {
						if ($("#meeting_floors").is(":visible") == false) {
							$("#meeting_floors").show();
						}
					}
					else {
						$(".room_tracker_information").hide();
					}
				} catch (e) { }
			}
		});

		$(".search-result").each(function() {
			$(this).siblings(".details").hide();
		});
		//Open and close detail room tab
		$(".search-list .search-result li a").click(function(e) {
			$(this).parent().parent().toggleClass("active");
			var detailsContainer = $(this).parent().parent().siblings(".details");
			if (detailsContainer.is(":visible") == false) {
				detailsContainer.slideDown("fast");
			}
			else {
				detailsContainer.slideUp("fast");
			}
			e.preventDefault();
		});
		//Min and max detail room tab
		$(".tabs .minimise a").click(function(e) {
			$(this).parent().next().toggle();
			$(this).parent().toggleClass("active");
			e.preventDefault();
		});
	}

	function rightPanel() {
		//Show open/close default panels
		$("#right_panel #panel li").each(function(index) {
			var selectedElement = $(this);
			if (($(selectedElement).hasClass("navigations") && $("#current_property").size() == 0)
				|| ($(selectedElement).hasClass("navigations") && $("#current_property").val() == "GROUP")
				|| $(selectedElement).hasClass("room_finder")) {
			}
			else {
				$(selectedElement).children(".panel_content").hide();
				//$(selectedElement).children(".arrow").attr("src", "/common/template/images/closearrow.gif");
			}
		});

		//right panel slide toggle and search function
		$("#right_panel .header").click(function(e) {
			var selectedElement = $(this).next(".panel_content");
			if ($(selectedElement).is(":visible")) {
				$(selectedElement).slideUp("slow");
				//$(selectedElement).prevAll(".header").children(".arrow").attr("src", "/common/template/images/closearrow.gif");
				if ($.browser.msie != null && $.browser.msie && $.browser.version == "6.0") {
					$(selectedElement).css("zoom", "0");
				}
			}
			else {
				$(selectedElement).slideDown("slow");
				//$(selectedElement).prevAll(".header").children(".arrow").attr("src", "/common/template/images/openarrow.gif");
				if ($.browser.msie != null && $.browser.msie && $.browser.version == "6.0") {
					$(selectedElement).css("zoom", "1");
				}
			}
			e.preventDefault();
		});

		$("#right_panel .room_finder .search_option_dropdownlist").change(function() {
			var selectedValue = $(this).val();
			switch (selectedValue) {
				case "1":
					$("#right_panel .room_finder .section").hide();
					$("#right_panel .room_finder .capacity").show();
					break;
				case "2":
					$("#right_panel .room_finder .section").hide();
					$("#right_panel .room_finder .accessibility").show();
					break;
				case "3":
					$("#right_panel .room_finder .section").hide();
					$("#right_panel .room_finder .room_count").show();
					break;
			}
		}).change();
	}

	function slideshow() {
		var imageContainer;
		if ($("#landing_image_container").size() > 0) {
			//Landing
			imageContainer = $("#landing_image_container img");
		}
		else if ($("#image_container").size() > 0) {
			//Content
			imageContainer = $("#image_container img");
		}
		if ($(".gallery_container").size() == 0) {
			function imageSwitch(e) {
				loop = e.to;
			}
			slideshowEngine = new imageslideshowEngine();
			slideshowEngine.images = $(imageContainer).get();
			slideshowEngine.init(6000, 1000, imageSwitch);
			loop = 0;
		}
	}

	function tableHighlight() {
		if ($(".room_details_table").size() == 1) {
			$(".room_details_table tr td.trigger").click(function(e) {
				var selectedElement = $(this);
				$(selectedElement).parent().siblings().removeClass("active");
				$(selectedElement).parent().addClass("active");
				persistState = true;
				e.preventDefault();
			});
		}

		$(".room_details_table td").mouseover(function(e) {
			var selectedElement = $(this);
			$(selectedElement).parent().addClass("active");
			persistState = false;
		});

		$(".room_details_table td").mouseout(function(e) {
			var selectedElement = $(this);
			if (persistState == false) {
				$(selectedElement).parent().removeClass("active");
			}
		});
	}

	function handleRoomCodenameInUrl() {
		var hashValues = window.location.hash;
		if (hashValues != null && hashValues != undefined && hashValues != "") {
			if (initialHref != window.location.href) {
				hashValues = hashValues.replace("#", "");
				var allRoomCodenames = $(".room_details_table").find("td.room_name").children("input[type=hidden]");
				for (var i = 0; i < $(allRoomCodenames).size(); i++) {
					var currentCodename = $(allRoomCodenames).eq(i).val();
					if (currentCodename == hashValues) {
						showRoomDetails($(allRoomCodenames).eq(i), currentCodename, null);
						initialHref = window.location.href;
						break;
					}
				}
			}
		}
	}

	function updateSelectedRoom(sender, roomCodename) {
		if ($(sender).parent().hasClass("room_name") == true) {
			$(sender).parent().parent().siblings().removeClass("active");
			$(sender).parent().parent().addClass("active");
			persistState = true;
			window.location.hash = "#" + escape(roomCodename);
		}
		return false;
	}

	function showRoomDetails(sender, roomCodename) {
		$(sender).parent().parent().siblings().removeClass("active");
		$(sender).parent().parent().addClass("active");

		var hotelCodeName = $(".hotel_codename").val();
		var Container = $(".description_for_hotel_container");
		$.ajax({
			type: "POST",
			data: "command=show_room_details&hotel_codename=" + hotelCodeName + "&room_codename=" + escape(roomCodename),
			url: "/common/template/usercontrols/handlers/GetRoomDetails.ashx",
			async: false,
			success: function(response) {
				if (response != null && response != undefined) {
					//Room name
					var roomName = $(response).find("room_name").text();
					//Codename
					var codename = $(response).find("codename").text();
					//Types
					var seatingDropDownMarkup = "";
					var types = $(response).find("types").children();
					$(types).each(function(i) {
						seatingDropDownMarkup += "<option value=\"" + $(types).eq(i).attr("room_type") + "\">" + $(types).eq(i).text() + "</option>";
					});
					seatingDropDownMarkup = "<select id=\"seating_option_dropdownlist\">" + seatingDropDownMarkup + "</select>";
					//Dimensions
					var dimensions = $(response).find("dimensions").text();
					//Capacities
					var firstCapacity = $(types).eq(0).text();
					var capacitiesMarkup = "";
					var capacities = $(response).find("capacities").children();
					$(capacities).each(function(i) {
						capacitiesMarkup += "<span class=\"value " + $(capacities).eq(i).attr("room_type") + "\">" + $(capacities).eq(i).text() + "</span>";
					});
					//Images
					var codenameFolder = (codename != null && codename != undefined && codename != "") ? codename + "/" : "";
					var assetsFolder = "/assets/" + hotelCodeName + "/room_images/" + codenameFolder;
					var imagesMarkup = "";
					var images = $(response).find("images").children();
					$(images).each(function(i) {
						imagesMarkup += "<img alt=\"" + $(images).eq(i).attr("room_type") + "\" src=\"" + assetsFolder + $(images).eq(i).text() + "\" />";
					});
					//Description
					var description = $(response).find("description").text();
					var equiptment = $(response).find("equiptment").text();
					//Gallery
					var galleryThumbnailSize = $(response).find("gallery").children("thumbnail_size").text();
					var galleryLargeSize = $(response).find("gallery").children("large_size").text();
					var galleryPath = $(response).find("gallery").children("path").text();
					var galleryImages = $(response).find("gallery").children("image_names").children();
					var galleryLargeImageTags = "";
					var gallerySmallImageTags = "";
					var galleryImageCount = $(galleryImages).size();
					$(galleryImages).each(function(i) {
						galleryLargeImageTags += "<img src=\"" + galleryPath + galleryLargeSize + $(galleryImages).eq(i).text() + "\" alt=\"\" />";
						gallerySmallImageTags += "<img src=\"" + galleryPath + galleryThumbnailSize + $(galleryImages).eq(i).text() + "\" alt=\"\" />";
					});
					var defaultUnit = " (meters)";
					if (hotelCodeName == "balmoral" || hotelCodeName == "browns" || hotelCodeName == "lowry") {
						defaultUnit = " (ft)";
					}
					//Update values
					$(Container).find("#room_codename").val(codename);
					$(Container).find(".room_name").html(roomName);
					$(Container).find("#room_dimensions").html(dimensions);
					var dimensionValues = $(Container).find("#room_dimensions_text").html();
					dimensionValues = dimensionValues.replace("##unit##", defaultUnit);
					$(Container).find("#room_dimensions_text").html(dimensionValues);
					$(Container).find("#seating_options").html(seatingDropDownMarkup);
					$(Container).find("#room_capacity_text").html(firstCapacity);
					$(Container).find("#room_capacity").html(capacitiesMarkup);
					$(Container).find("#floorplan_images_container").html(imagesMarkup);
					$(Container).find("#room_description").html(description);
					$(Container).find("#room_equipment").html(equiptment);
					if (galleryImageCount > 0) {
						$(Container).find(".large_image_container").html(galleryLargeImageTags);
						$(Container).find(".small_image_container .image_strip .image_thumbnail").html(gallerySmallImageTags);
						$("#li_gallery").show();
						$("#room_gallery").show();
					} else {
						$("#li_gallery").hide();
						$("#room_gallery").hide();
					}
					Container.fadeIn("fast");

					$("#floorplan_images_container img").each(function(i) {
						if (i != 0) {
							$(this).hide();
						}
					});
					$(".room_dimensions_capacity_container #room_capacity span").each(function(i) {
						if (i != 0) {
							$(this).hide();
						}
					});
					//Seating type dropdownlist
					$("#seating_option_dropdownlist").change(function(e) {
						var selectedValue = $(this).val();
						$("#floorplan_images_container img").hide();
						$("#floorplan_images_container img[alt=" + selectedValue + "]").show();
						$(".room_dimensions_capacity_container #room_capacity_text").html($(this).find("option").filter(":selected").text() + " capacity:");
						$(".room_dimensions_capacity_container #room_capacity span").hide();
						$(".room_dimensions_capacity_container #room_capacity span." + selectedValue).show();
						e.preventDefault();
					});
					//Close rooms table
					$(".room_details_container").hide();
					$("#room_list .information span").html("CHOOSE ANOTHER ROOM");
					$("#room_list .information").removeClass("information").addClass("alternate_information");
					$("#room_list .alternate_information .arrow").hide();

					//Gallery slideshow
					$("#room_gallery .gallery_container .small_image_container img").each(function(i) {
						$(this).click(function(e) {
							selectImage(i);
							e.preventDefault();
						});

					});
					function selectImage(i) {
						slideshowEngine.jumpToPair(i, true);
						roomGalleryImageSwitched({
							to: i
						});
					}
					function roomGalleryImageSwitched(indexes) {
						$("#room_gallery .gallery_container .large_image_container img").eq(indexes.to).addClass("active").siblings().removeClass("active");
					}
					slideshowEngine = new imageslideshowEngine();
					slideshowEngine.images = $("#room_gallery .gallery_container .large_image_container img").get();
					slideshowEngine.init(6000, 1000, roomGalleryImageSwitched);
				}
				else {
					Container.hide();
				}
			},
			error: function(response) {
				Container.hide();
			}
		});
		return false;
	}

	function removeRoomFromTrackerList(hotelCodename, roomCodename, roomName, seatingFormat) {
		var itemListContainer = $("#panel .room_tracker .item_list").children();
		if (itemListContainer.size() > 0) {
			$.ajax({
				type: "POST",
				data: "command=remove_from_list&hotel_codename=" + hotelCodename + "&room_codename=" + escape(roomCodename) + "&roomname=" + escape(roomName) + "&seating=" + escape(seatingFormat),
				url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
				success: function(response) {

				},
				error: function(response) {
				}
			});

			for (var i = 0; i < $(itemListContainer).size(); i++) {
				var elemnentHotelCodename = $(itemListContainer).eq(i).children(".tracker_hotel_codename").val();
				var elementRoomCodename = $(itemListContainer).eq(i).children(".tracker_room_codename").val();
				var elementSeatingFormat = $(itemListContainer).eq(i).children(".tracker_seating_format").val();
				if (elemnentHotelCodename == hotelCodename && elementRoomCodename == roomCodename && elementSeatingFormat == seatingFormat) {
					$(itemListContainer).eq(i).remove();
					continue;
				}
			}
		}
		if ($("#panel .room_tracker .item_list").children().size() == 0) {
			$(".empty_list_container").show();
		}
		return false;
	}

	///Called from flash
	function selectRoomFromFlash(hotelCodename, roomCodename) {
		$(".room_list_trigger").click();
		window.location.hash = roomCodename;
		$(".room_details_table .room_name").each(function(i) {
			var currentElement = $(".room_details_table .room_name").eq(i).children("input[type=hidden]");
			if ($(currentElement).val() == roomCodename) {
				$(currentElement).parent().parent().siblings().removeClass("active");
				$(currentElement).parent().parent().addClass("active");
			}
		});
		if ($(".room_details_container").is(":visible") == false) {
			$(".room_details_container").show();
		}
		if ($(".description_for_hotel_container").is(":visible") == true) {
			$(".description_for_hotel_container").hide();
		}
	}

	function getSelectedValue(element) {
		var selectedElement = $(element);
		var selectedValue = $(element).val();
		$(selectedElement).next("input[type=hidden]").val(selectedValue);
	}

	function ajaxCalendarArrivalDate() {
	}

	function ajaxCalendarDepartureDate() {
	}

	function roomTracker() {
		var container = $(".room_tracker_list_container");
		var currentProperty = $("#current_property").val();
		$.ajax({
			type: "POST",
			data: "command=get_selected_rooms&current_property=" + currentProperty,
			url: "/common/template/usercontrols/handlers/RoomTrackerHandler.ashx",
			async: false,
			success: function(response) {
				if (response != "") {
					if ($(container).children(".item_list").children().size() == 0) {
						$(container).children(".item_list").html(response);
					}
					else {
						var existingList = $(container).children(".item_list").html();
						$(container).children(".item_list").html(existingList + response);
					}
				}
				//Check for empty list
				if ($(container).children(".item_list").children().size() > 0) {
					$(".empty_list_container").hide();
					if ($("#panel .room_tracker .panel_content").is(":visible") == false) {
						$("#panel .room_tracker .panel_content").slideDown("slow");
					}
				}
				else {
					$(".empty_list_container").show();
				}
			},
			error: function(response) {
			}
		});
	}

	function addRoomTrackerDefaultValues() {
		if ($(".add_more_day_container").size() > 0) {
			//Add day one by default
			$(".add_more_day_container").children("input[type=hidden]").val("2");
		}
	}

	function rfpFormSubmit() {
		var firstname = $(".rfp_form_container").find("input.firstname").val();
		var lastname = $(".rfp_form_container").find("input.lastname").val();
		var email = $(".rfp_form_container").find("input.email").val();
		var telephone = $(".rfp_form_container").find("input.telephone").val();
		var city = $(".rfp_form_container").find("input.city").val();

		var firstnameValidationText = $(".rfp_form_container .rfp_values").find("span.firstname").html();
		var lastnameValidationText = $(".rfp_form_container .rfp_values").find("span.lastname").html();
		var emailValidationText = $(".rfp_form_container .rfp_values").find("span.email").html();
		var telephoneValidationText = $(".rfp_form_container .rfp_values").find("span.telephone").html();
		var cityValidationText = $(".rfp_form_container .rfp_values").find("span.city").html();

		if (firstname == "") {
			alert(firstnameValidationText);
			return false;
		}
		if (lastname == "") {
			alert(lastnameValidationText);
			return false;
		}
		if (email == "") {
			alert(emailValidationText);
			return false;
		}
		else {
			var regularExpression = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
			if (!regularExpression.test(email)) {
				alert(emailValidationText);
				return false;
			}
		}
		if (telephone == "") {
			alert(telephoneValidationText);
			return false;
		}
		if (city == "") {
			alert(cityValidationText);
			return false;
		}
		return true;

	}

	return {
		init: init,
		updateSelectedRoom: updateSelectedRoom,
		removeRoomFromTrackerList: removeRoomFromTrackerList,
		selectRoomFromFlash: selectRoomFromFlash,
		handleRoomCodenameInUrl: handleRoomCodenameInUrl,
		ajaxCalendarArrivalDate: ajaxCalendarArrivalDate,
		ajaxCalendarDepartureDate: ajaxCalendarDepartureDate,
		addRoomTrackerDefaultValues: addRoomTrackerDefaultValues,
		rfpFormSubmit: rfpFormSubmit

	};
})();

$(RF.CandI.init);
setTimeout(function() { $(RF.CandI.addRoomTrackerDefaultValues); }, 1000);
setInterval(function() { $(RF.CandI.handleRoomCodenameInUrl); }, 100);
