function show_props(obj, obj_name) {
	var result = ""
	for (var i in obj)
	result += obj_name + "." + i + " = " + obj[i] + "\n"
	return result
}

//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;
}


//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 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);
	}

}

//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 confirmSubmit(Message){
	var agree=confirm(Message);
	if (agree)
		return true ;
	else
		return false ;
}


function Fichier (Chemin,Nom,Type,Plateforme,Annees,Mois,Bilans,_Stations){
	this.Chemin 	= Chemin;
	this.Nom 		= Nom;
	this.Type 		= Type;
	this.Plateforme = Plateforme;
	this.TypeBilan 	= Bilans; // tableau,graphiques
	this.Annees 	= Annees;
	this.Mois 		= Mois;
	this.Stations	= _Stations;

	this.estValidePourMois = function(Mois){
	   	for(this.cpt=0;this.cpt<this.Mois.length;this.cpt++) {
	   		if ( this.Mois[this.cpt]==Mois ) {
	   			return true;
	   		}
		}
		return false;
	}
	this.estValidePourAnnee = function(Annee){
	   	for(this.cpt=0;this.cpt<this.Annees.length;this.cpt++) {
	   		if ( this.Annees[this.cpt]==Annee ) {
	   			return true;
	   		}
		}
		return false;
	}
	this.estValidePourMoisAnnee = function(Mois,Annee){
		if ( this.estValidePourMois(Mois) && this.estValidePourAnnee(Annee) )
			return true;
		else
			return false;
	}
	this.estValidePourPlateforme = function(Plateforme){
	   	for(this.cpt=0;this.cpt<this.Plateforme.length;this.cpt++) {
	   		if ( this.Plateforme[this.cpt]==Plateforme || this.Plateforme[this.cpt]=="ALL" ) {
	   			return true;
	   		}
		}
		return false;
	}

	//permet de detecter l'appartenance d'un bilan a un type
	this.estTypeBilan = function(Type){
	   	if (this.TypeBilan!=null) {
		   	for(this.cpt=0;this.cpt<this.TypeBilan.length;this.cpt++) {
		   		if ( this.TypeBilan[this.cpt]==Type || this.TypeBilan[this.cpt]=="ALL" ) {
		   			return true;
		   		}
			}
		}
		return false;
	}
	this.estValidePourStation = function(Station){
	   	if (this.Stations!=null) {
		   	for(this.cpt=0;this.cpt<this.Stations.length;this.cpt++) {
		   		if ( this.Stations[this.cpt]==Station || this.Stations[this.cpt]=="ALL" ) {
		   			return true;
		   		}
			}
		}
		return false;
	}
	this.naPasDeStations = function(){
		if (!this.Stations) return true;
		if (this.Stations == null) return true;
		if (this.Stations.length == 0) return true;
		return false;
	}
	this.naPasDeMois = function(){
	   	if (this.Mois.length==0) return true;
		return false;
	}

}

