
/*****************************************
	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);
		});
	});
/*****************************************
	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 ref = 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>');
		}
		
	}
}



