//---------------------------------------------------------------------------------//
//  JavaScript  
//
//   StyleSheetの切換えによりフォントサイズを変更する   
//　JSファイル、CSSファイルは第１階層に配置するものとする
//   HTMLヘッダーから下記のように関数を呼び出す
//   第１階層からの呼び出し　setstyle( 1 )
//   第２階層からの呼び出し　setstyle( 2 )
//   第３階層からの呼び出し　setstyle( 3 )
//               ：
//               ：
//
//　「大きくする」ボタンからの呼び出し
//　change_style('large')
//　「小さくする」ボタンからの呼び出し
//　change_style('small')
//
//　Last Update : 2007/3/10  11:30
//---------------------------------------------------------------------------------//
var d = document;
var di = document.implementation;
var title_list = new Array( "xl", "l", "m", "s" );
var isOpera = window.opera && navigator.userAgent.match(new RegExp('Opera[/ ]7'));
var isIE;
var dir_str = '';
//---------------------------------------------------------------------------------//
function set_css_list( num ) {
	var mac = false;
	var n4 = ( document.layers )? true:false;
	var e4 = ( document.all )? true:false;
	var n6 = ( document.getElementById )? true:false;
	if ( e4 ) n6 = false;


	// for Macintosh
	if ( navigator.userAgent.indexOf( 'Mac' ) != -1 ) {
		var css_list = new Array( "CSS/mac_xl.css", "CSS/mac_l.css", "CSS/mac_m.css", "CSS/mac_s.css" );
	} else {
	// for Windows
		if ( n4 ) {
			var css_list = new Array( "CSS/win_nn_xl.css", "CSS/win_nn_l.css", "CSS/win_nn_m.css", "CSS/win_nn_s.css" );
		}
		if ( e4 ) {
			var css_list = new Array( "CSS/win_ie_xl.css", "CSS/win_ie_l.css", "CSS/win_ie_m.css", "CSS/win_ie_s.css" );
			isIE = true;
		}
		if ( n6 ) {
			var css_list = new Array( "CSS/win_nn_xl.css", "CSS/win_nn_l.css", "CSS/win_nn_m.css", "CSS/win_nn_s.css" );
		}
	}
	delim = add_delim( num );
	for(var i=0; i<css_list.length; i++){
		css_list[i] = delim + css_list[i];
	}
	return css_list;
}

//---------------------------------------------------------------------------------//
function add_delim( num ) {
	//指定された階層のパスを生成する
	var result = '';
	var delim = '../';

	if( num > 1 ) {
		for( i=1; i<num; i++ ){
			result += delim;
		}
	}
	dir_str = result;
	return result;
}

//---------------------------------------------------------------------------------//
function addEvent(obj, eventType, func) {
    if (di && di.hasFeature('HTMLEvents', '2.0')) {
        // DOM2 HTMLEvents対応
        obj.addEventListener(eventType, func, false);
    } else if (obj.attachEvent) {
        //IE 5,6
        obj.attachEvent('on' + eventType, func );
    } else {
        //MacIE5
        obj['on' + eventType] = func;
    }
}

//---------------------------------------------------------------------------------//
function get_cookie( key )  {
	var target_key = document.cookie + ';';
	var key_index = target_key.indexOf( key + '=' );
	if( key_index == -1 ) return false;
	var val_length = target_key.indexOf( ';', key_index + key.length + 1 );
	return unescape( target_key.substring( key_index + key.length +1, val_length ) );
}

//---------------------------------------------------------------------------------//
function set_cookie( key, val, path ) {
	var cookie_str = key + '=' + escape( val ) + ';' + 'path=' + path + ';';
	var exp = new Date();
	exp.setTime(exp.getTime() + 1000*60*60*24*365);
	cookie_str += ';expires=' + exp.toGMTString();
	document.cookie = cookie_str;
}

//---------------------------------------------------------------------------------//
function create_css_link( list, target ) {
	if( !target ) target = 's';
	for(var i=0; i<list.length; i++){
		
		if ( isIE ) {
		//IE の場合
			var dc = d.createStyleSheet(list[i]);
			dc.title = title_list[i];
			dc.disabled = true;
		} else {
		
			var dc = d.createElement('link');
			dc.rel = (title_list[i] == target ) ? 'stylesheet' : 'alternate stylesheet';
			dc.type = 'text/css';
			dc.href = list[i];
			dc.title = title_list[i];
			d.getElementsByTagName('head').item(0).appendChild(dc);
		
		}
	}
}

//---------------------------------------------------------------------------------//
function exe_change_style( target ) {
	//cookie情報がない場合の初期値
	if( !target ) { target = 's'; }
	var get_list = getStyleSheets();
	for( var i = 0; i < get_list.length; i++) {
		if( !get_list[i].title ) {
			//get_list[i].disabled = false;
		} else if( get_list[i].title == target ) {
			get_list[i].disabled = false;
		} else {
			get_list[i].disabled = true;
		}
	}
	set_cookie( 'lv_fs', target, '/' );
}

//---------------------------------------------------------------------------------//
// HTMLのボタンから呼び出される
function change_style( LorS ) {
	if(!navigator.cookieEnabled){
		alert( "クッキーが無効です。\nこの機能をご利用いただく場合、クッキーを有効に設定してください。");
		return;
	}

	var target;
	var current_style = get_cookie( "lv_fs" );
	if ( LorS == 'large' ) {
		if( current_style == 's' ) target = 'm';
		if( current_style == 'm' ) target = 'l';
		if( current_style == 'l' ) target = 'xl';
	} else {
		if( current_style == 'm' ) target = 's';
		if( current_style == 'l' ) target = 'm';
		if( current_style == 'xl' ) target = 'l';
	}
	exe_change_style( target );
}

//---------------------------------------------------------------------------------//
function getStyleSheets() {

    if ( document.styleSheets && document.styleSheets[0] && document.styleSheets[0].title != null ) {
        return document.styleSheets;
    }

    var slinks = new Array();
    var links = document.getElementsByTagName('link');
    for (var i = 0; i < links.length; i++) {
        if ( links[i].rel && links[i].rel.toLowerCase().indexOf('stylesheet') != -1 && links[i].title ) {
            slinks[slinks.length] = links[i];
        }
  }
	return slinks;
}

//---------------------------------------------------------------------------------//
function setstyle( num ) {
	var target = get_cookie( "lv_fs" );
	create_css_link( set_css_list( num ), target );
	exe_change_style( target );
}
//---------------------------------------------------------------------------------//
//addEvent((isOpera ? document : window), 'load', setstyle);


