﻿//added by Javin 2008/01/10 start
window.onload = function(){
	$("loginForm").onsubmit = authentication;	
	$("rememberPassword").onclick = passwordRecovery;
}
//added by Javin 2008/01/10 end

function checkResponse(responseString) {
	var responseBeginning=responseString.substring(0,5);
	if (responseBeginning=="<?xml") {
		return true;
	}
	else {
		return false;
	}
}

function clearMessages() {
	messages=document.getElementsByClassName("message");
	
	for (i=0; i<messages.length; i++) {
		messages[i].innerHTML="";
		messages[i].style.visibility="hidden";
	}
}

/* Authentication
------------------------------------------- */
function authentication()
{

	try
	{
		new Ajax.Request("login.php?action=checklogin",
						 {
							 method:"post",
							 postBody:Form.serialize("loginForm"),
							 onSuccess:function(resp)
							 {
								clearMessages(); 
								var isXML = checkResponse(resp.responseText); 
								if (isXML) 
								{
									var documentNode = resp.responseXML.getElementsByTagName('response')[0];
									var documentNodeType = documentNode.getAttribute('type');
									if(documentNodeType == "redirect")
									{
										var url = documentNode.getElementsByTagName('redirect')[0].firstChild.nodeValue;
										window.location.href = url;
									}
									else if(documentNodeType == "message")										
									{
										var message = documentNode.getElementsByTagName('message')[0].getElementsByTagName('messagetext')[0].firstChild.nodeValue;
										$("password").value="";
										$("errormessage").innerHTML = message;
										$("errormessage").style.visibility = "visible";
									}
								}
							 },
							 onFailure:function()
							 {
								 alert("Error al conectar con el servidor");
							 }		 
						 });
		return false;
	}
	catch(e)
	{
		alert(e);
		return true;
	}

}

function passwordRecovery()
{
	try
	{
		new Ajax.Request("login.php?action=forgetPass",
						 {
							 method:"post",
							 postBody:Form.serialize("loginForm"),
							 onSuccess:function(resp)
							 {
								clearMessages();
								var isXML = checkResponse(resp.responseText); 
								if (isXML) 
								{
									var documentNode = resp.responseXML.getElementsByTagName('response')[0];
									var documentNodeType = documentNode.getAttribute('type');
									if(documentNodeType == "checkformerror")
									{
										var message = documentNode.getElementsByTagName('message')[0].getElementsByTagName('messagetext')[0].firstChild.nodeValue;
										$("errormessage").innerHTML = message;
										$("errormessage").style.visibility = "visible";
									}
									else if(documentNodeType == "checkformok")										
									{
										var message = documentNode.getElementsByTagName('message')[0].getElementsByTagName('messagetext')[0].firstChild.nodeValue;
										$("okmessage").innerHTML = message;
										$("okmessage").style.visibility = "visible";
									}
								}
							 },
							 onFailure:function()
							 {
								 alert("Error al conectar con el servidor");
							 }		 
						 });
		return false;
	}
	catch(e)
	{
		alert(e);
		return true;
	}

}