//selectionne tout les elements d'un select
function selectAll(selectObject){
	for (var i=0 ; i<selectObject.length; i++){
		selectObject[i].selected=true;
	}
}
function getSelectValue(SelectObject){
  	m1len = SelectObject.length ;
    for ( i = 0; i<m1len; i++){
        if (SelectObject.options[i].selected == true ) {
            return SelectObject.options[i].value;
        }
    }
}
// selectionne une valeur d'un select
function selectValue(selectObject,valueToSelect){
	for (var i=0 ; i<selectObject.length; i++){
		if (selectObject[i].value==valueToSelect){
			selectObject[i].selected = true;
		}
	}
}
// selectionne une valeur d'un select
function selectValueExist(selectObject,valueToFind){
	for (var i=0 ; i<selectObject.length; i++){
		if (selectObject[i].value==valueToFind){
			return true;
		}
	}
	return false;
}

//deplace vers le haut ou vers le bas un element d'un select
function moveUpDown(SelectFrom,bDir) {
  	var el = SelectFrom;
  	var idx = el.selectedIndex
  	if (idx==-1) {
	    alert("You must first select the item to reorder.")
  	} else {
	    var nxidx = idx+( bDir? -1 : 1)
    	if (nxidx<0) nxidx=el.length-1
    	if (nxidx>=el.length) nxidx=0
    	var oldVal = el[idx].value
    	var oldText = el[idx].text
    	el[idx].value = el[nxidx].value
    	el[idx].text = el[nxidx].text
    	el[nxidx].value = oldVal
    	el[nxidx].text = oldText
    	el.selectedIndex = nxidx
  	}
}

//transfert une ou plusieurs données d'un select a un autre
function putValue(SelectFrom,SelectTo,All) {
	m1 = SelectFrom;
	m2 = SelectTo;
   	if (All=="All")
   		selectAll(m1);
	
    m1len = m1.length ;
    for ( i=0; i<m1len ; i++){
        if (m1.options[i].selected == true ) {
	 		m2.options[m2.length] = new Option(m1.options[i].text, m1.options[i].value);//oOption;
       }
    }

}
//ajoute une option dans un select
	function addValueToSelect(SelectTo,SelectValue,SelectText,isSelected) {
		//alert ("adding : "+SelectValue+" -> "+SelectText+" "+SelectTo.length);
		try{
			var oOption = document.createElement("OPTION");
			SelectTo.options.add(oOption);
			oOption.text = SelectText;
			oOption.value = SelectValue;
			oOption.selected = isSelected;
			return;
		} catch (error){
			alert("Une exception a eu lieu !"+"\n"+"Nom de l'exception : " + error.name+"\n"+"Message d'erreur reçu : " + error.message);
			var oOption = document.createElement("OPTION");
			SelectTo.options.add(oOption);
			oOption.innerText = SelectText;
			oOption.value = SelectValue;
		}
		//if (isSelected)
	}

//efface un element d'un select
function removeSelectedValue(selectObject){
    selectObjectLen = selectObject.length ;
    for ( i = (selectObjectLen -1); i>=0; i--){
        if (selectObject.options[i].selected) {
            selectObject.options[i] = null;
        }
    }

}

//efface un element d'un select
function removeAllSelectValue(selectObject){
    selectAll(selectObject);
    removeSelectedValue(selectObject);

}
//efface un element d'un select
function removeSelectValue(selectObject,selectKey){
	selectObjectLen = selectObject.length ;
    for ( i = (selectObjectLen -1); i>=0; i--){
        if (selectObject.options[i].value == selectKey ) {
            selectObject.options[i] = null;
        }
    }

}
function updateSelectValue(selectObject,selectKey,newText){
	selectObjectLen = selectObject.length ;
    for ( i = (selectObjectLen -1); i>=0; i--){
        if (selectObject.options[i].value == selectKey ) {
            selectObject.options[i].text = newText;
        }
    }
}


function displayIT(selectObject,whichEl,valueToFind){
    selectObjectLen = selectObject.length ;
    TempDIVLIB = eval(""+whichEl);
    for ( i=0 ; i<selectObjectLen ; i++){
        if (selectObject.options[i].selected){
        	if( selectObject.options[i].value == valueToFind){
				showIt(TempDIVLIB);
        	}else{
       	 		hideIt(TempDIVLIB);
        	}
       	}
    }
}

function getChecked(obj){
	var valeur = "";
		for (var i=0; i<obj.length; i++){
			if (obj[i].checked==true) {
				valeur=obj[i].value
			}
		}
	return valeur;
}

function changeUrl(selectObject,iFrameName){
	for (var i=0 ; i<selectObject.length ; i++ ){
		if (selectObject.options[i].selected){
			changeIFrameUrl(iFrameName,selectObject.options[i].value)
		}
	}
}

function changeIFrameUrl (iFrameName,Url){
	document.getElementById(iFrameName).src=Url;
}


