﻿/// <reference path="date.js" />
/// <reference path="firebug-vsdoc.js" />
/// <reference path="jQuery/jquery-1.4.1-vsdoc.js" />
/// <reference path="jQuery/jquery.metadata.js" />
/// <reference path="jQuery/jquery.form.js" />
/// <reference path="jQuery/jquery.validate-vsdoc.js" />
/// <reference path="jQuery/additional-methods.js" />
/// <reference path="Microsoft/MicrosoftMvcJQueryValidation.js" />
/// <reference path="jQuery/jquery.datePicker.js" />
/// <reference path="modal.js" />

// Setup

$.validator.setDefaults({
	rules: {
		day: {
			range: [1, 31]
		},
		month: {
			range: [1, 12]
		},
		year: {
			range: [1900, 2050]
		}
	}
});

$.ajaxSetup({ cache: false });

function preloadImage(src) {
	var image = new Image();
	image.src = src;
	return image;
};

function bindValidation() {
	$("#modal form").each(function () {
		$(this).validate({
			submitHandler: function (form) {
				$(form).ajaxSubmit({
					target: "#modal",
					success: bindValidation
				});
			}
		});
	});

	$("form").each(function () {
		$(this).validate();
	});
};

// Book a Course Search
//#region
var bindAgesAndCourses = function() {
	var msie6 = false;
	var msie7 = false;
	if ($.browser.msie) {
		if ($.browser.version < 7)
			msie6 = true;
		else if ($.browser.version == 7)
			msie7 = true;
	}

	var syncFindButton = function() {
		if (msie6)
			$("#side-bar .book-a-course .find-advanced")
					.css({
						"bottom": 0
					})
					.css({
						"bottom": 42
					});
	};

	$("ul.categories ul").css({
		"display": "none"
	});

	$("ul.categories strong")
		.before("<a class=\"expand\" href=\"#\">-</a>")
		.css({ "cursor": "pointer" });

	if (msie7)
		$("ul.categories strong")
			.css({ "float": "left" });

	$("ul.categories strong, ul.categories .expand")
		.click(function(evt) {
			evt.preventDefault();

			var $this = $(this);
			var $ul = $this.nextAll("ul");

			var $a;
			if ($this.is("a"))
				$a = $this;
			else $a = $this.prev();

			if ($ul.is(":visible")) {
				if (msie6 || msie7)
					$ul.css({ "display": "none" });
				else $ul.slideUp();

				$a.removeClass("collapse");
			}
			else {
				if (msie6 || msie7)
					$ul.css({ "display": "block" });
				else $ul.slideDown();

				$a.addClass("collapse");
			}

			syncFindButton();
		});

	syncFindButton();
};
//#endregion

// Modal
//#region Modal
var bindModalLinks = function () {
	var callback = function (textStatus) {
		bindValidation();
	}
	$.modal(".modal, .newsletter-link", callback);
};
//#endregion

// Image Transitions
//#region
var bindMainImageTransition = function() {
	var imagePanel = $(".imagePanel");

	if (imagePanel.length == 0)
		return;

	var preTempLg = "url(/Content/images/mainPanel/lg";
	var postTempLg = ".jpg)";
	var timeout = null;
	var timerRunning = false;

	for (var i = 1; i < 5; ++i)
		preloadImage(preTempLg + i + postTempLg);

	$("<div class=\"content-module imagePanel\"></div>")
		.insertBefore(imagePanel)
		.css({ "background-image": "url(/Content/images/mainPanel/main-image-bg.png)" });

	var $controlPanel = $("<div class=\"content-module imagePanel\"></div>")
		.insertAfter(imagePanel);

	imagePanel.css({ position: "absolute", top: "0px", left: "0px" });
	$controlPanel.css({ background: "none", position: "absolute", top: "0px", left: "0px" });

	if ($.browser.msie && $.browser.version < 7) {
		imagePanel.css({ margin: "0px" });
		$controlPanel.css({ margin: "0px" });
	}

	$controlPanel.append("<div class=\"tape\"></div>");

	var $ul = $("<ul></ul>").appendTo($controlPanel);
	$ul.addClass("tn1");

	for (var i = 1; i < 5; ++i) {
		$ul.append("<li class=\"tn" + i + "\"><img src=\"/Content/images/mainPanel/sml" + i + ".gif\" /></li>");
	}

	var timer = function() {
		if (timerRunning)
			return;

		timerRunning = true;
		var idx = Number($ul.attr("class").replace(/tn/, ""));

		if (idx > 3)
			idx = 1;
		else idx++;

		imagePanel.stop().fadeOut(function() {
			imagePanel.css({ "background-image": preTempLg + idx + postTempLg });
			imagePanel.fadeIn(function() { imagePanel.css({ opacity: 1 }); });
		});

		$ul.removeClass().addClass("tn" + idx);

		setTimer();
		timerRunning = false;
	};

	var setTimer = function() {
		if (timeout)
			clearTimeout(timeout);
		timeout = setTimeout(timer, 12000);
	}

	$(".imagePanel img").hover(function(evt) {
		var idx = $(this).parent().attr("class").replace(/tn/, "");
		var oldIdx = $ul.attr("class").replace(/tn/, "");

		if (idx != oldIdx) {
			imagePanel.stop().fadeOut(function() {
				imagePanel.css({ "background-image": preTempLg + idx + postTempLg });
				imagePanel.fadeIn(function() { imagePanel.css({ opacity: 1 }); });
			});

			$ul.removeClass().addClass("tn" + idx);
		}

		if (timeout)
			clearTimeout(timeout);
	}, function(evt) {
		setTimer();
	});

	setTimer();
};
//#endregion

// Document Load
//#region
$(function () {
	$("input.today, .dateITA").datePicker();
	$("input.dob").datePicker({ startDate: '01/01/1990' });

	bindAgesAndCourses();
	bindModalLinks();
	bindMainImageTransition();
	bindValidation();

	$("#ic a").click(function (evt) {
		evt.preventDefault();
		newWindow('http://www.inkcreations.co.uk');
	});
});
//#endregion

// Open a new window
//#region
function newWindow(theUrl) {
    window.open(theUrl, "_blank", "toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=1024,height=768");
}
//#endregion
//