//-----------------------------------------------------
// CSS 切り替えスクリプト（ head 用） Ver.1.83
//  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 失念）を
//  参考にしました。
//  三日坊主＋＋の部屋の情報もかなり参考にしてます。
//-----------------------------------------------------
function Setting() {
//-----------------------------------------------------
// 基本設定
//-----------------------------------------------------

StyleRt = './'; // 規準ディレクトリ
myDocTitle = document.title;

// シートの指定

if (myDocTitle == 'Kitako Online'){
Sheet('Natural','top.css');
}

else{
Sheet('Natural','main_style.css');
}

NN4Style = 'none'; // NN4.x 専用のシート（複数指定可）
Xhtml = false; // XHTML の場合は「 true 」、それ以外は「 false 」
AltFg = true; // 選択されなかったシートを代替シートとして出力する場合は「 true 」、出力しない場合は「 false 」

//-----------------------------------------------------
//-----------------------------------------------------
}

// イニシャライズ
var n, m, StyleRt, NN4Style, Xhtml, AltFg,
	St = new Array(), StPth = new Array(), StMda = new Array(), StGrp = new Array(), StLbl = new Array(),
	N = 0, DefN = 1;
function Sheet(Name, Pth, Mda, DefFg) { N++;
	if (DefFg) DefN = N;
	St[N] = Name; StPth[N] = Pth; StGrp[N] = ''; StLbl[N] = Name;
	StMda[N] = false; if (Mda) StMda[N] = Mda;
	var At = Name.indexOf('@'); if (At > -1) {
		StGrp[N] = Name.substr(At+1,Name.length); StLbl[N] = Name.substr(0,At);
	}
}
Setting();

N++;
var LastN = N, NN4n = N+1, XCls = ''; if (Xhtml) XCls = ' /';
St[0] = 'No-Style'; St[N+1] = 'With-Style';

// Cookie 取得（汎用：GetCk(名前)で各々の値を取得できる）
var Ck = document.cookie, CkStr = new Array(), CkDat = new Array();
CkStr = Ck.split(';'); var CkN = CkStr.length, CkNames = '';
for (n = 0; n != CkN; n++) {
	CkDat[n] = new Array(); CkDat[n] = CkStr[n].split('=');
	CkNames = CkNames+CkDat[n][0];
}
function GetCk(Name) {
	if (CkNames.indexOf(Name) > -1) for (var Cn = 0; Cn != CkN; Cn++) {
		if (CkDat[Cn][0] == Name || CkDat[Cn][0] == ' '+Name) return CkDat[Cn][1];
	}
	return '';
}
function WrtCk(Name, Data, Days) {
	if (Days) { Today = new Date(); Today.setTime(Today.getTime()+1000*60*60*24*Days); CkDate = ';expires='+Today.toGMTString(); } else CkDate = '';
	document.cookie = Name+'='+Data+';path=/'+CkDate;
}

// 要素の生成（汎用：MkNode('要素名|attr1|value1|attr2|value2...','内容')）
function MkNode(WParam, Content) { if (WParam == '') return(Content);
	var EName = WParam, AttsStr = '';
	if (WParam.indexOf('|') > -1) {
		var Atts = new Array(); Atts = WParam.split('|'); EName = Atts[0];
		for (var AN = 1; AN < Atts.length; AN = AN+2) {
			AttsStr = AttsStr+' '+Atts[AN]+'="'+Atts[AN+1]+'"';
		}
	}
	if (!Content) return('<'+EName+AttsStr+XCls+'>\n');
	return('<'+EName+AttsStr+'>'+Content+'</'+EName+'>\n');
}

// 選択スタイル情報の取得
var Sel = GetCk('Selected');
if (Sel == '' || St.slice(0, NN4n).join(',').indexOf(Sel) < 0) Sel = St[DefN];
for (n = 0; n != LastN; n++) { if (location.search == '?'+St[n]) Sel = St[n]; }

StPth[0] = ''; StMda[0] = ''; StLbl[0] = 'No-Style'; StGrp[0] = '';
var Fg = new Array(); for (n = 0; n != N; n++) { Fg[n] = false; }

// link 要素の生成処理
function MLink(Cur, Name, Pths, Mda) { if (Pths == '') return;
	if (!Mda) { Mda = 'all'; if (document.layers) Mda = 'screen'; }
	var LPth, Alt = 'alternate ', SplPths = new Array();
	if (Cur) Alt = ''; SplPths = Pths.split(',');
	for (m = 0; m != SplPths.length; m++) {
		LPth = StyleRt+SplPths[m];
		if (!(!AltFg && !Cur))
			document.write(MkNode('link|type|text/css|rel|'+Alt+'stylesheet|href|'+LPth+'|title|'+Name+'|media|'+Mda));
	}
}

// 選択スタイルの判別処理
var NN4Mode = false; if (NN4Style && document.layers) { NN4Mode = true;
	if (NN4Style != 'none') {
		if (Sel != St[0]) { Fg[NN4n] = true; MLink(true,St[NN4n],NN4Style);
		} else Fg[0] = true;
	}
} else {
	if (Sel == St[0]) Fg[0] = true; else {
		for (n = 1; Sel != St[n]; n++) { if (n == LastN) { n = DefN; break; } }
		Fg[n] = true;
	}
	for (n = 1; n != LastN; n++) { MLink(Fg[n],St[n],StPth[n],StMda[n]); }
}

