
/*****************************************
	Comportements globaux
 *******************************************/

Event.observe(window, 'load', function(){	
    // rollOver sur boutons
    set_buttonSubmit();
		
    // retire les value/défaut
    myMsg = new ECard({obj:$$(".bloc_main form")[0],id:false});
		
    // formulaire CONTACT
    myOpinion = new DblField({
        parent:"bloc_opinion",
        bloc:".dblField",
        value:[["outil_recherche","lien_partenaire"],["non"]]
    });
		
    $$('a.triggerNewWindow').each(function (elt) {
        Event.observe(elt, 'click', openInNewWindow);
    });
    initNewsletter();
});
/*****************************************
	Fonctions globales
 *******************************************/
function openInNewWindow (evt) {
    evt.stop();
    window.open(evt.target);
    return false;
}

// scrollbar
var gg_slider2 = '';

// gestion du scroll
function scrollVertical(value,div){
    div.scrollTop = Math.round(value/gg_slider2.maximum*(div.scrollHeight-div.offsetHeight));
}

// gestion des scrollbars
function initScrollbars(divId,scrollId,handleId,trackId){
    if($(divId)){
        $(divId).scrollTop = 0;
        /*console.log('scrollH'+$(divId).scrollHeight);
		console.log('offsetH'+$(divId).offsetHeight);*/
        if ($(divId).scrollHeight <= $(divId).offsetHeight){
            if(gg_slider2.enabled) gg_slider2.setDisabled();
            $(scrollId).hide();
        }
        else{
            if(gg_slider2.disabled) gg_slider2.setEnabled();
            $(scrollId).show();
            $(divId).style.overflow = 'hidden';
            gg_slider2 = new Control.Slider(handleId,trackId,{axis:'vertical',
                onSlide:function(w){scrollVertical(w,$(divId));},
                onChange:function(w){scrollVertical(w,$(divId));}}
        );
        }
    }
}

// gestion des collapses
function initCollapse(classe){
    $$('.'+classe).each(function(elmt,i){
        elmt.next('div').hide();
        elmt.valClick = 0;
        initScrollbars('faqCore','verticalSliderBar','verticalHandle','verticalTrack');
        elmt.onclick = function() {return false;}
        Event.observe(elmt.descendants()[0], 'click', function(){
            if(elmt.valClick%2 == 0){
                $$('.'+classe).each(function(elmt2,i){
                    elmt2.next('div').hide();
                    elmt2.removeClassName("on")
                    elmt2.valClick = 0;
                });
                elmt.next('div').show();
                elmt.addClassName("on");
                initScrollbars('faqCore','verticalSliderBar','verticalHandle','verticalTrack');
            }
            else{
                elmt.next('div').hide();
                elmt.removeClassName("on");
                initScrollbars('faqCore','verticalSliderBar','verticalHandle','verticalTrack');
            }
            elmt.valClick++;
        });
    });
}

// Initialisation des masques sur la classe passée en argument
function initMasques(classe){
    $$(classe).each(function(elmt,i){
        Event.observe(elmt, 'mouseover', function(){
            elmt.descendants()[0].hide(); // le masque est le premier enfant de l'élément
        });
        Event.observe(elmt, 'mouseout', function(){
            elmt.descendants()[0].show(); // le masque est le premier enfant de l'élément
            hauteurPourIe(elmt); // bug aberrant IE6
        });
    });
}

function hauteurPourIe(elmt){
    var hauteurPourIe = elmt.offsetHeight;
    elmt.descendants()[0].style.height = hauteurPourIe+'px'; // le masque est le premier enfant de l'élément
}
/*****************************************************
	COMPORTEMENT DES FORMULAIRES 
 *****************************************************/
/*	
	Champs avec valeurs par défault
	1. FOCUS: retire la valeur par défault
	2. BLUR: Tronquer la valeur du text area
 */
