/*
 * Log In
 */

$(document).ready(function(){
	try{
		var oUsername = null;
		var oPassword = null;
		var oLogin = null;
		var oTooltip = new $.Controls.BalloonMessage();
		
		oTooltip.theme("error");
		oTooltip.hideOnClick(true);
		oTooltip.opacity(0.95);
		oTooltip.arrow($.Controls.BalloonMessage.Setting.Arrow.TOP);
		oTooltip.persistenceOpening(true);
		oTooltip.disableSelection(true);
		oTooltip.onopening = function(args){
			if (oLogin != null){
				var oPosition = oLogin.offset();
				var oElement = this.target(true);
				
				args.position.left = oPosition.left - ((oElement.outerWidth() - oLogin.width()) / 2);
				args.position.top = oPosition.top + oLogin.height();
			}
		}
		
		function _hideTooltip(fast){
			try{
				if (oTooltip != null) oTooltip.hide(null, null, null, fast);
			}catch(e){}
		}
		
		function _validateLogin(form){
			try{
				if ((oUsername != null) && (oPassword != null)){
					if ((oUsername.val() != "") && (oUsername.val().toLowerCase() != "email") && (oPassword.val() != "") && (oPassword.val().toLowerCase() != "password")){
						if ($.Utils.isemail(oUsername.val())){
							if ($.Utils.isjqueryelement(form)){
								form.prepend("<input type=\"hidden\" name=\"signin\" />");
								return true;
							}
						} else if (oLogin != null){
							oTooltip.show("The email is invalid.");
						}
					} else {
						oTooltip.show("The user name or password is incorrect.");
					}
				}
			}catch(e){}
			
			return false;
		}
		
		$(window).bind("resize", function(){
			_hideTooltip(true);
		});
		
		$("body > .body-header > .header-content > .signin-form").eq(0).bind("submit", function(){
			return _validateLogin($(this));
		}).find("input").each(function(index, element){
			var oElement = $(this);
			
			switch(oElement.attr("name")){
				case "username":
					(oUsername = oElement).keypress(function(ev){
						if ((ev = $.Utils.isdefined("event") ? event : ev).keyCode != 13) _hideTooltip();
					}).removeAttr("disabled");
					break;
					
				case "password":
					(oPassword = oElement).keypress(function(ev){
						if ((ev = $.Utils.isdefined("event") ? event : ev).keyCode != 13) _hideTooltip();
					}).removeAttr("disabled");
					break;
					
				case "login":
					(oLogin = oElement).removeAttr("disabled");
					
					if ((oElement.attr("error") != null) && !$.Utils.empty_string(oElement.attr("error"))){
						oTooltip.show(oElement.attr("error"));
					}
					break;
			}
		});
		
		if (oUsername != null){
			if ((oUsername.val() != "") && (oUsername.val().toLowerCase() != "email")){
				if (oPassword != null){
					if ((oPassword.val() != "") && (oPassword.val().toLowerCase() != "password")){
						oPassword.focus();
					} else {
						if (oLogin != null) oLogin.focus();
					}
				} else {
					oUsername.focus();
				}
			} else {
				oUsername.focus();
			}
		}
	}catch(e){}
});
