function WindowOpener(left,top,width,height)
{
	this.Win=0;

	this.left=left;
	this.top=top;
	this.width=width;
	this.height=height;

    this.ChangeSize = function (width,height)
    {
    	this.width=width;
		this.height=height;

    	this.Win.resizeTo(this.width,this.height);
    }

    this.ChangePos = function (left,top)
    {
    	this.left=left;
		this.top=top;

    	this.Win.moveTo(this.left,this.top);
    }

	this.LoadPage = function (url)
	{
		if(!this.Win || this.Win.closed)
			this.Win=window.open(url, "", "left="+this.left+",top="+this.top+",width="+this.width+",height="+this.height+",scrollbars=1,resizable=1");
		else
		{
			this.Win.location=url;
			this.Win.focus();
		}
	}

	this.Close = function()
	{
     	this.Win.close();
	}
}

var win=new WindowOpener(150,150,1000,600);

/// Начало класса MaxAjax ///

function MaxAjax(dispElement,loadElement)
{
 	this.displayElement = dispElement;
	this.loadingElement = loadElement;
	this.fnLoadComplete = null;

	var Object=this;

	try
	{
		this.RequestObj = new ActiveXObject("Msxml2.XMLHTTP");
	}

	catch(error)
	{
		try
	  	{
	  		this.RequestObj = new ActiveXObject("Microsoft.XMLHTTP");
	  	}
		catch (error)
	  	{
	  		try
	  		{
	  			this.RequestObj = new XMLHttpRequest();
			}
			catch (error)
			{
	  			this.RequestObj = false;
			}
		}
	}

	this.stateChange = function()
	{
		if(Object.RequestObj.readyState == 4)
		{
			Object.RequestAction();
		}
		else
		{
			Object.Loading();
		}
	}

	this.Connect = function(sURL, sVars, sMethod)
	{
		if (!this.RequestObj)
			return false;

		sMethod = sMethod.toUpperCase();

		try
		{
			if (sMethod == "GET")
			{
				this.RequestObj.open(sMethod, sURL+"?"+sVars, true);
				sVars = "";
			}
			else
    		{
     			this.RequestObj.open(sMethod, sURL, true);
        		this.RequestObj.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        		this.RequestObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      		}

			this.RequestObj.onreadystatechange = this.stateChange;

			this.RequestObj.send(sVars);
		}

	    catch(error)
	    {
	    	return false;
	    }

		return true;
	}

	this.RequestAction = function ()
	{
		if (this.RequestObj.readyState == 4)
		{
			if (this.RequestObj.status == 200)
			{
				document.getElementById(this.displayElement).innerHTML = this.RequestObj.responseText;
			}

			document.getElementById(this.loadingElement).style.display = 'none';
		}

		if(this.fnLoadComplete!=0 && this.fnLoadComplete!=undefined && this.fnLoadComplete!=null)
			this.fnLoadComplete();
	}

	this.Loading = function ()
	{
		if (this.RequestObj.readyState != 4)
		{
			document.getElementById(this.loadingElement).style.display = 'block';
		}
	}

	this.Abort = function()
	{
		this.RequestObj.abort();
	}
}

/// Конец класса MaxAjax ///


// Записывает все объекты формы (кроме button и submit) в глобальный массив "FormElements",
// возвращает результат проверки на заполнение всех текстовых полей(true, false)
// Не проверяет поля с id='nocheck'

function CheckFormElements(IdForm)
{
	var Form=document.getElementById(IdForm);
	var AllDataFilled=true;

 	FormElements = new Array();

	for(i=0;i<Form.length;i++)
	{
		if(Form.elements[i].type!="button" && Form.elements[i].type!="submit")
			FormElements.push(Form.elements[i]);

		if(Form.elements[i].type=="text" || Form.elements[i].type=="textarea")
		{
			if(Form.elements[i].id!='nocheck' && Form.elements[i].id!='tis1' && Form.elements[i].id!='tis2' &&
			 	Form.elements[i].id!='tis3' && Form.elements[i].id!='tis4' &&
			 	Form.elements[i].disabled!=true)
				if(Form.elements[i].value.length<1)
					AllDataFilled=false;
		}
	}

	if(!AllDataFilled)
	{
		return false;
	}
	return true;
}

