function GetSecondsTxt(sSecondsNum) {

	sSecondsNum = String(sSecondsNum);
	var sSecondsText = "секунд";
	var nSecondsNumLength = sSecondsNum.length;
	
	if ( sSecondsNum.charAt(nSecondsNumLength - 2) != "1" )
	{
		if (sSecondsNum.charAt(nSecondsNumLength - 1) == "2" || sSecondsNum.charAt(nSecondsNumLength - 1) == "3" || sSecondsNum.charAt(nSecondsNumLength - 1) == "4"){
			sSecondsText = "секунды";
		}else if (sSecondsNum.charAt(nSecondsNumLength - 1) == "1"){
			sSecondsText = "секунду";
		}
	}
	return sSecondsText;
}

function countDown()
{
	var currentTime = parseInt(document.getElementById('timer').innerHTML);
	
	if( currentTime > 1 ) {
		document.getElementById('timer').innerHTML = currentTime - 1;
		document.getElementById('seconds').innerHTML = GetSecondsTxt(currentTime-1);

    	setTimeout('countDown()',1000);
	}
	else
	{
		document.getElementById('timer').innerHTML = "";
		document.getElementById('seconds').innerHTML = "...";
	}
}

function getWorkspaceSize()
{
	return {
		"x":document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth,
		"y":document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight
	};
}

function getScrollSize()
{
	return {
		"x":self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft),
		"y":self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop)
	};
}

function getElementPosition(oElement)
{
    var w = oElement.offsetWidth;
    var h = oElement.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (oElement)
    {
        l += oElement.offsetLeft;
        t += oElement.offsetTop;
        oElement = oElement.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}

function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }

  return {"x":x, "y":y};
}

