/***************************************
*
* Misc
*
***************************************/
var regExpBeginning = /^\s+/;
var regExpEnd       = /\s+$/;

// Supprime les espaces inutiles en début et fin de la chaîne passée en paramètre.
function trim(aString) {
	return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
}

// Supprime les espaces inutiles en début de la chaîne passée en paramètre.
function ltrim(aString) {
	return aString.replace(regExpBeginning, "");
}

// Supprime les espaces inutiles en fin de la chaîne passée en paramètre.
function rtrim(aString) {
	return aString.replace(regExpEnd, "");
} 


/***************************************
*
* Loading de la page
*
***************************************/
window.onload = function () {
	$$('a').each(function(a) {
		a.setAttribute('onfocus', "if(this.blur)this.blur()");
	});
	
	$$('#menu li').each(function(li) {
		if (li.className != 'encours') { 
			li.setAttribute('onmouseover', "this.className='hover';");
			li.onmouseover = function() { li.className = 'hover'; }
			
			li.setAttribute('onmouseout', "this.className='normal';");
			li.onmouseout = function() { li.className = 'normal'; }
		}
	});
	
	$$('.page-image').each(function(img) {
		img.style.position = 'relative';
		img.style.zIndex = 99;
		var imgPosition = Position.positionedOffset($(img));
		var divOmbre = document.createElement('div');
		divOmbre.style.width = $(img).getWidth() + 'px';
		divOmbre.style.height = $(img).getHeight() + 'px';
		divOmbre.style.backgroundColor = '#d9d9d9';
		divOmbre.style.position = 'absolute';
		divOmbre.style.top = (imgPosition[1] + 5) + 'px';
		divOmbre.style.left = (imgPosition[0] + 5) + 'px';
		divOmbre.style.zIndex = 98;
		img.parentNode.appendChild(divOmbre);
	});
	
	$$('input[type="checkbox"]', 'input[type="radio"]').each(function(checkbox) {
		checkbox.className = 'checkbox';
		checkbox.setAttribute('class', 'checkbox');
		checkbox.onclick = function() { checkbox.blur() };
	});
	
	$$('input[type="text"]').each(function(input) {
		input.onfocus = function() { input.setAttribute('class', 'focus'); input.className = 'focus'; }
		input.onblur = function() { input.removeAttribute('class'); input.className = 'normal'; }
	});	
}


/***************************************
*
* Contact
*
***************************************/
function envoiContact(type) {
	url = '../contact/form.control.php';
	formControlWidth = $('form-control').getWidth();
	formControlHeight = $('form-control').getHeight();
	pars = '?go=doc&support=' + type + '&' + $('form-contact').serialize();
	
	var loading = document.createElement('img');
	loading.src = '../ui/images/ajax-loader.gif';
	loading.style.position = 'absolute';
	loading.style.bottom = '20px';
	loading.style.right = '20px';
	loading.id = 'ajax-loader';
	$('form-control').appendChild(loading);
	
	new Ajax.Request(url, {
		method: 'get',
		parameters: pars, 
		onSuccess: function(transport) {
			if (transport.responseText.empty() == true) {
				$('form-control').style.height = formControlHeight + 'px';
				Effect.Fade('form-contact', { duration:0.3 });
				$('form-control').innerHTML = '<h2 class="center">Votre demande a été transmise à notre service commercial.</h2>';
			}
			else {
				var erreurs = transport.responseText;
				
				var status = document.createElement('div');
				status.id = 'form-status';
				status.style.display = 'none';
				$('form-control').appendChild(status);
				Effect.Appear(status, {duration:0.2});
				status.onclick = function() { Effect.Fade(status, {duration:0.2}); }
				
				status.innerHTML = '<strong>Les champs suivants sont mal renseignés. <br /> Merci de vérifier les informations saisies :</strong>' + erreurs + '<p class="center padding10"><input type="button" value="Fermer" /></p>';
			}
			$('ajax-loader').remove();
		}
	});
}

/***************************************
*
* Recherche guidée
*
***************************************/
function rechercheGuidee() {
	var sliderDiametre = null;
	var sliderCharge = null;
}

