/**
 *
 *  Name:       fontsizer.js
 *  Company:    IBM BCS
 *  @author     Mark Chaimungkalanont
 *  @version    $Revision:$ $Date:$
 **/



var cookieName   = "PixelFontSize";
var sizeUnit     = "px";
var defaultSize  = 10;
var maxSize      = 14;
var increment    = 1;
var minSize      = 9;
var bInit        = true;



function initFontSize() 
{
    try
    {
        bInit = true;
        var size = readCookie(cookieName);
        size = !isNaN( parseFloat(size) )? parseFloat(size): defaultSize;
        if ( size > maxSize || size < minSize ) 
        {
            size = defaultSize;
        }
        debug("Default: " + size);
        setFontSize(size);
    }
    catch (eException)
    {
    	// Do nothing
    } // end try
}



function changeFontSize(inc) 
{
    if (!bInit)
    {
        initFontSize()
    } // end-if
    var size = parseFloat( getFontSize() );
    size += inc;
    // Test against max and min sizes 
    if (inc > 0) 
        size = Math.min(size, maxSize);
    else 
        size = Math.max(size, minSize);
    saveCookieForever( cookieName, size );
            debug("Change to: " + size);
    setFontSize(size);
}



function reset()
{
    setFontSize(defaultSize);
    eraseCookie(cookieName);
}



function increaseFontSize()
{
    changeFontSize(increment);
}


function decreaseFontSize()
{
    changeFontSize(-increment);
}



function setFontSize(nSize)
{
    var oContent = new getObj("content");
    oContent.style.fontSize = nSize + sizeUnit;
    
    var aTdTags  = document.getElementsByTagName('TD');
    if (aTdTags)
    {
        for (nIndex = 0; nIndex < aTdTags.length; nIndex++)
        {
            var oTd = aTdTags[nIndex];
            if (oTd.id != 'header' && oTd.id != 'banner' && oTd.id != 'menu' && oTd.id != 'fixo' && oTd.id != 'footer' && oTd.id != 'content' && oTd.id != 'bottomLeftSpacer')
            {
                debug("oTd: " + oTd.className + " : change to : " + (nSize * 1) + sizeUnit);

                oTd.style.fontSize = (nSize * 1) + sizeUnit;
            } // end-if
        } // end for    
    } // end-if

    

}

function getFontSize()
{
    var oContent = new getObj("content");
    return oContent.style.fontSize;
}


// Cookie handling functions
function saveCookie(name,value,days)
{
  if (days) 
  {
    var d = new Date();
    d.setTime(d.getTime()+(days*24*60*60*1000));
    var ex = "; expires="+d.toGMTString();
  }
  else 
  {
    var ex = "";
  }
  
  document.cookie = name+"="+value+ex+"; path=/";
}



function saveCookieForYear(name,value)
{
    saveCookie(name,value,365);
}



function saveCookieForever(name,value)
{
    saveCookie(name,value,1000);
}



function readCookie(name)
{
  var eq = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i<ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(eq) == 0) return c.substring(eq.length,c.length);
  }
  return null;
}




function eraseCookie(name)
{
  saveCookie(name,"",-1);
}




addEvent(window, 'load', initFontSize);





function getObj(name)
{
   this.exists = false;
   if(document.getElementById)
   {
      this.obj = document.getElementById(name);
      // debug(name + " : " + this.obj);
      if(this.obj != null)
      {
         this.style = document.getElementById(name).style;
         this.exists = true;
      }
   }
   else if(document.all)
   {
      this.obj = document.all[name];
      if(this.obj != null)
      {
         this.style = document.all[name].style;
         this.exists = true;
      }
   }
   else if(document.layers)
   {
      this.obj = document.layers[name];
      if(this.obj != null)
      {
         this.style = document.layers[name];
         this.exists = true;
      }
   }
}




function addEvent(oTargetElem, sOnWhat, oFunction)
{
    if (oTargetElem.attachEvent)
    {
        oTargetElem.attachEvent('on'+sOnWhat, oFunction);
    }
    else if(oTargetElem.addEventListener)
    {
        oTargetElem.addEventListener(sOnWhat, oFunction, false);
    }
    else
    {
        // Cannot attach event
    } // end-if
}




function debug(sText)
{
   /*
   var message = document.getElementById("message");
   if (message)
       message.innerHTML += "<li>" + new Date() + " : " + sText + "</li>";
    */
}


