﻿/// <reference path="../generic/base.init.js" />

/***
HOME JAVASCRIPT

The purpose of this script is to perform any tasks on the homepage

@Authors
Hugo & Cat
Graham Licence

***/
/*globals $, window, swfobject */

/* ---------------------------------------------------------------- */
/* init.js															*/
/* ---------------------------------------------------------------- */

(function () {

	$(function () {
		MandG.Home.init();

	});

	MandG.Home = {
		init: function () {
			this.carousel.init();
			Cufon.replace(".carousel h2, .carousel h3", { separate: 'none' });
			Cufon.replace(".carousel p");
			$(document).ready(function () {
				$(".carousel article").show();
			});
			if (MandG.Base.ie <= 6) {
				MandG.Base.pngFix("img, div, a, span");
			}
		},
		carousel: {
			tot: "",
			pos: 0,
			cur: 0,
			next: 1,
			theme: "",
			animating: false,
			init: function () {
				this.tot = $(".carousel ul.touts li").length;
				this.checkButtons();
				var $carousel = this;
				$(".carousel nav ul").width(this.tot * 20);
				$(".carousel ul.touts").width(this.tot * 960);
				var i;
				for (i = 1; i <= $carousel.tot; i++) {
					$(".carousel nav ul").prepend("<li><span class=\"icon\"></span></li>");
				}

				// Tracking
				$(".carousel ul.touts a").click(function () {
					var target = $(this).parent().siblings("h2").text();
					_gaq.push(['_setAccount', MandG.Base.ga]);
					_gaq.push(['_trackEvent', 'Internal link', "Carousel", target]);
				});

				$(".carousel nav ul .icon:eq(0)").parent().addClass("selected");
				$(".touts li:eq(0)").css("left", "0");
				this.setPos();
				var animation;
				$(document).ready(function () {
					MandG.Home.carousel.display($carousel);
					animation = window.setInterval("MandG.Home.carousel.animate()", 7000);
				});
				$(".carousel").hover(function () {
					$(this).addClass("pause");
				}, function () {
					$(this).removeClass("pause");
				});
				$("nav .icon").click(function () {
					$(".carousel").removeClass("pause");
					window.clearInterval(animation);
					if (!$(this).parent().hasClass("selected")) {
						MandG.Home.carousel.next = $(this).parent().index();
						MandG.Home.carousel.setPos();
						MandG.Home.carousel.animate($(this).parent().index());
					}
				});
			},
			animate: function (cur) {
				if (!$(".carousel").hasClass("pause")) {
					MandG.Home.carousel.animating = true;
					$(".carousel ul.touts li:eq(" + MandG.Home.carousel.cur + ")").animate({
						left: -960
					}, 500, function () {
						MandG.Home.carousel.animating = false;
						if (cur !== undefined) {
							MandG.Home.carousel.cur = cur;
						} else {
							MandG.Home.carousel.cur++;
						}
						if (MandG.Home.carousel.cur === MandG.Home.carousel.tot) {
							MandG.Home.carousel.cur = 0;
						}
						MandG.Home.carousel.display(MandG.Home.carousel);
						MandG.Home.carousel.checkButtons();
					});
					$(".carousel ul.touts li:eq(" + MandG.Home.carousel.next + ")").animate({
						left: 0
					}, 500, function () {
						MandG.Home.carousel.next++;
						if (MandG.Home.carousel.next === MandG.Home.carousel.tot) {
							MandG.Home.carousel.next = 0;
						}
						MandG.Home.carousel.setPos();
					});
				}
			},
			display: function ($carousel) {
				var target = $carousel.cur;
				$(".dcur").text(target);
				$(".touts li h2, .touts li h3, .touts li p").css("opacity", "0");
				$(".touts li:eq(" + target + ") h3").delay(1000).animate({
					opacity: 1
				}, 400, function () {
					$(".touts li:eq(" + target + ") h2").animate({
						opacity: 1
					}, 400, function () {
						$(".touts li:eq(" + target + ") p").animate({
							opacity: 1
						}, 400);
					});
				});
			},
			checkButtons: function ($carousel) {
				$(".carousel nav li").removeClass("selected");
				$(".carousel nav li:eq(" + MandG.Home.carousel.cur + ")").addClass("selected");
				MandG.Home.carousel.theme = $(".carousel ul.touts li:eq(" + MandG.Home.carousel.cur + ")").attr("class");
				$(".carousel nav ul").attr("class", "");
				$(".carousel nav ul").addClass(MandG.Home.carousel.theme);
			},
			setPos: function () {
				$(".next").text(MandG.Home.carousel.next);
				$(".carousel .touts li:eq(" + MandG.Home.carousel.next + ")").css("left", "960px");
			}
		}
	}

} ());