var oMenu =
{
	// массив таймеров меню
	aTimers: new Array(),
	
	// время задержки перед отображением меню
	iShowMenuDelayTime: 500,
	
	// исполняется ли в данный момент запрос к серверу
	bProcessing: false,
	
	// div для вывода сообщения на экран
	awaitNotice: false,
	
	// div для вывода сообщения на экран
	divNotice: false,
	
	// время отображения сообщения на экране
	iShowNoticeTime: 3000,
	
	init: function()
	{
		var allElements = document.getElementsByTagName('*');
		
		if ( allElements.length == 0 )
		{
			allElements = document.all;
		}
		
		for ( var i = 0; i < allElements.length; i++ )
		{
			if ( allElements[i].id.length > 0 )
			{
				if ( allElements[i].id.length > 0 )
				{
					this[allElements[i].id] = allElements[i];
				}
			}
		}
		
		this.divNotice = document.createElement('div');
		this.divNotice.style.display = 'none';
		this.divNotice.style.visibility = 'hidden';
		this.divNotice.style.width = '400px';
		this.divNotice.style.padding = '25px';
		this.divNotice.style.backgroundRepeat = 'no-repeat';
		this.divNotice.style.backgroundPosition = '5px 5px';
		this.divNotice.style.fontSize = '12px';
		this.divNotice.style.textAlign = 'center';
		this.divNotice.style.position = 'absolute';
		
		this.awaitNotice = document.createElement('div');
		this.awaitNotice.style.display = 'none';
		this.awaitNotice.style.visibility = 'hidden';
		this.awaitNotice.style.width = '400px';
		this.awaitNotice.style.padding = '25px';
		this.awaitNotice.style.backgroundRepeat = 'no-repeat';
		this.awaitNotice.style.backgroundPosition = '5px 5px';
		this.awaitNotice.style.fontSize = '12px';
		this.awaitNotice.style.textAlign = 'center';
		this.awaitNotice.style.position = 'absolute';
		
		document.body.appendChild(this.awaitNotice);
		document.body.appendChild(this.divNotice);
	},
	
	rubrInit: function()
	{
		this.init();

		for (var i in this )
		{
			if ( i.indexOf('subrubr') != -1 || i.indexOf('lastrubr') != -1 )
			{
				this[i].onmouseover = function(e)
				{
					oMenu.hideAllRubr();
					oMenu.showRubr(parseInt(this.id));
				}
				
				this[i].onmouseout = function(e)
				{
					oMenu.hideRubr(parseInt(this.id));
				}
			}
		}
	},
	
	hideAllRubr: function()
	{
		for (var i in this )
		{
			if ( i.indexOf('lastrubr') != -1 )
			{
				if( typeof this[i] == 'object' )  this[i].style.visibility = 'hidden';
			}
		}
	},
	
	showRubr: function(iMenuId)
	{
		var oLastRubr = this[iMenuId+'lastrubr'];
		var oSubRubr = this[iMenuId+'subrubr'];
		if( typeof oSubRubr != 'object' || typeof oLastRubr != 'object' ) return;

		if ( this.aTimers[iMenuId] != undefined ) clearTimeout(this.aTimers[iMenuId]);
		aLinkPos = getElementPosition(oSubRubr);
		oLastRubr.style.left = (aLinkPos['left'] + aLinkPos['width'] - 25) + 'px';
		oLastRubr.style.top = (aLinkPos['top'] + 5) + 'px';
		oLastRubr.style.visibility = 'visible';
	},
	
	hideRubr: function(iMenuId)
	{
		var oLastRubr = this[iMenuId+'lastrubr'];
		if( typeof oLastRubr != 'object' ) return;

		this.aTimers[iMenuId] = setTimeout
		(
			function()
			{
				oLastRubr.style.visibility = 'hidden';
			},
			this.iShowMenuDelayTime
		);
	},
	
	// выводим сообщение на экран
	showNotice: function(sType, sMessage)
	{
		this.divNotice.className = sType;
		this.divNotice.innerHTML = sMessage;
		this.divNotice.style.display = 'block';
		
		var aWorkSpaceSize = getWorkspaceSize();
		var aScrollSize = getScrollSize();
		
		this.divNotice.style.left = aScrollSize['x']+((aWorkSpaceSize['x'] - this.divNotice.offsetWidth)/2)+'px';
		this.divNotice.style.top = aScrollSize['y']+((aWorkSpaceSize['y'] - this.divNotice.offsetHeight)/2)+'px';		
		
		this.divNotice.style.visibility = 'visible';
		
		setTimeout
		(
		 	function()
			{
				oMenu.divNotice.style.visibility = 'hidden';
			},
			oMenu.iShowNoticeTime
		);
	},
	
	// выводим сообщение на экран
	displayNotice: function(sType, sMessage)
	{
		this.awaitNotice.className = sType;
		this.awaitNotice.innerHTML = sMessage;
		this.awaitNotice.style.display = 'block';
		
		var aWorkSpaceSize = getWorkspaceSize();
		var aScrollSize = getScrollSize();
		
		this.awaitNotice.style.width = '400px';
		
		this.awaitNotice.style.left = aScrollSize['x']+((aWorkSpaceSize['x'] - this.awaitNotice.offsetWidth)/2)+'px';
		this.awaitNotice.style.top = aScrollSize['y']+((aWorkSpaceSize['y'] - this.awaitNotice.offsetHeight)/2)+'px';		
		
		this.awaitNotice.style.visibility = 'visible';
	},
	
	// выводим сообщение на экран
	hideNotice: function()
	{
		this.awaitNotice.style.visibility = 'hidden';
	},
	
	// сообщаем, что в данный момент выполняется соединение
	setProcessing: function(bProcessing)
	{
		this.bProcessing = bProcessing;

		if ( bProcessing )
		{
			this.displayNotice('info', 'Подождите...');
		}
		else
		{
			this.hideNotice();
		}
	},
	
	sendQuestion: function()
	{
		this.sendRequest(this.faqForm, showResponse);
		
		return false;
	},
	
	getRequestBody: function(oForm)
	{
		var aParams = new Array();		
		aParams.push(encodeURIComponent('js')+'='+encodeURIComponent(1));
	
		for ( var i = 0; i < oForm.elements.length; i++ )
		{
			if
			(
				(oForm.elements[i].type != 'radio' && oForm.elements[i].type != 'checkbox')
				||
				(oForm.elements[i].type == 'radio' && oForm.elements[i].checked)
				||
				(oForm.elements[i].type == 'checkbox' && oForm.elements[i].checked)
			)
			{
				aParams.push(encodeURIComponent(oForm.elements[i].name)+'='+encodeURIComponent(oForm.elements[i].value));
			}
		}
	
		return aParams.join('&');
	},
	
	sendRequest: function(oForm, fnCallback)
	{
		if ( this.bProcessing ) return;
		
		try
		{
			this.setProcessing(true);
			var oXmlHttp = zXmlHttp.createRequest();

			oXmlHttp.open('post', oForm.action, true);
			oXmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			
			oXmlHttp.onreadystatechange = function()
			{
				try
				{
					if ( oXmlHttp.readyState == 4 )
					{
						if ( oXmlHttp.status == 200 )
						{
							fnCallback(oXmlHttp.responseText);
							oMenu.setProcessing(false);
						}
						else
						{
							throw new Error('Ошибка соединения с сервером. Запрос: '+sAction);
						}
					}
				}
				catch ( oException )
				{
					oMenu.setProcessing(false);
					oMenu.showNotice('err', oException.message);
				}
			}
			oXmlHttp.send(this.getRequestBody(oForm));
		}
		catch ( oException )
		{
			oMenu.setProcessing(false);
			oMenu.showNotice('err', oException.message);
		}
	},
	
	addToBasket: function(oForm)
	{
		this.sendRequest(oForm, showResponse);
		
		return false;
	},
	
	calculateOrder: function(oForm)
	{
		this.sendRequest(oForm, showItems);
		
		return false;
	},
	
	completeOrder: function(oForm)
	{
		this.sendRequest(oForm, showResponse);
		
		return false;		
	}
}

