/***************************************************************************************/
/*          DEBUT - FONCTIONS GENERALES                                                */

function writeTextInOpener(fieldName, value, divName, text)
{
  opener.document.forms[0].elements[fieldName].value = value;
  opener.writeText(divName, text);
  self.close();
}

//WEB740
function writeTextInOpenerWithOnchange(fieldName, value, divName, text)
{
  opener.document.forms[0].elements[fieldName].value = value;
  opener.writeText(divName, text);
  opener.document.forms[0].elements[fieldName].onchange();
  self.close();
}

function writeText(divName, text)
{
   // Locate the target DIV block
   myTarget = document.getElementById(divName);
   
   // Store the values extracted from the script
   if(myTarget != null) {
	   myTarget.innerHTML = text;
   }
}	

function writeTextInDocument(thisDocument,divName, text)
{
   // Locate the target DIV block
   myTarget = thisDocument.getElementById(divName);
   
   // Store the values extracted from the script
   if(myTarget != null) {
	   myTarget.innerHTML = text;
   }
}	


function writeTextInField(fieldName1, value1, fieldName2, value2)
{
  opener.document.forms[0].elements[fieldName1].value = value1;
  opener.document.forms[0].elements[fieldName2].value = value2;
  self.close();
}

function newWindow(url, windowName, width, height)
{
	window.open(url, windowName, "status,menubar,scrollbars,resizable,width="+width+",height="+height);
}

function openPopup(url, windowName, width, height)
{
	window.open(url, windowName, "scrollbars,resizable,width="+width+",height="+height);
}

function openPopupWithStatus(url, windowName, width, height)
{
	window.open(url, windowName, "status,scrollbars,resizable,width="+width+",height="+height);
}

function putFocusInto(fieldName)
{
	document.forms[0].elements[fieldName].focus();
}

function validateForm(keycode)
{
	//la touche Entr a le code 13 : 
	if(keycode==13)
	{
		document.forms[0].submit();
	}
}

//fonctions submit
function setNextMethodAndGo(theForm, nextAction)
{
	document.forms[theForm].elements['method'].value = nextAction;
	document.forms[theForm].submit();
	return false;
}

//fonctions submit
function setNextMethodAndGoWithAttribute(theForm, nextAction, attribute)
{
	//alert("getAttribute() : " + attribute) ;
	document.forms[theForm].elements['method'].value = nextAction;
	document.forms[theForm].elements['attribute'].value = attribute;
	document.forms[theForm].submit();
	return false;
}

function selectAndGo(theForm, nextAction, liste)
{
	selectAll(liste);
	setNextMethodAndGo(theForm, nextAction);

 	return false;
}

// Ajoute une valeur dans un champ select
function list_addValue( selectField , sVal , bool) {
        
	n = selectField.options.length;
	selectField.options.length = n + 1;
	selectField.options[n].text = sVal;		
	selectField.options[n].value = sVal;
	selectField.options[n].selected = bool;
        
}
	
// Renvoie la valeur d'un champ select
function getSelectVal( tSelectList ) {
	nSelected = 0;
	tSelected ="";
	nOptions = tSelectList.length;
	
	for(i=0; i < nOptions; i++) {
		if( tSelectList.options[i].selected ){
			nSelected = i;
			break;
		}
	}
	return tSelectList[nSelected].text ;
}
	
// Supprime les éléments sélectionnés d'un select
function list_removeValues(tSelectList) {
	tmpLength = tSelectList.options.length;
	toDelete = new Array();
	k=0;
	for ( i = 0; i < tSelectList.options.length; i++ ) {
		if ( tSelectList.options[i].selected )  {
			toDelete[k]=i;
			k++;
		}
	}
        
	for ( j = toDelete.length ; j >= 0; j-- ) {
		tSelectList.options[toDelete[j]] = null;
	}
}
	
