﻿// Name:        BookingControls.BookingResult.BookingResult.debug.js
// Assembly:    BookingControls
// Version:     1.0.0.0
// FileVersion: 1.0.0.0

/// <reference name="MicrosoftAjax.js"/>
/// <reference path="AjaxControlToolkit/Common/Common.js" />
/// <reference path="AjaxControlToolkit/Animation/Animations.js" />
/// <reference path="AjaxControlToolkit/Animation/AnimationBehavior.js" />
Type.registerNamespace("BookingControls");

/* =============================================== BuildMode =============================================== */
BookingControls.OffreSelectionMode = function() { };
BookingControls.OffreSelectionMode.prototype = {
    Global : 0x01,
    Multiple : 0x02
};
BookingControls.OffreSelectionMode.registerEnum("BookingControls.OffreSelectionMode", true);
/* =============================================== MediaSize =============================================== */
BookingControls.MediaSize = function() { };
BookingControls.MediaSize.prototype = {
    Small : 0x01,
    Medium : 0x02,
    Full : 0x03
};
BookingControls.MediaSize.registerEnum("BookingControls.MediaSize", true);
/* =============================================== BookingResult =============================================== */
BookingControls.BookingResult = function(element) {

    BookingControls.BookingResult.initializeBase(this, [element]);
    /* ------------------------------------------- Variables ------------------------------------ */
    this._idOI = null;
    this._idEctVente = null;
    this._title = null;
    this._typeOI = null;
    this._classementOfficiels = null;
    this._classementClassName = null;
    this._price = null;
    this._priceMax = null;
    this._commune = null;
    this._isContentLoaded = false;
    this._content = null;
    this._tarifs = null;
    this._services = null;
    this._isTarifsVisible = false;
    this._defaultImageUrl = null;
    this._owner = null;
    this._buildMode = BookingControls.BuildMode.Compact;
    this._prices = null;
    this._isAddon = false;
    this._slideshowGroup = "";
    this._gallery = "";
    this._distance = 0;
    this._isMapLoaded = false;
    this._isOIHebergement = false;

    // build page containers
    this._resultContent = null;
    this._resultPrestations = null;
    this._resultDetailInfos = null;
    // build mode compact
    this._resultMedia = null;
    this._resultIdentity = null;
    this._resultOIDescriptif = null;
    this._resultTarifs = null;
    this._resultArticle = null;
    this._resultPrice = null;
    this._resultOIRefServices = null;
    this._resultPrestaDescriptif = null;
    // build mode detail
    this._resultArticleDetail = null;
    this._resultIdentityDetail = null;
    this._resultIdentityLight = null;
    this._resultIdentityDiapo = null;
    this._resultIdentityMedium = null;
    this._resultTitle = null;
    this._resultMedias = null;
    this._resultPriceDetail = null;
    this._resultAdresseDetail = null;
    this._resultServices = null;
    this._resultComplements = null;
    this._resultDispos = null;
    this._resultMap = null;
    //this._tabs = [];
    //this._tabContents = [];
    this._dialog = null;

    this._loaded = false;
    this._error = null;
    this._marker = null;
    this._markerInfo = null;
    this._markerWindow = null;
    this._isSelected = false;
    this._carts = [];
    this._blocsTarifs = [];

    this._currentIndexImage = 0;
    this._inPlayMode = false;
    this._timer = null;
    this._playInterval = 3000;
    this._tickHandler = Function.createDelegate(this, this._onPlayImage);
    this._onImageClicked$delegate = Function.createDelegate(this, this._onImageClicked);
    //this._onImageClicked2$delegate = Function.createDelegate(this, this._onImageClicked2);

    this._dynamicContextKey = null;
    this._dynamicServicePath = null;
    this._dynamicServiceMethod = null;
    this._panierServicePath = null;

    this._onload$delegate;
    this._onpopulated$delegate;
    this._onshowingPrestations$delegate;
    this._onBuildModeDetailSelected$delegate;
    this._carto$delegates;
    this._element$delegates;
    //this._onTabChanged$delegates;
    this._onMediaSelected$delegates;
    this._owner_oncartoloaded$delegate = Function.createDelegate(this, this._owner_oncartoloaded);
    this._oncartoscriptloaded$delegate = Function.createDelegate(this, this._oncartoscriptloaded);
    this._panierAdd$delegate = Function.createDelegate(this, this._panierAdd);
    this._panierDel$delegate = Function.createDelegate(this, this._panierDel);
    this._onselect$delegate = Function.createDelegate(this, this._onselect);
    this._ontarifselect$delegate = Function.createDelegate(this, this._ontarifselect);
};

