﻿/// <reference path="jquery-vsdoc.js" />
/// <reference path="jquery-plugins.js" />
/// <reference path="lw.js" />
lw.AppendLoad(function () {
	lw.list = $(".main dl");
	lw.list.data("otop", lw.list.position().top);

	lw.bigImagesContainer = $("<div />");
	lw.bigImagesContainer.css({ position: "absolute;" });

	lw.lastOpen = null;

	function showOverlay() {
		var body = $(document.body);
		body.css({ "overflow": "hidden", position: "relative" });
		if (!lw.overlays) {

			lw.overlays = new Array(4);
			for (var i = 0; i < lw.overlays.length; i++) {
				lw.overlays[i] = $(document.createElement("div"));
				body.append(lw.overlays[i]);
			}
		}
		var h = $(document).height();
		var w = $(document).width();

		for (var i = 0; i < lw.overlays.length; i++) {
			var obj = {
				position: "absolute",
				width: 0,
				height: 0,
				background: "#222",
				opacity: 0,
				top: i < 2 ? 0 : h,
				left: i % 2 == 0 ? 0 : w,
				"z-index": 9000
			};
			lw.overlays[i].css(obj);
			obj = {
				width: w / 2,
				height: h / 2,
				left: i % 2 == 0 ? 0 : w / 2,
				top: i < 2 ? 0 : h / 2,
				opacity: .5
			};
			lw.overlays[i].delay(100).animate(obj, { duration: 300 });
		}
	}
	function closeOverlay() {

		var h = $(document).height();
		var w = $(document).width();
		var overlays = lw.overlays;
		for (var i = 0; i < lw.overlays.length; i++) {
			obj = {
				width: 0,
				height: 0,
				left: i % 2 == 0 ? 0 : w,
				top: i < 2 ? 0 : h,
				opacity: 0
			};
			lw.overlays[i].animate(obj, {
				duration: 300,
				complete: function () {
					$(document.body).css("overflow", "auto");
					$(document).unbind("keyup");
				}
			});
		}
	}

	lw.list.children("dt").each(function (i) {
		var $el = $(this);
		$el.data("oindex", i);
		var next = $el.next();

		var p = next.children("p");
		if (p.length > 0) {
			$(p[0]).addClass("first");
		}
		next.data("oheight", next.outerHeight());
		next.css({ visibility: "visible", height: 0, position: "relative" });

		$el.children("span").data("oright", 980 - $el.children("span").position().left);
		$el.children("div").addClass("alive");

		var deadDiv = $("<div/>");
		deadDiv.addClass("dead");
		deadDiv.css("opacity", 0);
		$el.append(deadDiv);

		var as = next.find("a");

		as.each(function () {

			var a = $(this);

			var img = $("<img />");
			img.addClass("big");
			img.attr("src", a[0].href);
			img.bind("load", function () {
				img.data("oloaded", true);
				img.data("odim", { width: img.width(), height: img.height() });
			});


			var imgDiv = $("<div />");
			imgDiv.addClass("img-div");

			var closeButton = $("<a href=#close title=Close></a>");

			a.close = function () {
				closeOverlay();

				imgDiv.stop().delay(100).animate(
					{ top: a.offset().top, left: a.offset().left, opacity: 0, width: a.width(), height: a.height() },
					{
						duration: 500,
						complete: function () {
							imgDiv.css({ top: -1000 });
						}
					});
				img.stop().delay(100).animate({ width: a.width() - 4, height: a.height() - 10 }, 500);

				lw.slTimer = setTimeout(animateSlideShow, 5000);
			};

			closeButton.click(a.close);
			imgDiv.click(a.close);

			imgDiv.append(closeButton);
			imgDiv.append("<br />");

			imgDiv.append(img);
			$(document.body).append(imgDiv);

			a.data("oimg", imgDiv);

			a.click(function () {
				showOverlay();

				imgDiv.css({ top: a.offset().top, left: a.offset().left, opacity: 0, display: "block", width: a.width(), height: a.height() });
				img.css({ width: a.width() - 4, height: a.height() - 10 });

				var odim = img.data("odim");

				imgDiv.stop().animate({ opacity: 1, top: 150, left: $(document).width() / 2 - odim.width / 2, width: odim.width, height: odim.height + 16 }, 500);
				img.stop().animate({ width: odim.width, height: odim.height }, 500);

				clearTimeout(lw.slTimer);

				return false;
			});
		});

		$el.click(function () {
			if (lw.lastOpen == $el)
				return;
			if (lw.lastOpen != null) {
				lw.lastOpen.next().stop().animate({ height: 0 }, 600);
			}
			lw.lastOpen = $el;

			var hTo = next.data("oheight") + 5;

			var top = lw.list.data("otop");

			if (hTo > 75) {
				top = top - hTo + 75;
				lw.list.stop().animate({ top: top }, 600);
			}
			else {
				if (top != lw.list.position().top) {
					lw.list.stop().animate({ top: top }, 600);
				}
			}

			lw.list.children("dt").each(function (i) {
				var span = $(this).children("span");

				if ($(this).data("oindex") == lw.lastOpen.data("oindex")) {

					span.delay(0).animate({ right: 490 - span.width() + 20, color: "#ffffff" }, 600);
					$(this).children(".alive").delay(0).animate({ opacity: 1 }, 600);
					$(this).children(".dead").delay(0).animate({ opacity: 0 }, 600);
					return;
				}

				span.delay(100 + i * 25).animate({ right: 33, color: "#8d8d8d" }, 600);
				$(this).children(".alive").delay(100 + i * 25).animate({ opacity: 0 }, 600);
				$(this).children(".dead").delay(100 + i * 25).animate({ opacity: 1 }, 600);
			});

			next.stop().animate({ height: hTo }, 300);
		});
	});


	//slide show

	lw.slContainer = $(".slide-show");
	lw.slImgLoadedCount = 1;
	lw.maxImgCount = 28;
	lw.currentImg = 1;
	lw.slTimer = null;
	function loadImg() {
		var img = $("<img />");
		lw.slImgLoadedCount++;
		if (lw.slImgLoadedCount > lw.maxImgCount)
			return;
		img.addClass("im" + lw.slImgLoadedCount);
		img.attr("src", "images/sl/{0}.jpg".Format(lw.slImgLoadedCount));
		var style = { rotate: "-10deg", opacity: 0, top: -80, left: 0 };
		if (lw.msie && parseInt(lw.browserVersion) < 9) {
			delete style.rotate;
		}

		img.css(style);
		lw.slContainer.append(img);

		if (lw.slImgLoadedCount == 2) {
			var temp = { rotate: "-5deg", top: -40, left: 45, opacity: 1 };
			if (lw.msie && parseInt(lw.browserVersion) < 9) {
				delete temp.rotate;
			}
			img.animate(temp, 400);
		}

		img.bind("load", loadImg);
	};
	loadImg();


	function animateSlideShow() {
		clearTimeout(lw.slTimer);

		var oldImg = $(".im" + lw.currentImg);
		oldImg.css("z-index", 15);

		var temp = { rotate: "5deg", top: 50, left: 110, opacity: 0 };
		if (lw.msie && parseInt(lw.browserVersion) < 9) {
			delete temp.rotate;
		}
		oldImg.animate(temp, 600);

		lw.currentImg++;
		if (lw.currentImg > lw.maxImgCount)
			lw.currentImg = 1;
		var newImg = $(".im" + lw.currentImg);
		newImg.css("z-index", 10);

		var temp = { rotate: "0deg", top: 0, left: 90 };
		if (lw.msie && parseInt(lw.browserVersion) < 9) {
			delete temp.rotate;
		}
		newImg.delay(200).animate(temp, 600);

		var bgImg = lw.currentImg + 1;
		if (bgImg > lw.maxImgCount)
			bgImg = 1;
		var newImg = $(".im" + bgImg);

		var temp = { "z-index": 5, rotate: "-10deg", opacity: 0, top: -80, left: 0 };
		if (lw.msie && parseInt(lw.browserVersion) < 9) {
			delete temp.rotate;
		}
		newImg.css(temp);

		var temp1 = { rotate: "-5deg", top: -40, left: 45, opacity: 1 };
		if (lw.msie && parseInt(lw.browserVersion) < 9) {
			delete temp1.rotate;
		}
		newImg.delay(400).animate(temp1, 600);

		lw.slTimer = setTimeout(animateSlideShow, 5000);
	}
	lw.slTimer = setTimeout(animateSlideShow, 5000);

	$(".navigations select").lwSelect();

});
