﻿Type.registerNamespace("Res.Commerce.Web.Composants.Commandes.V01");
Res.Commerce.Web.Composants.Commandes.V01.QuickLook = function (element) {
    Res.Commerce.Web.Composants.Commandes.V01.QuickLook.initializeBase(this, [element]);

    this._produit = null;
    this._couleurComboId = null;
    this._tailleComboId = null;
    this._disponibiliteSpanId = null;
    this._aPartirDeSpanId = null;
    this._prixSpanId = null;
    this._libelleEnStock = null;
    this._auLieuDeSpanId = null;
    this._prixBarreSpanId = null;
    this._tauxDemarqueSpanId=null;
    this.ProduitColorisSelectionne = null;
    this._tailleSelectionne = null;

};
Res.Commerce.Web.Composants.Commandes.V01.QuickLook.prototype = {
    initialize: function () {
        Res.Commerce.Web.Composants.Commandes.V01.QuickLook.callBaseMethod(this, "initialize");
        if (this._produit != null) {
            var couleurCombo = $get(this._couleurComboId);
            if (couleurCombo != null) {
                var couleurChangeDelegate = Function.createDelegate(this, this.ChangeCouleurHandler);
                $(couleurCombo).change(couleurChangeDelegate);
            }

            var tailleCombo = $get(this._tailleComboId);
            if (tailleCombo != null) {
                var tailleChangeDelegate = Function.createDelegate(this, this.ChangeTailleHandler);
                $(tailleCombo).change(tailleChangeDelegate);
            }
            if (this._tailleSelectionne != null)
                this.ChangeCouleurHandler(this._tailleSelectionne);
        }
    },
    ChangeTailleHandler: function () {
        this.SetDisponibilite();
        this.SetPrix();
    },
    ChangeTauxDemarque: function () {
        var spanTauxDemarque = $get(this._tauxDemarqueSpanId);
        if (spanTauxDemarque != null) {
            if (this.ProduitColorisSelectionne != null) {
                if (this.ProduitColorisSelectionne.TauxDemarque.Taux != 0) {
                    $(spanTauxDemarque).children("img").attr("src", this.ProduitColorisSelectionne.TauxDemarque.Picto.Src);
                    $(spanTauxDemarque).children("img").attr("alt", this.ProduitColorisSelectionne.TauxDemarque.Picto.Alt);
                    $(spanTauxDemarque).children("img").attr("title", this.ProduitColorisSelectionne.TauxDemarque.Picto.Title);
                    $(spanTauxDemarque).children("a").attr("target", this.ProduitColorisSelectionne.TauxDemarque.Picto.Target);
                    $(spanTauxDemarque).children("a").attr("href", this.ProduitColorisSelectionne.TauxDemarque.Picto.Href);
                    $(spanTauxDemarque).children("a").attr("title", this.ProduitColorisSelectionne.TauxDemarque.Picto.Title);
                }
            }
            else {
                if (this._produit.PictoTauxDemarque.Src != "") {
                    $(spanTauxDemarque).children("img").attr("src", this._produit.PictoTauxDemarque.Picto.Src);
                    $(spanTauxDemarque).children("img").attr("alt", this._produit.PictoTauxDemarque.Picto.Alt);
                    $(spanTauxDemarque).children("img").attr("title", this._produit.PictoTauxDemarque.Picto.Title);
                    $(spanTauxDemarque).children("a").attr("target", this._produit.PictoTauxDemarque.Picto.Target);
                    $(spanTauxDemarque).children("a").attr("href", this._produit.PictoTauxDemarque.Picto.Href);
                    $(spanTauxDemarque).children("a").attr("title", this._produit.PictoTauxDemarque.Picto.Title);
                }
            }
        }
    },
    ChangeCouleurHandler: function (tailleDefaut) {
        var couleurCombo = $get(this._couleurComboId);
        var selectedColor = $(couleurCombo).val();
        if (selectedColor != -1) {
            this.ProduitColorisSelectionne = this._produit.ListeProduitColoris[selectedColor];
            this.ChangeVisuel(this.ProduitColorisSelectionne.ImageColoris);
            this.AlimenteComboTaille(tailleDefaut);
            this.ChangeTauxDemarque();
        }
        else {
            this.ProduitColorisSelectionne = null;
        }
        this.ChangeTailleHandler();
    },
    SetPrix: function () {
        var spanPrix = $get(this._prixSpanId);
        var spanAPartirDe = $get(this._aPartirDeSpanId);
        if (spanPrix != null && spanAPartirDe != null) {
            var prix = null;
            if (this.ProduitColorisSelectionne != null) {
                var tailleCombo = $get(this._tailleComboId);
                var tailleselectionnee = $(tailleCombo).val();
                prix = this.ProduitColorisSelectionne.ListePrix[tailleselectionnee].Libelle;
                var spanAuLieuDe = $get(this._auLieuDeSpanId);
                var spanPrixBarre = $get(this._prixBarreSpanId);
                if (this.ProduitColorisSelectionne.ListePrix[tailleselectionnee].ValeurPrixBarre != "0" && this.ProduitColorisSelectionne.ListePrix[tailleselectionnee].ValeurPrixBarre != this.ProduitColorisSelectionne.ListePrix[tailleselectionnee].Valeur) {
                    $(spanAuLieuDe).show();
                    $(spanPrixBarre).html(this.ProduitColorisSelectionne.ListePrix[tailleselectionnee].LibellePrixBarre);
                    $(spanPrixBarre).show();
                }
                else {
                    $(spanAuLieuDe).hide();
                    $(spanPrixBarre).hide();
                }
                $(spanAPartirDe).hide();
            }
            else {
                prix = this._produit.PrixMini.Libelle;
                var spanAuLieuDe = $get(this._auLieuDeSpanId);
                var spanPrixBarre = $get(this._prixBarreSpanId);
                if (this._produit.PrixMini.ValeurPrixBarre != "0" && this._produit.PrixMini.ValeurPrixBarre != this._produit.PrixMini.Valeur) {
                    $(spanAuLieuDe).show();
                    $(spanPrixBarre).html(this._produit.PrixMini.LibellePrixBarre);
                    $(spanPrixBarre).show();
                }
                else {
                    $(spanAuLieuDe).hide();
                    $(spanPrixBarre).hide();
                }
                $(spanAPartirDe).show();
            }
            $(spanPrix).html(prix);
        }
    },
    SetDisponibilite: function (dateDispo) {
        var disponibiliteSpan = $get(this._disponibiliteSpanId);
        if (disponibiliteSpan != null) {
            if (this.ProduitColorisSelectionne != null) {
                var libelle;
                var tailleCombo = $get(this._tailleComboId);
                var tailleselectionnee = $(tailleCombo).val();
                var taille = this.ProduitColorisSelectionne.ListeTailles[tailleselectionnee];
                if (taille.Disponibilite == "0") {
                    libelle = this._libelleEnStock;
                }
                $(disponibiliteSpan).html(libelle);
            }
            else
                $(disponibiliteSpan).html("");
        }
    },
    AlimenteComboTaille: function (tailleDefaut) {
        var tailleCombo = $get(this._tailleComboId);
        $(tailleCombo).children("option").remove();
        if (this.ProduitColorisSelectionne != null) {
            var listeTailles = this.ProduitColorisSelectionne.ListeTailles;
            for (var taillekey in listeTailles) {
                var taille = listeTailles[taillekey];
                if (taille.Disponibilite != "2") {
                    var option = $("<option value='" + taille.Key + "'>" + taille.Libelle + "</option>")[0];
                    //                    option.value = taille.Key;
                    //                    option.text = taille.Libelle;
                    if (tailleDefaut == taille.Key) {
                        $(option).attr("selected", "selected");
                    }
                    $(tailleCombo).append($(option));
                }
            }

        }
        else {

        }
    },
    ChangeVisuel: function (urlVisuel) {
        $("#memo_chko_quicklook_image_visuel").attr("src", urlVisuel);
    },
    dispose: function () {
        Res.Commerce.Web.Composants.Commandes.V01.QuickLook.callBaseMethod(this, "dispose");
    },
    saveClientState: function () {
        var tailleCombo = $get(this._tailleComboId);
        if (tailleCombo != null) {
            return "{ \"SelectedRef\":\"" + $(tailleCombo).val() + "\" }";
        }
        else return null;
    },
    get_Produit: function () {
        return this._produit;
    },
    set_Produit: function (value) {
        this._produit = value;
    },
    get_CouleurComboId: function () {
        return this._couleurComboId;
    },
    set_CouleurComboId: function (value) {
        this._couleurComboId = value;
    },
    get_TailleComboId: function () {
        return this._tailleComboId;
    },
    set_TailleComboId: function (value) {
        this._tailleComboId = value;
    },
    get_DisponibiliteSpanId: function () {
        return this._disponibiliteSpanId;
    },
    set_DisponibiliteSpanId: function (value) {
        this._disponibiliteSpanId = value;
    },
    get_LibelleEnStock: function () {
        return this._libelleEnStock;
    },
    set_LibelleEnStock: function (value) {
        this._libelleEnStock = value;
    },
    get_APartirDeSpanId: function () {
        return this._aPartirDeSpanId;
    },
    set_APartirDeSpanId: function (value) {
        this._aPartirDeSpanId = value;
    },
    get_PrixSpanId: function () {
        return this._prixSpanId;
    },
    set_PrixSpanId: function (value) {
        this._prixSpanId = value;
    },
    get_AuLieuDeSpanId: function () {
        return this._auLieuDeSpanId;
    },
    set_AuLieuDeSpanId: function (value) {
        this._auLieuDeSpanId = value;
    },
    get_PrixBarreSpanId: function () {
        return this._prixBarreSpanId;
    },
    set_PrixBarreSpanId: function (value) {
        this._prixBarreSpanId = value;
    },
    get_TauxDemarqueSpanId: function () {
        return this._tauxDemarqueSpanId;
    },
    set_TauxDemarqueSpanId: function (value) {
        this._tauxDemarqueSpanId = value;
    },
    get_TailleSelectionne: function () {
        return this._tailleSelectionne;
    },
    set_TailleSelectionne: function (value) {
        this._tailleSelectionne = value;
    }
};
Res.Commerce.Web.Composants.Commandes.V01.QuickLook.registerClass("Res.Commerce.Web.Composants.Commandes.V01.QuickLook", Res.Commerce.Web.Composants.ScriptControlBase);
if(typeof(Sys)!=="undefined")Sys.Application.notifyScriptLoaded(); 