var imgCount;
var imgFolder;
var imgExt;
var imgCurrent;
var previewCurrent;
var hideSliderTimer = 0;
var hideDelayTimer = 0;
var nextPictureTimer = 0;
var nextPictureDelay = 5000;
var ControlIsHide;
var ShowPaused;
var PreviewImages;
var ImageArray = Array();
var blockingScroll = false;
var DelayIsHide = false;
function ResetTimeOut(){
	clearTimeout(hideSliderTimer);
	hideSliderTimer = setTimeout(HideControl,5000);
}
function ResetRequest(){
	if (!ShowPaused) {
		clearTimeout(nextPictureTimer);
		nextPictureTimer = setTimeout(SlidePicture,nextPictureDelay);
	}
}
function HideControl(){
	if (ControlIsHide) return;
	$('#jqShowDelay').css({visibility:'hidden'});
	$('#jqSlideControl').css({visibility:'hidden'});
	ControlIsHide = true;
}
function ShowControl(){
	if (ControlIsHide == false) return;
	$('#jqShowDelay').css({visibility:'visible'});
	$('#jqSlideControl').css({visibility:'visible'});
	ControlIsHide = false;
	ResetTimeOut();
}
function SlidePicture(){
	ScrollPreviewLeft();
	$('#jqFrame').fadeOut('slow',function(){InitView(imgCurrent+1)});
}
function EndShow(){
	clearTimeout(hideSliderTimer);
	clearTimeout(nextPictureTimer);
	$('#jqSlider').animate({/*opacity:'hide',*/top:0,width:$(window).width(),height:0},'slow',null,function(){
		$('#jqSlider').remove();
	});
	$(document).unbind('keypress');
}
function Slow(){
	nextPictureDelay = nextPictureDelay + 1000;
	ShowDelay();
	ResetRequest();
}
function Quicken(){
	if (nextPictureDelay < 4000) return;
	nextPictureDelay = nextPictureDelay - 1000;
	ShowDelay();
	ResetRequest();
}
function Pause(){
	if (ShowPaused) {
		ShowPaused = false;
		ResetRequest();
		$('#jqSlidePause').attr('src','i/Image/site/pause.gif');
	} else {
		ShowPaused = true;
		clearTimeout(nextPictureTimer);
		$('#jqSlidePause').attr('src','i/Image/site/play.gif');
	}
}
function ShowDelay(){
	if (DelayIsHide){
		$('#jqShowDelay').fadeIn(500);
		DelayIsHide = false;
	}
	$('#jqShowDelay').html(nextPictureDelay/1000+' сек');
	clearTimeout(hideDelayTimer);
	hideDelayTimer = setTimeout(HideDelay,2000);
}
function HideDelay(){
	$('#jqShowDelay').fadeOut(500);
	DelayIsHide = true;
}
function SlideShow(init,count,folder,ext){
	$(window).scrollTop(0);
	PreviewImages = Array();	
	imgCount = count;
	imgFolder = folder;
	imgExt = ext;
	for (i = 0; i < count; i++){
		PreviewImages[i] = new Image;
		PreviewImages[i].src = imgFolder+(i+1)+'.'+imgExt;
	}
	var w = $(window).width();
	var h = $(document).height();
	var top = $(window).scrollTop();
	$('body').append('<div id="jqSlider" class="slider"></div>');
	$('#jqSlider').css({top:top,width:w});
	$('#jqSlider').hide();	
	$('#jqSlider').append('<div id="jqFrame"></div>');
	$('#jqSlider').append('<div id="jqPreloader"><img src="i/Image/site/slider_preloader.gif"></div>');
	$('#jqPreloader').css({top:300,left:w/2-16,position:'absolute',visibility:'hidden'});
	$('#jqFrame').append('<img id="jqFrameImage" src=""/>');
	$('#jqSlider').append(" <div id=\"jqSlideControl\" class=\"control\">\
								<table border=\"0\" cellspacing=\"0\" sellpadding=\"0\" id=\"jqCtrlContainer\" class=\"slide_control\">\
									<tr>\
										<td id=\"SliderPreview\" width=\"290\" align=\"right\" >\
											<div class=\"slider_preview\"><img valign=\"middle\" width=\"50\" height=\"35\" src=\"\"></div>\
											<div class=\"slider_preview\"><img valign=\"middle\" width=\"50\" height=\"35\" src=\"\"></div>\
											<div class=\"slider_preview\"><img valign=\"middle\" width=\"50\" height=\"35\" src=\"\"></div>\
											<div class=\"slider_preview\"><img valign=\"middle\" width=\"50\" height=\"35\" src=\"\"></div>\
											<div class=\"slider_preview\"><img valign=\"middle\" width=\"50\" height=\"35\" src=\"\"></div>\
										</td>\
										<td class=\"button\"><img id=\"lqSliderSlow\" src=\"/i/Image/site/slow.gif\"/></td>\
										<td class=\"button\"><img id=\"jqSlidePrev\" src=\"/i/Image/site/prev.gif\"/></td>\
										<td class=\"button\"><img id=\"jqSlidePause\" src=\"/i/Image/site/pause.gif\"/></td>\
										<td class=\"button\"><img id=\"jqSlideNext\" src=\"/i/Image/site/next.gif\"/></td>\
										<td class=\"button\"><img id=\"lqSliderFast\" src=\"/i/Image/site/fast.gif\"/></td>\
										<td class=\"button\"><img id=\"lqSliderEndShow\" src=\"/i/Image/site/end.gif\"/></td>\
									</tr>\
									<tr><td colspan=\"7\" id=\"jqSliderStatus\" class=\"silder_status\"></tr>\
								</table>\
							</div>");
	$('#jqSlider').append('<div id="jqShowDelay" class="show_delay"></div>');
	$('#jqShowDelay').fadeOut(0);
	$('#jqFrame').hide();
	$('#jqSlideNext').mousedown(ScrollLeft);
	$('#jqSlidePrev').mousedown(ScrollRight);
	ControlIsHide = false;
	ResetTimeOut();
	$('#lqSliderEndShow').mousedown(EndShow);
	ShowPaused = false;
	DelayIsHide = true;
	$('#jqSlidePause').mousedown(Pause);
	$('#lqSliderFast').mousedown(Quicken);
	$('#lqSliderSlow').mousedown(Slow);
	var imgs = $('#SliderPreview').children();
	for (i = 0; i < 5; i++){
		n = init - 2 + i;
		if (n > count) n = n - count;
		if (n < 1) n = n + count;
		$(imgs[i]).children()[0].src = PreviewImages[n-1].src;
		if (i == 2) $($(imgs[i]).children()[0]).addClass('slider_preview_sel');
		else $($(imgs[i]).children()[0]).addClass('slider_preview');
	}
	$('#jqCtrlContainer').mouseover(function(){clearTimeout(hideSliderTimer);})
	$('#jqCtrlContainer').mouseout(ResetTimeOut);
	SetPreviewBinds();
	previewCurrent = init;
	$('#jqSlider').mousemove(ShowControl);		
	$(document).keypress(function(e){KeyEvent(e)});
	$('#jqSlideControl').css({visibility:'hidden'});
	$('#jqSlider').animate({/*opacity:'show',*/top:0,width:w,height:h},'slow',null,function(){
		var offset = (w - $('#jqCtrlContainer').width()) / 2;
		$('#jqSlideControl').css({left:offset});
		$('#jqShowDelay').css({left:offset+380});
		$('#jqSlideControl').css({visibility:'visible'});
		InitView(init);
	});
}