var ECard = new Class.create();		
ECard.prototype = {
    self: {
        obj:false,
        id:false
    },
    input:false,
    textarea:false,
    etape_cur:false,
    etape:false,
    initialize:function(myObjForm,myMsg) {
        if(myObjForm.obj != undefined) {
            this.self = {
                obj:myObjForm.obj,
                id:myObjForm.id
            };
			
            // textarea
            this.textarea = this.init_textarea(this.self.obj.getElementsBySelector("textarea"),myMsg);
            this.input = this.init_text(this.self.obj.getElementsBySelector("input[type='text']"));
            this.set_field();
        };
    },
    init_text:function(testFields,myMsg) {
        // INPUT TEXT: initialise les variables
        var myPopin = this;
        var myFields = false;
		
        if(testFields.length > 0) {
            myFields = new Array();
            testFields.each(function(field,i) {
                myFields[myFields.length] = {
                    obj:field,
                    dft:field.getValue()
                };
            });
        };
        return myFields;
    },
    init_textarea:function(testFields,myMsg) {
        // TEXTAREA: initialise les variables
        var ref = this;
        var myFields = false;
		
        if(testFields.length > 0) {
            myFields = new Array();
            var tmp = false;
            if(myMsg != undefined) tmp = myMsg.size;
            testFields.each(function(field,i) {
                myFields[myFields.length] = {
                    obj:field,
                    dft:field.getValue(),
                    size:tmp
                };
            });
        };
        return myFields;
    },
    set_field:function() {
        // TEXTAREA: Comportements
        var ref = this;
		
        [this.textarea,this.input].each(function(myField,i) {
            if(myField) {
                myField.each(function(field,i) {
                    Event.observe(field.obj,'focus', function(){
                        if(field.obj.getValue() == field.dft) field.obj.clear();
                    });
                    Event.observe(field.obj,'blur', function(){
                        /* if(field.obj.value.length >= field.size) field.obj.value = field.obj.value.truncate(field.size);*/
                        if(field.obj.value.empty()) field.obj.value = field.dft;
                    });
                });
            };
        });
    }
};	


/*
	comportement des champs AUTRE a cacher/afficher 
	suivant réponse précédente
 */
var DblField = new Class.create();		
DblField.prototype = {		
    parent:{
        obj:false,
        id:false
    },
    myZone:{
        obj:false,
        fields:false
    },
    initialize:function(myParam) {
        var ref = this;
		
        // parent
        this.parent = {
            obj:$(myParam.parent),
            id:myParam.parent
        };
		
        // container des champs
        this.myZone = {
            path:"#"+this.parent.id+" "+myParam.bloc,
            obj:$$("#"+this.parent.id+" "+myParam.bloc)
        };
		
        // initialisation des champs
        if(this.myZone.obj) {
            this.myZone.fields = new Array();
            this.myZone.obj.each(function(myField,i) {
                if(myField.childElements()[0] != undefined && myField.childElements()[1] != undefined) {
                    ref.myZone.fields[ref.myZone.fields.length] = {
                        main:myField.childElements()[0],
                        other:myField.childElements()[1],
                        value:myParam.value[i]
                    };
                };
            });
        } else return false;
		
        //comportement: affiche le champs secondaire si besoin
        this.get_fields().each(function(myField,i) {
            $$("#"+ref.parent.id+" [name='"+myField+"']").each(function(myElmt,j) {
                // PRESELECTION
                switch(myElmt.getAttribute("type")){
                    default:
                        ref.show_fields(myElmt,i);
                        break;
                    case "radio":
                        if(myElmt.checked) ref.show_fields(myElmt,i);
                        break;
                };
				
                // �v�nement ONCHANGE
                Event.observe(myElmt,'change',function() {ref.show_fields(myElmt,i);});
            });
        });
    },
    get_fields:function() {
        var ref = this;
        var myName = new Array();
		
        if(ref.myZone.fields) {
            ref.myZone.fields.each(function(myElmt,i){
                // masque le champs facultatif
                myElmt.other.hide();
				
                // stock les name des champs
                if(myElmt.main.childElements()[0] != undefined) {
                    myElmt.main.childElements()[0].siblings().each(function(myField,j){
                        if(myField.tagName.toLowerCase() != "label") {
                            myName[myName.length] = myField.getAttribute("name")
                        }
                    });
                }
            });
            return myName.uniq();
        } else return false;
    },
    show_fields:function(myElmt,i) {
        var ref = this;
		
        ref.myZone.fields[i].other.hide();
        ref.myZone.fields[i].value.each(function(myVal,v) {
            if(myElmt.value == myVal) ref.myZone.fields[i].other.show();
        });
    }
};


// Comportements des boutons Submit
function set_buttonSubmit(){
    [$$("input[type='image']"),$$(".menu_form a img")].each(function(btn0,i) {btn0.each(function(btn,j) {
            Event.observe(btn,'mouseover', function(){
                btn.setAttribute("src",btn.readAttribute("src").replace("_off.","_on."));
            });
            Event.observe(btn,'mouseout', function(){
                btn.setAttribute("src",btn.readAttribute("src").replace("_on.","_off."));
            })});
    });
}

// Comportements page Adresse
function set_form_adress(myPath) {
    var myZone = $$(myPath);
    myZone.each(function(zone,i) {
        Event.observe(zone,'click', function(){
            zone.siblings().each(function(other,j){other.removeClassName("selected")});
            zone.addClassName("selected");
            zone.getElementsBySelector("input").each(function(input0,i) {input0.checked = true;})
        });
    });
}

