/**
 * @author mac
 */

function initFont(){
this.btn_arr = arguments[0];
this.siteID = arguments[1];
this.expires = arguments[2];
this.targetID = arguments[3];
}

function loadFont(e){

var btn_arr = fontSelect.btn_arr;
		try{
		for(var s=0;s<btn_arr.length;s++){
				var btn = document.getElementById(btn_arr[s]);
				if(btn_arr[s].length != 0)
						addEvents(btn,'click',selectFont);
		}
		}catch(e){}
		
var cook = getCookie(fontSelect.siteID);
if(cook != null){
if(cook.indexOf('over')>0) cook = cook.replace(/over/,'');
fontChanges(cook,fontSelect.siteID,fontSelect.expires,fontSelect.targetID);
}
}

function selectFont(e){
var elem = targetNode(e).id;
fontChanges(elem,fontSelect.siteID,fontSelect.expires,fontSelect.targetID);

}

function fontChanges(){

var setValue = arguments[0];
var siteStr = arguments[1];
var expires = arguments[2] ? arguments[2] : "";

var targetArea = new Array();

if((arguments[3] == '') || !arguments[3])
targetArea[0] = document.getElementsByTagName('body')[0];

else if(typeof arguments[3] == 'string')
targetArea[0] = document.getElementById(arguments[3]);

else if(typeof arguments[3] == 'object'){
for(var no=0;no<arguments[3].length;no++)
targetArea[no] = document.getElementById(arguments[3][no]);
}

setCookie(siteStr,setValue,expires);

var fontF = setValue.substring(0,1);
var fontS = setValue.substring(1,3);
var family;

if(fontF == 'm') family = '"ＭＳ Ｐ明朝", "細明朝体", "ヒラギノ明朝 Pro W3"';
else family = '"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック",sans-serif';


for(var t=0;t<targetArea.length;t++){
targetArea[t].style.fontSize = fontS + "px";
targetArea[t].style.fontFamily = family;
}



var elem = document.getElementById(setValue);
var fbtns = elem.parentNode.getElementsByTagName('a');
for(var a=0;a<fbtns.length;a++){
if((fbtns[a].id.indexOf('over')>0) && (fbtns[a].id != elem.id)) {
fbtns[a].id = fbtns[a].id.replace(/over/,'');
}
}
if(elem.id.indexOf('over')<0) elem.id += 'over';

}

function getCookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name+"="+escape( value ) +
( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function targetNode(e) {
var target_node;
if(e.target) {
target_node = e.target;
} else if(e.srcElement) {
target_node = e.srcElement;
}
if (target_node.nodeType == 3) {
target_node = target_node.parentNode;
}
return target_node;
}

function addEvents(elem, eventType, func) {
if(elem.addEventListener) {
elem.addEventListener(eventType, func, false);
} else if(elem.attachEvent) {
elem.attachEvent('on' + eventType, func);
} else {
return false;
}
}

function addLoadEvent(func) {
if(typeof window.addEventListener == 'function'){
window.addEventListener('load', func, false);
return true;
} else if(typeof window.attachEvent == 'object'){
window.attachEvent('onload', func);
return true;
}

var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}

function blurOn(){this.blur();}

addLoadEvent(loadFont);
//addEvents(window, 'load', loadFont);

var btn_arr =new Array('g12','g14','g16');
var fontSelect = new initFont(btn_arr,'font','0',"pagebody");
