/*******************************
 *
 *	Login Class
 *
 *  Version: 1.0
 *
 *	Author: 
 *	The Roundhouse
 *
 *  © The Roundhouse 2007 -
 * 	ALL RIGHTS RESERVED
 */

var Login = new Class({
					  
	initialize: function(){},
	
	doLogin: function()
	{
		// create and error variable
		var strError			= "";
		
		// get the username
		// and password
		var strUsername			= $('login_username').getValue();
		var strPassword			= $('login_password').getValue();
		
		// handle empty strings
		if(strUsername == "")
			strError += " - Username is required\n";
		if(strPassword == "")
			strError += " - Password is required\n";
			
		// if we have a problem
		if(strError != "")
		{
			alert("The following errors occurred:\n"+strError);
		}
		else
		{
			// check whether we are redirecting after we log them in
			var blRedirect = 1;
			if(Cookie.get('prShowSiteGuide'))
			{
				blRedirect = parseInt(Cookie.get('prShowSiteGuide'));
			}
			
			// create our request
			this.objRequest 		= { login: 				"1",
										login_username: 	strUsername,
										login_password: 	hex_md5(strPassword),
										md5: 				"1",
										redirect:			blRedirect};
			
			// execute it
			new Ajax("../z_ajax/ajax_handler_login.php", {onComplete:this.ajax_handleLogin.bind(this), postBody:this.objRequest}).request();
		}
		
		// stops the browser from doing
		// its normal post submission
		return false;
	},
	
	doLogout: function()
	{
		// create our request
		this.objRequest 		= { logout: 	"1" };
		
		// execute it
		new Ajax("../z_ajax/ajax_handler_login.php", {onComplete:this.ajax_handleLogin.bind(this), postBody:this.objRequest}).request();
		return false;
	},
	
	ajax_handleLogin: function(objResponseText, objResponseXML)
	{
		if(objResponseXML)
		{
			// go through the response XML. We have to do it like
			// this because IE regards the XML header as a node
			// whereas other browsers don't.
			for(var i = 0; i < objResponseXML.childNodes.length; i++)
			{
				if(objResponseXML.childNodes[i].nodeName == "parsererror")
				{
					alert("ERROR: " + objResponseXML.childNodes[i].firstChild.nodeValue.toString());
				}
				
				// if we find a response node
				if(objResponseXML.childNodes[i].nodeName == "response")
				{
					var arrResponse = objResponseXML.childNodes[i].childNodes;
					if(arrResponse)
					{
						for(var j = 0; j < arrResponse.length; j++)
						{
							switch(arrResponse[j].nodeName)
							{
								case "ok": 		var arrOKResponse = arrResponse[j].childNodes;
												for(var k = 0; k < arrOKResponse.length; k++)
												{
													var strValue = arrOKResponse[k].firstChild.nodeValue;
													switch(arrOKResponse[k].nodeName)
													{
														case "name": $('welcome_name').setHTML(strValue.toUpperCase());
																	 break;
														case "type": if(parseInt(strValue) == 0)
																	 {
																		 // job seeker
																		 $('lnk_joblab').removeClass('hidden');
																		 $('lnk_candidate').addClass('hidden');
																	 }
																	 else
																	 {
																		 // employer
																		 $('lnk_joblab').addClass('hidden');
																		 $('lnk_candidate').removeClass('hidden');
																	 }
													}
												}
								
												$('login_feedback').addClass('hidden');
												$('welcome').removeClass('hidden');
												$('notloggedin').addClass('hidden');
												break;
												
								case "error": 	$('login_feedback').removeClass('hidden')
												$('login_feedback').setHTML("There was a problem logging you in. Please check your username and password and try again.");
												break;
												
								case "logout": 	$('login_feedback').addClass('hidden')
												$('welcome').addClass('hidden');
												$('notloggedin').removeClass('hidden');
												break;
							}
						}
					}
				}
			}
		}
	}
});

// create a login object
var prLogin = new Login();