// Popin Message cadeau
function init_msgCadeau(myPopin) {

    myMsg = new ECard(myPopin.form_active,{size:120}); // définition de Ecard: popin_proto.js
    Event.observe($("message"),'blur', function(){
        $("message_preview").value = $("message").value;
    });
}

/*************************************************************
	RAJOUT CHRIS mai 2008
 *************************************************************/

// Popin SendaFriend
function init_msgFriend(myPopin) {
    myMsg = new ECard(myPopin.form_active,{size:120}); // d�finition de Ecard: popin_proto.js
	
    if($("message_preview")){
        Event.observe($("message"),'blur', function(){
            $("message_preview").value = $("message").value;
        });
    }
}

/********************************************************
 *UPDATE PANIER (Flash sur mesure 
 ********************************************************/

function updateCart(nb) {
    
    $('totalCartCount').innerHTML = nb;
    
}
	

/********************************************************
POPIN ADRESSE
 ********************************************************/
function changeCountrySelectAdresse(){
    var optionSelected 	= document.getElementById('pays');
    var selectState 	= document.getElementById('fstateContainer');
    var selectStateCA 	= document.getElementById('fstateContainerCanada');
    if( optionSelected.value == 'US' ){
        selectState.style.display 	= 'block';
        selectStateCA.style.display = 'none';
    }else if ( optionSelected.value == 'CA' ) {
        selectState.style.display 	= 'none';
        selectStateCA.style.display = 'block';
        $('etat').name = 'stateCode';
    }else{
        selectState.style.display 	= 'none';
        selectStateCA.style.display = 'none';
    }
	
    if( optionSelected.value == 'HK' ){
        if($('codepost')){
            $('codepost').update('Area<small>*</small>');
        }
    }
    else
    {
        if($('codepost')){
            $('codepost').update($('cp_label').value+'<small>*</small>');
        }
		
    }
}

function displayMsg() {
    $$('#newsletter-mail .error').each(function(elmt,i){
        elmt.remove();
    })
}
function initNewsletter(){

    Event.observe($("submit-mail"),'click', function(){

        var newsletterBloc = $('newsletter-mail');
        //requete ajax script d'inscription
        url='/FRONT/LONGCHAMP/include/ajaxNewsletterSuscribe.php';
        new Ajax.Request(url, {
            method: 'POST',
            parameters: {
                lan_s_id: $('lan_s_id').value,
                email   : $('mail-newsletter').value
            },
            encoding:'UTF-8',
            onLoaded: function() {
                //alert("Début du chargement");
            },
            onComplete: function(msg) {
                //alert("Fin du chargement");
            },
            onFailure: function(msg) {
                //alert("Erreur");
            },
            onSuccess: function(msg) {
                if(msg.responseText.strip() == "ok"){
                    myPopin =  new Popin(
                    {bloc:"#newsletter-mail",className:"popin"},
                    {
			popin:{id:"newsletter_layer",bg:"popin_bg",className:"popin_content"},
			button:{close:"close",className:"button"}
                    }
                     );


                    myPopin.loading.url ='/FRONT/LONGCHAMP/include/newsletter_merci.php?trad='+$('lan_s_id').value;
                    myPopin.pointer = $$("body")[0];

                    //1. on ajoute le layer du fond
                    if(!$(myPopin.background.id)) {
                        var myPopin_bg = document.createElement('div');
                        myPopin_bg.setAttribute("id",myPopin.background.id);
                        myPopin.pointer.insertBefore(myPopin_bg,myPopin.pointer.firstDescendant());

                        myPopin.background.obj = $(myPopin.background.id);
                    }

                    //2. Chargement de la page
                    new Ajax.Request(myPopin.loading.url, {
                        method: myPopin.loading.method,
                        encoding:myPopin.loading.encoding,
                        onLoaded: function() {
                            //alert("Début du chargement");
                        },
                        onComplete: function(msg) {
                            //alert("Fin du chargement");
                        },
                        onFailure: function(msg) {
                            //alert("Erreur");
                        },
                        onSuccess: function(msg) {

                            if($(myPopin.self.id) == null) {
                                // insertion du contenu
                                myPopin.create_tag({
                                    tagName:"div",
                                    id:myPopin.self.id,
                                    className:myPopin.self.className,
                                    before:myPopin.background.obj.next(),
                                    parent:myPopin.pointer,
                                    content:msg.responseText
                                });

                                // on active la fermeture du popin
                                myPopin.self.obj = $(myPopin.self.id);
                                myPopin.close();

                            };

                            myPopin.loading.init(myPopin);
                        }
                    }
                    );


                    }else{
                        newsletterBloc.insert({bottom: '<p class="error"></p>'});
                        var notice = $$('#newsletter-mail .error')[0];
                        var myResult = msg.responseText;
			notice.update(myResult);
                        setTimeout(displayMsg,5000);
                        
                    }

                }



            });







        });

    }





