/*
Fonctions permettant d'afficher des informations sur des objets Javascript
*/

/*
Alimente 2 tableaux avec les noms et valeurs des proprietes d'un objet javascript
Si les tableaux ne sont pas vides initialement, les proprietes de l'object
sont ajoutes dans de nouveaux elements situes en fin de tableau
*/
function getObjectPropertiesArray(obj, tabNames, tabValues) {
	var prop_to_eval = null;
    for (prop in obj) {
    	tabNames[tabNames.length] = prop;
        prop_to_eval = "obj."+prop;
        tabValues[tabValues.length] = eval(prop_to_eval);
    }
}

/*
Recupère une chaîne contenant les noms et valeurs des proprietes d'un objet javascript
La valeur retournee peut être utilisee dans un appel à la fonction ALERT
*/
function getObjectPropertiesText(obj) {
	var i=0;
	// Recuperation des infos
	var prp_names = new Array(); var prp_values = new Array();
    getObjectPropertiesArray(obj, prp_names, prp_values);
//	alert("obj="+obj+"\nprp_names.length="+prp_names.length+"\nprp_values.length="+prp_values.length);

	// Stockage dans tableaux des lignes à afficher
	var prp_disp = null; var tabDisp = new Array();
    for (i=0; i < prp_names.length; i++) {
    	prp_disp = i+":"+prp_names[i]+"="+prp_values[i];
//        if (false) {
		if ((tabDisp[tabDisp.length-1] != null) && (tabDisp[tabDisp.length-1].length + prp_disp.length < 60)) {
            tabDisp[tabDisp.length-1] += ", "+prp_disp;
        }
        else {
        	tabDisp[tabDisp.length] = prp_disp;
        }
    }
//    alert("tabDisp.length="+tabDisp.length);

    // Construction de la chaîne d'affichage
    var ret = ""; var line = null;
    ret += obj + "\nexclus: fonctions js + innerHTML\n";
    for (i=0; i < tabDisp.length; i++) {
		line = tabDisp[i];
        if (line.indexOf("function")==-1 && line.indexOf("innerHTML")==-1) {
	        ret += line + "\n";
        }
    }
    return ret;
}

function getInfoOnObject(obj) {
	var s = getObjectPropertiesText(obj);
    alert(s);
}

// Trace specifique d'un formulaire HTML
function displayForm(form) {
	var s = "Formulaire:"+form.name+"\n";
    s += "action="+form.action+"\n";
    s += "method="+form.method+"\n";
    s += "target="+form.target+"\n";
    s += "------------------\n";
    var comp = null;
	for (var i=0; i < form.elements.length; i++) {
    	comp = form.elements[i];
        s += comp.name + "=" + comp.value + "\n";
    }
    alert(s);
}
