
var slideTimeoutLength = 10*1000;

var slideID = Math.floor(Math.random()*slideData.length);
var slideLoadCount;
var dragStartX;
var slideTimeout;
var overlayLogo;



function fixPNG(){
	PNGFix.fix(".slideArrow, #logo");
}

function newSlide(firstRun){
	slideLoadCount = 0;
	
	$("#slideArrowLeft").hide().unbind();
	$("#slideArrowRight").hide().unbind();
	
	$("#slides").unbind().empty().css({left:"0px", cursor:"auto"});
	
	$("#slides").append("<img id='slideCentre' src='" + slideData[slideID].img + "' />");
	if(firstRun) $("#slideCentre").hide();
	$("#slideCentre").bind("load", revealSlide);
	if($("#slideCentre").complete) $("#slideCentre").triggerHandler("load");
	
	var slideLeftID = slideID - 1;
	if(slideLeftID < 0) slideLeftID = slideData.length - 1;	
	$("#slides").prepend("<img id='slideLeft' style='position:absolute; left:-960px' src='" + slideData[slideLeftID].img + "'/>");
	$("#slideLeft").load(revealSlide);
	if($("#slideLeft").complete) $("#slideLeft").triggerHandler("load");
	
	var slideRightID = slideID + 1;
	if(slideRightID == slideData.length) slideRightID = 0;
	$("#slides").append("<img id='slideRight' style='position:absolute; left:960px' src='" + slideData[slideRightID].img + "'/>");
	$("#slideRight").load(revealSlide);
	if($("#slideRight").complete) $("#slideRight").triggerHandler("load");
	
	setVerticalsColour();
	
	slideTimeout = setTimeout("moveSlides('left')", slideTimeoutLength);
};

function slidesPrepStateTouchStart(e){
	e.preventDefault();	
};

function slidesPrepStateTouchMove(e){
	e.preventDefault();
};

function revealSlide(){
	$(this).fadeIn(1000);
	if(++slideLoadCount == 3){ 
		setActions();
		initOverlay();
	};
};

function setActions(){
	$("#slideArrowLeft").fadeIn(1000).css("cursor", "pointer").click(function(){moveSlides("left")});
	$("#slideArrowRight").fadeIn(1000).css("cursor", "pointer").click(function(){moveSlides("right")});
	$("#slides").css("cursor", "move").mousedown(slidesMouseDown).mouseup(slidesMouseUp);
	
	if(!$.browser.msie){
		var slides = document.getElementById("slides");
		slides.removeEventListener("touchstart", slidesPrepStateTouchStart, false);
		slides.removeEventListener("touchmove", slidesPrepStateTouchMove, false);
		slides.addEventListener("touchstart", slidesTouchStart, false);
		slides.addEventListener("touchend", slidesTouchEnd, false);	
	}
};

function initOverlay(){
	overlayLogo = new Image();
	overlayLogo.src = slideData[slideID].logo;
	$(overlayLogo).load(overlayLogoLoadComplete);
	if(overlayLogo.readyState == "complete") $(overlayLogo).triggerHandler("load");
}

function overlayLogoLoadComplete(){
	displayOverlay();
}

function displayOverlay(){
	$("#slideOverlayContents").html("<img id='slideOverlayLogo' src='" + overlayLogo.src + "'/><p>" + slideData[slideID].text + "</p>");
	PNGFix.fix("#slideOverlayLogo");
	$("#slideOverlay").fadeIn(500);
}

function slidesMouseDown(e){
	e.preventDefault();
	dragStartX = e.pageX - $("#header").offset().left;
	$("#slides").mousemove(slidesMouseMove);
}

function slidesMouseMove(e){
	var mouseX = e.pageX - $("#header").offset().left;
	var delta = dragStartX - mouseX;
	if(Math.abs(delta) < 10) return;
	moveSlides(delta < 0 ? "right" : "left");
}

function slidesMouseUp(e){
	$("#slides").unbind("mousemove");
}

function slidesTouchStart(e){
	e.preventDefault();
	dragStartX = e.touches[0].pageX - $("#header").offset().left;
	
	if(!$.browser.msie){
		var slides = document.getElementById("slides");
		slides.addEventListener("touchmove", slidesTouchMove, false);
	}
}

function slidesTouchMove(e){
	e.preventDefault();
	var fingerX = e.touches[0].pageX - $("#header").offset().left;
	var delta = dragStartX - fingerX;
	if(Math.abs(delta) < 10) return;
	if(!$.browser.msie){
		var slides = document.getElementById("slides");
		slides.removeEventListener("touchmove", slidesTouchMove, false);
	}
	moveSlides(delta < 0 ? "right" : "left");
}

function slidesTouchEnd(e){
	e.preventDefault();
	if(!$.browser.msie){
		var slides = document.getElementById("slides");
		slides.removeEventListener("touchmove", slidesTouchMove, false);
	}
}

function moveSlides(direction){
	clearTimeout(slideTimeout);
	
	$("#slideOverlay").fadeOut(500);
	
	$("#slideArrowLeft").hide().unbind();
	$("#slideArrowRight").hide().unbind();
	
	switch(direction){
		case "left":
			if(++slideID == slideData.length) slideID = 0;
		break;
		
		case "right":
			if(--slideID < 0) slideID = slideData.length - 1;
		break;
	};
	
	if(!$.browser.msie){
		var slides = document.getElementById("slides");
		slides.removeEventListener("touchstart", slidesTouchStart, false);
		slides.removeEventListener("touchend", slidesTouchEnd, false);
		slides.addEventListener("touchstart", slidesPrepStateTouchStart, false);
		slides.addEventListener("touchmove", slidesPrepStateTouchMove, false);
	}
	$("#slides").unbind().css({cursor:"auto"}).animate({left:direction == "left" ? "-960px" : "960px"}, 1000, function(){newSlide(false)});
}

function setVerticals(){
	var str = "";
	for(var i = 0, len = slideData.length; i < len; i++){
		if(i > 0) str += " / ";
		str += "<span id='vertical" + i + "'>" + slideData[i].vertical + "</span>";	
	};
	$("#verticals").html(str);
	Cufon.replace("#verticals", {fontFamily:"Myriad Pro Light"});
}

function setVerticalsColour(){
	for(var i = 0, len = slideData.length; i < len; i++){
		var targetColour = i == slideID ? "#c6006f" : "#796d5d";
		Cufon.replace("#vertical" + i, {fontFamily:"Myriad Pro Light", color:targetColour});
		// $("#vertical" + i).animate({color:targetColour});
	};
}

function generic() {
    //Nav spacing and borders
    $("div#navi ul li:last-child").addClass("last");
    $("div#footer ul li:last-child").addClass("last");
    $("div#footer ul li:first-child").addClass("first");					   
}

$(document).ready(function(){
    fixPNG();
    //setVerticals();
    newSlide(true);
    generic();
    if ($("#accordion").length != 0) {
        $("#accordion").accordion({ header: 'h4' });
    }
});