function fillSelectWithElemArray(selectObject,ElemArray){
    removeAllSelectValue(selectObject);
	completeSelectWithElemArray(selectObject,ElemArray);
}
//permet de remplir un select avec les objet Elem dans une Array ElemArray
function completeSelectWithElemArray(selectObject,ElemArray){
	if (ElemArray=="") return;
    for( var cpt=0;cpt<ElemArray.length;cpt++){
		CurElem = ElemArray[cpt];
		addValueToSelect( selectObject , CurElem.value , CurElem.text , CurElem.isSelected );
   	}
}
function fillSelectWithElemArrayAndSelect(selectObject,ElemArray,IdToSelect){
    removeAllSelectValue(selectObject);
	if (ElemArray=="") return;
   	for( var cpt=0;cpt<ElemArray.length;cpt++){
		CurElem = ElemArray[cpt];
		if (CurElem.value == IdToSelect){ 
			CurElem.isSelected = true;
		} else {
			CurElem.isSelected = false;
		}
		addValueToSelect( selectObject , CurElem.value , CurElem.text , CurElem.isSelected );
   	}
}

function removeAllSelectValue(selectObject){
    selectObjectLen = selectObject.length ;
    for ( i = (selectObjectLen -1); i>=0; i--){
    	selectObject.options[i] = null;
    }
}

function Elem (Valeur,Texte){
	this.value 		= Valeur;
	this.text 		= Texte;
	this.isSelected = false;
	this.subElem 	= new Array();
	this.addSubElem = function(Elem){
		this.subElem.push(Elem);
	}
	this.showSubElem = function(){
	   	var Report="";
	   	for(this.cpt=0;this.cpt<this.subElem.length;this.cpt++)
	   		Report += this.subElem[this.cpt].value+" -> "+this.subElem[this.cpt].text+"\n";
		alert(Report);
	}
}

function ElemList (){
	this.ElemArray = new Array();
	this.addElem = function(TypeDonnees){
		this.ElemArray.push(TypeDonnees);
	}
	this.showElemArray = function(){
	   	var Report="";
	   	for(this.cpt=0;this.cpt<this.ElemArray.length;this.cpt++)
	   		Report += this.ElemArray[this.cpt].value+" -> "+this.ElemArray[this.cpt].text+"\n";
		alert(Report);
	}

}

function getDateFR(Annee,Mois,Jour){
	//alert("Annee "+Annee+"  Mois "+Mois+" Jour "+Jour);
	var d = new Date(Annee,(Mois-1),Jour);
	var weekday=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
	var monthname=new Array("Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
	laDate = weekday[d.getDay()]+" ";
	laDate += d.getDate()+" ";
	laDate += monthname[d.getMonth()]+" ";
	laDate += d.getFullYear();
	return laDate
}
function PutFRDateInSpanFromSelect(DestSpan,EndField){
	//alert("document.getElementById('JOUR_"+EndField+"');");
	SelectJObject = eval("document.getElementById('JOUR_"+EndField+"');");
	SelectMObject = eval("document.getElementById('MOIS_"+EndField+"');");
	SelectAObject = eval("document.getElementById('ANNEE_"+EndField+"');");
	var jour = getSelectValue(SelectJObject);
	var mois = getSelectValue(SelectMObject);
	var annee = getSelectValue(SelectAObject);
	document.getElementById(DestSpan).innerHTML=getDateFR(annee,mois,jour);
}
function PutFRDateInSpanFromDDMMYYYY(DestSpan,SourceField){
	splitString = SourceField.value.split("/");
	var annee = splitString[2];
	var mois = splitString[1];
	var jour = splitString[0];
	document.getElementById(DestSpan).innerHTML=getDateFR(annee,mois,jour);
}


//Gestion de l'affichage et cachage de span
function showIt(whichEl){
    whichEl.style.display = "inline";
}
function hideIt(whichEl){
    whichEl.style.display = "none";
}
function ShowHideIt(check,whichEl){
    if (check.checked){
   		whichEl.style.display = "inline";
	} else {
	    whichEl.style.display = "none";
	}
}
function ShowOrHideElement(IdElement) {
	var curElement = document.getElementById(''+IdElement);
	if (curElement.style.display=='none'){
		curElement.style.display='block';
	} else {
		curElement.style.display='none';
	}
}
function ShowElement(IdElement){
	var curElement = document.getElementById(IdElement);
	curElement.style.display='block';
}
function HideElement(IdElement){
	var curElement = document.getElementById(IdElement);
	curElement.style.display='none';
}

function checkAll(checked,matchpattern){
	if (document.getElementById && document.createTextNode){
		var inputs=document.getElementsByTagName('input');
		//alert("checkAll("+checked+","+matchpattern+")"+"\n"+"fournd:"+inputs.length);
		for (var i=0;i<inputs.length;i++){
			if (inputs[i].type=="checkbox" ){
				var name = inputs[i].name
				if (name.match(matchpattern)){
					//alert("Evaluating : "+inputs[i].name);
					inputs[i].checked=checked;
				}
			}
		}
	}
}

function confirmSubmit(Message){
	var agree=confirm(Message);
	if (agree)
		return true ;
	else
		return false ;
}

function ajouterFavoris(titre, url) {
	if ( navigator.appName != 'Microsoft Internet Explorer' ) {
		window.sidebar.addPanel(titre,url,""); 
	}
	else { 
		window.external.AddFavorite(url,titre); 
	} 
}


