function trim(str)
{
  return str.replace(/^\s*|\s*$/g,"");
}

function strstr (haystack, needle, bool) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strstr('Kevin van Zonneveld', 'van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: strstr('Kevin van Zonneveld', 'van', true);
    // *     returns 2: 'Kevin '
    // *     example 3: strstr('name@example.com', '@');
    // *     returns 3: '@example.com'
    // *     example 4: strstr('name@example.com', '@', true);
    // *     returns 4: 'name'
 
    var pos = 0;
    
    haystack += '';
    pos = haystack.indexOf( needle );
    if (pos == -1) {
        return false;
    } else{
        if (bool){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}

function mouseOver(objImg)
{
  objImg.src = objImg.src.replace(".jpg", "_over.jpg");
  objImg.src = objImg.src.replace(".gif", "_over.gif");
}

function mouseOut(objImg)
{
  objImg.src = objImg.src.replace("_over.jpg", ".jpg");
  objImg.src = objImg.src.replace("_over.gif", ".gif");
}

function mouseDown(objImg)
{ 
  objImg.src = objImg.src.replace(".jpg", "_down.jpg");
  objImg.src = objImg.src.replace(".gif", "_down.gif");

}

function mouseUp(objImg)
{
  objImg.src = objImg.src.replace("_down.jpg", ".jpg");
  objImg.src = objImg.src.replace("_down.gif", ".gif");
}

function mouseOverAsLink(obj)
{
  obj.className += 'Over';
}

function mouseOutAsLink(obj)
{
  obj.className = obj.className.replace(/Over/, "");

}


function prevententer(objInput,e)
{

	var returnValue = false;
	var keyCode;
	
	if(window.event)
		keyCode  = (window.event.which) ? window.event.which : window.event.keyCode;
	else
		if(e)
			keyCode = e.which;
		else
			return true;

	if ( (keyCode == 13) )
		returnValue = false;
	else
		returnValue = true;


	return returnValue;
}

//Fonction qui valide une adresse courriel (format "nom@compagnie.com")
function ValiderCourriel(strCourriel)
{
	var filter = /^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,3})$/;
	return filter.test(strCourriel);
	
  /*intPositionA = strCourriel.indexOf("@");
  intPositionPoint = strCourriel.lastIndexOf(".")

  if (intPositionA < 1 || intPositionPoint-intPositionA < 2 || intPositionPoint == strCourriel.length -1)
    return false;
  else
    return true;*/
}

