﻿var currentUrl = window.location.toString();

// FUNCTION FOR MAKING A VALID FILENAME FROM RANDOM TEXT ---
function makeValidFileName(textInput) {

    // LOWERCASE 
    var fileName = textInput.toLowerCase();
    // TRANSFORM ÅÄÖ + +ÉÈ
    fileName = fileName.replace(/å|ä|á|à/gi, "a").replace(/ö|ø/gi, "o").replace(/é|è/gi, "e");
    // DELETE ALL SPACES AND SPECIAL CHARACTERS
    fileName = fileName.replace(/[^\w]/ig, "");

    return (fileName);
}

// COOKIE FUNCTIONS
function createCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/";

}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

// CHECK AND SET VAT (IMMEDIATELY)
function checkVat() {

    // WHERE TO IMPLEMENT THE VAT CHECK (WHEN TESTING)
    //if (currentUrl.match("pInk") != null) {

    // BIND VAT RADIO BUTTON CLICK TO COOKIE FUNCTION
    $(".VatSelectorInput input").bind("mousedown", function () {
        if ($('.VatSelectorInput input').is(':checked')) {
            $("h1").text("click - was checked, setting NoVat");
            createCookie("protectyVatCookie", "NoVat", 730);
        }
        else if (!$('.VatSelectorInput input').is(':checked')) {
            $("h1").text("click - was unchecked, setting WithVat");
            createCookie("protectyVatCookie", "WithVat", 730);
        }
    });

    // READ COOKIE AND CHECK FOR NULL VALUE
    var vatCookie = readCookie("protectyVatCookie");
    // alert("on load - cookie is: " + vatCookie);
    if (vatCookie == null) {
        vatCookie = "";
    }

    // IF GOOGLE REDIRECT, DO NOT RUN SCRIPT BUT SET COOKIE IF NOT ALREADY SET
    if (location.search.match(/gclid/i) && vatCookie == "") {
        createCookie("protectyVatCookie", "WithVat", 730);
    } 
    else {

        // COOKIE SAYS NO VAT - UPDATE COOKIE AND CLICK VAT CHECKBOX ONCE IF CHECKED
        if (vatCookie == "NoVat") {
            createCookie("protectyVatCookie", "NoVat", 730);
            if ($('.VatSelectorInput input').is(':checked')) {
                //alert("cookie says NoVat, but VatSelector is checked - setting it unchecked and running script now");
                $(".VatSelectorInput input").removeAttr('checked');
                VAT_Changed('ctl00_ciLeft_ctl12_chkVAT');
            }
        }

        // COOKIE SAYS WITH VAT - CLICK VAT CHECKBOX ONCE IF UNCHECKED
        else if (vatCookie == "WithVat") {
            createCookie("protectyVatCookie", "WithVat", 730);
            if (!$('.VatSelectorInput input').is(':checked')) {
                //alert("cookie says WithVat, but VatSelector is unchecked - setting it checked and running script now");
                $(".VatSelectorInput input").attr('checked', 'checked');
                VAT_Changed('ctl00_ciLeft_ctl12_chkVAT');
            }
        }

        // IF NO COOKIE SET, SHOW POPUP
        else {
            vatPopupCode = "";
            vatPopupCode += '<div id="VatPopupBg"></div>';
            vatPopupCode += '<div id="VatPopupWrapper">';
            vatPopupCode += '<div id="VatPopupText">';
            vatPopupCode += '<h2>Välkommen till Protecty!</h2>';
            vatPopupCode += '<div id="WithVat" onclick="setVat(\'WithVat\');"><div>';
            vatPopupCode += '<strong>Jag är privatperson och vill se priser <span style="text-decoration: underline">med</span> moms</strong><br>(show prices incl. VAT)';
            vatPopupCode += '</div></div>';
            vatPopupCode += '<div id="NoVat" onclick="setVat(\'NoVat\');"><div>';
            vatPopupCode += '<strong>Jag är företagare och vill se priser <span style="text-decoration: underline">utan</span> moms</strong><br>(show prices without VAT)';
            vatPopupCode += '</div></div>';
            vatPopupCode += '<div id="VatFootnote">(Du kan enkelt ändra detta val senare, i kundvagnen uppe till höger.)</div>';
            vatPopupCode += '';
            vatPopupCode += '';
            vatPopupCode += '';
            vatPopupCode += '</div>';
            vatPopupCode += '</div>';

            vatPopupCode += '';
            //alert(vatPopupCode);
            $("body").prepend(vatPopupCode);
        }
    }
    //}
}
checkVat();

