﻿/*
Main COMO Hotels namespace
*/
// fixer code for Firebug's console when mixed with jquery(document).ready()
try {
	if (console) {
		console.log();
	}
}
catch (e) {
}

COMO = (function($) {

	var ns = 'COMO';
	var description = 'COMO root namespace.';

	function init() {
		//Set forward to friend trigger
		if ($(".email").size() > 0) {
			$(".email").click(function() {
				$("#forwardtofriendcontainer").fadeIn("slow");
				return false;
			});
		}
		if ($(".forwardtofriendclosebutton").size() > 0) {
			$(".forwardtofriendclosebutton").click(function() {
				$("#forwardtofriendcontainer").fadeOut("slow");
				return false;
			});
		}
		shortbreakGroupInterface();
		shortbreakGroupResult();
		floorplans();
		footerTrackLinks();
		roomFloorplan();
	}

	function shortbreakGroupInterface() {
		if ($(".all_locations_checkbox").size() > 0) {
			$(".all_locations_checkbox").click(function(e) {
				var status = this.checked;
				$(".location_checkboxlist :checkbox").each(function() {
					this.checked = status;
				});
			});
		}

		if ($(".all_types_checkbox").size() > 0) {
			$(".all_types_checkbox").click(function(e) {
				var status = this.checked;
				$(".type_checkboxlist :checkbox").each(function() {
					this.checked = status;
				});
			});
		}
	}

	function shorbreak_group_calendar() {
		try {
			var selectedDateTime = $(".shortbreak_group_frontpage_container .calendar_textbox").val();
			var month = selectedDateTime.split("/")[1];
			var year = selectedDateTime.split("/")[2];
			$(".shortbreak_group_frontpage_container .month_dropdownlist").val(month);
			$(".shortbreak_group_frontpage_container .year_dropdownlist").val(year);
		} catch (e) { }
	}

	function shortbreakGroupResult() {
		$(".result_per_property_container .type_per_property").hide();
		$(".type_container .description").hide();
		$(".type_container").hide();
		$(".result_per_property_container .propery_header a").click(function(e) {
			if ($(this).parent().nextAll(".type_per_property").is(":visible") == false) {
				$(this).parent().nextAll(".type_per_property").slideDown("fast");
				$(this).parent().addClass("propery_header_active");
			}
			else {
				$(this).parent().nextAll(".type_per_property").slideUp("fast");
				$(this).parent().removeClass("propery_header_active");
			}
			e.preventDefault();
		});

		$(".summary_container .counter").click(function(e) {
			if ($(this).parent().next(".type_per_property").is(":visible") == false) {
				$(this).parent().next(".type_per_property").slideDown("fast");
			}
			else {
				$(this).parent().next(".type_per_property").slideUp("fast");
			}
		});

		$(".type_per_property .type_per_property_header a").click(function(e) {
			if ($(this).parent().next(".type_container").is(":visible") == false) {
				$(this).parent().next(".type_container").slideDown("fast");
				$(this).parent().addClass("type_per_property_header_active");
			}
			else {
				$(this).parent().next(".type_container").slideUp("fast");
				$(this).parent().removeClass("type_per_property_header_active");
			}
			e.preventDefault();
		});

		$(".type_container .each a").click(function(e) {
			if ($(this).nextAll(".description").is(":visible") == false) {
				$(this).nextAll(".description").slideDown("fast");
				$(this).addClass("trigger_active");
			}
			else {
				$(this).nextAll(".description").slideUp("fast");
				$(this).removeClass("trigger_active");
			}
			e.preventDefault();
		});
	}

	function shortBreakGrouupValidation() {
		var message = "";
		if ($(".location_checkboxlist :checked").size() == 0) {
			message = "Please select a destination.\n";
		}
		if ($(".type_checkboxlist :checked").size() == 0) {
			message += "Please select a field.\n";
		}
		if (message != "") {
			alert(message);
			return false;
		}
		else {
			return true;
		}
	}


	function floorplans() {
		try {
			if ($(".jqzoom").size() > 0) {
				var options = {
					zoomWidth: 300,
					zoomHeight: 300,
					showEffect: "fadein",
					hideEffect: "fadeout",
					showPreload: false,
					title: false
				};

				jQuery(".jqzoom").jqzoom(options);

				setTimeout(function showFirst() {
					jQuery(".floorplan_container a").each(function(index) {
						if (index != 0) {
							jQuery(this).hide();
						}
					})
				}, 1000);
			}
		} catch (e) { }
	}


	function changeFloorPlan(index) {
		if ($("#floorplan").size() > 0) {
			var speed = 500;
			$("#floorplan a").each(function(index) {
				$(this).hide();
			});
			$("#floorplan a").eq(index - 1).fadeIn(speed);
			var src = $("#floorplan a").eq(index - 1).children("img").attr("src");
			$(".floorplan_link").attr("href", "/central/controls/PrintFloorplan.aspx?floorplan=" + src);
			return false;
		}
	}

	function showFooterFollow() {
		//		if ($("#trip_advisor").length == 0) {
		//			$("#twitter").addClass('noborder');
		//		}
		//		if ($("#twitter").css('visibility') == "hidden") {
		//			$("#trip_advisor").css('visibility', 'visible');
		//			$("#twitter").css('visibility', 'visible');
		//			$("#facebook").css('visibility', 'visible');
		//			$("#delicious").css('visibility', 'visible');
		//			
		//		} else {
		//			$("#trip_advisor").css('visibility', 'hidden');
		//			$("#twitter").css('visibility', 'hidden');
		//			$("#facebook").css('visibility', 'hidden');
		//			$("#delicious").css('visibility', 'hidden');
		//		}
		return false;
	}

	function footerTrackLinks() {
		$('#facebook').click(function() {

			try {
				pageTracker._trackEvent('Footer Links - Facebook', 'click', 'label_for_hotel_' + $('.hotel_id_hiddenfield').val());
			} catch (e) { }
		});

		$('#twitter').click(function() {
			try {
				pageTracker._trackEvent('Footer Links - Twitter', 'click', 'label_for_hotel_' + $('.hotel_id_hiddenfield').val());
			} catch (e) { }
		});

		$('#delicious').click(function() {
			try {
				pageTracker._trackEvent('Footer Links -  Delicious', 'click', 'label_for_hotel_' + $('.hotel_id_hiddenfield').val());
			} catch (e) { }
		});
	}

	function roomFloorplan() {
		//Url
		if ($(".seating_dropdownlist").size() > 0) {
			if (window.location.hash.length > 0) {
				var value = window.location.hash.replace("#", "");
				var target = $(".seating_dropdownlist");
				if ($(target + " option[value='" + value + ".jpg']").val() != undefined) {
					return;
				}
				$(target).val(value + ".jpg");
				var imageFolder = $(target).next("input[type=hidden]").val();
				var imageTemplate = "<img alt=\"\" src=\"" + imageFolder + "/" + value + ".jpg" + "\" />";
				$(".room_floorplan_container").html(imageTemplate);
				$(target).find("option:contains('" + value + "')").attr("selected", "selected");
			}
		}

		//Dropdown
		$(".seating_dropdownlist").change(function(e) {
			var sender = $(this);
			var imageFolder = $(sender).next("input[type=hidden]").val();
			var imageTemplate = "<img alt=\"\" src=\"" + imageFolder + "/" + $(sender).val() + "\" />";
			$(".room_floorplan_container").hide().html(imageTemplate).fadeIn("fast");
		});
	}

	return {
		ns: ns,
		description: description,
		init: init,
		shorbreak_group_calendar: shorbreak_group_calendar,
		shortBreakGrouupValidation: shortBreakGrouupValidation,
		changeFloorPlan: changeFloorPlan,
		showFooterFollow: showFooterFollow
	};

} (jQuery));
jQuery(COMO.init);