//Fonction qui valide un code postal
function ValiderCodePostal(strCodePostal)
{
	var filter = /^[ABCEGHJ-NPRSTVXY]{1}[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[ ]?[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[0-9]{1}$/;
	return filter.test(strCodePostal);

}

function maxLength(objInput, intLength)
{
  strTexte = objInput.value;
  if (strTexte.length >= intLength)
    return false;
  else
    return true;
}


//--- formatCurrency -----------------------------------------------------
//Fonction qui transforme le nombre entré dans la boîte en format monétaire
//Permet de s'assurer de la validité des montants entrés (format français : 0,00,format anglais : 0.00)
//------------------------------------------------------------------------
function formatCurrencyLang(objInput,chrLang)
{
	dblValue = objInput.value;
	dblValue = dblValue.replace(',','.');

	if (dblValue == '')
	{
		if (chrLang == 'E')
			dblValue = '0.00';
		else
			dblValue = '0,00';
	}
	else if (isNaN(dblValue) || dblValue < 0)
	{
		if (chrLang == 'E')
		{
			alert('The amount you have entered is not valid.');
			dblValue = '0.00';
		}
		else
		{
			alert('Le montant que vous avez entré n\'est pas valide.');
			dblValue = '0,00';
		}
	}
	else
	{
		dblValue = parseFloat(dblValue).toFixed(2);
	}
	if (chrLang == 'F')
		dblValue = dblValue.replace('.',',');
	objInput.value = dblValue;

}


function onlyNumeric(objInput,e)
{
	var returnValue = false;
	var keyCode;
	if(window.event)
		keyCode  = (window.event.which) ? window.event.which : window.event.keyCode;
	else
		if(e)
			keyCode = e.which;
		else
			return true;
    
	if ( ((keyCode >= 48) && (keyCode <= 57)) || (keyCode == 127) || (keyCode <= 32) ||
	(keyCode == 9)  ||
	(keyCode == 0) ||
	(keyCode == 13) )
		returnValue = true;

	if ( (keyCode == 44 || keyCode == 46) && objInput.value.indexOf(',') == -1 && objInput.value.indexOf('.') == -1 )
		returnValue = true;

	return returnValue;
}

function onlyInt(objInput,e)
{

	
	var returnValue = false;
	var keyCode;
	
	if(window.event)
		keyCode  = (window.event.which) ? window.event.which : window.event.keyCode;
	else
		if(e)
			keyCode = e.which;
		else
			return true;

	if ( ((keyCode >= 48) && (keyCode <= 57)) ||
	(keyCode == 9)  ||
	(keyCode == 0) ||
	(keyCode == 13) )
		returnValue = true;


	return returnValue;
}

function onlyAlphaNum(objInput,e)
{

	var returnValue = false;
	var keyCode;
	
	if(window.event)
		keyCode  = (window.event.which) ? window.event.which : window.event.keyCode;
	else
		if(e)
			keyCode = e.which;
		else
			return true;

	if ( ((keyCode >= 48) && (keyCode <= 57)) ||
	((keyCode >= 65) && (keyCode <= 90))  ||
	((keyCode >= 97) && (keyCode <= 122))  ||
	(keyCode == 9)  ||
	(keyCode == 0) ||
	(keyCode == 13) )
		returnValue = true;


	return returnValue;
}

//--- fadeObject ---------------------------------------------------------
//Fonction qui fait graduellement disparaître un objet
// Nécessite l'inclusion, dans la librairie scriptaculous, de :
//  /scriptaculous/prototype.js
//  /scriptaculous/scriptaculous.js
//------------------------------------------------------------------------
function fadeObject(objObject)
{
	new Effect.Fade(objObject.id);
}

function popUp(strUrl)
{
	newWindow=window.open(strUrl,"","width=500,height=350,scrollbars=yes,resizable=yes,top=300,left=300");
	newWindow.focus();
}

function findPosX(obj) {
	var curleft = 0;

	if (obj.offsetParent) 
	{
		do 
		{
			curleft += obj.offsetLeft;
		} while (obj = obj.offsetParent);
		return curleft;
	}
}

function findPosY(obj) {
	var curtop = 0;

	if (obj.offsetParent) 
	{
		do 
		{
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return curtop;
	}
}



function showSub(objLi)
{
	if(document.getElementById(objLi.id+'_Span'))
	{
		intPosX = findPosX(objLi);
		intPosY = findPosY(objLi);
		if (!isNaN(intPosX) && intPosX > 0 && !isNaN(intPosY) && intPosY > 0)
		{
			document.getElementById(objLi.id+'_Span').style.left = findPosX(objLi) +160+"px";
			document.getElementById(objLi.id+'_Span').style.top = findPosY(objLi) +5+"px";
			document.getElementById(objLi.id+'_Span').style.visibility="visible";
		}
	}
		
}
function hideSub(objLi)
{
	if(document.getElementById(objLi.id+'_Span'))
		document.getElementById(objLi.id+'_Span').style.visibility="hidden";
}

/*Enlevé car cause des problèmes lors de la conversion des accents en UTF/ISO/ché pas trop
function RemoveAccents(strTexte)
{
	var Accents = 'ÀÂÄÉÈÊËÎÏÖÔÛÜÙÇàâäéèêëïïöôûüùç ';
	var NoAccents = 'AAAEEEEIIOOUUUCaaaeeeeiioouuuc_';

	Accents = Accents.split('');
	NoAccents = NoAccents.split('');
	var i=0;
	while(Accents[i])
	{
		 var Reg=new RegExp(Accents[i],'g');
		 strTexte=strTexte.replace(Reg,NoAccents[i]);
		 i++;
	}
	return strTexte;
}       */        

/// Scrolling functions
function pageScroll() {
    	window.scrollBy(0,50); // horizontal and vertical scroll increments
    	scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds
}

function stopScroll() {
    	clearTimeout(scrolldelay);
}

function jumpScroll(intHorizontalTarget,intVerticalTarget) {
   	window.scroll(intHorizontalTarget,intVerticalTarget); // horizontal and vertical scroll targets
}




function getY( oElement )
{
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetTop;
oElement = oElement.offsetParent;
}
return iReturnValue;
}




/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Cyanide_7 |  */
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode; 
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
  }
  return true;
}
