/*
* O'Reillies library for converting objects and arrays to strings
* ver 1.1
*
* History
*	1.1 11.11.08/goshi	remove bug with conveting empty object to string
*/

function object2String(obj) {
    var val, count = 0, output = "";
    if (obj) {    
        output += "{";
        
        for (var i in obj) {
            val = obj[i];
            switch (typeof val) {
                case ("object"):
                    if (val[0]) {
                        output += i + ":" + array2String(val) + ",";
                    } else {
                        output += i + ":" + object2String(val) + ",";
                    }
                    break;
                case ("string"):
                    output += i + ":'" + escape(val) + "',";
                    break;
                default:
                    output += i + ":" + val + ",";
            }
            
            count++;
        }
        // removed bug with empty object
        if (count == 0)
        	output = output + "}";
        else
        	output = output.substring(0, output.length-1) + "}";
    }
    return output;
}
   
function array2String(array) {
    var output = "";
    if (array) {
        output += "[";
        for (var i in array) {
            val = array[i];
            switch (typeof val) {
                case ("object"):
                    if (val[0]) {
                        output += array2String(val) + ",";
                    } else {
                        output += object2String(val) + ",";
                    }
                    break;
                case ("string"):
                    output += "'" + escape(val) + "',";
                    break;
                default:
                    output += val + ",";
            }
        }
          // removed bug with empty object
        if (array.length == 0)
        	output = output + "]";
        else
        	output = output.substring(0, output.length-1) + "]";
        
    }
    return output;
}
   
function string2Object(string) {
    eval("var result = " + string);
    return result;
}
   
function string2Array(string) {
    eval("var result = " + string);
    return result;
}