/**
 * Login Handler
 * -------------
 * © The Roundhouse 2008
 */

window.addEvent('domready', function()
							{
								// check we're not in Fin
								if(!document.FIN)
								{
									// locate the link
									var frmLogin 	= $('frm_login');
									
									// if we've found the login form
									if(frmLogin)
									{
										// make sure it can't submit
										if(Browser.Engine.trident)
											frmLogin.onsubmit = function(){ return false; };
										else
											frmLogin.setAttribute('onsubmit', 'return false');
										
										// add a submit handler now
										// that we've prevented normal submissions
										frmLogin.addEvent('submit', function()
										{
											// find the variables
											var liEmail		= $('li_lgn_email');
											var liPassword	= $('li_lgn_password');
											
											var inEmail		= $('in_lgn_email');
											var inPassword	= $('in_lgn_password');
											var btnLogin	= $('btn_login');
											
											// if we have all the variables
											if(inEmail && inPassword && btnLogin && liEmail && liPassword)
											{
												var bDoRefresh = false;
												
												if(!liPassword.hasClass('waiting'))
													liPassword.addClass('waiting');
												
												if(!liEmail.hasClass('waiting'))
													liEmail.addClass('waiting');
													
												if(!btnLogin.hasClass('waiting'))
													btnLogin.addClass('waiting');
												
												// now dispatch an AJAX request
												var rqLogin = new Request({url:		"/z_ajax/ajax_handler.php?login=1",
																		   method: 	"post"});
												
												// add a callback function
												rqLogin.onSuccess = function(strResponseText, strResponseXML)
												{
													for(var i = 0; i < strResponseXML.childNodes.length; i++)
													{
														if(strResponseXML.childNodes[i].nodeName == "response")
														{
															var xmlResponse = strResponseXML.childNodes[i].childNodes;
															for(var j = 0; j < xmlResponse.length; j++)
															{
																var xmlNode = xmlResponse[j];
																switch(xmlNode.nodeName)
																{
																	case "name":				var frmLogin = $('frm_login');
																								if(frmLogin)
																									frmLogin.addClass('hidden');
																									
																								var lnkLogoutHolder = $('lnk_logout_holder');
																								if(lnkLogoutHolder)
																									lnkLogoutHolder.removeClass('hidden');
																									
																								var lnkLogin	= $('lnk_login');
																								if(lnkLogin)
																								{
																									lnkLogin.setProperty('href', '/my-account/');
																									lnkLogin.setProperty('title', 'Navigation: My Account');
																									lnkLogin.setProperty('text', 'My Account');
																									
																									var spNew 	= new Element('span');
																									spNew.setProperty('id', 'username');
																									spNew.set('text', '(' + xmlNode.firstChild.nodeValue + ')');
																									lnkLogin.getParent().adopt(spNew);
																									
																									if(objHeader != null)
																									{
																										objHeader.disableLogin(lnkLogin);
																										objHeader.hideHeader($('login'), $('lnk_login_holder'));
																									}
																								}
																								
																								if($defined(cart) && !$('shoppingcart_full'))
																									cart.getCurrentCart();
																								else
																									bDoRefresh = true;
																								break;
																}
															}
														}
													}
													
													var liEmail		= $('li_lgn_email');
													var liPassword	= $('li_lgn_password');
													var btnLogin	= $('btn_login');
													
													// if we have all the variables
													if(liEmail && liPassword && btnLogin )
													{
														if(liPassword.hasClass('waiting'))
															liPassword.removeClass('waiting');
														
														if(liEmail.hasClass('waiting'))
															liEmail.removeClass('waiting');
															
														if(btnLogin.hasClass('waiting'))
															btnLogin.removeClass('waiting');
													}
													
													if($defined(MessageStore))
														MessageStore.read(strResponseXML, bDoRefresh);
												}
												
												// now send username and password
												rqLogin.send("in_lgn_email=" + inEmail.get('value') + "&" +
															 "in_lgn_password=" + hex_md5(inPassword.get('value')) + "&" + 
															 "hashed=true");
											}
										});
									}
								}
							});