Shadowbox.init();
var pageLoaded = false;
var $j = jQuery.noConflict();

$j(document).ready(function(){
	
	pageLoaded = true;
	
	/**
	 * Navigation principale
	 */
	initMainNav('.buttonMainNav', '.layerMainNav', '#nav_default');
	
	
	/**
	 * Roll over image
	 */
	$j('.rollOver').rollOver();
	
	
	
	/**
	 * On efface les valeurs par défaut des champs du formulaire
	 */
	if ($j('#form_parrainage').length>0){
		var default_parrainage_txt = 'Email du filleul';
		
		$j('#form_parrainage').submit(function() {
			$j('.email_filleul').each(function(){
				if ($j(this).val() == default_parrainage_txt){
					$j(this).val('');
				}
			});
		});
		
		$j('.email_filleul').each(function(){
			if ($j(this).val() == default_parrainage_txt){
				$j(this).addClass('deleteDefaultValueOnFocus');
			}
		});
	}
	
	/**
	 * Gestion du TextArea du formulaire de participation au concours
	 */
	if ($j('#form_participation_concours').length>0){
		if ($j('#participation_commentaire').length>0){
			$j('#participation_commentaire').live('blur', function(){
				textAreaMaxSize(this, 350, 'participation_commentaire_limite');
			});
			$j('#participation_commentaire').live('focus', function(){
				textAreaMaxSize(this, 350, 'participation_commentaire_limite');
			});
			$j('#participation_commentaire').live('keydown', function(){
				textAreaMaxSize(this, 350, 'participation_commentaire_limite');
			});
			$j('#participation_commentaire').live('keyup', function(){
				textAreaMaxSize(this, 350, 'participation_commentaire_limite');
			});
		}
	}

	 /**
	  * GOOGLE MAP
	  */
	 if($j('#map_distributeurs')){		
		var googlemapDistributeursOptions = {
			zoom: 2,
			center: new google.maps.LatLng('20', '0'),
			mapTypeId: google.maps.MapTypeId.ROADMAP,
			scrollwheel: false
		}; 
		googlemapDistributeurs = new GooglemapCreator('map_distributeurs');
		googlemapDistributeurs.setOptions(googlemapDistributeursOptions);
		googlemapDistributeurs.setBoundFitZoomMaxi(3);
		googlemapDistributeurs.init();
		
		updateGooglemapMarkersDistributeurs(googlemapDistributeurs);
	 }
	 
	 
	 /**
	 * Vidage des champs sur click
	 */
	$j('.deleteDefaultValueOnFocus').deleteDefaultValueOnFocus();
	
	
});


/**
 * Creation de configuration de la navigation principale
 */
function initMainNav(cssSelectorButtonNav, cssSelectorLayerNav, defaultBlock){
	
	$j(cssSelectorButtonNav).each(function(index){ 
		$j(this).data('num', index);
	});
	$j(cssSelectorLayerNav).each(function(index){
		$j(this).data('num', index);
	});
	
	$j(cssSelectorButtonNav).live('mouseenter', function(){
		$j(defaultBlock).css('display', 'none');
		$j(cssSelectorLayerNav).css('display', 'none');			
		var currentButton = this;
		$j(cssSelectorLayerNav).each(function(index){
			if($j(currentButton).data('num') == $j(this).data('num')){
				$j(this).css('display', 'block')
			}
		});
	});
	
	$j(defaultBlock).css('display', 'block');
}



/**
	fonctions de gestion des champs en erreur dans les formulaires 
*/
var tab_objects_already_hidden = new Array();

function form_del_error(object){
	if (object){
		object.style.borderColor = '#E0E0E0';
		if ($(object.id+'_error_message')){
			$(object.id+'_error_message').style.display = 'none';
		}
	}
}

function form_del_error_bg_EAEAEA(object){
	if (object){
		var object_already_hidden_found = false;
		for (var i in tab_objects_already_hidden){
			if (tab_objects_already_hidden[i] == object.name){
				object_already_hidden_found = true;
			}
		}
		if (object_already_hidden_found == false){
			tab_objects_already_hidden.push(object.name);
			object.style.backgroundColor = "#EAEAEA";
			object.style.color = "#666";
			if ($('picto_erreur_'+object.name)){
				$('picto_erreur_'+object.name).style.visibility = "hidden";
			}
		}
	}
}

function form_del_error_tab(tab_object_id){
	for (i=0; i<tab_object_id.length; i++){
		var object_already_hidden_found = false;
		for (j=0; j<tab_objects_already_hidden.length; j++){
			if (($(tab_objects_already_hidden[j]))&&($(tab_object_id[i]))){
				var object_to_test = $(tab_object_id[i]);
				var object_already_found = $(tab_objects_already_hidden[j]);
				if (object_to_test.name == object_already_found.name){
					object_already_hidden_found = true;
				}
			}
		}
		if (object_already_hidden_found == false){
			object = $(tab_object_id[i]);
			tab_objects_already_hidden.push(object.name);
			$('picto_erreur_'+object.name).style.visibility = "hidden";
			object.style.backgroundColor = "#FFFFFF";
			object.style.color = "#30352E";
		}
	}
}