function SendFormData(IdForm,URL)
{
	if(!GetFormElements(IdForm))
	{
		alert('Заполните пожалуйста все поля формы!');
	}

	else
	{
		var stringParam="";

		for(i=0;i<FormElements.length;i++)
		{
			if(FormElements[i].name.length > 0)
				if(FormElements[i].type == "textarea" || FormElements[i].type == "text")
				{
					stringParam = stringParam +
					FormElements[i].name + '=' +
					encodeURIComponent(FormElements[i].value) + '&';
  				}
  		}
  		ajax.Connect(URL,stringParam,"POST");
	}
}

function LoadHeads()
{
	ajaxProdHeads.Connect('product_heads.php','','GET');
}

function SaveUrlAndRedirect()
{
	if(window.location.pathname.length>0)
		setCookie("LocationPathname",window.location.pathname,1);
	else
		setCookie("LocationPathname"," ",1);

	if(window.location.search.length>0)
		setCookie("LocationSearch",window.location.search,1);
	else
		setCookie("LocationSearch"," ",1);

	window.location.replace("./");
}

function LoadContentPage()
{
	if(getCookieValue('LocationPathname')==null)
		setCookie('LocationPathname','about.php',1);

	if(getCookieValue('LocationSearch')==null)
		setCookie('LocationSearch',' ',1);

  	var paramStr=getCookieValue('LocationSearch');

   	paramStr=paramStr.slice(1);

	ajax.Connect(getCookieValue('LocationPathname'),paramStr,'GET');

	setCookie('LocationPathname','',-1);
	setCookie('LocationSearch','',-1);
}

function setCookie(CookieName, CookieValue, expMonth) {
    var cookie = CookieName + "=" + escape(CookieValue) + ";";
    if (expMonth != 0)
    {
        var date = new Date();
        date.setMonth (date.getMonth() + expMonth);
        cookie += "expires=" + date.toUTCString() + ";";
    }
    document.cookie = cookie;
}

function getCookieValue(CookieName)
{
    var cookieValue = document.cookie;
    var regExp = new RegExp ("\\b" + CookieName + "\\b");
    var cookieStart = cookieValue.search(regExp);

    if (cookieStart == -1)
    	cookieValue = null;
    else
    {
        cookieStart = cookieValue.indexOf("=", cookieStart) + 1;
        var cookieEnd = cookieValue.indexOf(";", cookieStart);
        if (cookieEnd == -1)
            cookieEnd = cookieValue.length;
        cookieValue = unescape(cookieValue.substring(cookieStart, cookieEnd));
    }
    return cookieValue;
}

function CheckImageSize(image,maxSize)
{
	var img=new Image();

	img.src=image.src;

	if(img.width>maxSize)
		image.width=maxSize;
	else
		image.width=img.width;

	img.src=0;
}

function GetUserAgent()
{
	var agent = navigator.userAgent;
    if (agent.indexOf ("Opera")!=(-1))
        return "OPERA";
    else if (agent.indexOf ("Gecko")!=(-1))
        return "FF";
    else if (agent.indexOf ("MSIE")!=(-1))
        return "IE";
    else
        return "UNDEFINED";
}

// Система перемещения элемента за указателем мыши //

function Wheel(event)
{
	var delta = 0;

 	if(!event)
		event = window.event;

    if(event.wheelDelta)
    {
    	if (window.opera && GetUserAgent()=="OPERA")
    	{
    		delta = event.wheelDelta / 40;
      		delta = delta;
     	}
     	else
    		delta = event.wheelDelta / 24;
	}
	else if (event.detail && GetUserAgent()=="FF")
		delta = -event.detail;

	if(event.preventDefault)
		event.preventDefault();

	event.returnValue = false;

 	if(delta)
	{
		var realDelta=((delta*10)*-1);
		window.scrollBy(0,realDelta);
		MoveTip(event);
	}
}

