
// 
// CLASS:
// - Debug
// 
// VERSION:
// - 1.0.0 - 20070725 - Added "output" method
// - 1.0.1 - 20070816 - Updated "output" method, default parameter change
// 

var Debug = 
{
  highlight: function (tag)
  {
    // Arguments
    if (typeof tag == 'undefined')
    {
      tag = '*';
    }
    
    // Initialize
    var tags = document.getElementsByTagName(tag);
    
    // Execute
    for (var i = 0; i < tags.length; i++)
    {
      var tagDebug = 
      {
        highlight: function ()
        {
          this._element.style.border = '1px #f00 solid';
          Event.stopPropagation();
        },
        
        normal: function ()
        {
          this._element.style.border = '0px';
          Event.stopPropagation();
        }
      };
      
      tagDebug._element = tags[i];
      Event.addListener(tags[i], 'mouseover', tagDebug.highlight);
      Event.addListener(tags[i], 'mouseout', tagDebug.normal);
    }
  },
  
  output: function (data, showVal)
  {
    // Prepare parameters
    if (undefined === showVal)
    {
      showVal = true;
    }
    
    // Initialize
    content = '';
    
    var fldname;
    var fldval;
    var j = 0;
    
    // Execute
    for (var i in data)
    {
      if (j > 15)
      {
        alert(content);
        
        content = '';
        j = 0;
      }
      
      // Prepare data
      fldname = i;
      
      if (showVal)
      {
        fldval = data[i];
      }
      
      else
      {
        fldval = '';
      }
      
      // Set data
      content += fldname + ':' + fldval + "\r\n";
      
      j++;
    }
    
    alert(content);
  }
}