function showResponse(sResponseText)
{
	if ( sResponseText == -1 )
	{
		oMenu.showNotice('info', '<font color="#FF0000"><b>Корзина пуста!</b></font><br />\nПожалуйста, подождите...');
		setTimeout(function(){location.replace('/');}, oMenu.iShowNoticeTime);
		
		return false;
	}

	if ( sResponseText == -2 )
	{
		oMenu.showNotice('info', '<b>Ваш заказ принят</b>.<br />\nПожалуйста, подождите...');
		setTimeout(function(){location.replace('/');}, oMenu.iShowNoticeTime);
		
		return false;
	}
	
	oMenu.showNotice('info', sResponseText);
	
	return false;
}

function showItems(sResponseText)
{
	var aItems = eval(sResponseText);
	var oForm = oMenu.basketForm;
	var dTotalPrice = 0.00;

	if ( aItems == -1 )
	{
		oMenu.showNotice('info', '<font color="#FF0000"><b>Корзина пуста!</b></font><br />\nПожалуйста, подождите...');
		setTimeout(function(){location.replace('/');}, oMenu.iShowNoticeTime);
		
		return false;
	}
	
	if ( oForm['item[]'].length == undefined )
	{
		for (var i=0; i<aItems.length; i++)
		{
			if ( aItems[i]['id'] == oForm['item[]'].value )
			{
				oForm['amount['+oForm['item[]'].value+']'].value = aItems[i]['amount'];
				oMenu['price'+oForm['item[]'].value].innerHTML = Math.round(aItems[i]['price']*aItems[i]['amount']*100)/100;
				oMenu.totalPrice.innerHTML = oMenu['price'+oForm['item[]'].value].innerHTML;
			}
		}
	}
	else
	{
		var aDelItems = new Array();

		for (var i=0; i<oForm['item[]'].length; i++)
		{
			aDelItems[i] = oForm['item[]'][i].value;
			for (var j=0; j<aItems.length; j++)
			{
				if ( aItems[j]['id'] == oForm['item[]'][i].value )
				{
					aDelItems[i] = 0;
					oForm['amount['+oForm['item[]'][i].value+']'].value = aItems[j]['amount'];
					oMenu['price'+oForm['item[]'][i].value].innerHTML = Math.round(aItems[j]['price']*aItems[j]['amount']*100)/100;
					dTotalPrice += Math.round(aItems[j]['price']*aItems[j]['amount']*100)/100;
				}
			}
		}

		for (var y=0; y<aDelItems.length; y++)
		{
			for ( var x=0; x<oMenu.basketTable.rows.length; x++ )
			{
				if (oMenu.basketTable.rows[x].id == 'item'+aDelItems[y] ) oMenu.basketTable.deleteRow(x);
			}
		}

		oMenu.totalPrice.innerHTML = Math.round(dTotalPrice*100)/100;
	}
	
	return false;

}



