window.addEvent('domready', function() {
    init_page_produit();

    init_page_general();

    init_menu_saison();

    if_gecko();

    display_news();
});

function display_news(){
    if($chk($('news'))){
        var nS4 = new noobSlide({
            box: $('news'),
            items: $$('#news div#box_slide'),
            size: 470,
            handles: $$('#handles span'),
            autoPlay: true,
            addButtons: {
                previous: $('prev'),
                next: $('next')
            },
            onWalk: function(currentItem,currentHandle){
                this.handles.removeClass('active');
                currentHandle.addClass('active');
            }
        });
    }
}

function if_gecko(){
    if(Browser.Engine.gecko === true){
        $('submit_search').setStyles({
            'vertical-align':'0',
            'font-size':'94%'
        });
        $('search').setStyles({
            'padding':'4px 3px 1px 2px'
        });
    }
}

/* background resizable */    
function redimensionnement(){ 
    // -- l'element à redimensionner
    var img = $('item');

    // -- on récupére et on place dans des variable la largeur et la hauteur de l'id donné
    var image_width = img.getSize().x; 
    var image_height = img.getSize().y;     

    // -- on calcul le ratio entre la largeur et la hauteur de l'image que l'on place dans deux variables
    var over = image_width / image_height; 
    var under = image_height / image_width; 

    // -- on récupére également la largeur et la hauteur de l'écran
    var body_width = $(window).getSize().x;
    var body_height = $(window).getSize().y;


    if (body_width / body_height >= over) { 
        // -- Si la largeur de l'écran divié par la hauteur de ce dernier est supérieur ou égal au ratio largeur/hauteur de l'id 
        // -- on applique :
        // --       la largeur de l'écran à l'id
        // --       un calcul pour la hauteur ;)
        // --       une positon left à zéro
        // --       un calcul très savant pour le top Xp

        img.morph({ 
            'width': body_width + 'px', 
            'height': Math.ceil(under * body_width) + 'px', 
            'left': '0px', 
            'top': Math.abs((under * body_width) - body_height) / -2 + 'px' 
        }); 
    }  

    else { 
        // -- Sinon,
        // -- on applique :
        // --       un calcul pour la largeur ;)
        // --       la hauteur de l'écran à l'id
        // --       une positon top à zéro
        // --       un calcul très savant pour le left Xp

        img.morph({ 
            'width': Math.ceil(over * body_height) + 'px', 
            'height': body_height + 'px', 
            'top': '0px', 
            'left': Math.abs((over * body_height) - body_width) / -2 + 'px' 
        }); 
    } 
}

function show_slideshow(data, slide_height){
    var body_width = $(window).getSize().x;
    if($chk($('show'))){
        if(myShow != null){
            last_slide_show = myShow.slide;
        }
        $('show').empty().setStyles({'width':body_width+'px','height':slide_height+'px'});

        if($chk(Browser.ie8)){
            myShow = new Slideshow('show', data, {
                controller: false, 
                hu: '' , 
                width: body_width, 
                height: slide_height, 
                delay: 5000, 
                duration: 1,
                loader: false, 
                titles: false, 
                captions: true });
        }
        else{
            myShow = new Slideshow('show', data, {
                controller: false, 
                hu: '' , 
                width: body_width, 
                height: slide_height, 
                loader: false, 
                delay: 5000, 
                duration: 1500,
                titles: false, 
                captions: true });
        }

    }

}


