/*
 * SCRIPT: fxfontplus.js
*/

Fx.FontPlus = new Class({
  initialize: function(elements, sid, gid, gmid, growsize, growmoresize){
    this.growsize = (growsize) ? growsize : 2;
    this.growmoresize = (growmoresize) ? growmoresize : 3;

    this.elements = [];
     elements.each(function(el){
      this.elements.push([el,el.getStyle('font-size').toInt()]);
    },this);

    $(gmid).onclick = function(){this.growmore()}.bind(this);
    $(gid).onclick = function(){this.grow()}.bind(this);
    $(sid).onclick = function(){this.shrink()}.bind(this);
  },

  growmore: function(){
    this.elements.each(function(el){
      var currentfsize = el[0].getStyle('font-size').toInt();
      if(currentfsize == el[1])
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1],el[1]+this.growmoresize);
      else if(currentfsize == el[1]+this.growsize)
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1]+this.growsize,el[1]+this.growmoresize);
    },this);
  },

  grow: function(){
    this.elements.each(function(el){
      var currentfsize = el[0].getStyle('font-size').toInt();
      if(currentfsize == el[1])
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1],el[1]+this.growsize);
      else if(currentfsize == el[1]+this.growmoresize)
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1]+this.growmoresize,el[1]+this.growsize);
    },this);
  },

  shrink: function(){
    this.elements.each(function(el){
      var currentfsize = el[0].getStyle('font-size').toInt();
      if(currentfsize == el[1]+this.growsize)
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1]+this.growsize, el[1]);
      else if(currentfsize == el[1]+this.growmoresize)
        el[0].effect('font-size',{duration:300,unit:'px'}).custom(el[1]+this.growmoresize, el[1]);
    },this);
  }
});

window.addEvent('domready', function(){
  try {
    fxfont = new Fx.FontPlus($$('#components'),$('shrink'),$('grow'),$('growmore'));
  } catch (err) {}
});