/*********************************************/
///    Fichier:        functions.js
///    Type:           Fichier de Script
///    Language:       Javascript
///
///    Auteur:         Arthur Carré
///    Date:           Aout 2006
///
///    Description:    
///        Fichier contenant les fonctions générale en 
///        javascript.
///
///
/*******************************************/

function fullScreen() {
	this.moveTo(0,0);
	this.resizeTo(screen.availWidth,screen.availHeight);
}

function trim(value) { return value.replace(/^\s*|\s*$/g,""); }
	
function charCount(value)
	{
	var rx = /[A-Za-z]/;
	var liCount = 0;
	for (liI=0;liI<value.length;liI++)
		{
		if (rx.exec(value.charAt(liI)))
			liCount++;
		
		}
	return liCount;
	}

function removeAllChilds(parentNode) 
	{
	try 
		{
		while (document.getElementById(parentNode).childNodes.length > 0) 
			{
			document.getElementById(parentNode).removeChild(document.getElementById(parentNode).childNodes[0]);
			}
		setHeightMenuDynamique();
		}
	  catch(e)
		{
		
		}
	}
	
// Fonction de traitement du query string

//Created by Tittle Joseph, TittleJoseph@yahoo.com, jtittle@pisoftek.com, India
//Do not modify any content without permission of author
//Change or Replace a querystring value from a action 
//Eg alert('x.asp?Name=Joe+Jose&Age=25&Class=IVth'+'\n\n'+ChangeQueryStringValue('x.asp?Name=Joe+Jose&Age=25&Class=IVth','Name','Peter Paul'));
//Eg alert('x.asp?Age=25&Name=Joseph+John&Class=IVth'+'\n\n'+ChangeQueryStringValue('x.asp?Age=25&Name=Peter+Paul&Class=IVth','Name','Peter Paul'));
//Eg alert('x.asp'+'\n\n'+ChangeQueryStringValue('x.asp','Name','Peter Paul'));
//Eg alert(location.href+'\n\n'+ChangeQueryStringValue(location.href,'MoveTo','X.asp'));
function ChangeQueryStringValue(action,qsname,qsvalue)
{
	if (action.indexOf('?') == -1 )	 //If no querystring present
		return (action+"?"+qsname+"="+UrlEncode(qsvalue)); //x.asp?Name=Peter+Paul
	else
	{		
		if ( (action.indexOf("?"+qsname+"=") == -1 ) && (action.indexOf("&"+qsname+"=") == -1 ) )  //Passed querystring not already present		
		{
			return (action+"&"+qsname+"="+UrlEncode(qsvalue)); //x.asp?Age=25&Name=Peter+Paul;
		}
		else //Passed Querystring already present, replace it no matter if it is ?Name= or &Name=
		{
			var replaceQSPrefix=(action.indexOf("?"+qsname+"=")==-1)?"&"+qsname+"=":"?"+qsname+"=";
			var replaceQSSuffix=""; //This will be John in case of ?Name=John or &Name=John 
			startpos=action.indexOf(replaceQSPrefix);
			
			for (a=(startpos+replaceQSPrefix.length);a<action.length;a++)
			{
				if ( action.charAt(a)=='&' ) //Next querystring beginning
					break;
				else
					replaceQSSuffix += action.charAt(a);
			}
			newaction=action.replace(replaceQSPrefix+replaceQSSuffix,replaceQSPrefix+UrlEncode(qsvalue));
			return newaction;
		}	
	}		
}


function UrlEncode(text) 
{		
	text=ReplaceAll(text, "?", "%3F");
	text=ReplaceAll(text, "=", "%3D");
	text=ReplaceAll(text, "&", "%26");
	text=ReplaceAll(text, " ", "+");
	text=ReplaceAll(text, ",", "%2c");	
	
	return text;
}


//Replace all given string from a string
function ReplaceAll(varb, replaceThis, replaceBy)
{	
	newvarbarray=varb.split(replaceThis);
	newvarb=newvarbarray.join(replaceBy);	
	return newvarb;
}

function process(lang)
{
window.location.href = ChangeQueryStringValue(window.location.href ,'lang' ,lang);
}

function getWindowHeight() {
    var windowHeight=0;
    if (typeof(window.innerHeight)=='number') {
        windowHeight=window.innerHeight;
    }
    else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
			}
		else {
			if (document.body&&document.body.clientHeight) {
				windowHeight=document.body.clientHeight;
				}
			}
		}
	return windowHeight;
	}