function init_page_produit(){

    if($chk($('submit_form_collective')) || $chk($('submit_form_privee'))){
        display_contact_demande();
    }

    if($chk($('info_prod'))){
        $('info_prod').getElement('div.list_item_info').addClass('first-child');
    }

    if($chk($('periode_collective'))){
        $('periode_collective').addEvent('change',calcul_dispo_collective);
    }
    if($chk($('periode_privee'))){
        $('periode_privee').addEvent('change',calcul_dispo_privee);
    }

    new DatePicker('#date_dispo_collective', {
        pickerClass: 'datepicker_bdg',
        allowEmpty: true,
        onSelect:calcul_dispo_collective
    });

    new DatePicker('#date_dispo_privee', {
        pickerClass: 'datepicker_bdg',
        allowEmpty: true,
        onSelect:calcul_dispo_privee
    });

    var list_step_input_collec = $$('#form_collective .step');
    if(list_step_input_collec.length!=0){
        list_step_input_collec.each(function(step){
            init_step_collective(step);
        });
    }

    var list_step_input_privee = $$('#form_privee .step');
    if(list_step_input_privee.length!=0){
        list_step_input_privee.each(function(step){
            init_step_privee(step);
        });
    }


    //GESTION DU TOOGLE DE LA PAGE PRODUIT
    if($chk($$('.wrapper_bloc_produit'))){
        var toggler = $$('.wrapper_bloc_produit h2');

        if(toggler.length!=0){

            toggler.each(function(item, current){
                var slider = item.getParent('.wrapper_bloc_produit').getElement('.content');

                //if($chk(Browser.ie)){

                //INITIALISATION
                if(current != 0){
                    toggler.toggleClass('close').toggleClass('open');
                    slider.hide();
                }
                else{                
                    slider.show();
                }
                //INITIALISATION

                item.addEvent('click', function(e){
                    item.toggleClass('close').toggleClass('open');
                    e = new Event(e);
                    slider.toggle();
                    e.stop();
                });

                /*}
                else{
                var mySlide_init = new Fx.Slide(slider);
                var mySlide = new Fx.Slide(slider);

                //INITIALISATION
                if(current != 0){
                toggler.toggleClass('close').toggleClass('open');
                mySlide_init.toggle();
                }
                //INITIALISATION


                item.addEvent('click', function(e){
                item.toggleClass('close').toggleClass('open');
                e = new Event(e);
                mySlide.toggle();
                e.stop();
                });
                }*/
            });
            toggler[0].toggleClass('open').toggleClass('close');

        }
    }
}


function display_contact_demande(){

    if($chk($('submit_form_collective')) && $chk($('form_collective'))){
        $('submit_form_collective').addEvent('click', function(){
            CB_Open('href=/include/display/misc/misc_form_demande.php?'+$('form_collective').toQueryString()+',,width=475,,height=500');
        });
    }
    if($chk($('submit_form_privee')) && $chk($('form_privee'))){     
        $('submit_form_privee').addEvent('click', function(){
            CB_Open('href=/include/display/misc/misc_form_demande.php?'+$('form_privee').toQueryString()+',,width=475,,height=500');
        });
    }
}


function init_step_collective(step){
    var input = step.getElement('input');

    input.addEvent('keyup', function(e){
        e.stop();
        var input_val = parseInt(e.target.get('value'));
        if(isNaN(input_val)){
            input_val = 0;
        }
        e.target.set('value', input_val);
        change_nb_part(input, 0);
        calcul_prix_collective();
    });


    var step_up = step.getElement('.step_up');
    step_up.addEvent('click', function(e){
        change_nb_part(input, 1);
        calcul_prix_collective();
    });

    var step_down = step.getElement('.step_down');
    step_down.addEvent('click', function(e){
        change_nb_part(input, -1);
        calcul_prix_collective();
    });
}

function init_step_privee(step){
    var input = step.getElement('input');

    input.addEvent('keyup', function(e){
        e.stop();
        var input_val = parseInt(e.target.get('value'));
        if(isNaN(input_val)){
            input_val = 0;
        }
        e.target.set('value', input_val);
        change_nb_part(input, 0);
        calcul_prix_privee();
    });


    var step_up = step.getElement('.step_up');
    step_up.addEvent('click', function(e){
        change_nb_part(input, 1);
        calcul_prix_privee();
    });

    var step_down = step.getElement('.step_down');
    step_down.addEvent('click', function(e){
        change_nb_part(input, -1);
        calcul_prix_privee();
    });

}

function change_nb_part(champ, nb){
    var old_val = parseInt(champ.get('value'));
    var new_val = parseInt(old_val + nb);
    if(new_val>=0){
        champ.set('value', new_val);
    }
}

