var animTime = 600;
var delayLength = 14000;
function moveSlides(moveBackwards) {
	if(!isInMove){
		isInMove = true;
		var leftValue = $("#mover").css("left");
	
		// Fix for IE
		if (leftValue == "auto") { leftValue = 0; };
	
		var movement = parseFloat(leftValue, 10) - panelWidth;
		if(moveBackwards!=undefined && moveBackwards!=null && moveBackwards!="" && moveBackwards==true){
			movement = parseFloat(leftValue, 10) + panelWidth;
			
		}
		resetNextAnimation();
		
		
		if (movement == tooFar) {
				$("#mover").animate({
					"left": 0
				}, animTime, function() {
					startNextAnimation();
				});
		}else if (movement == panelWidth) {
			$("#mover").animate({
					"left": (tooFar+panelWidth)
				}, animTime, function() {
					startNextAnimation();
				});
		}
		else {
				$("#mover").animate({
					"left": movement
				}, animTime, function() {
					startNextAnimation();
				});
		}
	}else{
		isInMove = false;
	}
}
function resetNextAnimation(){
	$("#nextbg").css("width", "100%");
	$("#nextbg").animate({
		width: "0%"
	}, 500 );
}
function startNextAnimation(){
	isInMove = false;
	if(!$("#nextbg").is(":animated")){
		$("#nextbg").animate({
			width: "100%"
		}, delayLength, function(){moveSlides();} );
	}
}
var isInMove = false;
var sliderTimeoutId;
var panelWidth;
var tooFar;
function initSlideSwitch(pw, tf){
	$("#nextbg").fadeTo(0,0.5);
	panelWidth = pw;
	tooFar = tf;
	startNextAnimation();
}

function clickToNext(moveBackwards){
    if(!isInMove){
		isInMove = true;
        $("*").stop(true,true);
        moveSlides(moveBackwards);
    }
}

$(document).ready(function() {
	$("a").each(function(){
		if($(this).attr("rel")=="external"){
		    $(this).click(function(){
        		window.open(this.href);
		        return false;
		    });
		}
	});
//	$("#mover .slide").shuffle();
	var $slide1 = $("#mover .slide").first();
	var panelWidth = $slide1.css("width");
	var panelPaddingLeft = $slide1.css("paddingLeft");
	var panelPaddingRight = $slide1.css("paddingRight");

	panelWidth = parseFloat(panelWidth, 10);
	panelPaddingLeft = parseFloat(panelPaddingLeft, 10);
	panelPaddingRight = parseFloat(panelPaddingRight, 10);

	panelWidth = panelWidth + panelPaddingLeft + panelPaddingRight;

	var numPanels = $(".slide").length;
	var tooFar = -(panelWidth * numPanels);
	var totalMoverwidth = numPanels * panelWidth;
	$("#mover").css("width", totalMoverwidth);

	initSlideSwitch(panelWidth, tooFar);
    
	$("address").hide();
	$("#vcard").mouseenter(function(){$("address").fadeIn();});
	$("address").mouseleave(function(){$("address").fadeOut("fast");});
	$("#navigation").animate({top: "-14px"})
	$("#navigation").mouseenter(function(){	$("#navigation").animate({top: "0px"})}).mouseleave(function(){	$("#navigation").animate({top: "-14px"})});
});


(function($){
    $.fn.shuffle = function() {
        var allElems = this.get(),
            getRandom = function(max) {
                return Math.floor(Math.random() * max);
            },
            shuffled = $.map(allElems, function(){
                var random = getRandom(allElems.length),
                    randEl = $(allElems[random]).clone(true)[0];
                allElems.splice(random, 1);
                return randEl;
           });
        this.each(function(i){
            $(this).replaceWith($(shuffled[i]));
        });
        return $(shuffled);
    };
})(jQuery);

