// Глобальные переменные
// назначение обработчика события для инициализации API
var isCSS, isW3C, isIE4, isNN4;
function initDHTMLAPI() {
    if (document.images) {
        isCSS = (document.body && document.body.style) ? true : false;
        isW3C = (isCSS && document.getElementById) ? true : false;
        isIE4 = (isCSS && document.all) ? true : false;
        isNN4 = (document.layers) ? true : false;
        isIE6CSS = (document.compatMode && 
			document.compatMode.indexOf("CSS1") >= 0) ? true : false;
    }
}
function print_goods(url)
{
  nw = window.open(url);
	nw.print();
}

function show_picture(path){
	picture=window.open ('','','width=850, height=700, top=150, left=150')
	picture.document.write("<link REL='StyleSheet' HREF='/style.css' type='text/css'><p align=center style='padding:10;'><img src=\""+path+"\" border=0 vspace=5 oncopy='return false' oncontextmenu='return false'><br><a href=# onclick='window.close()'>Закрыть окно</a></p>")
}


function ShowBigPic(ThisPic, bigpic) {
  if (document.images) {
      document.nowshowing.src = ThisPic;
			document.getElementById('nosh_a').href = 'javascript:show_picture(\''+bigpic+'\')';
			document.getElementById('nosh_a1').href = 'javascript:show_picture(\''+bigpic+'\')';
			window.scroll (0,114); 

			//document.nosh_a.href = 'javascript:show_picture('+bigpic+')';
  }
}  
function ShowBigPicImg(ThisPic, bigpic,comment) {
  if (document.images) {
      document.img.src = ThisPic;
			document.getElementById('nosh_a').href = 'javascript:show_picture(\''+bigpic+'\')';
			document.getElementById('nosh_a1').href = 'javascript:show_picture(\''+bigpic+'\')';
			document.getElementById('alt_show_big_pic').alt = comment;
			window.scroll (0,114); 

			//document.nosh_a.href = 'javascript:show_picture('+bigpic+')';
  }
} 
//class AjaxChain
GLOBAL_CHAIN_STACK       = new Array; // массив цепей
var GLOBAL_CHAIN_COUNTER = 0;   // c самого начала цепей вообще нету.

//===================================================================================
//
//===================================================================================
function AjaxChain()
{
 this.chain_number = GLOBAL_CHAIN_COUNTER;
 GLOBAL_CHAIN_COUNTER++;

 try {
 GLOBAL_CHAIN_STACK[this.chain_number]   =  false;  
 if  (window.XMLHttpRequest)  
   GLOBAL_CHAIN_STACK[this.chain_number] =  new  XMLHttpRequest();  
 else  if  (window.ActiveXObject)  
   GLOBAL_CHAIN_STACK[this.chain_number] =  new  ActiveXObject("Microsoft.XMLHTTP");  
}
catch(e) {alert("ERROR IN AjaxChain CONSTRUCTOR (XMLHttpRequestObj was not created) " +  e);}

this.stack         = new Array; // стек возвращаемых getAjax значений. (на самом деле это не стеки, а очереди) !
this.string_stack  = new Array; // стек передаваемых на сервер строк.
this.func_stack    = new Array; // стек функций обработчиков.
this.arg_stack     = new Array; // стек аргументов ф-ий обработчиков.
                             

//this.getAjax  = AjaxChain__getAjax;  // сразу на страницу
this.getAjax = AjaxChain__getAjax;  // только в переменную
}


function AjaxChain__getAjax(string,func_handler)
{
 var tosR = this.stack.length;
 var chain_number = this.chain_number;
 
 var arg = new Array;
 var i; 

  for(i=2;i<arguments.length;i++)
   arg[i-2] = arguments[i]; 

 if(tosR!=0 && this.stack[tosR-1] == 'wait')
 {
  this.string_stack.push(string);
  this.func_stack.push(func_handler);
  this.arg_stack.push(arg);
 }
 else
 {
		this.stack[tosR] = 'wait';
		if(GLOBAL_CHAIN_STACK[chain_number])  
		{  
			GLOBAL_CHAIN_STACK[chain_number].open("GET", string);
			var self = this;
			GLOBAL_CHAIN_STACK[chain_number].onreadystatechange  =  function()  
			{  
				if  (GLOBAL_CHAIN_STACK[chain_number].readyState  ==  4  &&  GLOBAL_CHAIN_STACK[chain_number].status  ==  200)  
				{
					self.stack[tosR]  =  GLOBAL_CHAIN_STACK[chain_number].responseText; // Получить данные с сервера
					//alert(self.stack[tosR]);
					if(tosR!=0)
					 func_handler(self.stack[tosR],arg[0]);                           // вызвать ф-ю обработчик.
					else
					 func_handler(self.stack[tosR],arg);                              // вызвать ф-ю обработчик.
					  
					if(self.string_stack.length!=0)
					 self.getAjax(self.string_stack.shift(),self.func_stack.shift(),self.arg_stack.shift());
					else
					 self.stack = new Array;
					
				}  
				else {}
					//this.stack[tosR]  = 'wait';
			}  
			GLOBAL_CHAIN_STACK[chain_number].send(null);  
		} 
		else
		 alert( "GLOBAL_CHAIN_STACK[" + chain_number + "] has not created! Error in AjaxChain__getAjax2!");
  }
 
}