BookingControls.BookingResult.prototype = {

    /* ------------------------------------------- Properties ------------------------------------ */
    get_idOI: function() {
        return this._idOI;
    },
    set_idOI: function(value) {
        if (this._idOI != value) {
            this._idOI = value;
            this.raisePropertyChanged('idOI');
        }
    },

    get_idEctVente: function() {
        return this._idEctVente;
    },
    set_idEctVente: function(value) {
        if (this._idEctVente != value) {
            this._idEctVente = value;
            this.raisePropertyChanged('idEctVente');
        }
    },

    get_title: function() {
        return this._title;
    },
    set_title: function(value) {
        if (this._title != value) {
            this._title = value;
            this.raisePropertyChanged('title');
        }
    },

    get_typeOI: function() {
        return this._typeOI;
    },
    set_typeOI: function(value) {
        if (this._typeOI != value) {
            this._typeOI = value;
            this.raisePropertyChanged('typeOI');
        }
    },

    get_classementOfficiels: function() {
        return this._classementOfficiels;
    },
    set_classementOfficiels: function(value) {
        if (this._classementOfficiels != value) {
            this._classementOfficiels = value;
            this.raisePropertyChanged('classementOfficiels');
        }
    },

    get_classementClassName: function() {
        return this._classementClassName;
    },
    set_classementClassName: function(value) {
        if (this._classementClassName != value) {
            this._classementClassName = value;
            this.raisePropertyChanged('classementClassName');
        }
    },

    get_price: function() {
        return this._price;
    },
    set_price: function(value) {
        if (this._price != value) {
            this._price = parseFloat(value).toFixed(2);
            this.raisePropertyChanged('price');
        }
    },

    get_priceMax: function() {
        return this._priceMax;
    },
    set_priceMax: function(value) {
        if (this._priceMax != value) {
            this._priceMax = parseFloat(value).toFixed(2);
            this.raisePropertyChanged('priceMax');
        }
    },

    get_commune: function() {
        return this._commune;
    },
    set_commune: function(value) {
        if (this._commune != value) {
            this._commune = value;
            this.raisePropertyChanged('commune');
        }
    },

    get_content: function() {
        return this._content;
    },
    set_content: function(value) {
        if (this._content != value) {
            //this._content = value;
            this._content = eval('(' + value + ')');
            this._isContentLoaded = true;
            this.raisePropertyChanged('content');
        }
    },
    get_tarifs: function() {
        return this._tarifs;
    },
    set_tarifs: function(value) {
        if (this._tarifs != value) {
            this._tarifs = eval('(' + value + ')');
            this.raisePropertyChanged('tarifs');
        }
    },
    get_prices: function() {
        if (this._prices == null) {
            this._prices = [];
        }
        return this._prices;
    },

    get_services: function() {
        return this._services;
    },
    set_services: function(value) {
        if (this._services != value) {
            try {
                this._services = eval('(' + value + ')');
            } catch (err) { }
            this.raisePropertyChanged('services');
        }
    },

    get_buildMode: function() {
        return this._buildMode;
    },
    set_buildMode: function(value) {
        if (this._buildMode != value) {
            this._buildMode = value;
            this.raisePropertyChanged('buildMode');
        }
    },

    get_defaultImageUrl: function() {
        return this._defaultImageUrl;
    },
    set_defaultImageUrl: function(value) {
        if (this._defaultImageUrl != value) {
            this._defaultImageUrl = value;
            this.raisePropertyChanged('defaultImageUrl');
        }
    },

    get_owner: function() {
        return this._owner;
    },
    set_owner: function(value) {
        if (this._owner != value) {
            this._owner = value;
            this.raisePropertyChanged("owner");
        }
    },

    get_dynamicContextKey: function() {
        return this._dynamicContextKey;
    },
    set_dynamicContextKey: function(value) {
        if (this._dynamicContextKey != value) {
            this._dynamicContextKey = value;
            this.raisePropertyChanged('dynamicContextKey');
        }
    },

    get_dynamicServicePath: function() {
        return this._dynamicServicePath;
    },
    set_dynamicServicePath: function(value) {
        if (this._dynamicServicePath != value) {
            this._dynamicServicePath = value;
            this.raisePropertyChanged('dynamicServicePath');
        }
    },

    get_dynamicServiceMethod: function() {
        return this._dynamicServiceMethod;
    },
    set_dynamicServiceMethod: function(value) {
        if (this._dynamicServiceMethod != value) {
            this._dynamicServiceMethod = value;
            this.raisePropertyChanged('dynamicServiceMethod');
        }
    },

    get_panierServicePath: function() {
        return this._panierServicePath;
    },
    set_panierServicePath: function(value) {
        if (this._panierServicePath != value) {
            this._panierServicePath = value;
            this.raisePropertyChanged('panierServicePath');
        }
    },

    get_isOIHebergement: function() {
        return this._isOIHebergement;
    },
    set_isOIHebergement: function(value) {
        if (this._isOIHebergement != value) {
            this._isOIHebergement = value;
            this.raisePropertyChanged('isOIHebergement');
        }
    },

    get_X: function() {
        return (this._isContentLoaded && this._content) ? this._content.X : 0;
    },
    get_Y: function() {
        return (this._isContentLoaded && this._content) ? this._content.Y : 0;
    },
    is_GeoPos: function() {
        var x = this.get_X();
        var y = this.get_Y();
        return (x != 0 || y != 0);
    },
    get_GLatLng: function() {
        if (!this.get_owner()._mapScriptLoaded)
            return null;
        var x = this.get_X();
        var y = this.get_Y();
        return (x != 0 || y != 0) ? new google.maps.LatLng(x, y) : null;
    },
    get_marker: function() {
        if (!this._marker)
            this._createMarker(this.get_owner().get_map());
        return this._marker;
    },

    get_isSelected: function() {
        return this._isSelected;
    },
    set_isSelected: function(value) {
        if (this._isSelected != value) {
            this._isSelected = value;
            if (this._marker) {
                this.get_owner().get_map().removeOverlay(this._marker);
                if (this._markerInfo)
                    this.get_owner().get_map().removeOverlay(this._markerInfo);
                if (this._markerWindow)
                    this.get_owner().get_map().removeOverlay(this._markerWindow);
                this._marker = null;
                this._markerInfo = null;
                this._markerWindow = null;
            }
        }
    },

    is_IE: function() {
        return (Sys.Browser.agent == Sys.Browser.InternetExplorer);
    },

    /* ------------------------------------------- Methods ------------------------------------ */
    initialize: function() {
        BookingControls.BookingResult.callBaseMethod(this, 'initialize');
        var elt = this.get_element();

        var owner = this.get_owner();
        if (!owner) { throw Error.invalidOperation("BookingResults Container expected"); }
        Array.add(owner.get_results(), this);

        $common.addCssClasses(elt, ["blocDetailResult"]);

        this._onload$delegate = Function.createDelegate(this, this._onload);
        this._onpopulated$delegate = Function.createDelegate(this, this._onpopulated);
        this._onshowingPrestations$delegate = Function.createDelegate(this, this._onshowingPrestations);
        this._onclickedCarto$delegates = {
            click: Function.createDelegate(this, this._carto_onclick)
        }
        this._element$delegates = {
            click: Function.createDelegate(this, this._element_onclick)
        }
        this._onBuildModeDetailSelected$delegate = Function.createDelegate(this, this._onBuildModeDetailSelected);
        //        this._onTabChanged$delegates = {
        //            click: Function.createDelegate(this, this._onTabChanged),
        //            mouseover: Function.createDelegate(this, this._onTabChanged)
        //        }
        this._onMediaSelected$delegates = {
            click: Function.createDelegate(this, this._onMediaSelected)
        }
        $addHandlers(elt, this._element$delegates);
        Sys.Application.add_load(this._onload$delegate);
        this._buildSlideShow();
    },

    dispose: function() {
        var elt = this.get_element();
        Sys.Application.remove_load(this._app_onload$delegate);
        if (this._popupBehavior) {
            this._popupBehavior.dispose();
            this._popupBehavior = null;
        }
        $common.removeHandlers(elt, this._carto$delegates);
        $common.removeHandlers(elt, this._element$delegates);
        elt.parentNode.removeChild(elt);
        BookingControls.BookingResult.callBaseMethod(this, 'dispose');
    },

    /* ------------------------------------------- Build ------------------------------------ */
    _build: function() {
        var elt = this.get_element();
        if (elt) {
            elt.innerHTML = "";
            $common.removeCssClasses(elt, ["modedetail", "diapo"]);
            switch (this._buildMode) {
                case BookingControls.BuildMode.Compact:
                    this._build_compact();
                    break;
                case BookingControls.BuildMode.Detail:
                    this._build_detail();
                    break;
                case BookingControls.BuildMode.Light:
                    this._build_light(elt);
                    break;
                case BookingControls.BuildMode.Diapo:
                    this._build_diapo(elt);
                    break;
                case BookingControls.BuildMode.Medium:
                    this._build_medium(elt);
                    break;
            }
            this._buildVCard(elt);
        }
        // TODO else Erreur
    },
    /* ------------------------------------------- Build Compact ------------------------------------ */
    _build_compact: function() {
        var elt = this.get_element();
        var id = this.get_id();
        if (this._isContentLoaded)
            $common.removeCssClasses(elt, ["loadingcontent", "errorloadingcontent"]);
        else {
            $common.addCssClasses(elt, ["loadingcontent"]);
            this.populate();
        }
        if (this.get_owner().get_isJQueryUIVersion() == true) {
            var templateContent1 = '<div class="ui-widget blocDetailResultContent"><div class="ui-widget-header ui-corner-top"><table><tr><td><span>${_title}</span></td><td><div class="blocDetailResultClassement ${_classementClassName} ui-corner-all" title="${_classementOfficiels}" /></td></tr></table></div><div class="ui-widget-content"><table><tr><td><div class="blocDetailResultContentPhoto vcard"><a><img class="photo" src="${defaultImageUrl}" alt="" /></a></div></td><td style="vertical-align: top;"><div><div><span>${_commune}</span></div><div class="blocDetailResultArticle"></div><div class="oirefservices"></div></div></td></tr></table></div></div>';
            $("#" + id).append($.template(templateContent1), this);
        }
        else {
            this._resultContent = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent"] }, elt);
            this._resultPrestations = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent2"] }, elt);
            this._buildMedia(this._resultContent, BookingControls.MediaSize.Small);
            this._buildIdentity(this._resultContent);
            this._buildArticle(this._resultContent);
            this._buildPrice(this._resultContent);
            this._buildTarifs(this._resultPrestations);
        }
    },

    _onPlayImage: function(e) {
        if (this._content && this._content.Medias) {
            this._currentIndexImage = ((this._currentIndexImage + 1) < this._content.Medias.length) ? this._currentIndexImage + 1 : 0;
            var mediaSize = (this._buildMode == BookingControls.BuildMode.Detail || this._buildMode == BookingControls.BuildMode.Diapo) ? BookingControls.MediaSize.Medium : BookingControls.MediaSize.Small;
            this._selectImage(this._currentIndexImage, mediaSize);
        }
    },
    _playImage: function() {
        if (this._inPlayMode)
            this._stopPlayImage();
        else
            this._startPlayImage();
    },
    _startPlayImage: function() {
        var id = this.get_id();
        var img = $get(id + "_media");
        this._inPlayMode = true;
        if (!this._timer) {
            this._timer = new Sys.Timer();
            this._timer.set_interval(this._playInterval);
            this._timer.add_tick(this._tickHandler);
        }
        $common.removeCssClasses(img, ["inplayoff"]);
        $common.addCssClasses(img, ["inplay"]);
        this._timer.set_enabled(true);
    },
    _stopPlayImage: function() {
        var id = this.get_id();
        var img = $get(id + "_media");
        this._inPlayMode = false;
        if (this._timer)
            this._timer.set_enabled(false);
        $common.removeCssClasses(img, ["inplay"]);
        $common.addCssClasses(img, ["inplayoff"]);
    },
    _selectImage: function(index, size) {
        var id = this.get_id();
        var img = $get(id + "_media");
        if (img) {
            img.src = (size == BookingControls.MediaSize.Small) ? this._content.Medias[index].Url : this._content.Medias[index].UrlMedium;
            img.title = this._content.Medias[index].Titre;
        }
        var imgcarto = $get(id + "_mediacarto");
        if (imgcarto) {
            imgcarto.src = this._content.Medias[index].Url;
            imgcarto.title = this._content.Medias[index].Titre;
        }
        var imglink = $get(id + "_medialink");
        if (imglink) {
            imglink.href = this._content.Medias[0].UrlFull;
            //            imglink.onclick = "hs.expand($get('"+id+"_media_"+index+"'), $find('"+id+"')._gallery)";
        }
        var imgcaption = $get(id + "_mediacaption");
        if (imgcaption) {
            imgcaption.innerHTML = this._content.Medias[index].Titre;
        }
    },

    _buildMedia: function(container, size) {
        var elt = container;
        var id = this.get_id();
        var imageUrl = this._defaultImageUrl;
        var imageTitle = "";
        this._resultMedia = $common.createElementFromTemplate({
            nodeName: "div",
            cssClasses: ["blocDetailResultContentPhoto", "vcard"],
            children: [{
                nodeName: "a",
                //properties : { href: imageUrl, id: id+"_medialink" },
                properties: { href: imageUrl, id: id + "_medialink", onclick: "hs.expand($get('" + id + "_medialink'), $find('" + id + "')._gallery)" },
                //properties : { href: imageUrl, id: id+"_medialink" , onclick: function(){return hs.expand($get(id+"_medialink"), $find(id)._gallery);} },
                cssClasses: ["highslide"],
                events: { click: this._onImageClicked$delegate },
                children: [{ nodeName: "img", properties: { src: imageUrl, alt: imageTitle, id: id + "_media" }, cssClasses: ["photo"]}]
            }, {
                nodeName: "div",
                cssClasses: ["highslide-caption"],
                properties: { innerHTML: imageTitle, id: id + "_mediacaption" }
}]
            }, elt);
            if (this._isContentLoaded && this._content.Medias.length > 0) {
                this._selectImage(0, size);

                var _medias = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["hidden-container"] }, elt);
                for (var i = 1; i < this._content.Medias.length; i++) {
                    $common.createElementFromTemplate({
                        nodeName: "a",
                        properties: { id: id + "_media_" + i, href: this._content.Medias[i].UrlFull, onclick: "hs.expand($get('" + id + "_media_" + i + "'), $find('" + id + "')._gallery)" },
                        cssClasses: ["highslide"],
                        children: [{ nodeName: "img", properties: { src: this._content.Medias[i].Url, alt: this._content.Medias[i].Titre }, cssClasses: ["photo"]}]
                    }, _medias);
                    $common.createElementFromTemplate({
                        nodeName: "div",
                        cssClasses: ["highslide-caption"],
                        properties: { innerHTML: this._content.Medias[i].Titre }
                    }, _medias);
                }
            }
        },
        _buildSlideShow: function() {
            this._slideshowGroup = String.format("slideshowGroup_{0}_{1}", this.get_id(), this._owner.find_resultIndex(this._idOI));
            // Add the controlbar
            if (hs.addSlideshow)
                hs.addSlideshow({
                    slideshowGroup: this._slideshowGroup,
                    interval: 5000,
                    repeat: true,
                    useControls: true,
                    fixedControls: true,
                    overlayOptions: {
                        //opacity: .6,
                        position: 'top center',
                        hideOnMouseOut: true
                    }
                });
            this._gallery = {
                slideshowGroup: this._slideshowGroup,
                autoplay: true,
                headingText: this._title,
                outlineType: 'rounded-white',
                //dimmingOpacity: 0.75,
                align: 'center',
                transitions: ['expand', 'crossfade']
            };
        },
        _buildMediaCarto: function(container) {
            var elt = container;
            var id = this.get_id();
            var imageUrl = this._defaultImageUrl;
            var imageTitle = "";
            if (this._isContentLoaded && this._content.Medias.length > 0) {
                imageUrl = this._content.Medias[0].Url;
                imageTitle = this._content.Medias[0].Titre;
            }
            this._resultMedia = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContentPhoto"], children: [{ nodeName: "img", properties: { src: imageUrl, alt: imageTitle, id: id + "_mediacarto"}}] }, elt);
        },

        _buildIdentity: function(container) {
            var elt = container;
            var id = this.get_id();
            if (!this.is_IE() && this._isContentLoaded && this._resultIdentity) {
                elt.appendChild(this._resultIdentity);
            }
            else {
                this._resultIdentity = $common.createElementFromTemplate({
                    nodeName: "div",
                    cssClasses: ["blocDetailResultIdentity"],
                    children: [{
                        nodeName: "div",
                        cssClasses: ["blocDetailResultTitle"],
                        properties: { id: id + "_title" },
                        children: [{ nodeName: "span", properties: { innerHTML: this._title}}]
                    }, {
                        nodeName: "div",
                        properties: { title: this._classementOfficiels },
                        cssClasses: ["blocDetailResultClassement", this._classementClassName]
}]
                    }, elt);
                    if (this._isContentLoaded) {
                        $addHandler($get(id + "_title"), "click", this._onBuildModeDetailSelected$delegate);
                        for (var i = 0; i < this._content.ClassLabels.length; i++)
                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultLabel", this._content.ClassLabels[i].Class], properties: { title: this._content.ClassLabels[i].Nom} }, this._resultIdentity);
                    }
                }
                this._buildOIDescriptif(container);
            },

            _buildOIDescriptif: function(container) {
                var elt = container;
                var id = this.get_id();
                if (!this.is_IE() && this._isContentLoaded && this._resultOIDescriptif) {
                    elt.appendChild(this._resultOIDescriptif);
                }
                else {
                    var adresse = (this._isContentLoaded) ? String.format("{0}&nbsp;{1}", this._content.Adresse.CodePostal, this._commune) : this._commune;
                    this._resultOIDescriptif = $common.createElementFromTemplate({
                        nodeName: "div",
                        cssClasses: ["blocDetailResultOIDescriptif"],
                        children: [{
                            nodeName: "div",
                            cssClasses: ["blocDetailResultCommune"],
                            properties: { id: id + "_commune" },
                            children: [{ nodeName: "span", properties: { innerHTML: adresse}}]
                        }, {
                            nodeName: "div",
                            properties: { id: id + "_geo" },
                            cssClasses: ["blocDetailResultGeo"],
                            events: this._onclickedCarto$delegates
                        }, {
                            nodeName: "span",
                            cssClasses: ["distance"],
                            properties: { id: id + "_distance" }
}]
                        }, elt);
                        if (!this.is_GeoPos())
                            $common.setVisible($get(id + "_geo"), false);
                        else if (this.get_owner().is_GeoPos()) {
                            if (this.get_owner()._mapScriptLoaded)
                                this._setDistance();
                            else
                                this.get_owner()._loadingMapScript();
                        }
                        this._buildOIRefServices(this._resultOIDescriptif);
                    }
                },
                _buildVCard: function(container) {
                    if (this._isContentLoaded && !(this.get_owner().get_isJQueryUIVersion() == true)) {
                        var card = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["vcard"] }, container);
                        var org = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["fn org"], properties: { innerHTML: this._title} }, card);
                        var adr = $common.createElementFromTemplate({
                            nodeName: "span",
                            cssClasses: ["adr"],
                            children: [{
                                nodeName: "span",
                                cssClasses: ["street-address"],
                                properties: { innerHTML: this._content.Adresse.LibelleVoie }
                            }, {
                                nodeName: "span",
                                cssClasses: ["locality"],
                                properties: { innerHTML: this._commune }
                            }, {
                                nodeName: "span",
                                cssClasses: ["postal-code"],
                                properties: { innerHTML: this._content.Adresse.CodePostal }
}]
                            }, card);
                            var geo = $common.createElementFromTemplate({
                                nodeName: "div",
                                cssClasses: ["geo"],
                                children: [{
                                    nodeName: "span",
                                    cssClasses: ["latitude"],
                                    properties: { innerHTML: this.get_X() }
                                }, {
                                    nodeName: "span",
                                    cssClasses: ["longitude"],
                                    properties: { innerHTML: this.get_Y() }
}]
                                }, card);
                            }
                        },

                        _buildArticle: function(container) {
                            var elt = container;
                            var richMediaTitle = "";
                            var richMediaArticle = "";
                            if (this._isContentLoaded) {
                                richMediaTitle = this._content.Traduction.Titre;
                                richMediaArticle = this._content.Traduction.Article;
                                var maxLength = 100;
                                if (this._buildMode == BookingControls.BuildMode.Compact && richMediaArticle.length > maxLength)
                                    richMediaArticle = richMediaArticle.substr(0, maxLength) + " ...";
                            }
                            this._resultArticle = $common.createElementFromTemplate({
                                nodeName: "div",
                                cssClasses: ["blocDetailResultArticle"],
                                children: [{ nodeName: "span", cssClasses: ["richmediaarticle"], properties: { innerHTML: richMediaArticle, title: richMediaTitle}}]
                            }, elt);
                            if (this._isContentLoaded && this._buildMode == BookingControls.BuildMode.Compact) {
                                $common.createElementFromTemplate({
                                    nodeName: "div",
                                    cssClasses: ["plus"],
                                    properties: { id: this.get_id() + "_plus" },
                                    events: { click: this._onBuildModeDetailSelected$delegate },
                                    children: [{ nodeName: "span", properties: { innerHTML: BookingControls.Resources.PlusDetails}}]
                                }, this._resultArticle);
                            }
                        },

                        _buildPrice: function(container) {
                            var elt = container;
                            if (!this.is_IE() && this._isContentLoaded && this._resultPrice)
                                elt.appendChild(this._resultPrice);
                            else {
                                var id = this.get_id();
                                this._resultPrice = $common.createElementFromTemplate({
                                    nodeName: "div",
                                    cssClasses: ["blocDetailResultActions"],
                                    children: [{
                                        nodeName: "div",
                                        cssClasses: ["blocDetailResultPrice"],
                                        children: [{
                                            nodeName: "span",
                                            cssClasses: ["pricetext"],
                                            properties: { innerHTML: BookingControls.Resources.PriceFrom }
                                        }, {
                                            nodeName: "span",
                                            cssClasses: ["pricevalue"],
                                            properties: { innerHTML: this._price + "&nbsp;€" }
}]
                                        }, {
                                            nodeName: "div",
                                            properties: { id: id + "_showPrestations" },
                                            cssClasses: ["blocDetailResultShowPrestations"],
                                            events: { click: this._onshowingPrestations$delegate },
                                            children: [{ nodeName: "span", properties: { innerHTML: BookingControls.Resources.VoirOffres}}]
}]
                                        }, elt);
                                    }
                                },

                                _buildTarifs: function(container) {
                                    var elt = container;
                                    if (!this.is_IE() && this._isContentLoaded && this._resultTarifs)
                                        elt.appendChild(this._resultTarifs);
                                    else {
                                        this._resultTarifs = $common.createElementFromTemplate({
                                            nodeName: "div",
                                            cssClasses: ["blocDetailResultPrestations"],
                                            properties: { visibility: "hidden", display: "none" }
                                        }, elt);

                                        this._prices = [];
                                        this._carts = [];
                                        this._blocsTarifs = [];

                                        if (this._tarifs && this._tarifs.offres && this._tarifs.offres.length > 0) {
                                            var searchUnites = this._owner._resumeSearch.Unites;
                                            for (var i = 0; i < searchUnites.length; i++) {
                                                this._owner.buildResumeSearch(this._resultTarifs, i);
                                                this._buildTarifsUnite(i);
                                            }
                                        } else {
                                            $common.setVisible(this._resultPriceDetail, false);
                                            $common.createElementFromTemplate({
                                                nodeName: "div",
                                                cssClasses: ["error", "pricevalue"],
                                                properties: { innerHTML: BookingControls.Resources.NoDispo }
                                            }, this._resultTarifs);
                                        }
                                    } //end else
                                    $common.setVisible(this._resultTarifs, this._isTarifsVisible);
                                },

                                _selectOffresUnite: function(uniteIndex) {
                                    var offres = [];
                                    if (this._tarifs && this._tarifs.offres && this._tarifs.offres.length > 0)
                                        for (var i = 0; i < this._tarifs.offres.length; i++) {
                                        if (this._tarifs.offres[i].SearchUniteIndex == uniteIndex)
                                            offres.push(this._tarifs.offres[i]);
                                    }
                                    return offres;
                                },

                                _buildTarifsUnite: function(uniteIndex) {
                                    var offres = this._selectOffresUnite(uniteIndex);
                                    if (this._isOIHebergement == false)
                                        this._buildTarifsOffres(this._resultTarifs, offres, uniteIndex, 0);
                                    else {
                                        var offresHeberg = [];
                                        var offresAutres = [];
                                        if (offres.length > 0)
                                            for (var i = 0; i < offres.length; i++) {
                                            if (offres[i].isPrestationHebergement == "true")
                                                offresHeberg.push(offres[i]);
                                            else
                                                offresAutres.push(offres[i]);
                                        }
                                        if (offresHeberg.length > 0)
                                            this._buildTarifsOffres(this._resultTarifs, offresHeberg, uniteIndex, 0);
                                        else
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["button-search", "ui-state-default", "button-search-icon-left", "ui-corner-all"], children: [{ nodeName: "span", cssClasses: ["ui-icon", "ui-icon-info"] }, { nodeName: "span", properties: { innerHTML: BookingControls.Resources.NoPrestaHebergement}}] }, this._resultTarifs);
                                        if (offresAutres.length > 0) {
                                            var showAutres = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["button-search", "ui-state-default", "button-search-icon-left", "ui-corner-all"], properties: { id: this.get_id() + '_' + uniteIndex + "_openother" }, children: [{ nodeName: "span", cssClasses: ["ui-icon", "ui-icon-plus"] }, { nodeName: "span", cssClasses: ["ui-icon", "ui-icon-minus"] }, { nodeName: "span", properties: { innerHTML: BookingControls.Resources.ShowOtherOffers}}] }, this._resultTarifs);
                                            var divAutres = $common.createElementFromTemplate({ nodeName: "div", properties: { id: this.get_id() + '_' + uniteIndex + "_other" }, cssClasses: ["other"] }, this._resultTarifs);
                                            this._buildTarifsOffres(divAutres, offresAutres, uniteIndex, offresHeberg.length);
                                            eval('$("#' + this.get_id() + '_' + uniteIndex + '_openother").click(function() { $("#' + this.get_id() + '_' + uniteIndex + '_other").toggle(); $("#' + this.get_id() + '_' + uniteIndex + '_openother .ui-icon").toggle(); });');
                                            //eval('$("#' + this.get_id() + '_' + uniteIndex + '_openother").live("click", function() { $("#' + this.get_id() + '_' + uniteIndex + '_other").toggle(); $("#' + this.get_id() + '_' + uniteIndex + '_openother .ui-icon").toggle(); });');
                                            eval('$("#' + this.get_id() + '_' + uniteIndex + '_other").hide();');
                                            eval('$("#' + this.get_id() + '_' + uniteIndex + '_openother .ui-icon-minus").hide();');
                                        }
                                    }
                                },

                                _buildTarifsOffres: function(container, offres, uniteIndex, offresindex) {
                                    var id = this.get_id();
                                    var dtf = Sys.CultureInfo.CurrentCulture.dateTimeFormat;
                                    var fdow = Sys.CultureInfo.CurrentCulture.dateTimeFormat.FirstDayOfWeek;
                                    // on crée la table avec sa ligne d'entête
                                    var _daysTable = $common.createElementFromTemplate({ nodeName: "table", cssClasses: ["tableOffres"] }, container);
                                    // on ajoute une ligne par offre
                                    var _daysBody = $common.createElementFromTemplate({ nodeName: "tbody" }, _daysTable);
                                    // Pour chaque offre
                                    for (var i = 0; i < offres.length; i++) {
                                        var daysRow = $common.createElementFromTemplate({ nodeName: "tr" }, _daysBody);
                                        this._blocsTarifs.push(daysRow);
                                        var daysCell = $common.createElementFromTemplate({ nodeName: "td" }, daysRow);
                                        $common.addCssClasses(daysRow, [(i % 2 == 0) ? "alternate" : "line"]);
                                        var firstCell = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["tdPrestation"] }, daysCell);
                                        // Descriptif de la prestation/offre
                                        var libelle = "";
                                        var subtitle = "";
                                        var description = "";
                                        var richMediaTitle = "";
                                        var richMediaArticle = "";
                                        var offreinfo = offres[i];
                                        var isPromo = (offreinfo.promotionMode != '');
                                        var promotion = offreinfo.promotionDescriptif;
                                        var promoMontant = offreinfo.promotionMontant;
                                        var promoMode = offreinfo.promotionMode;
                                        var selectMode = offreinfo.selectMode;
                                        var duree = offreinfo.duree;
                                        var prestation = null;
                                        if (this._isContentLoaded) {
                                            var indexPrestation = this._findIndexPrestation(offres[i].id);
                                            if (indexPrestation >= 0) {
                                                prestation = this._content.Prestations[indexPrestation];
                                                var offre = this._getOffre(prestation, offres[i].id);
                                                libelle = (offre.OffreDeBase == 'false') ? offre.Libelle : prestation.Libelle;
                                                subtitle = libelle;
                                                description = offre.Description;
                                                imageUrl = prestation.Media.Url;
                                                imageTitle = prestation.Media.Titre;
                                                richMediaTitle = (offre.Description != '') ? offre.Description : prestation.Traduction.Titre;
                                                richMediaArticle = prestation.Traduction.Article;
                                            }
                                        }
                                        var divPrestaDescriptif = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["prestationDescriptif"] }, firstCell);
                                        if (prestation) {
                                            var offreIndex = parseInt(i + offresindex);
                                            var popupRef = String.format("#{0}_popup_{1}_{2}", id, uniteIndex, offreIndex);
                                            var loadPopupId = String.format("{0}_loadpopup_{1}_{2}", id, uniteIndex, offreIndex);
                                            var viewDetail = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["prestationContentView", "loadpopup"], properties: { id: loadPopupId, href: popupRef, rel: popupRef} }, divPrestaDescriptif);
                                            this._buildDescriptifPresta(firstCell, viewDetail, prestation, uniteIndex, offreIndex, libelle, description);
                                        }
                                        //this._buildDescriptifBeds(divPrestaDescriptif, prestation);
                                        $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: libelle, title: subtitle }, cssClasses: ["blocDetailResultContentLibelle"] }, divPrestaDescriptif);
                                        if (selectMode == BookingControls.OffreSelectionMode.Multiple) {
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["button-search", "ui-state-default", "button-search-icon-left", "ui-corner-all"], children: [{ nodeName: "span", cssClasses: ["ui-icon", "ui-icon-info"] }, { nodeName: "span", properties: { innerHTML: BookingControls.Resources.SelectionModeMultiple}}] }, firstCell);
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["button-search", "ui-state-default", "button-search-icon-left", "ui-corner-all"], children: [{ nodeName: "span", cssClasses: ["ui-icon", "ui-icon-comment"] }, { nodeName: "span", properties: { innerHTML: String.format(BookingControls.Resources.OffreDureeFormat, duree)}}] }, firstCell);
                                            //$common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: String.format(BookingControls.Resources.OffreDureeFormat, duree) }, cssClasses: ["blocDetailResultContentDuree"] }, divPrestaDescriptif);
                                        }
                                        if (isPromo)
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContentPromo"], children: [{ nodeName: "div", cssClasses: ["promotion"], children: [{ nodeName: "span", properties: { innerHTML: String.format("{0}&nbsp;€", offreinfo.prixBarre)}}] }, { nodeName: "span", properties: { innerHTML: promotion}}] }, divPrestaDescriptif);

                                        var cellSemaines = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["daysDiv"] }, daysCell);
                                        var tableSemaines = $common.createElementFromTemplate({ nodeName: "table", cssClasses: ["daysTable"] }, cellSemaines);
                                        var bodySemaines = $common.createElementFromTemplate({ nodeName: "tbody" }, tableSemaines);
                                        // Pour chaque semaine (des tarifs de l'offre)
                                        var tarifTotal = 0;
                                        var firstOfMultiples = true;
                                        var mult_indexWeek = 0;
                                        var mult_indexTarif = 0;
                                        if (selectMode == BookingControls.OffreSelectionMode.Global)
                                            tarifTotal = offres[i].prixTotal;
                                        var nbSemaines = offres[i].semaines.length;
                                        for (var s = 0; s < nbSemaines; s++) {
                                            var rowSemaineHeader = $common.createElementFromTemplate({ nodeName: "tr", cssClasses: [(s == 0) ? "firstrow" : ""] }, bodySemaines);
                                            $common.createElementFromTemplate({ nodeName: "td", cssClasses: ["daynameheader", "firstcell"] }, rowSemaineHeader);
                                            var daysHeader = new Array();
                                            // Pour chaque jour de la semaine (du lundi au dimanche), on crée une ligne d'affichage des jours
                                            for (var d = 1; d <= 7; d++) {
                                                var dayCell = $common.createElementFromTemplate({ nodeName: "td", cssClasses: ["dayinactive", "daynameheader", (d >= 6) ? "weekend" : "weekday"] }, rowSemaineHeader);
                                                var dayDiv = $common.createElementFromTemplate({ nodeName: "div", cssClasses: [""] }, dayCell);
                                                dayDiv.appendChild(document.createTextNode(dtf.ShortestDayNames[d % 7]));
                                                daysHeader.push(dayDiv);
                                            }
                                            var rowSemaine = $common.createElementFromTemplate({ nodeName: "tr", cssClasses: [(s == nbSemaines - 1) ? "lastrow" : ""] }, bodySemaines);
                                            var firstCell = $common.createElementFromTemplate({ nodeName: "td", cssClasses: ["firstcell"] }, rowSemaine);
                                            $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: String.format("{1} {0}", s + 1, BookingControls.Resources.weekabr), title: String.format("{1} {0}", offres[i].semaines[s].numero, BookingControls.Resources.week)} }, firstCell);
                                            var days = new Array();
                                            // Pour chaque jour de la semaine (du lundi au dimanche), on crée une ligne d'affichage des tarifs
                                            for (var d = 0; d < 7; d++) {
                                                var dayCell = $common.createElementFromTemplate({ nodeName: "td", cssClasses: ["dayinactive", (d >= 5) ? "weekend" : "weekday"], properties: { id: String.format("{0}_date_{1}_{2}", id, s, d)} }, rowSemaine);
                                                var dayDiv = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["dayname"] }, dayCell);
                                                dayDiv.appendChild(document.createTextNode(" "));
                                                days.push(dayDiv);
                                            }

                                            // Pour chaque tarif enregistré dans la semaine, on renseigne le tarif dans la grille
                                            var tarifs = offres[i].semaines[s].tarifs;
                                            var selectTdtarif;
                                            var selectTabletarifs;
                                            var selectWeek;
                                            var selectDayIndex;
                                            var selectDuree;
                                            for (var j = 0; j < tarifs.length; j++) {
                                                if (tarifTotal == 0 && selectMode == BookingControls.OffreSelectionMode.Multiple && tarifs[j].value > 0)
                                                    tarifTotal = tarifs[j].value;
                                                var dateValue = tarifs[j].date;
                                                if (dateValue && (String.isInstanceOfType(dateValue)) && (dateValue.length != 0)) {
                                                    dateValue = new Date(dateValue);
                                                }
                                                if (dateValue) {
                                                    var dow = parseInt(dateValue.getDay());
                                                    var dayindex = (dow == 0) ? 6 : dow - 1;
                                                    if (dayindex >= 0 && dayindex < 7) {
                                                        var tarifValue = tarifs[j].value;
                                                        var dayDiv = days[dayindex];
                                                        if (selectMode == BookingControls.OffreSelectionMode.Multiple && tarifs[j].mode == "dispo") {
                                                            var divTarifSelect = $common.createElementFromTemplate({
                                                                nodeName: "input",
                                                                properties: {
                                                                    id: String.format("{0}_tarif_{1}_{2}_{3}", id, uniteIndex, i, j),
                                                                    type: "radio",
                                                                    name: String.format("input_{0}", offreinfo.id),
                                                                    value: tarifValue,
                                                                    indexUnite: uniteIndex,
                                                                    indexOffre: i,
                                                                    indexTarif: j,
                                                                    duree: offres[i].duree,
                                                                    week: s,
                                                                    day: dayindex
                                                                },
                                                                events: { click: this._ontarifselect$delegate }
                                                            }, dayDiv);
                                                            //if (s == 0 && j == 0) {
                                                            if (firstOfMultiples) {
                                                                firstOfMultiples = false;
                                                                divTarifSelect.checked = true;
                                                                tarifTotal = parseFloat(tarifValue).toFixed(2);
                                                                mult_indexWeek = s;
                                                                mult_indexTarif = j;
                                                                selectTdtarif = divTarifSelect.parentNode.parentNode;
                                                                selectTabletarifs = selectTdtarif.parentNode.parentNode;
                                                                selectDuree = offres[i].duree;
                                                                selectDayIndex = dayindex;
                                                                selectWeek = s;
                                                                //this._selecttarifdays(selectTdtarif, selectWeek, selectDayIndex, selectDuree, selectTabletarifs);

                                                                var addPanier = $get(String.format("{0}_panieradd_{1}_{2}", id, divTarifSelect.indexUnite, divTarifSelect.indexOffre));
                                                            }
                                                        }
                                                        if (isPromo && tarifs[j].mode == "dispo") {
                                                            var divTarifBase = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["promotion"] }, dayDiv);
                                                            //var tarifBase = this._getTarifBase(tarifValue, promoMode, promoMontant);
                                                            var tarifBase = tarifs[j].prixBarre;
                                                            tarifBase = Math.round(tarifBase);
                                                            divTarifBase.appendChild(document.createTextNode(String.format("{0}", tarifBase)));
                                                        }
                                                        if (tarifs[j].mode == "dispo")
                                                            $common.createElementFromTemplate({ nodeName: "div", properties: { innerHTML: String.format("{0}&nbsp;€", tarifValue)} }, days[dayindex]);
                                                        $common.addCssClasses(days[dayindex].parentNode, ["mode_" + tarifs[j].mode]);
                                                        $common.removeCssClasses(days[dayindex].parentNode, ["dayinactive"]);
                                                        $common.removeCssClasses(daysHeader[dayindex].parentNode, ["dayinactive"]);
                                                        daysHeader[dayindex].innerHTML = "";
                                                        $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: String.format("{0}&nbsp;{1}", dtf.AbbreviatedDayNames[dow], dateValue.getDate()), title: dateValue.format(Sys.CultureInfo.CurrentCulture.dateTimeFormat.ShortDatePattern)} }, daysHeader[dayindex]);
                                                    }
                                                }
                                            } //endfor tarifs
                                        } //endfor semaines
                                        if (selectMode == BookingControls.OffreSelectionMode.Multiple)
                                            this._selecttarifdays(selectTdtarif, selectWeek, selectDayIndex, selectDuree, selectTabletarifs);

                                        var cellPanier = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["totaloffre"] }, daysCell);
                                        // on ajoute les informations pour la mise au panier
                                        var offreIndex = parseInt(i + offresindex);
                                        var divTotal = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["dayname", "tariftotal"], properties: { id: String.format("{0}_total_{1}_{2}", id, uniteIndex, offreIndex)} }, cellPanier);
                                        tarifTotal = parseFloat(tarifTotal).toFixed(2);
                                        this._prices.push(tarifTotal);
                                        divTotal.appendChild(document.createTextNode(String.format("Total: {0} €", tarifTotal)));

                                        var dayDivPanier = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["panier"], properties: { id: String.format("{0}_panier{1}_{2}", id, offreIndex, uniteIndex), indexOffre: offreIndex, indexUnite: uniteIndex} }, cellPanier);
                                        $common.createElementFromTemplate({
                                            nodeName: "div",
                                            cssClasses: ["buttonlong", "add"],
                                            properties: { indexOffre: offreIndex },
                                            children: [{ nodeName: "span", properties: { id: String.format("{0}_panieradd_{1}_{2}", id, uniteIndex, offreIndex), innerHTML: BookingControls.Resources.Reservation_add, indexOffre: offreIndex, indexUnite: uniteIndex, indexTarif: mult_indexTarif, week: mult_indexWeek}}]
                                        }, dayDivPanier);
                                        $common.createElementFromTemplate({
                                            nodeName: "div",
                                            cssClasses: ["buttonlong", "del"],
                                            properties: { indexOffre: offreIndex },
                                            children: [{ nodeName: "span", properties: { innerHTML: BookingControls.Resources.Reservation_del, indexOffre: offreIndex, indexUnite: uniteIndex}}]
                                        }, dayDivPanier);
                                        this._carts.push(dayDivPanier);
                                        //this.populatePanierQuantite(offres[i].id, offreIndex, uniteIndex);
                                        this.populatePanierQuantite(offres[i], dayDivPanier, uniteIndex);

                                    } //endfor offres
                                },

                                _buildDescriptifPresta: function(container, target, prestation, uniteIndex, offreindex, libelleOffre, offreDescription) {
                                    //if (!this._resultPrestaDescriptif){
                                    var id = this.get_id();
                                    var popupId = String.format("{0}_popup_{1}_{2}", id, uniteIndex, offreindex);
                                    var loadPopupRef = String.format("#{0}_loadpopup_{1}_{2}", id, uniteIndex, offreindex);
                                    var _divPopup = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["popup"], properties: { id: popupId} }, container);
                                    this._resultPrestaDescriptif = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDescriptifPresta", "ui-widget", "ui-widget-content", "ui-corner-all"] }, _divPopup);
                                    this._resultPrestaDescriptif.style.width = "450px";
                                    //$common.setVisible(this._resultPrestaDescriptif, false);

                                    var titleBar = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["ui-dialog-titlebar", "ui-widget-header", "ui-helper-clearfix", "ui-corner-all"] }, this._resultPrestaDescriptif);
                                    this._buildDescriptifBeds(titleBar, prestation);
                                    $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["prestationtitre"], children: [{ nodeName: "span", properties: { innerHTML: prestation.Libelle}}] }, titleBar);

                                    var imageUrl = prestation.Media.Url;
                                    var imageTitle = prestation.Media.Titre;
                                    var divPrestaPhoto = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["prestationPhoto"] }, this._resultPrestaDescriptif);
                                    $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContentPhoto"], children: [{ nodeName: "img", properties: { src: imageUrl, alt: imageTitle}}] }, divPrestaPhoto);

                                    $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["offreDescription"], children: [{ nodeName: "span", properties: { innerHTML: offreDescription}}] }, this._resultPrestaDescriptif);

                                    var blocGlobalPrestaServices = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocGlobalPrestaServices"] }, this._resultPrestaDescriptif);
                                    if (prestation.IdCaracts.length > 0)
                                        $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["richmediatitre"], children: [{ nodeName: "span", properties: { innerHTML: String.format("{0} & {1}", BookingControls.Resources.SCEA_Services, BookingControls.Resources.SCEA_Equipements)}}] }, blocGlobalPrestaServices);
                                    for (var i = 0; i < prestation.IdCaracts.length; i++) {
                                        $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["caract"], properties: { innerHTML: prestation.IdCaracts[i].Name} }, blocGlobalPrestaServices);
                                    }
                                    $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["richmediatitre"], children: [{ nodeName: "span", properties: { innerHTML: prestation.Traduction.Titre}}] }, this._resultPrestaDescriptif);
                                    $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["richmediaarticle"], children: [{ nodeName: "span", properties: { innerHTML: prestation.Traduction.Article}}] }, this._resultPrestaDescriptif);

                                    //            var _hoverBehavior = $create(AjaxControlToolkit.HoverMenuBehavior,
                                    //              {"popupElement":this._resultPrestaDescriptif, "PopupPosition":3, "OffsetX": 0, "OffsetY": 0, "dynamicServicePath":"/Booking/BookingResults.aspx", "HoverCssClass":"", "PopDelay":25}, null, null, target);

                                    $(loadPopupRef).cluetip({ local: true, hideLocal: true, cursor: 'pointer', insertionType: 'insertBefore', cluetipClass: '', dropShadow: false, fx: { open: 'fadeIn'} });

                                    //            if (dialog)
                                    //                $("#" + id + "_popup_" + offreindex).dialog("destroy");
                                    //if (!this._dialog){
                                    //                this._dialog = $("#" + id + "_popup_" + offreindex).dialog({ autoOpen: false, draggable: false, resizable: false, dialogClass: "widget ui-widget ui-widget-content ui-corner-all" });

                                    //                $("#" + id + "_loadpopup_" + offreindex).hover(
                                    //                    function() { $("#" + id + "_popup_" + offreindex).dialog("open"); },
                                    //                    function() { $("#" + id + "_popup_" + offreindex).dialog("close"); }
                                    //                );
                                    //}

                                    //$common.setVisible(this._resultPrestaDescriptif, false);
                                    //}
                                },
                                _buildDescriptifBeds: function(container, prestation) {
                                    var blocGlobalLit = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocGlobalLit"] }, container);
                                    if (prestation) {
                                        for (var i = 0; i < parseInt(prestation.DetKing); i++)
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["DetKing"], properties: { title: BookingControls.Resources.DetKing} }, blocGlobalLit);
                                        for (var i = 0; i < parseInt(prestation.DetQueen); i++)
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["DetQueen"], properties: { title: BookingControls.Resources.DetQueen} }, blocGlobalLit);
                                        for (var i = 0; i < parseInt(prestation.DetDouble); i++)
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["DetDouble"], properties: { title: BookingControls.Resources.DetDouble} }, blocGlobalLit);
                                        for (var i = 0; i < parseInt(prestation.DetSimple); i++)
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["DetSimple"], properties: { title: BookingControls.Resources.DetSimple} }, blocGlobalLit);
                                        if (prestation.DetExtraBed == "true")
                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["DetExtraBed"], properties: { title: BookingControls.Resources.DetExtraBed} }, blocGlobalLit);
                                    }
                                },

                                _buildOIRefServices_OLD: function(container) {
                                    var elt = container;
                                    this._resultOIRefServices = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["oirefservices"] }, elt);
                                    var refServiceCodes = this.get_owner()._filterServiceCodes;
                                    var refServiceNames = this.get_owner()._filterServiceNames;
                                    for (var i = 0; i < refServiceCodes.length; i++) {
                                        var divRefService = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["refservice", "service_" + i], properties: { title: refServiceNames[i]} }, this._resultOIRefServices);
                                        if (this._findService(refServiceCodes[i])) {
                                            $common.addCssClasses(divRefService, ["active"]);
                                        } else {
                                            $common.addCssClasses(divRefService, ["inactive"]);
                                            divRefService.title = String.format("{0} {1}", BookingControls.Resources.Service_not, refServiceNames[i]);
                                        }
                                    }
                                },
                                _buildOIRefServices: function(container) {
                                    var elt = container;
                                    this._resultOIRefServices = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["oirefservices"] }, elt);
                                    var refServices = this.get_owner().getFilterServices(this._typeOI);
                                    for (var i = 0; i < refServices.length; i++) {
                                        var divRefService = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["refservice", refServices[i].classname], properties: { title: refServices[i].name} }, this._resultOIRefServices);
                                        if (this._findService(refServices[i].code)) {
                                            $common.addCssClasses(divRefService, ["active"]);
                                        } else {
                                            $common.addCssClasses(divRefService, ["inactive"]);
                                            divRefService.title = String.format("{0} {1}", BookingControls.Resources.Service_not, refServices[i].name);
                                        }
                                    }
                                },

                                _findIndexPrestation: function(idOffre) {
                                    var prestations = this._content.Prestations;
                                    for (var i = 0; i < prestations.length; i++) {
                                        var offres = prestations[i].Offres;
                                        for (var j = 0; j < offres.length; j++) {
                                            if (offres[j].Id == idOffre)
                                                return i;
                                        }
                                    }
                                    return -1;
                                },
                                _getOffre: function(prestation, idOffre) {
                                    for (var i = 0; i < prestation.Offres.length; i++) {
                                        if (prestation.Offres[i].Id == idOffre)
                                            return prestation.Offres[i];
                                    }
                                    return null;
                                },
                                _getTarifBase: function(tarif, mode, montant) {
                                    var base = 0;
                                    if (mode == "p") {
                                        base = (100 * parseFloat(tarif)) / (100 - parseFloat(montant));
                                    }
                                    else {
                                        base = parseFloat(tarif) + parseFloat(montant);
                                    }
                                    return base;
                                },
                                /* ------------------------------------------- Build Detail ------------------------------------ */
                                _build_detail: function() {
                                    var elt = this.get_element();
                                    $common.addCssClasses(elt, ["modedetail"]);
                                    if (this._isContentLoaded)
                                        $common.removeCssClasses(elt, ["loadingcontent", "errorloadingcontent"]);
                                    else {
                                        $common.addCssClasses(elt, ["loadingcontent"]);
                                        this.populate();
                                    }
                                    this._resultContent = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent"] }, elt);
                                    this._resultPrestations = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent", "blocPrestations"] }, elt);
                                    this._resultDetailInfos = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent", "blocDetailInfos"] }, elt);

                                    this._buildIdentityDetail(this._resultContent);
                                    //this._buildArticleDetail(this._resultContent);
                                    //this._buildAdresseDetail(this._resultContent);
                                    this._isTarifsVisible = true;

                                    this._buildTarifs(this._resultPrestations);

                                    this._buildDetailInfos(this._resultDetailInfos);
                                },

                                _buildIdentityDetail: function(container) {
                                    var elt = container;
                                    this._resultIdentityDetail = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultIdentityDetail"] }, elt);
                                    this._buildTitle(this._resultIdentityDetail);
                                    this._buildPriceDetail(this._resultIdentityDetail);
                                    var divMedias = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContentMedias"] }, this._resultIdentityDetail);
                                    this._buildMedia(divMedias, BookingControls.MediaSize.Medium);
                                    this._buildMedias(divMedias);
                                    //this._buildPriceDetail(divMedias);
                                    this._buildArticleDetail(this._resultIdentityDetail);
                                },

                                _buildTitle: function(container) {
                                    var elt = container;
                                    var id = this.get_id();
                                    if (!this.is_IE() && this._isContentLoaded && this._resultTitle) {
                                        elt.appendChild(this._resultTitle);
                                    }
                                    else {
                                        this._resultTitle = $common.createElementFromTemplate({
                                            nodeName: "div",
                                            cssClasses: ["blocDetailResultIdentity"],
                                            children: [{
                                                nodeName: "div",
                                                cssClasses: ["blocDetailResultTitle"],
                                                properties: { id: id + "_bloctitle" },
                                                children: [{
                                                    nodeName: "span",
                                                    properties: { innerHTML: this._title }
}]
                                                }, {
                                                    nodeName: "div",
                                                    properties: { title: this._classementOfficiels },
                                                    cssClasses: ["blocDetailResultClassement", this._classementClassName]
}]
                                                }, elt);
                                            }
                                        },

                                        _buildMedias: function(container) {
                                            var elt = container;
                                            if (!this.is_IE() && this._isContentLoaded && this._resultMedias)
                                                elt.appendChild(this._resultMedias);
                                            else {
                                                if (this._isContentLoaded) {
                                                    this._resultMedias = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContentPhotos"] }, elt);
                                                    for (var i = 0; i < this._content.Medias.length; i++) {
                                                        $common.createElementFromTemplate({
                                                            nodeName: "img",
                                                            properties: { src: this._content.Medias[i].Url, alt: this._content.Medias[i].Titre, index: i },
                                                            events: this._onMediaSelected$delegates, cssClasses: ["selectimage"]
                                                        }, this._resultMedias);
                                                    }
                                                }
                                            }
                                        },

                                        _buildPriceDetail: function(container) {
                                            var elt = container;
                                            if (!this.is_IE() && this._isContentLoaded && this._resultPriceDetail)
                                                elt.appendChild(this._resultPriceDetail);
                                            else {
                                                this._resultPriceDetail = $common.createElementFromTemplate({
                                                    nodeName: "div",
                                                    cssClasses: ["blocDetailResultActions"],
                                                    children: [{
                                                        nodeName: "div",
                                                        cssClasses: ["blocDetailResultPrice"],
                                                        children: [{
                                                            nodeName: "span",
                                                            cssClasses: ["pricetext"],
                                                            properties: { innerHTML: BookingControls.Resources.PriceFrom }
                                                        }, {
                                                            nodeName: "span",
                                                            cssClasses: ["pricevalue"],
                                                            properties: { innerHTML: this._price + "&nbsp;€" }
}]
}]
                                                        }, elt);
                                                    }
                                                },

                                                _buildArticleDetail: function(container) {
                                                    var elt = container;
                                                    //        if (!this.is_IE() && this._isContentLoaded && this._resultArticleDetail)
                                                    //            elt.appendChild(this._resultArticleDetail);
                                                    //        else {
                                                    var richMediaTitle = "";
                                                    var richMediaChapeau = "";
                                                    if (this._isContentLoaded && this._content && this._content.Traduction) {
                                                        richMediaTitle = this._content.Traduction.Titre;
                                                        richMediaChapeau = this._content.Traduction.Chapeau;
                                                    }
                                                    this._resultArticleDetail = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultArticleDetail"] }, elt);
                                                    var _articlePar = $common.createElementFromTemplate({ nodeName: "p" }, this._resultArticleDetail);
                                                    //this._buildAdresseDetail(_articlePar);
                                                    $common.createElementFromTemplate({
                                                        nodeName: "div",
                                                        cssClasses: ["richmediatitle"],
                                                        children: [{ nodeName: "span", properties: { innerHTML: richMediaTitle}}]
                                                    }, _articlePar);
                                                    $common.createElementFromTemplate({
                                                        nodeName: "div",
                                                        cssClasses: ["richmediachapeau"],
                                                        children: [{ nodeName: "span", properties: { innerHTML: richMediaChapeau}}]
                                                    }, _articlePar);
                                                    this._buildArticle(_articlePar);
                                                    this._buildOIRefServices(_articlePar);
                                                    //        }
                                                },

                                                _buildAdresseDetail: function(container, index) {
                                                    var elt = container;
                                                    var id = this.get_id();

                                                    //blocDetailInfoContent
                                                    var tabContent = $common.createElementFromTemplate({
                                                        nodeName: "div",
                                                        properties: { id: id + "_tabcontent" + index },
                                                        cssClasses: ["blocDetailInfoContent", "blocDetailInfoMap"]
                                                    }, elt);

                                                    var voie = (this._isContentLoaded && this._content.Adresse) ? this._content.Adresse.LibelleVoie : "";
                                                    var complement = (this._isContentLoaded && this._content.Adresse) ? this._content.Adresse.ComplementAdresse : "";
                                                    var commune = (this._isContentLoaded && this._content.Adresse) ? String.format("{0}&nbsp;{1}", this._content.Adresse.CodePostal, this._commune) : this._commune;
                                                    this._resultAdresseDetail = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultAdresseDetail2", "ui-widget", "ui-widget-content", "ui-corner-all", "ui-state-default"] }, tabContent);

                                                    this._resultMap = $common.createElementFromTemplate({
                                                        nodeName: "div",
                                                        properties: { id: id + "_map" },
                                                        cssClasses: ["blocDetailResultMap"]
                                                    }, tabContent);

                                                    if (this.get_owner()._mapScriptLoaded) {
                                                        this._buildDetailMap(this._resultMap);
                                                    }
                                                    else {
                                                        this.get_owner()._loadingMapScript();
                                                        this.get_owner().add_maploaded(this._oncartoscriptloaded$delegate);
                                                    }

                                                    if (voie != "") $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: voie }, cssClasses: ["libellevoie"] }, this._resultAdresseDetail);
                                                    if (complement != "") $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: complement }, cssClasses: ["complementadresse"] }, this._resultAdresseDetail);
                                                    $common.createElementFromTemplate({ nodeName: "span", properties: { innerHTML: commune }, cssClasses: ["commune"] }, this._resultAdresseDetail);
                                                },
                                                _buildDetailMap: function(container) {
                                                    if (this.get_owner()._mapScriptLoaded == true && google.maps.BrowserIsCompatible() && !this._isMapLoaded) {
                                                        try {
                                                            var map = new google.maps.Map2(container);
                                                            if (map) {
                                                                map.addControl(new google.maps.SmallMapControl());
                                                                var latlng = this.get_GLatLng();
                                                                if (latlng) {
                                                                    map.setCenter(latlng, 9);
                                                                    var icon = new google.maps.Icon();
                                                                    icon.image = this._getMarkerUrl();
                                                                    icon.iconSize = new google.maps.Size(32, 32);
                                                                    icon.iconAnchor = new google.maps.Point(16, 16);
                                                                    opts = {
                                                                        "icon": icon,
                                                                        "title": this.get_title(),
                                                                        "clickable": true
                                                                    };
                                                                    var marker = new google.maps.Marker(latlng, opts);
                                                                    map.addOverlay(marker);
                                                                    map.panTo(latlng, 9);

                                                                    map.checkResize();
                                                                } //endif latlng
                                                                //this._isMapLoaded = true;
                                                            } //endif map
                                                        } catch (err) {
                                                            //alert("Erreur de chargement de GoogleMaps: "+err.description);
                                                        }
                                                    }
                                                },

                                                _buildDetailInfos: function(container) {
                                                    var elt = container;
                                                    var id = this.get_id();
                                                    // on génère les onglets
                                                    var tabNames = new Array(BookingControls.Resources.Tab_Map, BookingControls.Resources.Tab_Services, BookingControls.Resources.Tab_InfosSup);
                                                    var tabs = $common.createElementFromTemplate({ nodeName: "div", properties: { id: id + "_tabs" }, cssClasses: ["blocDetailInfoTabs"] }, elt);
                                                    var tabs_ul = $common.createElementFromTemplate({ nodeName: "ul" }, tabs);
                                                    for (var i = 0; i < tabNames.length; i++) {
                                                        $common.createElementFromTemplate({
                                                            nodeName: "li",
                                                            children: [{ nodeName: "a", properties: { href: "#" + id + "_tabcontent" + i, innerHTML: tabNames[i]}}]
                                                        }, tabs_ul);
                                                    }
                                                    this._buildAdresseDetail(tabs, 0);
                                                    this._buildServices(tabs, 1);
                                                    this._buildComplements(tabs, 2);

                                                    $("#" + id + "_tabs").tabs({ event: 'mouseover' });

                                                    if (this.get_owner()._mapScriptLoaded)
                                                        this.get_owner().get_map().checkResize();
                                                },
                                                _buildServices: function(container, index) {
                                                    var elt = container;
                                                    var id = this.get_id();
                                                    this._resultServices = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContent"], properties: { id: id + "_tabcontent" + index} }, elt);
                                                    if (this._isContentLoaded) {
                                                        var services = this._content.SCEA_Services;
                                                        if (services && services.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.SCEA_Services} }, this._resultServices);
                                                            for (var i = 0; i < services.length; i++) {
                                                                var service = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultServices);
                                                                service.appendChild(document.createTextNode(services[i].Nom));
                                                            }
                                                        }
                                                        var activites = this._content.SCEA_Activites;
                                                        if (activites && activites.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.SCEA_Activites} }, this._resultServices);
                                                            for (var i = 0; i < activites.length; i++) {
                                                                var activite = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultServices);
                                                                activite.appendChild(document.createTextNode(activites[i].Nom));
                                                            }
                                                        }
                                                        var conforts = this._content.SCEA_Conforts;
                                                        if (conforts && conforts.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.SCEA_Conforts} }, this._resultServices);
                                                            for (var i = 0; i < conforts.length; i++) {
                                                                var confort = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultServices);
                                                                confort.appendChild(document.createTextNode(conforts[i].Nom));
                                                            }
                                                        }
                                                        var encadrements = this._content.SCEA_Encadrements;
                                                        if (encadrements && encadrements.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.SCEA_Encadrements} }, this._resultServices);
                                                            for (var i = 0; i < encadrements.length; i++) {
                                                                var encadrement = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultServices);
                                                                encadrement.appendChild(document.createTextNode(encadrements[i].Nom));
                                                            }
                                                        }
                                                        var equipements = this._content.SCEA_Equipements;
                                                        if (equipements && equipements.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.SCEA_Equipements} }, this._resultServices);
                                                            for (var i = 0; i < equipements.length; i++) {
                                                                var equipement = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultServices);
                                                                equipement.appendChild(document.createTextNode(equipements[i].Nom));
                                                            }
                                                        }
                                                    }
                                                },
                                                _buildComplements: function(container, index) {
                                                    var elt = container;
                                                    var id = this.get_id();
                                                    this._resultComplements = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContent"], properties: { id: id + "_tabcontent" + index} }, elt);
                                                    if (this._isContentLoaded) {
                                                        var labels = this._content.ClassLabels;
                                                        if (labels && labels.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.Class_Labels} }, this._resultComplements);
                                                            for (var i = 0; i < labels.length; i++) {
                                                                var label = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultComplements);
                                                                label.appendChild(document.createTextNode(labels[i].Nom));
                                                            }
                                                        }
                                                        var handis = this._content.ClassHandi;
                                                        if (handis && handis.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.Class_Handi} }, this._resultComplements);
                                                            for (var i = 0; i < handis.length; i++) {
                                                                var handi = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultComplements);
                                                                handi.appendChild(document.createTextNode(handis[i].Nom));
                                                            }
                                                        }
                                                        var chaines = this._content.ClassChaines;
                                                        if (chaines && chaines.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.Class_Chaines} }, this._resultComplements);
                                                            for (var i = 0; i < chaines.length; i++) {
                                                                var chaine = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultComplements);
                                                                chaine.appendChild(document.createTextNode(chaines[i].Nom));
                                                            }
                                                        }
                                                        var langues = this._content.LangAccueil;
                                                        if (langues && langues.length > 0) {
                                                            $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentTitle"], properties: { innerHTML: BookingControls.Resources.Lang_Accueil} }, this._resultComplements);
                                                            for (var i = 0; i < langues.length; i++) {
                                                                var langue = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContentService"] }, this._resultComplements);
                                                                langue.appendChild(document.createTextNode(langues[i].Nom));
                                                            }
                                                        }
                                                    }
                                                    //$common.setVisible(this._resultComplements, false);
                                                },
                                                _buildDispos: function(container) {
                                                    var elt = container;
                                                    this._resultDispos = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailInfoContent"] }, elt);
                                                },
                                                //    _selectTab: function(index) {
                                                //        for (var i = 0; i < this._tabs.length; i++) {
                                                //            $common.removeCssClasses(this._tabs[i], ["selectedtab"]);
                                                //            $common.setVisible(this._tabContents[i], false);
                                                //        }
                                                //        $common.addCssClasses(this._tabs[index - 1], ["selectedtab"]);
                                                //        $common.setVisible(this._tabContents[index - 1], true);
                                                //    },

                                                /* ------------------------------------------- Build Light ------------------------------------ */
                                                _build_light: function(target) {
                                                    this._buildIdentityLight(target);
                                                },
                                                _buildIdentityLight: function(target) {
                                                    var elt = target;
                                                    //        if (this._isContentLoaded)
                                                    //            if (!this.is_IE() && this._resultIdentityLight)
                                                    //                elt.appendChild(this._resultIdentityLight);
                                                    //            else
                                                    //            {
                                                    this._resultIdentityLight = $common.createElementFromTemplate({
                                                        nodeName: "div",
                                                        cssClasses: ["blocDetailResultIdentity"],
                                                        children: [{
                                                            nodeName: "div",
                                                            cssClasses: ["blocDetailResultTitle"],
                                                            events: { click: this._onBuildModeDetailSelected$delegate },
                                                            children: [{ nodeName: "span", properties: { innerHTML: this._title}}]
                                                        }, {
                                                            nodeName: "div",
                                                            properties: { title: this._classementOfficiels },
                                                            cssClasses: ["blocDetailResultClassement", this._classementClassName]
                                                        }, {
                                                            nodeName: "div",
                                                            cssClasses: ["blocDetailResultActions"],
                                                            children: [{
                                                                nodeName: "span",
                                                                cssClasses: ["pricetext"],
                                                                properties: { innerHTML: BookingControls.Resources.PriceFrom }
                                                            }, {
                                                                nodeName: "span",
                                                                cssClasses: ["pricevalue"],
                                                                properties: { innerHTML: this._price + "&nbsp;€" }
}]
}]
                                                            }, elt);

                                                            if (this._buildMode == BookingControls.BuildMode.Detail)
                                                                $common.addCssClasses(this._resultIdentityLight, ["selected"]);
                                                            //            }
                                                        },

                                                        /* ------------------------------------------- Build Medium ------------------------------------ */
                                                        _build_medium: function(target) {
                                                            if ($get(this.get_id() + "_medium"))
                                                                this._resultIdentityMedium = $get(this.get_id() + "_medium");
                                                            else
                                                                this._resultIdentityMedium = $common.createElementFromTemplate({
                                                                    nodeName: "div",
                                                                    properties: { id: this.get_id() + "_medium" },
                                                                    cssClasses: ["blocDetailResultIdentity", "blocDetailResultContentMedium"]
                                                                }, target);
                                                            this._buildIdentityMedium(this._resultIdentityMedium);
                                                        },
                                                        _buildIdentityMedium: function(container) {
                                                            var elt = container;
                                                            this._resultIdentityMedium.innerHTML = "";
                                                            if (this._isContentLoaded)
                                                                $common.removeCssClasses(this._resultIdentityMedium, ["loadingcontent", "errorloadingcontent"]);
                                                            else {
                                                                $common.addCssClasses(this._resultIdentityMedium, ["loadingcontent"]);
                                                                this.populate();
                                                            }
                                                            $common.createElementFromTemplate({
                                                                nodeName: "div",
                                                                cssClasses: ["blocDetailResultTitle"],
                                                                events: { click: this._onBuildModeDetailSelected$delegate },
                                                                children: [{ nodeName: "span", properties: { innerHTML: this._title}}]
                                                            }, elt);
                                                            $common.createElementFromTemplate({
                                                                nodeName: "div",
                                                                cssClasses: ["blocDetailResultType"],
                                                                children: [{ nodeName: "div", cssClasses: ["class_" + this._typeOI], properties: { title: eval("BookingControls.Resources." + this._typeOI)}}]
                                                            }, elt);

                                                            this._buildArticleMedium(elt);
                                                            $common.createElementFromTemplate({
                                                                nodeName: "div",
                                                                cssClasses: ["blocDetailResultActions"],
                                                                children: [{
                                                                    nodeName: "span",
                                                                    cssClasses: ["pricetext"],
                                                                    properties: { innerHTML: BookingControls.Resources.PriceFrom }
                                                                }, {
                                                                    nodeName: "span",
                                                                    cssClasses: ["pricevalue"],
                                                                    properties: { innerHTML: this._price + "&nbsp;€" }
}]
                                                                }, elt);
                                                                if (this._buildMode == BookingControls.BuildMode.Detail)
                                                                    $common.addCssClasses(this._resultIdentityMedium, ["selected"]);
                                                            },
                                                            _buildArticleMedium: function(container) {
                                                                var elt = container;
                                                                var richMediaArticle = "";
                                                                var richMediaTitle = "";
                                                                if (this._isContentLoaded) {
                                                                    richMediaTitle = this._content.Traduction.Titre;
                                                                    richMediaArticle = this._content.Traduction.Article;
                                                                    var maxLength = 80;
                                                                    if (richMediaArticle.length > maxLength)
                                                                        richMediaArticle = richMediaArticle.substr(0, maxLength) + " ...";
                                                                }
                                                                $common.createElementFromTemplate({
                                                                    nodeName: "div",
                                                                    cssClasses: ["blocDetailResultArticle"],
                                                                    children: [{ nodeName: "span", cssClasses: ["richmediaarticle"], properties: { innerHTML: richMediaArticle, title: richMediaTitle}}]
                                                                }, elt);
                                                            },

                                                            /* ------------------------------------------- Build Diapo ------------------------------------ */
                                                            _build_diapo: function() {
                                                                var elt = this.get_element();
                                                                $common.addCssClasses(elt, ["diapo"]);
                                                                if (this._isContentLoaded)
                                                                    $common.removeCssClasses(elt, ["loadingcontent", "errorloadingcontent"]);
                                                                else {
                                                                    $common.addCssClasses(elt, ["loadingcontent"]);
                                                                    this.populate();
                                                                }
                                                                this._resultContent = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultContent"] }, elt);
                                                                this._buildDiapoIdentity(this._resultContent);
                                                            },
                                                            _buildDiapoIdentity: function(container) {
                                                                this._resultIdentityDiapo = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocDetailResultIdentityDiapo"] }, container);
                                                                this._buildTitle(this._resultIdentityDiapo);
                                                                this._buildMedia(this._resultIdentityDiapo, BookingControls.MediaSize.Medium);
                                                                this._buildPrice(this._resultIdentityDiapo);
                                                                $addHandler($get(this.get_id() + "_bloctitle"), "click", this._onBuildModeDetailSelected$delegate);
                                                            },

                                                            /* ------------------------------------------- Build Mode Change ------------------------------------ */
                                                            add_buildmodechanged: function(handler) {
                                                                this.get_events().addHandler("buildmodechanged", handler);
                                                            },
                                                            remove_buildmodechanged: function(handler) {
                                                                this.get_events().removeHandler("buildmodechanged", handler);
                                                            },
                                                            raiseBuildModeChanged: function() {
                                                                var eh = this.get_events().getHandler("buildmodechanged");
                                                                if (eh) {
                                                                    eh(this, { mode: this._buildMode });
                                                                }
                                                            },

                                                            /* ------------------------------------------- Populate ------------------------------------ */
                                                            add_populating: function(handler) {
                                                                this.get_events().addHandler("populating", handler);
                                                            },
                                                            remove_populating: function(handler) {
                                                                this.get_events().removeHandler("populating", handler);
                                                            },
                                                            raisePopulating: function() {
                                                                var eh = this.get_events().getHandler("populating");
                                                                if (eh) {
                                                                    eh(this, Sys.EventArgs.Empty);
                                                                }
                                                            },

                                                            add_populated: function(handler) {
                                                                this.get_events().addHandler("populated", handler);
                                                            },
                                                            remove_populated: function(handler) {
                                                                this.get_events().removeHandler("populated", handler);
                                                            },
                                                            raisePopulated: function() {
                                                                var eh = this.get_events().getHandler("populated");
                                                                if (eh) {
                                                                    eh(this, Sys.EventArgs.Empty);
                                                                }
                                                            },

                                                            _onpopulated: function(sender, e) {
                                                                this.raisePopulated();
                                                            },

                                                            populate: function(contextKey) {
                                                                if (this._dynamicServicePath && this._dynamicServiceMethod) {
                                                                    Sys.Net.WebServiceProxy.invoke(this._dynamicServicePath, this._dynamicServiceMethod, false,
            { idOI: this._idOI, contextKey: (contextKey ? contextKey : this._dynamicContextKey) },
            Function.createDelegate(this, this._onMethodComplete), Function.createDelegate(this, this._onMethodError),
            0);
                                                                }
                                                            },
                                                            _onMethodComplete: function(result, userContext, methodName) {
                                                                this._isContentLoaded = true;
                                                                if (result && result != '') {
                                                                    this._content = eval('(' + result + ')');
                                                                    this.raisePopulated();
                                                                }
                                                                // init build page containers
                                                                this._resultContent = null;
                                                                this._resultPrestations = null;
                                                                this._resultDetailInfos = null;
                                                                // init build mode compact
                                                                this._resultMedia = null;
                                                                this._resultIdentity = null;
                                                                this._resultOIDescriptif = null;
                                                                this._resultTarifs = null;
                                                                this._resultArticle = null;
                                                                this._resultPrice = null;
                                                                // init build mode detail
                                                                this._resultArticleDetail = null;
                                                                this._resultIdentityDetail = null;
                                                                //this._resultIdentityLight = null;
                                                                this._resultIdentityDiapo = null;
                                                                //this._resultIdentityMedium = null;
                                                                this._resultTitle = null;
                                                                this._resultMedias = null;
                                                                this._resultPriceDetail = null;
                                                                this._resultAdresseDetail = null;
                                                                this._resultServices = null;
                                                                this._resultComplements = null;
                                                                this._resultDispos = null;
                                                                this._tabs = [];

                                                                if (this._content && this._content.Title && this._content.Title != '')
                                                                    this._title = this._content.Title;
                                                                // Build
                                                                this._build();
                                                                var title = $get(this.get_id() + "_title");
                                                                if (title) {
                                                                    $addHandler(title, "click", this._onBuildModeDetailSelected$delegate);
                                                                    $common.addCssClasses(title, ["buildmode"]);
                                                                }
                                                                var plus = $get(this.get_id() + "_plus");
                                                                if (plus)
                                                                    $addHandler(plus, "click", this._onBuildModeDetailSelected$delegate);

                                                            },
                                                            _onMethodError: function(webServiceError, userContext, methodName) {
                                                                var elt = this.get_element();
                                                                $common.removeCssClasses(elt, ["loadingcontent"]);
                                                                $common.addCssClasses(elt, ["errorloadingcontent"]);
                                                                this._error = String.format("Echec du chargement dynamique - Erreur {0} : {1} ", webServiceError.get_statusCode(), webServiceError.get_message());
                                                                if (this._resultArticle)
                                                                    this._resultArticle.appendChild(document.createTextNode(this._error));
                                                            },

                                                            /* ------------------------------------------- Carto ------------------------------------ */
                                                            add_clickedCarto: function(handler) {
                                                                this.get_events().addHandler("clickedcarto", handler);
                                                            },
                                                            remove_clickedCarto: function(handler) {
                                                                this.get_events().removeHandler("clickedcarto", handler);
                                                            },
                                                            raiseClickedCarto: function() {
                                                                var eh = this.get_events().getHandler("clickedcarto");
                                                                if (eh) {
                                                                    eh(this, Sys.EventArgs.Empty);
                                                                }
                                                            },
                                                            _createMarker: function(map, addon) {
                                                                if (map && (this.get_owner()._mapScriptLoaded)) {
                                                                    var latlng = this.get_GLatLng();
                                                                    if (latlng) {
                                                                        var icon = new google.maps.Icon();
                                                                        icon.image = this._getMarkerUrl();
                                                                        //                if (addon)
                                                                        //                    icon.image = this._MARKER_IMAGEURL_ADDON;
                                                                        icon.iconSize = new google.maps.Size(32, 32);
                                                                        if (addon)
                                                                            icon.iconSize = new google.maps.Size(24, 24);
                                                                        icon.iconAnchor = new google.maps.Point(16, 16);
                                                                        icon.infoWindowAnchor = new google.maps.Point(16, 16);
                                                                        opts = {
                                                                            "icon": icon,
                                                                            "title": this.get_title()
                                                                        };
                                                                        this._marker = new google.maps.Marker(latlng, opts);
                                                                        map.addOverlay(this._marker);
                                                                        google.maps.Event.bind(this._marker, "mouseover", this, this._element_onmouseover);
                                                                        google.maps.Event.bind(this._marker, "mouseout", this, this._element_onmouseout);

                                                                        //                var opt = { color: '#FF0000', weight: 5, length: 10, padding: 50, quickPanEnabled: true }; //,panEvent: 'mouseover'
                                                                        //                var mt = new MarkerTracker(this._marker, map, opt);

                                                                        this._markerInfo = document.createElement('div');
                                                                        $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocTitreEncartListeResults"] }, this._markerInfo);
                                                                        var infoContent = $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocContenuEncartListeResults"] }, this._markerInfo);
                                                                        $common.createElementFromTemplate({ nodeName: "div", cssClasses: ["blocEncartListeResultsBottom"] }, this._markerInfo);
                                                                        this._buildMediaCarto(infoContent);
                                                                        this._build_light(infoContent);
                                                                        this._markerWindow = new EWindow(map);
                                                                        map.addOverlay(this._markerWindow);

                                                                        google.maps.Event.bind(this._marker, "click", this, this._markeronclick);
                                                                        google.maps.Event.bind(map, "click", this, this._maponclick);
                                                                        var info = this._markerWindow.getInfoDiv();
                                                                        google.maps.Event.bind(this._markerWindow, "click", this, this._onBuildModeDetailSelected);
                                                                    }
                                                                }
                                                            },
                                                            _markeronclick: function() {
                                                                var marker = this.get_marker();
                                                                if (marker && this._markerWindow)
                                                                    this._markerWindow.openOnMarker(marker, this._markerInfo.innerHTML);
                                                                this._onBuildModeDetailSelected(this, Sys.EventArgs.Empty);
                                                                this._owner._hideCarto();
                                                            },
                                                            _maponclick: function(marker, point) {
                                                                if (point) { this._markerWindow.hide(); }
                                                            },

                                                            _selectMarker: function() {
                                                                $common.addCssClasses(this.get_element(), ["blocDetailResultOver"]);
                                                                if (this.get_owner()._mapScriptLoaded) {
                                                                    var marker = this.get_marker();
                                                                    if (marker) {
                                                                        marker.setImage(this._getMarkerUrl());
                                                                        if (this._markerWindow && this._markerInfo)
                                                                            this._markerWindow.openOnMarker(marker, this._markerInfo.innerHTML);
                                                                    }
                                                                }
                                                            },
                                                            _unselectMarker: function() {
                                                                $common.removeCssClasses(this.get_element(), ["blocDetailResultOver"]);
                                                                if (this.get_owner()._mapScriptLoaded) {
                                                                    var marker = this.get_marker();
                                                                    if (marker)
                                                                        marker.setImage(this._getMarkerUrl());
                                                                    if (this._markerWindow)
                                                                        this._markerWindow.hide();
                                                                }
                                                            },

                                                            _getMarkerUrl: function() {
                                                                var filename = this._isSelected ? "default_selected.png" : "default.png";
                                                                switch (this._typeOI) {
                                                                    case "OIS_CAMPING":
                                                                        filename = this._isSelected ? "campings_selected.png" : "campings.png";
                                                                        break;
                                                                    case "OIS_COMMERCE_SERVICE":
                                                                        filename = this._isSelected ? "commerces_services_selected.png" : "commerces_services.png";
                                                                        break;
                                                                    case "OIS_DEGUSTATION":
                                                                        filename = this._isSelected ? "degustation_selected.png" : "degustation.png";
                                                                        break;
                                                                    case "OIS_FETE_MANIFESTATION":
                                                                        filename = this._isSelected ? "fetes_manifestations_selected.png" : "fetes_manifestations.png";
                                                                        break;
                                                                    case "OIS_HOTEL":
                                                                        filename = this._isSelected ? "hotels_selected.png" : "hotels.png";
                                                                        break;
                                                                    case "OIS_ITINERAIRE":
                                                                        filename = this._isSelected ? "itineraires_selected.png" : "itineraires.png";
                                                                        break;
                                                                    case "OIS_LOCATIF":
                                                                        filename = this._isSelected ? "locatif_selected.png" : "locatif.png";
                                                                        break;
                                                                    case "OIS_LOISIR_CULTUREL":
                                                                        filename = this._isSelected ? "loisirs_culturels_selected.png" : "loisirs_culturels.png";
                                                                        break;
                                                                    case "OIS_LOISIR_SPORTIF":
                                                                        filename = this._isSelected ? "loisirs_sportifs_selected.png" : "loisirs_sportifs.png";
                                                                        break;
                                                                    case "OIS_PATRIMOINE_CULTUREL":
                                                                        filename = this._isSelected ? "monuments_patrimoine_culturel_selected.png" : "monuments_patrimoine_culturel.png";
                                                                        break;
                                                                    case "OIS_PATRIMOINE_NATUREL":
                                                                        filename = this._isSelected ? "grands_espaces_patrimoine_naturel_selected.png" : "grands_espaces_patrimoine_naturel.png";
                                                                        break;
                                                                    case "OIS_RESTAURANT":
                                                                        filename = this._isSelected ? "restaurants_selected.png" : "restaurants.png";
                                                                        break;
                                                                    case "OIS_SEJOUR":
                                                                        filename = this._isSelected ? "sejours_selected.png" : "sejours.png";
                                                                        break;
                                                                    case "OIS_TRANSPORT":
                                                                        filename = this._isSelected ? "transports_selected.png" : "transports.png";
                                                                        break;
                                                                    case "OIS_VILLAGEVACANCE":
                                                                        filename = this._isSelected ? "villages_vacances_selected.png" : "villages_vacances.png";
                                                                        break;
                                                                }
                                                                return "App_Themes/Default/Images/pictos/" + filename;
                                                            },

                                                            /* ------------------------------------------- Show/Hide ------------------------------------ */
                                                            _showElement: function(elt) {
                                                                $common.setVisible(elt, true);
                                                            },
                                                            _hideElement: function(elt) {
                                                                $common.setVisible(elt, false);
                                                            },

                                                            _show: function() {
                                                                var elt = this.get_element();
                                                                this._showElement(elt);
                                                                this._isTarifsVisible = false;
                                                                this._showPrestations();
                                                                if (!this._loaded) {
                                                                    this._build();
                                                                    this._loaded = true;
                                                                }
                                                                if (this.get_owner()._mapScriptLoaded)
                                                                    this.showMarker(this.get_owner().get_map());
                                                                if (this._buildMode == BookingControls.BuildMode.Detail)
                                                                    $common.setVisible(this._resultTarifs, true);
                                                            },
                                                            _hide: function() {
                                                                var elt = this.get_element();
                                                                this._hideElement(elt);
                                                                this.hideMarker();
                                                            },
                                                            _showPrestations: function() {
                                                                if (this._resultTarifs) {
                                                                    //            var elt = this.get_element();
                                                                    //            var parentSize = $common.getSize(elt);
                                                                    //            var baseHeight = 125;
                                                                    //            var suppHeight = 100;
                                                                    //            var uniteHeight = 20;
                                                                    //            var count = 1;
                                                                    //            if (this._tarifs) {
                                                                    //                count = this._tarifs.offres.length;
                                                                    //                if (count > 0) {
                                                                    //                    var s = this._tarifs.offres[0].semaines.length;
                                                                    //                    suppHeight = 50 + s * 50;
                                                                    //                }
                                                                    //            }
                                                                    //            var unitesCount = this._owner._resumeSearch.Unites.length;
                                                                    //            var _height = suppHeight * count + unitesCount * uniteHeight;
                                                                    if (this._isTarifsVisible) {
                                                                        this._showElement(this._resultTarifs);
                                                                        //                parentSize.height = baseHeight + _height;
                                                                    }
                                                                    else {
                                                                        this._hideElement(this._resultTarifs);
                                                                        //                parentSize.height = baseHeight;
                                                                    }
                                                                    //            $common.setSize(elt, parentSize);
                                                                }
                                                            },
                                                            hideMarker: function() {
                                                                if (this._marker)
                                                                    this._marker.hide();
                                                                if (this._markerWindow)
                                                                    this._markerWindow.hide();
                                                            },
                                                            showMarker: function(map, addon) {
                                                                if (map) {
                                                                    if (!this._marker)
                                                                        this._createMarker(map, addon);
                                                                    if (this._marker) {
                                                                        this._marker.show();
                                                                        //if (!addon)
                                                                        map.checkResize();
                                                                    }
                                                                    //            if (this._markerWindow)
                                                                    //                this._markerWindow.show();
                                                                }
                                                            },
                                                            _setDistance: function() {
                                                                var latlongRef = this._owner.get_GLatLng();
                                                                if (latlongRef) {
                                                                    var latlong = this.get_GLatLng();
                                                                    if (latlong) {
                                                                        this._distance = latlongRef.distanceFrom(latlong);
                                                                        var distanceControl = $get(this.get_id() + "_distance");
                                                                        distanceControl.innerHTML = "";

                                                                        if (this._distance < 2000)
                                                                            distanceControl.appendChild(document.createTextNode(String.format("{0} m", parseInt(this._distance))));
                                                                        else
                                                                            distanceControl.appendChild(document.createTextNode(String.format("{0} km", parseInt(this._distance / 1000))));
                                                                    }
                                                                }
                                                            },

                                                            /* ------------------------------------------- Filtre ------------------------------------ */
                                                            _evalFilter: function(filterField, filterValue) {
                                                                if (!filterValue)
                                                                    return true;
                                                                switch (filterField) {
                                                                    case BookingControls.FilterField.None:
                                                                        return true;
                                                                        break;
                                                                    case BookingControls.FilterField.Price:
                                                                        var min = parseFloat(filterValue.min);
                                                                        var max = parseFloat(filterValue.max);
                                                                        var _eval = new Boolean();
                                                                        _eval = false;
                                                                        var prices = this.get_prices();
                                                                        for (var i = 0; i < prices.length; i++) {
                                                                            if (min <= parseFloat(prices[i]) && parseFloat(prices[i]) <= max) {
                                                                                _eval = true;
                                                                                $common.removeCssClasses(this._blocsTarifs[i], ["disabled"]);
                                                                            } else
                                                                                $common.addCssClasses(this._blocsTarifs[i], ["disabled"]);
                                                                        }
                                                                        return _eval;
                                                                        break;
                                                                    case BookingControls.FilterField.Service:
                                                                        return this._findAllServices(filterValue);
                                                                        break;
                                                                }
                                                                return false;
                                                            },
                                                            _findAllServices: function(codeServices) {
                                                                for (var i = 0; i < codeServices.length; i++) {
                                                                    if (!this._findService(codeServices[i]))
                                                                        return false;
                                                                }
                                                                return true;
                                                            },
                                                            _findService: function(codeService) {
                                                                if (this._services && this._services.length > 0)
                                                                    for (var i = 0; i < this._services.length; i++) {
                                                                    if (this._services[i].code == codeService)
                                                                        return true;
                                                                }
                                                                return false;
                                                            },

                                                            /* ------------------------------------------- Panier ------------------------------------ */
                                                            /* Panier - Quantité */
                                                            populatePanierQuantite: function(offre, ctl, indexUnite) {
                                                                var qte = this.get_owner().getPanierQuantite(offre.id, indexUnite);
                                                                if (ctl) {
                                                                    $common.removeCssClasses(ctl, ["loadingcontent", "errorloadingcontent"]);
                                                                    $clearHandlers(ctl);
                                                                    // on teste s'il y a déjà cet élément au panier
                                                                    if (parseInt(qte) > 0) {
                                                                        if (offre.selectMode == BookingControls.OffreSelectionMode.Multiple) {
                                                                            $common.addCssClasses(ctl, ["empty"]);
                                                                            $addHandler(ctl, "click", this._panierAdd$delegate);
                                                                        } else {
                                                                            $common.addCssClasses(ctl, ["added"]);
                                                                            $addHandler(ctl, "click", this._panierDel$delegate);
                                                                        }
                                                                    }
                                                                    else {
                                                                        $common.addCssClasses(ctl, ["empty"]);
                                                                        $addHandler(ctl, "click", this._panierAdd$delegate);
                                                                    }
                                                                    // on pourrait tester la dispo pour le jour de début directement dans le JS => cssclass=full
                                                                }
                                                            },

                                                            populatePanierQuantiteWS: function(idOffre, indexOffre, indexUnite) {
                                                                if (this._panierServicePath) {
                                                                    Sys.Net.WebServiceProxy.invoke(this._panierServicePath, "GetPanierQuantite", false,
            { idOffre: idOffre, indexUnite: indexUnite },
            Function.createDelegate(this, this._onPanierQuantiteComplete), Function.createDelegate(this, this._onPanierQuantiteError),
            { indexOffre: indexOffre, indexUnite: indexUnite },
            0);
                                                                }
                                                            },
                                                            _onPanierQuantiteComplete: function(result, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "errorloadingcontent"]);
                                                                    $clearHandlers(panierOffre);
                                                                    if (parseInt(result) > 0) {
                                                                        var offres = this._selectOffresUnite(userContext.indexUnite);
                                                                        var offre = offres[userContext.indexOffre];
                                                                        if (offre.selectMode == BookingControls.OffreSelectionMode.Multiple) {
                                                                            $common.addCssClasses(panierOffre, ["empty"]);
                                                                            $addHandler(panierOffre, "click", this._panierAdd$delegate);
                                                                        } else {
                                                                            $common.addCssClasses(panierOffre, ["added"]);
                                                                            $addHandler(panierOffre, "click", this._panierDel$delegate);
                                                                        }
                                                                    }
                                                                    else {
                                                                        $common.addCssClasses(panierOffre, ["empty"]);
                                                                        $addHandler(panierOffre, "click", this._panierAdd$delegate);
                                                                    }
                                                                }
                                                            },
                                                            _onPanierQuantiteError: function(webServiceError, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent"]);
                                                                    $common.addCssClasses(panierOffre, ["errorloadingcontent"]);
                                                                    panierOffre.appendChild(document.createTextNode(webServiceError.get_statusCode()));
                                                                }
                                                            },
                                                            /* Panier - Add */
                                                            addPanierItem: function(idOffre, idPrestation, idOI, tarif, idEctVente, indexOffre, indexUnite, qte, stock) {
                                                                if (this._panierServicePath) {
                                                                    Sys.Net.WebServiceProxy.invoke(this._panierServicePath, "AddPanierItem", false,
            { idOffre: idOffre, idPrestation: idPrestation, idOI: idOI, idEctVente: idEctVente, tarif: tarif, indexUnite: indexUnite, quantite: qte, stockTotal: stock },
            Function.createDelegate(this, this._onAddPanierComplete), Function.createDelegate(this, this._onAddPanierError),
            { indexOffre: indexOffre, indexUnite: indexUnite },
            0);
                                                                }
                                                            },
                                                            addPanierItemMultiple: function(idOffre, idPrestation, idOI, tarif, idEctVente, indexOffre, indexUnite, date, duree, qte, stock) {
                                                                if (this._panierServicePath) {
                                                                    Sys.Net.WebServiceProxy.invoke(this._panierServicePath, "AddPanierItemMultiple", false,
            { idOffre: idOffre, idPrestation: idPrestation, idOI: idOI, idEctVente: idEctVente, tarif: tarif, indexUnite: indexUnite, date: date, duree: duree - 1, quantite: qte, stockTotal: stock },
            Function.createDelegate(this, this._onAddPanierMultipleComplete), Function.createDelegate(this, this._onAddPanierError),
            { indexOffre: indexOffre, indexUnite: indexUnite },
            0);
                                                                }
                                                            },
                                                            _onAddPanierComplete: function(result, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre && result == true) {
                                                                    var offres = this._selectOffresUnite(userContext.indexUnite);
                                                                    var offre = offres[userContext.indexOffre];
                                                                    var t = this.get_owner();
                                                                    offre.stock = parseInt(offre.stock) - 1;
                                                                    if (offre.stock <= 0) {
                                                                        $common.removeCssClasses(panierOffre, ["loadingcontent", "added", "empty"]);
                                                                        $common.addCssClasses(panierOffre, ["added"]);
                                                                        $removeHandler(panierOffre, "click", this._panierAdd$delegate);
                                                                        $addHandler(panierOffre, "click", this._panierDel$delegate);
                                                                    }

                                                                    this.get_owner().raiseCartchanged(this);
                                                                }
                                                                if (result == false) {
                                                                    alert(BookingControls.Resources.NoMoreDispo);
                                                                }
                                                            },
                                                            _onAddPanierMultipleComplete: function(result, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "added", "empty"]);
                                                                    var offres = this._selectOffresUnite(userContext.indexUnite);
                                                                    var offre = offres[userContext.indexOffre];
                                                                    offre.stock = parseInt(offre.stock) - 1;
                                                                    if (offre.stock > 0)
                                                                        $common.addCssClasses(panierOffre, ["empty"]);
                                                                    this.get_owner().raiseCartchanged(this);
                                                                }
                                                            },
                                                            _onAddPanierError: function(webServiceError, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "added", "empty"]);
                                                                    $common.addCssClasses(panierOffre, ["errorloadingcontent"]);
                                                                    panierOffre.appendChild(document.createTextNode(webServiceError.get_statusCode()));
                                                                }
                                                            },
                                                            _panierAdd: function(sender, e) {
                                                                if (sender.target && !this.isnull(sender.target.indexOffre)) {
                                                                    var i = parseInt(sender.target.indexOffre);
                                                                    var indexUnite = parseInt(sender.target.indexUnite);
                                                                    var date;
                                                                    var duree;
                                                                    if (i >= 0) {
                                                                        $common.addCssClasses(sender.target, ["loadingcontent"]);
                                                                        var offres = this._selectOffresUnite(indexUnite);
                                                                        var offre = offres[i];
                                                                        if (offre) {
                                                                            var indexTarif = parseInt(sender.target.indexTarif);
                                                                            var indexWeek = parseInt(sender.target.week);
                                                                            var tarifTotal = 0;
                                                                            if (offre.selectMode == BookingControls.OffreSelectionMode.Multiple) {
                                                                                if (offre.semaines && offre.semaines[indexWeek] && offre.semaines[indexWeek].tarifs) {
                                                                                    var tarif = offre.semaines[indexWeek].tarifs[indexTarif];
                                                                                    if (tarif) {
                                                                                        tarifTotal = tarif.value;
                                                                                        date = tarif.date;
                                                                                        duree = offre.duree;
                                                                                        this.addPanierItemMultiple(offre.id, offre.idPrestation, this._idOI, tarifTotal, this._idEctVente, i, indexUnite, date, duree, 1, offre.stock);
                                                                                    }
                                                                                }
                                                                            } else {
                                                                                tarifTotal = offre.prixTotal;
                                                                                this.addPanierItem(offre.id, offre.idPrestation, this._idOI, tarifTotal, this._idEctVente, i, indexUnite, 1, offre.stock);
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            /* Panier - Delete */
                                                            delPanierItem: function(idOffre, indexOffre, indexUnite) {
                                                                if (this._panierServicePath) {
                                                                    Sys.Net.WebServiceProxy.invoke(this._panierServicePath, "DelPanierItem", false,
            { idOffre: idOffre, indexUnite: indexUnite },
            Function.createDelegate(this, this._onDelPanierComplete), Function.createDelegate(this, this._onDelPanierError),
            { indexOffre: indexOffre, indexUnite: indexUnite },
            0);
                                                                }
                                                            },
                                                            _panierDel: function(sender, e) {
                                                                if (sender.target && !this.isnull(sender.target.indexOffre)) {
                                                                    var i = parseInt(sender.target.indexOffre);
                                                                    var indexUnite = parseInt(sender.target.indexUnite);
                                                                    if (i >= 0) {
                                                                        $common.addCssClasses(sender.target, ["loadingcontent"]);
                                                                        var offres = this._selectOffresUnite(indexUnite);
                                                                        var offre = offres[i];
                                                                        if (offre)
                                                                            this.delPanierItem(offre.id, i, indexUnite);
                                                                    }
                                                                }
                                                            },
                                                            _onDelPanierComplete: function(result, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    var offres = this._selectOffresUnite(userContext.indexUnite);
                                                                    var offre = offres[userContext.indexOffre];
                                                                    if (offre) {
                                                                        offre.stock = parseInt(offre.stock) + 1;
                                                                    }
                                                                    
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "added", "empty"]);
                                                                    $removeHandler(panierOffre, "click", this._panierDel$delegate);
                                                                    $addHandler(panierOffre, "click", this._panierAdd$delegate);
                                                                    $common.addCssClasses(panierOffre, ["empty"]);
                                                                    this.get_owner().raiseCartchanged(this);
                                                                }
                                                            },
                                                            _onDelPanierError: function(webServiceError, userContext, methodName) {
                                                                var id = this.get_id();
                                                                var panierOffre = $get(String.format("{0}_panier{1}_{2}", id, userContext.indexOffre, userContext.indexUnite));
                                                                if (panierOffre) {
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "added", "empty"]);
                                                                    $common.addCssClasses(panierOffre, ["errorloadingcontent"]);
                                                                    panierOffre.appendChild(document.createTextNode(webServiceError.get_statusCode()));
                                                                }
                                                            },
                                                            _onPanierItemRemoved: function(sender, e) {
                                                                var idOffre = e;
                                                                var offres = this._tarifs.offres;
                                                                var index = -1;
                                                                for (var i = 0; i < offres.length; i++) {
                                                                    if (offres[i].id == idOffre) {
                                                                        index = i;
                                                                        break;
                                                                    }
                                                                }
                                                                if (index > -1) {
                                                                    var t = sender.stockTotal;
                                                                    var panierOffre = this._carts[index];
                                                                    $common.removeCssClasses(panierOffre, ["loadingcontent", "errorloadingcontent", "added"]);
                                                                    $clearHandlers(panierOffre);
                                                                    $common.addCssClasses(panierOffre, ["empty"]);
                                                                    $addHandler(panierOffre, "click", this._panierAdd$delegate);

                                                                    var offre = offres[index];
                                                                    if (offre) {
                                                                        offre.stock = parseInt(offre.stock) + 1;
                                                                    }
                                                                }
                                                            },
                                                            /* ------------------------------------------- Select Offre Multiple ------------------------------------ */
                                                            _ontarifselect: function(sender, e) {
                                                                var id = this.get_id();
                                                                var radio = sender.target;
                                                                var td = radio.parentNode.parentNode;
                                                                var table = td.parentNode.parentNode;

                                                                var radios = table.getElementsByTagName('input');
                                                                for (var i = 0; i < radios.length; i++) {
                                                                    radios[i].checked = false;
                                                                }
                                                                radio.checked = true;

                                                                this._selecttarifdays(td, radio.week, radio.day, radio.duree, table);

                                                                var divTotal = $get(String.format("{0}_total_{1}_{2}", id, radio.indexUnite, radio.indexOffre));
                                                                if (divTotal) {
                                                                    divTotal.innerHTML = "";
                                                                    var tarifTotal = parseFloat(sender.target.value).toFixed(2);
                                                                    divTotal.appendChild(document.createTextNode(String.format("Total: {0} €", tarifTotal)));
                                                                }
                                                                var addPanier = $get(String.format("{0}_panieradd_{1}_{2}", id, radio.indexUnite, radio.indexOffre));
                                                                if (addPanier) {
                                                                    addPanier.indexTarif = radio.indexTarif;
                                                                    addPanier.week = radio.week;
                                                                }
                                                            },
                                                            _selecttarifdays: function(tdselected, week, day, duree, tabledays) {
                                                                var id = this.get_id();
                                                                for (var i = 0; i < tabledays.rows.length; i++)
                                                                    for (var j = 0; j < tabledays.rows[i].cells.length; j++) {
                                                                    Sys.UI.DomElement.removeCssClass(tabledays.rows[i].cells[j], "selected");
                                                                }

                                                                Sys.UI.DomElement.addCssClass(tdselected, "selected");
                                                                for (var i = 1; i < duree; i++) {
                                                                    day++;
                                                                    if (day >= 7) {
                                                                        day = 0;
                                                                        week++;
                                                                    }
                                                                    var tdnext = $get(String.format("{0}_date_{1}_{2}", id, week, day), tabledays);
                                                                    if (tdnext)
                                                                        Sys.UI.DomElement.addCssClass(tdnext, "selected");
                                                                }
                                                            },

                                                            /* ------------------------------------------- Utils ------------------------------------ */
                                                            isnull: function(elt) {
                                                                return (elt === undefined || elt === null);
                                                            },

                                                            /* ------------------------------------------- Events ------------------------------------ */
                                                            _onload: function(sender, e) {
                                                                if (!this._loaded) this._hide();
                                                            },
                                                            _onshowingPrestations: function(sender, e) {
                                                                this._isTarifsVisible = !this._isTarifsVisible;
                                                                this._showPrestations();
                                                            },

                                                            _carto_onclick: function(sender, e) {
                                                                this._isSelected = true;
                                                                if (this.get_owner()._mapScriptLoaded) {
                                                                    this.raiseClickedCarto();
                                                                } else {
                                                                    this.get_owner()._showCarto();
                                                                }
                                                            },

                                                            _element_onmouseout: function(sender, e) {
                                                                this._unselectMarker();
                                                            },
                                                            _element_onmouseover: function(sender, e) {
                                                                this._selectMarker();
                                                            },
                                                            _element_onclick: function(sender, e) {
                                                            },
                                                            _onBuildModeDetailSelected: function(sender, e) {
                                                                this._buildMode = BookingControls.BuildMode.Detail;
                                                                this._build();
                                                                this.raiseBuildModeChanged();
                                                            },
                                                            _onMediaSelected: function(ev) {
                                                                this._stopPlayImage();
                                                                var i = ev.target["index"];
                                                                this._selectImage(i, BookingControls.MediaSize.Medium);
                                                                ev.preventDefault();
                                                            },
                                                            _onImageClicked: function(e) {
                                                                if (e && typeof (e.preventDefault) !== "undefined") {
                                                                    e.preventDefault();
                                                                }
                                                                if (e && typeof (e.stopPropagation) !== "undefined") {
                                                                    e.stopPropagation();
                                                                }
                                                                if (e && e.target)
                                                                    return hs.expand(e.target.parentNode, this._gallery);
                                                                else
                                                                    return hs.expand($get(this.get_id() + "_medialink"), this._gallery);
                                                            },
                                                            _owner_oncartoloaded: function(sender, e) {
                                                                var sendermap = sender.get_map();
                                                                this._createMarker(sendermap, this._isAddon);
                                                                this.showMarker(sendermap, this._isAddon);
                                                                if (!this._isAddon)
                                                                    sender._extendBounds(this, true);
                                                                this._setDistance();
                                                            },
                                                            _oncartoscriptloaded: function(sender, e) {
                                                                var elt = $get(this.get_id() + "_map");
                                                                this._buildDetailMap(elt);
                                                            },
                                                            _onselect: function(sender, e) {
                                                                var i = parseInt(sender.target.parentNode.indexOffre);
                                                                var offre = this._tarifs.offres[i];
                                                                var tarifTotal = 0;
                                                                var semaines = offre.semaines;
                                                                for (var s = 0; s < semaines.length; s++) {
                                                                    var tarifs = semaines[s].tarifs;
                                                                    for (var j = 0; j < tarifs.length; j++) {
                                                                        tarifTotal += tarifs[j].value;
                                                                    }
                                                                }
                                                                this.get_owner().raiseResultSelected(offre.id, offre.idPrestation, this._idOI, tarifTotal, this._idEctVente);
                                                            }
                                                        };