var aCenterImages = new Array();
var iOffset = 20;

function imgDescInit()
{
	var aAllImages = document.images;
	
	iImageCounter = 0;
	
	for ( var i = 0; i < aAllImages.length; i++ )
	{
		if ( aAllImages[i].id.indexOf('piece') != -1 )
		{
			aAllImages[i].onclick = function()
			{
				if ( typeof aCenterImages[parseInt(this.id)] != 'object' )
				{
					aCenterImages[parseInt(this.id)] = new Image();
				
					var oReg = /\?name=([0-9a-zA-Z]+)/;
					var aReg = oReg.exec(this.src);

					aCenterImages[parseInt(this.id)].src = '/JpgImg.php?name='+aReg[1]+'.gif'
					+'&width='+400
					+'&height='+400
					+'&rand=0';
					
					aCenterImages[parseInt(this.id)].isLoaded = false;
				}
				
				
				var aWorkSpaceSize = getWorkspaceSize();
				var aScrollSize = getScrollSize();

				oDisplay.style.left = aScrollSize['x']+((aWorkSpaceSize['x'] - 200)/2)+'px';
				oDisplay.style.top = aScrollSize['y']+((aWorkSpaceSize['y'] - 30)/2)+'px';
				oDisplay.style.width = '200px';
				oDisplay.style.height = '30px';
				oDisplay.style.padding = '19px';
				oDisplay.innerHTML = 'Подождите...';
				oDisplay.style.display = 'block';
				oDisplay.style.visibility = 'visible';
	
				oClose = document.createElement('div');
				oClose.className = 'imgClose';
				oClose.innerHTML = 'закрыть';
				oClose.id = parseInt(this.id)+'close';

				aCenterImages[parseInt(this.id)].onload = function()
				{
					showCenterImage(this);					
					this.isLoaded = true;
				}
				
				if ( aCenterImages[parseInt(this.id)].isLoaded )
				{
					showCenterImage(aCenterImages[parseInt(this.id)]);
				}

				oClose.onclick = function ()
				{
					oDisplay.style.visibility = 'hidden';
				}
			}
		}
		iImageCounter++;
	}
}

function showCenterImage(oImage)
{
	oDisplay.innerHTML = '';
				
	var aWorkSpaceSize = getWorkspaceSize();
	var aScrollSize = getScrollSize();
					
	oDisplay.style.left = aScrollSize['x'] + (aWorkSpaceSize['x'] - oImage.width)/2+'px';
	oDisplay.style.top = aScrollSize['y'] + (aWorkSpaceSize['y'] - oImage.height)/2+'px';
		
	oDisplay.style.width = oImage.width+'px';
	oDisplay.style.height = oImage.height+'px';		
	oDisplay.style.padding = '0px';
		
	oDisplay.innerHTML = '<img src="'+oImage.src+'" width="'+oImage.width+'" height="'+oImage.height+'" />';
	oDisplay.appendChild(oClose);
}


window.onload = function()
{
	theObjects = document.getElementsByTagName("object");
	for (var i = 0; i < theObjects.length; i++)
	{
		theObjects[i].outerHTML = theObjects[i].outerHTML;
	}
	
	oDisplay = document.createElement('div');
	oDisplay.className = 'imgDisplay';
	document.body.appendChild(oDisplay);
	
	imgDescInit();
	
	oMenu.rubrInit();
}