function Locate(event)
{
	var posx=0,posy=0;

	if(!event)
		event=window.event;

	if(event.pageX || event.pageY)
	{
		if(event.type=="DOMMouseScroll")
		{
 			posx=(event.screenX+document.body.scrollLeft);
   			posy=(event.screenY+document.body.scrollTop);
   		}
     	else
     	{
   			posx=event.pageX;
   			posy=event.pageY;
   		}
    }
	else if(event.clientX || event.clientY)
	{
    	if(document.scrollTop)
    	{
        	posx=event.clientX+document.scrollLeft;
        	posy=event.clientY+document.scrollTop;
        }
    	else
    	{
        	posx=event.clientX+document.body.scrollLeft;
        	posy=event.clientY+document.body.scrollTop;
        }
    }
    window.status=posx + " " + posy;
	document.getElementById(MovingElement).style.top=(posy+yOffset)+"px";
	document.getElementById(MovingElement).style.left=(posx+xOffset)+"px";
}

function setOpacity(opacity)
{
	element=document.getElementById(MovingElement);
	element.style.filter="alpha(opacity:"+opacity+")";

	opacity/=100;

	element.style.KHTMLOpacity=opacity;
	element.style.MozOpacity=opacity;
	element.style.opacity=opacity;
}

// Конец системы перемещения элемента за указателем мыши //

function copyToClipboard(text)
{
	if(window.clipboardData)
		window.clipboardData.setData('text',text);
	else
		alert('Ваш браузер не позволяет копировать данные в буфер обмена, скопируйте пожалуйста данные вручную!');
}

function pasteFromClipboard(id)
{
	element=document.getElementById(id);

	if(window.clipboardData)
		element.innerHTML=window.clipboardData.getData('text');
	else
		alert('Ваш браузер не позволяет копировать данные в буфер обмена, скопируйте пожалуйста данные вручную!');
}

function replaceLtGt(s)
{
	p = s.indexOf("&lt;",0);
	while(p > 0)
	{
		s = s.substring(0,p) + "<" + s.substring(p+4,s.length-1);
		p = s.indexOf("&lt;",0);
	}

	p = s.indexOf("&gt;",0);
	while(p > 0)
	{
		s = s.substring(0,p) + ">" + s.substring(p+4,s.length-1);
		p = s.indexOf("&lt;",0);
	}

	return s;
}

// Блокирует элемент по параметру id элемента

function LE(id_element)
{	element=document.getElementById(id_element);
	element.disabled=true;
	element.checked=false;
	element.value='';

}

// Разблокирует элемент по параметру id элемента

function UE(id_element)
{
	element=document.getElementById(id_element);
	element.disabled=false;
}

// Задаёт элементу свойство checked=true по параметру id элемента

function CE(id_element)
{
	element=document.getElementById(id_element);
	element.checked=true;

}

// Задаёт элементу свойство checked=false по параметру id элемента

function UCE(id_element)
{	element=document.getElementById(id_element);
	element.checked=false;
}

// Изменяет состояние свойства "disabled" элемента на противоположное по параметру "id_element"

function SCE(id_element)
{
	element=document.getElementById(id_element);

	switch(element.disabled)
	{
		case true: element.disabled=false; break;
		case false:element.disabled=true; break;
	}
}



// Позиционирует элемент id_element_locate по пикселям locateX и locateY.
// IsX=true - позиционирует элемент по X
// IsY=true - позиционирует элемент по Y

function LocateElement(id_element_locate,locateX,locateY,IsX,IsY)
{
	obj_locate=document.getElementById(id_element_locate);

    if(!obj_locate)
    	obj_locate=id_element_locate;

	if(IsX)
	{
		obj_locate.style.left=locateX+"px";
	}

	if(IsY)
	{
		obj_locate.style.top=locateY+"px";
	}
}

