/** сколько всего слайдов */
//var all_slides = 2; // serverside
/** текущий номер слайда */
//var currentSlideNum = 0; // serverside

/*maxSliderSpeed, minSliderSpeed and SliderSpeed should be multible of sliderSpeedInterval*/
var maxSliderSpeed = 1000;
var minSliderSpeed = 9000;
var sliderSpeed = 10000; // cookie
var sliderSpeedInterval = 1000;

$(document).ready(function() {
	slideshow.init();
});

/**
 * cookie
 * slideshow=play:0&speed:5000; 
 */
var slideshow = {
	slider_speed: sliderSpeed,
	playback: 0, // 0 - stop, 1 - play
	timeout_id: null,
	/**
	 * проверка куков, установка параметров
	 */
	check_cookie: function (){
		var allcookies = document.cookie;
		var pos = allcookies.indexOf("slideshow=");

		if (pos != -1) {
			var start = pos + 10; // Start of cookie value
			var end = allcookies.indexOf(";", start); // End of cookie value
			if (end == -1)
				end = allcookies.length;
			var value = allcookies.substring(start, end); // Extract the value
			value = decodeURIComponent(value);			
			if (value.indexOf('p:') != -1){						
				this.playback = value.substring(2,3) - 0;
			} // если == 1, тогда
			if (value.indexOf('s:') != -1){						
				this.slider_speed = value.substr(value.indexOf('s:')+2) - 0;
			}			
		} else {
			this.write_cookie();
		}
		
	},
	/**
	 * запись параметров в куки
	 */
	write_cookie: function(){
		document.cookie = 'slideshow=p:' + this.playback +'&s:' + this.slider_speed;
	},
	/**
	 * проверка куков<br>
	 * установка слайдера<br>
	 * навес обработчика на кнопку плей<br>
	 * и если 1, то играть
	 */
	init: function(){
		this.check_cookie();
		initPlayerSlider(); // initialization slider
		changeSliderPosition();
		slideShowNavBaseFunc();
		if (this.playback == 1) {			
			this.play();			
			$('.slideshow-play img').attr("src","/sites/default/themes/forbsie/img/icons/pause.gif");			
            $('.slideshow-play img').bind('click', slideshow.stop);
		} else {			
			$('.slideshow-play img').attr("src","/sites/default/themes/forbsie/img/icons/play.gif");
			$('.slideshow-play img').bind('click', slideshow.play);			
		}		
	},
	/**
	 * перезагрузка с новым урлом
	 * !. надо быть осторожней на счет this
	 */
	play: function(){
		$('.slideshow-play img').attr("src","/sites/default/themes/forbsie/img/icons/pause.gif");
        $('.slideshow-play img').unbind('click');
		$('.slideshow-play img').bind('click', slideshow.stop);
		
		if (slideshow.timeout_id) { // обнуление, при изменение скорости и текущего состояния	
        	window.clearTimeout(slideshow.timeout_id);
            slideshow.timeout_id = null;
        }
        slideshow.playback = 1;
        slideshow.write_cookie();        
        // поиск строки
		if (window.location.href.indexOf('/slideshow')){		
	  		var url = window.location.href.substr(0, window.location.href.indexOf('/slideshow'));
	  		if ((currentSlideNum + 1) < all_slides) {
	  			var slide = currentSlideNum + 1 + 1;
	  			url += '/slideshow/' + slide;
	  		} else {
	  			if ((currentSlideNum + 1) == all_slides) {
	  				url += '/slideshow/' + '1'; // 1?
	  			}
	  		}
	  		slideshow.timeout_id = setTimeout(function(){window.location.href = url}, slideshow.slider_speed);
		}		
	},
	/**
	 * остановка 
	 */
	stop: function(){
		if (slideshow.timeout_id) { // обнуление, при изменение скорости и текущего состояния	
        	window.clearTimeout(slideshow.timeout_id);
            slideshow.timeout_id = null;
        }
        slideshow.playback = 0;
        $('.slideshow-play img').attr("src","/sites/default/themes/forbsie/img/icons/play.gif");
        $('.slideshow-play img').unbind('click');
		$('.slideshow-play img').bind('click', slideshow.play);
		slideshow.write_cookie();
	}	
}

