// ---------------------------------
//    css.js (CSS切替スクリプト)
// ---------------------------------

var Win=(navigator.userAgent.indexOf("Win")!=-1);
var Mac=(navigator.userAgent.indexOf("Mac")!=-1);

if (Win) {
	//Windows
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleA" href="/rhd/english/css/win.css">');
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleB" href="/rhd/english/css/win_large.css">');
} else if (Mac) {
	//MAC
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleA" href="/rhd/english/css/mac.css">');
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleB" href="/rhd/english/css/mac_large.css">');
} else {
	//その他
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleA" href="/rhd/english/css/other.css">');
	document.write('<link rel="alternate stylesheet" type="text/css" title="StyleB" href="/rhd/english/css/other_large.css">');
}


if (document.getElementsByTagName) {

//------------------------------------------------
// 設定 ------------------------------------------
//------------------------------------------------

    // スタイルを適用しない時の選択肢名
    var nostyle = 'no style';

    // cookieの名前
    var cname = 'STYLESHEET';

    // cookieを設定するサイトのパス
    var cpath="/";

    // cookieの有効日数
    var cdays = 10;

//------------------------------------------------

//-------
// 初期化
//-------

    // グローバル変数の設定
    var di = document.implementation;
    var sss = getStyleSheets();
    var isOpera = window.opera && navigator.userAgent.match(new RegExp('Opera[/ ]7'));
    var isMacIE = !isOpera && navigator.userAgent.match(new RegExp('MSIE 5.+Mac'));

    // 以降はページ読み込み完了時に実行
	// addEvent((isOpera ? document : window), 'load', initialize);

	initialize();

}

//-----------------------------
// 初期化(ページ読み込み完了後)
//-----------------------------
function initialize() {

    // スタイル適用
    setStyle();
}

//-------------------------------------------
// cookieに保存された名前のスタイルを適用する
//-------------------------------------------
function setStyle() {

    // cookieからスタイル名を取得
    var stitle = getCookie();
    if (!stitle) return;

    // スタイルの変更
    applyStyle(stitle);
}

// -----------------------------------------------------------------------------------------------------------

//---------------
// スタイルの適用
//---------------
function applyStyle(stitle) {
    for (var i = 0; i < sss.length; i++) {
        sss[i].disabled = (sss[i].title == stitle || !sss[i].title || isStyleElement(sss[i])) ? false : true;
        stitle == nostyle && (sss[i].disabled = true);
    }
    setCookie();
}

//-------------------------
// スタイル名をcookieへ保存
//-------------------------
function setCookie() {

    //---------------------------------------
    // 現在適用されているスタイルの名前を取得
    //---------------------------------------
    var stitle = getStyleTitle() || nostyle;
    var c =  cname + '=' + escape(stitle) + ';' + 'path=/';

    // 有効日数が設定されていれば追加
    if (cdays) {
        var cexp = new Date();
        cexp.setTime(cexp.getTime() + 1000*60*60*24*cdays);
        c += ';expires=' + cexp.toGMTString();
    }
    document.cookie = c;
}

//---------------------------
// cookieからスタイル名を取得
//---------------------------
function getCookie() {
    var c = document.cookie + ';';
    var cindex = c.indexOf(cname + '=');
    if (cindex == -1) return false;
    var clen = c.indexOf(';', cindex + cname.length + 1);
    return unescape(c.substring(cindex + cname.length + 1, clen));
}

//-------------------
// イベントを追加する
//-------------------
function addEvent(obj, eventType, func) {

    if (di && di.hasFeature('HTMLEvents', '2.0')) {

        // DOM2 HTMLEvents対応
        obj.addEventListener(eventType, func, false);

    } else if (obj.attachEvent) {

        // WinIE5-6用
        obj.attachEvent('on' + eventType, func);

    } else {

        // MacIE5用
        obj['on' + eventType] = func;
    }
}

//------------------------------------------------
// StyleSheetオブジェクトがstyle要素かどうかを判定
//------------------------------------------------
function isStyleElement(ss) {
    if (di && di.hasFeature('StyleSheets', '2.0')) {

        // DOM2 Style Sheetss対応
        var ssnode = ss.ownerNode;

        // xml-stylesheet処理命令の時
        if (ssnode.nodeType == 7) return false;

        // style要素の時
        if (ssnode.nodeType == 1 && ssnode.localName.toLowerCase() == 'style') return true;

        // それ以外
        return false;

    } else {

        // WinIE5-6はStyleSheets.ownerNodeが使えないので
        // href属性の有無で判定
        return (ss.href ? false : true);

    }
}

//-------------------
// HTML要素を作成する
//-------------------
function createHTMLElement(tagname) {
    if ( (di && di.hasFeature('Core', '2.0')) || isOpera) {

        // DOM2 Core対応 or Opera
        return document.createElementNS('http://www.w3.org/1999/xhtml', tagname);

    } else {

        // IE5-6用
        return document.createElement(tagname);
    }
}

//---------------------------------------
// 現在適用されているスタイルの名前を取得
//---------------------------------------
function getStyleTitle() {
    for (var i = 0; i < sss.length; i++) {
        if (isStyleElement(sss[i])) continue;
        if (sss[i].title && !sss[i].disabled) return sss[i].title;
    }
    return false;
}

//---------------------------
// スタイルシートリストを取得
//---------------------------
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;
}
