var borderSlider = 10;
var borderColor = "#FFF";
var slidingSpeed = 200;
var draggingSpeed = 1000;
var clickEnabled = true;
var posBefore, moveT, liikuttuYht = 0;
var isDragging, toggleAllowed = false;
var kuljettuMatka, aloitaLiike, lopetaLiike, liikkeenKesto;

$(document).ready(function(){
	$(".slider_photos").width("0");
	$(".loader").show();
	$(".slider_photos").css("opacity", 0.0);
	$(".photo, .video").css("opacity", 0.0);
	$(window).load(function() {
		$(".photo, .video").each(function() {
			var currentWidth = $(this).parent(".slider_photos").width();
			var thisItemWidth = $(this).width();
			//var thisItemWidth = parseInt($(this).css("width"));
			//alert(thisItemWidht);
			$(this).parent(".slider_photos").width(thisItemWidth + currentWidth + borderSlider);
			$(this).css("opacity", 1.0);
		});
		$(".slider_photos").stop().animate({ opacity: 1.0 }, 1000);
		$(".loader").hide();
		toggleAllowed = true;
	});

	$(window).resize(function() {
		var sliderWidth = $("#container").width();
		$(".slider").css("width", sliderWidth-2*borderSlider);
	});
	var sliderWidth = $("#container").width();

	$(".slider").css({"overflow": "hidden", "background": borderColor, "border": borderSlider+"px solid "+borderColor, "width": sliderWidth-2*borderSlider});

	$(".button_right").click(function() {
		$(this).siblings(".button_left").stop().fadeTo("fast", 0.5);
		var widthNow = $(this).siblings(".slider_photos").position().left;
		var stepWidth = new Array();
		var steps = 0;
		var liiku = 0;
		//kerätään pituudet taulukkoon jotta voidaan likkua kätevästi kuvan (div.photo) id:n perusteella
		$(this).siblings(".slider_photos").children(".photo, .video").each(function(i) {
			steps += $(this).width()+borderSlider;
			stepWidth[i] = -steps;
		});
		var k = 0;
		while(widthNow <= stepWidth[k]){
			liiku = k+1;
			k++;
		}
		if(-stepWidth[liiku]<=(($(this).siblings(".slider_photos").width()-$(this).siblings(".slider_photos").children("div:last").width()-($(".slider").width()-$(this).siblings(".slider_photos").children("div:last").width())))){
			$(this).siblings(".slider_photos").animate({left: stepWidth[liiku] }, slidingSpeed, "swing");
		} else {
			$(this).siblings(".slider_photos").animate({left: -(($(this).siblings(".slider_photos").width()-$(this).siblings(".slider_photos").children("div:last").width()-($(".slider").width()-$(this).siblings(".slider_photos").children("div:last").width())))+borderSlider }, slidingSpeed, "swing", function(){ $(this).siblings(".button_right").stop().fadeTo("fast", 0.0); });
			$(this).stop().fadeTo("fast", 0.0);
		}
		/*else if(!isNaN(stepWidth[k+1])){
			$(this).siblings(".slider_photos").animate({left: stepWidth[liiku] }, slidingSpeed, "swing");
		}*/
	});
	$(".button_left").click(function() {
		$(this).siblings(".button_right").stop().fadeTo("fast", 0.5);
		var widthNow = $(this).siblings(".slider_photos").position().left;
		var stepWidth = new Array();
		var steps = 0;
		var liiku = 0;
		$(this).siblings(".slider_photos").children(".photo, .video").each(function(i) {
			steps += $(this).width()+borderSlider;
			stepWidth[i] = -steps;
		});
		var k = stepWidth.length-1;
		while(widthNow >= stepWidth[k]){
			liiku = k-1;
			k--;
		}
		if(liiku < 0){
			$(this).siblings(".slider_photos").animate({ left: 0 }, slidingSpeed, "swing", function(){ $(this).siblings(".button_left").stop().fadeTo("fast", 0.0); });
			$(this).stop().fadeTo("fast", 0.0);
		}
		else {
			$(this).siblings(".slider_photos").animate({ left: stepWidth[liiku] }, slidingSpeed, "swing");
		}
	});

	$(".photo").click(function() {
		if(clickEnabled == false){ return false; }
		$(".slider_photos").stop();
		var widthNow = $(this).parent(".slider_photos").position().left;
		var photoWidth = -$(this).position().left;
		if (photoWidth==0){
			$(this).parent(".slider_photos").animate({ "left": "0" }, slidingSpeed, "swing");
			$(this).parent(".slider_photos").siblings(".button_left").stop().fadeTo("fast", 0.0);
			$(this).parent(".slider_photos").siblings(".button_right").stop().fadeTo("fast", 0.5);
		}
		else if(($(this).position().left)>=(($(this).parent(".slider_photos").width()-$(this).siblings("div:last").width()-($(".slider").width()-$(this).siblings("div:last").width())))){
			$(this).parent(".slider_photos").animate({ "left": -(($(this).parent(".slider_photos").width()-$(this).siblings("div:last").width()-($(".slider").width()-$(this).siblings("div:last").width())))+borderSlider }, slidingSpeed, "swing");
			$(this).parent(".slider_photos").siblings(".button_right").stop().fadeTo("fast", 0.0);
			$(this).parent(".slider_photos").siblings(".button_left").stop().fadeTo("fast", 0.5);		
		}
		else if (widthNow > photoWidth){
			$(this).parent(".slider_photos").animate({ "left": photoWidth }, slidingSpeed, "swing");
			$(this).parent(".slider_photos").siblings(".button_left, .button_right").stop().fadeTo("fast", 0.5);
		}
		else if (widthNow < photoWidth && widthNow > -$(this).next().position().left){
			$(this).parent(".slider_photos").animate({ "left": -$(this).position().left }, slidingSpeed, "swing");
			$(this).parent(".slider_photos").siblings(".button_left, .button_right").stop().fadeTo("fast", 0.5);
		}
		else if (widthNow == photoWidth && $(this).attr("class") != "video"){
			if($(this).prev().position().left==0){
				$(this).parent(".slider_photos").animate({ "left": -$(this).prev().position().left }, slidingSpeed, "swing", function(){ $(this).siblings(".button_left").stop().fadeTo("fast", 0.0); });
			} else {
				$(this).parent(".slider_photos").animate({ "left": -$(this).prev().position().left }, slidingSpeed, "swing");
			}
		}
	});
	$(".video").click(function(){
		$().trigger("mouseup");
	});
	$().mouseup(function(){ 
		if(clickEnabled == false){	
			return false;
		}
	});

	//$(".caption_photo2, .caption_video2").css("opacity", 0.6);
	$(".photo, .video").hover(function(){
		$(this).children(".caption_photo, .caption_video").css({"visibility":"visible","opacity":0}).stop().fadeTo("fast",0.6);
		$(this).children(".caption_photo2, .caption_video2").stop().animate({top:"0"},{queue:false,duration:260});
	}, function() {
		$(this).children(".caption_photo, .caption_video").stop().fadeTo("fast",0.0, function(){ $(this).css("visibility","hidden"); });
		$(this).children(".caption_photo2, .caption_video2").stop().animate({top:-$(this).height()},{queue:false,duration:260});
	});

	$(".button_left, .button_right").stop().fadeTo("fast", 0.0);
	$(".slider").hover(function(){
		if($(this).children(".slider_photos").position().left>=0){
			$(this).children(".button_right").stop().fadeTo("fast", 0.5);
		}
		else if((-$(this).children(".slider_photos").position().left+borderSlider)==(($(this).children(".slider_photos").width()-$(this).children(".slider_photos").children("div:last").width()-($(this).width()-$(this).children(".slider_photos").children("div:last").width())))){
			$(this).children(".button_right").stop().fadeTo("fast", 0.0);
			$(this).children(".button_left").stop().fadeTo("fast", 0.5);
		} else{
			$(this).children(".button_left, .button_right").stop().fadeTo("fast", 0.5);
		}
	}, function() {
		$(this).children(".button_left, .button_right").stop().fadeTo("fast", 0.0);
	});
	$(".button_left, .button_right").css("opacity", 0.5).hover(function() {
		//alert((-$(this).parent(".slider").children(".slider_photos").position().left+borderSlider)==(($(this).siblings(".slider_photos").width()-$(this).siblings(".slider_photos").children("div:last").width()-($(this).parent(".slider").width()-$(this).siblings(".slider_photos").children("div:last").width()))));
		if($(this).siblings(".slider_photos").position().left>=0&&$(this).attr("class")=="button_left"){
			$(this).stop().fadeTo("fast", 0.0);
		} else if((-$(this).parent(".slider").children(".slider_photos").position().left+borderSlider)==(($(this).siblings(".slider_photos").width()-$(this).siblings(".slider_photos").children("div:last").width()-($(this).parent(".slider").width()-$(this).siblings(".slider_photos").children("div:last").width()))) && $(this).attr("class")=="button_right"){
			$(this).stop().fadeTo("fast", 0.0);
		} else {
			$(this).stop().fadeTo("fast", 1.0);
		}
	}, function() {
		if($(this).siblings(".slider_photos").position().left>=0&&$(this).attr("class")=="button_left"){
			$(this).stop().fadeTo("fast", 0.0);
		} else if((-$(this).parent(".slider").children(".slider_photos").position().left+borderSlider)==(($(this).siblings(".slider_photos").width()-$(this).siblings(".slider_photos").children("div:last").width()-($(this).parent(".slider").width()-$(this).siblings(".slider_photos").children("div:last").width()))) && $(this).attr("class")=="button_right"){
			$(this).stop().fadeTo("fast", 0.0);
		} else {
			$(this).stop().fadeTo("fast", 0.5);
		}
	});
	
	$(".toggle_hide").click(function() {
		if(toggleAllowed == false){ return false; }
		$(this).next("div .slider").slideToggle(200);
		return false;
	});

	$("#info").hide();
	$(".info_stereotype").click(function() {
		$("#info").slideToggle(500);
		return false;
	});

	$().mousemove(function(e){
		kuljettuMatka = e.pageX - posBefore;
		posBefore = e.pageX;
		if(isDragging==true){
			clearTimeout(liikkeenKesto);
			if(kuljettuMatka != 0){
				liikkeenKesto = setTimeout(function(){ aloitaLiike = new Date().getTime(); liikuttuYht = 0; }, 50);
				liikuttuYht += kuljettuMatka;
				return false;
			}		
		}
	});
	$(".photo, .video").parent(".slider_photos").draggable({axis: 'x',
		start: function(event, ui) {
			$(this).css("cursor","move");
			isDragging = true;
			$(this).stop();
			aloitaLiike = new Date().getTime();
			liikuttuYht = 0;
			clickEnabled = false;
			$(this).children(".video").append("<div class=\"disable_click\"></div>");
		},
		stop: function(event, ui) {
			isDragging = false;
			setTimeout(function(){ clickEnabled = true; $(".disable_click").remove(); }, 100);
			lopetaLiike = new Date().getTime();
			moveT = 400*(liikuttuYht/(lopetaLiike-aloitaLiike));
			clearTimeout(liikkeenKesto);
			$(this).css("cursor","pointer");

			if($(this).position().left > 0){
				$(this).animate({left: "0px"}, slidingSpeed, "swing");
				$(this).siblings(".button_left").stop().fadeTo("fast", 0.0);
				$(this).siblings(".button_right").stop().fadeTo("fast", 0.5);
			}
			else if($(this).position().left+moveT > 0){
				$(this).animate({left: "100px" }, slidingSpeed, "swing", function(){ $(this).animate({left: "0px" }, 50, "swing"); } );
				$(this).siblings(".button_left").stop().fadeTo("fast", 0.0);
				$(this).siblings(".button_right").stop().fadeTo("fast", 0.5);
			}
			//else if($(this).position().left+$(this).width() < $(this).children("div:last").width()+borderSlider){
			else if(-($(this).position().left)>(($(this).width()-$(this).children("div:last").width()-($(".slider").width()-$(this).children("div:last").width())))){
				$(this).siblings(".button_left").stop().fadeTo("fast", 0.5);
				$(this).siblings(".button_right").stop().fadeTo("fast", 0.0);
				//var moveLastPos = -($(this).width()-($(this).children("div:last").width()+borderSlider));
				var moveLastPos = -($(this).width()-($(this).children("div:last").width()+borderSlider)-($(".slider").width()-($(this).children("div:last").width())));
				$(this).animate({left: moveLastPos }, slidingSpeed, "swing");
			}
			//else if(-($(this).position().left+moveT) > ($(this).width()-($(this).children("div:last").width()+borderSlider))){
			else if(-($(this).position().left+moveT) > (($(this).width()-$(this).children("div:last").width()-($(".slider").width()-$(this).children("div:last").width())))){
				$(this).siblings(".button_left").stop().fadeTo("fast", 0.5);
				$(this).siblings(".button_right").stop().fadeTo("fast", 0.0);
				$(this).animate({left: -($(this).width()-($(this).children("div:last").width()+borderSlider)-($(".slider").width()-($(this).children("div:last").width())))-100 }, slidingSpeed, "swing", function(){ $(this).animate({left: -($(this).width()-($(this).children("div:last").width()+borderSlider)-($(this).parents(".slider").width()-($(this).children("div:last").width()))) }, 100, "swing"); } );				
				//$(this).animate({left: -($(this).width()-100) }, slidingSpeed, "swing", function(){ $(this).animate({left: -($(this).width()-($(this).children("div:last").width()+borderSlider)) }, 50, "swing"); } );
			}
			else {
				$(this).siblings(".button_left, .button_right").stop().fadeTo("fast", 0.5);
				$(this).animate({left: "+="+moveT+"px" }, 1100, "swing");
			}
			return false;
		}
	});

	$("#blog").children("a").click(function(){
	    window.open(this.href);
	    return false;
	});
});