/** бегунок */
function initPlayerSlider() {
	$('.speed-control').slider({
		max:(minSliderSpeed/sliderSpeedInterval),
		min:(maxSliderSpeed/sliderSpeedInterval),
		step:(sliderSpeedInterval/sliderSpeedInterval),
		value:(slideshow.slider_speed/sliderSpeedInterval),
		change: function(event, ui) {
			var value = $('.speed-control').slider('option', 'value');
			slideshow.slider_speed = (10 - value) * sliderSpeedInterval;
			slideshow.write_cookie();
			if (slideshow.timeout_id) slideshow.play();
		}
	});
	//$('.speed-control a').eq(0).addClass('slideshow-sl');
	$('.speed-control .ui-slider-handle').addClass('slideshow-sl');
	if (navigator.userAgent.indexOf('MSIE 6.0') == -1) {
		$('.ui-slider-handle').bind('mouseup', function() {
			$('.speed-control').slider('disable');
		}).bind('mousedown', function() {
			$('.speed-control').slider('enable');
		});
	}
	else {
		$('.slideshow-fast').bind('mouseenter', function() {
			$('.speed-control').slider('disable');
		}).bind('mouseleave', function() {
			$('.speed-control').slider('enable');
		});
	}
		
	$('.slideshow-slow').bind('mouseenter', function() {
		$('.speed-control').slider('disable');
	}).bind('mouseleave', function() {
		$('.speed-control').slider('enable');
	});

	$('.slideshow-fast').bind('click', function() {
		$('.speed-control').slider( 'enable' );
		if (slideshow.slider_speed > maxSliderSpeed) {
			slideshow.slider_speed -= sliderSpeedInterval;
			changeSliderPosition();
			//restart the player with the new speed if it is already running
			if (slideshow.timeout_id) slideshow.play();
		}
		$('.speed-control').slider( 'disable' );
	});
	$('.slideshow-slow').bind('click', function() {
		$('.speed-control').slider( 'enable' );
		if (slideshow.slider_speed < minSliderSpeed) {
			slideshow.slider_speed += sliderSpeedInterval;
			changeSliderPosition();
			//restart the player with the new speed if it is already running
			if (slideshow.timeout_id) slideshow.play();
		}
		$('.speed-control').slider( 'disable' );
	});
	
	$('.speed-control').slider( 'disable' );
}

function changeSliderPosition() {
	var speedNum = slideshow.slider_speed/sliderSpeedInterval;
	$('.speed-control').slider('option', 'value', 10-speedNum);
}

 function slideShowNavBaseFunc() {
        $(".slideshow-lister li").hover(function() {
                $(".slideshow-nav li").removeClass("act");
                $(this).addClass("act");
                
                var numItem = parseInt($(this).children('a').eq(0).text()) - 1;
                var url = $(this).find('a').attr('href');
                var html = [];
                var curItem = allSlides[numItem];
                html.push('<img src="'+curItem.thumbnail+'"/>');
                html.push('<a href="' + url +'">'+curItem.title+'</a>');
                $(".slideshow-rollover").html(html.join(''));
    
                $(".slideshow-rollover").show();
		var pos = $(this).offset();
                var posWrapper = $(".mainContent").offset();
		$(".slideshow-rollover").css("left", pos.left-posWrapper.left-45+"px");
	}, function() {
                var curLi = $(this);
    
                $(".slideshow-rollover").bind("mouseenter",function(event){
                        $(".slideshow-rollover").show();
                        $(".slideshow-nav li").removeClass("act");
                        curLi.addClass("act");
                });
                $(".slideshow-rollover").bind("mouseleave",function(event){
                        $(".slideshow-rollover").hide();
                        $(".slideshow-nav li").removeClass("act");
                });
                $(".slideshow-rollover").hide();
                $(this).removeClass("act");
	});        
}