/* Loïc Pennamen pour Magnana.com */

function chkFormCanne(){
	var message = false;
	
	var ligatures=document.getElementById('ligatures');
		var coloris1=document.getElementById('coloris1');
		var coloris2=document.getElementById('coloris2');
	var mention=document.getElementById('mention');
		var mentionTexte=document.getElementById('mentionTexte');
	
	// si des ligatures sont demandées mais les couleurs ne sont pas précisées
	if(ligatures.checked && (coloris1.value=='' && coloris2.value==''))	message='Veuillez préciser la couleur des ligatures désirées, ou décocher cette option ...';
	
	// si une mention est demandée mais pas précisée
	if(mention.checked && !mentionTexte.value)							message='Veuillez préciser la mention que vous désirez graver, ou décocher cette option ...';
	
	if(message){
		alert(message);
		return false;
	}
	else return true;
}

function majPrixCanne(){
	var prixDeBase=750;
	//alert('ok');
	var affPrix=document.getElementById('affPrix');
	var scion=document.getElementById('scion');
	var fourreau=document.getElementById('fourreau');
	var porteMoulinet=document.getElementById('porteMoulinet');
		var bois=document.getElementById('bois');
	var ligatures=document.getElementById('ligatures');
		var coloris1=document.getElementById('coloris1');
		var temoinColoris1=document.getElementById('temoinColoris1');
		var coloris2=document.getElementById('coloris2');
		var temoinColoris2=document.getElementById('temoinColoris2');
	var mention=document.getElementById('mention');
		var mentionTexte=document.getElementById('mentionTexte');
	
	//alert(coloris1.value + coloris2.value);
	
	if(scion.checked) 		prixDeBase += 150;
	if(fourreau.checked) 	prixDeBase += 134;
	if(porteMoulinet.checked){
		prixDeBase += 150;	
		bois.disabled=false;	
	}
	else{
		bois.disabled=true;		
	}
	if(ligatures.checked){
		prixDeBase += 6;	
		//
		coloris1.disabled=false;	
		var handleTAB=coloris1.value.split('|')
		var idColoris1=handleTAB[0];
		temoinColoris1.style.backgroundImage="url('./produits/118x84/" + idColoris1 + ".jpg')";
		//
		coloris2.disabled=false;	
		var handleTAB=coloris2.value.split('|')
		var idColoris2=handleTAB[0];
		temoinColoris2.style.backgroundImage="url('./produits/118x84/" + idColoris2 + ".jpg')";
	}
	else {					
		coloris1.value=''; 
		temoinColoris1.style.backgroundImage="url('./produits/118x84/0.jpg')";
		coloris2.value='';  
		temoinColoris2.style.backgroundImage="url('./produits/118x84/0.jpg')";
		coloris1.disabled='disabled'; 
		coloris2.disabled='disabled'; 
	}
	if(coloris1.value && coloris2.value)	prixDeBase += 6;
	if(mention.checked){
		prixDeBase += 5;
		mentionTexte.disabled=false;
	}
	else{
		mentionTexte.disabled='disabled'; 
	}
	
	//affPrix.value=prixDeBase + '';
	affPrix.innerHTML = prixDeBase;
	//alert(prixDeBase);
	//alert('ok');
}

