
//на сколько пикселей сдвигать контент по умолчанию
var slide_size_all = 0;
//сюда сохраняем соответствие контрол - скрипт, который заполняет контрол
var slider_script = {};
//здесь хранятся информация о изображениях, которые будут загружены в контрол
var loaded_images = {};
//количество загружаемых в контрол изображений
var preload_count = 8;
//сколько изображений загружено в каждый контрол
var slider_preload = {};
//общее количество изображений, доступных для загрузки
var slider_max = {};
//ширина таблицы контента
var slider_content_width = {};
//на сколько пикселей сдвигать контент для каждого слайдера
var slide_size = {};
//ширина слайдера
var slider_width = 0;
//ширина ячеек, по которым надо кликать для сдвига контента
var slider_arrow_width = 36;
//текущее положение - левый и правый края
var slider_current_left = {};
var slider_current_right = {};
//на какое количество картинок сдвигать
var slide_pics = 3;
//ранит сколько уже отскролило
var slider_scrolled = {};
//на сколько мы сдвигали контент в конце слайдинга в право
var slider_last_right = {};
//указывает, что слайдер докручен до конца
var slider_last_flag = {};



//инициализация контролов
jQuery(document).ready(function()
{
		/*init_tabscroll("slide1", "/cgi-bin/scrollcarimg.cgi?s=all");
		init_tabscroll("slide2", "/cgi-bin/scrollcarimg.cgi?s=is");
		init_tabscroll("slide3", "/cgi-bin/scrollcarimg.cgi?s=ss");*/
		
		init_tabscroll("slide1", "");
		init_tabscroll("slide2", "");
		init_tabscroll("slide3", "");
		init_tabscroll("slide4", "");
		
		
		
		$("#tab_tab1").click(function()
		{
				
				slide_tab_click(1);
		});
		
		$("#tab_tab2").click(function()
		{
				
				slide_tab_click(2);
		});
		
		$("#tab_tab3").click(function()
		{
				
				slide_tab_click(3);
		});
		
		$("#tab_tab4").click(function()
		{
				//alert('ZZZ4');
				slide_tab_click(4);
		});
        

});


