var psCurrentWindowSrc;
//resize popUp окна для схемы проезда 
function psPopImg2(obj)
{
	
				var new_chema = window.open(obj.href, "", "resizable=1,HEIGHT=200,WIDTH=200,scrollbar=1");
				with(new_chema.document)
				{
					open();
					write('<ht'+'ml><he'+'ad><ti'+'tle>Схема проезда</ti'+'tle><sc'+'ript language="javascript">function fitPic(){iWidth = document.body.clientWidth;iHeight = document.body.clientHeight;iWidth = document.images[0].width - iWidth;iHeight = document.images[0].height - iHeight;window.resizeBy(iWidth, iHeight-1);var sw=(document.body.clientWidth-iWidth)/2;var sh=(document.body.clientHeight-iHeight)/2;if (sh<0) sh=0; if (sw<0) sw=0;window.moveTo(sw,sh);self.focus();}</scr'+'ipt></he'+'ad><bo'+'dy onload="fitPic();" style="margin:0;padding:0;"><img src="'+obj.href+'" border="0" '+' alt="Схема проезда" title="Схема проезда" /></bo'+'dy></ht'+'ml>');
					close();
				}
			
  return false;	
}
// - Корзина --------------------------------------------

function psAddToCart(obj)
{
	var reqMain = new JsHttpRequest();
	reqMain.caching = false;
	reqMain.open('GET',obj.href,true);
	var sdata = Array();
	sdata['ajax'] = '1';
	reqMain.send(sdata);
	obj.innerHTML = '<img src="'+psIMG+'_tpl_loader_small.gif" />';	
	reqMain.onreadystatechange = function(){
		if (reqMain.readyState == 4){
			if (reqMain.responseJS){
				obj.innerHTML = reqMain.responseJS.msg;
//			a.innerHTML = reqMain.responseJS.count; - счетчик товаров в корзине
				obj.href = '/cart.html';
				obj.onclick = function(){};
			}
		}
	}
	return false;	
}





// - Windows --------------------------------------------
var currentWindow;

function psPopImg(obj) {
	psLoadingOn();
	i = new Image();
	i.style.cursor = 'pointer';
	i.title='Закрыть';
	
	
	i.onload = function(){
		objWindow =	psCreateDiv('psWindow');
		objWindow.style.position = 'absolute';
		objWindow.style.zIndex = 1100;

		objWindow.innerHTML='<div class="popup-img"><div class="top"><a onclick="return psClosePopUp();" href="#">Закрыть</a></div><div class="body" id="psWindowBody"></div></div>';
		document.getElementById("psWindowBody").appendChild(i);

		psLoadingOff();
		psPosionPopUp(objWindow);		
		psAddHandler(document, 'mousedown', psClosePopUp);		
	}	
	

//	i.onclick = function(){
//		psClosePopUp();		
//	}
	i.src = obj.href;
	return false;
}



function psOpenInPopUp(idName,url){
	closeBackGround();

	objWindow =	psCreateDiv('psWindow');
	objWindow.style.position='absolute';
	objWindow.style.zIndex=1100;
	objSrc = document.getElementById(idName);

	if(url){
		psLoadingOn();
		psCurrentWindowSrc = '';		
		currentWindow = url;		
		reqMain = new JsHttpRequest();
		reqMain.caching = false;
		reqMain.open('GET',url,true);
		var sdata = Array();
		sdata['cmd'] = 'sendlink';
		reqMain.send(sdata);	
		reqMain.onreadystatechange = function(){
			if (reqMain.readyState == 4){
				if (reqMain.responseJS){
					psLoadingOff();							
					PageContent = reqMain.responseJS.PageContent;
					objWindow.innerHTML = PageContent;
					psPosionPopUp(objWindow);
				}
			}
		}		
	}else{
		objWindow.innerHTML = objSrc.innerHTML;
		objSrc.innerHTML = '';	
		psCurrentWindowSrc = idName
		psPosionPopUp(objWindow);
	}
	psAddHandler(document, 'mousedown', psClosePopUp);
	objWindow.onmousedown = function(event){psCancelBubbling(event);}

	return false;
}

function psOpenFloatPopUp(a,evt,idName,url)
{
	if (gebi('psWindow')!= null){
		psClosePopUp();
		return false;		
	}
	
	psAddHandler(document.body, 'mousedown', psClosePopUp);
	
	psCancelBubbling(evt);
//	alert(document.getElementById('psWindow'));
	obj = psCreateDiv('psWindow');
	obj.className = 'psUserInfoBox';
	psMoveContent('psUserInfoBox','psWindow');
	obj.style.top = (psAbsPosition(a).y+a.offsetHeight) + 'px';
	obj.style.left = psAbsPosition(a).x + 'px';
	
	obj.onmousedown = function(event){
		psCancelBubbling(event);
	}
//	alert(a.offsetHeight);

	return false;
}


function psClosePopUp(){
	if (document.getElementById(psCurrentWindowSrc))
	 document.getElementById(psCurrentWindowSrc).innerHTML = document.getElementById('psWindow').innerHTML;	
	psDeleteObj('psWindow');
	psDeleteObj('closeFonId');
	psShowSelects();
	psLoadingOff()	
	psRemoveHandler(document, 'mousedown', psClosePopUp);		
//	document.body.style.overflowX="auto";	
	return false;	
}

function closeBackGround(){
	psHideSelects();
	if (document.getElementById('closeFonId'))
		return false;
		
	obj = psCreateDiv('closeFonId');
	obj.className='psCloseBackGround';
	obj.style.height=psGetPageSize()[1]+'px';
	obj.style.width=psGetPageSize()[0]+'px';	
//	document.body.style.overflowX="hidden";
}

