update_div_with_image = function(id, urlimage){
    $(id).update('<img src="' + urlimage +'" alt="" width="290" />');
}

add_remove_assurance = function(prix_total_hors_energie, frais_resa, nb_nuits){
    prix_total_a_regler = prix_total_hors_energie + frais_resa;
    if ($('chk_assurance').checked) {
        assurance = (prix_total_a_regler * 4.5)/100;
        prix_total_a_regler += assurance;
        $('txt_assurance').value = (Math.round(assurance*100)/100) + "€";
        $('txt_total_a_regler').value = (Math.round(prix_total_a_regler*100)/100) + "€";
        $('txt_prix_par_nuit').value = (Math.round(prix_par_nuit*100)/100) + "€";
    } else {
        $('txt_assurance').value = 0 + "€";
        $('txt_total_a_regler').value = (Math.round(prix_total_a_regler*100)/100) + "€";
        $('txt_prix_par_nuit').value = (Math.round(prix_par_nuit*100)/100) + "€";
    }
}
emptyField = function(id, text) {
    if ($(id).value == text) {
        $(id).value= '';
        $(id).style.color = '#333';
    }
}

fillField = function(id, text) {
    if (isFieldEmpty(id)) {
        $(id).value= text;
    }
}

initialize = function(id_t) {
    var my_fx = new fx.Height(id_t, {
        duration: 400
    });
    my_fx.hide();
    return my_fx;
}

isFieldEmpty = function(id) {
    return $(id).value == '';
}

link_valide = function(id) {
    var frm = document.getElementById("frm_choisir"+id);
    frm.action = "espace_proprietaire_nouvelle_reservation_valide.php";
    frm.submit();
}

link_refuse = function(id) {
    var frm = document.getElementById("frm_choisir"+id);
    frm.action = "espace_proprietaire_nouvelle_reservation_refuse.php";
    frm.submit();
}

loadDepartment = function(regionId, host) {
    new Ajax.Updater(
        "cmbDepartement",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadDepartement',
                regionId: regionId
            }
        });
}
loadInformationsOfRegion = function(regionId, host) {
    new Ajax.Updater(
        "curiosite",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadCuriosite',
                regionId: regionId
            }
        });
    new Ajax.Updater(
        "metro",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadMetro',
                regionId: regionId
            }
        });
    new Ajax.Updater(
        "quartier",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadQuartier',
                regionId: regionId
            }
        });
    new Ajax.Updater(
        "arrondissement",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadArrondissement',
                regionId: regionId
            }
        });
}
loadOpinions = function(host, targetId, offset) {
    new Ajax.Updater(
        targetId,
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: "loadOpinions",
                offset: offset
            }
        });
}
loadQuartiers = function(regionId, host) {
    new Ajax.Updater(
        "cmbQuartier",
        host + '/ajax.php',
        {
            method: 'get',
            encoding: 'ISO-8859-1',
            parameters: {
                mode: 'loadQuartier',
                regionId: regionId
            }
        });
}

manageEquipmentResearch = function (isChecked, checkboxValue, inputHiddenId) {
    currentValue = $(inputHiddenId).value;
    if(isChecked) {
        currentValue += "-" + checkboxValue;
    } else {
        tableau = currentValue.split("-");
        currentValue = "0";
        for(i = 0; i < tableau.length; i++) {
            valeur = tableau[i];
            if((valeur != checkboxValue) && (valeur > 0)) {
                currentValue += "-" + valeur;
            }
        }
    }
    $(inputHiddenId).value = currentValue;
}

OpenPopUp = function (url, width, height) {
    left_position = (screen.width) ? (screen.width - width)/2 : 100;
    top_position = (screen.height) ? (screen.height - height)/2 : 100;
    window.open(url, "docPopup", "toolbar=no, location=no, directories=no, status=no, resizable=no, Scrollbars=yes, copyhistory=no, width=" + width + ", height=" + height + ', top=' + top_position + ', left=' + left_position);
}

print_state = function(id_reservation,id_proprietaire) {
    var URL_page = "espace_proprietaire_etat_lieu_print.php?id_resa="+id_reservation+"&id_proprio="+id_proprietaire;
    OpenPopUp(URL_page, 710, 600);
}

print_contrat = function(id_proprietaire,id_client,id_reservation) {
    var URL_page = "espace_proprietaire_contrat_print.php?id_proprio=" + id_proprietaire + "&id_client=" + id_client +"&id_resa="+id_reservation;
    OpenPopUp(URL_page, 540, 800);
}

switchToPass = function (id) {
    if ($(id).type == "text") {
        emptyField(id, 'Votre mot de passe');
        var currentInput = $(id);
        var passwordInput = currentInput.cloneNode(false);
        passwordInput.setAttribute('type', 'password');
        passwordInput.setAttribute('name', $(id).getAttribute('name'));
        passwordInput.setAttribute('id', $(id).getAttribute('id'));
        passwordInput.style.color = '#333';
        currentInput.parentNode.replaceChild(passwordInput, currentInput);
        passwordInput.focus();
    }
}