function KeyEvent(e){
	var pressedKey = e.charCode || e.keyCode || -1;	
	switch (pressedKey){
		case 39:ScrollLeft();break;
		case 37:ScrollRight();break;
		case 32:Pause();break;
		case 27:EndShow();break;
		case 43:Quicken();break;
		case 45:Slow();break;
	}
}

function ScrollPreviewLeft(col){
	blockingScroll = true;
	$($('#SliderPreview').children()[4]).after("<div class=\"slider_preview\"><img valign=\"middle\" width=\"0\" height=\"0\" src=\"\"></div>");
	var imgs = $('#SliderPreview').children();
	var n = previewCurrent + 3;
	if (n > imgCount) n = n - imgCount;
	$(imgs[5]).children()[0].src = PreviewImages[n-1].src;
	$($(imgs[5]).children()[0]).addClass('slider_preview');
	$($(imgs[5]).children()[0]).animate({width:50,height:35},200);	
	$($(imgs[2]).children()[0]).removeClass();
	$($(imgs[2]).children()[0]).addClass('slider_preview');
	$($(imgs[0]).children()[0]).animate({width:0,height:0},200,null,function(){
		$($(imgs[0])).remove();
		previewCurrent++;
		if (previewCurrent > imgCount) previewCurrent = 1;
		$($(imgs[3]).children()[0]).removeClass();
		$($(imgs[3]).children()[0]).addClass('slider_preview_sel');
		if (col>1) ScrollPreviewLeft(col-1);
		else{
			SetPreviewBinds();
			blockingScroll = false;
		}
	});
}

