/*===================================================================*\
  innerXHTML

  Copyright (c) 2006 space150, LLC and released under the CPL license: 
		http://opensource.org/licenses/cpl1.0.php
\*===================================================================*/

function innerXHTML(obj, encode) {	
  // It is an option to pass innerXHTML() a string indicating an id attribute
  if (typeof obj == "string") {
    obj = document.getElementById(obj)
  }
  
  var open = '';
  var content = '';
  var close = '';
  var tagname = obj.nodeName.toLowerCase();
  var emptytag = (obj.nodeName.match(/area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param/i)) ? true : false; 

  // Write open tag
  open = '<'+tagname;
  for (var i=0; i<obj.attributes.length; i++) {
    if (obj.attributes[i].specified && obj.attributes[i].value != "null")
      open += ' '+obj.attributes[i].name.toLowerCase()+'="'+obj.attributes[i].value+'"';
  }
  open += (emptytag) ? ' />' : '>';

  if (!emptytag) {
    // Write tag content
    for (var i=0; i<obj.childNodes.length; i++) {
      var node = obj.childNodes[i];
      if (node.nodeType==3)
        content += node.data;
      else if (node.nodeType==1)
        content += innerXHTML(obj.childNodes[i], false);
      else
        content += " ";
    }

    // Write closing tag
    close = '</'+tagname+'>';
  }

	// URI encode the content if desired
  return (typeof(encode)=="undefined" || encode==true) ? encodeURIComponent(open+content+close) : open+content+close;
}