rechercheGuidee.displayForm = function(type) {
	$$('#rg-roulette', '#rg-roue', '#rg-fixation').each(function(div) {
		div.style.position = 'absolute';
		div.style.visibility = 'hidden';
	});
	
	$$('#rg-lien-formulaire-roulette', '#rg-lien-formulaire-roue', '#rg-lien-formulaire-fixation').each(function(a) {
		a.className = 'none';
	});
	
	$('rg-' + type).style.visibility = 'visible';
	$('rg-' + type).style.position = 'static';
	$('rg-lien-formulaire-' + type).className = 'hover';
}

rechercheGuidee.load = function() {
	$$('#rg-roulette', '#rg-roue', '#rg-fixation').each(function(div) {
		div.style.visibility = 'hidden';
		div.style.position = 'absolute';
	});
	$$('#rg-lien-formulaire-roulette', '#rg-lien-formulaire-roue', '#rg-lien-formulaire-fixation').each(function(a) {
		a.className = 'none';
	});
	$('rg-roulette').style.visibility = 'visible';
	$('rg-roulette').style.position = 'static';
	$('rg-lien-formulaire-roulette').className = 'hover';
	
	
	grilleDiametres = [14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,32,33,35,38,39,40,42,43,45,46,48,50,55,60,62,63,65,70,73,75,76,80,82,85,90,92,100,105,120,125,130,140,150,160,175,180,200,225,250,260,280,300,310,350,360,400,415,450,475,500];
	etapesDiametres = [];
	for (i = 1; i <= grilleDiametres.length; i++) {
		etapesDiametres.push(i);
	}
	
	
	grilleCharges = [10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,550,600,650,650,700,750,800,850,900,950,1000,1000,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3300,3300,3400,3500,3600,3700,3800,3900,4000,4100,4400,4300,4400,4500,4600,4700,4800,4900,5000,6000,7000,8000,9000,10000,11000,12000,13000,14000,15000];
	etapesCharges = [];
	for (j = 1; j <= grilleCharges.length; j++) {
		etapesCharges.push(j);
	}

	/**********************************************************
	* Roulettes : Diamètres
	**********************************************************/
	sliderValueDiametre = 43;
	$('rg-roulette-diametre-control').innerHTML = grilleDiametres[sliderValueDiametre-1] + ' mm'; 
	$('rg-roulette-rg-diametre').value = grilleDiametres[sliderValueDiametre-1];
	new Control.Slider('rg-roulette-diametre-handle','rg-roulette-diametre-track', {
		range: $R(1,grilleDiametres.length), 
		values: etapesDiametres, 
		sliderValue: sliderValueDiametre,
		onSlide: function(v) { 
			$('rg-roulette-diametre-control').innerHTML = grilleDiametres[v-1] + ' mm'; 
			$('rg-roulette-rg-diametre').value = grilleDiametres[v-1];
		}
	});


	/**********************************************************
	* Roulettes : Charges
	**********************************************************/
	sliderValueCharge = 30;
	$('rg-roulette-charge-control').innerHTML = grilleCharges[sliderValueCharge-1] + ' daN'; 
	$('rg-roulette-rg-charge').value = grilleCharges[sliderValueCharge-1];
	new Control.Slider('rg-roulette-charge-handle','rg-roulette-charge-track', {
		range: $R(1,grilleCharges.length), 
		values: etapesCharges, 
		sliderValue: sliderValueCharge,
		onSlide: function(v) { 
			$('rg-roulette-charge-control').innerHTML = grilleCharges[v-1] + ' daN'; 
			$('rg-roulette-rg-charge').value = grilleCharges[v-1];
		}
	});
	
	
	/**********************************************************
	* Roues : Diamètres
	**********************************************************/
	$('rg-roue-diametre-control').innerHTML = grilleDiametres[sliderValueDiametre-1] + ' mm'; 
	$('rg-roue-rg-diametre').value = grilleDiametres[sliderValueDiametre-1];
	new Control.Slider('rg-roue-diametre-handle','rg-roue-diametre-track', {
		range: $R(1,grilleDiametres.length), 
		values: etapesDiametres, 
		sliderValue: sliderValueDiametre,
		onSlide: function(v) { 
			$('rg-roue-diametre-control').innerHTML = grilleDiametres[v-1] + ' mm'; 
			$('rg-roue-rg-diametre').value = grilleDiametres[v-1];
		}
	});


	/**********************************************************
	* Roues : Charges
	**********************************************************/
	$('rg-roue-charge-control').innerHTML = grilleCharges[sliderValueCharge-1] + ' daN'; 
	$('rg-roue-rg-charge').value = grilleCharges[sliderValueCharge-1];
	new Control.Slider('rg-roue-charge-handle','rg-roue-charge-track', {
		range: $R(1,grilleCharges.length), 
		values: etapesCharges, 
		sliderValue: sliderValueCharge,
		onSlide: function(v) { 
			$('rg-roue-charge-control').innerHTML = grilleCharges[v-1] + ' daN'; 
			$('rg-roue-rg-charge').value = grilleCharges[v-1];
		}
	});
	
	
	/**********************************************************
	* Fixations : Diamètres
	**********************************************************/
	diametresFixations = [];
	for (k = 16; k <= 38; k++) {
		diametresFixations.push(k);
	}
	new Control.Slider('rg-fixation-diametre-handle','rg-fixation-diametre-track', {
		range: $R(16,38), 
		values: diametresFixations, 
		onSlide: function(v) { 
			$('rg-fixation-diametre-control').innerHTML = v + ' mm'; 
			$('rg-fixation-diametre').value = v;
		}
	});
}