//инициализация контрола slider
function init_tabscroll(slider, script){
   

    //сохраняем соответствие контрол - скрипт, который заполняет контрол
    slider_script[slider] = script;
    slider_preload[slider] = preload_count;
    
    slider_scrolled[slider] = 0;
    slider_last_right[slider] = 0;
    slider_last_flag[slider] = 0;
    
    //loaded_images["test"] = "test2";
   
    
		
    
    if (script != "")
    {
	get_content_json(slider, script);
    }
    
   
    slider_current_left[slider] = 0;
    slider_current_right[slider] = slide_pics-1;
    
    slide_size[slider] = {"left" : 0,
			  "right" : 0};
   
    
    var this_slider = $("#"+slider);
  
    //получаем id всех элементов контрола
    var this_slider_id = "#"+slider;
     
    var slide_left_id = this_slider_id + " div.slide_left";
    var slide_right_id = this_slider_id + " div.slide_right";
    var slide_table_id = this_slider_id+" table.ps_table";
    var slide_wrap_id = this_slider_id+" div.ps_wrap";
    var slide_table_cell_id = this_slider_id+" table.ps_table tr td.ps_td";
    var slide_table_row_id = this_slider_id+" table.ps_table tr.ps_row";
    
    
    
    $(slide_left_id).click(function()
			   {				
				if (slider_current_left[slider] === 0)
				{
				    slide_size[slider].left = 0;

				}
				else
				{
				    for (var ii = (slider_current_left[slider] - slide_pics); ii <= (slider_current_left[slider] - 1); ii ++)
				    {
					slide_size[slider].left += loaded_images[slider][ii]['width'];
				    }
				    
				    slider_current_left[slider] -= slide_pics;
				    slider_current_right[slider] = slider_current_left[slider] + (slide_pics - 1); 
				    
				}
				
				
				
				if (slider_last_right[slider] != 0)
				{
				    slide_size[slider].left = slider_last_right[slider];
				    slider_last_right[slider] = 0;
				}

										
				$(slide_table_id).animate({"left": "+="+slide_size[slider].left}, "fast");
				
				slider_scrolled[slider] -= slide_size[slider].left
				//$("#console").text("d " + right_next_slide + " c " + rest_slide);
				//$("#console").text("   left: "+ slider_current_left[slider] + " right: " + slider_current_right[slider] + "  of " + slider_max[slider]);
				
				slide_size[slider].left = 0;
				
				if (slider_last_flag[slider] == 1)
				{
				    slider_last_flag[slider] = 0;
				}
				
			   });
     
     
    $(slide_right_id).click(function()
			    {
				
				if (slider_last_flag[slider] != 1)
				{
				
				    var first = slider_preload[slider];
				    var last  = slider_preload[slider] + preload_count;
				    var max   = slider_max[slider];
				    
				    if (last >= max)
				    {
					last = max;
				    }
				
				    slider_preload[slider] = last;
				    
				    //определяем ширину уже загруженых картинок
				    var kk = 0;
				    $(slide_table_cell_id).each(function()
				    {
					var vm = $(this).width();
					//var hm = $(this).height();
				       
				       
					loaded_images[slider][kk]['width'] = vm;
					kk++;
					
				    });
				    
				    //общая ширина таблицы с контентом
				    slider_content_width[slider] = $(slide_table_row_id).width();
				    
				    images_load(slider, first, last);
				    
				    //$("#console").text(" left: " + slider_current_left[slider] + " right: " + slider_current_right[slider] + " max: " + slider_max[slider]);
				    
				    if (slider_current_right[slider] >= slider_max[slider])
				    {
					slide_size[slider].right = 0;
				    }
				    else
				    {
					for (var ii = slider_current_left[slider]; ii <= slider_current_right[slider]; ii ++)
					{
					
					    slide_size[slider].right += loaded_images[slider][ii]['width'];
					}
					
					slider_current_left[slider] = slider_current_right[slider]+1;
					slider_current_right[slider] += slide_pics;
				    }
				    
				    //$("#console").text(slide_size[slider].right + " left " + slider_current_left[slider] + " right " + slider_current_right[slider]);
				    
				    //ищем длинну следующего слайда
				    
				    var right_next_slide = 0;
				    
				    var mx_slide = slider_current_right[slider];
				    
				    if (mx_slide >=  max)
				    {
					mx_slide = max - 1;
				    }
				    
				    for (var ii = slider_current_left[slider]; ii <= mx_slide; ii ++)
				    {
				    
					right_next_slide += loaded_images[slider][ii]['width'];
				    }
				    
				    
				    
				    var rest_slide = slider_content_width[slider] - (slider_scrolled[slider] + $(slide_wrap_id).width());
				    
				    if (slider_last_flag[slider] != 1)
				    {
								    
					if ((right_next_slide > rest_slide) & ((slider_current_right[slider]+ 10) > slider_max[slider]))
					{
					    slide_size[slider].right = rest_slide;
					    slider_last_right[slider] = rest_slide;
					    slider_last_flag[slider] = 1;

					}
					
					
				    }
				   
				    
				    //$("#console").text("d " + right_next_slide + " c " + rest_slide + " current right " + slider_current_right[slider] + " max " + slider_max[slider]);
				    
				    //$("#console").text("   left: "+ slider_current_left[slider] + " right: " + slider_current_right[slider] + "  of " + slider_max[slider]);
				    
				    $(slide_table_id).animate({"left": "-="+slide_size[slider].right}, "fast");
				    
				    slider_scrolled[slider] += slide_size[slider].right;
				    
				    slide_size[slider].right = 0;
				
				}
			    });
    
    
    //изменяем размер фрейма
   
    slider_width = $(slide_wrap_id).parent().parent().width();
    $(slide_wrap_id).width(slider_width-(2*slider_arrow_width));
    
    //загружаем изображения в слайдер
    images_load(slider, 0, preload_count);
    
    //определяем, общую ширину загруженных изображений и задаем соответствующую ширину списка
    /*var list_wdth = 0;
    var temp = $(slide_table_cell_id).each(function()
				{
				    list_wdth += $(this).width();
				});
    slider_content_width[slider] = list_wdth;
  
    
    $(slide_table_id).width(list_wdth);*/
    
    //$(slide_table_id).load(function()
			    //{
				//alert("clicked");
			    //});
    
    //при изменени размеров родителя контрола, контрол тоже менят размер, если браузер не ie
    //if (!($.browser.msie))
    //{
 
    $(window).resize(function()
		{
		    //уменьшаем размер слайдера до 10, чтобы дать родительскому фрейму уменьшиться,
		    //а потом увеличиваем до размеров родителя
		    $(slide_wrap_id).width(10);
		    slider_width = $(slide_wrap_id).parent().parent().width();
		    $(slide_wrap_id).width(slider_width-(2*slider_arrow_width));
		});
    //}
    
}

