﻿
function doLogin(returnFunction) {

    $("#loginCancel").click(function () {
        $("#loginPanel").dialog("close");
        if (returnFunction)
            returnFunction(null);
    });

    $("#forgotCancel").click(function () {
        $("#forgotPasswordPanel").dialog("close");
        if (returnFunction)
            returnFunction(null);
    });

    $("#loginSubmit").click(function () {
        if ($("#loginForm").valid()) {
            login();
        }
    });

    $("#loginEmail, #loginPassword").keypress(function (event) {
        if (event.which == 13 & $("#loginEmail").val().length > 0 & $("#loginPassword").val().length > 0)
            $("#loginSubmit").click();
    });
    
    $("#header_register").click(function () {
        doRegistration(returnFunction);
        $("#loginPanel").dialog("close");
    });

    $("#loginForm").validate();

    $("#passwordSubmit").click(function () {
        if ($('#forgotPasswordForm').valid()) {
            sendPassword();
        }
    });
    
    $("#header_forgot").click(function () {
        showForgotPassword();
        $("#loginPanel").dialog("close");
    });
    
    init();
    
    function init() {
        show();
    }
    
    function show() {
        $("#forgotPasswordPanel").dialog("close");
        $("#loginPanel").dialog({ title: "Login",
            closeOnEscape: true,
            draggable: false,
            modal: true,
            resizable: false
        });
    }

    function showForgotPassword() {
        $("#forgotPasswordPanel").dialog({ title: "",
            closeOnEscape: true,
            draggable: false,
            modal: true,
            resizable: false
        });
    }

    function sendPassword() {
        var email = $("#passwordEmail").val();
        $.ajax({
            url: "/user/forgotpassword?email=" + email,
            success: function (success) {
                if (success) {
                    if ($('#passwordMessage').hasClass('validation-summary-errors')) {
                        $('#passwordMessage').removeClass('validation-summary-errors');
                    }
                    $('#passwordMessage').text($('#forgot_password_success').text().trim());
                    show();
                }
                else {
                    $('#passwordMessage').text($('#forgot_password_fail').text().trim());
                    $('#passwordMessage').addClass('validation-summary-errors');
                }
            },
            error: function () {
                $('#passwordMessage').text($('#forgot_password_fail').text().trim());
                $('#passwordMessage').addClass('validation-summary-errors');
            }
        });
    }
    
    function login() {

        var email = $("#loginEmail").val();
        var password = $("#loginPassword").val();

        var data = { email: email, password: password };

        $.ajax({
            data: $.toJSON(data),
            url: "/static/services/shared/service.asmx/Login",
            success: function (msg) {
                if (msg.d) {
                    $("#loginPanel").dialog("close");
                    setLocation(msg.d);
                    updateNavigation(msg.d);
                    if (returnFunction)
                        returnFunction(msg.d);
                }
                else {
                    $('#loginMessage').text($('#login_fail').text().trim());
                    $('#loginMessage').addClass('validation-summary-errors');
                    
                }
            }
        });
    }
    
    function refresh(user) {
        updateNavigation(user);
    }
}

function doLogout(returnFunction) {
    $.cookie("UserKey", null, { path: '/' });
    $.cookie("ZipCode", null, { path: '/' });
    window.location.href = "/";
}

function getUserKey() {
    if(isAuthenticated())
        return $.cookie("UserKey");
    return null;
}

function isAuthenticated() {
    var userkey = $.cookie("UserKey");
    var auth = (!jQuery.isEmptyObject(userkey) && userkey != null && userkey != undefined && userkey != "");
    return auth;
}