// SET THE VAT COOKIE AND CLOSE THE POPUP
function setVat(vatChoice) {
    if (vatChoice == "NoVat") {
        createCookie("protectyVatCookie", "NoVat", 700);
        if ($(".VatSelectorInput input:checked").length) {
            $(".VatSelectorInput input").removeAttr('checked');
            VAT_Changed('ctl00_ciLeft_ctl12_chkVAT');
        }
    }
    else {
        createCookie("protectyVatCookie", "WithVat", 700);
        if (!$(".VatSelectorInput input:checked").length) {
            $(".VatSelectorInput input").attr('checked', 'checked');
            VAT_Changed('ctl00_ciLeft_ctl12_chkVAT');
        }
    }
    $("#VatPopupBg").fadeOut("fast");
    $("#VatPopupWrapper").fadeOut("fast");
}


// CHECK AND INDICATE WHAT PRODUCT CATEGORY IS ACTIVE (IMMEDIATELY)
var currentCatNumber = "";
function checkCurrentCategory() {
    var catNumberPosition = currentUrl.indexOf("-c-");
    if (catNumberPosition != -1) {
        currentCatNumber = currentUrl.substr(catNumberPosition, 7);
        //alert(currentCatNumber);  

        $("div.ProductMenuBody a").each(function () {
            if ($(this).attr("href") != undefined) {
                if ($(this).attr("href").match(currentCatNumber) != null) {
                    $(this).addClass("ProductCategoryNameSelected");

                    // TOP CATEGORY
                    $(this).closest(".ProductTreeLevelWrapper1").find(".ProductCategoryLevel1 .ProductCategoryNameWrapper a").addClass("TopCategoryNameSelected");
                }
            }
        });

    }

    // HIDE LEFT MENU IF NO TOP CATEGORY IS SELECTED
    if (!$(".TopCategoryNameSelected").length) {
        $(".ProductMenuHeader").hide();
        $(".ProductMenuFooter").hide();
        $(".ProductMenuBody").css("background", "none").css("height", "0px").css("padding", "0px");
        $(".ProductTreeLevelWrapper2").hide();
    }

}
checkCurrentCategory();

// FUNCTION FOR RENDERING THE CONTACT AREA
function showContactArea() {
    if ($("#ContactAreaDefinitions").length) {

        // CREATE TABLE
        $("#ContactAreaDefinitions").wrapInner("<table id='ContactArea'></table>");

        // CREATE TOP HEADER & FOOTER
        $("#ContactAreaDefinitions").prepend("<div class='ContactAreaHeader'><h2>" + $("h2#ContactAreaHeader").text() + "</h2></div>");
        $("h2#ContactAreaHeader").remove();
        $("#ContactAreaDefinitions").append("<div class='ContactAreaFooter'></div>");

        // CREATE SECTION HEADERS
        $("#ContactAreaDefinitions h3").wrap("<tr><td colspan='4'></td></tr>");

        // CREATE CONTENT
        $("#ContactAreaDefinitions div.BasicInfo").each(function () {
            var basicRowCode = "";
            basicRowCode += "<tr class='BasicInfo' id='" + $(this).attr("id") + "_Rendered'>";
            basicRowCode += "<td class='Col1'>" + $(this).find("span.Col1").html() + "</td>";
            basicRowCode += "<td class='Col2'>" + $(this).find("span.Col2").html() + "</td>";
            basicRowCode += "<td class='Col3'>" + $(this).find("span.Col3").html() + "</td>";
            basicRowCode += "</tr>";
            basicRowCode += "<tr class='ExpandingInfo'><td colspan='4'><div class='Container'>";
            basicRowCode += $(this).find("div.HiddenInfo").html();
            basicRowCode += "</div></td></tr>";
            $(this).before(basicRowCode);
            $(this).remove();
        });

        $("#ContactAreaDefinitions td.Col3").after("<td class='Col4'>Läs mer ></td>");


        // CODE REAPPLY FOR BUGGY IE7
        var allContent = $("#ContactAreaDefinitions").html();
        $("#ContactAreaDefinitions").html("");
        $("#ContactAreaDefinitions").html(allContent);
        $("#ContactAreaDefinitions").show("fast");

        // BIND CLICK FUNCTION TO BASIC INFO ROWS
        $(".BasicInfo").bind("click", function () {
            $(this).toggleClass("BasicInfoOpen");
            $(this).next().find("div.Container").slideToggle("fast");

            if ($(this).hasClass("BasicInfoOpen") == true) {
                $(this).find("td.Col4").text("Minimera >");
            }
            else {
                $(this).find("td.Col4").text("Läs mer >");
            }
        });

    }
}

