﻿Type.registerNamespace("Res.Commerce.Web.Composants");
Res.Commerce.Web.Composants.SlideShow = function (element) {
    Res.Commerce.Web.Composants.SlideShow.initializeBase(this, [element]);

    this._ClassSelectedVignette = null;
    this._SelecteurVignette = null;
    this._CurrentSlide = null;
    this._HplVignette = null;
    this._savedImage = null;
};
Res.Commerce.Web.Composants.SlideShow.prototype = {
    initialize: function () {
        Res.Commerce.Web.Composants.SlideShow.callBaseMethod(this, "initialize");

        this.Clean();
        this._HplVignette = $(this._SelecteurVignette);
        if (this._HplVignette != null) {
            this._HplVignette.live('click', Function.createDelegate(this, this.SlideTo));
        }
    },
    dispose: function () {
        this.Clean();
        Res.Commerce.Web.Composants.SlideShow.callBaseMethod(this, "dispose");
    },
    Clean: function () {
        // Efface les précédents branchement si déjà existant
        this._HplVignette = $(this._SelecteurVignette);
        if (this._HplVignette != null) {
            this._HplVignette.die('click');
        }
    },
    FormatId: function (selector) {
        return '#' + this._element.id + ' ' + selector;
    },
    SlideTo: function (ev) {
        var href = ev.currentTarget;
        if (href.rel != 'notice') {
            ev.preventDefault();
            var target = href.hash.toString();
            if(href.rel == 'video') {
				target = '#'+ $(target).parent().attr('id');
			}
            this.SelectImage(target, href);
        }
    },
    SelectImage: function (target, vignette) {

        $(this.FormatId('.' + this._ClassSelectedVignette)).removeClass(this._ClassSelectedVignette);
        if (vignette != null) {
            if (vignette.parentNode == null || vignette.parentNode == 'undefined') {
                vignette.parent().addClass(this._ClassSelectedVignette);
            }
            else {
                $(vignette.parentNode).addClass(this._ClassSelectedVignette);
            }
        }

        $(this.FormatId('.' + this._CurrentSlide)).css('z-index', '998').removeClass(this._CurrentSlide);
        $(target).css('z-index', '1000').addClass(this._CurrentSlide);

        // Permet de charger les images au clic
        var imgZoom = $(target + " img");
        if (imgZoom != undefined && imgZoom != null) {
            var rel = imgZoom.attr("rel")
            if (rel != undefined && rel != null && rel != "") {
                imgZoom.attr("src", rel)
                imgZoom.attr("rel", "");
            }
        }

    },
    SetImage: function (urlImage) {
        if (this._savedImage == null || typeof (this._savedImage == "undefined")) {
            this._savedImage = $(this.FormatId('.' + this._CurrentSlide))/*.find("img").attr("src")*/;
        }
        var pathImage = urlImage.split('/');
        var image = $(this.FormatId(".memo_fp_vue_produit_supp")).find("img[src$=" + pathImage[pathImage.length - 1] + "]");
        var li = image.parent();
        this.SelectImage(this.FormatId("#" + li.attr("id")));
    },
    ResetImage: function () {
        if (this._savedImage != null && typeof (this._savedImage != "undefined")) {
            /* var pathImage = this._savedImage.split('/');
            var image = $(this.FormatId(".memo_fp_vue_produit_supp")).find("img[src$=" + pathImage[pathImage.length - 1] + "]");
            var li = image.parent();*/

            var vignette = $(this._SelecteurVignette + "[href$=" + this._savedImage.attr("id") + "]");

            this.SelectImage(this.FormatId("#" + this._savedImage.attr("id")), vignette);
            this._savedImage = null;
        }
    },

    saveClientState: function () {
        return null;
    },
    get_ClassSelectedVignette: function () {
        return this._ClassSelectedVignette;
    },
    set_ClassSelectedVignette: function (value) {
        this._ClassSelectedVignette = value;
    },
    get_SelecteurVignette: function () {
        return this._SelecteurVignette;
    },
    set_SelecteurVignette: function (value) {
        this._SelecteurVignette = value;
    },
    get_CurrentSlide: function () {
        return this._CurrentSlide;
    },
    set_CurrentSlide: function (value) {
        this._CurrentSlide = value;
    }

};
Res.Commerce.Web.Composants.SlideShow.registerClass("Res.Commerce.Web.Composants.SlideShow", Res.Commerce.Web.Composants.ScriptControlBase);
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