function images_load(slider, first, last)
{
    
    for (var k = first; k < last; k ++)
    {
		
	//alert(loaded_images[slider][k]['preview']);
	add_picure(slider, loaded_images[slider][k]['preview'], loaded_images[slider][k]['link']);
    }

}

function resize_when_show(slider)
{
    var this_slider_id = "#"+slider;
    
    var slide_wrap_id = this_slider_id+" div.ps_wrap";
   
    
    $(slide_wrap_id).width(10);
    slider_width = $(slide_wrap_id).parent().parent().width();
    $(slide_wrap_id).width(slider_width-(2*slider_arrow_width));
}

function add_picure(slider, img_url, link)
{
   //alert(slider);
    var this_slider_id = "#"+slider;
    var slide_table_row_id = this_slider_id+" table.ps_table tr.ps_row";
    var slide_table_cell_id = this_slider_id+" table.ps_table tr td.ps_td";
    var slide_table_id = this_slider_id+" table.ps_table";
    
    var list_wdth = 0;
    
    var new_cell = '<td class="ps_td"><div class="img_div"><a href="'+link+'"><img class="ps_img" src="'+img_url+'"></a></div></td>';
    
    $(slide_table_row_id).append(new_cell);
    
   

}





function doSomething(slider)
{
    var this_slider_id = "#"+slider;
     
    var slide_left_id = this_slider_id + " div.slide_left";
    var slide_right_id = this_slider_id + " div.slide_right";
    var slide_table_id = this_slider_id+" table.ps_table";
    var slide_wrap_id = this_slider_id+" div.ps_wrap";
    var slide_table_cell_id = this_slider_id+" table.ps_table tr td.ps_td";
    
    //var frame = $(slide_wrap_id).width();
    //var content = slider_content_width[slider];
    var position = $(slide_table_id).css("left");
   
    
    $("#console").text(" pos:" + position);

}




function get_content_json(slider, script)
{
    /*jQuery.getScript(
        script,
        function(data) {
           save_content(slider, data);
        }
    );*/
    //alert(slider);
    $.ajax({
	async: false,
	url: script,
	success: function(data) {
				    save_content(slider, data);
				}
    });

    
   
};

function save_content(slider, data)
{
   
    var res = eval("("+data+")");
    var man = eval("("+res.unit[0]+")");
    var total = eval("("+res.total+")");
    
    var j=0;
    var images_array=[];
    
    for(i in res.unit)
    {
	    var man = eval("("+res.unit[i]+")");		
	    //add_picure(slider, man.img);
	    
	    images_array[j] = {'id':j, 'preview':man.img, 'link':man.link, 'width':0};
	    j++;
    }
    loaded_images[slider] = images_array;
    slider_max[slider] = total;

};






function slide_tab_click(data)
{
	var tab_no = eval(data);
	var tab_count = 4;
	
	var tab_name_selected = '#tab_tab' + tab_no;

	for (i=1;i<=tab_count;i++)
	{
		var tab_name = '#tab_tab' + i;
		var tab_selected_name = 'tab_selected';
		
		if (i==tab_no)
		{
			$(tab_name).addClass(tab_selected_name);
			var tab_punkt = tab_name + " div.tab_punkt"
			$(tab_punkt).removeClass("tab_punkt").addClass("tab_punkt_selected");	
		}
		else
		{
			$(tab_name).removeClass(tab_selected_name);
			
			var tab_punkt_selected = tab_name + " div.tab_punkt_selected"
			$(tab_punkt_selected).removeClass("tab_punkt_selected").addClass("tab_punkt");
		}
		
		var tab_sep = "#tab_sep"+i;
		
		$(tab_sep).removeClass("tab_no_separator");
		$(tab_sep).addClass("tab_separator");
		
		var slider_not_selected = "#slide"+i;
		$(slider_not_selected).hide();
		
	}
	
	var left_sep_number = tab_no-1;
	var left_sep = "#tab_sep"+left_sep_number;	
	var right_sep = "#tab_sep"+tab_no;
	
	
	$(left_sep).removeClass("tab_separator");
	$(right_sep).removeClass("tab_separator");
		
	$(left_sep).addClass("tab_no_separator");
	$(right_sep).addClass("tab_no_separator");
	

	var slider_selected = "#slide"+tab_no;
	$(slider_selected).show();
	resize_when_show("slide"+tab_no);		

}

