// Динамический блок2 
// (c) MAXIOL 2010
function get(id)
{ return document.getElementById(id); }

var pozsld=0; // позиция для слайдера
var mysld=0;    // ссылка на ползунок
var roter='<img src="http://sailor.maxiol.com/grfx/loading.gif"  border="0" alt="Загрузка" align="center" />';
var copyright='Пожалуйста зарегистрируйтесь. Это действие разрешено для зарегистрированных пользователей';

// установка куков
// на вход
// name - имя кука (*)
// value - его значение (*)
// кол-во дней хранения
// путь
// домен
// защита
function setCookie(name, value, expiredays, path, domain, secure) {
   if (expiredays) {
      var exdate=new Date();
      exdate.setDate(exdate.getDate()+expiredays);
      var expires = exdate.toGMTString();
   }
   document.cookie = name + "=" + escape(value) +
   ((expiredays) ? "; expires=" + expires : "") +
   ((path) ? "; path=" + path : "") +
   ((domain) ? "; domain=" + domain : "") +
   ((secure) ? "; secure" : "");
}

// чтение из куков
function getCookie(name) 
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

// отображение картинки
function viewpic(idpic,ww,hh,name) 
{ 
  var block_back=get("block3").innerHTML; 	
  var params = "toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=no,status=no,width="+ww+",height="+hh;
  var urls3='<html><head><title>'+name+'</title></head><body><IMG  src="http://sailor.maxiol.com/index.htm?t=picture&norm=1&pi='+idpic+'" onclick="fls = window.close();" >'+block_back+'</body></html>'; 
  var fls = window.open("", "_blank", params);
  fls.document.write(urls3);
}

// отображение картинки защищенное от скачивания
function viewpicP(idpic,ww,hh,name) 
{
  var block_back=get("block3").innerHTML; 	
  var params = "toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=no,status=no,width="+ww+",height="+hh;
  var urls3='<html><head><title>'+name+'</title></head><body><IMG  onContextMenu="fls = window.close(); return false;" src="http://sailor.maxiol.com/index.htm?t=picture&norm=1&pi='+idpic+'" onclick="fls = window.close();" >'+block_back+'</body></html>'; 
  var fls = window.open("", "_blank", params);
  fls.document.write(urls3);
}


// скачивание картинки
function dlpic(idpic) 
{
var params = "menubar=no,location=no,resizable=no,scrollbars=no,status=no"
window.open("http://sailor.maxiol.com/index.htm?t=picture&norm=2&pi="+idpic, "_blank", params)
}

