<!--
/* objectsArraysStrings.js */
/*
     Example File From "JavaScript and DHTML Cookbook"
     Published by O'Reilly & Associates
     Copyright 2003 Danny Goodman
*/

function object2String(obj) {

  var val, 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;
        case ("function"):
          break;
        default:
          output += i + ":" + val + ",";
      }
    }
    output = output.substring(0, output.length-1) + "}";
    if (output.length > 1) {
      output = output.substring(0, output.length-1) + "}";
    }
    else {
      output += "}";
    }
  }
  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;
        case ("function"):
          break;
        default:
          output += val + ",";
      }
    }
    if (output.length > 1) {
      output = output.substring(0, output.length-1) + "]";
    }
    else {
      output += "]";
    }
  }
  return output;
}


function string2Object(string) {
  eval("var result = " + string);
  return result;
}

function string2Array(string) {
  eval("var result = " + string);
  return result;
}

// -->
