var _currentXmlSocket = null;

var TimeContainer = document.getElementById("time_container");

var InitialTitle = getInitialTitle();

$("#tongue").click(function (e) {
	var language = 0;
	
	var activeNext = $("p.language span.active").next("p.language span");
	if (activeNext.length == 0){
		activeNext =  $("p.language span:first");
	}
	activeNext.click();
});


function getInitialTitle()
{
	var ret = '';
	if (document.title)
	{
		ret = document.title;
		ret = ret.substring (0, ret.indexOf ('('));
	}
	return ret;
}

function SetLanguage (select)
{
	var language = select.options[select.options.selectedIndex].value;
	SetCookie ('tongue', language);

	UpdateTime();
}

function ForceLanguage (who, which)
{
	var language = which;
	for (var c = 1; c <= 25; c++)
	{
		var tab = document.getElementById('lang' + c);
		if (!tab) break;
		tab.className = who == tab ? 'active' : 'inactive';
	}
	SetCookie('tongue', language);

	UpdateTime();
}

function SetCookie (name, value, days)
{
	var today = new Date();
	var expire = new Date();
	if (!days) days = 365;
	expire.setTime(today.getTime() + 3600000 * 24 * days);
	document.cookie = name + '=' + value + ";expires=" + expire.toGMTString();
}

function UpdateTime()
{
	var xmlSocket = new XmlSocket();
	_currentXmlSocket = xmlSocket;

	if (!xmlSocket) return;

	var date = new Date();
	var fTimezoneOffset = -date.getTimezoneOffset()/60;
	xmlSocket.go('?Ajax=1&double=1&r=' + Math.random() + '&offset=' + fTimezoneOffset, UpdateTimeCallBack);
}

function UpdateTimeRussian()
{
	var xmlSocket = new XmlSocket();
	_currentXmlSocket = xmlSocket;

	if (!xmlSocket) return;

	var date = new Date();
	var fTimezoneOffset = -date.getTimezoneOffset()/60;
	xmlSocket.go('?Ajax=1&r=' + Math.random() + '&offset=' + fTimezoneOffset, UpdateTimeCallBack);
}

function UpdateTimeCallBack(xmlSocket)
{
	var VerbariumDisplay = document.getElementById('VerbariumDisplay');
	if (!VerbariumDisplay) return;
	VerbariumDisplay.parentNode.innerHTML = xmlSocket.responseText;

	var TitleString = document.getElementById('TitleString');
	if (TitleString)document.title = InitialTitle + '(' + TitleString.innerHTML + ')';

	TimeContainer.className = "";
}

function XmlSocket()
{
	this.xmlSocket = window.ActiveXObject ? new ActiveXObject ("Microsoft.XMLHTTP") : (window.XMLHttpRequest ? new XMLHttpRequest() : null);

	return this.xmlSocket ? this : null;
}

XmlSocket.prototype.go = function (url, callback)
{
	if (this.xmlSocket)
	{
		_currentXmlSocket = this;
		this.xmlSocket.onreadystatechange = _xmlSocketStateChanged;
		this.action = callback;

		this.xmlSocket.open ("GET", url, true);
		this.xmlSocket.send (null);
	}
}

function _xmlSocketStateChanged()
{
	if (_currentXmlSocket.xmlSocket && _currentXmlSocket.xmlSocket.readyState == 4 && _currentXmlSocket.xmlSocket.status == 200)
	{
		_currentXmlSocket.action (_currentXmlSocket.xmlSocket);
		_currentXmlSocket = null;
	}
}

