function is_numeric(val){
    return typeof val != "boolean" && val !== null && !isNaN(+ val);

    if(val == undefined || val == '')
        return false ;
    var exp = new RegExp("^[0-9-.]*$","g");
    return exp.test(val);
}
function getFloat(x) {
    if (typeof(x) == 'string') {
        x = x.replace(",",".");
    }
    return parseFloat(x);
}
function convertdebit(){
    densiteA = getFloat(document.getElementById('massevolA').value) ;
    densiteB = getFloat(document.getElementById('massevolB').value) ;
    debitA = getFloat(document.getElementById('debitA').value) ;
    if(!is_numeric(densiteA) || !is_numeric(densiteB)  || !is_numeric(debitA)){
        alert('Veuillez renseigner tous les champs');
        return ;
    }
    if(densiteB == 0){
        alert('La densité ne peut être nule');
    }
    var debitB = roundFloat(debitA * Math.sqrt(densiteA/densiteB));
    document.getElementById('debitB').value=debitB ;
}

function roundFloat(x) {
	x = parseFloat(x);
	if ( (x>0 && (x >= 100000 || x < 0.0001)) || (x<0 && (x <= -100000 || x > -0.0001))) {return x.toExponential(3);}
	else {
		if(x>0){
			if (x >= 100) return x.toFixed(2);
			if (x < 100) return x.toFixed(6);
		}else{
			if (x <= 100) return x.toFixed(2);
			if (x > 100) return x.toFixed(6);
		}
	}
}

function selgaz(id, lettre){
    if(!lettre)
        lettre = 'A';
    if(id == 'symbole'){
        document.getElementById('gazid'+lettre+'_nom').style.display = "none";
        document.getElementById('gazid'+lettre+'_'+id).style.display = "inline";
        document.getElementById('massevol'+lettre).className = "resultats" ;
        document.getElementById('massevol'+lettre).setAttribute("readOnly","readOnly") ;
        document.getElementById('massevol'+lettre).value =  gaztabFormule[document.getElementById('gazid'+lettre+'_'+id).value].densite;
    }else if(id == 'nom'){
        document.getElementById('gazid'+lettre+'_symbole').style.display = "none";
        document.getElementById('gazid'+lettre+'_'+id).style.display = "inline";
        document.getElementById('massevol'+lettre).className = "resultats" ;
        document.getElementById('massevol'+lettre).setAttribute("readOnly","readOnly") ;
        document.getElementById('massevol'+lettre).value =  gaztab[document.getElementById('gazid'+lettre+'_'+id).value].densite;
    }else if(id == 'manuelle'){
        document.getElementById('gazid'+lettre+'_symbole').style.display = "none";
        document.getElementById('gazid'+lettre+'_nom').style.display = "none";
        document.getElementById('massevol'+lettre).className = "" ;
        document.getElementById('massevol'+lettre).removeAttribute("readOnly") ;
    }
}

function trigazNom(a, b){
    if(a.nom > b.nom)
        return 1 ;
    if(a.nom < b.nom)
        return -1 ;
    return 0 ;
}
function trigazFormule(a, b){
    if(a.formule > b.formule)
        return 1 ;
    if(a.formule < b.formule)
        return -1 ;
    return 0 ;
}

var gaztabFormule = gaztab.slice(0);
gaztabFormule = gaztabFormule.sort(trigazFormule);
gaztab = gaztab.sort(trigazNom);

function writeSelects(){
    var elem = new Array();
    elem[0] = document.getElementById('gazidA_symbole') ;
    elem[1] = document.getElementById('gazidB_symbole') ;

    for (var i=0; i<gaztabFormule.length; i++) {
        opt = new Option(gaztabFormule[i].formule + ' (' + gaztabFormule[i].nom +')', i);
        optB = new Option(gaztabFormule[i].formule + ' (' + gaztabFormule[i].nom +')', i);
        elem[0].options[elem[0].length] = opt ;
        elem[1].options[elem[1].length] = optB ;
    }
    elem[0].options[0].selected=true ;
    elem[1].options[0].selected=true ;
    document.getElementById('massevolA').value =  gaztabFormule[0].densite;
    document.getElementById('massevolB').value =  gaztabFormule[0].densite;

    elem[0] = document.getElementById('gazidA_nom') ;
    elem[1] = document.getElementById('gazidB_nom') ;

    for (var i=0; i<gaztab.length; i++) {
        opt = new Option(gaztab[i].nom + ' (' + gaztab[i].formule +')', i);
        optB = new Option(gaztab[i].nom + ' (' + gaztab[i].formule +')', i);
        elem[0].options[elem[0].length] = opt ;
        elem[1].options[elem[1].length] = optB ;
    }

    elem[0].options[0].selected=true ;
    elem[1].options[0].selected=true ;
}