﻿/// <reference path="/Shared/Libs/jquery/3.4.1/jquery.js" />
/// <reference path="/Shared/Script/SharedCommon.js" />
/// <reference path="/Shared/Script/SharedVex.js" />
/// <reference path="/Shared/Script/Ajax.js" />
$(function () {
    BrakesSiteInit();
});


function BrakesSiteInit() {
    setTimeout(BuildCommonTips, 200);

    $("body").on("NeedImageFill", NeedImageFill);
    $("body").trigger("NeedImageFill");


    $("#BrakesSearchInput").enterKey(BrakesSearchBeginDesktop, true);
    $("body").on("click", "#BrakesSearchButton", BrakesSearchBeginDesktop);


    $("#BrakesSearchInputMobile").enterKey(BrakesSearchBeginMobile, true);
    $("body").on("click", "#BrakesSearchButtonMobile", BrakesSearchBeginMobile);

    $(".LoginLinkContainer .dropdown-button").click(OpenLoginDialog);
    $(".ModalLoginContainer .ModalClose").click(CloseLoginDialog);

    $(".ModalLoginContainer .Emailaddress").enterKey(function () {
        $(".ModalLoginContainer .Password").focus();
    }, true);

    $(".ModalLoginContainer .Password").enterKey(LoginButtonClick, true);
    $(".ModalLoginContainer .AccountAction.Login").enterKey(LoginButtonClick, true);
    $(".ModalLoginContainer .AccountAction.Login").click(LoginButtonClick);
    $(".UsernameContainer .dropdown-button").click(UsernameClick);


    var bLazy = new Blazy({
        loadInvisible: true,
        success: function (element) {
            setTimeout(function () {
                // We want to remove the loader gif now.
                // First we find the parent container
                // then we remove the "loading" class which holds the loader image
                var parent = element.parentNode;
                parent.className = parent.className.replace(/\bloading\b/, '');
            }, 200);
        }
    });



    setTimeout(function () {
        bLazy.revalidate();
    }, 2000);
}


function BrakesSearchBeginMobile() {
    var term = $("#BrakesSearchInputMobile").val();
    BrakesSearchBegin(term);
}


function BrakesSearchBeginDesktop() {
    var term = $("#BrakesSearchInput").val();
    BrakesSearchBegin(term);
}

function BrakesSearchBegin(term) {
    if (term == null) {
        term = "";
    }
    term = term.trim();

    if (term === "" || term.length < 3) {
        ErrorShake($("#BrakesSearchContainer .Inner"));
        ErrorShake($("#TopMobileSearchBar .Inner"));
        return;
    }

    $("#PleaseWaitOverlay").show();

    term = encodeURIComponent(term);
    window.location = "/sok?q=" + term;
}



function NeedImageFill() {

    $(".ImageFill").not(".ImageFilled").addClass("ImageFilling");

    $(".ImageFilling").imgLiquid({
        fill: false,
        horizontalAlign: "center",
        verticalAlign: "top"
    });

    $(".ImageFilling").addClass("ImageFilled").removeClass("ImageFilling");

}



function OpenLoginDialog(e) {
    var login = $(this).siblings(".dropdown-content");
    login.toggle();

    var email = $(login).find("input.Emailaddress");
    if (!IsNullOrUndefined(email)) {
        email.focus();
    }
}



function CloseLoginDialog(e) {
    var login = $(".ModalLoginContainer");
    login.toggle();
}


function LoginButtonClick(e) {
    var data = {};
    data.username = GetValueOrShake($(".ModalLoginContainer .Emailaddress"));
    data.password = GetValueOrShake($(".ModalLoginContainer .Password"));

    var err = $(".ModalLoginContainer input.Error");
    if (err.length > 0) {
        return false;
    };

    var button = $(".ModalLoginContainer .AccountAction.Login");

    AjaxCall("/Pages/Login.aspx/LoginNow", data, LoginButtonClickComplete, HandleAjaxErrorVex, button);

    return false;
}


function LoginButtonClickComplete(msg, button) {
    var status = $(button).siblings("span.Status");

    if (IsMsgNull(msg)) {
        status.text("Det oppsto en feil ved innlogging");
        return;
    }

    if (msg.d.Success === false) {
        status.text("Feil brukernavn eller passord.");
        return;
    }

    var path = window.location.pathname;
    var paths = path.split("/");

    if (paths.length <= 0) {
        window.location = "/";
        return;
    }

    var last = paths[paths.length - 1];

    if (last == null || last === "" || last === "logginn" || last === "loggain") {
        window.location = "/";
        return;
    }

    last = last.replace(/-/g, "/");
    if (!last.StartsWith("/")) {
        last = "/" + last;
    }

    window.location = last;
}


function UsernameClick(e) {
    var actions = $(this).siblings(".dropdown-content");
    actions.toggle();
}