function champSuivant(enCours, suivant, limite, myEvent) {
	var keyChar = 0;

	if (is_ie) { keyChar = myEvent.keyCode; }
	else { keyChar = myEvent.which; }

	if ( (enCours.value.length == limite) && (keyChar >= 48 && keyChar <= 57) ) {
		document.getElementById(suivant).focus();
		document.getElementById(suivant).select();
	}
}

function numbersOnly(myEvent) {
	var keyOk = true;
	var keyChar = 0;

	if (is_ie) { keyChar = myEvent.keyCode; }
	else { keyChar = myEvent.which; }
	
	if ( (keyChar >= 48 && keyChar <= 57) || (keyChar == 8) || (keyChar == 13) || (keyChar == 0) ) { keyOk = true; }
	else { keyOk = false; }
	
	//retourne la réponse
	if (keyOk) {
		if (is_ie) { myEvent.returnValue = myEvent }
		else return myEvent;
	}
	else {
		if (is_ie) { myEvent.returnValue = false }
		else return false;
	}
}

function numbersOnlyNoZero(myEvent) {
	var keyOk = true;
	var keyChar = 0;

	if (is_ie) { keyChar = myEvent.keyCode; }
	else { keyChar = myEvent.which; }
	
	if ( (keyChar >= 49 && keyChar <= 57) || (keyChar == 8) || (keyChar == 13) || (keyChar == 0) ) { keyOk = true; }
	else { keyOk = false; }
	
	//retourne la réponse
	if (keyOk) {
		if (is_ie) { myEvent.returnValue = myEvent }
		else return myEvent;
	}
	else {
		if (is_ie) { myEvent.returnValue = false }
		else return false;
	}
}

function execRecherche(myEvent) {
	//Determine c'est la touche «Entrée» ou 13
	if (is_ie) { if (myEvent.keyCode == 13) { hidePatronymes(); showResult(0, false); }	}
	else { if (myEvent.which == 13) { hidePatronymes(); showResult(0, false); }	}
}


//----------------------------------------------------------------------------------
// Fonctions de gestion des cookies d'après http://www.actulab.com/les-cookies-en-javascript.php
// Attention: Ne pas modifier ces fonctions
// La personnalisation se fait dans les scripts d'appel de ces fonctions
//----------------------------------------------------------------------------------
function EcrireCookie(nom, valeur) {
   var argv=EcrireCookie.arguments;
   var argc=EcrireCookie.arguments.length;
   
   //var expires=(argc > 2) ? argv[2] : null;
  var expires = new Date();
  expires.setTime(expires.getTime() + (1 * 24 * 3600 * 1000));
   
   var path=(argc > 3) ? argv[3] : null;
   var domain=(argc > 4) ? argv[4] : null;
   var secure=(argc > 5) ? argv[5] : false;
   document.cookie=nom+"="+escape(valeur)+
      ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
      ((path==null) ? "" : ("; path="+path))+
      ((domain==null) ? "" : ("; domain="+domain))+
      ((secure==true) ? "; secure" : "");
}

function getCookieVal(offset) {
   var endstr=document.cookie.indexOf (";", offset);
   if (endstr==-1) endstr=document.cookie.length;
   return unescape(document.cookie.substring(offset, endstr));
}

function LireCookie(nom) {
   var arg=nom+"=";
   var alen=arg.length;
   var clen=document.cookie.length;
   var i=0;
   while (i<clen)
   {
      var j=i+alen;
      if (document.cookie.substring(i, j)==arg) {
		return getCookieVal(j);
		}
      i=document.cookie.indexOf(" ",i)+1;
      if (i==0) break;
   }
   return null;
}

function EffaceCookie(nom) {
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
	}


//--------------------------------------------------------------------------
// JavaScript Find Position
// http://blog.firetree.net/2005/07/04/javascript-find-position/
//--------------------------------------------------------------------------
function findPosX(obj) {
	var curleft = 0;
    if(obj.offsetParent) {
        while(1) {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent) break;
          obj = obj.offsetParent;
        }
    }
    else if(obj.x) curleft += obj.x; return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if(obj.offsetParent) {
        while(1) {
          curtop += obj.offsetTop;
          if(!obj.offsetParent) break;
          obj = obj.offsetParent;
        }
    }
    else if(obj.y) curtop += obj.y; return curtop;
}

/* Retire un item dans un array */
function removeArrayItem(fArray, fItem) {
	var i = 0;
	while (i < fArray.length) {
		if (fArray[i] == fItem) { fArray.splice(i, 1); }
		else { i++;	}
		}
	return fArray;
	}
	
function getBonsEnBanque(){
	var url = 'getBonsEnBanque.aspx?type=0';
	var pars = '';
	var myAjax = new Ajax.Updater('lblBonsEnBanque', url, {method: 'get', parameters: pars} );
}
