function logoutSubmit() {
	var belepesDiv=document.getElementById('belepesContainer');
	var params='logout=1';
	belepesDiv.innerHTML=loginLoading;
	new Ajax.Request(
		loginProcessor,
		{
			method:'post',
			parameters:params,
			onComplete:processLogoutResponse,
			onError:processLogoutResponse
		}
	)
	return false;
}

function toggleLoginReminder() {
	if (loginMode=='login') {
		document.getElementById('belepesContainer').innerHTML=passwordReminderForm;
		loginMode='reminder';
	} else {
		document.getElementById('belepesContainer').innerHTML=loginForm;
		loginMode='login';
	}
	return false;
}

function loginSubmit() {
	var belepesDiv=document.getElementById('belepesContainer');
	var userdata=verifyLoginInputs();
	if (userdata==null) {
		document.getElementById('belepeshiba').innerHTML=loginEmptyFieldError;
		return false;
	}
	belepesDiv.innerHTML=loginLoading;
	var params;
	if (encodeURI) {
		params='member_login='+encodeURI(userdata.username)+'&password='+encodeURI(userdata.password)+'&login_button=1';
	} else {
		params='member_login='+escape(userdata.username)+'&password='+escape(userdata.password)+'&login_button=1';
	}
	if (loginMode=='reminder') {
		params=params+'&reminder=1';
	}
	new Ajax.Request(
		loginProcessor,
		{
			method:'post',
			parameters:params,
			onComplete:processLoginResponse,
			onError:processLoginResponse
		}
	)
	return false;
}

function processLogoutResponse(originalRequest) {
	
	if (originalRequest.responseXML==null) {
		document.getElementById('belepesContainer').innerHTML=loggedIn;
		document.getElementById('belepeshiba').innerHTML=loginDefaultError;
		return;
	}
	if (originalRequest.responseXML.getElementsByTagName('xml')[0].firstChild==null) {
		document.getElementById('belepesContainer').innerHTML=loggedIn;
		document.getElementById('belepeshiba').innerHTML=loginDefaultError;
		return;
	}
	var xmlRoot=originalRequest.responseXML.getElementsByTagName('xml')[0];
	if (xmlRoot.getElementsByTagName('error')[0].textContent=='0' || xmlRoot.getElementsByTagName('error')[0].text=='0') {
		document.getElementById('belepesContainer').innerHTML=loginForm;
		if (logoutHandlers.length>0) {
			for (var i=0; i<logoutHandlers.length; i++) {
				logoutHandlers[i]();
			}
		}
	} else {
		document.getElementById('belepesContainer').innerHTML=loggedIn;
		var errorList=xmlRoot.getElementsByTagName('errormessages')[0].getElementsByTagName('errormessage');
		var errorMessage='';
		var firstError=true;
		for (var i=0; i<errorList.length; i++) {
			if (errorList[i].textContent) {
				errorMessage+=errorList[i].textContent;
			} else if (errorList[i].text) {
				errorMessage+=errorList[i].text;
			}
			if (i<errorList.length-1) {
				errorMessage+='<br />';
			}
		}
		document.getElementById('belepeshiba').innerHTML=errorMessage;
	}
}

function processLoginResponse(originalRequest) {
	loginMode='login';
	if (originalRequest.responseXML==null) {
		document.getElementById('belepesContainer').innerHTML=loginForm;
		document.getElementById('belepeshiba').innerHTML=loginDefaultError;
		return;
	}
	var xmlTagArray=originalRequest.responseXML.getElementsByTagName('xml')
	if (xmlTagArray.length==0 || xmlTagArray[0].firstChild==null) {
		document.getElementById('belepesContainer').innerHTML=loginForm;
		document.getElementById('belepeshiba').innerHTML=loginDefaultError;
		return;
	}
	var xmlRoot=originalRequest.responseXML.getElementsByTagName('xml')[0];
	if (xmlRoot.getElementsByTagName('error')[0].textContent=='0' || xmlRoot.getElementsByTagName('error')[0].text=='0') {
		if (xmlRoot.getElementsByTagName('action')[0].textContent=='login' || xmlRoot.getElementsByTagName('action')[0].text=='login') {
			document.getElementById('belepesContainer').innerHTML=loggedIn;
			var userinfoTag=xmlRoot.getElementsByTagName('userinfo')[0];
			var userData={first_name:'', last_name:''};
			for (var i=0; i<userinfoTag.attributes.length; i++) {
				if (userinfoTag.attributes[i].name=='first_name') {
					userData.first_name=userinfoTag.attributes[i].value;
				} else if (userinfoTag.attributes[i].name=='last_name') {
					userData.last_name=userinfoTag.attributes[i].value;
				}
			}
			document.getElementById('belepveNameContainer').innerHTML=userData.last_name+' '+userData.first_name;
			if (loginHandlers.length>0) {
				for (i=0; i<loginHandlers.length; i++) {
					loginHandlers[i]();
				}
			}
		} else {
			document.getElementById('belepesContainer').innerHTML=loginForm;
			var messageElement=xmlRoot.getElementsByTagName('message')[0];
			if (messageElement.textContent) {
				var message=messageElement.textContent;
			} else {
				var message=messageElement.text;
			}
			document.getElementById('belepeshiba').innerHTML=message;
		}
	} else {
		document.getElementById('belepesContainer').innerHTML=loginForm;
		var errorList=xmlRoot.getElementsByTagName('errormessages')[0].getElementsByTagName('errormessage');
		var errorMessage='';
		var firstError=true;
		for (var i=0; i<errorList.length; i++) {
			if (errorList[i].textContent) {
				errorMessage+=errorList[i].textContent;
			} else if (errorList[i].text) {
				errorMessage+=errorList[i].text;
			}
			if (i<errorList.length-1) {
				errorMessage+='<br />';
			}
		}
		document.getElementById('belepeshiba').innerHTML=errorMessage;
	}
}

function verifyLoginInputs() {
	var formElement=document.getElementById('belepesform');
	if (loginMode=='login') {
		if (formElement.member_login.value=='' || formElement.password.value=='') {
			return null;
		}
		return {username:formElement.member_login.value, password:formElement.password.value};
	}
 	else {
 		if (loginMode=='reminder' && formElement.member_login.value=='') {
			return null;
		}
		return {username:formElement.member_login.value, password:''};
 	}
}
