//requires melt-coolie

(function($){
 
  
  $.fn.meltZoomButton = function() {
    

    var defIndex = 1,
        index = 1,
        levels = [51.5, 62.5, 77, 85];
    
    
    function init(){
     
      if($(this).data("textzoom"))initEvents.call(this);
      
      updateFontSize(Number($(window).meltCookie("get",'textzoom') || defIndex));
      
    }
    
    
    function initEvents(){
      $(this).bind({
        click: function(e){ e.preventDefault();},
        mousedown: onClick
      })
    }
    
    
    function onClick(){
      
      var newIndex = defIndex,
          v = $(this).data("textzoom");
      
      if(typeof v=="number") newIndex = index+v;

      if(levels[newIndex]) {
        
        updateFontSize(newIndex);
        //for tracking
        $(document).trigger("changeTextSize",[(v==1? "big" : v==-1? "small": "medium"),newIndex]);
        
      }
      

    } 
    
      
    function updateFontSize(newIndex){
      
      document.body.style.fontSize = levels[newIndex] + '%';
      
      $(window).meltCookie("set",'textzoom', newIndex, 365, '/');
      
      index = newIndex;
      
    }
    
    
    return this.each(
      
      function(){
          
        init.call(this);
          
      }
      
    );
    
  };

})(jQuery);