// Tri les éléments d'un select
function list_sortList (arrayIn) {
	for (i = 0; i <= arrayIn.length; i++) {
		j = i;
		for (k = i; k < arrayIn.length; k++) {
			if (arrayIn[k].value < arrayIn[j].value) {
				j = k;
			}
		}
		if (j > i) {
			l = arrayIn[i].value;
			arrayIn[i].text = arrayIn[j].value;
			arrayIn[j].text = l;
		}
	}
}
	
// Compte le nombre d'éléments sélectionnés dans un select
function list_countSelected(tSelectList){
	n=0;
	tmpLength = tSelectList.options.length;
	for ( i = 0; i < tSelectList.options.length; i++ ) {
		if ( tSelectList.options[i].selected )  {
			n++;
		}
	}		
	return n;				
}

// Vérifie qu'une valeur n'existe pas déjà dans la liste
function list_isInList( selectField , sVal) {
       
	bool = false;
	tmpList = selectField;
	tmpLength = tmpList.options.length;
       
	for ( i = 0; i < tmpLength; i++ ) {			
		if (tmpList.options[i].text == sVal) {
			bool = true;
			break;
		}
	}
	return bool;
}
        
// Supprime et copie dans un champ input d'une valeur d'un select
function list_edit(inputSourceField, selectDestinationField,msgErr,msgErr2) {
	var l_bool;
	var l_count;

	l_bool = true ;
	l_count = list_countSelected(selectDestinationField);
	if(inputSourceField.value !="" && l_count != 0) {
		l_bool = confirm(msgErr2);
	}
	
	if(l_bool) {
		if (l_count != 0) {
			if(	l_count != 1) {
				alert(msgErr);
			} else {
					inputSourceField.value = getSelectVal(selectDestinationField);
					list_removeValues(selectDestinationField);	
					list_sortList(selectDestinationField);	
			}
		}	
	}		
}
	
/*
// Sélectionne tous les éléments d'un select
function list_selectAll(tSelectList) {
	if (tSelectList != null) {
alert("1");
		nOptions = tSelectList.length;
alert(nOptions);
		for(i=0; i < nOptions; i++) {
			tSelectList.options[i].selected = true;
		}
	}
else {
alert("2");
}	
}
*/

// Sélectionne tous les éléments d'un select
//si la liste est null ou ne contient pas d'élement on selectionne une option à ""
function list_selectAll(tSelectList) {
	if (tSelectList == null) {
		tSelectList = new Select();
	}
	nOptions = tSelectList.length;
	if(nOptions!=0) {
		for(i=0; i < nOptions; i++) {
			tSelectList.options[i].selected = true;
		}
	}

	else {
		var blankOption = new Option();
		blankOption.value="";
		blankOption.selected="true";
		tSelectList.options[0]=blankOption;
	}
}






// Supprime tous les éléments d'un select
function list_deleteSelected(selectDestinationField) {
	list_removeValues(selectDestinationField);
	list_sortList(selectDestinationField);
}

function addRemove(object1, object2)
{
	var i = 0;
	var value1="";
 	while (i < object1.length) {
  		if (object1.options[i].selected) {
			value1 = object1.options[i].value;
			if (value1 == null || value1=="") {
				value1 = object1.options[i].text;
			}
   			opt = new Option(object1.options[i].text, value1, false, false);
   			object2.options[object2.length] = opt;
   			object1.options[i] = null;
  		}
  		else i++;
 	}

 	return false;
}

function razSelect(object1)
{
 	while (object1.length > 0) {
   		object1.options[0] = null;
 	}

 	return false;
}

function setSelectWithOption(object1, object2)
{
	var i = 0;

	razSelect(object2);
	var value1="";
 	while (i < object1.length) {
  		if (object1.options[i].selected) {
			value1 = object1.options[i].value;
			if (value1 == null || value1=="") {
				value1 = object1.options[i].text;
			}
   			opt = new Option(object1.options[i].text, value1, false, false);
   			object2.options[object2.length] = opt;
   			break;
  		}
  		i++;
 	}

 	return false;
}

