﻿onContent(
	function(){		
		if($("btLogin"))$("btLogin").observe ("click", Membership.Login);
		if($("btRegister"))$("btRegister").observe ("click", Membership.Register);
		if($("btLogout"))$("btLogout").observe ("click", Membership.Logout);		
		if($("txtLoginEmail"))$("txtLoginEmail").observe("keydown", function(e) { if (captureEnter(e)) Membership.Login(); });
		if($("txtLoginPassword"))$("txtLoginPassword").observe("keydown", function(e) { if (captureEnter(e)) Membership.Login(); });
		if($("txtRegisterEmail"))$("txtRegisterEmail").observe("keydown", function(e) { if (captureEnter(e)) Membership.Register(); });
		if($("txtRegisterPassword"))$("txtRegisterPassword").observe("keydown", function(e) { if (captureEnter(e)) Membership.Register(); });
		Membership.SetLinks();
	}
);


	var Membership = {
	    msgHolderId: "ServerMsg",
	    currentUser: "",
	    currentFullName: "",
	    lastPanel: "Login",
	    IsLogged: function() {
	        return (Membership.currentUser != "");
	    },
	    SetLinks: function() {
	        var o = $("NotebookLoginStateLink");
	        if (o) {
	            o.innerHTML = Membership.currentUser == "" ? Tabs.getDicValue("Login/Register") : Tabs.getDicValue("Logout");
	            o.href = Membership.currentUser == "" ? "javascript:Notebook.ViewPanel('Login')" : "javascript:Membership.Logout();Notebook.ViewPanel('Login')";
	        }
	    },

	    SetUser: function(email, fullname) {
	        if (!email) email = "";
	        Membership.currentUser = email;
	        if (!fullname) fullname = "";
	        Membership.currentFullName = fullname;
	        if (email != "") {
	            $("anonymousTemplate").hide();
	            $("loggedTemplate").show();
	        } else {
	            $("anonymousTemplate").show();
	            $("loggedTemplate").hide();
	        }
	        if ($("LoginName")) $("LoginName").innerHTML = Membership.currentUser;
	        if ($("NotebookListsPanelBody")) $("NotebookListsPanelBody").innerHTML = Membership.currentFullName + ", ";
	    },
	    ValidateLogin: function(oEmail, oPass, avoidPassword) {

	        var errCount = 0;
	        $(Membership.msgHolderId).innerHTML = "";

	        if (!/^[\w\-\.]*@([a-z0-9\-]*\.)+[a-z]{2,}$/.test(oEmail.value)) {
	            $("vldEmail").show();
	            errCount++;
	            oEmail.focus();
	        } else {
	            $("vldEmail").hide();
	        }
	        if (!avoidPassword) {
	            if (!/^\w*[a-z0-9\-]{3,}$/.test(oPass.value)) {
	                errCount++;
	                oPass.focus();
	                $("vldPassword").show();
	            } else {
	                $("vldPassword").hide();
	            }
	        }
	        return (errCount == 0);
	    },

	    Register: function() {
	        var email = $("txtRegisterEmail");
	        var pass = $("txtRegisterPassword");
	        if (Membership.ValidateLogin(email, pass)) {

	            OccupationValue = "";
	            oOccupation = document.forms[0]["Occupation"];
	            //alert(oOccupation);
	            for (var i = 0; i < oOccupation.length; i++) {
	                if (oOccupation[i].checked)
	                    OccupationValue = oOccupation[i].value;
	            }

	            Mantis.CaesarStone.Pages.Content.LoginViewControl.Register(
				email.value,
				pass.value,
				$("txtFullname").value,
				OccupationValue,
				$("WantUpdates").checked ? 1 : 0,
				AjaxProOutput(function(serverResponse) {
				    Membership.currentUser = serverResponse[0];
				    $(Membership.msgHolderId).innerHTML = serverResponse[1];

				    if (Membership.currentUser != "") {
				        // succesfull registration
				        // update the server with products from the local cookie (already displayed)						
				        Membership.currentFullName = $("txtFullname").value;
				        if ($("NotebookListsPanelBody")) $("NotebookListsPanelBody").innerHTML = Membership.currentFullName + ", ";
				        Membership.SetLinks();
				        Notebook.ViewPanel("Lists");
				        Notebook.SyncToServer();

				    }
				})
			);
	        }
	    },

	    Login: function() {
	        var email = $("txtLoginEmail");
	        var pass = $("txtLoginPassword");
	        var getNotebookContents = true;
	        if (Membership.ValidateLogin(email, pass)) {
	            Mantis.CaesarStone.Pages.Content.LoginViewControl.Login(
				email.value, pass.value, getNotebookContents,
				AjaxProOutput(function(serverResponse) {
	                // userid
				    Membership.SetUser(serverResponse[0], serverResponse[1]);

				    // message
				    $(Membership.msgHolderId).innerHTML = serverResponse[2];
				    if (serverResponse[0]) {
				        Membership.SetLinks();
				        Notebook.ViewPanel("Lists");
				        Notebook.SyncToServer();
				    }
				})
			);
	        }
	    },

	    Logout: function() {
	        Mantis.CaesarStone.Pages.Content.LoginViewControl.Logout(
				AjaxProOutput(function(serverResponse) {
				    $("anonymousTemplate").show();
				    $("loggedTemplate").hide();
				    Membership.currentUser = "";
				    Membership.currentFullName = "";
				    $("LoginName").innerHTML = "";
				    Membership.SetLinks();
				    Notebook.Empty();
				    Notebook.ViewPanel("Login");
				})
			);
	    },
	    ForgotPassword: function() {
	        var email = $("txtLoginEmail");
	        if (Membership.ValidateLogin(email, '', true)) {
	            Mantis.CaesarStone.Pages.Content.LoginViewControl.ForgotPassword(
				email.value,
				AjaxProOutput(function(serverResponse) {

				    // message
				    $(Membership.msgHolderId).innerHTML = serverResponse;

				})
			);
	        }
	    },

	    ViewPanel: function(panel) {
	        if (Membership.lastPanel != "") {
	            $(Membership.lastPanel + "Panel").hide();
	        }

	        Membership.lastPanel = panel;
	        $(panel + "Panel").show();
	    }
	}
