﻿(function ($)
{
    var pageloading = "X";

    // Test to see if the login form is display, and if it is, then if the cursor moves out of the login box, the hid it.
    jQuery(document).mousemove(
        function (ev)
        {
            // Only work if login form is displayed
            if (jQuery("#securelink").html().indexOf("secure_ul_login") > -1)
            {
                // Get mouse coords & login form position and size.
                var X = ev.pageX;
                var Y = ev.pageY;
                var O = jQuery("#secure_ul_loginform").offset();
                var W = jQuery("#secure_ul_loginform").width();
                var H = jQuery("#secure_ul_loginform").height();

                // Check if mouse is outside the login box
                if (X < O.left || X > O.left + W || Y < O.top || Y > O.top + H)
                    jQuery("#securelink").html("login");
            }
        });


    // Mouse enter event for loading the Secure Nav menu or login form
    jQuery("#securelink").mouseenter(
    function ()
    {

        // If the login form is not already displayed, then do AJAX to load
        // the login form, or nav menu if currently logged in.
        if (jQuery("#securelink").html().indexOf("secure_ul_login") == -1)
            jQuery.get("/SiteSecurity/Login.aspx?Ajax=GetNavMenu&pageloading=" + pageloading,
                function (data)
                {
                    pageloading = "";

                    // Display the login form or nav menu
                    jQuery("#securelink").html(data);

                    // If we displayed the login form, we need to do some event setup.
                    if (data.indexOf("secure_ul_login") > -1)
                    {
                        // Set focus in the username field.
                        jQuery("#username").focus();

                        // Listen for click of the cancel button;
                        jQuery("#logincancel").click(
                            function ()
                            {
                                jQuery("#securelink").html("login");
                            });

                        // Listen for click on register link
                        jQuery("#registerlink").click(function () { alert('register'); });

                        // Lisetn for keydown to check for pressing the ENTER key in the username box.
                        jQuery("#username").keydown(
                            function (ev)
                            {
                                jQuery("#loginerror").hide();
                                if (ev.keyCode == 13)
                                {
                                    if (jQuery("#password").val() == "") jQuery("#password").focus();
                                    else if (jQuery("#username").val() == "") { }
                                    else jQuery("#loginbutton").click();
                                }
                            });

                        // Lisetn for keydown to check for pressing the ENTER key in the password box.
                        jQuery("#password").keydown(
                            function (ev)
                            {
                                jQuery("#loginerror").hide();
                                if (ev.keyCode == 13)
                                {
                                    if (jQuery("#username").val() == "") jQuery("#username").focus();
                                    else if (jQuery("#password").val() == "") { }
                                    else jQuery("#loginbutton").click();
                                }
                            });

                        // Listen for the click to the login button.
                        jQuery("#loginbutton").click(
	                        function ()
	                        {

	                            // AJAX to validate login
	                            jQuery.get("/SiteSecurity/Login.aspx",
                                    { Ajax: 'DoLogin',
                                        Username: jQuery("#username").val(),
                                        Password: jQuery("#password").val()
                                    },
                                    function (data, textStatus)
                                    {
                                        // Check for Login status
                                        if (data.substr(0, 5) == "Error")
                                        {
                                            // Error occurred.  Display error message
                                            jQuery("#loginerror").html(data.replace("Error: ", ""));
                                            jQuery("#loginerror").show();
                                            jQuery("#password").val("");
                                            jQuery("#username").select();
                                        }
                                        else
                                        {
                                            // Display nav menu.
                                            jQuery("#securelink").html(data);
                                        }

                                    });
	                        });
                    }
                    else
                    {
                        // Listen for click of the logout link;
                        jQuery("#logout").click(
                            function ()
                            {
                                jQuery.get("/SiteSecurity/Login.aspx?Ajax=Logout");
                                jQuery("#securelink").html("<a>login</a>");
                                return false;
                            });

                    }
                });
        else
            jQuery("#username").select();
    });

    jQuery("#securelink").mouseenter();

})(jQuery);