// Позиционирует элемент id_element_locate к элементу id_element_locate_to.
// locateLeft=true - позиционирует элемент по X
// locateTop-true - позиционирует элемент по Y

function LocateElementToOtherElement(id_element_locate,id_element_locate_to,locateTop,locateLeft)
{
	obj_locate=document.getElementById(id_element_locate);
	obj_locate_to=document.getElementById(id_element_locate_to);
    if(!obj_locate)
    	obj_locate=id_element_locate;

    if(!obj_locate_to)
    	obj_locate_to=id_element_locate_to;


	if(locateTop)
	{
		arrPos=getPos(obj_locate_to);
		obj_locate.style.top=arrPos[1]+"px";
	}

	if(locateLeft)
	{
		arrPos=getPos(obj_locate_to);
		obj_locate.style.left=arrPos[0]+"px";
	}
}


// findPos  Функция находит позицию элемента x,y

function findPos(obj)
{
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while(obj = obj.offsetParent)
        {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

// getPos  Функция находит позицию элемента x,y (более компактная)

function getPos(obj)
{
	var x=0, y=0;
	while(obj)
	{
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
		obj=obj.offsetParent;
	}
	return [x,y];
}

function preloadImages(imageArray)
{
	for(i=0;i<imageArray.length;i++)
		(new Image()).src=imageArray[i];
}

// Определяет высоту окна в любом браузере

function getWindowHeight()
{
  var windowHeight=0;
  if (typeof(window.innerHeight)=='number') {
    windowHeight=window.innerHeight;
  }
  else {
    if (document.documentElement&&document.documentElement.clientHeight) {
      windowHeight=document.documentElement.clientHeight;
    }
    else {
      if (document.body&&document.body.clientHeight) {
        windowHeight=document.body.clientHeight;
      }
    }
  }
  return windowHeight;
}

function getScrollXY() {
var scrOfX = 0, scrOfY = 0;
if( typeof( window.pageYOffset ) == 'number' ) {
//Netscape compliant
scrOfY = window.pageYOffset;
scrOfX = window.pageXOffset;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
//DOM compliant
scrOfY = document.body.scrollTop;
scrOfX = document.body.scrollLeft;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
//IE6 standards compliant mode
scrOfY = document.documentElement.scrollTop;
scrOfX = document.documentElement.scrollLeft;
}
return [ scrOfX, scrOfY ];
}

// Выводит данные в innerText конкретного элемента
// idObj - id объекта
// data - данные

function setInnerText(idObj,data)
{	if(GetUserAgent()=="FF")
   		document.getElementById(idObj).textContent=data;
   	else
   		document.getElementById(idObj).innerText=data;
}

function getInnerText(idObj)
{
	if(GetUserAgent()=="FF")
   		return document.getElementById(idObj).textContent;
   	else
   		return document.getElementById(idObj).innerText;
}

// Функция создаёт "идущие" часы
// Id - id объекта в который будет выводится время

var IdClockUpdateObject=0;
function Clock(Id)
{	IdClockUpdateObject=Id;
	updateClock (); // начальная установка часов при старте
 	var t = setInterval ("updateClock()", 1000); // периодическое обновление
}

function formatTime (n)
{	return n<10 ? "0"+n : n;
}

function updateClock ()
{
	var d = new Date ();
 	var dateStr = formatTime(d.getHours())+":"+formatTime(d.getMinutes())+":"+formatTime(d.getSeconds());

 	if(GetUserAgent()=="FF")
   		document.getElementById(IdClockUpdateObject).textContent=dateStr;
   	else
   		document.getElementById(IdClockUpdateObject).innerText=dateStr;
}

function GetElement(id_element)
{	return document.getElementById(id_element);
}

function CheckInputSymbolCountAndSubmit(elmentInput,elmentSubmit,limitSymbolCount)
{	if(GetElement(elmentInput).value.length>limitSymbolCount)
	{		GetElement(elmentSubmit).submit();
	}
	else
	{		alert('Введите не меньше четырех символов');
	}
}