

function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	document.cookie = curCookie;
}

// ф-я URLEncode для русских символов
// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

function URLencode(str)
{
  var ret = [];
  // Составляем массив кодов символов, попутно переводим кириллицу
  for (var i = 0; i < str.length; i++)
  {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != 'undefined')
      n = trans[n];
    if (n <= 0xFF)
      ret.push(n);
  }
  return escape(String.fromCharCode.apply(null, ret));
}

function setFocus(e)
{
e.focus();
e.select();
}


// js-autodetect && ajax engine, login window

var ajaxenabled = false;
var XmlHttpLogin = createXmlHttpRequestObject();
var XmlHttpDetect = false;
var preloadAjaxImage = false;

var login_window = false;
var login_form = false;
var login_text = false;
var password_text = false;
var remember_text = false;
var login_message = false;
var login_menu = false;

function loadLoginForms()
{
	login_form = document.getElementById("login_form");
	login_text = document.getElementById("login_text");
	password_text = document.getElementById("password_text");
	remember_text = document.getElementById("remember_text");
	login_message = document.getElementById("login_message");
	login_menu = document.getElementById("login_menu");
	return (login_window && login_form && login_text && password_text && remember_text && login_message && login_menu);
}

function createXmlHttpRequestObject()
{
	var XmlHttp;
	try {
		XmlHttp = new XMLHttpRequest();
	} catch (e) {
		var versions = new Array(
			'MSXML2.XMLHTTP.6.0',
			'MSXML2.XMLHTTP.5.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP',
			'Microsoft.XMLHTTP'
		);
		for (var i=0;i<versions.length && !XmlHttp; i++) {
			try {
				XmlHttp = new ActiveXObject(versions[i]);
			} catch (e) {}
		}
	}
	if (!XmlHttp) XmlHttp = false;
	return XmlHttp;
}

function empty_function()
{
}

function handleDetectState()
{
	if (XmlHttpDetect.readyState == 4) {
		try {
			if (XmlHttpDetect.status == 200 && XmlHttpDetect.responseText.indexOf("<respdata>OK</respdata>") != -1) ajaxenabled = true;
		} catch (e) {}
	}
}

function loginlogoutclear()
{
	var loginlink = document.getElementById("loginlink");
	if (loginlink) loginlink.href="#";

	var logoutlink = document.getElementById("logoutlink");
	if (logoutlink) logoutlink.href="#";

	var loginlink2 = document.getElementById("loginlink2");
	if (loginlink2) loginlink2.href="#";
}

function bodyload()
{
	loginlogoutclear();

	var calendar_button = document.getElementById("calendar_button");
	if (calendar_button) calendar_button.innerHTML =
		"<a href=\"javascript:void(0);\" onclick=\"javascript:popUpCalendar(this,calender.cdate, 'dd-mm-yyyy');\"><img src=\"/img/calendar.png\" border=\"0\" alt=\"Выбрать дату\" title=\"Выбрать дату\" style=\"vertical-align:middle\"></a>";

	login_window = new DHTML_modalMessage();

	// ajax preload && detect
	try {
		preloadAjaxImage = new Image(70,10); 
		preloadAjaxImage.src = "http://www.erostov.ru/img/loading0.gif"; 
	} catch (e) {};

	ajaxenabled = document.getElementById("ajaxenabled");
	if (!ajaxenabled) {
		XmlHttpDetect = createXmlHttpRequestObject();
		if (XmlHttpDetect) {
			try {
				XmlHttpDetect.open("GET", "/detect_ajax.php?rand="+Math.floor(Math.random()*1000000000), true);
				XmlHttpDetect.onreadystatechange = handleDetectState;
				XmlHttpDetect.send(null);
			} catch (e) {}
		}
	}
}

function showloginloader(v)
{
	var l = document.getElementById("sp_loginloading");
	if (l) {
		if (v) l.innerHTML = "<img width=\"75\" height=\"13\" alt=\"&nbsp;\" src=\"/img/loading0.gif\">"; else l.innerHTML = "";
	}
}

