// JavaScript Document
path_main="http://project-solution.ru/";
uid_num=0;
scroll_speed=20;
scroll_speed_mouse=200;

$(document).ready(function(){
	if ($('#page_name').attr('title')=="projects") {project_scroll_create();}
	if ($('#page_name').attr('title')=="projects2") {project_scroll_create();}
});

function project_scroll_create(){
	$('.section2').each(function() {
    $(this).wrap('<div class="sect_over" />').before('<div class="scroll_left" id="'+get_uid()+'" onmouseover="scroll_to_left('+(get_uid(0))+');" onmouseout="scroll_stop(this);" />').after('<div class="scroll_right" id="'+get_uid()+'"  onmouseout="scroll_stop(this);" onmouseover="scroll_r('+(get_uid(0))+');" />');
});
//	$('.section2').wrap('<div class="sect_over" />').before('<div class="scroll_left" onmouseover="scroll_l('+s+');" onmouseout="scroll_stop('+s+');" ></div>').after('<div class="scroll_right" onmouseover="scroll_r('+s+');" onmouseout="scroll_stop('+s+');"></div>');
	$('.section2').wrapInner('<tr />').wrapInner('<table class="pr_table" />');
	$("a[rel=example_group]").wrap('<td />');

//	$('.section').prepend('<div class="scroll_left"></div>').append('<div class="scroll_right"></div>');
}
/* Делаем функцию для прокрутки. */

function scroll_r(id,timer) {
	var elm="#"+id;
	var obj=$(elm).prev();
	var ml=$(obj).children().width();
  if ((timer == undefined) && ($(elm).attr('dir')=="")) $(elm).attr('dir',"ltr");//если не передан второй параметр timer, значит вызов был от кнопки прокрутки, ставим состояние прокрутки вниз	
  if ((ml > obj.scrollLeft()) && ($(elm).attr('dir')=="ltr")) {//если не достигли предела и состояние прокрутки все еще "вниз"(1)
    $(obj).scrollLeft(obj.scrollLeft() + scroll_speed);//добавляем смещение прокрутки на 10 пикселей
    $(elm).timer = setTimeout("scroll_r("+id+",true)",100);//устанавливаем таймер вызова этой же функции для дальнейшей прокрутки
  }
}

function scroll_to_left(id,timer){
	var elm="#"+id;
	var obj=$(elm).next();
	var ml=$(obj).children().width();
  if ((timer == undefined) && ($(elm).attr('dir')=="")) {$(elm).attr('dir',"ltr");}//если не передан второй параметр timer, значит вызов был от кнопки прокрутки, ставим состояние прокрутки вниз	
  if ((obj.scrollLeft()>0) && ($(elm).attr('dir')=="ltr")) { //если не достигли предела и состояние прокрутки все еще "вниз"(1)
    $(obj).scrollLeft(obj.scrollLeft() - scroll_speed); //добавляем смещение прокрутки на 10 пикселей
    $(elm).timer = setTimeout("scroll_to_left("+id+",true)",100); //устанавливаем таймер вызова этой же функции для дальнейшей прокрутки
  }
}

function scroll_mouse_r(id) {
	var ml=$(id).children().width();
  if (ml > obj.scrollLeft()) {//если не достигли предела и состояние прокрутки все еще "вниз"(1)
    $(obj).scrollLeft(obj.scrollLeft() + scroll_speed_mouse);//добавляем смещение прокрутки на 10 пикселей
  }
}
function scroll_mouse_l(id) {
	var roll_pos=0;
	var ml=$(id).children().width();
  if (obj.scrollLeft()>0) {//если не достигли предела и состояние прокрутки все еще "вниз"(1)
    roll_pos=obj.scrollLeft() - scroll_speed_mouse;//добавляем смещение прокрутки на "scroll_speed_mouse" пикселей
		if (roll_pos>0) {$(obj).scrollLeft(roll_pos)} else {$(obj).scrollLeft(0)};
  }
}