function removeWithRaz(object1, object2, object3)
{
	var i = 0;
	var value1="";
 	while (i < object1.length) {
  		if (object1.options[i].selected) {
   			if ( (object3.length > 0) && (object1.options[i].text == object3.options[0].text) ) {
   				razSelect(object3);
   			}
			value1 = object1.options[i].value;
			if (value1 == null || value1=="") {
				value1 = object1.options[i].text;
			}
   			opt = new Option(object1.options[i].text, value1, false, false);
   			object2.options[object2.length] = opt;
   			object1.options[i] = null;
  		}
  		else i++;
 	}

 	return false;
}

function selectAll(liste)
{
	var i;
	if (liste != null) {
	 	for (i = 0; i < liste.length; i++) {
  			liste.options[i].selected = true;
 		}
 	}

 	return false;
}

function deselectAll(liste)
{
	var i;
	if (liste != null) {
	 	for (i = 0; i < liste.length; i++) {
  			liste.options[i].selected = false;
 		}
 	}

 	return false;
}


function fnSubmitQuitter()
{
	parent.location="http://www.calberson.com" ;

}

function openBrWindow(theUrl, winName, features)
{
	secondWindow=window.open(theUrl, winName, features);
}

function fnSuivant()
{

	if (navigator.appName=="Netscape")
		parent.frames[1].history.forward();
	else
		parent.history.forward();

}

function fnPrecedent()
{

	if (navigator.appName=="Netscape")
		parent.frames[1].history.back();
	else
		parent.history.back();

}

function maskHeure(champ)
{

       if(event.keyCode==9) return true;

       if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=16  &&  event.keyCode!=46  &&  !isFlecheKey()  &&  event.keyCode!=8 && (event.keyCode>105 || event.keyCode<96))

       {
                return false;
       }
       else
       {
               if((champ.value.length==2) && event.keyCode!=8 &&  event.keyCode!=46  &&  !isFlecheKey())
               {
                        champ.value = champ.value + ":";
               }

                return true;
       }
}

function isFlecheKey() {
	return (event.keyCode==37 || event.keyCode==39);
}

//WEB337
//permet de remplacer les caractères windows non gérés en ascii (caractères entre 127 et 160 exclus) par leur référence valide :
//ces caractères non valides sont récupérés en javascript avec le code %uXXXX ou XXXX est le numéro unicode en hexadécimal
//et la référence valide est soit &#YYYY; avec YYYY le numéro unicode en décimal soit &#xYYYY le numéro en hexadécimal (x indiquant hexadécimal).
//malheureusement, le numéro en hexadécimal n'est pas interprété dans l'éditeur de Lotus Notes ==> on utilise le code décimal.
function encodeWindowsChar(texte) {
	var prefixe = "%u";
	var temp=escape(texte);
	var index=temp.indexOf(prefixe);
	var result= "";
	var nbHexadecimal = 0;
	while(index != -1){
		nbHexadecimal = eval("0x"+temp.substring(index+2, index+6)); // 0x : suffixe qui indique que le nbre est en hexadecimal
		result=result+temp.substring(0, index)+"&#"+nbHexadecimal.toString(10)+";";
		temp=temp.substring(index+6);	//6 : nb de caractères pour le code javascript d'une lettre :
		index=temp.indexOf(prefixe);
	}
	result=result+temp;

	return unescape(result);
}

//WEB785
//mettre la position du caret/cursor comme un attribut de la textarea/textfield spécifiée (textEl - l'objet textarea/textfield)
function storeCaret (textEl) { 
   	if (textEl.createTextRange) 
     textEl.caretPos = document.selection.createRange().duplicate();
 }
 
 //insèrer le texte spécifié (text) dans le textearea/textField spécifié (textEl) à l'endroit où le curseur est positionné
 function insertAtCaret (textEl,text) {
 	if (textEl.createTextRange && textEl.caretPos) {
	   var caretPos = textEl.caretPos;
	     caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
	         text + ' ' : text;
	 }else{
	     textEl.value  = textEl.value+text;
	 }
 }
 

/*********************************
méthodes utilisées pour gérer le mouse-over sur les images servant de boutons (page sommaire, bandeau...)
********************************/
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/*          FIN - FONCTIONS GENERALES                                                  */
/***************************************************************************************/
 