function handlelogin()
{
	try {
		if (loadLoginForms() && XmlHttpLogin.readyState == 4 && XmlHttpLogin.status == 200) {
			// чтение ответа
			var TextResponse = XmlHttpLogin.responseText;
			if (!TextResponse) return false;
			TextResponse = TextResponse.replace("<?xml version=\"1.0\" encoding=\"windows-1251\" standalone=\"yes\"?>", "");

			if (TextResponse.indexOf("id=\"not_logged\"") != -1) {
				login_message.innerHTML = TextResponse;
				return true;
			} else if (TextResponse.indexOf("id=\"logged_in\"") != -1) {
				login_menu.innerHTML = TextResponse;

				var p = TextResponse.indexOf("id=\"logged_in\" savelogin=\"");
				if (p != -1) {
					var savelogin = TextResponse.substring(p + 26, p + 58); 
					setCookie("er_savelogin", savelogin, "Tue, 01-Jan-2030 00:00:00 GMT", "/", ".erostov.ru");
				}

				loginlogoutclear();
				close_login();
				return true;
			} else 
				return false;
		} else {
			return false;
		}
	} catch (e) {
		return false;
	}
}

function handleLoginState()
{
	try {
		if (XmlHttpLogin.readyState == 4) {
			var res = handlelogin();
			if (loadLoginForms() && res) {
				showloginloader(false);
				login_text.disabled = false;
				password_text.disabled = false;
				remember_text.disabled = false;
			} else {
				login_text = document.getElementById("login_text"); if (login_text) login_text.disabled = false;
				password_text = document.getElementById("password_text"); if (password_text) password_text.disabled = false;
				remember_text = document.getElementById("remember_text"); if (remember_text) remember_text.disabled = false;
				login_form = document.getElementById("login_form"); if (login_form) login_form.submit();
			}
		}
	} catch (e) {
		login_text = document.getElementById("login_text"); if (login_text) login_text.disabled = false;
		password_text = document.getElementById("password_text"); if (password_text) password_text.disabled = false;
		remember_text = document.getElementById("remember_text"); if (remember_text) remember_text.disabled = false;
		login_form = document.getElementById("login_form"); if (login_form) login_form.submit();
	}
}

function submitlogin()
{
	// если мы на страницах, где ajax вход не нужен
	var mustlogin = document.getElementById("mustlogin");
	if (mustlogin) return true;

	if (loadLoginForms() && ajaxenabled) {
		login_text.disabled = true;
		password_text.disabled = true;
		remember_text.disabled = true;
		login_message.innerHTML = "&nbsp;";
		showloginloader(true);

		try {
			XmlHttpLogin.onreadystatechange = empty_function;
			XmlHttpLogin.abort();
			XmlHttpLogin.open("POST", "/login_ajax.php", true);
			XmlHttpLogin.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			XmlHttpLogin.onreadystatechange = handleLoginState;
			var req = "login="+URLencode(login_text.value)+"&password="+URLencode(password_text.value)+"&remember="+remember_text.value;
			XmlHttpLogin.send(req);

			// step 1 ok
			return false;
		} catch (e) {
			// ajax login failed
			return true;
		}
	} else {
		return true;
	}
}

function handlelogout()
{
	try {
		login_menu = document.getElementById("login_menu");
		if (login_menu && XmlHttpLogin.readyState == 4 && XmlHttpLogin.status == 200) {
			// чтение ответа
			var TextResponse = XmlHttpLogin.responseText;
			if (!TextResponse) return false;
			TextResponse = TextResponse.replace("<?xml version=\"1.0\" encoding=\"windows-1251\" standalone=\"yes\"?>", "");

			if (TextResponse.indexOf("id=\"logged_out\"") != -1) {
				setCookie("er_savelogin", "", "Tue, 01-Jan-2030 00:00:00 GMT", "/", ".erostov.ru");
				login_menu.innerHTML = TextResponse;
				loginlogoutclear();
				return true;
			} else 
				return false;
		} else {
			return false;
		}
	} catch (e) {
		return false;
	}
}

