//  August Chat System
//  Copyright (c) 2000-2009 by August
//  www:  http://www.august4u.net/
//  file: auth.js


function authName ( name ) {
	if ($("billing")) {
		$("billing").innerHTML = "<a href=" + location.pathname + (location.search ? location.search + "&" : "?") + "logout=1>выйти</a><div></div><a href=my/>" + name + "</a>"
		$("billing").style.display = "block"
		$("menu_reg").style.display = "none"
	}
}

function authError ( txt ) {
	$("auth_err").innerHTML = "<div>" + txt + "</div>"
	$("auth_err").style.display = "block"
}

function login () {
	var form = document.forms [0]
	if (login.Lock || form.login_email.value == "e-mail" || form.login_pass.value == "")
		return false

	function callBack ( res ) {
		login.Lock = 0
		var r = res.split ("\n")
		form.id = r [1]
		switch (r [0]) {
			case false:
				authError ("Ошибка соединения.")
				break
			case "auth":
				authError ("Введите e-mail и пароль.")
				form.login_email.focus ()
				break
			case "100":
				authError ("Система безопасности: доступ заблокирован.")
				$("auth").style.display = "none"
				break
			case "101":
				authError ("Система безопасности: несанкционированный доступ.")
				$("auth").style.display = "none"
				break
			case "200":
				authError ("Необходимо включить куки.")
				form.login.disabled = true
				break
			case "201":
				authError ("Вы не зарегистрированы в системе.")
				break
			case "202":
			case "203":
				authError ("Система безопасности: в доступе отказано.")
				break
			case "204":
				authError ("Ошибка авторизации. <a href=" + ($("auth") ? "" : "../") + "?reg=pass>Восстановить пароль</a>")
				form.login_pass.select ()
				form.login_pass.focus ()
				break
			case "ok":
				if ($("auth")) {
					$("auth").style.display = "none"
					authName ("личный кабинет")
				} else {
					location = "/my/"
				}
		}
	}

	login.Lock = 1
	try {
		var p = form.login_pass.value.md5 ()
		var c = []
		for (var i = 0; i < 32; i++)
			c [i] = String.fromCharCode (p.charCodeAt (i) ^ form.id.charCodeAt (i))
		{
			(new xmlHTTP).send (($("auth") ? "" : "../") + "http.php", "a=auth&email=" + form.login_email.value.encode () + "&pass=" + c.join ("").md5 (), callBack)
		}
	} catch ( e ) {
		authError ("Системная ошибка: " + e.message)
		form.login.disabled = false
	}
	return false
}


initOnload (function () {
	function clientFocus ( e ) {
		if (this.value == "e-mail")
			this.value = ""
	}
	function clientBlur ( e ) {
		if (this.value == "")
			this.value = "e-mail"
	}
	function passFocus ( e ) {
		this.style.display = "none"
		form.login_pass.style.display = "block"
		form.login_pass.focus ()
	}
	function passBlur ( e ) {
		if (this.value == "") {
			this.style.display = "none"
			form.login_pass_txt.style.display = "block"
		}
	}
	function hideAuthErr () {
		if ($("auth"))
			$("auth_err").style.display = "none"
		else
			$("auth_err").innerHTML = "&nbsp;"
	}

	if ($("title_menu"))
		$("title_menu").style.display = "block"

	login.Lock = 0
	var form = document.forms [0]
	if (form && form.login) {
		form.onsubmit = login
		$("auth_err").onclick = hideAuthErr
	}
	if ($("auth")) {
		$("auth").style.display = "block"
		$("auth").onkeydown = hideAuthErr
		form.login_email.onfocus = clientFocus
		form.login_email.onblur = clientBlur
		form.login_pass.onblur = passBlur
		form.login_pass_txt.onfocus = passFocus
	}
	if ($("billing") && $("billing").innerHTML)
		authName ($("billing").innerHTML)
	if (form.getAttribute ("cross") == 1)
		authError ("Система безопасности: обнаружен одновременный доступ к Личному Кабинету с разных компьютеров!")
})
