var loginURL = '/login/pages/loginajax.prl';
var logoutURL = '/login/pages/logoutajax.prl';
var openCloseDuration = 0.4;
var closeTopTimeoutID;
var loginIsOpen = false;
var tooltipText1 = 'Sie sind eingeloggt als:<br /><strong>Abonnent</strong>';
var tooltipText2 = 'Sie sind eingeloggt als:<br /><strong>registrierter Nutzer</strong>';
//var doRefreshAfterLogin = true;	// nach einem login oder logout, wird die Seite neu geladen
var doRefreshAfterLogin = false;	// nach einem login oder logout, wird die Seite neu geladen
var logInOutAction = '';

function initLoginForm () {
	if ($('notLogedIn')) {
		document.loginform.login.value = "";
		document.loginform.password.value = "";
		document.loginform.login.className = "loginEmpty";
		document.loginform.password.className = "passwEmpty";
		
		document.loginform.login.onfocus =		function () {this.className = '';};
		document.loginform.password.onfocus = 	function () {this.className = '';};
		document.loginform.login.onblur = 		function () {if (this.value == '') this.className = 'loginEmpty';};
		document.loginform.password.onblur =	function () {if (this.value == '') this.className = 'passwEmpty';};
		document.loginform.onsubmit = doLogin;
	}
	
	if (isIE6 && $("MyHorizontIsLogedInBodyContent")) {
		$("MyHorizontIsLogedInBodyContent").style.position = "relative";
	}
	
	var premStar = $('premiumstar');
	var normalstar = $('normalstar');
	
	if (premStar) {
		assignTooltip(premStar, tooltipText1);
		if (isIE6) {
			premStar.style.position = "relative";
		}
	} else if (normalstar) {
		assignTooltip(normalstar, tooltipText2);
		if (isIE6) {
			normalstar.style.position = "relative";
		}
	}
}

function openLoginBox () {
	if (loginIsOpen) return;
	loginIsOpen = true;
	if (isIE6) {
		$("MyHorizontTopContent").style.position = "static";
		$("MyHorizontLoginBodyContent").style.position = "static";
		window.setTimeout('$("MyHorizontTopContent").style.position = "relative";',openCloseDuration*1000);
		window.setTimeout('$("MyHorizontLoginBodyContent").style.position = "relative";',openCloseDuration*1000);
	}
	
	if ($('MyHorizontLoginform').style.display == 'none') {
		new Effect.BlindDown('MyHorizontLoginform', {duration: openCloseDuration, transition: Effect.Transitions.linear});
	}
}

function doLogin () {
	loginIsOpen = false;
	
	if (isIE6) {
		$("MyHorizontTopContent").style.position = "static";
		$("MyHorizontLoginBodyContent").style.position = "static";
	}
	window.clearTimeout(closeTopTimeoutID);
	new Effect.BlindUp('notLogedIn', {duration: openCloseDuration, transition: Effect.Transitions.linear});
	
	window.setTimeout('sendLoginData()', openCloseDuration*1000+200);
}

function doLogout () {
	window.clearTimeout(closeTopTimeoutID);
	loginIsOpen = true;
	if (isIE6) {
		$("MyHorizontIsLogedInBodyContent").style.position = "static";
		if ($('premiumstar')) {
			$('premiumstar').style.position = "static";
		} else if ($('normalstar')) {
			$('normalstar').style.position = "static";
		}
	}
	
	new Effect.BlindUp('isLogedIn', {duration: openCloseDuration, transition: Effect.Transitions.linear});
	window.setTimeout('sendLogoutData()', openCloseDuration*1000+200);
}

function sendLogoutData () {
	logInOutAction = 'out';
	var postdata = '';
	new Ajax.Request(logoutURL, {postBody:postdata, method:'post', onSuccess:receiveLoginResult,onFailure:receiveLoginFailure});
}

function sendLoginData () {
	logInOutAction = 'in';
//	var postdata = 'login=' + encodeURIComponent(document.loginform.login.value) + '&password=' + encodeURIComponent(document.loginform.password.value); 
//	new Ajax.Request(loginURL, {postBody:postdata, method:'post', onSuccess:receiveLoginResult,onFailure:receiveLoginFailure});
	var postdata = $('loginform').serialize(true);
	new Ajax.Request(loginURL, {parameters:postdata, method:'get', onSuccess:receiveLoginResult,onFailure:receiveLoginFailure});
}

function receiveLoginFailure (data) {
	new Effect.BlindDown('notLogedIn', {duration: openCloseDuration, transition: Effect.Transitions.linear});
}

function receiveLoginResult (data) {
	
	window.clearTimeout(closeTopTimeoutID);
	
	if (data && data.responseText) {
		
		$('MyHorizontLogin').innerHTML = data.responseText;
		
		var success = false;
		
		if ($('notLogedIn')) {
			if (logInOutAction == 'out') success = true;
			$('MyHorizontLoginform').style.display = 'block';
			if (isIE6) {
				$("MyHorizontTopContent").style.position = "static";
				$("MyHorizontLoginBodyContent").style.position = "static";
				window.setTimeout('$("MyHorizontTopContent").style.position = "relative";',openCloseDuration*1000*2);
				window.setTimeout('$("MyHorizontLoginBodyContent").style.position = "relative";',openCloseDuration*1000*2);
			}
			
			new Effect.BlindDown('notLogedIn', {duration: openCloseDuration, transition: Effect.Transitions.linear});
		} else if ($('isLogedIn')) {
			
			if (logInOutAction == 'in') success = true;
			
			if (isIE6) {
				$("MyHorizontIsLogedInBodyContent").style.position = "static";
				if ($('premiumstar')) {
					$('premiumstar').style.position = "static";
				} else if ($('normalstar')) {
					$('normalstar').style.position = "static";
				}
			} 
			new Effect.BlindDown('isLogedIn', {duration: openCloseDuration, transition: Effect.Transitions.linear});
		}
		
		window.setTimeout('initLoginForm();',openCloseDuration*1000);
		if (doRefreshAfterLogin && success) {
			window.setTimeout('window.location.href = window.location.href;',openCloseDuration*1000+200);
		}
	} else {
		receiveLoginFailure();
	}
}

registerOnLoadFunction (initLoginForm);