function hide_input_title(field_hide, field_focus)
{
	document.getElementById(field_hide).innerHTML=''; 
	document.getElementById(field_hide).style.display='none'; 
	document.getElementById(field_focus).focus(); 
	return false;
}
var added_goods_id=0;
function hide(obj)
{
	var cur_style = obj.style.visibility;
	if(cur_style != "hidden")		{
		obj.style.visibility = "hidden";
		obj.innerHTML = "";
	}
	black_bg.style.display='none';
}

function add_goods_result(string)
{
	
	var obj = document.getElementById('added_msg_' + added_goods_id);
	obj.style.visibility = "visible";
	obj.innerHTML = string;
  setTimeout(function() {hide(obj)},3000);	
	added_goods_id=0;
}
function basket_count_handler(string) {
		basket_count.innerHTML = string;
}
function add_to_compare(goods_id)
{
	added_goods_id = goods_id;
	var AJAX_CHAIN =  new AjaxChain; 
	var rnd = Math.random();
	
	AJAX_CHAIN.getAjax('/cgi-bin/dsp.pl?cl=compare_goods&event=add_to_compare_short&goods_id='+goods_id+'&rnd='+rnd, add_goods_result);		
}
function count_handler(string) {
		count_show.innerHTML = string;
}
function open_div(show_div, hide_div) 
{
	document.getElementById(show_div).style.display ='inline';
	document.getElementById(hide_div).style.display = 'none';
}

// добавление в избранное
function getBrowserInfo() {
 var t,v = undefined;
 if (window.opera) t = 'Opera';
 else if (document.all) {
  t = 'IE';
  var nv = navigator.appVersion;
  var s = nv.indexOf('MSIE')+5;
  v = nv.substring(s,s+1);
 }
 else if (navigator.appName) t = 'Netscape';
 return {type:t,version:v};
}
 
function bookmark(a){
 var url = window.document.location;
 var title = window.document.title;
 var b = getBrowserInfo();
 if (b.type == 'IE' && b.version >= 4) window.external.AddFavorite(String(url),title);
 else if (b.type == 'Opera') {
  a.href = url;
  a.rel = "sidebar";
  a.title = url+','+title;
  return true;
 }
 else if (b.type == "Netscape") window.sidebar.addPanel(title,url,"");
 else alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
 return false;
}
function show_message_form(link_id)
{	
	initDHTMLAPI();
	var AJAX_CHAIN1 =  new AjaxChain;
	AJAX_CHAIN1.getAjax('/cgi-bin/dsp.pl?cl=link&event=show_message_form'+'&link_id='+encodeURIComponent(link_id),call_form_handler);	
}
function call_form_handler(string)
{ 	
	added_msg.style.visibility = "visible";
	added_msg.innerHTML = string;
	centerOnWindow(added_msg);
	black_bg.style.display='block';	
	black_bg.style.height=getDocumentHeight();
	black_bg.style.width=getDocumentWidth();

}
function centerOnWindow(added_msg) {
    // 'obj' является перемещаемым элементом
		var obj = getRawObject(added_msg);
	
    // параметры прокрутки окна
    var scrollX = 0, scrollY = 0;
    if (document.body && typeof document.body.scrollTop != "undefined") {
        scrollX += document.body.scrollLeft;
        scrollY += document.body.scrollTop;
        if (document.body.parentNode && 
            typeof document.body.parentNode.scrollTop != "undefined") {
            scrollX += document.body.parentNode.scrollLeft;
            scrollY += document.body.parentNode.scrollTop
        }
    } else if (typeof window.pageXOffset != "undefined") {
        scrollX += window.pageXOffset;
        scrollY += window.pageYOffset;
    }
	
    var x = Math.round((getInsideWindowWidth()/2) - 
        (getObjectWidth(obj)/2)) + scrollX;	
		
    var y = Math.round((getInsideWindowHeight()/2) - 
        (getObjectHeight(obj)/2)) + scrollY;
    shiftTo(obj, x, y);
		show(obj);
		
}

// располагаем объект по определенным пиксельным координатам
function shiftTo(obj, x, y) {
    var theObj = getObject(obj);
		
    if (theObj) {
        if (isCSS) {
			// Преобразуем некорректные числовые значения
            var units = (typeof theObj.left == "string") ? "px" : 0;
            theObj.left = x + units;
            theObj.top = y + units;
        } else if (isNN4) {alert(y);
            theObj.moveTo(x,y)
        }
    }
}