var Crossfade = Class.create();
Crossfade.prototype = {
    loaded : false,
    initialize : function(elm, options) {
        var me = this, next, prev;
        this.elm = $(elm);
        this.counter = 0;
        this.prevSlide = null;
        var t_opt = {};
        for(t in Crossfade.Transition) {
            var trans = Crossfade.Transition[t];
            if(trans.className && this.elm.hasClassName(trans.className)) {
                t_opt = {
                    transition:trans
                };
                break;
            }
        }
        this.options = Object.extend(Object.clone(Crossfade.defaults),Object.extend(options || {},t_opt));
        this.options.interval = Math.max(2,this.options.interval);
        this.elm.makePositioned();
        this.slides = this.elm.immediateDescendants();
        if(this.options.random || this.elm.hasClassName(this.options.randomClassName)){
            this.slides.sort(function(a,b){
                return me.rndm(-1,1);
            });
        }
        if(this.elm.id) {
            next = $(this.elm.id + '-next');
            prev = $(this.elm.id + '-previous');
            if(next) {
                Event.observe(next, 'click', this.next.bind(this));
            }
            if(prev) {
                Event.observe(prev, 'click', this.previous.bind(this));
            }
        }

        this.loadSlide(this.slides[0],function() {
            me.options.transition.prepare(me);
        });
        this.loadSlide(this.slides[1]);

        if(this.options.autoStart) {
            setTimeout(this.start.bind(this),this.rndm((this.options.interval-1)*1000,(this.options.interval+1)*1000));
        }
    },
    start : function() {
        this.ready = true;
        this.cycle()
        return this.timer = new PeriodicalExecuter(this.cycle.bind(this), this.options.interval);
    },
    stop : function() {
        this.options.transition.cancel(this);
        this.timer.stop();
    },
    next : function(){
        this.options.transition.cancel(this);
        this.cycle();
    },
    previous : function() {
        this.options.transition.cancel(this);
        this.cycle(-1);
    },
    cycle : function(dir) {
        if(!this.ready) {
            return;
        }
        this.ready = false;
        dir = (dir === -1) ? dir : 1;
        var me = this, prevSlide, nextSlide, opt, fade;
        prevSlide = this.slides[this.counter];
        this.counter = this.loopCount(this.counter + dir);
        if(this.counter == 0){
            this.loaded = true;
        }
        nextSlide = this.slides[this.counter];
        this.loadSlide(nextSlide, me.options.transition.cycle(prevSlide, nextSlide, me));
        if(!this.loaded) {
            this.loadSlide(this.slides[this.loopCount(this.counter+1)]);
        }
    },
    loadSlide : function(slide, onload){
        var loaders = [], me = this, img, pnode, onloadFunction;
        onload = typeof onload === 'function' ? onload : function(){};
        onloadFunction = function() {
            onload();
            me.ready = true;
        };
        slide = $(slide);
        loaders = Selector.findChildElements(slide,[this.options.imageLoadSelector]);
        if(loaders.length && loaders[0].href !== ''){
            img = document.createElement('img');
            img.className = 'loadimage';
            img.onload = onloadFunction;
            img.src = loaders[0].href;
            loaders[0].parentNode.replaceChild(img,loaders[0]);
        } else {
            loaders = [];
            loaders = Selector.findChildElements(slide, [this.options.ajaxLoadSelector]);
            if(loaders.length && loaders[0].href !== ''){
                new Ajax.Updater(slide, loaders[0].href, {
                    method:'get',
                    onComplete:onloadFunction
                });
            } else {
                onloadFunction();
            }
        }
    },
    loopCount : function(c){
        if(c >= this.slides.length){
            c = 0;
        } else if (c < 0) {
            c = this.slides.length - 1
        }
        return c;
    },
    rndm : function(min, max){
        return Math.floor(Math.random() * (max - min + 1) + min);
    },
    timer : null,
    effect : null,
    ready : false
};
Crossfade.Transition = {};
Crossfade.Transition.Switch = {
    className : 'transition-switch',
    cycle : function(prev, next, show) {
        show.slides.without(next).each(function(s){
            $(s).hide();
        })
        $(next).show();
    },
    cancel : function(show){},
    prepare : function(show){
        show.slides.each(function(s,i){
            $(s).setStyle({
                display:(i === 0 ? 'block' : 'none')
            });
        });
    }
};
Crossfade.Transition.Crossfade = {
    className : 'transition-crossfade',
    cycle : function(prev, next, show) {
        var opt = show.options;
        show.effect = new Effect.Parallel([new Effect.Fade(prev ,{
            sync:true
        }),
        new Effect.Appear(next,{
            sync:true
        })],

        {
            duration: opt.duration,
            queue : 'Crossfade',
            afterFinish:function(){
                show.slides.without(next).each(function(s){
                    $(s).setStyle({
                        opacity:0
                    });
                })
            }
        }
        );
    },
    cancel : function(show){
        if(show.effect) {
            show.effect.cancel();
        }
    },
    prepare : function(show){
        show.slides.each(function(s,i){
            $(s).setStyle({
                opacity:(i === 0 ? 1 : 0),
                visibility:'visible'
            });
        });
    }
};
Crossfade.Transition.FadeOutFadeIn = {
    className : 'transition-fadeoutfadein',
    cycle : function(prev, next, show) {
        var opt = show.options;
        show.effect = new Effect.Fade(prev ,{
            duration: opt.duration/2,
            afterFinish: function(){
                show.effect = new Effect.Appear(next,{
                    duration: opt.duration/2
                });
                show.slides.without(next).each(function(s){
                    $(s).setStyle({
                        opacity:0
                    });
                })
            }
        });
    },
    cancel : function(show){
        if(show.effect) {
            show.effect.cancel();
        }
    },
    prepare : function(show){
        show.slides.each(function(s,i){
            $(s).setStyle({
                opacity:(i === 0 ? 1 : 0),
                visibility:'visible'
            });
        });
    }
};