function prepareCheckFieldForm(f){	
	var checkBoxElements 	= [];
	var radioElements 		= [];
	
	for(i=0;i<f.elements.length;i++){
		if(f.elements[i].type == 'radio'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<radioElements.length;j++){
				if(f.elements[i].name == radioElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (f.elements[i].checked){
					radioElements[elemFoundNum][1] = true;
				}
			} else {
				radioElements.push(new Array(f.elements[i].name,f.elements[i].checked));
			}
		}
		if(f.elements[i].type == 'checkbox'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<checkBoxElements.length;j++){
				if(f.elements[i].name == checkBoxElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (f.elements[i].checked){
					checkBoxElements[elemFoundNum][1] = true;
				}
			} else {
				checkBoxElements.push(new Array(f.elements[i].name,f.elements[i].checked));
			}
		}
	}
	
	for(i=0;i<radioElements.length;i++){
		if (radioElements[i][1] == false){
			createHiddenFieldInputValue1(f, radioElements[i][0]);
		}
	}
	
	for(i=0;i<checkBoxElements.length;i++){
		if (checkBoxElements[i][1] == false){
			createHiddenFieldInputValue1(f, checkBoxElements[i][0]);
		}
	}
}

function createHiddenFieldInputValue1(form, name){
	var hidden_input_field = document.createElement('input');
	hidden_input_field.type = 'hidden';
	hidden_input_field.name = name+'_novalue';
	hidden_input_field.value = 1;	
	form.appendChild(hidden_input_field);
}

function getCheckFieldValueForm(form, fieldName){	
	var checkBoxElements 	= [];
	var radioElements 		= [];
	
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].type == 'radio'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<radioElements.length;j++){
				if(form.elements[i].name == radioElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (form.elements[i].checked){
					radioElements[elemFoundNum][1] = true;
					radioElements[elemFoundNum][2] = form.elements[i].value;
				}
			} else {
				if (form.elements[i].checked){
					radioElements.push(new Array(form.elements[i].name,form.elements[i].checked, form.elements[i].value));
				} else {
					radioElements.push(new Array(form.elements[i].name,form.elements[i].checked, null));
				}
			}
		}
		if(form.elements[i].type == 'checkbox'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<checkBoxElements.length;j++){
				if(form.elements[i].name == checkBoxElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (form.elements[i].checked){
					checkBoxElements[elemFoundNum][1] = true;
					checkBoxElements[elemFoundNum][2] = form.elements[i].value;
				}
			} else {
				if (form.elements[i].checked){
					checkBoxElements.push(new Array(form.elements[i].name,form.elements[i].checked, form.elements[i].value));
				} else {
					checkBoxElements.push(new Array(form.elements[i].name,form.elements[i].checked, null));
				}
			}
		}
	}
	
	
	for(i=0;i<radioElements.length;i++){
		if (radioElements[i][0] == fieldName){
			return radioElements[i][2];
		}
	}
	
	for(i=0;i<checkBoxElements.length;i++){
		if (checkBoxElements[i][0] == fieldName){
			return checkBoxElements[i][2];
		}
	}
}


/* Creation d'accordeon attend 4 paramètres 
	toggleClassName		:	 Nom de class des toggle à instancier
	elementClassName	:	 Nom de class des element associés aux toggles
	imgPucePlus		:	Chemin complet de la puce plus à attribuer
	imgPuceMoins		:	Chemin complet de la puce moins à attribuer
*/
function creatAccordion(toggleClassName, elementClassName, numElementToOpen, imgPucePlus, imgPuceMoins){
	objAccordion = new Accordion($$('.'+toggleClassName), $$('.'+elementClassName), {
		alwaysHide: false,
		display: numElementToOpen,
		alwaysHide: true,
		onActive: function(toggle, element){
			//On vérifie que l'état de l'élément pour l'ouvrir ou le fermer
			if(toggle.hasClass('open')){
				toggle.removeClass('open');
				// Changement de la puce ouverture fermeture avec un effet
				if(toggle.getElement('img')){
					toggle.getElement('img').src = imgPucePlus;
				}
			}else{
				toggle.addClass('open');
				// Changement de la puce ouverture fermeture avec un effet
				if(toggle.getElement('img')){
					toggle.getElement('img').src = imgPuceMoins;
				}
			}
		},
		onBackground: function(toggle, element){
			toggle.removeClass('open');
			//Changement de la puce ouverture fermeture avec un effet								
			if(toggle.getElement('img')){
				toggle.getElement('img').src = imgPucePlus;
			}
		}
	});
	return objAccordion;
}

var textAreaMaxSize = function(object, maxSize, resultContainerId){
   var iLongueur, iLongueurRestante;
   iLongueur = object.value.length;
   if (iLongueur>maxSize) {
	  object.value = object.value.substring(0,maxSize);
	  iLongueurRestante = 0;
   }
   else {
	  iLongueurRestante = maxSize - iLongueur;
   }
   if (iLongueurRestante <= 1)
	  document.getElementById(resultContainerId).innerHTML = maxSize + " caract&egrave;res maximum - " + iLongueurRestante + " caract&egrave;res restants";
   else
	  document.getElementById(resultContainerId).innerHTML = maxSize + " caract&egrave;res maximum - " + iLongueurRestante + " caract&egrave;res restants";
}

/* Fonctions de preload dream */
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
