﻿$(document).ready(function () {

    function signIn() {

        if ($("#signinForm").is(":hidden")) {
            $("#signinForm").fadeIn("slow");
            $('#tblSignIn').show();
            $('#tblResetPassword').hide();
            $("#siemail").focus();
            $("#backgroundPopup").css({ "opacity": "0.7" });
            $("#backgroundPopup").fadeIn("slow");
            //setTimeout('CountDown()',100);
        }
        else {
            $("#signinForm").fadeOut("slow");
            $("#backgroundPopup").fadeOut("slow");
        }
    }

    $(".signinModal").click(function () { signIn() });
    $(".close").click(function () { closeSignIn() });
    $('#spanResetPwd').click(function () { $('#tblResetPassword').show(); $('#tblSignIn').hide(); });
    $('#btnResetPassword').click(function () { MakeAjaxRequestResetPassword(); });

    //protect credentials
    $('#sipwd').blur(function () {
        EncryptEmailAndPwd();
    });

    //submission scripts
    $('.authenticate').click(function () {
        //statements to validate the form	
        var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/;
        var pwd = $("#sipwd").val();
        var email = $("#siemail").val();

        if (!filter.test(email)) {
            $('.siemail-missing').show();
        } else { $('.siemail-missing').hide(); }
        if (pwd == "") {
            $('.sipwd-missing').show();
        } else { $('.sipwd-missing').hide(); }
        if ((pwd == "") || (!filter.test(email)) || (email == "")) {
            return false;
        }

        if ($('#esiemail').val() != "" && $('#esipwd').val() != "") {
            MakeAjaxRequestSignIn();
        }

        //stay on the page
        return false;

    });


});     //doc ready







function EncryptEmailAndPwd() {


    $("#loader").show();
    $("#loader").addClass("loading");

    var email = $('#siemail').val();
    var pwd = $('#sipwd').val();
    var siip = $("#hiddensigninip").val();
    var token = $("input:hidden[name=__RequestVerificationToken]").val();

    var dataString = { email: email, pwd: pwd, ip:siip, __RequestVerificationToken: token };

    $.ajax({
        type: "POST",
        async: false,
        traditional: true,
        url: "/Admin/EncryptCredentials",
        data: dataString,
        success: EncryptSuccess

    });
}



function EncryptSuccess(data, status) {

    var eEmail = data[1];
    var ePwd = data[3];

    $("#esiemail").val(eEmail);
    $("#esipwd").val(ePwd);

    $("#loader").removeClass("loading"); 
    $("#sifeedback").show("slow");
    $("#sifeedback").html("Values Encrypted. Proceed.");
    $("#signinbtn").removeAttr("disabled");
    $("#signinbtn").val('Proceed');


}

function closeSignIn() {
    $("#signinForm").fadeOut("slow");
    $("#backgroundPopup").fadeOut("slow");
}



function MakeAjaxRequestSignIn() {


    $("#loader").addClass("loading");
    $("#sifeedback").html("Authenticating...");

    var sipwd = $("#esipwd").val();
    var siemail = $("#esiemail").val();
    var siip = $("#hiddensigninip").val();
    var token = $("input:hidden[name=__RequestVerificationToken]").val();

    var dataString = { sEmail: siemail, sPwd: sipwd, ip:siip, __RequestVerificationToken: token };
   
//    alert('sEmail=' + siemail);
//    alert('sPwd=' + sipwd);

    $.ajax({
        type: "POST",
        traditional: true,
        url: "/Admin/AuthenticateUser",
        data: dataString,
        success: SISuccess,
        error: SIError 
    });

}

function SISuccess(data, status) {

    var YorN = data[1];

    if (YorN == "Y") {
        $("#loader").removeClass("loading");
        $("#sifeedback").html("Redirecting...");
        setTimeout('window.location.replace("/Admin/AdminMenu");', 1); //100);

    }
    else {
        $("#loader").removeClass("loading");
        $("#sifeedback").html("Invalid credentials!");
        setTimeout('$("#backgroundPopup").fadeOut("slow"); $("#signinForm").hide("slow")', 500);
        setTimeout('window.location.replace("/Error/NoAccess");', 3000);
    }
}



function SIError(request, status, error) {
  
    $("#loader").removeClass("loading");
    $("#sifeedback").html("Invalid credentials!!!!!");
    setTimeout('$("#backgroundPopup").fadeOut("slow"); $("#signinForm").hide("slow")', 3000);
    setTimeout('window.location.replace("/Error/NoAccess");', 800);

}







function MakeAjaxRequestResetPassword() {

    $("#loader").addClass("loading");

    var rpemail = $("#rpEmail").val();
    var siip = $("#hiddensigninip").val();
    var token = $("input:hidden[name=__RequestVerificationToken]").val();


    if (rpemail == "") {
        $("#loader").removeClass("loading");

        $("#resetPasswordFeedback").show();
        $("#resetPasswordFeedback").html("Enter Your Email Address");
        
        return false;
    }
    else {

        var dataString = { sEmail: rpemail, ip: siip, __RequestVerificationToken: token };

        $.ajax({
            type: "POST",
            traditional: true,
            url: "/Home/AjaxPwdReset",
            data: dataString,
            success: aprSuccess,
            error: aprError
        });
    }
}


function aprSuccess(data, status) {

    var YorN = data[1];

    if (YorN == "Y") {
        $("#loader").removeClass("loading");
        $("#resetPasswordFeedback").show();
        $("#resetPasswordFeedback").html("Your Password has been reset and Emailed to you.");
    }
    else {
        $("#loader").removeClass("loading");
        $("#resetPasswordFeedback").show();
        $("#resetPasswordFeedback").html("No Such Account located. You may wish to create an account? <br/><a href='/Account/Register' title=''>Create Account</a>");
    }
}



function aprError(request, status, error) {
    $("#loader").removeClass("loading");
    $("#resetPasswordFeedback").html("Unable to locate Account with such Email Address:"+  $("#rpEmail").val()+".<br/> <a href='/Account/Register' title=''>Create Account</a>");
    setTimeout('$("#backgroundPopup").fadeOut("slow"); $("#signinForm").hide("slow")', 5500);
}
