/* 設定値 */
var COOKIE_NAME = 'fs';
var DEFAULT_FONT_SIZE = 'small';
var IMG_ROOT = COMMON_URL + 'images/ws/header/';

/* フォントサイズ変更用クラス */
var Font = function(url,title) {
  this.url = url;
  this.title = title;
  this._self = null;
};
Font.prototype = {
  init : function() {
   if(this._self) return;
   
   var link = document.createElement('link');
   link.rel = "stylesheet";
   link.type = "text/css";
   link.href = this.url;
   link.title = this.title;

   document.documentElement.childNodes[0].appendChild(link);
   this._self = link;

   this.enable();
  },
  enable : function() {
    if (this._self != null) {
      this._self.disabled = false;
    } else {
      this.init();
    }
  },
  disable : function() {
    if (this._self != null) {
      this._self.disabled = true;
    }
  }
};

var FontsCSS = new Object();
FontsCSS["large"]  = new Font(COMMON_URL + "css/ws/font_size/font_l.css", "large");
FontsCSS["medium"] = new Font(COMMON_URL + "css/ws/font_size/font_m.css", "medium");
FontsCSS["small"]  = new Font(COMMON_URL + "css/ws/font_size/font_s.css", "small");

function selectDefaultFontSize(fontSize) {
  var applyCssNm = fontSize;
  if (applyCssNm != 'large' && applyCssNm != 'medium') {
      applyCssNm = DEFAULT_FONT_SIZE;
  }
  return applyCssNm;
}

function setDefaultStyleSheet() {
  var fontTitle = getCookie(COOKIE_NAME);
  setStyle(fontTitle);
}

function setActiveStyleSheet(fontSize) {
  var applyCssNm = selectDefaultFontSize(fontSize);
  for (var key in FontsCSS) {
    var f = FontsCSS[key];
    f.disable();
    if (f.title == applyCssNm) {
      f.enable();
      saveFontSize(fontSize);
    }
  }
}
function setCookie (name, value, expires, path, domain) {
    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires.toGMTString() : "") + (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "");
    document.cookie = "";
    document.cookie = curCookie;
}
function getCookie (name) {
  var prefix = name + '=';
  var c = document.cookie;
  var nullstring = '';
  var cookieStartIndex = c.indexOf (prefix);
  if (cookieStartIndex == -1)
	  return nullstring;
  var cookieEndIndex = c.indexOf (";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1)
	  cookieEndIndex = c.length;
  return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function saveFontSize(title) {
  var now = new Date();
  now.setTime(now.getTime() + 30 * 24 * 60 * 60 * 1000);
  setCookie(COOKIE_NAME , title, now, "/", "");
}

function setStyle(fontSize) {
  setActiveStyleSheet(fontSize);
  changeFontSizeImg(fontSize);
}


var sOff = new Image(); sOff.src = IMG_ROOT + 'font_small_off.gif';
var sOn  = new Image(); sOn .src = IMG_ROOT + 'font_small_on.gif';
var mOff = new Image(); mOff.src = IMG_ROOT + 'font_middle_off.gif';
var mOn  = new Image(); mOn .src = IMG_ROOT + 'font_middle_on.gif';
var bOff = new Image(); bOff.src = IMG_ROOT + 'font_big_off.gif';
var bOn  = new Image(); bOn .src = IMG_ROOT + 'font_big_on.gif';

function changeFontSizeImg(fontSize) {
  var size = selectDefaultFontSize(fontSize); 
  if (size == "small") {
	document.images["s_img"].src = sOn.src;
	document.images["m_img"].src = mOff.src;
	document.images["b_img"].src = bOff.src;
  } else if (size == "large") {
	document.images["s_img"].src = sOff.src;
	document.images["m_img"].src = mOff.src;
	document.images["b_img"].src = bOn.src;
  } else {
	document.images["s_img"].src = sOff.src;
	document.images["m_img"].src = mOn.src;
	document.images["b_img"].src = bOff.src;
  }
}

