// funções para manipular classes de objetos DOM //
function getArrayFromClasses( obj )
{
  var classes = obj.className.split(" ");
  if( classes.length == 1 && classes[0] == "" )
  {
    classes = new Array();
  }  
  
  return classes;
}

function setClassesStringFromArray( classes )
{
  return classes.join(" ");
}

function addClass( obj, className )
{
  var classes = getArrayFromClasses( obj );
  classes.push( className );
  obj.className = setClassesStringFromArray( classes );
}

function removeClass( obj, className )
{
  var classes = getArrayFromClasses( obj );
  for(i in classes)
  {
    if(classes[i] == className)
    {
      classes.splice(i,1);
    }
  }
  obj.className = setClassesStringFromArray( classes );  
}

function clearClasses( obj )
{
  var classes = new Array();
  obj.className = setClassesStringFromArray( classes );
}

function existsClass( obj, className )
{
  var classes = getArrayFromClasses( obj );
  for(i in classes)
  {
    if(classes[i] == className)
    {
      return true;
    }
  }
  return false;
}

function resizeFrame( obj )
{
  obj.style.height = obj.contentWindow.document.getElementById("container").offsetHeight.toString() + "px";
}

function formatTable()
{
  var tr = document.getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].getElementsByTagName("tr");
  
  for( var i = 0; i<tr.length; i++ )
  {
    if( i % 2 != 0 )
    {
      addClass( tr[i], "odd" );
    }
  }
}

function setVariations()
{
  var tr = document.getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].getElementsByTagName("tr");
  var atual;
  var anterior;
  
  for( var i = 0; i<tr.length; i++ )
  {
    atual = parseInt(tr[i].getElementsByTagName("th")[0].innerHTML.replace(/[^0-9]/g,""), 10);
    anterior = parseInt(tr[i].getElementsByTagName("td")[0].innerHTML.replace(/[^0-9]/g,""), 10);
    
    if( atual < anterior )
    {
      addClass( tr[i].getElementsByTagName("th")[0], "sobe" );
    }
    else if ( atual > anterior )
    {
      addClass( tr[i].getElementsByTagName("th")[0], "desce" );
    }
    else if ( atual == anterior )
    {
      addClass( tr[i].getElementsByTagName("th")[0], "estavel" );
    }
  }
}

function changeAba( obj )
{
  var ul = obj.parentNode.parentNode;
  var li = ul.getElementsByTagName("li");
  
  for(var i=0; i<li.length; i++ )
  {
    removeClass( li[i], "ativo" );
  }
  
  addClass( obj.parentNode, "ativo" );  
  
}