// deplacer un bloc
function bouger(cible, sens, vitesse){
	window.clearTimeout(window.mvt);
	
	if(window.mvtX > 0 || vitesse >0){
		bloc = document.getElementById(cible);
		bloc.style.position = 'relative';
		if(sens == 'x'){
			//alert(window.mvtX);
			if(typeof(window.mvtX) == "undefined"){
				//alert('definition');
				window.mvtX = vitesse;
			}
			
			//alert(bloc.style.position);
			//alert(bloc.style.right);
			window.mvtX += vitesse;
			nvxX = window.mvtX;
			bloc.style.right =  nvxX + 'px';
		}
		window.mvt = window.setTimeout("bouger('"+cible+"', '"+sens+"', "+vitesse+");", 10);
	}
}
function pasBouger(){
	window.clearTimeout(window.mvt);
}
// dérouler un bloc vertical dont la hauteur est connue
function deroulerH(cible, debut, fin, vitesse, hack){ 	// si hack == true, la fonction ne peut s'appeller que elle-même, pour éviter les doublons de timeout
	bloc = document.getElementById(cible);
	
	// si un enroulement a lieu, le supprimer;	
	if(document.getElementById('mouvement-' + cible).value == 'enroulement'){
		eval('window.clearTimeout(fermeture'+cible+');');
		document.getElementById('mouvement-' + cible).value = 'demiTour';
		debut = bloc.offsetHeight;
		//alert(debut);
		//alert('tentative de cleartimeout');
	}
	
	// puis :
	if(debut<fin){
		debut+=vitesse;
		if (typeof(hack) == 'undefined') { var hack = false;}

		var mouvement = document.getElementById('mouvement-' + cible).value; 
		if(mouvement == 'ferme' || mouvement == 'demiTour' || hack==true){
			// ACTION !
			if(hack){
				bloc.style.height= debut + 'px';
				if(bloc.style.display == 'none'){
					bloc.style.display = 'block';
				}
			}
			document.getElementById('mouvement-' + cible).value = 'deroulement';
			//alert(cible);
			eval('window.ouverture'+cible+' = window.setTimeout("deroulerH(\''+cible+'\', '+debut+', '+fin+', '+vitesse+', true)", 10);');
		}
	}
	else{
		document.getElementById('mouvement-' + cible).value = 'ouvert';
	}
}
function enroulerH(cible, debut, fin, vitesse, hack){ 	// si hack == true, la fonction ne peut s'appeller que elle-même, pour éviter les doublons de timeout
	bloc = document.getElementById(cible);
	
	// si un deroulement a lieu, le supprimer;	
	if(document.getElementById('mouvement-' + cible).value == 'deroulement'){
		eval('window.clearTimeout(ouverture'+cible+');');
		document.getElementById('mouvement-' + cible).value = 'demiTour';
		debut = bloc.offsetHeight;
		//alert(debut);
		//alert('tentative de cleartimeout');
	}
	
	if(debut>fin){
		debut -= vitesse;
		
		// si la cible est en mouvement "deroulement", mais que la fonction ne s'est pas appelée elle même on ne fait rien
		var mouvement = document.getElementById('mouvement-' + cible).value; 
		if (typeof(hack) == 'undefined') { var hack = false;}
		if(mouvement == 'ouvert' || mouvement == 'demiTour' || hack==true){
			// ACTION !
			if(hack) bloc.style.height= debut + 'px';
			
			document.getElementById('mouvement-' + cible).value = 'enroulement';
			eval('window.fermeture'+cible+' = window.setTimeout("enroulerH(\''+cible+'\', '+debut+', '+fin+', '+vitesse+', true)", 10);');
		}
	}
	// une fois le deroulement arrivé à bon port
	else{
		document.getElementById('mouvement-' + cible).value = 'ferme';
		bloc.style.display= 'none';
	}
}
function changerHref(idLien, href){
	document.getElementById(idLien).href = href;
}
function getSelectedRadioValue (radiobutton){
	var returnValue = "";
	if (radiobutton.length == 1){
		returnValue = radiobutton.value;
	} else {
		for (i=0;i<radiobutton.length;i++){
			if (radiobutton[i].checked==true) {
				returnValue=radiobutton[i].value;
			}
		}
	}
	return returnValue;
}
function redirige(page) {
	location.href=page;
}
function upImage(image, ext){ // fonctionne pour l'ID de l'image, ou bien pour l'objet lui-même
	//alert(typeof image);
	if(typeof image != 'object')	image = document.getElementById(image);
	
	// si la chaine ne contient pas deja le -up
	// if(image.src.substr(image.src.length - 7, 0) != "-up." + ext){
	if(image.src.indexOf('-up.' + ext) <= 0){
		image.src=image.src.substr(0, image.src.length - 4) + "-up." + ext;
	}
}
function downImage(image, ext){ // fonctionne pour l'ID de l'image, ou bien pour l'objet lui-même
	//alert(typeof image);
	if(typeof image != 'object')	image = document.getElementById(image);
	
	// si la chaine contient le -up
	if(image.src.indexOf('-up.' + ext) > 0){
		image.src=image.src.substr(0, image.src.length - 7) + "." + ext;
	}
}
function focuser(objet){
	if(document.getElementById(objet)) document.getElementById(objet).focus();
}
function changerImage(idImage, srcImage){
	idImage.src=srcImage;
}
var newWin = null;
function closeWin(){
	if (newWin != null){
		if(!newWin.closed)
		newWin.close();
	}
}
///////////
function popUp(strURL,strType,strHeight,strWidth) {
closeWin();
var strOptions="";
if (strType=="console") strOptions="resizable,height="+strHeight+",width="+strWidth;
if (strType=="fixed") strOptions="status,height="+strHeight+",width="+strWidth;
if (strType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+strHeight+",width="+strWidth;
newWin = window.open(strURL, 'newWin', strOptions);
newWin.focus();
} 
/////////////////////////////
// switchBlock intervertit l'affichage de deux blocs donnés par leur ID
function switchBlock(afficher, masquer){
	document.getElementById(afficher).style.display='block';
	document.getElementById(masquer).style.display='none';
}
// switchBlock intervertit l'affichage de deux blocs donnés par leur ID
function switchBlockInline(afficher, masquer){
	document.getElementById(afficher).style.display='block';
	document.getElementById(masquer).style.display='inline';
}
// onOffBlock fonctionne comme un interrupteur sur un bloc donné par son id
function onOffBlock(afficher){
	if(document.getElementById(afficher).style.display=='block') {		document.getElementById(afficher).style.display='none';	}
	else if(document.getElementById(afficher).style.display=='none') {	document.getElementById(afficher).style.display='block';	}
}
// onOffParClasse fonctionne comme un interrupteur sur un bloc donné par sa classe et sa balise
function onOffParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			if(elts[i].style.display=='block')	elts[i].style.display='none';
			else if(elts[i].style.display=='none')	elts[i].style.display='block';
		}
	}
}
function masquerParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			elts[i].style.display='none';
		}
	}
}
function afficherParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			elts[i].style.display='block';
		}
	}
}
// unPourTous affiche un bloc au détriment d'une liste de blocs transmise dans une chaine de caracteres, les iID sont séparés par des ;
function unPourTous(afficher, masquer, display){
	if(!display) display = 'block';
	// si la mise en bloc de l'éément à afficher fonctionne
	if(document.getElementById(afficher).style.display=display){
		// création du tableau des ID de blocks à effacer
		mesId = masquer.split(';');
		// boucle
		for(i=0 ; i < mesId.length ; i++){
			document.getElementById(mesId[i]).style.display='none';
		}
	}
}
// pas ON un liens au détriment des autres de la meme liste (meme precinpe que fonction précédente
function onOffLien(liensOn, liensOff){
	// mise sur ON
	if(document.getElementById(liensOn).className='on'){
		// création du tableau des ID de liens à rendre OFF
		mesId = liensOff.split(';');
		// boucle
		for(i=0 ; i < mesId.length ; i++){
			document.getElementById(mesId[i]).className='off';
		}
	}
}