function psPosionPopUp(obj){
	var objTop=(((psGetPageSize()[3]-obj.offsetHeight)/2)+psGetPageScroll());
	var objLeft=((psGetPageSize()[0]-obj.offsetWidth)/2);
	obj.style.top = (objTop<=0)?'0px':objTop+'px';
	obj.style.left = (objLeft<=0)?'0px':objLeft+'px';	
}

function psLoadingOn(){
	closeBackGround();
	objLoader = psCreateDiv('psLoader');
	objLoader.innerHTML = 'Загрузка';
	psPosionPopUp(objLoader);
}

function psLoadingOff()
{
	psDeleteObj('psLoader');
}

// - Windows --------------------------------------------


// - ToolTips Functions --------------------------------------------

function psDrawTooltips(){
	var tags = Array('a','span','img');	
	psCreateDiv('psTooltip')	
	for (var i = 0; i < tags.length; i++){
		el = document.getElementsByTagName(tags[i]);
		for (var e = 0; e < el.length; e++){
			if (el[e].getAttribute('psTitle'))
				psCreateTooltip(el[e])
//			tagTitle = ;				
		}
	}
}

function psCreateTooltip(obj){
	
	obj.psTitle = obj.title;
	obj.title = '';	

	obj.onmouseover = function(){
		 obj.psShowTooltip();
	}

	obj.onmouseout = function(){
		obj.Tooltip.style.left = '-1000px';
		obj.Tooltip.style.top = '-1000px';
	}
	
	obj.onmousemove = function(e){
		obj.Tooltip.style.left = psMouse.x + 10 + 'px'; //((psBW.ns4 || psBW.ns6)?e.pageX:event.clientX + psBW.ieTrueBody().scrollLeft)+ 10 + 'px';
		obj.Tooltip.style.top = psMouse.y + 10 + 'px';//((psBW.ns4 || psBW.ns6)?e.pageY:event.clientY + psBW.ieTrueBody().scrollTop) + 10 + 'px';		
	}
	
	obj.psShowTooltip = function()
	{
		obj.Tooltip = document.getElementById('psTooltip');
		obj.Tooltip.innerHTML = obj.psTitle;		
	}
	
	obj.psHideTooltip = function(){
		psDeleteObj('psTooltip');	
	}
}

function psDeleteTooltip(obj){
	
	
}
// - ToolTips Functions --------------------------------------------

// - Base Functions --------------------------------------------
function psPrint(obj)
{
  popupWin = window.open(obj.href, '', 'width=700,height=600,toolbar=no,menubar=yes,location=no,status=yes,resizable=yes,scrollbars=yes,left=50,top=50');
  popupWin.focus();
  return false;	
}

// Прелоад картинки
function psPreloadImg(url){
	var psImg = new Image();
	psImg.src = url;	
}
// Создание дива
function psCreateDiv(idName){
	var obj = document.createElement('div');
	document.getElementsByTagName("body")[0].appendChild(obj);
	obj.id=idName;
	return document.getElementById(idName);
}
// Удаление объекта
function psDeleteObj(idName){
	if (document.getElementById(idName))
		document.body.removeChild(document.getElementById(idName));	
}

// Определение позиции
function psAbsPosition(obj) {
	this.x = 0;
	this.y = 0;
    while(obj) {
		this.x += obj.offsetLeft;
		this.y += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return {x:this.x,y:this.y};
}
// Скрытие селектов
function psHideSelects()
{
	var sel = document.getElementsByTagName('select');
	for(var i=0; i<sel.length;i++)
		if (sel[i].style.display!='none')
		{
			sel[i].wasClosed = true;			
			sel[i].lastDisplay = sel[i].style.display;
			sel[i].style.display = 'none';
		}
}
// отображение селектов
function psShowSelects()
{
	var sel = document.getElementsByTagName('select');
	for(var i=0; i<sel.length;i++)
		if (sel[i].wasClosed)
		{
			sel[i].wasClosed = false;
			sel[i].style.display = sel[i].lastDisplay;
		}
}


// Добавление событий
function psAddHandler(object, event, handler, useCapture) {
      if (object.addEventListener) {
            object.addEventListener(event, handler, useCapture ? useCapture : false);
      } else if (object.attachEvent) {
            object.attachEvent('on' + event, handler);
      } else alert("Add handler is not supported");
}

// Удаление событий
function psRemoveHandler(object, event, handler) {
	if (object.removeEventListener) {
		object.removeEventListener(event, handler, false);
	} else if (object.detachEvent) {
		object.detachEvent('on' + event, handler);
	} else alert("Remove Handler is not supported");
}

// Предотвращение всплывания событий
function psCancelBubbling(evt) {
      evt = evt || window.event;
      evt.cancelBubble = true;
}

function psClearSelect(sel)
{
	while (sel.childNodes.length) {
		if (sel.firstChild.tagName == 'OPTGROUP') {
			while (sel.firstChild.childNodes.length) {
				sel.firstChild.removeChild(sel.firstChild.firstChild);
			}
		}
		sel.removeChild(sel.firstChild);
	}
}


function psGetPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function psGetPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	return yScroll;
}

//--------------------------------------------------------------------------
// Browser Check
//--------------------------------------------------------------------------
function LibBWCheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	this.ieTrueBody = function(){
		return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}
	
	return this
}
//--------------------------------------------------------------------------
// Mouse
//--------------------------------------------------------------------------
function _psMouse(){
	this.move = function(e){
		psMouse.x=(psBW.ns4 || psBW.ns6)?e.pageX:event.clientX + psBW.ieTrueBody().scrollLeft;
		psMouse.y=(psBW.ns4 || psBW.ns6)?e.pageY:event.clientY + psBW.ieTrueBody().scrollTop;
	}
}
//--------------------------------------------------------------------------


// - Base Functions --------------------------------------------