// класс poluzunok
// elemId - имя объекта в котором создавать ползунок
// poluzunokWidth - ширина слайдера
// range1  - начальное значение
// range2  - конечное значение
// step    - шаг изменения
function polzunok(elemId, polzunokWidth, range1, range2, step) 
{
	var knobWidth = 17;	// ширина и высота бегунка
	var knobHeight = 21;	// изменяются в зависимости от используемых изображений
	var polzunokHeight = 21;	// высота polzunok'а
	
	var offsX,tmp;		// вспомагательные переменные
	var d = document;
	var isIE = d.all || window.opera;	// определяем модель DOM
	var point = (polzunokWidth-knobWidth-3)/(range2-range1);
	// point - количество пикселей на единицу значения
	
	var polzunok = d.createElement('DIV'); // создаем polzunok
	polzunok.id = elemId + '_polzunok';
	polzunok.className = 'polzun';
	d.getElementById(elemId).appendChild(polzunok);	
	
	var knob = d.createElement('DIV');	// создаем ползунок
	knob.id = elemId + '_knob';
	knob.className = 'knob';
	polzunok.appendChild(knob); // добавляем его в документ
	
	knob.style.left = 0;			// бегунок в нулевое значение
	knob.style.width = knobWidth+'px';	
	knob.style.height = knobHeight+'px';
	polzunok.style.width = polzunokWidth+'px';
	polzunok.style.height = polzunokHeight+'px';
	
	var polzunokOffset = polzunok.offsetLeft;			// polzunokOffset - абсолютное смещение polzunok'а
	tmp = polzunok.offsetParent;		// от левого края в пикселях (в IE не работает)
	while(tmp.tagName != 'BODY') {
		polzunokOffset += tmp.offsetLeft;		// тут его и находим
		tmp = tmp.offsetParent;
	}
	
	if(isIE)						// в зависимости от модели DOM
	{								// назначаем слушателей событий
		knob.onmousedown = startCoord;		
		polzunok.onclick = polzunokClick;		
		knob.onmouseup = endCoord;		
		polzunok.onmouseup = endCoord;			
	}
	else {
		knob.addEventListener("mousedown", startCoord, true);		
		polzunok.addEventListener("click", polzunokClick, true);		
		knob.addEventListener("mouseup", endCoord, true);	
		polzunok.addEventListener("mouseup", endCoord, true);	
	}

	function setValue(x)	// установка по пикселям
	{
		if(x < 0) knob.style.left = 0; 
		else if(x > polzunokWidth-knobWidth-3) knob.style.left = (polzunokWidth-3-knobWidth)+'px';
		else {
			if(step == 0) knob.style.left = x+'px';			
			else knob.style.left = Math.round(x/(step*point))*step*point+'px';
		}
		pozsld=-( (x/point)+range1 ) ; // установка слайдера
		SliderScroll();		
	}
	function setValue2(x)	// установка по значению
	{
		if(x < range1 || x > range2) {null;} 
		//alert('Value is not included into a polzunok range!');
		else {setValue((x-range1)*point);}
	}

	function getValue() 
	{return Math.round(parseInt(knob.style.left)/point)+range1;}

	function polzunokClick(e) {	
		var x;
		if(isIE) {
			if(event.srcElement != polzunok) return; //IE onclick bug
			x = event.offsetX - Math.round(knobWidth/2);
		}	
		else x = e.pageX-polzunokOffset-knobWidth/2;
		setValue(x);
	}

	function startCoord(e) {				
		if(isIE) {	
			offsX = event.clientX - parseInt(knob.style.left);
			polzunok.onmousemove = mov;
		}
		else {				
			polzunok.addEventListener("mousemove", mov, true);
		}
	}
	
	function mov(e)	{
		var x;	
		if(isIE) x = event.clientX-offsX;
		else x = e.pageX-polzunokOffset-knobWidth/2;
		setValue(x);
	}

	function endCoord()	{
		if(isIE) polzunok.onmousemove = null;	
		else polzunok.removeEventListener("mousemove", mov, true);
	}
	// объявляем функции setValue2 и getValue как методы класса
	this.setValue = setValue2;
	this.getValue = getValue;
} // конец класса polzunok




// перезагрузка блока
// на вход имя блока
function reload_block(idbl) 
  { var block_back=get(idbl).innerHTML; 		
    get(idbl).innerHTML=roter;
    get(idbl).innerHTML=' '+block_back+' <span></span> ';  	
  }
    

// запрос в бакэенд 
// на вход имя блока в который грузить резльутат
// номер галереи
// номер картинки
// номер бакэнда
// кеширование блока - true - выключено, false - включено
function show_block(idbl,idgl,idpi,be,cashe) 
  { 
    var scw=screen.width;
    var sch=screen.height;
    var blw=get(idbl).offsetWidth;
    get(idbl).innerHTML=roter;
    reload_block("block3"); 
     setCookie('IGL',idgl,10); // текущая галерея 
   	 //setCookie('PI'+idgl,idpi,5); // картинка если есть
    JsHttpRequest.query	('index.htm?t=galery&be='+be, 
    { 'idgl': idgl,  
      'idpi': idpi,
      'scw' : scw ,
      'sch' : sch ,
      'blw' : blw },
      function(result, errors) 
      {
        if (result) 
	      { get(idbl).innerHTML =result["block"]; } else {get(idbl).innerHTML='Ошибка. Попробуйте еще раз.';}  
       }, cashe );	 
	   if (be==3) {mysld=0;} // обнулим дескриптор ползунка если новый вызов слайдера  	        
  }

// show_block  с таймаутом
function show_block_t(idbl,idgl,idpi,be,cashe,timeout)
 {
 setTimeout('show_block('+idbl+','+idgl+','+idpi+','+be+','+cashe+')',timeout);	
 }