function postlogout() {
	try {
		var lf = document.getElementById("logoutform");
		if (lf) 
			lf.submit();
		else
			document.location.href = "http://www.erostov.ru/logout.php";
	} catch (e) {
		document.location.href = "http://www.erostov.ru/logout.php";
	}
}

function handleLogoutState()
{
	try {
		if (XmlHttpLogin.readyState == 4) {
			if (!handlelogout()) {
				postlogout();
			}
		}
	} catch(e) {
		postlogout();
	}
}

function logout()
{
	// если эту страницу обязательно надо перезагрузить при выходе
	var mustlogon = document.getElementById("mustlogon");
	if (mustlogon) {
		postlogout();
		return false;
	}

	login_menu = document.getElementById("login_menu");
	if (login_menu && ajaxenabled) {
		login_menu.innerHTML = "<img width=\"75\" height=\"13\" alt=\"&nbsp;\" src=\"/img/loading0.gif\">";

		try {
			XmlHttpLogin.onreadystatechange = empty_function;
			XmlHttpLogin.abort();
			XmlHttpLogin.open("GET", "/logout_ajax.php", true);
			XmlHttpLogin.onreadystatechange = handleLogoutState;
			XmlHttpLogin.send(null);

			// step 1 ok
			return false;
		} catch (e) {
			// ajax logout failed
			postlogout();
			return false;
		}
	} else {
		postlogout();
		return false;
	}
}

function open_login() {
	try {	
		bShow = true;
		var messageContent='<div id=\'flogin\'><div id=\'rounded-box-10\'><b class=\'lr10\'></b><b class=\'lr7\'></b><b class=\'lr5\'></b><b class=\'lr4\'></b><b class=\'lr3\'></b><b class=\'lr2\'></b><b class=\'lr2\'></b><b class=\'lr1\'></b><b class=\'lr1\'></b><b class=\'lr1\'></b><div class=\'inner-box\'><div class=\'login_window\'>';
		messageContent +='<form id=\'login_form\' name=\'login_form\' method=\'post\' action=\'/login.php\' onsubmit=\'javascript:return submitlogin();\'>';
		messageContent +='<table border=\'0\' cellspacing=\'0\' width=\'100%\'>';
		messageContent +='<tr><td width=\'25%\'>&nbsp;</td><td width=\'75%\' align=\'left\' class=\'title_logon\'>Вход <span id=\'sp_loginloading\'></span></td></tr>';
		messageContent +='<tr><td colspan=\'2\' align=\'center\' id=\'login_message\'>&nbsp;</td></tr>';
		messageContent +='<tr><td class=\'logon_field_name\'>Логин</td><td align=\'left\'><input name=\'login\' type=\'text\' id=\'login_text\' class=\'logon_field\' size=\'25\'></td></tr>';
		messageContent +='<tr><td colspan=\'2\'>&nbsp;</td></tr>';
		messageContent +='<tr><td class=\'logon_field_name\'>Пароль</td><td align=\'left\'><input type=\'password\' id=\'password_text\' class=\'logon_field\' name=\'password\' size=\'25\'></td></tr>';
		messageContent +='<tr><td>&nbsp;</td><td align=\'right\' style=\'padding-right:25px;\'><a href=\'/reminder.php\'>Забыли пароль?</a></td></tr>';
		messageContent +='<tr><td>&nbsp;</td><td style=\'font-size: 12pt\' align=\'left\'><input type=\'checkbox\' id=\'remember_text\' name=\'remember\' value=\'remember\'><span class=\'remembertext\'>Запомнить на этом компьютере</span></td></tr>';
		messageContent +='<tr><td colspan=\'2\'>&nbsp;</td></tr>';
		messageContent +='<tr><td colspan=\'2\' align=\'center\'><button class=\'form_button\' type=\'submit\' title=\'Войти\' value=\'Войти\'><a href=\'#\'><img src=\'../img/login_btn.jpg\' alt=\'Войти\' width=\'70\' height=\'26\' border=\'0\'></a></button>';
		messageContent +='<button class=\'form_button\' type=\'button\' onClick=\'javascript:close_login();\' name=\'close\' title=\'Закрыть\' value=\'Закрыть\'><a href=\'#\'><img src=\'../img/close_btn.jpg\' alt=\'Закрыть\' width=\'80\' height=\'26\' border=\'0\'></a></button></td></tr></table></form>';
		messageContent +='</div></div><b class=\'lr1\'></b><b class=\'lr1\'></b><b class=\'lr1\'></b><b class=\'lr2\'></b><b class=\'lr2\'></b><b class=\'lr3\'></b><b class=\'lr4\'></b><b class=\'lr5\'></b><b class=\'lr7\'></b><b class=\'lr10\'></b></div></div>';
		login_window.setShadowOffset(0);
		login_window.setHtmlContent(messageContent);
		login_window.setSize(380,200);
		//login_window.setCssClassMessageBox(cssClass);
		login_window.setSource(false);
		login_window.setShadowDivVisible(false);
		login_window.display();

		return false;
	} catch (e) {
		return true;
	}
}
function close_login() {
	try {
		login_window.close();
	} catch (e) { }
}