rechercheGuidee.submit = function(type) {
	var url = false;

	switch (type)
	{
		case 'roulette':
			url = '../recherche/roulette-';
			url += $('rg-roulette-environnement').value + '-';
			url += $('rg-roulette-rg-charge').value + '-';
			url += $('rg-roulette-rg-diametre').value + '-';
			url += $('rg-roulette-fixation').value + '-';
			url += $('rg-roulette-pivotement').value;
			url += '.htm';
			break;
			
		case 'roue':
			url = '../recherche/roue-';
			url += $('rg-roue-environnement').value + '-';
			url += $('rg-roue-rg-charge').value + '-';
			url += $('rg-roue-rg-diametre').value + '-';
			url += $('rg-roue-roulement').value;
			url += '.htm';
			break;
			
		case 'fixation':
			var tube = document.getElementsByName("tube");
			var tubeLabel = (tube[0].checked) ? tube[0].value : tube[1].value;
			var vis = document.getElementsByName("vis");
			var visLabel = (vis[0].checked) ? vis[0].value : vis[1].value;
			
			url = '../recherche/fixation-';
			url += tubeLabel + '-';
			url += visLabel + '-';
			url += $('rg-fixation-diametre').value;
			url += '.htm';
			break;
	}
	
	if (url != false) location.href = url;
	else alert('Erreur dans la recherche guidée. Veuillez vérifier les paramètres');
	
	return false;
}


/***************************************
*
* Recherche fiche
*
***************************************/
function rechercheFiche() {
	reference = trim($F('form-reference'));
	if (reference.empty() == true) {
		alert('Merci de saisir une référence');	
	}
	else {
		url = '../recherche/ajax.php?reference=' + reference;
		new Ajax.Request(url, {
			method: 'get',
			onSuccess: function(transport) {
				if (transport.responseText == 0) {
					alert('Désolé, mais votre requête n\'a retourné aucun résultat. \n \n Merci de recommencer votre recherche.');
					$('form-reference').value = '';
				}
				else if (transport.responseText == 1) {
					location.href = '../produits/' + reference.toUpperCase() + '.htm';
				}
				else {
					location.href = '../recherche/reference.htm?reference=' + reference;
				}
			}
		});
	}
}