function calcul_prix_collective(){
    var prix_a = parseFloat($('prix_adulte').get('value'));
    var prix_e = parseFloat($('prix_enfant').get('value'));
    var nb_a = parseInt($('nb_adult_collective').get('value'));
    var nb_e = parseInt($('nb_enfant_collective').get('value'));

    var recap = $('recap_collective');
    if($chk(recap)){
        if(nb_a > 0 || nb_e >0){
            recap.show();
            var total = 0;

            var line_adulte = $('line_adulte_collective');
            if(nb_a > 0 && prix_a > 0 && $chk(line_adulte)){
                line_adulte.show();
                var total_line_a = parseFloat(nb_a * prix_a).round(2);
                total += total_line_a;
                line_adulte.getElement('.categorie').set('html', nb_a+' x '+$('lib_adult').get('value'));
                line_adulte.getElement('.prix').set('html', total_line_a+'€');
            }
            else{
                line_adulte.hide();
            }
            var line_enfant = $('line_enfant_collective');
            if(nb_e > 0 && prix_e > 0 && $chk(line_enfant)){
                line_enfant.show();
                var total_line_e = parseFloat(nb_e * prix_e).round(2);
                total += total_line_e;
                line_enfant.getElement('.categorie').set('html', nb_e+' x '+$('lib_enfant').get('value')+' ('+$('min_age_enfant').get('value')+'-'+$('max_age_enfant').get('value')+' '+$('lib_enfant_age').get('value')+')');
                line_enfant.getElement('.prix').set('html', total_line_e+'€');
            }
            else{
                line_enfant.hide();
            }
            var line_total = $('line_total_collective');
            if(total>0 && $chk(line_total)){
                line_total.show();
                line_total.getElement('.prix').set('html', total.round(2)+'€');
            }
            else{
                line_total.hide();
            }
        }
        else{
            recap.hide();
        }
    }	
}

function calcul_prix_privee(){
    var max_e = parseFloat($('max_engagement').get('value'));
    var prix_e = parseFloat($('prix_engagement').get('value'));
    var prix_suppl = parseFloat($('suppl_engagement').get('value'));
    var nb_a = parseInt($('nb_adult_privee').get('value'));
    var nb_e = parseInt($('nb_enfant_privee').get('value'));

    var recap = $('recap_privee');
    if($chk(recap)){
        if(nb_a > 0 || nb_e >0){
            recap.show();
            var total = 0;

            var nb_t = nb_a + nb_e;
            var nb_guide = Math.ceil(nb_t / max_e);

            var line_engage = $('line_engagement_privee');
            if(nb_guide>0 && $chk(line_engage)){
                line_engage.show();
                var total_line_e = parseFloat(nb_guide * prix_e).round(2);
                total += total_line_e;
                line_engage.getElement('.categorie').set('html', nb_guide+' x '+$('lib_guide').get('value'));
                line_engage.getElement('.prix').set('html', total_line_e+'€');
            }
            else{
                line_engage.hide();
            }

            var line_suppl = $('line_suppl_privee');
            if(prix_suppl>0 && $chk(line_suppl)){
                line_engage.show();
                var total_line_s = parseFloat(nb_t * prix_suppl).round(2);
                total += total_line_s;
                line_suppl.getElement('.titre_section').set('html', nb_t+' x '+$('lib_suppl').get('value'));
                line_suppl.getElement('.prix').set('html', total_line_s+'€');
            }
            else{
                line_suppl.hide();
            }

            var line_total = $('line_total_privee');
            if(total>0 && $chk(line_total)){
                line_total.show();
                line_total.getElement('.prix').set('html', total.round(2)+'€');
            }
            else{
                line_total.hide();
            }
        }
        else{
            recap.hide();
        }
    }

}


function calcul_dispo_collective(){
    var periode_depart = $('periode_collective').get('value');
    var date_depart = $('date_dispo_collective').get('value');

    //console.log('collective', periode_depart, date_depart);
}

function calcul_dispo_privee(){
    var periode_depart = $('periode_privee').get('value');
    var date_depart = $('date_dispo_privee').get('value');

    //console.log('privee', periode_depart, date_depart);
}


function init_menu_saison(){
    if($chk($('menu_saisons'))){
        var element = $$('#menu_saisons p a.off span');
        element.each(function(item) {
            var myEffect = new Fx.Morph(item, {
                duration: 200,
                transition: Fx.Transitions.Sine.easeOut,
                link: 'cancel'
            });

            item.addEvent('mouseenter', function(){
                if($chk(Browser.ie)){
                    item.setStyles({
                        'height' : 64,
                        'top' : 0
                    });
                }
                else{
                    myEffect.start({
                        'height' : 64,
                        'top' : 0
                    });
                }

            });

            item.addEvent('mouseleave', function(){
                if($chk(Browser.ie)){
                    item.setStyles({
                        'height' : 43,
                        'top' : 21
                    });
                }
                else{
                    myEffect.start({
                        'height' : 43,
                        'top' : 21
                    });
                }

            });
        });

    }
}