// бакэенд редактора
// на вход имя операции
// номер бакэнда
// -- для вызова show_block
// номер галереи
// номер картинки
// номер бакэнда
// кеширование блока - true - выключено, false - включено
function update_data(idop,bee,idbl,idgl,idpi,be,cashe)
{ 
get('block22').innerHTML=roter;	
JsHttpRequest.query	('index.htm?t=galery&be=0&bee='+bee, 
    { 'IDGL': get('IDGL').value,  
      'IDGT': get('GALTYPE').value,
      'NIKNAME' : get('NIKNAME').value ,
      'OLD_IDTV' : get('OLD_IDTV').value,
      'NAME' : get('NAME').value ,
      'AUTOR' : get('AUTOR').value,
      'DESCRIPTION' : get('DESCRIPTION').value ,
      'KEYWORDS' : get('KEYWORDS').value ,
      'MEMO' : get('MEMO').value ,      
      'PV_WIDTH' : get('PV_WIDTH').value ,
      'PV_HEIGHT' : get('PV_HEIGHT').value ,
      'EN' : get('EN').checked ,
      'EN_DIR' : get('EN_DIR').checked ,      
      'PAR_IDGL' : get('PAR_IDGL').value ,
      'NUM_PIC' : get('NUM_PIC').value ,
      'act' : idop,
	  'BPIC_FILE' : document.getElementById("BPIC_FILE"),
	  'PIC_FILE'  : document.getElementById("PIC_FILE"),
	  'ARC_PIC'   : document.getElementById("ARC_PIC") 
	  },
      function(result, errors) 
      {
        if (result) 
	      { show_block(idbl,idgl,idpi,be,cashe);
	      	get('block22').innerHTML=result["itog"]; 
		  }     
       }, true );	 
}


// бакэенд редактора картинок
// на вход имя операции
// номер бакэнда
// -- для вызова show_block
// номер галереи
// номер картинки
// номер бакэнда
// кеширование блока - true - выключено, false - включено
function update_pic_data(idop,bee,idbl,idgl,idpi,be,cashe)
{ 
get('block212').innerHTML=roter;	
JsHttpRequest.query	('index.htm?t=galery&be=0&bee='+bee, 
    { 'IDPI': get('IDPI').value,
	  'IDGL': get('IDGL').value,  
      'EN': get('EN').checked,
      'SRT' : get('SRT').value ,
      'NAMELONG' : get('NAMELONG').value,
      'EN_PERSONAL_NAMEPIC' : get('EN_PERSONAL_NAMEPIC').checked,      
	  'act' : idop 
	  },
      function(result, errors) 
      {
        if (result) 
	      { show_block(idbl,idgl,idpi,be,cashe);
	      	get('block212').innerHTML=result["itog"]; 
		  }     
       }, true );	 
}


// cоздание ползунка
function create_pz() 
{   
var maxlen=get('C0').offsetWidth-get('LONGLIST').offsetWidth;	
if (mysld<1 && maxlen<0)
   { 	mysld = new polzunok('polzun', get('C0').offsetWidth, 0, -maxlen, 20);   } 	 
// попытка восстановить последнюю позицию
var idgl=getCookie('IGL'); 
var poz=getCookie('GL'+idgl);	
if (poz<0) {pozsld=poz; get('sliders').style.left=pozsld+"px"; mysld.setValue(-pozsld);	}   
}


/* Horiz Scroll */
function mouseScroll(delta,step) 
{    	 
	if (delta < 0) 
	  { pozsld=pozsld-step;} 
	  else
	  { pozsld=pozsld+step; }
      SliderScroll();
	  mysld.setValue(-pozsld); // синхронизация ползунка	  
}


function SliderScroll() // непосредственно сдвиг слайдера
{
	var maxlen=get('C0').offsetWidth-get('LONGLIST').offsetWidth;
	if (pozsld>0) 	   {pozsld=0;}
	if (pozsld<maxlen) {pozsld=maxlen;}
    if (maxlen>0)      {pozsld=0;}
	var idgl=getCookie('IGL');
	pozsld=Math.round(pozsld); 	
    setCookie('GL'+idgl,pozsld,5);   // запомним
	get('sliders').style.left=pozsld+"px";	
}

//----------------------------------------------------------------------------------------
// обработчик колеса мыша
function mouseWheel(event)
{
	var delta = 0;
	if (!event) 
	  event = window.event;
	if (event.wheelDelta) 
	{
	 delta = event.wheelDelta/120; 
	 if (window.opera) delta = delta;
	} 
	else if (event.detail) 
	{
	 delta = -event.detail/3;
	}
	if (delta) 
	{
	 mouseScroll(delta,50);
	 if (event.preventDefault) event.preventDefault();
	 event.returnValue = false;
	}
}

// добавить перехват колеса - указываем имя объекта
function AddListenermouseWheel(nnm)
{
//var nnm = 'B0';	
if (get(nnm).addEventListener)
  { get(nnm).addEventListener('DOMMouseScroll', mouseWheel, false);  }
get(nnm).onmousewheel = mouseWheel;
}

// убрать перехват колеса
function KillListenermouseWheel(nnm)
{
//var nnm = 'B0';	
if (get(nnm).addEventListener)
  { get(nnm).removeEventListener('DOMMouseScroll', mouseWheel, false);  }
get(nnm).onmousewheel = null;
}


