
// ****************************
// Fonction spin_up, valide le forumlaire
function spin_up(form,objet){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}

function spin_down(form,objet){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}


// ****************************
// Fonction spin_up, ne valide pas le formulaire
function spin_upNorm(form,objet){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
}

function spin_downNorm(form,objet){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
}

// ****************************
// Fonction spin_up, ne valide pas le formulaire, et appel une fonction apres la maj
function spin_upNorm(form, objet, callAfter){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
	if(callAfter != ""){
		setTimeout(callAfter,0);
	}
}

function spin_downNorm(form, objet, callAfter){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
	if(callAfter != ""){
		setTimeout(callAfter,0);
	}
}

function verifQte(form, objet){

	var valeur = document[form][objet].value;

	if (checkNumericField(valeur)){
		if (document[form][objet].value < 0){
			document[form][objet].value = 1;
		}
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}

function valideForm(nom){
	document.forms[nom].submit();
}


// *****************************************************************************
// Fonction : checkNumericField
// teste si le champ est composé de caracteres numeriques
// renvoie true si le champ est numerique
// renvoie false si le champ est vide ou non numerique
// *****************************************************************************
function checkNumericField(theField) {
	re=/^[+-]*\d+$/;

	return (re.test(theField));
}



// *****************************************************************************
// Fonction : isMail
// si le champ est rempli verifie si le format  comporte l'@ et le .
// renvoie true si oui ou si vide
// renvoie false si non
// *****************************************************************************
function isMail(mail) {
	if (mail.search(/^[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z0-9\.\-]+$/) == -1){
		return false;
	}else{
		return true;
	}
}


// *****************************************************************************
// Fonction : checkNotEmptyField
// teste si le champ n'est pas vide ("", espace, tab, retour chariot interdit)
// renvoie true si le champ est correct
// renvoie false si le champ est vide ou espaces
// *****************************************************************************
function checkNotEmptyField(theField) {
	if (!theField) return false;

	re=/^\s+$/;

	return !(re.test(theField));
}


////////////////////////////////////////////////////////////
//Fonction : cocheLivraion
//Prend en argument l'id du système de livraison à sélectionner, et le sélectionne
function cocheLivraison(idLivraison){
	for (var i=0; i < document.livraison.transport_id.length;i++) {
		if (document.livraison.transport_id[i].value == idLivraison){
			document.livraison.transport_id[i].checked = true;
			document.livraison.submit();
		}
    }
}


//Fleches calendrier
//Fonction permettant de modifier l'attribut caché des flèches du calendrier, afin de voir les 2 semaines
//précédentes ou suivantes
function fleches_calendrier(semaine){
	document.livraison.semaine.value += semaine;
	document.livraison.submit();
}


function addCrenau(valeur){
	document.commande.date_livraison.value=valeur;
}


//Cache tous les div, et affiche (s'il est caché) ou cache (s'il est affiché) le div courant
function complete(lediv){
	cacheLesDiv();

	if (divIsOpen == lediv){
		lediv.style.visibility = "hidden";
		divIsOpen = null
	}else{
		lediv.style.visibility = "visible";
		divIsOpen = lediv;
	}
}


//Fonction appelée lorsque l'utilisateur clique sur un lien dans le div, le texte est copié dans le textfield correspondant
function ajValeur(leChamp, laValeur){
	leChamp.value = laValeur;
	cacheLesDiv();
}

var tab2Div = new Array();

//Cache tous les div
function cacheLesDiv(){
	for(i = 0; i < tab2Div.length; i++){
		var autreDiv = document.getElementById("div_"+tab2Div[i]);
		autreDiv.style.visibility = "hidden";
	}
}

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

function trim (str, chars){
	return ltrim(rtrim(str, chars), chars);
}

function ltrim (str, chars){
	var car = (chars != undefined) ? chars : "\\s";
	return str.replace(new RegExp("^[" + chars + "]*", "g"), "");
}

function rtrim (str, chars){
	var car = (chars != undefined) ? chars : "\\s";
	return str.replace(new RegExp("[" + chars + "]*$", "g"), "");
} 

function checkColsHeights(minHeight){
	var leftCol = document.getElementById("colonneGauche");
	var rightCol = document.getElementById("colonneDroite");
	var containerCol = document.getElementById("colonnesContainer");
	var spacer = document.getElementById("spacer");
	
	if((leftCol || rightCol) && containerCol){
		//On récupère la hauteur de la colonne de gauche
		var leftColHeight = 0;
		var rightColHeight = 0;
		
		if(leftCol){
			var leftColHeight = leftCol.offsetHeight;
		}
		
		if(rightCol){
			var rightColHeight = rightCol.offsetHeight;
		}
		var containerColHeight = containerCol.offsetHeight;
		
		var maxColHeight = leftColHeight;
		if(rightColHeight > maxColHeight){
			maxColHeight = rightColHeight;
		}
		
		if(minHeight > maxColHeight){
			maxColHeight = minHeight;
		}
		
		

		if(maxColHeight > containerColHeight){
			//containerCol.style.height = (maxColHeight+10) + "px";
			spacer.style.height = (maxColHeight - containerColHeight + 10) + "px";
			//alert(maxColHeight + " / " + containerColHeight);
		}
		
		//alert("LeftCol=" + leftColHeight + "\nRightCol=" + rightColHeight + "\ncontainerCol=" + containerColHeight + "\nminHeight=" + minHeight + "\n\nNewHeight=" + containerCol.style.height);
	}
}

var mvtCadreEnCours = false;

function clickCadre(numCadre, boucle){
	if(numCadre != cadreAct && (!mvtCadreEnCours || boucle == 2)){
		mvtCadreEnCours = true;
		if(numCadre == 1){	//On ouvre le cadre login
			if(boucle == 1){
				var myVerticalSlideCadreCoord = new Fx.Slide("cadreCoord", {duration:1000});
				myVerticalSlideCadreCoord.slideOut();
				
				var myVerticalSlideCadreLogin = new Fx.Slide("cadreLogin", {duration:1000, onComplete: function(){clickCadre(numCadre, 2);}});
				myVerticalSlideCadreLogin.slideIn();
				
				//Effect.BlindUp("cadreCoord", { duration: 1.0});
				//Effect.BlindDown("cadreLogin", { duration: 1.0, afterFinish:function(){clickCadre(numCadre, 2);}});
			}else{
				/*var myVerticalSlideCadreEspace1 = new Fx.Slide("cadreEspace1", {duration:500, onComplete: function(){mvtCadreEnCours = false;}});
				myVerticalSlideCadreEspace1.slideIn();*/
				
				var myVerticalSlideCadreEspace2 = new Fx.Slide("cadreEspace2", {duration:500, onComplete: function(){mvtCadreEnCours = false;}});
				myVerticalSlideCadreEspace2.slideIn();
			
				//Effect.BlindDown("cadreEspace1", { duration: 0.5, afterFinish:function(){mvtCadreEnCours = false;}});
				//Effect.BlindDown("cadreEspace2", { duration: 0.5, afterFinish:function(){mvtCadreEnCours = false;}});
			}
		}else{	//On ouvre le cadre des coordonnées
			if(boucle == 1){
				clickCadre(numCadre, 2);
				/*var myVerticalSlideCadreEspace1 = new Fx.Slide("cadreEspace1", {duration:500, onComplete: function(){clickCadre(numCadre, 2);}});
				myVerticalSlideCadreEspace1.slideOut();*/
				
				var myVerticalSlideCadreEspace2 = new Fx.Slide("cadreEspace2", {duration:500, onComplete: function(){clickCadre(numCadre, 2);}});
				myVerticalSlideCadreEspace2.slideOut();
				
				//Effect.BlindUp("cadreEspace1", { duration: 0.5, afterFinish:function(){clickCadre(numCadre, 2);}});
				//Effect.BlindUp("cadreEspace2", { duration: 0.5, afterFinish:function(){clickCadre(numCadre, 2);}});
			}else{
				var myVerticalSlideCadreLogin = new Fx.Slide("cadreLogin", {duration:1000});
				myVerticalSlideCadreLogin.slideOut();
				
				var myVerticalSlideCadreCoord = new Fx.Slide("cadreCoord", {duration:1000, onComplete: function(){mvtCadreEnCours = false;}});
				var cadreCoord = document.getElementById("cadreCoord");
				if(cadreCoord.style.display == "none"){//Premier affichage
					cadreCoord.style.display="block";
					myVerticalSlideCadreCoord.hide();
				}
				myVerticalSlideCadreCoord.slideIn();
				
				
				//Effect.BlindUp("cadreLogin", { duration: 1.0, afterFinish:function(){clickCadre(numCadre, 2);}});
				//Effect.BlindDown("cadreCoord", { duration: 1.0, afterFinish:function(){mvtCadreEnCours = false;}});
			}
		}
		
		if(boucle == 2){
			cadreAct = numCadre;
		}
	}
}

function displayCountries(){
	var cadrePays = document.getElementById("listePays");
	if(cadrePays){
		
		var myVerticalSlideCountries = new Fx.Slide(cadrePays, {duration:1000});
	
		if(cadrePays.style.display == "none"){//Premier affichage
			cadrePays.style.display="block";
			myVerticalSlideCountries.hide();
		}
		
		
		myVerticalSlideCountries.toggle();
	}
}

function displayProductPopup(){
	if($('productPopubBGScreen') && $('productPopubBG')){
		$('productPopubBG').style.display = "block";
		$('productPopubBGScreen').style.display = "block";
		
		//On replace l'ascenseur en haut
		window.scrollTo(0,0); 
		
		//On cache l'asenseur
		document.body.style.overflow = "hidden";
	}
}
function hideProductPopup(){
	if($('productPopubBGScreen') && $('productPopubBG')){
		$('productPopubBG').style.display = "none";
		$('productPopubBGScreen').style.display = "none";
	}
	
	//On affiche l'asenseur
	document.body.style.overflow = "auto";
}

function sizeCharts(){
	if($('sizeChartsAnchor')){
		$('sizeChartsAnchor').style.border="1px solid white";	//Firefox hack, force recalcul de la position de l'ancre
	}
	window.location="#sizeCharts";
}

function mouseOverFilter(type){
	var name="overFilterSize";
	if(type=="color"){
		name="overFilterColor";
	}
	
	if($(name)){
		$(name).style.display="none";
	}
}

function mouseOutFilter(type){
	var name="overFilterSize";
	if(type=="color"){
		name="overFilterColor";
	}
	
	if($(name)){
		$(name).style.display="block";
	}
}