function init_page_general(){
    new NS.Placeholder({
        color: '#303030'
    });
}

function init_map_clearbox_resize(){

    //GESTION DU CLEARBOX EN LARGEUR ET HAUTEUR POUR L'OUVERTURE D'UN PLAN GOOGLE MAP EN IFRAME
    /*var window_w = window.getSize().x, 
    window_h = window.getSize().y; 

    var width_clearbox = ((80*window_w)/100).round();
    var height_clearbox = ((80*window_h)/100).round();

    var res = 'clearbox[type=iframe,,width='+width_clearbox+',,height='+height_clearbox+']';

    $$('.list_item_info .wrapper_map a').getProperty('rel').empty();
    $$('.list_item_info .wrapper_map a').setProperty('rel', res);*/
    //GESTION DU CLEARBOX EN LARGEUR ET HAUTEUR POUR L'OUVERTURE D'UN PLAN GOOGLE MAP EN IFRAME
}

//FONCTIONS DE LA PAGE PRODUIT
/*function init_collec(){    
if($chk($('form_collective'))){
var f_c = $('form_collective') ;
var fchild_p = f_c.getChildren('p'), fchild_div = f_c.getChildren('div');

// SORTIE COLLECTIVES
fchild_p[1].setStyle('opacity','0.5');
fchild_div[1].setStyle('opacity','0.5');
$('nb_adult').set('readonly','readonly');
$('nb_enfant').set('readonly','readonly');
$$('.step').each(function(element){
element.setStyles({
'opacity':'0.5'
});
element.getChildren('.step_up').each(function(eup){
eup.setStyle('cursor','default');
});
element.getChildren('.step_down').each(function(edown){
edown.setStyle('cursor','default');
});
});

fchild_p[2].setStyle('opacity','0.5');
fchild_div[2].setStyles({
'opacity':'0.5'
});
$('submit_form_collective').set('readonly','readonly');

// SORTIE PRIVEE
}
}

function active_step2_collec(){  
if($chk($('form_collective'))){
var f_c = $('form_collective') ;
var fchild_p = f_c.getChildren('p'), fchild_div = f_c.getChildren('div');

if($chk($$('div.step'))){
$$('div.step').each(function(item){
var input = item.getChildren('input');

input.addEvent('keyup',function(event){
event.stop();
var input_val = parseInt(event.target.get('value'));

if(isNaN(input_val)){
input_val = 0;
}

event.target.set('value', input_val);
});

item.getChildren('.step_up').addEvent('click', function(e){
e.stop();
var old_value = parseInt(input.get('value'));
input.erase('value');

input.set('value', old_value + 1);
});

item.getChildren('.step_down').addEvent('click', function(e){
e.stop();
var old_value = parseInt(input.get('value'));

if(old_value > 0){
input.erase('value');
input.set('value', old_value - 1);                                           
}
});

});
}

fchild_p[1].morph({
'opacity':'1'
});
fchild_div[1].morph({
'opacity':'1'
});
$('nb_adult').erase('readonly');
$('nb_enfant').erase('readonly');
$$('.step').each(function(element){
element.morph({
'opacity':'1'
});
element.getChildren('.step_up').each(function(eup){
eup.erase('style');
});
element.getChildren('.step_down').each(function(edown){
edown.erase('style');
});
});
}  
}

window.addEvent('domready', function(){
if($chk($('form_collective'))){
var f_c = $('form_collective') ;
var fchild_p = f_c.getChildren('p'), fchild_div = f_c.getChildren('div');

//INITIALISATION
init_collec();

//SI 1 ETAPE VALIDE ON ACTIVE LA DEUXIEME
$$('.date_dispo_collective').addEvent('change', function(){
var reg = new RegExp( "#^[0-9]{4}\-[0-9]{2}\-[0-9]{2}#" );
var res_reg = $$('.date_dispo_collective').get('value')[1].test(reg);
console.log('ok');
});


$('periode_collectif').addEvent('change', function(){
var option_collectif_value = $('periode_collectif').selectedIndex;
// mettre un fonction qui verifie le contenu du champs avec une petite regex pour date ;)

if(option_collectif_value != 0){
//active le click sur le step up/down
active_step2_collec();
}
});
}
});
*/
//FONCTIONS DE LA PAGE PRODUIT

