// FontChanger
// Copyright (c) 2007 Hirotaka Ogawa
// REQUIRES: prototype.js, cookiemanager.js
FontChanger = Class.create();
FontChanger.prototype = {
  id: null,
  cookieManager: null,
  cookieName: 'body.style.fontSize',
  initialize: function(id) {
    this.id = id || 'fontChanger';
    this.cookieManager = new CookieManager();
    this.cookieManager.cookieShelfLife = 90;
    var fontSize = this.cookieManager.getCookie(this.cookieName);
    if (fontSize) {
      if(fontSize=='70%') {
        document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s_on.gif)';
        document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m.gif)';
        document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l.gif)';
      } else if(fontSize=='75%') {
        document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s.gif)';
        document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m_on.gif)';
        document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l.gif)';
      } else if(fontSize=='100%') {
        document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s.gif)';
        document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m.gif)';
        document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l_on.gif)';
      }
      document.body.style.fontSize = fontSize;
    }
  },
  setCookieShelfLife: function(days) {
    this.cookieManager.cookieShelfLife = days;
  },
  change: function(fontSize) {
    document.body.style.fontSize = fontSize;
    if(fontSize=='70%') {
      document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s_on.gif)';
      document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m.gif)';
      document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l.gif)';
    } else if(fontSize=='75%') {
      document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s.gif)';
      document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m_on.gif)';
      document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l.gif)';
    } else if(fontSize=='100%') {
      document.getElementById("size-small").style.backgroundImage = 'url(/common/images/btn_fontsize_s.gif)';
      document.getElementById("size-medium").style.backgroundImage = 'url(/common/images/btn_fontsize_m.gif)';
      document.getElementById("size-large").style.backgroundImage = 'url(/common/images/btn_fontsize_l_on.gif)';
    }
    this.cookieManager.setCookie(this.cookieName, fontSize);
  },
  reset: function() {
    document.body.style.fontSize = '';
    this.cookieManager.clearCookie(this.cookieName);
  },
  show: function() {
    var id = this.id;
    Event.observe($(id + '-small' ), 'click', this.onClickSmall.bind(this));
    Event.observe($(id + '-medium'), 'click', this.onClickMedium.bind(this));
    Event.observe($(id + '-large' ), 'click', this.onClickLarge.bind(this));
  },
  onClickSmall:  function(e) { this.change('70%' ); },
  onClickMedium: function(e) { this.change('75%'); },
  onClickLarge:  function(e) { this.change('100%'); }
};
// Bootstrap
FontChanger.start = function(id) {
    document.writeln([
'<div id="' + id + '" class="clearfix">',
'<span id="' + id + '-small" ></span>',
'<span id="' + id + '-medium"></span>',
'<span id="' + id + '-large" ></span>',
'</div>'
    ].join("\n"));
  var fontChanger = new FontChanger(id);
  fontChanger.show();
};