function masquer(idAMasquer){
	if(document.getElementById(idAMasquer)) document.getElementById(idAMasquer).style.display='none';
}
function afficher(idAAfficher){
	if(document.getElementById(idAAfficher)) document.getElementById(idAAfficher).style.display='block';
}
function afficherInline(idAAfficher){
	document.getElementById(idAAfficher).style.display='inline';
}
// formulaires : masque ou affiche un contenu de mot de passe
function switcherMdp(idChamp){
	if(document.getElementById(idChamp).type == 'text') document.getElementById(idChamp).type='password';
	else document.getElementById(idChamp).type='text';
}
// limiter le nombre de caracteres d'un textarea
function verifLongueur(monInput,nbCaracteres){
	nbActuel=monInput.value.length;
	if(nbActuel>=nbCaracteres+1){
		monInput.value=monInput.value.substr(0,nbCaracteres);
	}
}
// limiter le nombre de caracteres d'un textarea
function limiterTA(monTA,nbCaracteres,temoin){
	nbActuel=monTA.value.length;
	if(nbActuel>=nbCaracteres+1){
		alert('Vous ne pouvez entrer que '+nbCaracteres+' caractères maximum');
		monTA.value=monTA.value.substr(0,nbCaracteres-2);
	}
	document.getElementById(temoin).innerHTML='<sup>'+ (nbCaracteres-nbActuel) + ' caractères restants</sup>';
}
function majInput(id, valeur){
	document.getElementById(id).value=valeur;
}
		

// CHOPING :
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
function in_array(array, p_val) {
    for(var i = 0, l = array.length; i < l; i++) {
        if(array[i] == p_val) {
            rowid = i;
            return true;
        }
    }
    return false;
}