
var JS_PATH, ROOT;
var CSSBtns = ['medium', 'large'];
var CSS = {
   medium: 'fontsize_m',
   large: 'fontsize_l'
};

/* get common directory */
(function() {
      var elm = document.getElementById('$styleswitcher');
      if(elm) {
         JS_PATH = elm.src.replace("/styleswitcher.js", "");
      } else {
         JS_PATH = '';
      }
      ROOT = JS_PATH.replace("common/js", "");
   })();

/* Utillity */
var addEvent = (window.addEventListener) ?
   (function(elm, type, event) {
      elm.addEventListener(type, event, false);
   }) : (window.attachEvent) ?
   (function(elm, type, event) {
      elm.attachEvent('on'+type, event);
   }) :
   (function(elm, type, event) {
      elm['on'+type] = event;
   }) ;

function $(e) {
   return document.getElementById(e)
}

/* for cookie */
var Cookie = {
   createCookie: function(name,value,days) {
     if (days) {
       var date = new Date();
       date.setTime(date.getTime()+(days*24*60*60*1000));
       var expires = "; expires="+date.toGMTString();
     }
     else expires = "";
     document.cookie = name+"="+value+expires+"; path=/";
   },

   readCookie: function(name) {
     var nameEQ = 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(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
     }
     return null;
   }
};


/* css switcher */
var CSSSwitcher = {
   initialize: function() {
     for(var name in CSS) {
       document.write('<link rel="alternate stylesheet" media="screen,print" type="text/css" href="'+ROOT+'common/css/'+
         CSS[name]+'.css" title="'+name+'" />');
     }
     this.loadCookie();
   },

   loadCookie: function() {
     var cookie = Cookie.readCookie("style");
     var title = cookie ? cookie : 'medium';
     c.setActiveStyleSheet(title);
   },

   setActiveStyleSheet :function(title) {
     var i, a, main;
     for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
       if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
         a.disabled = true;
         if(a.getAttribute("title") == title) a.disabled = false;
       }
     }

     this.makeBtns();
   },

   getActiveStyleSheet: function() {
     var i, a;
     for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
       if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
     }
     return null;
   },

   act: function(name) {
      var elm  = $('btn_'+name);
      if(elm.innerHTML.indexOf('_current.jpg') == -1)
         elm.innerHTML = elm.innerHTML.replace(/.jpg/, '_current.jpg');
   },

   inact: function(name) {
      var elm  = $('btn_'+name);
      if(elm.innerHTML.indexOf('_current.jpg') >= 0)
         elm.innerHTML = elm.innerHTML.replace(/_current.jpg/, '.jpg');
   },

   makeBtns: function() {
     var title = c.getActiveStyleSheet();

     for(var name, i = 0; name = CSSBtns[i]; i++) {
        var elm  = $('btn_'+name);
        if(!elm) continue;
        if(!elm._org) elm._org = elm.innerHTML;

        var html = elm._org;

        if(name == title) {
          elm.innerHTML = html.replace(/.jpg/, '_current.jpg');
        } else {
          elm.innerHTML = '<a href="javascript:;" onclick="c.setActiveStyleSheet(\''+name+'\'); return false;">' + html + '</a>';
        }
     }
   }
};

var c = CSSSwitcher;

c.initialize();

addEvent(window, 'load', function(e) {
      setTimeout(function() {
            c.loadCookie();
         }, 100);
});

addEvent(window, 'unload', function(e) {
  var title = c.getActiveStyleSheet();
  Cookie.createCookie("style", title, 365);
});


