function OpenWindow(url)
{	window.open(url, "", "width=800, height=600, scrollbars=1, resizable=1");
}

function preloadMenuImage(imageArray)
{	for(i=0;i<imageArray.length;i++)
		(new Image()).src=imageArray[i];
}

function switchimg(id)
{	var aboutimg = document.getElementById("aboutimg");
	var prodimg = document.getElementById("prodimg");
	var orderimg = document.getElementById("orderimg");
	var contactimg = document.getElementById("contactimg");

 	preloadMenuImage(menuImages);

	switch(id)
	{
		case aboutimg.id:
		{			aboutimg.src="./img/about_w.jpg";
			prodimg.src="./img/product_gw.jpg";
			orderimg.src="./img/order_g.jpg";
			contactimg.src="./img/contacts_g.jpg";
			break;
		}

		case prodimg.id:
		{			aboutimg.src="./img/about_g.jpg";
			prodimg.src="./img/product_w.jpg";
			orderimg.src="./img/order_gw.jpg";
			contactimg.src="./img/contacts_g.jpg";			break;
		}

		case orderimg.id:
		{			aboutimg.src="./img/about_g.jpg";
			prodimg.src="./img/product_g.jpg";
			orderimg.src="./img/order_w.jpg";
			contactimg.src="./img/contacts_gw.jpg";			break;
		}

		case contactimg.id:
		{			aboutimg.src="./img/about_g.jpg";
			prodimg.src="./img/product_g.jpg";
			orderimg.src="./img/order_g.jpg";
			contactimg.src="./img/contacts_w.jpg";			break;
		}

		default: break;
	}
}

/// Начало класса 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)

function GetFormElements(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].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');
}

var ajax = new MaxAjax("responseHTML","loading");
ajax.fnLoadComplete=LoadHeads;

var ajaxProdHeads = new MaxAjax("prodHeads","loading");

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;
}

// Определяет браузер клиента
// MS Internet Explorer : IE
// Opera : Opera
// Mozilla FireFox : FF
// Неопределён : UNDERFINED

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";
}

// Система перемещения элемента за указателем мыши
// Инициализация

// document.body.clientHeight - высота блока без учета скроллинга
// document.body.scrollHeight - высота блока с учетом скроллинга
// document.body.scrollTop - смещение текущей позиции по вертикали относительно верхней границы блока


if(window.addEventListener)
	window.addEventListener('DOMMouseScroll', Wheel, false);

window.onmousewheel = document.onmousewheel = Wheel;
window.onmousemove = document.onmousemove = Locate;

var MovingElement="loading";

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);
		Locate(event);
	}
}

function Locate(event)
{
	var posx=0,posy=0;

	if(!event)
		event=window.event;

	if(event.pageX || event.pageY)
	{
 		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;
        }
    }

	document.getElementById(MovingElement).style.top=(posy+15)+"px";
	document.getElementById(MovingElement).style.left=(posx+15)+"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;
}

menuImages=new Array();

menuImages.push("./img/about_w.jpg");
menuImages.push("./img/about_g.jpg");
menuImages.push("./img/order_g.jpg");
menuImages.push("./img/order_gw.jpg");
menuImages.push("./img/order_w.jpg");
menuImages.push("./img/product_g.jpg");
menuImages.push("./img/product_gw.jpg");
menuImages.push("./img/product_w.jpg");
menuImages.push("./img/contacts_g.jpg");
menuImages.push("./img/contacts_gw.jpg");
menuImages.push("./img/contacts_w.jpg");

preloadMenuImage(menuImages);
