$(document).ready(function() {  
	function hookEvent(element, eventName, callback)
	{
		if(typeof(element) == "string")
			element = document.getElementById(element);
		if(element == null)
		{
			alert("kein");
			return;
		}
		if(element.addEventListener)
		{
			if(eventName == 'mousewheel')
				element.addEventListener('DOMMouseScroll', callback, false);
			element.addEventListener(eventName, callback, false);
		}
		else if(element.attachEvent)
			element.attachEvent("on" + eventName, callback);
	}

	function cancelEvent(e)
	{
		e = e ? e : window.event;
		if(e.stopPropagation)
			e.stopPropagation();
		if(e.preventDefault)
			e.preventDefault();
		e.cancelBubble = true;
		e.cancel = true;
		e.returnValue = false;
		return false;
	}
	
	function mouseScroll(e)
	{
		e = e ? e : window.event;
		var normal = e.detail ? e.detail * -1 : e.wheelDelta / 40;
		if(parseFloat(normal)>0)
			slideright();
		else
			slideleft();
		
		cancelEvent(e);
	}
	
	hookEvent("refSlider", 'mousewheel', mouseScroll); 
	
	// Slidegeschwindigkeit in ms
	var slidespeed = 200;
	
	// Left auf 0 setzen
	$("#refSlider .referenzen-latest-container").css("left","0px");	
	// Slider ausblenden lassen beim Start
	$("#refSlider .sliderbox").css("display","none");
	// Slider erstellen
	$("#refSlider .refslider").slider();
	// funktion wenn geslidet wird
	$("#refSlider .refslider").slider({
		slide: function(event, ui) {
			var offset = (($("#refSlider .referenzen-latest-container").children().length-1)*245 - 980)*(ui.value/100);
			$("#refSlider .referenzen-latest-container").css("left","-" + offset  +"px");
		}
	});
	
	// Funktion wenn der Slider aktiviert wird	
	$("#refSlider .refslider").slider({
		start: function(event, ui) {
			$("#refSlider").addClass("sliding");
		}
   });
	
	// Funktion wenn der Slieder losgelassen wird
	$("#refSlider .refslider").slider({
		stop: function(event, ui) {
			var offset = $("#refSlider .referenzen-latest-container").css("left").replace("px","").replace("-","")%245;
			if(offset>245/2)
			{
				$("#refSlider .referenzen-latest-container").animate({ left:'-='+(245-offset) },slidespeed, function() {
					if($("#refSlider").hasClass("hover") == false)
						$("#refSlider .sliderbox").fadeOut(200);
					$("#refSlider").removeClass("sliding");
				});
				var slideoffset = parseFloat($("#refSlider .referenzen-latest-container").css("left").replace("px","").replace("-","")) +(245-offset);
				var percent = slideoffset/(($("#refSlider .referenzen-latest-container").children().length-1)*245 - 980)*100;
				$("#refSlider .refslider a").animate({left:percent + '%'},slidespeed);
			}
			else
			{
				$("#refSlider .referenzen-latest-container").animate({ left:'+='+offset },slidespeed, function() {
					if($("#refSlider").hasClass("hover") == false)
						$("#refSlider .sliderbox").fadeOut(200);
					$("#refSlider").removeClass("sliding");
				});
				var slideoffset = parseFloat($("#refSlider .referenzen-latest-container").css("left").replace("px","").replace("-","")) -(offset);
				var percent = slideoffset/(($("#refSlider .referenzen-latest-container").children().length-1)*245 - 980)*100;
				$("#refSlider .refslider a").animate({left:percent + '%'},slidespeed);
			}
		}
	});
	
	// Funktion fuer Sliden nach links
	function slideleft()
	{
		var refWidth = ($("#refSlider .referenzen-latest-container").children().length-1)*245;
		var maxoffset = refWidth - 980;
		var actoffset = parseFloat($("#refSlider .referenzen-latest-container").css("left").replace("px",""));
		if(actoffset > (-maxoffset) && $("#refSlider").hasClass("sliding") == false)
		{
			$("#refSlider").addClass("sliding");			
			$("#refSlider .referenzen-latest-container").animate({ left:'-=245px' },slidespeed, function() {  
				$("#refSlider").removeClass("sliding");
			});
			$("#refSlider .refslider a").animate({left:((actoffset-245)/(-maxoffset)*100) + '%'},slidespeed);
		}
	}
	
	// Funktion fuer Sliden nach rechts
	function slideright()
	{
		var refWidth = ($("#refSlider .referenzen-latest-container").children().length-1)*245;
		var maxoffset = refWidth - 980;
		var actoffset = parseFloat($("#refSlider .referenzen-latest-container").css("left").replace("px",""));
		if(actoffset < 0 && $("#refSlider").hasClass("sliding") == false)
		{
			$("#refSlider").addClass("sliding");
			$("#refSlider .referenzen-latest-container").animate({ left:'+=245px' },slidespeed, function() {  
				$("#refSlider").removeClass("sliding");
			});
			$("#refSlider .refslider a").animate({left:((actoffset+245)/(-maxoffset)*100) + '%'},slidespeed);
			
		}
	}
	
	// Slider bei Enter einblenden
	$("#refSlider").mouseenter(function() {
		$("#refSlider .sliderbox").fadeIn(200);
		$("#refSlider").addClass("hover");
	});
	
	// Slider bei Leave ausblenden
	$("#refSlider").mouseleave(function() {
		if($("#refSlider .refslider a").hasClass("ui-state-active") == false)
			$("#refSlider .sliderbox").fadeOut(200);	
		$("#refSlider").removeClass("hover");
	});
	
	$("#refSlider .prevItem").click(function(){
		slideright();
	});
	
	$("#refSlider .nextItem").click(function(){
		slideleft();
	});
	
	$("#refSlider .referenzen-latest-container").decorate("hover");


});
