/* obiektyTabliceLancuchy.js */
/*
    Przykład zaczerpnięty z polskiej edycji książki 
    "JavaScript i DHTML. Receptury"
    Wydawnictwo Helion, Gliwice
    Copyright 2003 Danny Goodman
*/

function obiektNaLancuch(obiekt) {
    var wart, wyniki = "";
    if (obiekt) {    
        wyniki += "{";
        for (var i in obiekt) {
            wart = obiekt[i];
            switch (typeof wart) {
                case ("object"):
                    if (wart[0]) {
                        wyniki += i + ":" + tablicaNaLancuch(wart) + ",";
                    } else {
                        wyniki += i + ":" + obiektNaLancuch(wart) + ",";
                    }
                    break;
                case ("string"):
                    wyniki += i + ":'" + escape(wart) + "',";
                    break;
                default:
                    wyniki += i + ":" + wart + ",";
            }
        }
        wyniki = wyniki.substring(0, wyniki.length-1) + "}";
    }
    return wyniki;
}

function tablicaNaLancuch(tablica) {
    var wyniki = "";
    if (tablica) {
        wyniki += "[";
        for (var i in tablica) {
            wart = tablica[i];
            switch (typeof wart) {
                case ("object"):
                    if (wart[0]) {
                        wyniki += tablicaNaLancuch(wart) + ",";
                    } else {
                        wyniki += obiektNaLancuch(wart) + ",";
                    }
                    break;
                case ("string"):
	    wyniki += "'" + escape(wart) + "',";
                    break;
                default:
	     wyniki += wart + ",";
            }
        }
        wyniki = wyniki.substring(0, wyniki.length-1) + "]";
    }
    return wyniki;
}


function lancuchNaObiekt(lancuch) {
    eval("var wynik = " + lancuch);
    return wynik;
}

function lancuchNaTablice(lancuch) {
    eval("var wynik = " + lancuch);
    return wynik;
}
