

Slider = {

	animating: false,
	imgIterator: 0,
	showImgCount: 3,
	moving: false,
	
	init: function() {
	
		
		$sliderArea = $("#slider-area");
	
		$sliderLeft = $("#slider-tools .left");
		$sliderRight = $("#slider-tools .right");
		$slider = $("#slider");
		$sliderHandler = $("#slider-handler");
		$photos = $("#photo-min");
		$photoBig = $("#photo-big");
		$photoUrl = $("#photo-big-url");
		
		
		var sliderWidth = $( $slider ).width() - $( $sliderHandler ).width(); 
		var miniatures = $("li", $photos).length;
		var miniatureWidth = $( $photos ).find("li").width() + 3;
		var sliderStep = Math.floor( sliderWidth / (miniatures-Slider.showImgCount) );
		
		var getPhotosWidth = function() {
		
			var w = 0;
			for (i = 0; i < miniatures-Slider.showImgCount; i++) {
				w = w + $( $photos ).find("li").width() + 3;
			}
			return w;
		}()
		
		
		var sliderRatio = getPhotosWidth / sliderWidth;
		
		$activeImage = $photos.find("li")[Slider.imgIterator];
		
		$(".tr", $sliderArea).css("cursor","pointer").bind("click", function() {
			$($sliderRight).click();
		})
		
		$(".tl", $sliderArea).css("cursor","pointer").bind("click", function() {
			$($sliderLeft).click();
		})
		
		
		
		$($sliderRight).bind("click", function(e) {
		
			e.preventDefault();
		
			if (Slider.animating == true || Slider.imgIterator+Slider.showImgCount >= miniatures ) { return }
			Slider.animating = true;
			
			var targetPos = $( $photos ).css("left").replace(/px/, "");
			targetPos == "auto" ? targetPos = 0 : targetPos = targetPos;
			
			var sliderPos = $( $sliderHandler).css("left").replace(/px/, "");
			sliderPos == "auto" ? sliderPos = 0 : sliderPos = sliderPos;
			
			$( $sliderHandler ).animate({
			
				"left": parseInt(sliderPos,10) + sliderStep
			
			})

			
			$( $photos ).animate({
			
				"left": parseInt(targetPos,10) - $( $activeImage ).width()-3

			}, 300, function() {
			
				Slider.animating = false;
				Slider.imgIterator++;
				$activeImage = $photos.find("li")[Slider.imgIterator];
			
			})
		
		})
		
				
		$($sliderLeft).bind("click", function(e) {
		
			e.preventDefault();
		
			if (Slider.animating == true || Slider.imgIterator <= 0) { return }
			Slider.animating = true;
			
			var targetPos = $( $photos ).css("left").replace(/px/, "");
			
			var sliderPos = $( $sliderHandler).css("left").replace(/px/, "");
			
			$( $sliderHandler ).animate({
			
				"left": parseInt(sliderPos,10) - sliderStep
			
			})
			
			$( $photos ).animate({
			
				"left": parseInt(targetPos,10) + $( $activeImage ).width()+3

			}, 300, function() {
			
				Slider.animating = false;
				Slider.imgIterator--;
				$activeImage = $photos.find("li")[Slider.imgIterator];
			
			})
		
		})
		
		$( $photos ).find("a").bind("click", function(e) {
			e.preventDefault();
			$( $photoBig ).attr("src", $(this).attr("href"));
			$( $photoUrl ).attr("href", $(this).attr("rel"));
			
		
		})
		
		$( $sliderHandler ).bind("mousedown", function(e) {
		
			e.preventDefault();
		
		
			Slider.moving = true;
			
			var lastPos = e.clientX;
			
			$( document ).bind("mouseup.tmp", function(e) {
				
				var p = $( $photos ).css("left").replace(/px/, "");
				
				p == "auto" ? p = 0 : p = p;
				
				var a = Math.floor(p / miniatureWidth);
				
				Slider.imgIterator = 0-a;
				$activeImage = $photos.find("li")[Slider.imgIterator];
				
				$( $photos ).animate({
					"left": a*miniatureWidth
				},300)
				
				$( $sliderHandler ).css("left", (0-a)*sliderStep);
				
				Slider.moving = false;
			
				$( $slider ).unbind("mousemove.tmp");
				$( document ).unbind("mouseup.tmp");
		
			})
			
			$( $slider ).bind("mousemove.tmp", function(e) {
			
				e.preventDefault();
			
				var c =  $( $sliderHandler ).css("left").replace(/px/, "");
				c == "auto" ? c = 0 : c = parseInt(c,10);
				
				var s = parseInt( e.clientX - lastPos, 10);

				var move = c+s;
				
				move < 0 ? move = 0 : move > sliderWidth ? move = sliderWidth : move=move;
				
				$( $sliderHandler ).css("left", move);
				$( $photos ).css("left", 0-(move*sliderRatio));
				lastPos = e.clientX;
			
			})
			
		
		})
		
		
		
	
	}


}



$().ready( function() {

	$("#slider").length > 0 && Slider.init();
	
	$("#advanced-toggle").click( function() {
	
		if ($(".form-advanced").is(".shown")) {
			$(".form-advanced").hide().removeClass("shown");
		} else {
			$(".form-advanced").slideDown().addClass("shown");
		}
	
	})
	
	$("#search-nav").find("a").each( function() {
	
		$(this).bind("click", function(e) {
		
			e.preventDefault();
		
			$("#search_type").attr("value", $(this).parent("li").attr("rel") );
			
			$("#search-nav .active").removeClass("active");
			$(this).parent("li").addClass("active");
		
		})
	
	})

	$(".search-results-item").hover( function() {
		$(this).addClass("promo");
	}, function() {
		$(this).removeClass("promo");
	})

	var data = "Szczecin, Stargard Szczeciński, Goleniów, Police, Gryfino".split(", ");
	$("#city").length > 0 && $("#city").autocomplete(data);

	$("a.external").attr("target", "_blank");

})

