/** Fonctions JavaScript */

/**
 * Changement d'image par l'id.
 */
function ChangeImgById(id, imgUrl)
{
	var thisImg = window.document.getElementById(id);
	thisImg.setAttribute("src", imgUrl);
	return true;
}

/**
 * Donner le focus &agrave; un &eacute;l&eacute;ment.
 */
function SetFocus(name)
{
	var thisFocus = window.document.getElementsByName(name).item(0);
	thisFocus.focus();
	return true;
}

/**
 * Affiche une pop-up de confirmation pour rediriger vers l'url d'action,
 * exemple pour supprimer un element.
 */
function Go2Url(msg, urldest)
{
	var test = confirm(msg);
	if(test)
	{
		window.location.href = urldest;
		return true;
	}
	else
	{
		return false;
	}
}

/**
 * Retourne la date en francais
 */
function dateEn2Fr(dateEn)
{
	var newValue = dateEn.split("-");
	var dateFr = newValue[2] + "-" + newValue[1] +"-" + newValue[0];
	return dateFr;
}

/**
 * Retourne la date en englais
 */
function dateFr2En(dateFr)
{
	var newValue = dateFr.split("-");
	var dateEn = newValue[2] + "-" + newValue[1] +"-" + newValue[0];
	return dateEn;
}

/**
 * V?rifie sur une case ? cocher est coch?e.
 */
function isChecked(ob)
{
	if(document.all)
	{
		if( ob.checked )
		{
			document.all.numrmi.style.display = 'block';
		}
		else
		{
			document.all.numrmi.style.display = 'none';
		}
	}
	else if(!document.all && document.getElementById)
	{
		if( ob.checked )
		{
			document.getElementById('numrmi').style.display = 'table-row';
		}
		else
		{
			document.getElementById('numrmi').style.display = 'none';
		}
	}
}

// Correctly handle PNG transparency in Win IE 5.5 or higher.
// http://homepage.ntlworld.com/bobosola. Updated 02-March-2004

function correctPNG()
{
   for(var i=0; i<document.images.length; i++)
   {
	  var img = document.images[i]
	  var imgName = img.src.toUpperCase()
	  if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
	  {
		 var imgID = (img.id) ? "id='" + img.id + "' " : ""
		 var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		 var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
		 var imgStyle = "display:inline-block;" + img.style.cssText
		 if (img.align == "left") imgStyle = "float:left;" + imgStyle
		 if (img.align == "right") imgStyle = "float:right;" + imgStyle
		 if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
		 var strNewHTML = "<span " + imgID + imgClass + imgTitle
		 + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	     + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		 + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
		 img.outerHTML = strNewHTML
		 i = i-1
	  }
   }
}

/**
 * Vide le contenu d'un ?l?ment.
 */
function clearElementById(myId)
{
	document.getElementById(myId).innerHTML = "";
}

/**
 * enleve tout caracteres superflus et ne garde que les chiffres.a utiliser avec onkeyup.
 * ex 654df45df45   ->6544545
 */
function forceDate(num)
{
	var id=0;
	var strTmp="";
	var charTmp="";
	num=num.toString();
	for (id=0;id<num.length;id++)
	{
		charTmp=num.charAt(id);
		if(charTmp<='9' && charTmp>='0')
		strTmp=strTmp+charTmp;
	}
	return strTmp;
}

/**
 * Permet de formater la date avec une saisie assist?e : 31022006 => 31-02-2006
 */
function formatDateAuto(textBox)
{
	var tmpDate = textBox.value;
	tmpDate = forceDate(tmpDate);
	tmpDate = tmpDate.toString();
	tmpDate = tmpDate.replace("/\//i", "");
	tmpDate = tmpDate.replace("/-/i", "");
	var tmp1 = tmpDate.substr(0,2);
	var tmp2 = tmpDate.substr(2,2);
	var tmp3 = tmpDate.substr(4,4);
	textBox.value = tmp1 + "-" + tmp2 + "-" + tmp3;
	return true;
}

/**
 *
 */
function verifDate(textBox)
{
	var myVal = textBox.value;
    if (myVal != '')
    {
        if(myVal.indexOf("-") != 2 || myVal.lastIndexOf("-") != 5)
        {
            alert("Le format de la date est \"jj-mm-yyyy\".");
            var el = document.getElementById(textBox.getAttribute("id"));
            el.focus()
            el.select();
        }
    }
}
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);

/**
 * affiche un ?l?ment ? l'endroit voulu
 */