BookingControls.BookingResult.registerClass('BookingControls.BookingResult', Sys.UI.Control);

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
Type.registerNamespace('BookingControls');
BookingControls.Resources={
"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios must have 4 elements",
"Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.createAnimation cannot add child animations to type \"{0}\" that does not derive from AjaxControlToolkit.Animation.ParentAnimation",
"PasswordStrength_RemainingSymbols":"{0} symbol characters",
"Service_not":"pas de",
"ExtenderBase_CannotSetClientStateField":"clientStateField can only be set before initialization",
"RTE_PreviewHTML":"Preview HTML",
"ModesPaiement":"Modes de paiements acceptés:",
"PriceFrom":"A partir de&nbsp;",
"PriceUnit":"€",
"ChildAgeFormat":"{0} {1} {2}",
"RTE_JustifyCenter":"Justify Center",
"PasswordStrength_RemainingUpperCase":"{0} more upper case characters",
"Animation_TargetNotFound":"AjaxControlToolkit.Animation.Animation.set_animationTarget requires the ID of a Sys.UI.DomElement or Sys.UI.Control.  No element or control could be found corresponding to \"{0}\"",
"RTE_FontColor":"Font Color",
"RTE_LabelColor":"Label Color",
"Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is invalid for parseBorderWidth",
"Reservation":"Réservation",
"RTE_Heading":"Heading",
"Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before initialization",
"RTE_OrderedList":"Ordered List",
"Tab_Map":"Carto.",
"ShowOtherOffers":"Offres complémentaires",
"NoDispo":"Aucune offre disponible.",
"ReorderList_DropWatcherBehavior_NoChild":"Could not find child of list with id \"{0}\"",
"CascadingDropDown_MethodTimeout":"[Method timeout]",
"RTE_Columns":"Columns",
"RTE_InsertImage":"Insert Image",
"RTE_InsertTable":"Insert Table",
"RTE_Values":"Values",
"RTE_OK":"OK",
"SCEA_Equipements":"Equipements",
"ExtenderBase_PageNotRegisteredForCallbacks":"This Page has not been registered for callbacks",
"Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\" or \"{1}\"",
"SelectionModeMultiple":"Choix de la date d\u0027arrivée",
"Calendar_Days":"{0} jours",
"Animation_InvalidBaseType":"AjaxControlToolkit.Animation.registerAnimation can only register types that inherit from AjaxControlToolkit.Animation.Animation",
"RTE_UnorderedList":"Unordered List",
"ResizableControlBehavior_InvalidHandler":"{0} handler not a function, function name, or function text",
"OIS_SEJOUR":"Séjour",
"Animation_InvalidColor":"Color must be a 7-character hex representation (e.g. #246ACF), not \"{0}\"",
"RTE_CellColor":"Cell Color",
"PasswordStrength_RemainingMixedCase":"Mixed case characters",
"RTE_Italic":"Italic",
"CascadingDropDown_NoParentElement":"Failed to find parent element \"{0}\"",
"ResumeSearchPeriodeFormat":"du {0} au {1}.",
"ValidatorCallout_DefaultErrorMessage":"This control is invalid",
"RTE_Indent":"Indent",
"ReorderList_DropWatcherBehavior_CallbackError":"Reorder failed, see details below.\\r\\n\\r\\n{0}",
"PopupControl_NoDefaultProperty":"No default property supported for control \"{0}\" of type \"{1}\"",
"RTE_Normal":"Normal",
"DetSimple":"Lit simple",
"PopupExtender_NoParentElement":"Couldn\u0027t find parent element \"{0}\"",
"RTE_ViewValues":"View Values",
"RTE_Legend":"Legend",
"RTE_Labels":"Labels",
"RTE_CellSpacing":"Cell Spacing",
"OIS_LOCATIF":"Locatif",
"PasswordStrength_RemainingNumbers":"{0} more numbers",
"RTE_Border":"Border",
"RTE_Create":"Create",
"RTE_BackgroundColor":"Background Color",
"DetQueen":"Lit Queen size",
"RTE_Cancel":"Cancel",
"OIS_PATRIMOINE_CULTUREL":"Patrimoine culturel",
"RTE_JustifyFull":"Justify Full",
"RTE_JustifyLeft":"Justify Left",
"RTE_Cut":"Cut",
"SCEA_Activites":"Activités",
"OIS_PATRIMOINE_NATUREL":"Patrimoine naturel",
"ResizableControlBehavior_CannotChangeProperty":"Changes to {0} not supported",
"PanierItem_Delete":"Retirer",
"Tab_InfosSup":"Informations complémentaires",
"RTE_ViewSource":"View Source",
"DetKing":"Lit King size",
"Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid for parsePadding",
"OIS_COMMERCE_SERVICE":"Commerce et service",
"OffreDureeFormat":"durée: {0} jour(s)",
"RTE_Paste":"Paste",
"ExtenderBase_ControlNotRegisteredForCallbacks":"This Control has not been registered for callbacks",
"DetDouble":"Lit double",
"Calendar_Night":", {0} nuit",
"Calendar_Today":"Aujourd\u0027hui: {0}",
"Common_DateTime_InvalidFormat":"Invalid format",
"ListSearch_DefaultPrompt":"Type to search",
"CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"",
"RTE_ViewEditor":"View Editor",
"Calendar_Nights":", {0} nuits",
"RTE_BarColor":"Bar Color",
"Reservation_add":"Ajouter à la réservation",
"Reservation_del":"Retirer de la réservation",
"PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very Weak;Weak;Poor;Almost OK;Barely Acceptable;Average;Good;Strong;Excellent;Unbreakable!",
"SearchTypeText":"Nous rechercherons parmi",
"Age":"Age",
"OIS_ITINERAIRE":"Itinéraire",
"Child":"Enfant",
"Total":"Total",
"Tab_Services":"Services",
"Address":"Adresse :",
"RTE_Inserttexthere":"Insert text here",
"OIS_DEGUSTATION":"Dégustation",
"Animation_UknownAnimationName":"AjaxControlToolkit.Animation.createAnimation could not find an Animation corresponding to the name \"{0}\"",
"ExtenderBase_InvalidClientStateType":"saveClientState must return a value of type String",
"Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}",
"Tabs_OwnerExpected":"owner must be set before initialize",
"DynamicPopulate_WebServiceTimeout":"Web service call timed out",
"PasswordStrength_RemainingLowerCase":"{0} more lower case characters",
"OIS_VILLAGEVACANCE":"Village vacance",
"OIS_RESTAURANT":"Restaurant",
"Panier_Total":"Total :",
"SCEA_Conforts":"Conforts",
"Animation_MissingAnimationName":"AjaxControlToolkit.Animation.createAnimation requires an object with an AnimationName property",
"RTE_JustifyRight":"Justify Right",
"Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs collection",
"RTE_CellPadding":"Cell Padding",
"OIS_HOTEL":"Hôtel",
"RTE_ClearFormatting":"Clear Formatting",
"AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVisibleControlBehavior must have an element",
"OIS_LOISIR_SPORTIF":"Loisir sportif",
"Slider_NoSizeProvided":"Please set valid values for the height and width attributes in the slider\u0027s CSS classes",
"DynamicPopulate_WebServiceError":"Web Service call failed: {0}",
"PasswordStrength_StrengthPrompt":"Strength: ",
"PasswordStrength_RemainingCharacters":"{0} more characters",
"PasswordStrength_Satisfied":"Nothing more required",
"RTE_Hyperlink":"Hyperlink",
"ResumeSearchPrefixFormat":"Votre demande: {0}",
"Animation_NoPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\"",
"PasswordStrength_InvalidStrengthDescriptionStyles":"Text Strength description style classes must match the number of text descriptions.",
"PasswordStrength_GetHelpRequirements":"Get help on password requirements",
"filterService8":"Animaux admis",
"filterService9":"Accès handicapés",
"filterService0":"Piscine",
"filterService1":"Salle de sports",
"filterService2":"Service en chambre",
"filterService3":"Parking",
"filterService4":"Climatisation",
"filterService5":"Accès Internet WIFI",
"filterService6":"Restaurant",
"filterService7":"Bar",
"DetExtraBed":"Lit supplémentaire",
"PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text strength descriptions specified",
"RTE_Underline":"Underline",
"OIS_FETE_MANIFESTATION":"Fête et manifestation",
"Class_Chaines":"Chaines",
"Class_Handi":"Tourisme Handicap",
"ResumeSearchUniteEnfantsFormat":"et {0} enfant(s)",
"Tabs_PropertySetAfterInitialization":"{0} cannot be changed after initialization",
"RTE_Rows":"Rows",
"RTE_Redo":"Redo",
"RTE_Size":"Size",
"RTE_Undo":"Undo",
"RTE_Bold":"Bold",
"RTE_Copy":"Copy",
"RTE_Font":"Font",
"Lang_Accueil":"Langues parlées à l\u0027accueil",
"PlusDetails":"Plus de détails",
"CascadingDropDown_MethodError":"[Method error {0}]",
"SCEA_Services":"Services",
"RTE_BorderColor":"Border Color",
"filterService19":"Piscine chauffée",
"filterService18":"Club enfant",
"filterService11":"Chauffage",
"filterService10":"Discothèque",
"filterService13":"Garage",
"filterService12":"Cheminée",
"filterService15":"Salle de bain privée",
"filterService14":"Jardin",
"filterService17":"Baby Club",
"filterService16":"Commerce alimentaire",
"Class_Labels":"Labels",
"OIS_TRANSPORT":"Transport",
"Calendar_Day":"{0} jour",
"ResumeSearchUniteFormat":"{0} adulte(s)",
"RTE_Paragraph":"Paragraph",
"RTE_InsertHorizontalRule":"Insert Horizontal Rule",
"VoirOffres":"voir les offres",
"SCEA_Encadrements":"Encadrements",
"Common_UnitHasNoDigits":"No digits",
"RTE_Outdent":"Outdent",
"OIS_LOISIR_CULTUREL":"Loisir culturel",
"OIS_CAMPING":"Camping",
"Common_DateTime_InvalidTimeSpan":"\"{0}\" is not a valid TimeSpan format",
"weekabr":"sem.",
"Animation_CannotNestSequence":"AjaxControlToolkit.Animation.SequenceAnimation cannot be nested inside AjaxControlToolkit.Animation.ParallelAnimation",
"NoPrestaHebergement":"Aucun hébergement disponible",
"day1":"Lun",
"day0":"Dim",
"day3":"Mer",
"day2":"Mar",
"day5":"Ven",
"day4":"Jeu",
"day6":"Sam",
"week":"semaine",
"NoMoreDispo":"Plus de stock disponible",
"Shared_BrowserSecurityPreventsPaste":"Your browser security settings don\u0027t permit the automatic execution of paste operations. Please use the keyboard shortcut Ctrl+V instead.",
"AgeEnfant":"Age Enf."
};

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();