/**
 * THERE ARE NO DUPLICATE VARIABLES HERE.
 * PLEASE DO NOT REMOVE ANY VARIABLES YOU MISINTERPRET AS DUPLICATED.
 * anderson.fabiano@ifactory.com.br (July 25 2006)
 */
var STA_FONT_SIZE = 16;
var MIN_FONT_SIZE = 10;
var MAX_FONT_SIZE = 24;

var MIN_BODY_FONT_SIZE = 9;
var MAX_BODY_FONT_SIZE = 20;

var MIN_HEADLINE_FONT_SIZE = 16;
var MAX_HEADLINE_FONT_SIZE = 20;
function resetStartSize()
{
   var startSzElem = document.getElementById("ID-StartFontSize");
   if (startSzElem) {
      var startSzVal = startSzElem.style.fontSize;
	if (startSzVal != "") {
         var index = startSzVal.indexOf("px");
         STA_FONT_SIZE = startSzVal.substring(0, startSzVal.length - index);
      }
   }
}

function increaseFontSizes(){

   resetStartSize();

   var body = document.getElementById('bodyElement');
   var headline = document.getElementById('headlineElement');
   

   MIN_FONT_SIZE = MIN_HEADLINE_FONT_SIZE;
   MAX_FONT_SIZE = MAX_HEADLINE_FONT_SIZE;
   increaseFontSize(headline);

   MIN_FONT_SIZE = MIN_BODY_FONT_SIZE;
   MAX_FONT_SIZE = MAX_BODY_FONT_SIZE;
   increaseFontSize(body);

}

function increaseFontSizesHome(){

   resetStartSize();

   var body = document.getElementById('bodyElement');

   MIN_FONT_SIZE = MIN_BODY_FONT_SIZE;
   MAX_FONT_SIZE = MAX_BODY_FONT_SIZE;
   increaseFontSize(body);


}

function decreaseFontSizes(){

   resetStartSize();

   var body = document.getElementById('bodyElement');
   var headline = document.getElementById('headlineElement');

   MIN_FONT_SIZE = MIN_HEADLINE_FONT_SIZE;
   MAX_FONT_SIZE = MAX_HEADLINE_FONT_SIZE;
   decreaseFontSize(headline);

   MIN_FONT_SIZE = MIN_BODY_FONT_SIZE;
   MAX_FONT_SIZE = MAX_BODY_FONT_SIZE;
   decreaseFontSize(body);
}

function decreaseFontSizesHome(){

   resetStartSize();

   var body = document.getElementById('bodyElement');

   MIN_FONT_SIZE = MIN_BODY_FONT_SIZE;
   MAX_FONT_SIZE = MAX_BODY_FONT_SIZE;

   decreaseFontSize(body);
}

function increaseArticlesFontSizes(){
   changeArticlesFontSizes(1);
}

function decreaseArticlesFontSizes(){
   changeArticlesFontSizes(-1);
}

function changeArticlesFontSizes(val){

   resetStartSize();

   var parent1 = document.getElementById("articlesSpan");
   var thisChild = parent1.firstChild;
   while ( thisChild != parent1.lastChild ){
      //ignore attribute (type 2) and text (type 3) nodes.
      if ( thisChild.nodeType == 1 ){
         //alert(thisChild.id);
         if(val > 0){
            increaseFontSize(thisChild);
         }else{
            decreaseFontSize(thisChild);
         }
      }
      thisChild = thisChild.nextSibling;
   }
}


function increaseFontSize(element) {
   var sizeStr = element.style.fontSize;

   if(sizeStr == ""){
      element.style.fontSize = STA_FONT_SIZE + "px";
      increaseFontSize(element);
      return;
   }

   for(var i = MIN_FONT_SIZE; i < MAX_FONT_SIZE; i++){

      if(sizeStr == (i + "px")
      || sizeStr == (i + ".0px")){
         var index = sizeStr.indexOf("px");
         var sz = sizeStr.substring(0, sizeStr.length - index);

         if(sz != "" && !isNaN(sz)){
            sz = parseInt(sz);
            element.style.fontSize = (sz + 1) + "px";
            return;
         }
      }
   }
}

function decreaseFontSize(element) {
   var sizeStr = element.style.fontSize;

   if(sizeStr == ""){
      element.style.fontSize = STA_FONT_SIZE + "px";
      decreaseFontSize(element);
      return;
   }

   for(var i = MAX_FONT_SIZE; i > MIN_FONT_SIZE; i--){
      if(sizeStr == (i + "px")
      || sizeStr == (i + ".0px")){
         var index = sizeStr.indexOf("px");
         var sz = sizeStr.substring(0, sizeStr.length - index);

         if(sz != "" && !isNaN(sz)){
            sz = parseInt(sz);
            element.style.fontSize = (sz - 1) + "px";
            return;
         }
      }
   }
}