function ScrollPreviewRight(col){
	blockingScroll = true;
	$($('#SliderPreview').children()[0]).before("<div class=\"slider_preview\"><img valign=\"middle\" width=\"0\" height=\"0\" src=\"\"></div>");
	var imgs = $('#SliderPreview').children();
	var n = previewCurrent - 3;
	if (n < 1) n = n + imgCount;
	$(imgs[0]).children()[0].src = PreviewImages[n-1].src;
	$($(imgs[0]).children()[0]).addClass('slider_preview');
	$($(imgs[0]).children()[0]).animate({width:50,height:35},200);
	$($(imgs[3]).children()[0]).removeClass();
	$($(imgs[3]).children()[0]).addClass('slider_preview');
	$($(imgs[5]).children()[0]).animate({width:0,height:0},200,null,function(){
		$($(imgs[5])).remove();	
		previewCurrent--;
		if (previewCurrent < 1) previewCurrent = imgCount;
		$($(imgs[2]).children()[0]).removeClass();
		$($(imgs[2]).children()[0]).addClass('slider_preview_sel');
		if (col>1) ScrollPreviewRight(col-1);
		else{
			SetPreviewBinds();
			blockingScroll = false;
		}
	});	
}

function SetPreviewBinds(){
	var imgs = $('#SliderPreview').children();
	$($(imgs[0]).children()[0]).unbind();
	$($(imgs[1]).children()[0]).unbind();
	$($(imgs[2]).children()[0]).unbind();
	$($(imgs[3]).children()[0]).unbind();
	$($(imgs[4]).children()[0]).unbind();
	
	$($(imgs[0]).children()[0]).mousedown(DoubleScrollRight);
	$($(imgs[1]).children()[0]).mousedown(ScrollRight);
	$($(imgs[3]).children()[0]).mousedown(ScrollLeft);
	$($(imgs[4]).children()[0]).mousedown(DoubleScrollLeft);
}

function ScrollRight(){
	if (!blockingScroll) {
		ScrollPreviewRight(1);
		$('#jqFrame').fadeOut('slow',function(){InitView(imgCurrent-1)});
	}
}

function DoubleScrollRight(){
	if (!blockingScroll) {
		ScrollPreviewRight(2);
		$('#jqFrame').fadeOut('slow',function(){InitView(imgCurrent-2)});
	}
}

function ScrollLeft(){
	if (!blockingScroll) {
		ScrollPreviewLeft(1);
		$('#jqFrame').fadeOut('slow',function(){InitView(imgCurrent+1)});
	}
}

function DoubleScrollLeft(){
	if (!blockingScroll) {
		ScrollPreviewLeft(2);
		$('#jqFrame').fadeOut('slow',function(){InitView(imgCurrent+2)});
	}
}

function InitView(init){
	if (init > imgCount) init = init - imgCount;
	if (init < 1) init = init + imgCount;
	imgCurrent = init;
	$('#jqSliderStatus').html('Изображение ' + init + '/' + imgCount);
	if (ImageArray[imgCurrent] != undefined) {
		CreateView(imgCurrent);
		return;
	}
	var tmp = new Date();
	var suffix = tmp.getTime();
	var img_src = imgFolder+'b/'+init+'.'+imgExt+'?'+suffix;
	ImageArray[imgCurrent] = new Image;
	ImageArray[imgCurrent].src = img_src;
	$('#jqPreloader').css({visibility:'visible'});
	jQuery(ImageArray[imgCurrent])
		.attr('id', 'ImageBox')
		.bind('load', 
		function()
		{
			$('#jqPreloader').css({visibility:'hidden'});
			CreateView(imgCurrent);	
		});
}
function CreateView(nImage){	
	$('#jqFrameImage').attr('src',ImageArray[nImage].src);
	var iw = ImageArray[nImage].width;
	var ih = ImageArray[nImage].height;
	var w = $(window).width();
	var h = $(window).height();
	var dh = $(document).height();
	var px = (w-iw)/2;
	var py = (h-ih)/2+$(window).scrollTop();
	if (py < 100) py = 100;
	$('#jqFrame').width(iw);
	$('#jqFrame').height(ih);
	$('#jqFrame').css({position:'absolute',top:py,left:px,width:iw,height:ih});
	$('#jqFrame').fadeIn('slow');
	ResetRequest();	
}