function showDivId(elementId, e)
{


	var tempX;
	var tempY;
	var IE = document.all?true:false;
	if (IE)
	{ // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}
	else
	{  // grab the x-y pos.s if browser is NS
    	tempX = e.pageX;
    	tempY = e.pageY;
	}
	//if ( arguments.length < 2 ) e = event;
	document.getElementById(elementId).style.display = "block";
	document.getElementById(elementId).style.position = "absolute";
	document.getElementById(elementId).style.top = tempY + 'px';
	document.getElementById(elementId).style.left = tempX + 'px';
	//alert('X : ' + x + ' - Y : ' + y);
	//document.getElementById(elementId).setAttribute("", );
}

/**
 * Function WebDev10
 */
// Liste des messages d'erreurs qui peuvent ?tre affich?s :
var sErreur = "La valeur saisie est incorrecte.";

///////////////////////////////////////////////////////////////////////
function bIsNetscape()
{
	return ( navigator.appName=="Netscape" )
}
///////////////////////////////////////////////////////////////////////
function bIsExplorer()
{
	return ( navigator.appName=="Microsoft Internet Explorer" )
}
///////////////////////////////////////////////////////////////////////
function bIsLetter (c)
{   return ( ((c >= "a") && (c <= "z")) ||
			 ((c >= "A") && (c <= "Z")) ||
			 ( c == "?" ) || ( c == "?" ) || ( c == "?" ) ||
			 ( c == "?" ) || ( c == "?" ) || ( c == "?" ) ||
			 ( c == "?" ) || ( c == "?" ) ||
			 ( c == "?" ) || ( c == "?" ) ||
			 ( c == "?" ) || ( c == "?" ) || ( c == "?" ) ||
			 ( c == "?" ) )
}
///////////////////////////////////////////////////////////////////////
function bIsDigit (c)
{	return ( (c >= "0") && (c <= "9") )	}
///////////////////////////////////////////////////////////////////////
function bIsSepTel(c)
{	return ( ( c == " " ) || ( c == "/" ) || ( c == "\\" ) || ( c == "." ) )		}
///////////////////////////////////////////////////////////////////////
function bIsSymbol(c)
{	return ( ( c == "," ) || ( c == "." ) || ( c == "+" ) || ( c == "-" ) || ( c == " " ) || ( c == "*" ) || ( c == "/" ) )		}
///////////////////////////////////////////////////////////////////////
function bIsControl(c)
{	return ( c < " " )		}
///////////////////////////////////////////////////////////////////////
function bIsSigne(c)
{	return (c=="+") || (c=="-")	}
///////////////////////////////////////////////////////////////////////
function ValRetIE(evt,test)
{
	if (test || (evt.keyCode == 13))
	{
		return evt.keyCode;
	}
	return test;
}

///////////////////////////////////////////////////////////////////////
function Completion(evt,sep)
{
	var champ = null;
	var car = null;
	var pos = 0;
	if (bIsExplorer())
	{
		car = evt.keyCode;
		champ = evt.srcElement;
	}
	else if (bIsNetscape())
	{
		car = evt.which;
		champ = evt.target;
		if (champ.selectionStart == null) return;
	}
	if ((champ == null) || (car == null) || (bIsControl(car = String.fromCharCode(car))) || (car == sep) || (champ.value == null) || ((champ.value.length != 2) && (champ.value.length != 5))) return;
	champ.value += sep;
}
///////////////////////////////////////////////////////////////////////
function VerifRegExp(Champ,sRegExp)
{
	if ( parseInt(navigator.appVersion) >= 4 )
	{
		// on cr?e l'objet expression r?guli?re ? partir de la cha?ne :
		regExp = new RegExp(sRegExp);
		// on test si la valeur du champ est ok :
		var test = (Champ.value == "") || regExp.test(Champ.value);
		if ( ! test )
		{	// si non, on averti l'utilisateur :
			alert( sErreur );

			if ( bIsExplorer() )
				Champ.style.color=0xff0000;
			Champ.focus();
		}
		else
		{
			if ( bIsExplorer() )
				Champ.style.color=0x000000;
		}
	}
	return true;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
// handler pour le masque "tout en majuscules" :
function ToutEnMaj(evt)
{
	var car;
	// code diff?rent pour netscape et ie :
	if ( bIsNetscape() )
	{	// conversion code ascii -> caract?re :
		car = String.fromCharCode(evt.which);
		// est-ce que c'est une lettre minuscule :
		if ( ( car>='a' ) && ( car<='z') )
		{	// oui => on la convertit en majuscule :
			evt.which = escape(car.toUpperCase());
			// et on se l'envoie :
			evt.target.handleEvent(evt);
			// mais on n'accepte pas la minuscule courante :
			//return false;
		}
	}
	if ( bIsExplorer() )
	{	// conversion en caract?re :
		car = String.fromCharCode(evt.keyCode);
		// puis passage en majuscule et code ascii :
		evt.keyCode = car.toUpperCase().charCodeAt(0);
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function ToutEnMin(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		if ( ( car>='A' ) && ( car<='Z') )
		{
			evt.which = escape(car.toLowerCase());
			evt.target.handleEvent(evt);
//			return false;
		}
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.keyCode = car.toLowerCase().charCodeAt(0);
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function Lettre(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		// on accepte la touche si c'est bien une lettre :
		return bIsLetter(car) || bIsControl(car);
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		// on accepte la touche si c'est bien une lettre :
		evt.returnValue = ValRetIE(evt,bIsLetter(car));
	}

	return true;
}

///////////////////////////////////////////////////////////////////////

function LettreChiffre(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return bIsLetter(car) || bIsDigit(car) || bIsControl(car) ;
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsLetter(car) || bIsDigit(car));
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function Chiffre(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return ( bIsDigit(car) || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsDigit(car));
	}

	return true;
}

///////////////////////////////////////////////////////////////////////

function LettreMaj(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		// conversion en majuscule :
		car = car.toUpperCase();
		// on laisse passer les caract?res de controles :
		if ( bIsControl(car) )
			return true;
		// et on refuse tout ce qui n'est pas majuscule :
		if ( ( car<'A' ) || ( car>'Z') )
			return false;
	}
	if ( bIsExplorer() )
	{	// on r?cup?re le caract?re frapp? :
		car = String.fromCharCode(evt.keyCode);
		// conversion en majuscule :
		car = car.toUpperCase();
		// est-ce que c'est bien une majuscule ?
		if ( ( car >='A' ) && ( car <='Z' ) )
			// ok : on renvoi son code ascii :
			evt.keyCode = car.charCodeAt(0);
		else
			// sinon, on refuse :
			evt.returnValue = false;
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function LettreMajChiffre(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		// conversion en majuscule :
		car = car.toUpperCase();
		// on laisse passer les caract?res de controles :
		if ( bIsControl(car) )
			return true;
		// et on refuse tout ce qui n'est pas majuscule :
		if ( ( ( car<'A' ) || ( car>'Z') ) &&
			 ( ! bIsDigit(car) ) )
			return false;
	}
	if ( bIsExplorer() )
	{	// on r?cup?re le caract?re frapp? :
		car = String.fromCharCode(evt.keyCode);
		// conversion en majuscule :
		car = car.toUpperCase();
		// est-ce que c'est bien une majuscule ?
		if ( ( ( car >='A' ) && ( car <='Z' ) ) ||
			 ( bIsDigit(car) ) )
			// ok : on renvoi son code ascii :
			evt.keyCode = car.charCodeAt(0);
		else
			// sinon, on refuse :
			evt.returnValue = false;
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function NumTel(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return bIsSepTel(car) || bIsDigit(car) || bIsControl(car);
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsSepTel(car) || bIsDigit(car));
	}

	return true;
}

///////////////////////////////////////////////////////////////////////

function ChiffreSymbol(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return bIsSymbol(car) || bIsDigit(car) || bIsControl(car);
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsSymbol(car) || bIsDigit(car));

	}
	return true;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////

function ChiffreSigne(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return ( bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPMILLIER_) || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsDigit(car) || bIsSigne(car)  || (car==_WW_SEPMILLIER_));
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function ChiffreVirgule(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return ( bIsDigit(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsDigit(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || (car==","));
	}
	return true;
}

///////////////////////////////////////////////////////////////////////

function ChiffreSigneVirgule(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return ( bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || (car==","));
	}
	return true;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////

function HHMM(evt)
{
	var car;
	var res = true;
	var complete = true;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		complete = res = ( bIsDigit(car) || (car==":") || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsDigit(car) || (car==":"));
	}
	if (complete) Completion(evt,":");
	return res;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////

function JJMMAA(evt)
{
	var car;
	var res = true;
	var complete = true;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		complete = res = ( bIsDigit(car) || (car=="-") || bIsControl(car) );
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		complete = evt.returnValue = ValRetIE(evt,bIsDigit(car) || (car=="-"));
	}
	if (complete) Completion(evt,"-");
	return res;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////

function Euro(evt)
{
	var car;

	if ( bIsNetscape() )
	{
		car = String.fromCharCode(evt.which);
		return bIsLetter(car) || bIsDigit(car) || (car==_WW_SEPMILLIER_) || (car==_WW_SEPDECIMAL_) || bIsControl(car);
	}
	if ( bIsExplorer() )
	{
		car = String.fromCharCode(evt.keyCode);
		evt.returnValue = ValRetIE(evt,bIsLetter(car) || bIsDigit(car) || (car==_WW_SEPMILLIER_) || (car==_WW_SEPDECIMAL_));
	}
	return true;
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////