/***************************************************************SSS （ Style Sheets Selector ：略してスリーエス） Ver.3.1        Piro / outsider reflex (http://www.cc-net.or.jp/~piro/)        （解説： http://www.cc-net.or.jp/~piro/tips/page/p0024.html ）        発想の基本は Dicros! の切り替えスクリプト、        Cookie はとほほの WWW 入門と検索で見つけたサンプル（ URI 失念）を        参考にしました。        三日坊主＋＋の部屋の情報もかなり参考にしてます。        でもって Ver.3.x 以降は、優乃氏によって書き直されたものを        JavaScript 素人の僕がさらに書き直す（っていうか汚しただけ？）という        まったくもって訳の分からんことになっております。        ・オオグマ氏 / Dicros! ( http://coolo.junbi.net/dicros/ )        ・杜甫々氏 / とほほの WWW 入門 ( http://tohoho.wakusei.ne.jp/ )        ・Kan 氏 / 三日坊主＋＋の部屋 ( http://east.portland.ne.jp/~sigekazu/ )        ・優乃氏 / Virgo ( http://www.skipup.com/~peace/ )        以上の諸氏に激感謝！***************************************************************/function SSS() {        //-----------------------------------------------------        // 基本設定        //-----------------------------------------------------        // 各シートのファイルパスの規準ディレクトリ        SSS.rootPath = 'http://homepage.mac.com/p_o_w_e_r_/iblog/B140068372/';        SSS.sheetsInitialize = function() {        // シートの設定			  Sheet('greenstage','greenstage.css');              Sheet('mint','mint.css');			  Sheet('electraglide2005','elect2.css');			  Sheet('electraglide','elect.css');              Sheet('plain','plain.css');			  Sheet('style','styles-site.css');         };        // NN4.x 専用のシートのパス（複数指定可）        SSS.NN4Sheets = 'none';        // HTML 3.2/HTML 4 →「0」        // XHTML 1.0 →「1」        // XHTML 1.1 →「2」        SSS.modeXhtml = 0;        //-----------------------------------------------------        // 選択されなかったシートを代替シートとして出力する場合は「 true 」        SSS.modeAlternate = false;        // 選択シート情報のクッキーの保持期限（日）        SSS.cookieLimit = 30;        // シートの選択リスト中で、デフォルトのシート名の後に表示する文字列        SSS.defaultStr = '(Default)';        // 隠しシート機能を無効にする場合は「false」        SSS.modeHidden = false;        // 隠しシートを disabled 状態でリストに表示する場合は「 true 」        SSS.viewDisabled = false;        //-----------------------------------------------------        //-----------------------------------------------------        // 初期化        SSS.xhtmlTagClose = (SSS.modeXhtml > 0) ? ' /' : '' ;        SSS.defaultSheetIndex = 1;        SSS.counter = 0;        SSS.NN4Num = 0;        SSS.param = unescape(location.search);                SSS.param = SSS.param.substring(1, SSS.param.length);        //-----------------------------------------------------        //-----------------------------------------------------        // スタイルの判別及び link 要素の出力        SSS.writeHeader = function() {                Sheet('No-Style');                SSS.sheetsInitialize();                        SSS.NN4Num = SSS.counter;                Sheet('With-Style', SSS.NN4Sheets);                // 選択スタイルの情報を取得（ with Cookie ）                SSS.selectedId = JCookie.data.Selected;                if (!SSS.selectedId                        || (!UA.NN4 && SSS.selectedId == sheets[SSS.NN4Num].id))                        SSS.selectedIf = sheets[SSS.defaultSheetIndex].id;                for (var i = 0; i != SSS.NN4Num; i++) {                        if (SSS.param == sheets[i].id) SSS.selectedId = sheets[i].id;                        if (SSS.param == sheets[i].id+'-FORCE') {                                SSS.selectedId = sheets[i].id;                                JCookie.put('Selected', SSS.selectedId, 30);                        }                }                // スタイル判別と link 要素の出力                if (SSS.selectedId == sheets[0].id) sheets[0].selected = true;                if (UA.NN4) {                        if (SSS.NN4Sheets != 'none' && !sheets[0].selected) {                                sheets[SSS.NN4Num].selected = true;                                SSS.makeLink(true, sheets[SSS.NN4Num].id, SSS.NN4Sheets);                        }                } else {                        if (!sheets[0].selected) {                                for (i = 1; SSS.selectedId != sheets[i].id; i++)                                        if (i == SSS.NN4Num) {                                                i = SSS.defaultSheetIndex;                                                break;                                        }                                sheets[i].selected = true;                        }                        for (i = 1; i != SSS.NN4Num; i++)                                SSS.makeLink(sheets[i].selected, sheets[i].id, sheets[i].path, sheets[i].media);                }        }        // linking stylesheet        SSS.makeLink = function(selected, title, paths, media) {                if (paths == '') return;                if (!media) media = (UA.NN4) ? 'screen' : 'all' ;                var titleStr = (title) ? '|title|'+title : '' ,                        alternateStr = (selected) ? '' : 'alternate ' ,                        splitedPaths = new Array();                splitedPaths = paths.split(',');                for ( var i = 0; i != splitedPaths.length; i++) {                        if (!(!SSS.modeAlternate && !selected))                                document.write(                                        makeNode('link|type|text/css|rel|'+alternateStr+'stylesheet|href|'+SSS.rootPath+splitedPaths[i]+titleStr+'|media|'+media)                                );                }        }        //-----------------------------------------------------        //-----------------------------------------------------        // 選択フォームの出力        SSS.writeForm = function() {                SSS.styleForm = (UA.NN4 && SSS.NN4Sheets == 'none') ? '' :                        SSS.styleForm = makeNode('div|id|StyleSel',                                makeNode('label|accesskey|S',                                        makeNode('kbd|class|key','[S]')+' StyleSelect:'+                                        makeNode('select|id|Styles|name|Styles|onchange|SSS.formApply(this);', SSS.makeOptions())                                        )                                );                var nameStr = (SSS.modeXhtml > 1) ? '' : 'name|StyleSelForm|' ;                document.write(                        makeNode('form|'+nameStr+'id|StyleSelForm|action|'+location.href,SSS.styleForm)                );        }        // 送信        SSS.formApply = function(obj) {                JCookie.put('Selected', sheets[obj.options[obj.selectedIndex].value].id, SSS.cookieLimit);                location.href = location.href.match(/[^#?]*/);        }        SSS.makeOptions = function() {                var optgroupOpen = false,                        options = '',                        optgroup = '';                if (UA.NN4) options = SSS.makeOption(SSS.NN4Num);                else {                        for ( var n = 1; n != SSS.NN4Num; n++) {                                if (sheets[n].group != sheets[n-1].group) {                                        options += (optgroupOpen && optgroup != '' && !UA.N6) ?                                                makeNode('optgroup|label|'+sheets[n-1].group, optgroup) : optgroup ;                                        optgroup = '';                                        if (sheets[n].group != '') optgroupOpen = true;                                }                                if (!sheets[n].hidden) optgroup += SSS.makeOption(n);                        }                        options += (optgroupOpen && optgroup != '' && !UA.N6) ?                                makeNode('optgroup|label|'+sheets[n-1].group, optgroup) : optgroup ;                }                return(options+SSS.makeOption(0));        }        SSS.makeOption = function(num) {                var selAtt = (sheets[num].selected) ? '|selected|selected' : '' ;                        selAtt += (sheets[num].disabled) ? '|disabled|disabled' : '' ;                var defValue = (num == SSS.defaultSheetIndex) ? SSS.defaultStr : '' ;                return(makeNode('option|value|'+num+'|label|'+sheets[num].label+selAtt, sheets[num].id+defValue));        }        //-----------------------------------------------------        // おまけ：スタイルが選択されているか否かを判別する関数（未使用）        SSS.selected = function(name) { return (SSS.selectedId == name); }} new SSS();// シート定義var sheets = new Array();function Sheet(label, path, media, Default, hide) {        var n = SSS.counter;        if (Default) SSS.defaultSheetIndex = n;        sheets[n] = new Array();        sheets[n].id = label;        sheets[n].label = label;        sheets[n].path = path;        sheets[n].group = '';        sheets[n].media = (media) ? media : false ;        if (SSS.modeHidden) {                sheets[n].disabled = (SSS.viewDisabled && hide) ? true : false ;                sheets[n].hidden = (SSS.viewDisabled) ? false : hide ;        } else {                sheets[n].disabled = false;                sheets[n].hidden = false;        }        sheets[n].selected = false;        var at = label.indexOf('@');        if (at > -1) {                sheets[n].group = label.substring(at+1, label.length);                sheets[n].label = label.substring(0, at);        }        SSS.counter++;}// UA 判別（汎用）function UA() {        UA.strings = navigator.userAgent;        UA.IE55 = (UA.strings.indexOf('MSIE 5.5') > -1                || UA.strings.indexOf('MSIE 6') > -1);        UA.NN4 = (document.layers);        UA.N6 = (UA.strings.indexOf('Netscape6/6.0') > -1);        UA.type = 'others';        if (UA.strings.indexOf('MSIE 5') > -1) UA.type = 'IE5';        else if (UA.strings.indexOf('Gecko') > -1) UA.type = 'Mozilla';        else if (document.all) UA.type = 'IE4';        else if (UA.NN4) UA.type = 'NN4';} new UA();// クッキー関係の処理（汎用）function JCookie() {        JCookie.data = new Array();        JCookie.string = (document.cookie) ? document.cookie.split(';') : new Array() ;        for (var i = 0; i != JCookie.string.length; i++) {                JCookie.data[JCookie.string[i].split('=')[0].match(/[^ ].*/)]                        = JCookie.string[i].split('=')[1];        }        JCookie.put = function(name ,data ,limit) {                var date = '';                if (limit) {                        today = new Date();                        today.setTime(today.getTime()+1000*60*60*24*limit);                        date = ';expires='+today.toGMTString();                }                document.cookie = name+'='+data+';path=/'+date;        }} new JCookie();// 要素を生成（汎用）function makeNode(param, content) {        if (param == '') return content;        var element = param,                attsString = '';        if (param.indexOf('|') > -1) {                var atts = param.split('|');                element = atts[0];                for (var i = 1; i < atts.length; i+=2)                        attsString += ' '+atts[i]+'="'+atts[i+1]+'"';        }        return (!content) ?                '<'+element+attsString+SSS.xhtmlTagClose+'>\n' :                '<'+element+attsString+'>'+content+'<\/'+element+'>\n';}SSS.writeHeader();