/* И еще одна небольшая функция для остановки прокрутки, которая сбрасывает состояния в "ничего не происходит"  */
function scroll_stop(id) {
//	var obj=$(id).prev();
//  var obj = document.getElementById(id);//получаем объект по ID
  if (id) {
//    if (id.timer) clearTimeout(id.timer);
    clearTimeout(id.timer);
    id.dir = "";
  }

}function get_uid(n){
	if(n==undefined){n=1;}
	uid_num+=n;
	return uid_num;
}
/* Взято из http://www.grizun.com/post/view/17/ */
/*
offsetHeight - высота области, которую блок занимает в документе. Та, которую мы задали в стилях.(только для чтения)
scrollHeight - полная высота блока с учетом прокрутки. Фактически высота содержимого блока. (только для чтения)
scrollTop - расстояние от верхней границы блока до верхней границы видимой части. Или, говоря по-простому, на сколько прокручен блок от верхней границы.(чтение/запись)
*/

/* Задавая значение scrollTop мы прокручиваем блок на необходимое расстояние. Максимальное расстояние на которое можно прокрутить блок, мы можем высчитать из разности scrollHeight и offsetHeight. */

/* Это будет у нас функция инициализация объекта, которым у нас будет #scrollme. Устанавливаем значение поля state = 0, которое будет отвечать за текущее состояние блока: 0 - ничего не происходит, 1 - прокрутка вниз, -1 - прокрутка вверх. В поле timer будет хранится таймер вызова прокрутки. Ну и значение максмимального расстояния вертикальной прокрутки - maxVert. */

function init(id) {
  var obj = document.getElementById(id);
  if (obj) {
    obj.state = 0;//инициализируем состояние
    obj.timer = null;
    obj.maxVert = obj.scrollHeight - obj.offsetHeight;//максимальная высота прокрутки
    obj.max = obj.scrollWidth - obj.offsetWidth;//максимальная ширина прокрутки
  }
}


/* Делаем аналогичную функцию для прокрутки влево. */
function scroll_l(id,timer) {
  var obj = document.getElementById(id);//получаем объект по ID
  if (!obj.max) init(id);//если объект еще не иниициализировался - инициализируем
  if (timer == undefined) obj.state = -1;//если не передан второй параметр timer, значит вызов был от кнопки прокрутки,ставим состояние прокрутки вверх	
  if ((obj.scrollLeft > 0) && (obj.state == -1)) {//если не достигли начала и состояние прокрутки все еще "вверх"(-1)
    obj.scrollLeft = obj.scrollLeft > 10 ? obj.scrollLeft - 10 : 0;//добавляем смещение прокрутки на 10 пикселей
    obj.timer = setTimeout('scroll_l(\''+id+'\',true)',100);//устанавливаем таймер вызова этой же функции для дальнейшей прокрутки
  }
}

function scroll_down(id,timer) {
  var obj = document.getElementById(id);//получаем объект по ID
  if (!obj.maxVert) init(id);//если объект еще не иниициализировался - инициализируем
  if (timer == undefined) obj.state = 1;//если не передан второй параметр timer, значит вызов был от кнопки прокрутки, ставим состояние прокрутки вниз	
  if ((obj.maxVert > obj.scrollTop) && (obj.state == 1)) {//если не достигли предела и состояние прокрутки все еще "вниз"(1)
    obj.scrollTop = obj.scrollTop + 10;//добавляем смещение прокрутки на 10 пикселей
    obj.timer = setTimeout('scroll_down(\''+id+'\',true)',100);//устанавливаем таймер вызова этой же функции для дальнейшей прокрутки
  }
}
/* Делаем аналогичную функцию для прокрутки вверх. */
function scroll_up(id,timer) {
  var obj = document.getElementById(id);//получаем объект по ID
  if (!obj.maxVert) init(id);//если объект еще не иниициализировался - инициализируем
  if (timer == undefined) obj.state = -1;//если не передан второй параметр timer, значит вызов был от кнопки прокрутки,ставим состояние прокрутки вверх	
  if ((obj.scrollTop > 0) && (obj.state == -1)) {//если не достигли начала и состояние прокрутки все еще "вверх"(-1)
    obj.scrollTop = obj.scrollTop > 10 ? obj.scrollTop - 10 : 0;//добавляем смещение прокрутки на 10 пикселей
    obj.timer = setTimeout('scroll_up(\''+id+'\',true)',100);//устанавливаем таймер вызова этой же функции для дальнейшей прокрутки
  }
}