// THE FAQ ANSWER OPEN/CLOSE FUNCTIONALITY ---
function enableFaqFunctions() {
    $(".FaqQuestion").bind("click", function () {
        $(this).toggleClass("FaqQuestionOpen");
        $(this).next().slideToggle("fast");
    });
}

// AUTOMATIC PAGE LINKS INTO CUSTOMER SERVICE BOX
function createLinkBox() {
    var linkBoxCode = "";
    $(".PageLink").each(function () {
        linkBoxCode += "<div class='SupportDivider'><a href='";
        linkBoxCode += $(this).attr("href");
        linkBoxCode += "'><span class='SupportLink'>";
        linkBoxCode += $(this).find(".LinkText").text();
        linkBoxCode += "</span></a></div>";
    });
    $(".PageMenuWrapper").remove();
    $(".SupportBody").prepend(linkBoxCode);
}



// VISA UNDERKATEGORIER I MAINYTA
function displayMainAreaSubcategories() {
    if ($(".CategoryPageWrapper").length) {
        var mainCategoryCode = "";
        var cleanedCatNumber = currentCatNumber.replace(/-c-/gi, "").replace("-", "");

        // OM PÅ NIVÅ 7, GÖR INGET
        if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper7").length) {
            mainCategoryCode = "";
        }
        // NIVÅ 6
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper6").length) {
            $(".ProductCategoryLevel7 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }
        // NIVÅ 5
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper5").length) {
            $(".ProductCategoryLevel6 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }
        //NIVÅ 4
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper4").length) {
            $(".ProductCategoryLevel5 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }
        // NIVÅ 3
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper3").length) {
            $(".ProductCategoryLevel4 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }
        // NIVÅ 2
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper2").length) {
            $(".ProductCategoryLevel3 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }
        //NIVÅ 1
        else if ($(".ProductMenuBody .ProductCategoryNameSelected").closest(".ProductTreeLevelWrapper1").length) {
            $(".ProductCategoryLevel2 .ProductCategoryNameWrapper a").each(function () {
                mainCategoryCode += "<a class='MainCatLink' href='" + $(this).attr("href") + "'>";
                mainCategoryCode += "<span class='Wrapper'><span class='ImgWrapper'>";
                mainCategoryCode += "<img src='/App_Themes/FrameworkBasic/images/custom/transparent.gif' style='background: url(/pub_docs/files/category-images/";
                mainCategoryCode += cleanedCatNumber + "_" + makeValidFileName($(this).text()) + ".jpg)' alt='" + $(this).text() + "' />";
                mainCategoryCode += "</span><span class='CatName'>" + $(this).text() + "</span>";
                mainCategoryCode += "</span></a>";
            });
        }

        $(".CategoryPageText").append("<div>" + mainCategoryCode + "</div>");
        $(".CategoryPageImage").hide();
        

        // SET ZERO RIGHT MARGIN ON END OF EACH ROW
        $("a.MainCatLink:eq(3), a.MainCatLink:eq(7), a.MainCatLink:eq(11), a.MainCatLink:eq(15), a.MainCatLink:eq(19), a.MainCatLink:eq(23)").css("margin-right", "0");
        $("a.MainCatLink:eq(27), a.MainCatLink:eq(31), a.MainCatLink:eq(35), a.MainCatLink:eq(39), a.MainCatLink:eq(43)").css("margin-right", "0");
    }
}

// RELOAD PAGE IF CURRENT CATEGORY IS CLOSED
function reloadClosedCategory() {
    if ($(".ProductMenuBody .ProductCategoryNameSelected").length && (location.search == ("" || null))) {
        if ($(".ProductMenuBody .ProductCategoryNameSelected").parent().prev().find("img").attr("src").match(/close/i) != null) {
            window.location = window.location;
        }
    }
}
reloadClosedCategory()

function reloadPageMenu() {
    // MISSING PRODUCT CATEGORY TREE - If so, reload (TEMP FIX)
//    if ($("div.CategoryPageWrapper").length || $("div.ProductPageWrapper").length) {
//        if ((window.location.toString().match("-c-") == "-c-") && ($("div.ProductCategoryLevel2").html() == null)) {
//            window.location = window.location;
//        }
//    }
}



// START PAGE LINK BOXES
function initializeStartLinkBoxes() {
    if ($("#StartPageLinkArea").length) {
        

        // FIX WIDTH OF START PAGE 
        $(".PageDetailsWrapper").addClass("StartPageWrapper");

        var linkBoxCode = "";
        // SHOW HEADER
        var headerCode = $(".PageDetailsHeader").html();
        $(".PageDetailsHeader").remove();
        $(".PageDetailsWrapper").prepend(headerCode);

        // GENERERA DIVARNA MED BILDER
        $("#StartPageLinkArea div.StartLinkBoxDefinition").each(function () {

            var linkBoxHref = $(this).find(".PageName").text().replace(/ /g, "");
            var linkBoxImageName = $(this).find(".ImageName").text().replace(/ /g, "");
            var linkBoxHeader = $(this).find(".Header").text();
            var linkBoxText = $(this).find(".Text").text();

            linkBoxCode += "<div class='StartLinkBox'>";

            linkBoxCode += "<a href='" + linkBoxHref + "' title='" + linkBoxHeader + "'>";

            linkBoxCode += "<span class='ImgWrapper'><img src='/pub_docs/files/linkbox-images/" + linkBoxImageName + "' alt='' /></span>";

            linkBoxCode += "<span class='StartLinkBoxText'>";

            // SKRIV BARA UT RUBRIKEN OM DEN INNEHÅLLER GILTIGA TECKEN
            if (linkBoxHeader.match(/\w/) != null) {
                linkBoxCode += "<span class='StartLinkBoxHeader'>" + linkBoxHeader + "</span>";
            }

            // SKRIV BARA UT TEXTEN OM DEN INNEHÅLLER GILTIGA TECKEN
            if (linkBoxText.match(/\w/) != null) {
                linkBoxCode += linkBoxText;
            }

            linkBoxCode += "</span></a>";
            linkBoxCode += "</div>";

        });

        $("#StartPageLinkArea").html(linkBoxCode + "<div class='Clear'></div>");
        $("#StartPageLinkArea .StartLinkBox:eq(3), #StartPageLinkArea .StartLinkBox:eq(6), #StartPageLinkArea .StartLinkBox:eq(9), #StartPageLinkArea .StartLinkBox:eq(12)").css("clear", "both");
        $("#StartPageLinkArea .StartLinkBox:eq(2), #StartPageLinkArea .StartLinkBox:eq(5), #StartPageLinkArea .StartLinkBox:eq(8), #StartPageLinkArea .StartLinkBox:eq(11)").css("margin-right", "0");
    }
}

// FIXES WHEN ON CHECKOUT PAGE
function fixCheckout() {

    if ($(".MainAreaCheckout").length) {

        // HIDE FOOTER CONTENT
        $(".FooterArea").hide();
        var checkoutPhoneCode = "<img src='/App_Themes/FrameworkBasic/images/custom/checkout-phone.png' ";
        checkoutPhoneCode += "alt='Frågor? Ring 0200-28 40 40!' style='border: 1px solid #999; margin: 20px 0;' />";
        $(".MainAreaCheckout").append(checkoutPhoneCode);
    }
}

// CREATE MANUFACTURER DROPDOWN IN CUSTOMER SERVICE BOX
function createManufacturerDropdown() {

    $("#ManufacturerLinks").wrapAll("<div class='SupportDivider'><div id='ManufacturerLinkWrapper'></div></div>");
    $("#ManufacturerLinkWrapper").prepend("<span>Våra märken</span>");
    $("#ManufacturerLinkWrapper span").click(function () {
        $("#ManufacturerLinks").slideToggle();
        $("#ManufacturerLinkWrapper span").toggleClass("Open");
    });
}
createManufacturerDropdown();

// SCRIPTS TO BE RUN AT STARTUP BELOW -----
$(document).ready(function () {

    reloadPageMenu();
    if ($('.MainCatLink').length == 0) {
        displayMainAreaSubcategories();
    }
    enableFaqFunctions();
    showContactArea();
    createLinkBox();
    initializeStartLinkBoxes();
    fixCheckout();

});