/***************************************
*
* Gestion du devis
*
***************************************/
function devis() {}

	/**********************************************************
	* Ajouter
	**********************************************************/
	devis.ajouter = function(reference) {
		var quantite = prompt('Quelle quantité désirez-vous ?', '');
		if (quantite != null) {
			url = '../devis/ajax.php?go=ajouter&reference=' + reference + '&quantite=' + quantite;
			new Ajax.Request(url, {
				method: 'get',
				onSuccess: function(transport) {
				//-----------------------
					Effect.Fade('ajouter-devis-top', {
						duration: 0.3,
						afterFinish: function() {
							$('devis-lien').onclick = function() {
								devis.supprimer(reference, 0);	
							}
							$('devis-lien').innerHTML = 'Supprimer de votre demande de devis';
							$('devis-image').src = '../ui/images/devis.supprimer.png';
							Effect.Appear('ajouter-devis-top', {
								duration: 0.3,
								afterFinish: function() {
									//alert('Article ajouté avec succès !');	
								}
							});
						}
					});
				//-----------------------
				}
			});
		}
	}
	
	/**********************************************************
	* Supprimer
	**********************************************************/
	devis.supprimer = function(reference, ligne) {
		var confirmation = confirm('Supprimer cet article de votre demande de devis ?');
		if (confirmation == true) {
			url = '../devis/ajax.php?go=supprimer&reference=' + reference;
			if (ligne != false) {
				Effect.Fade('devis-' + reference, {duration: 0.4});
			}
			new Ajax.Request(url, {
				method: 'get',
				onSuccess: function(transport) {
				//-----------------------
					Effect.Fade('ajouter-devis-top', {
						duration: 0.3,
						afterFinish: function() {
							$('devis-lien').onclick = function() {
								devis.ajouter(reference);	
							}
							$('devis-lien').innerHTML = 'Ajouter à une demande de devis';
							$('devis-image').src = '../ui/images/devis.ajouter.png';
							Effect.Appear('ajouter-devis-top', {
								duration: 0.3,
								afterFinish: function() {
									//alert('Article supprimé avec succès !');	
								}
							});
						}
					});
				//-----------------------
				}
			});
		}
	}
	
	/**********************************************************
	* Envoyer
	**********************************************************/
	devis.envoyer = function() {
		url = '../contact/form.control.php';
		formControlWidth = $('form-control').getWidth();
		formControlHeight = $('form-control').getHeight();
		pars = '?go=devis&' + $('form-contact').serialize();
		
		var loading = document.createElement('img');
		loading.src = '../ui/images/ajax-loader.gif';
		loading.style.position = 'absolute';
		loading.style.bottom = '20px';
		loading.style.right = '20px';
		loading.id = 'ajax-loader';
		$('form-control').appendChild(loading);
		
		new Ajax.Request(url, {
			method: 'get',
			parameters: pars, 
			onSuccess: function(transport) {
				if (transport.responseText.empty() == true) {
					$('form-control').style.height = formControlHeight + 'px';
					Effect.Fade('form-contact', { duration:0.3 });
					$('form-control').innerHTML = '<h2 class="center">Votre demande a été transmise pour traitement à notre service commercial.</h2>';
				}
				else {
					var erreurs = transport.responseText;
					
					var status = document.createElement('div');
					status.id = 'form-status';
					status.style.display = 'none';
					$('form-control').appendChild(status);
					Effect.Appear(status, {duration:0.2});
					status.onclick = function() { Effect.Fade(status, {duration:0.2}); }
					
					status.innerHTML = '<strong>Les champs suivants sont mal renseignés. <br /> Merci de vérifier les informations saisies :</strong>' + erreurs + '<p class="center padding10"><input type="button" value="Fermer" /></p>';
				}
				$('ajax-loader').remove();
			}
		});
	}
	
	/**********************************************************
	* Vider
	**********************************************************/
	devis.vider = function() {
		var confirmation = confirm('Vider votre devis ?');
		if (confirmation == true) {
			url = '../devis/ajax.php?go=vider';
			new Ajax.Request(url, {
				method: 'get',
				onSuccess: function(transport) {
				//-----------------------
					$$('tr.devis-liste-item').each(function(tr) {
						Effect.Fade(tr.id, {duration: 0.3});
					});
				//-----------------------
				}
			});
		}
	}


/***************************************
*
* Popups
*
***************************************/
function popupNorme(normeID) {
	window.open("../accueil/" + normeID + ".php", "", "height=550,width=600,top=100,left=100,toolbar=no,menubar=yes,location=no,resizable=no,scrollbars=yes,status=no");
}

function popupDT(href) {
	
	window.open(href, "Dessin 2D", "height=500,width=400,top=100,left=100,toolbar=no,menubar=yes,location=no,resizable=no,scrollbars=no,status=no");
	return false;
}

function affiche2d(ref) {
	var img = document.createElement('img');
	img.src = '../2d/' + ref + '.png';
	img.id = 'dt-2d';
	img.setAttribute('id', 'dt-2d');
	$('control').appendChild(img);
}
