﻿//L'Oréal
var Loreal = Loreal || {};
$.extend(Loreal, {
    loadState: false,
    Trace: function (message) {
        if (loc.debug) {
            alert(message);
        }
    },
    toInt: function (value) {
        return parseInt(value.replace(" ", ""));
    },
    toPrice: function (price) {
        return parseFloat(price.replace(" ", "").replace(loc.currency, "").replace(",", "."));
    },
    menuOnMouseOver: function () {
        var $li = $(this).parent();
        $li.addClass("navbar_item_on").removeClass("navbar_item_off");
        $li.find("div:last").addClass("header_catalogue_navbar_item_on").removeClass("header_catalogue_navbar_item_off");
        $li.prev().children().css('visibility', 'visible');
        $li.next().children().css('visibility', 'visible');
        $li.find("div:first").show();
    },
    menuOnMouseOut: function () {
        var $li = $(this).parent();
        $li.addClass("navbar_item_off").removeClass("navbar_item_on");
        $li.find("div:last").addClass("header_catalogue_navbar_item_off").removeClass("header_catalogue_navbar_item_on");
        $li.prev().children().css("visibility", "hidden");
        $li.next().children().css("visibility", "hidden");
        $li.find("div:first").hide();
    },
    search: function () {
        var code = encodeURIComponent($("#header_input_search").val());
        var searchpage = $("#launch_search").attr("href");
        var url = $.format(loc.url.search, searchpage, code);
        $(location).attr("href", url); //Redirect to search page
        return false;
    },
    startLoading: function () {
        $(this).dialog('open');
    },
    stopLoading: function () {
        $(this).dialog('close');
    },
    errorRedirect: function () {
        $(location).attr("href", loc.url.error500);
    },
    print: function () {
        $(this).blur();
        window.print();
        return false;
    },
    viewOrderDetails: function () {
        var id = $(this).attr("href").split('#')[1];
        var url = $.format(loc.url.orderdetails, id);
        $("#orderdetails").load(url, Loreal.afterLoadOrderDetails);
        return false;
    },
    firstviewdetails: true,
    afterLoadOrderDetails: function () {
        if (!Loreal.firstviewdetails) {
            $("#orderdetails").scroll();
        }
        Loreal.firstviewdetails = false;
    },
    loadQuickShop: function () {
        var $this = $(this).blur();
        var href;
        if ($this.attr("nodeName").toLowerCase() == "a") {
            href = $this.attr("href");
        }
        else {
            href = $this.val();
        }
        var val = href.split("#");
        $.data($("INPUT[id$=save_state]").get(0), "quickshop", href);
        var catcode = val[1];
        var prdcode = val[2];
        var url = $.format(loc.url.quickshop, catcode, prdcode);
        $("#productlayout").hide().load(url, Loreal.openQuickShop);
        return false;
    },
    openQuickShop: function () {
        $("#qtylist option:first,#varlist option:first", this).attr("selected", "selected");
        var $varlist = $("#varlist", this).change(Loreal.selectedList);
        if ($varlist.length) {
            Loreal.selectedList.apply($varlist); //Set the first selected shade
        }
        $(".shade_item", this).click(Loreal.selectedShade);
        $("#addtobag", this).click(Loreal.addToBag);
        $("#addtofavorite", this).click(Loreal.addToFavorite);
        $("IMG.imgtog", this).ToggleImage();
        $(this).dialog({
            width: 280,
            resizable: false,
            bgiframe: true,
            modal: true,
            //show: "slide",
            hide: "slide",
            dialogClass: "popin_product_layer",
            position: "center"
        });
        $("#productlayout_aligntitle A").blur();
        $(".popin_close_button").click(Loreal.closeQuickShop).blur();
        if (Loreal.loadState) {
            Loreal.loadState = false;
            $("#addtofavorite", this).click();
        }
        return false;
    },
    closeQuickShop: function () {
        $("#productlayout").dialog("close").dialog("destroy");
        return false;
    },
    addToFavorite: function () {
        $(this).blur();
        if (Loreal.Customer.Signed) {
            var $selected = $("#varlist option:selected");
            var sku = $selected.val().split("#")[0];
            var url = $.format(loc.url.favorite, "add", sku);
            $("#favoriteresult").hide().load(url, Loreal.refreshFavorite);
        }
        else {
            var $state = $("INPUT[id$=save_state]");
            if ($state.length) {
                var state = $.data($("INPUT[id$=save_state]").get(0), "quickshop");
                $("INPUT[id$=save_state]").val(state); //Save state
            }
            $("#popin_login").dialog("open");
        }
        return false;
    },
    refreshFavorite: function () {
        var $favoriteresult = $("#favoriteresult");
        if ($("#favoritesuccess").length) {
            $("#popin").dialog("open");
        }
        else {
            $favoriteresult.show();
        }
    },
    deleteFavorite: function () {
        var $this = $(this).blur();
        var sku = $("INPUT", $this.parent()).val();
        var url = $.format(loc.url.favorite, "delete", sku);
        $("#addtobagresult").hide();
        $("#favoriteresult").hide().load(url, function () {
            var $favoriteresult = $("#favoriteresult");
            if ($("#favoritesuccess").length) {
                $this.parent().parent().remove();
            }
            else {
                $favoriteresult.show();
            }
        });
        return false;
    },
    addToBagFavorite: function () {
        var $this = $(this).blur();
        var varcode = $("INPUT", $this.parent()).val();
        var qty = "1";
        var url = $.format(loc.url.addtobag, varcode, qty);
        $("#favoriteresult").hide();
        $("#addtobagresult").hide().load(url, Loreal.refreshBag);
        return false;
    },
    addToBag: function () {
        $(this).blur();
        var varcode = $("#varlist").val().split('#')[0];
        var qty = $("#qtylist").val();
        var url = $.format(loc.url.addtobag, varcode, qty);
        $("#addtobagresult").hide().load(url, Loreal.refreshBag);
        return false;
    },
    refreshBag: function () {
        var $addtobagresult = $("#addtobagresult");
        if ($("#addtobagsuccess").length) {
            $("#header_bag_container").load(loc.url.refreshbag, Loreal.afterRefreshBag);
        }
        else {
            $addtobagresult.show();
        }
    },
    afterRefreshBag: function () {
        $("#header_bag_title").click(Loreal.openBag)
        $("#header_bag_open_basket_layer").click(Loreal.openBag)
        $("#headerbasket_justadded").click(Loreal.closeBag);
        $("#layerbasket_close").click(Loreal.closeBag);
        $("IMG.imgtog", this).ToggleImage();
        Loreal.closeQuickShop();
        $("BODY").scroll(); //Scroll Top
        Loreal.openBag();
        window.setTimeout('Loreal.closeBag()', 5000);
    },
    openBag: function () {
        $("#headerbasket:hidden").slideDown();
    },
    closeBag: function () {
        $("#headerbasket").slideUp();
    },
    handleTabSelect: function handleTabSelect(event, tabs) {
        $(this).find(".tab_img_lt_on").addClass("tab_img_lt_off").removeClass("tab_img_lt_on");
        $(this).find(".tab_img_rt_on").addClass("tab_img_rt_off").removeClass("tab_img_rt_on");
        var $li = $(tabs.tab).blur().parent();
        $li.prev().addClass("tab_img_lt_on").removeClass("tab_img_lt_off");
        $li.next().addClass("tab_img_rt_on").removeClass("tab_img_rt_off");
    },
    sortByPriceAsc: function () {
        Loreal.sortPaging(this, Loreal.sortPriceAsc);
        return false;
    },
    sortByPriceDesc: function () {
        Loreal.sortPaging(this, Loreal.sortPriceDesc);
        return false;
    },
    sortByNameAsc: function () {
        Loreal.sortPaging(this, Loreal.sortNameAsc);
        return false;
    },
    sortByNameDesc: function () {
        Loreal.sortPaging(this, Loreal.sortNameDesc);
        return false;
    },
    sortPaging: function (element, sortfunc) {
        var $pageselect = $("a[id^='pagingpage'].selected_sort_page_link");
        $("#body_sort_paging a").removeClass("selected_sort_page_link");
        $(element).blur().addClass("selected_sort_page_link");
        var mylist = $("#body_content_item_container");
        var listitems = mylist.find(".body_content_item").removeClass(loc.paging.spacerclass);
        listitems.sort(sortfunc); //Sort table
        $.each(listitems, function (index, item) { mylist.append(item); }); //Append new sort
        listitems.filter(":nth-child(" + loc.paging.spacernth + ")").addClass(loc.paging.spacerclass);
        if ($("#pagingseeall:visible").length) {
            $pageselect.click();
        }
    },
    sortPriceAsc: function (a, b) {
        var compA = Loreal.getPrice(a);
        var compB = Loreal.getPrice(b);
        return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
    },
    sortPriceDesc: function (a, b) {
        var compA = Loreal.getPrice(a);
        var compB = Loreal.getPrice(b);
        return (compA < compB) ? 1 : (compA > compB) ? -1 : 0;
    },
    sortNameAsc: function (a, b) {
        var compA = Loreal.getName(a);
        var compB = Loreal.getName(b);
        return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
    },
    sortNameDesc: function (a, b) {
        var compA = Loreal.getName(a);
        var compB = Loreal.getName(b);
        return (compA < compB) ? 1 : (compA > compB) ? -1 : 0;
    },
    getPrice: function (element) {
        var $element = $(element);
        var $price = $element.find(".product_amount_new");
        if ($price.length == 0) {
            $price = $element.find(".product_amount");
        }
        return parseFloat($price.text().replace(loc.currency, "").replace(" ", "").replace(",", "."));
    },
    getName: function (element) {
        return $(element).find("H2.product_name").text().toLowerCase().replace('"', "");
    },
    selectedShade: function () {
        var sku = this.id.split("_")[1];
        var $selected = $("#varlist option[value^=" + sku + "]").attr("selected", "selected");
        Loreal.setProductData($selected);
        $(this).blur();
        return false;
    },
    selectedList: function () {
        $(this).blur();
        var $selected = $("#varlist option:selected");
        Loreal.setProductData($selected);
    },
    setProductData: function ($selected) {
        var shade = $selected.text();
        var values = $selected.val().split("#");
        var sku = values[0];
        var price = values[1];
        var stock = parseInt(values[2]);
        var newprice = values[3];
        var reference_unit = values[4];
        var reference_quantity = values[5];
        var quantity = values[6];

        //var parsedPrice = strrev(strrev(newprice).substring(2)).replace(",", ".");
        var parsedPrice = newprice.replace(",", ".").replace("€", "");
        var reference_price = parseFloat(parseFloat(parsedPrice) / parseFloat(quantity) * parseFloat(reference_quantity));

        if (reference_price.toString() != 'NaN') {
            $("#product_reference_price_container").text("€" + round(reference_price, 2).replace(".", ","));
            $("span[name*='product_reference_price']").text("€" + round(reference_price, 2).replace(".", ","));
        }

        if (reference_quantity != '') {
            //alert('reference_unit='+reference_unit);
            $("#product_reference_quantity_and_unit").text("/" + reference_quantity + " " + reference_unit);
        }
        var $shades = $(".shade_item");
        if ($shades.length > 0) {
            $shades.removeClass("selected_shade_item");
            $("#shade_" + sku).addClass("selected_shade_item").blur();
            $("#product_shade_preview_text").text(shade);
            $("#img_product_shade").attr("alt", shade).attr("title", shade).attr("src", $.format(loc.packshot.variants, sku));
            $("#img_preview_shade").attr("alt", shade).attr("title", shade).attr("src", $.format(loc.packshot.shades, sku));
            $("#img_title_shade").attr("alt", shade).attr("title", shade).attr("src", $.format(loc.packshot.shadestitle, sku));
        }
        if (stock <= 5) {
            $("#addtobag").hide();
            $("#out_of_stock").show();
        }
        else {
            $("#addtobag").show();
            $("#out_of_stock").hide();
        }
        if (newprice == price) {
            $("#prd_price").removeClass("price_old").addClass("price").text(price).show();
            $("#prd_newprice").text("").show();
        }
        else {
            $("#prd_price").removeClass("price").addClass("price_old").text(price).show();
            $("#prd_newprice").text(newprice).show();
        }
    },
    setLogin: function () {
        $("INPUT[id$=hidden_login]").val($(this).val());
    },
    toggleLoginLayer: function () {
        $(this).blur();
        $("#login_layer").toggle();
    },
    oneZoom: function () {
        Loreal.startLoading.apply($("#popin_loading"));
        var prdcode = $(this).attr("href").split("#")[1];
        var src = $.format(loc.packshot.zoom, prdcode);
        $(Loreal.zoomImg).attr("src", src);
        return false;
    },
    loadZoom: function () {
        $(this).hide();
        $("#productlayout_content").append(this);
        $(this).css("width", "500px").fadeIn();
        $("#productZoom").dialog({
            width: 523,
            bgiframe: true,
            modal: true,
            draggable: false,
            resizable: false,
            position: "center",
            autoOpen: true,
            dialogClass: "popin_zoom",
            hide: "slide",
            show: "slide"
        }).find(".popin_close_button").click(Loreal.closeZoom).blur();
        $("#zoom").click(Loreal.openZoom);
        Loreal.stopLoading.apply($("#popin_loading"));
    },
    openZoom: function () {
        $("#productZoom").dialog("open");
        return false;
    },
    closeZoom: function () {
        $("#productZoom").dialog("close");
        return false;
    },
    errorZoom: function () {
        Loreal.stopLoading.apply($("#popin_loading"));
        $("#zoom").click(Loreal.alertZoom);
        Loreal.alertZoom();
        return false;
    },
    alertZoom: function () {
        alert(loc.zoom.error);
        return false;
    },
    storeLocator: function () {
        var address = $("#loc-address").val();
        var city = $("#loc-city").val();
        var postcode = $("#loc-postcode").val();
        var country = $("#loc-country option:selected").val();
        address = encodeURIComponent($.format(loc.storelocator.addressformat, address, city, postcode, country));
        var url = $.format(loc.url.storelocator, address);
        $(location).attr("href", url);
        return false;
    },
    createGiftWrapping: function () {
        var $gift = $("#giftwrappinglayout");
        $gift.dialog({
            width: 280,
            resizable: false,
            bgiframe: true,
            modal: true,
            autoOpen: false,
            position: "center",
            dialogClass: 'popin_product_layer'
        }).find(".popin_close_button").click(Loreal.closeGiftWrapping).blur();
        $("#addgiftwrapping").click(Loreal.addGiftWrapping);
        $("#removegiftwrapping").click(Loreal.removeGiftWrapping);
        $("#giftwrapmessage").keyup(Loreal.maxLength);
        Loreal.maxLength.apply($("#giftwrapmessage"));
    },
    maxLength: function () {
        var $this = $(this);
        var max = loc.giftwrapping.maxlength;
        var originalVal = $this.val();
        var val = originalVal.replace(/\^+/g, ""); //Remove ' ^ ' character.
        if (val.length > max) {
            val = val.substr(0, max);
        }
        if (originalVal != val) {
            var scrollTop = $this.attr("scrollTop"); //Save scroll bar position
            var selectionStart = $this.attr("selectionStart"); //Save selection start
            var selectionEnd = $this.attr("selectionEnd"); //Save selection end
            $this.val(val);
            $this.attr("scrollTop", scrollTop);  //Set old scroll bar position
            $this.attr("selectionStart", selectionStart);  //Set old selection start
            $this.attr("selectionEnd", selectionEnd);  //Set old selection end
        }
        var text = $.format(loc.giftwrapping.remaining, max - $this.val().length);
        $("#length_left").html(text);
    },
    addGiftWrapping: function () {
        $("#giftwrappingerror").hide();
        $("#giftwrappingload").hide();
        var $giftwrap = $("INPUT[type=radio][name=giftwrap]:checked");
        var from = encodeURIComponent($("#giftwrapfrom").val());
        var to = encodeURIComponent($("#giftwrapto").val());
        var message = encodeURIComponent($("#giftwrapmessage").val());
        if ($giftwrap.length && from != "" && to != "" && message != "") {
            var code = encodeURIComponent($giftwrap.val());
            var url = $.format(loc.url.addgiftwrapping, code, from, to, message);
            $("#giftwrappingload").load(url, Loreal.addGiftWrappingOK);
        }
        else {
            $("#giftwrappingerror").show();
        }
        return false;
    },
    removeGiftWrapping: function () {
        $.get(loc.url.removegiftwrapping, Loreal.removeGiftWrappingOK);
        return false;
    },
    addGiftWrappingOK: function () {
        if ($("#addgiftwrapsuccess").length) {
            $(location).attr("href", $(location).attr("href"));
        }
        else {
            $("#giftwrappingload").show();
        }
    },
    removeGiftWrappingOK: function () {
        $(location).attr("href", $(location).attr("href"));
    },
    openGiftWrapping: function () {
        $("#giftwrappinglayout").dialog("open");
        $("#mycarousel_gift").show().jcarousel();
        return false;
    },
    closeGiftWrapping: function () {
        $("#mycarousel_gift").hide();
        $("#giftwrappinglayout").dialog("close");
        return false;
    },
    labelLink: function () {
        //Prevent checkbox check when clicking on link inside label
        $("A.labellink").click(function () {
            window.open($(this).attr("href"), "_blank");
            return false;
        });
    },
    onReady: function () {
        if (Loreal.Page == null)
            return;
        Loreal.Page.Name = Loreal.Page.Name.toLowerCase().replace(".aspx", "");
        var IsPage = function (pages) {
            var pageName = Loreal.Page.Name;
            var list = pages.split(",");
            var isPage = false;
            $.each(list, function () {
                if (this == pageName) {
                    isPage = true;
                }
                return !isPage;
            });
            return isPage;
        }
        //Fix Url rewriting
        $("form").attr("action", Loreal.Page.Url);
        //All : Set image toggle
        $("IMG.imgtog").ToggleImage();
        //All : Reset password field
        $(".input_container input[id$=password]").val("");
        //Header : Set Menu
        $("#header_catalogue_navbar").find(".navbar_item_off div").mouseover(Loreal.menuOnMouseOver).mouseout(Loreal.menuOnMouseOut); //Init Main Menu
        //Header : Set search text and keypress
        $("#header_input_search").DefaultValue(loc.search.value).keyPressEnter("#launch_search");
        //Footer : Set mailing text and keypress
        $("#footer_input_search INPUT").DefaultValue(loc.newsletter.email).keyPressEnter("A[id$=submitNL]");
        //Header : Set search feature
        $("#launch_search").click(Loreal.search);
        //Header : Set Basket action
        $("#header_bag_title").click(Loreal.openBag)
        $("#header_bag_open_basket_layer").click(Loreal.openBag);
        $("#headerbasket_justadded").click(Loreal.closeBag);
        $("#layerbasket_close").click(Loreal.closeBag);
        //All : Set Ajax Loading
        $("#popin_loading").ajaxStart(Loreal.startLoading).ajaxStop(Loreal.stopLoading).dialog({
            width: 201,
            bgiframe: true,
            modal: true,
            draggable: false,
            resizable: false,
            position: "center",
            autoOpen: false,
            dialogClass: "popin_loading"
        });
        $("#popin_login").dialog({
            width: 320,
            bgiframe: true,
            modal: true,
            draggable: true,
            resizable: false,
            position: "center",
            //show: 'slide',
            //hide: 'slide',
            autoOpen: false,
            dialogClass: "popin_login"
        }).find("#close_popin_login").click(function () {
            $("#popin_login").dialog("close");
            return false;
        }).blur();
        $("A[id$=submitpopinlogin]").click(function () {
            //Need to be in form
            $("/html/body/form[0]").append($("#popin_login").parent());
        });
        $("#popin").dialog({
            width: 320,
            bgiframe: true,
            modal: true,
            draggable: true,
            resizable: false,
            position: "center",
            //show: 'slide',
            //hide: 'slide',
            autoOpen: false,
            dialogClass: "popin_favorite"
        }).find(".close_popin_favorite").click(function () {
            if ($("#successpopinlogin").length) {
                $(location).attr("href", $(location).attr("href"));
            }
            else {
                $("#popin").dialog("close");
            }
            return false;
        }).blur();
        //All : Set Ajax Error
        $(location).ajaxError(Loreal.errorRedirect);
        //Header : Set login menu
        $("#header_login_button_sign_in, #quit_sign_in").click(Loreal.toggleLoginLayer);
        //Headet : Set keypress, login and password text
        $("#login_layer INPUT[id$=login]").DefaultValue(loc.login.email).keyPressEnter("A[id$=submitheaderlogin]");
        $("#login_layer INPUT[id$=password]").DefaultValue(loc.login.password).keyPressEnter("A[id$=submitheaderlogin]");
        if ($("#login_layer .messagekoerror").length || $(location).attr("href").indexOf("ReturnUrl=") > 0) {
            $("#login_layer").toggle();
        }

        //Some pages : Set Carousel if exist
        if ($.fn.jcarousel) {
            $("#mycarousel").show().jcarousel();
            if ($.browser.safari) {
                $(".jcarousel-prev, .jcarousel-next").css("top", "121px");
            }
        }

        //Product : Set Tab if exist
        if (IsPage("product")) {
            var $li = $("#tabs").tabs({ select: Loreal.handleTabSelect }).show().find("li a:first").parent();
            $li.prev().addClass("tab_img_lt_on").removeClass("tab_img_lt_off");
            $li.next().addClass("tab_img_rt_on").removeClass("tab_img_rt_off");

            Loreal.zoomImg = new Image();
            $(Loreal.zoomImg).load(Loreal.loadZoom).error(Loreal.errorZoom);
            $("#zoom").one("click", Loreal.oneZoom);
        }

        //Product & Product Layout
        if (IsPage("subcategory,search,product,content,staticpage")) {
            //Set addToBag action
            $("#addtobag").click(Loreal.addToBag);
            //Set addToFavorite action
            $("#addtofavorite").click(Loreal.addToFavorite);
            //Set product select
            $("#qtylist option:first,#varlist option:first").attr("selected", "selected");
            var $varlist = $("#varlist").change(Loreal.selectedList);
            if ($varlist.length) {
                Loreal.selectedList.apply($varlist); //Set the first selected shade
            }
            $(".shade_item").click(Loreal.selectedShade);
        }

        //Sub category & Search
        if (IsPage("subcategory,search")) {
            var $quickpage = $(".body_content_item");
            //Set Quick Paginate
            $quickpage.quickpaginate({ pager: $("#body_paging"), perpage: loc.paging.perpage, seealltext: loc.paging.seeall, countertext: loc.paging.counter, spacernth: loc.paging.spacernth, spacerclass: loc.paging.spacerclass });
            if ($quickpage.length == 1) {
                $("#body_sort_paging").hide();
            }
            else {
                //Set name sorting
                $("#paging_name_desc").click(Loreal.sortByNameDesc);
                $("#paging_name_asc").click(Loreal.sortByNameAsc);
                //Set price sorting
                $("#paging_price_desc").click(Loreal.sortByPriceDesc);
                $("#paging_price_asc").click(Loreal.sortByPriceAsc);
            }
        }

        //Sub category, Search, content & staticpage
        if (IsPage("subcategory,search,content,staticpage")) {
            //Set QuickShop
            $("a[id^=quickshop]").click(Loreal.loadQuickShop);
        }

        if (IsPage("subcategory,basket,search,one-page-checkout,product")) {
            $("*[class=product_reference_price_container]").each(function () {
                var price = $("input[id=price_" + this.id + "]")[0].value;
                var reference_quantity = $("input[id=reference_quantity_" + this.id + "]")[0].value;
                var quantity = $("input[id=quantity_" + this.id + "]")[0].value;
                price = price.replace(",", ".");
                var reference_price = parseFloat(parseFloat(price) / parseFloat(quantity) * parseFloat(reference_quantity));
                if (reference_price.toString() != 'NaN') {
                    $("#product_reference_price_" + this.id).text("€" + round(reference_price, 2));
                }
            });
        }

        // Homepage (bottomcol picture)
        var images = $('#homepage_bottomcol .image');
        if (images.length > 0) {
            var tampon_top = 0;
            var nb_images = 0;

            while (images[nb_images]) {
                if (tampon_top != images[nb_images].offsetTop) {
                    $(images[nb_images]).addClass('first_image');
                    tampon_top = images[nb_images].offsetTop;
                }
                nb_images++;
            }
        }

        //Open QuickShop if login error
        if ($("#popin_login .messagekoerror").length) {
            var $state = $("INPUT[id$=save_state]");
            if ($state.length) {
                Loreal.loadState = true;
                Loreal.loadQuickShop.apply($state.get(0));
            }
            else {
                $("#addtofavorite").click();
            }
        }

        //Open QuickShop if login success
        if ($("#successpopinlogin").length) {
            Loreal.Customer.Signed = true;
            var $state = $("INPUT[id$=save_state]");
            if ($state.length) {
                Loreal.loadState = true;
                Loreal.loadQuickShop.apply($state.get(0));
            }
            else {
                $("#addtofavorite").click();
            }
        }

        //Favorites
        if (IsPage("favorites")) {
            //Set "delete" and "add to bag"
            $("A[id$=deletefavorite]").click(Loreal.deleteFavorite);
            $("A[id$=addtobagfavorite]").click(Loreal.addToBagFavorite);
        }

        //Product & Receipt : Set print
        $("#print").click(Loreal.print);

        //Login&Register checkout
        if (IsPage("login-register")) {
            //Set Key Press Enter on inputs
            $("#checkout_register INPUT").keyPressEnter("A[id$=submitcheckoutregister]");
            $("#checkout_login INPUT").keyPressEnter("A[id$=submitcheckoutlogin]");
            //Set hidden login
            $("#checkout_register INPUT[id$=email]").blur(Loreal.setLogin);
        }

        //Register
        if (IsPage("register")) {
            //Set Key Press Enter on inputs
            $("#register INPUT").keyPressEnter("A[id$=submitregister]");
            $("#othersubmitregister").click(function () { $("A[id$=submitregister]").clickServer(); return false; });
            //Set hidden login
            $("#register INPUT[id$=email]").blur(Loreal.setLogin);
            if (!Loreal.Page.IsPostBack) {
                $("INPUT[id$=ep0cbPrimaryDeliveryAddress]").attr("checked", "checked");
            }
        }

        //Edit profil
        if (IsPage("edit-profile")) {
            //Set Key Press Enter on inputs
            $("#editprofil INPUT").keyPressEnter("A[id$=submitedit]");
            $("#othersubmitedit").click(function () { $("A[id$=submitedit]").clickServer(); return false; });
            //Set hidden login
            $("#editprofil INPUT[id$=email]").blur(Loreal.setLogin);
        }

        //Register, edit-profil
        if (IsPage("register,edit-profile")) {
            Loreal.labelLink();
        }

        //Forgot Password
        if (IsPage("forgot-password")) {
            //Set password key press
            $("#forgotpassword INPUT").keyPressEnter("A[id$=submitforgotpassword]");
        }

        //Basket
        if (IsPage("basket")) {
            //Remove
            $("A[id$=updatebutton]").each(function () {
                var $select = $(this).parent().parent().find("SELECT");
                if ($select.length == 0) {
                    $(this).remove();
                }
            });
            //Update buttons
            $("A[id$=updatebutton]").click(function () { $("A[id$=refreshbutton]").clickServer(); return false; });
            //Keycode
            $("INPUT[id$=keycode]").keyPressEnter("A[id$=submitkc]");
            Loreal.createGiftWrapping();
            $("#load_gift_popin,#updategiftwrap").click(Loreal.openGiftWrapping);
        }

        //Order History
        if (IsPage("order-history")) {
            //Set view order details
            $(".vieworderdetails").click(Loreal.viewOrderDetails);
            $(".vieworderdetails").eq(0).click();
        }

        //Order History
        if (IsPage("storelocator-search")) {
            $("#loc-search").click(Loreal.storeLocator);
            $("DIV.margin_bloc INPUT").keyPressEnter("#loc-search");
        }

        //All page focus
        $(".setfocus").find("INPUT,SELECT").eq(0).focus();
    }
});

//On DOM Ready Let's Go
$(Loreal.onReady);
function round(valeur, nb_chiffre) {
	var retour = Math.round(valeur * Math.pow(10, nb_chiffre)) / Math.pow(10, nb_chiffre);
	var tab = retour.toString().split(".");
	if (nb_chiffre > 0) {
		var ecart = nb_chiffre;
		if (tab[1]) {
			ecart -= tab[1].length
		} else {
			retour += ".";
		}
		
		for (i = ecart ; i > 0 ; i--) {
			retour += "0";

		}
	}
	return retour.toString().replace(".", ",");
}

function strrev(str) {
  return str.split("").reverse().join("");
}