function getRawObject(obj) {
    var theObj;
    if (typeof obj == "string") {
        if (isW3C) {
            theObj = document.getElementById(obj);
        } else if (isIE4) {
            theObj = document.all(obj);
        } else if (isNN4) {
            theObj = seekLayer(document, obj);
        }
    } else {
		// Пропучкаем ссылку на объект
        theObj = obj;
    }
    return theObj;
}
// Возвращает ширину доступного в окне браузера пространства 
function getInsideWindowWidth() {	

    if (window.innerWidth) {
        return window.innerWidth;
    } else if (isIE6CSS) {
		// измеряем clientWidth элемента html 
        return document.body.parentElement.clientWidth;
    } else if (document.body && document.body.clientWidth) {
        return document.body.clientWidth;
    }
	
    return 0;
}
// Возвращает высоту доступного в окне браузера пространства 
function getInsideWindowHeight() {
    if (window.innerHeight) {
        return window.innerHeight;
    } else if (isIE6CSS) {
		// измеряем clientHeight элемента html
        return document.body.parentElement.clientHeight;
    } else if (document.body && document.body.clientHeight) {
        return document.body.clientHeight;
    }
    return 0;
}

// Определение ширины отображенного на экран объекта
function getObjectWidth(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetWidth) {
        result = elem.offsetWidth;
    } else if (elem.clip && elem.clip.width) {
        result = elem.clip.width;
    } else if (elem.style && elem.style.pixelWidth) {
        result = elem.style.pixelWidth;
    }
    return parseInt(result);
}

// Определение высоты отображенного на экран объекта
function getObjectHeight(obj)  {
    var elem = getRawObject(obj);
    var result = 0;
    if (elem.offsetHeight) {
        result = elem.offsetHeight;
    } else if (elem.clip && elem.clip.height) {
        result = elem.clip.height;
    } else if (elem.style && elem.style.pixelHeight) {
        result = elem.style.pixelHeight;
    }
    return parseInt(result);
}

// Делаем объект видимым
function show(obj) {
    var theObj = getObject(obj);
    if (theObj) {
        theObj.visibility = "visible";
    } 
}
// Перобразуем строку с именем объекта или ссылку на объект
// в ссылку на объект стиля (или в ссылку на слой NN 4)
function getObject(obj) {
    var theObj = getRawObject(obj);
    if (theObj && isCSS) {
        theObj = theObj.style;
    } 
    return theObj;
}


function getDocumentHeight()
{
	return (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}
function getDocumentWidth()
{
	return (document.body.scrollWidth > document.body.offsetWidth)?document.body.scrollWidth:document.body.offsetWidth;
}


function add_message()
{	
	var fio = document.getElementById('fio') ? document.getElementById('fio').value : '';
	var text = document.getElementById('text') ? document.getElementById('text').value : '';
	var link_id = document.getElementById('link_id') ? document.getElementById('link_id').value : '';
	var form_id = document.getElementById('form_id') ? document.getElementById('form_id').value : '';
	var enter_kod = document.getElementById('enter_kod') ? document.getElementById('enter_kod').value : '';
	var email = document.getElementById('email') ? document.getElementById('email').value : '';
	
	if(fio!='' && text!='' && enter_kod!='' && email!='')
	{
		var AJAX_CHAIN2 =  new AjaxChain;
		var link='/cgi-bin/dsp.pl?cl=link&event=add_message_link&fio='+encodeURIComponent(fio)+'&text='+encodeURIComponent(text)+'&link_id='+encodeURIComponent(link_id)+'&form_id='+encodeURIComponent(form_id)+'&enter_kod='+encodeURIComponent(enter_kod)+'&email='+encodeURIComponent(email);
		AJAX_CHAIN2.getAjax(link,add_phone_handler);	
	}
	else 
	{
		document.getElementById('call_error_msg').innerHTML='Заполните, пожалуйста, указанные поля формы!';
	}
}
function add_phone_handler(string)
{ 	
	added_msg.innerHTML = string;
}

function hidePopUps(){
	black_bg.style.display='none';	
	added_msg.style.display='none';	
}

$('document').ready( function () {
	hs.graphicsDir = '../highslide/graphics/';
	hs.align = 'center';
	hs.transitions = ['expand', 'crossfade'];
	hs.outlineType = 'rounded-white';
	hs.wrapperClassName = 'controls-in-heading';
	hs.fadeInOut = true;
	hs.dimmingOpacity = 0.75;
	hs.showCredits = false;
	// Add the controlbar
	if (hs.addSlideshow) hs.addSlideshow({
		//slideshowGroup: 'group1',
		interval: 3000,
		repeat: false,
		useControls: true,
		fixedControls: false,
		overlayOptions: {
			opacity: 1,
			position: 'top right',
			hideOnMouseOut: false
		},
		thumbstrip: {
			position: 'bottom center',
			mode: 'horizontal',
			relativeTo: 'viewport'
		}
	});
});