Effect.DoNothing = Class.create();
Object.extend(Object.extend(Effect.DoNothing.prototype, Effect.Base.prototype), {
    initialize: function() {
        this.start({
            duration: 0
        });
    },
    update: Prototype.emptyFunction
});
Crossfade.Transition.FadeOutResizeFadeIn = {
    className : 'transition-fadeoutresizefadein',
    cycle : function(prev, next, show) {
        var opt = show.options;
        show.effect = new Effect.Fade(prev ,{
            duration: (opt.duration-1)/2,
            afterFinish: function(){
                show.slides.without(next).each(function(s){
                    $(s).setStyle({
                        opacity:0
                    });
                })
                var slideDims = [next.getWidth(),next.getHeight()];
                var loadimg = Selector.findChildElements(next,['img.loadimage']);
                if(loadimg.length && loadimg[0].offsetWidth && loadimg[0].offsetHeight){
                    slideDims[0] += slideDims[0] < loadimg[0].offsetWidth ? loadimg[0].offsetWidth : 0;
                    slideDims[1] += slideDims[1] < loadimg[0].offsetHeight ? loadimg[0].offsetHeight : 0;
                }
                var showDims = [show.elm.getWidth(),show.elm.getHeight()];
                var scale = [(showDims[0] > 0 && slideDims[0] > 0 ? slideDims[0]/showDims[0] : 1)*100,(showDims[1] > 0 && slideDims[1] > 0 ? slideDims[1]/showDims[1] : 1)*100];
                show.effect = new Effect.Parallel([
                    (scale[0] === 100 ? new Effect.DoNothing() : new Effect.Scale(show.elm,scale[0],{
                        sync:true,
                        scaleY:false,
                        scaleContent:false
                    })),
                    (scale[1] === 100 ? new Effect.DoNothing() : new Effect.Scale(show.elm,scale[1],{
                        sync:true,
                        scaleX:false,
                        scaleContent:false
                    }))
                    ],
                    {
                        duration: 1,
                        queue : 'FadeOutResizeFadeIn',
                        afterFinish: function(){
                            show.effect = new Effect.Appear(next,{
                                duration: (opt.duration-1)/2
                            });
                        }
                    }
                    );
            }
        });
    },
    cancel : function(show){
        if(show.effect) {
            show.effect.cancel();
        }
    },
    prepare : function(show){
        var slideDims = [$(show.slides[0]).getWidth(),$(show.slides[0]).getHeight()];
        show.elm.setStyle({
            width:slideDims[0]+'px',
            height:slideDims[1]+'px'
        });
        show.slides.each(function(s,i){
            $(s).setStyle({
                opacity:(i === 0 ? 1 : 0),
                visibility:'visible'
            });
        });
    }
};
Crossfade.defaults = {
    autoLoad : true,
    autoStart : true,
    random : false,
    randomClassName : 'random',
    selectors : ['.crossfade'],
    imageLoadSelector : 'a.loadimage',
    ajaxLoadSelector : 'a.load',
    interval : 5,
    duration : 2,
    transition : Crossfade.Transition.Crossfade
};
Crossfade.setup = function(options) {
    Object.extend(Crossfade.defaults,options);
};
Crossfade.load = function() {
    if(Crossfade.defaults.autoLoad) {
        Crossfade.defaults.selectors.each(function(s){
            $$(s).each(function(c){
                return new Crossfade(c);
            });
        });
    }
};
Event.observe(window, 'load', Crossfade.load);

