﻿function roule_deroule(element, parent)
{
	if ($(element).style.display == 'none')
	{
		new Effect.SlideDown(element);
		if (parent) $(parent).className = 'deroule';
	}
	else
	{
		new Effect.SlideUp(element);
		if (parent) $(parent).className = 'enroule';
	}
}

function montre(element)
{
	for (var i = 0; i <= 10; i++)
	{
		if ($('smenu'+i))
			$('smenu'+i).style.display = 'none';
	}
	if ($(element))
		$(element).style.display = 'block';
}

function swapTab(requestedTab)
{
	if (requestedTab != currentTab)
	{
		// desactivate currentTab
		$('tab' + currentTab + '_link').getElementsByTagName("div")[0].className = '';
		if (currentTab < 4) 
			$('tab' + (currentTab + 1) + '_link').getElementsByTagName("div")[0].className = '';
		else
			$('tab_box_tabs').getElementsByTagName("ul")[0].className = '';
		$('tab' + currentTab + '_link').getElementsByTagName("a")[0].className = '';

		// hide his content
		$('tab'+currentTab).style.display = 'none';

		// activer requested tab
		$('tab' + requestedTab + '_link').getElementsByTagName("div")[0].className = 'current_tab_left';
		if (requestedTab < 4)
			$('tab' + (requestedTab + 1) + '_link').getElementsByTagName("div")[0].className = 'current_tab_right';
		else
			$('tab_box_tabs').getElementsByTagName("ul")[0].className = 'current_tab_right';
		$('tab' + requestedTab + '_link').getElementsByTagName("a")[0].className = 'current_tab';

		// show his content
		$('tab'+requestedTab).style.display = 'block';

		currentTab = requestedTab;
	}
}

/* exacentres */

function valideZip()
{
	var codeValide = new RegExp("^([0-9]{5})$", "i");

	if (codeValide.test($('Zip').value) === false)
	{
		$('Zip').value = "";
		alert(messageErreur);
		return false;
	}

	else return true
}

/*
 * fDomOffset(oObj, sProp)
 * permet d'acceder aux propriétés DOM offsetLeft - offsetTop d'un objet quelque soit le navigateur
 * oObj : [Object] - Objet dont on désire le position
 * sProp : [String] - Propriété désirée : offsetLeft - offsetTop
*/
function fDomOffset(oObj, sProp)
{
	var iVal = 0;
	// On boucle tant que l'on n'est pas à la racine du document
	while (oObj && oObj.tagName != 'BODY')
	{
		eval('iVal += oObj.' + sProp + ';');
		oObj = oObj.offsetParent;
	}
	return iVal;
}

function position(obj, currentPos, sProp, correction)
{
	return (Number(currentPos) + Number(fDomOffset($('carte'), sProp)) - Number(correction)) + 'px';
}

function positionInit(nbPoints) {
	// utilise la variable nbPoints définie dans la page, qui correspond au nombre de points / légende de la page
	var j = 1;

	// on calcul la correction par rapport au premier élément de la page
	var correctionTop = fDomOffset($('container'), 'offsetTop');
	var correctionLeft = fDomOffset($('container'), 'offsetLeft');

	while(j <= nbPoints)
	{
		pointTop = $('point' + j).style.top;
		pointLeft = $('point' + j).style.left;

		legendeTop = $('legende' + j).style.top;
		legendeLeft = $('legende' + j).style.left;

		$('point' + j).style.top = position('point' + j, pointTop.substring(0, pointTop.indexOf('px', 1)), 'offsetTop', correctionTop);
		$('point' + j).style.left = position('point' + j, pointLeft.substring(0, pointLeft.indexOf('px', 1)), 'offsetLeft', correctionLeft);

		$('legende' + j).style.top = position('legende' + j, (Number(legendeTop.substring(0, legendeTop.indexOf('px', 1))) - 25), 'offsetTop', correctionTop);
		$('legende'+j).style.left = position('legende'+j, (Number(legendeLeft.substring(0, legendeLeft.indexOf('px', 1))) - 15), 'offsetLeft', correctionLeft);

		$('point' + j).style.display = 'block';

		j++;
	}
}

function mapShow(numPoint, urlImg)
{
	pointTop = $('point' + numPoint).style.top;
	pointLeft = $('point' + numPoint).style.left;

	$('legende' + numPoint).style.display = 'block';

	$('point' + numPoint).getElementsByTagName("a")[0].getElementsByTagName("img")[0].src = urlImg;
	$('point' + numPoint).style.top = (Number(pointTop.substring(0, pointTop.indexOf('px', 1))) - 2) + 'px';
	$('point' + numPoint).style.left = (Number(pointLeft.substring(0, pointLeft.indexOf('px', 1))) - 2) + 'px';
}

function mapHide(numPoint, urlImg)
{
	pointTop = $('point' + numPoint).style.top;
	pointLeft = $('point' + numPoint).style.left;

	$('legende' + numPoint).style.display = 'none';

	$('point' + numPoint).getElementsByTagName("a")[0].getElementsByTagName("img")[0].src = urlImg;
	$('point' + numPoint).style.top = (Number(pointTop.substring(0, pointTop.indexOf('px', 1))) + 2) + 'px';
	$('point' + numPoint).style.left = (Number(pointLeft.substring(0, pointLeft.indexOf('px', 1))) + 2) + 'px';
}

/* ouvrir un compte, contacter exapaq */

function checkOuverture()
{
	// nécessite les variables définies dans la page
	// listeCodes => array contenant tous les codes postaux connus
	// zipFieldId => string contenant l'id du champ code postal
	// zipErreur => string contenant le message d'alerte en cas d'erreur

	var codeValide = new RegExp("^([0-9]{5})$", "i");

	if (codeValide.test($(zipFieldId).value))
	{
		// pas la peine d'entrer dans la boucle si le code n'est pas valide
		for (var i = 0; i < listeCodes.length; i++)
		{
			if (listeCodes[i][0] == $(zipFieldId).value)
			{
				// on sort dès que la valeur est trouvée
				return true;
			}
		}
	}
	// le code postal est inconnu ou invalide
	alert(zipErreur);
	$(zipFieldId).value = "";

	return false;
}

/* contacter votre exacentre */

function findExacentre()
{
	// nécessite les variables définies dans la page
	// listeCodes => array contenant tous les codes postaux connus
	// zipFieldId => string contenant l'id du champ code postal
	// zipErreur => string contenant le message d'alerte en cas d'erreur

	var codeValide = new RegExp("^([0-9]{5})$", "i");

	if (codeValide.test($(zipFieldId).value))
	{
		// pas la peine d'entrer dans la boucle si le code n'est pas valide
		for (var i = 0; i < listeCodes.length; i++)
		{
			if (listeCodes[i][0] == $(zipFieldId).value)
			{
				$("exacentre").innerHTML = listeCodes[i][1];
				return true;
			}
		}
	}

	$("exacentre").innerHTML = zipErreur;
	return false;
}

function affichage_popup() //uri, nom_interne_de_la_fenetre, hauteur='600', largeur='800'
{
  var uri = arguments[0];
  var nom_interne_de_la_fenetre = arguments[1];
  var hauteur = (arguments[2])?arguments[2]:640;
  var largeur = (arguments[3])?arguments[3]:800;
  window.open (uri, nom_interne_de_la_fenetre, config='height='+hauteur+', width='+largeur+', toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=yes')
}

