//
//	Configuration
//

var overlayOpacity = 0.8; // controls transparency of shadow overlay
var borderSize = 10; //if you adjust the padding in the CSS, you will need to update this variable
var overlayDuration = 0.2; // shadow fade in/out duration

// -----------------------------------------------------------------------------------

Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"px";
	}
});

// -----------------------------------------------------------------------------------

var Login = Class.create();

Login.prototype = {
	
	// initialize()
	initialize: function(){	
		var objBody = document.getElementsByTagName("body").item(0);
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','login-overlay');
		objOverlay.style.display = 'none';
		objOverlay.onclick = function(){myLogin.end();}
		objBody.appendChild(objOverlay)	;	
		var objLogin = document.createElement("div");
		objLogin.setAttribute('id','login');
		objLogin.style.display = 'none';
		objLogin.onclick = function(e) {
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if (clickObj == 'login'){
				myLogin.end();
			}
		};
		objBody.appendChild(objLogin);
		var objOuterImageContainer = document.createElement("div");
		objOuterImageContainer.setAttribute('id','outer-login-container');
		objLogin.appendChild(objOuterImageContainer);
		var objImageContainer = document.createElement("div");
		objImageContainer.setAttribute('id','login-container');
		objOuterImageContainer.appendChild(objImageContainer);
		var objTopNav = document.createElement("div");
		objTopNav.setAttribute('id','login-close');
		objImageContainer.appendChild(objTopNav);
		var objTopNavLogo = document.createElement("div");
		objTopNavLogo.setAttribute('id', 'login-logo');
		objTopNav.appendChild(objTopNavLogo);		
		var objTopNavClose = document.createElement("div");
		objTopNavClose.setAttribute('id', 'login-close-button');
		objTopNavClose.onclick = function(){myLogin.end();return false;}
		objTopNav.appendChild(objTopNavClose);
		var objDataContainer = document.createElement("div");
		objDataContainer.setAttribute('id','login-data-container');
		objImageContainer.appendChild(objDataContainer);
		//var objForm = document.createElement("form");
		//objForm.setAttribute('action','javascript:void(0);');
		//objDataContainer.appendChild(objForm);
		var objUl = document.createElement("ul");
		objDataContainer.appendChild(objUl);
		var objCookieLi = document.createElement("li");
		objUl.appendChild(objCookieLi);
		var objUsernameLi = document.createElement("li");
		objUl.appendChild(objUsernameLi);
		var objUsernameLabel = document.createElement("label");
		objUsernameLabel.setAttribute('id','login-desc');
		objUsernameLabel.innerHTML = 'Username';
		objUsernameLi.appendChild(objUsernameLabel);
		var objUsernameInput = document.createElement("input");
		objUsernameInput.setAttribute('id','username');
		objUsernameInput.setAttribute('name','username');
		objUsernameInput.setAttribute('type','text');
		objUsernameInput.setAttribute('tabindex','1');
		objUsernameInput.setAttribute('size','20');
		objUsernameInput.setAttribute('maxlength','20');
		objUsernameInput.setAttribute('value','');
		objUsernameLi.appendChild(objUsernameInput);
		var objPasswordLi = document.createElement("li");
		objUl.appendChild(objPasswordLi);
		var objPasswordLabel = document.createElement("label");
		objPasswordLabel.setAttribute('id','login-desc');
		objPasswordLabel.innerHTML = 'Passwort';
		objPasswordLi.appendChild(objPasswordLabel);
		var objPasswordInput = document.createElement("input");
		objPasswordInput.setAttribute('id','password');
		objPasswordInput.setAttribute('name','password');
		objPasswordInput.setAttribute('type','password');
		objPasswordInput.setAttribute('tabindex','2');
		objPasswordInput.setAttribute('size','50');
		objPasswordInput.setAttribute('maxlength','50');
		objPasswordInput.setAttribute('value','');
		objPasswordLi.appendChild(objPasswordInput);
		var objErrorLabel = document.createElement("label");
		objErrorLabel.setAttribute('id','login-error');
		objPasswordLi.appendChild(objErrorLabel);
		var objSubmitLi = document.createElement("li");
		objUl.appendChild(objSubmitLi);
		var objSubmitDiv = document.createElement("div");
		objSubmitLi.appendChild(objSubmitDiv);
		var objLoginLinks = document.createElement("div");
		objLoginLinks.setAttribute('id', 'login-links');
		objLoginLinks.innerHTML = '<a href="javascript:void(0);" onclick="myLogin.end();document.location.href=\'/leserblick/registration/passwort\';return false;" class="out">Passwort vergessen?</a><br /><a href="javascript:void(0);" onclick="myLogin.end();document.location.href=\'/leserblick/registration\';return false;" class="out">Registrieren</a>';
		objSubmitDiv.appendChild(objLoginLinks);		
		var objSubmitButton = document.createElement("div");
		objSubmitButton.setAttribute('id', 'login-button');
		objSubmitButton.setAttribute('tabindex','3');		
		objSubmitButton.onclick = function(){submitLoginForm();return false;}
		objSubmitDiv.appendChild(objSubmitButton);
	},

	//
	//	start()
	//	Display overlay and login. If image is part of a set, add siblings to imageArray.
	//
	start: function(){
		newStats(WEMF_section, 'login');
		hideSelectBoxes();
		hideFlash();
		// stretch overlay to fill page and fade in
		var arrayPageSize = getPageSize();
		Element.setWidth('login-overlay', arrayPageSize[0]);
		Element.setHeight('login-overlay', arrayPageSize[1]);
		new Effect.Appear('login-overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity });
		// calculate top and left offset for the login 
		var arrayPageScroll = getPageScroll();
		var loginTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
		var loginLeft = arrayPageScroll[0];
		Element.setTop('login', loginTop);
		Element.setLeft('login', loginLeft);
		Element.show('login');
	},

	//
	//	end()
	//
	end: function(){
		Element.hide('login');
		new Effect.Fade('login-overlay', { duration: overlayDuration});
		showSelectBoxes();
		showFlash();
	}
}

// ---------------------------------------------------

function validateCookie(){
	var error = '';
	setaCookie('ubs_cookie', 1);
	if(getaCookie('ubs_cookie') == ''){error = 'Sie müssen Cookies akzeptieren.<br />';}
	return error;
}
function submitLoginForm(){
	var error = '';
	error = validateCookie();
	if(error == ''){
		if ($('username').value == ''){$('username').style.background = 'yellow';error += 'Bitte geben Sie Ihren Usernamen ein.<br />';}else{$('username').style.background = 'white';}
		if ($('password').value == ''){$('password').style.background = 'yellow';error += 'Bitte geben Sie Ihr Passwort ein.<br />';}else{$('password').style.background = 'white';}
	}
	$('login-error').innerHTML = error;
	if(error == ''){
		var params = 'ajax=1&action=ldv&username='+$('username').value+'&password='+$('password').value;
		var myAjax = new Ajax.Request('/leserblick/registration', { Method:'post', parameters:params, onComplete:displLoginResponse });
	}
}
function displLoginResponse(originalRequest){
	var jsonHBVers = originalRequest.responseText;
	var json = jsonHBVers.replace(/<!-- Generated by.*/g,"");
	var obj = json.parseJSON();
	if(obj.RespSet.username){
		setLoginStatus();
		myLogin.end();
	}else{
		$('username').style.background = 'yellow';$('password').style.background = 'yellow';$('login-error').innerHTML = 'Login fehlgeschlagen. <a href="/leserblick/registration/passwort">Hier</a> können Sie ein neues Passwort beantragen.<br />';
	}
}
function setLoginStatus(){
	if(getaCookie('ubs_session') != '' && getaCookie('ubs_username') != ''){
		$('loginright').className = 'logout';
		$('loginright').innerHTML = '<a href="javascript:void(0);" onclick="setaCookie(\'ubs_session\', \'\', -1);setLoginStatus();return false;">Abmelden</a>';
		$('loginleft').className = 'loginstatus';
		$('loginleft').innerHTML = '<a href="/leserblick/registration/profil?arg=void">Angemeldet als '+getaCookie('ubs_username')+'</a>';
	}
	else{
		$('loginright').className = 'register';
		$('loginright').innerHTML = '<a href="/leserblick/registration">Registrieren</a>';
		$('loginleft').className = 'login';
		$('loginleft').innerHTML = '<a href="javascript:void(0);" onclick="myLogin.start();return false;">Login</a>';
	}
}
function initLogin(){ 
	myLogin = new Login();
}
Event.observe(window, 'load', initLogin, false);
