var menuTimer;
var menuTimerS;

var screenWidth = screen.width;
var screenHeight = screen.height;

if(screenWidth && screenHeight) {
	Cookie.write('screenWidth', screenWidth, {duration: 365});
	Cookie.write('screenHeight', screenHeight, {duration: 365});
}

function ajaxHandler(
	ajaxObject,
	ajaxCallBackFunction,
	params,
	callObject,
	ajaxCallBackErrorFunction){
	// only if req shows "complete"
	if (ajaxObject.readyState == 4) {
		// only if "OK"
		if (ajaxObject.status == 200) {
		// ...processing statements go here...
			ajaxCallBackFunction.call(callObject, ajaxObject, params);
		} else {
			if(ajaxCallBackErrorFunction){
				ajaxCallBackErrorFunction.call(callObject, ajaxObject);	
			} else {
				logger("",("Возникла ошибка в получении XML данных:<br />" + ajaxObject.statusText), true, 'error');
			}
		}
	}
}

function ajaxLoadPost(url, data, ajaxCallBackFunction, callObject, params, ajaxCallBackErrorFunction) {
	var ajaxObject = null;

	if (window.XMLHttpRequest) {
		ajaxObject = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(ajaxObject){
		ajaxObject.onreadystatechange = function(){
			ajaxLoadHandler(ajaxObject, ajaxCallBackFunction, callObject, params, ajaxCallBackErrorFunction);
		}
		ajaxObject.open("POST", url, true);
		ajaxObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxObject.setRequestHeader("Content-length", data.length);
		ajaxObject.setRequestHeader("Connection", "close");
		ajaxObject.send(data);
	}
}

function ajaxLoadHandler(ajaxObject, ajaxCallBackFunction, callObject, params, ajaxCallBackErrorFunction){
	// only if req shows "complete"
	if (ajaxObject.readyState == 4) {
		// only if "OK"
		if (ajaxObject.status == 200) {
			// ...processing statements go here...
			ajaxCallBackFunction.call(callObject, ajaxObject, params);
		} else {
			if(ajaxCallBackErrorFunction){
				ajaxCallBackErrorFunction.call(callObject, ajaxObject);	
			} else {
				logger("",("Возникла ошибка в получении XML данных:<br />" + ajaxObject.statusText), true, 'error');
			}
		}
	}
}

function TimestampToHuman(TmSt, nowTime, DateOnly){
	if(nowTime) var Today = new Date(nowTime * 1000); else Today = new Date();
	var theDate = new Date(TmSt * 1000);
	var Month = new Array(12);
	var FH;
	var FM;
	var Result = "";

	Month[0] = "января"; Month[1] = "февраля"; Month[2] = "марта"; Month[3] = "апреля"; Month[4] = "мая"; Month[5] = "июня"; Month[6] = "июля"; Month[7] = "августа"; Month[8] = "сентября"; Month[9] = "октября"; Month[10] = "ноября"; Month[11] = "декабря";

	if(theDate.getHours().toString().length == 1) {
		FH = "0" + theDate.getHours();
	} else {
		FH = theDate.getHours();
	}

	if(theDate.getMinutes().toString().length == 1) {
		FM = "0" + theDate.getMinutes();
	} else {
		FM = theDate.getMinutes();
	}

	if(Today.getDate() != theDate.getDate() || Today.getMonth() != theDate.getMonth() || Today.getFullYear() != theDate.getFullYear()) {
		Result = theDate.getDate() + " " + Month[theDate.getMonth()];
	}

	if(Today.getFullYear() != theDate.getFullYear()) {
		Result += " " + theDate.getFullYear();
	}

	if(!DateOnly) {
		if(Result) Result += ", ";
		Result += "в " + FH + ":" + FM;
	}

	return Result;
}

function jsonToObject(jsonData) {
	try {
		json = eval('(' + jsonData + ')');
		return json;
	} catch(err) {
		logger(err);
		return false;
	}
}

function logger(message) {
	var myLog = new Log;
	myLog.log(message);
}

function debugOutput(data) {
	var debugWindow = window.open('','Окно отладки','width=700,height=400,scrollbars=yes');
	data = '<html><head><title>Отладка</title></head><body>' + data + '</body></html>';
	debugWindow.document.write(data);
}

function checkEmail(email) { return email.match(/^[a-z0-9][a-z0-9_.-]*@[a-z0-9_.-]+\.[a-z]{2,7}$/i); }

function shMenu(alias) {
	if(alias) {
		if(menuTimer) clearTimeout(menuTimer);

		menuTimerS = setTimeout(function() { 
			$$('#subMenuHolder div.menu').addClass('hidden');
			if($('m_' + alias)) $('m_' + alias).removeClass('hidden');
		}, 300);
	} else {
		if(menuTimerS) clearTimeout(menuTimerS);

		menuTimer = setTimeout(function() { 
			$$('#subMenuHolder div.na').addClass('hidden');
			$$('#subMenuHolder div.active').removeClass('hidden');
		}, 300);
	}
}