// search

var searchBox = false;
var XmlHttpSearch = false;
var searchId = false;
var newSearchStr = false;
var searchSelect = 0;
var searchCount = 0;

function loadSearchForms()
{
	searchBox = document.getElementById("searchbox");
	return searchBox;
}

function closeSearch() {
	if (loadSearchForms()) searchBox.style.visibility = "hidden";
}

function closeSearchBox() {
	searchSelect = 0;
	searchCount = 0;
	setTimeout("closeSearch()", 300);
	return true;
}

function handleSearchState()
{
	if (XmlHttpSearch.readyState == 4 && XmlHttpSearch.status == 200 && loadSearchForms())
	{
		var res = XmlHttpSearch.responseText;
		//alert("->"+res+"<-");
		if (res.indexOf("<error></error>") == -1) {
			searchSelect = 0;
			searchCount = 0;
			searchBox.innerHTML = res;
			searchBox.style.visibility = "visible";
			while (document.getElementById("search"+(searchCount+1))) searchCount++;
		} else {
			closeSearchBox();
		}
	}
}

function newSearch() {
	if (loadSearchForms() && ajaxenabled) {
		if (newSearchStr.length == 0) {
			closeSearchBox();
		} else {
			if (!XmlHttpSearch) XmlHttpSearch = createXmlHttpRequestObject();
			if (XmlHttpSearch) {

				XmlHttpSearch.onreadystatechange = empty_function;
				XmlHttpSearch.abort();

				var url = "/search_ajax.php?search="+URLencode(newSearchStr)+"&sid="+Math.random();

				XmlHttpSearch.onreadystatechange = handleSearchState;
				XmlHttpSearch.open("GET",url,true);
				XmlHttpSearch.send(null);
			}
		}
	}
	searchId = false;
	return true;
}

function doNewSearch(str) 
{
	if (str != newSearchStr) {
		newSearchStr = str;
 		if (!searchId) searchId = setTimeout("newSearch()", 500);
	}
}

function doListSearch(e) 
{
	var keynum;
	var elem;
	var i;

	if(window.event) // IE
  	{
  		keynum = e.keyCode;
  	}
	else if(e.which) // Netscape/Firefox/Opera
  	{
  		keynum = e.which;
  	}
	//alert(keynum);

	// 38 up
	// 40 down
	if (keynum == 38 || keynum == 40) {
		for (i = 1; i <= searchCount; i++) {
			elem = document.getElementById("search"+i);
			if (elem) elem.style.background = "";
		}
		if (keynum == 38) {
			if (searchSelect > 0) searchSelect--; else searchSelect = searchCount;
		}
		if (keynum == 40) {
			if (searchSelect < searchCount) searchSelect++; else searchSelect = 0;
		}
		elem = document.getElementById("search"+searchSelect);
		if (elem) {
			elem.style.background = "cyan"; 
		}
	}
 	return true;
}

function doSubmitSearch() 
{
	if (searchSelect == 0) return true;

	var elem = document.getElementById("search"+searchSelect);
	if (elem) {
		//alert(elem.href);
		//alert(document.location.href);
		document.location.href = elem.href; 
		return false;
	} else {
		return true;
	}
}


