function GetSecondsTxt(sSecondsNum) {

	sSecondsNum = String(sSecondsNum);
	var sSecondsText = "seconds";
	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 = "seconds";
		}else if (sSecondsNum.charAt(nSecondsNumLength - 1) == "1"){
			sSecondsText = "second";
		}
	}
	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 =
{
	// исполняется ли в данный момент запрос к серверу
	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);
	},
	
	// выводим сообщение на экран
	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', 'Wait...');
		}
		else
		{
			this.hideNotice();
		}
	},
	
	sendQuestion: function()
	{
		this.sendRequest(this.faqForm, showResponse);
		
		return false;
	},
	
	sendProgramQuery: function()
	{
		this.sendRequest(this.progForm, showResponse);
		
		return false;
	},
	
	sendPressQuery: function()
	{
		if
		(
		 	selectedYear != this.pressForm.year.options[this.pressForm.year.selectedIndex].value
			||
			selectedMonth != this.pressForm.month.options[this.pressForm.month.selectedIndex].value
		)
		{
			this.sendRequest(this.pressForm, showPressResponse);
		}
		
		return false;
	},
	
	sendPartQuery: function()
	{
		if
		(
		 	selectedCountry != oMenu.partForm.country.options[oMenu.partForm.country.selectedIndex].value
			||
			selectedRegion != oMenu.partForm.region.options[oMenu.partForm.region.selectedIndex].value
		)
		{
			this.sendRequest(this.partForm, showPartResponse);
		}
		
		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('Connect error. Query: '+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);
		}
	}
}

function showResponse(sResponseText)
{
	if ( sResponseText == -1 )
	{
		oMenu.showNotice('info', '<font color="#FF0000"><b>!!!!</b></font><br />\nPlease, wait...');
		setTimeout(function(){location.replace('/');}, oMenu.iShowNoticeTime);
		
		return false;
	}
	
	oMenu.showNotice('info', sResponseText);
	
	return false;
}

function showPressResponse(sResponseText)
{
	arrResponse = eval(sResponseText);
	
	if ( selectedYear != oMenu.pressForm.year.options[oMenu.pressForm.year.selectedIndex].value )
	{
		months = arrResponse[1];
		
		for (var i=oMenu.pressForm.month.options.length-1; i >= 0; i--)
		{
			oMenu.pressForm.month.remove(i);
		}
		
		for ( var j=0; j<months.length; j++ )
		{
			oOption = document.createElement("option");
			oOption.appendChild(document.createTextNode(ruMonths[(months[j]-1)]));
			oOption.setAttribute("value", months[j]);
			
			oMenu.pressForm.month.appendChild(oOption);
		}
		
		selectedYear = oMenu.pressForm.year.options[oMenu.pressForm.year.selectedIndex].value;
		
		articles = arrResponse[2];
		links = '';
		for ( var x=0; x<articles.length; x++ )
		{
			links += '<a href="piece'+arrResponse[0]+'page'+articles[x].id+'.php">'+articles[x].date+': '+articles[x].name+'</a>\n';
		}
		
		oMenu.pressArticles.innerHTML = links;
		
		selectedMonth = oMenu.pressForm.month.options[oMenu.pressForm.month.selectedIndex].value;
		oMenu.pressForm.showArticles.style.visibility = 'hidden';
	}
	else if ( selectedMonth != oMenu.pressForm.month.options[oMenu.pressForm.month.selectedIndex].value )
	{
		articles = arrResponse[2];
		links = '';
		for ( var x=0; x<articles.length; x++ )
		{
			links += '<a href="piece'+arrResponse[0]+'page'+articles[x].id+'.php">'+articles[x].date+' '+selectedYear+': '+articles[x].name+'</a>\n';
		}
		
		oMenu.pressArticles.innerHTML = links;
		
		selectedMonth = oMenu.pressForm.month.options[oMenu.pressForm.month.selectedIndex].value;
		oMenu.pressForm.showArticles.style.visibility = 'hidden';
	}

	return false;
}

function showPartResponse(sResponseText)
{
	arrResponse = eval(sResponseText);
	
	regions = arrResponse[0];
	partners = arrResponse[1];
	
	if ( selectedCountry != oMenu.partForm.country.options[oMenu.partForm.country.selectedIndex].value )
	{
		for (var i=oMenu.partForm.region.options.length-1; i >= 0; i--)
		{
			oMenu.partForm.region.remove(i);
		}
		
		for ( var j=0; j<regions.length; j++ )
		{
			oOption = document.createElement("option");
			oOption.appendChild(document.createTextNode(regions[j].name));
			oOption.setAttribute("value", regions[j].id);
			
			oMenu.partForm.region.appendChild(oOption);
		}
		
		selectedCountry = oMenu.partForm.country.options[oMenu.partForm.country.selectedIndex].value;
		
		oMenu.displayPartners.innerHTML = '';
		for ( var x=0; x<partners.length; x++ )
		{
			oDiv = document.createElement("div");
			oDiv.innerHTML = '<h4>'+partners[x].name+'</h4>\n'+partners[x].text;
			oMenu.displayPartners.appendChild(oDiv);
		}
		
		selectedRegion = oMenu.partForm.region.options[oMenu.partForm.region.selectedIndex].value;
		oMenu.partForm.showPartners.style.visibility = 'hidden';
	}
	else if ( selectedRegion != oMenu.partForm.region.options[oMenu.partForm.region.selectedIndex].value )
	{
		oMenu.displayPartners.innerHTML = '';
		for ( var x=0; x<partners.length; x++ )
		{
			oDiv = document.createElement("div");
			oDiv.innerHTML = '<h4>'+partners[x].name+'</h4>\n'+partners[x].text;
			oMenu.displayPartners.appendChild(oDiv);
		}
		
		selectedRegion = oMenu.partForm.region.options[oMenu.partForm.region.selectedIndex].value;
		oMenu.partForm.showPartners.style.visibility = 'hidden';
	}

	return false;
}

window.onload = function()
{
	theObjects = document.getElementsByTagName("object");
	for (var i = 0; i < theObjects.length; i++)
	{
		theObjects[i].outerHTML = theObjects[i].outerHTML;
	}
	
	oMenu.init();
}


