/*

		Preferred Style Generator (PSG) v3.2.4 Beta 2004/12/23 21:22:18
		Written by TYLIGHT

*/

try{ // 古い実装のブラウザでは動かないと思われるのでエラーを無視させる。インデントなしで最後まで続きます

var PSG = {
	/******************* 設定ここから *******************/
	Config : {
		Window : {
			// ステータスバーを弄るなら true, 弄らないなら false
			enable : true
		},
		Frame : {
			// ページがフレーム内だった時に警告するなら true, しないなら false
			// フレームを使っている場合は必ず false にして下さい。
			enable : true,
			
			// サイトのトップディレクトリの URL（ファイル名を含めない）。 (String)
			// 空でもよいですが、そうすると WinIE では object 要素での取り込みに警告できません
			// 例: "http://homepage2.gifty.com/oreore/"
			address : ""
		},
		Form : {
			// フォームの送信またはリセットの際に確認を取るなら true, 取らないなら false
			enable : true
		},
		Cookie : {
			// クッキーが有効なドメイン名を指定します。空だとURLから自動的に取得します (String)
			// 例: "homepage2.gifty.com"
			domain : "",
			
			// "/" から始まるクッキーが有効なパスを指定します。空だとURLから自動的に取得します (String)
			// 例: "/oreore/"
			path : ""
		},
		Link : {
			// 自ページへのリンクを排除するなら true, しないなら false
			enable : true,
			
			// 上の設定が true の時、自ページを指すリンクに付け加えるクラス名 (String)
			activeClassName : "active"
		},
		LinkSwitcher : {
			// 外部リンクの制御をするなら true, しないなら false
			enable : true,
			
			// どの ID を持つ要素にセレクトボックスを配置するか (String)
			// 空だと、次の要素名の設定を使って配置します。
			targetElementID : "",
			
			// どの要素にリンクスイッチを配置するか (String)
			// 上の設定で ID を指定した場合は無視されます
			targetElementName : "div",
			
			// その要素の何番目に配置するのか。0 ではなく 1 から数えます。(int)
			// 上の設定で ID を指定した場合は無視されます
			targetElementIndex : 3,
			
			// チェックボックスの直後に挿入する文字列 (String)
			text : "Open external links in new window",
			
			// 上で設定した要素の前に挿入するなら true, 後ろに追加するなら false
			// 前に挿入する場合は要素の外に追加され、後ろに追加する場合は要素の中に含まれます。
			// body 要素や html 要素を挿入対象にする場合は false にしてください。
			isBefore : false,
			
			// リンク先オープン設定の保持日数(一度でも再来訪すればまた数え直します) (int)
			// 0 を指定するとブラウザ終了まで有効。
			expdays : 30
						
		},
		StyleSheet : {
			// CSS 切り替え機能を使うなら true, 使わないなら false
			enable : true,
			
			// どの ID を持つ要素にセレクトボックスを配置するか (String)
			// 空だと、次の要素名の設定を使って配置します
			targetElementID : "",
			
			// どの要素にセレクトボックスを配置するか (String)
			// 上の設定で ID を指定した場合は無視されます
			targetElementName : "body",
			
			// その要素の何番目に挿入するか。0 ではなく 1 から数えます。(int)
			// 上の設定で ID を指定した場合は無視されます
			targetElementIndex : 1,
			
			// 選択リストの直前に挿入する文字列。空でもいい (String)
			text : "Theme ",
			
			// 上で設定した要素の前に挿入するなら true, 後ろに追加するなら false
			// 前に挿入する場合は要素の外に追加され、後ろに追加する場合は要素の中に含まれます。
			// body 要素や html 要素を挿入対象にする場合は false にしてください。
			isBefore : false,
			
			// 設定スタイルの保持日数(一度でも再来訪すればまた数え直します) (int)
			// 0 を指定するとブラウザ終了まで有効。
			expdays : 30,
						
			// 優先/代替 CSS 全て適用しない状態を選択リストに含めるなら true, 含めないなら false
			enableNoStyle : true,
			
			// 優先/代替 CSS 一切適用無しの名前 (String)
			noStyleName : "No Style"
		}
	},
	/******************* 設定ここまで *******************/






	/*
	@access : public
	@return : 了承されたかどうか
	@description :
	その動作を本当にしてよいのか聞く。単純。
	*/
	really : function(){
		return confirm("OK ?");
	},




	Window : {
		/*
		@access : public
		@return : void
		@description :
		ウィンドウのデフォルトステータスバー文字列を
		ページの簡単な説明にします。
		*/
		init : function(){
			window.defaultStatus = "[ " + self.location.href + " ] - " + document.title ;
		}
	},
	
	
	
	DOM : {
		namespace : {
			xhtml1 : "http://www.w3.org/1999/xhtml",
			xhtml2 : "http://www.w3.org/2002/06/xhtml2"
		},
		
		/*
		@access : public
		@return : ページ内のルート要素
		*/
		getRootElement : function(){
			/* document.all(0) が要素とは限らない為 document.all 非使用 [Feedback 2004-12-19] */
			if(document.documentElement){
				return document.documentElement;
			} else if (document.getElementsByTagName){
				return document.getElementsByTagName("*")[0];
			} else {
				return null;
			}
		},
		
		/*
		@access : public
		@return : 最低限の DOM が扱えるかどうか
		*/
		canDOM : function(){
			var D = document;
			var E = PSG.DOM.getRootElement();
			if( E == null ) return false;
			return (
				D.getElementById &&
				D.getElementsByTagName &&
				D.createElement &&
				D.createTextNode &&
				E.getAttribute &&
				E.setAttribute &&
				E.removeAttribute &&
				E.appendChild &&
				E.removeChild
			);
		},
		
		/*
		@access : public
		@return : 文書が XHTML かどうか
		*/
		isXHTML : function(){
			var root = PSG.DOM.getRootElement();
			if( root == null ) return false;
			/*
			XHTML/1.1 はルート要素に xmlns 属性が定義されなければならない
			HTML なら namespaceURI は null
			Opera7 は getAttribute では xmlns 属性が取得できない (getAttributeNode なら Object が返る)
			WinIE6 は namespaceURI プロパティが存在しない
			*/
			return ( root.getAttribute("xmlns") || root.namespaceURI );
		},
		
		/*
		@access : public
		@param tagName : 生成する要素名
		@return : 生成された要素
		@description :
		XHTML / HTML のどちらであるかを自動的に判断して指定要素を生成します。
		XHTML の場合に生成される要素の名前空間は XHTML/1.x 共通のものです。
		*/
		createElement : function( elementName ){
			return PSG.DOM.isXHTML() && document.createElementNS ? document.createElementNS(PSG.DOM.namespace.xhtml1, elementName) : document.createElement(elementName);
		},
		
		/*
		@access : public
		@param newElement : 新しく追加する要素
		@param targetElement : 追加対象の要素
		@param isBefore : 追加対象の要素の前に追加するのかどうか (後ろなら false)
		@return : 追加した newElement
		@description :
		新しい要素を追加対象要素の前後どちらかに追加します。
		追加対象要素が UL/OL/DL のいずれかである場合は適切に要素を補充した後に
		それを新しい要素として追加します。返り値はここで生成された新しい要素です。
		UL/OL/DL ではなければそのまま追加し、返り値の要素も最初の新しい要素と変化しません。
		
		DOM をサポートしていない場合や、引数の newElement や targetElement が null である場合、
		または targetElement に nodeName が存在しない場合は何もせずに null を返します。
		*/
		addElement : function( newElement, targetElement, isBefore ){
			if( !newElement || !targetElement || !targetElement.nodeName || PSG.DOM.canDOM() == false ) return null;
			
			if( isBefore ){
				if( targetElement.insertAdjacentElement ){ // for IE
					targetElement.insertAdjacentElement("BeforeBegin", newElement);
				} else if( document.createRange ){ // DOM Level 2
					var range = document.createRange();
					range.selectNode(targetElement);
					range.insertNode(newElement);
				} else {
					return null;
				}
			} else {
				/* Feedback by ALIMIKA SATOMI 2004-12-19 */
				var regxp = new RegExp("^(HTML:)?(UL|OL|DL)$", "i"); // XHTML [Opera7] 対策
				if( regxp.test(targetElement.nodeName) ){
					var parentElement;
					if(targetElement.nodeName.toUpperCase().indexOf("DL") != -1 ){
						parentElement = PSG.DOM.createElement("dt");
					} else {
						parentElement = PSG.DOM.createElement("li");
					}
					if( newElement.id ){
						parentElement.id = newElement.id + "_PARENT";
					}
					parentElement.appendChild(newElement);
					newElement = parentElement;
				}
				targetElement.appendChild(newElement);
			}
			return newElement;
		}
	},



	Arrays : {
		/*
		@access : public
		@param array : 検索対象配列
		@param value : 検索するオブジェクト
		@return : 対象配列に既にオブジェクトが存在していれば true, そうでなければ false
		@description :
		配列の値の重複チェックなどに使用。
		hasKey も作るかもしれないので has でなく hasValue という名前。
		*/
		hasValue : function( array, value ){
			for(var i in array){
				if(array[i] == value){
					return true;
				}
			}
			return false;
		}
	},



	Event : {
		/*
		@access : public
		@param object : イベントを登録する要素
		@param event : イベント名
		@param listener : イベント発生時に自動実行する関数名
		@param useCapture : キャプチャするかどうからしい……
		@return : void
		@description :
		MacIE5 ではどちらも実装されていないらしく動作しないです。
		イベント登録がバッティングする可能性があるので
		object["on"+event] = listener は廃止。[Feedback by ALIMIKA SATOMI 2004-12-19]
		*/
		addEvent : function( object, event, listener, useCapture ){
			if(object.addEventListener){
				object.addEventListener( event, listener, useCapture ? true : false ); // Standard DOM
			} else if(object.attachEvent){
				object.attachEvent( "on"+event, listener ); // For IE
			}
		},
		
		/*
		@access : public
		@param listener : ページ読み込み完了時に自動実行する関数名
		@return : void
		*/
		addLoadEvent : function( listener ){
			PSG.Event.addEvent( window, "load", listener, false );
		}
	},



	Frame : {
		/*
		@access : public
		@return : void
		@description :
		フレーム内にページがあった場合に、ページをウィンドウ全体に表示しなおすか
		聞いて、了承されたらそのようにリロードします。
		主に外部サイトのフレーム内に表示される事の予防を目的とします。
		*/
		breakFrame : function(){
			/*
			object 要素での取り込みを検知する為に
			トップウィンドウはディレクトリの場所を URL で求め
			自ウィンドウは設定 URL が空であればトップディレクトリを URL で求め、
			そうでなければ設定をそのまま使用します。 [Feedback 2004-12-19]
			*/
			var selfDirURL = PSG.Config.Frame.address ? PSG.Config.Frame.address : self.location.protocol+"//"+self.location.hostname + "/";
			var topDir = top.location.pathname.substring(0,top.location.pathname.lastIndexOf("/")+1 );
			var topDirURL = top.location.protocol+"//"+top.location.hostname + topDir;
			selfDirURL = selfDirURL.toLowerCase();
			topDirURL = topDirURL.toLowerCase();
			if( topDirURL.indexOf(selfDirURL) == -1 ){
				if( confirm( "警告！\n'" + document.title + "'\nは他のサイトのフレーム内に入れられている可能性があります。\nフレームを破ってリロードしますか？") ){
					top.location.href = self.location.href;
				}
			}
		}
	},



	Link : {
		// 自ページの URL。# 以降があればそれを除いた URL
		self : ( location.hash != "" ) ? location.href.substring( 0, location.href.lastIndexOf(location.hash) ) : location.href,
		
		/*
		@access : public
		@param link : href 属性を削除するリンク要素
		@return : void
		@description :
		指定リンクのhref削除。
		*/
		removeLink : function(link){
			link.removeAttribute("href");
		},
		
		/*
		@access : public
		@param url : 検索対象URL
		@return : 対象URL と同じリンク先を持つリンク要素の配列
		*/
		getLinksByURL : function(url){
			var links = document.links;
			var array = new Array();
			for(var i in links){
				if(links[i].href == url){
					array.push( links[i] );
				}
			}
			return array;
		},
		
		/*
		@access : protected
		@param isInternal : 内部リンクを取得するのかどうか。false なら外部リンクを取得する
		@return : リンク要素の配列
		*/
		getLinks : function( isInternal ){
			var links = document.links;
			var array = new Array();
			var regxp = new RegExp( location.hostname, "i" );
			for(var i in links){
				if( regxp.test(links[i].href) == isInternal ){
					array.push( links[i] );
				}
			}
			return array;
		},
		
		/*
		@access : public
		@return : サイト外リンク要素の配列
		@description :
		外部リンクを全て返す
		*/
		getExternalLinks : function(){
			return PSG.Link.getLinks( false );
		},
		
		/*
		@access : public
		@return : サイト内リンク要素の配列
		@description :
		内部リンクを全て返す
		*/
		getInternalLinks : function(){
			return PSG.Link.getLinks( true );
		},
		
		/*
		@access : public
		@param link : リンク先ウィンドウを設定するリンク要素
		@param target : リンク先ウィンドウ名
		@return : void
		@description :
		対象リンクを開くウィンドウ名を設定します。キーボード使いには
		こんな機能は必要無い（Ctrl+Enterなどで新窓を開く）ので
		onkeydown にはイベントを割り当てていません
		*/
		setOpenTarget : function(link,target){
			link.onclick = new Function("window.open('"+link.href+"','"+target+"');return false;");
		},
		
		/*
		@access : public
		@return : void
		@description :
		自己リンクの排除
		*/
		removeSelfLinks : function(){
			var links = PSG.Link.getLinksByURL(PSG.Link.self);
			for(var i in links){
				PSG.Link.removeLink( links[i] );
				if( PSG.Config.Link.activeClassName ){
					links[i].className += (" " + PSG.Config.Link.activeClassName);
				}
			}
		}
	},



	Cookie : {
		/*
		@access : public
		@param name : 取得するクッキーの名前
		@return : クッキーが存在しなければ null、そうでなければクッキーの値
		*/
		getCookie : function(name){
			var start, end;
			var c = document.cookie;
			
			if(c.indexOf(name + '=') != -1){
				start = c.indexOf(name + '=');
				end = c.indexOf( ';', start + name.length+1 );
				if(end == -1){
					end = c.length;
				}
				var value = c.substring( start + name.length+1, end );
				return decodeURIComponent ? decodeURIComponent(value) : unescape(value) ;
			}
			return null;
		},
	
		/*
		@access : public
		@param name : 設定するクッキーの名前
		@param value : 設定する値
		@param expdays : クッキー有効日数
		@param domain : クッキーを有効にするドメイン
		@param path : クッキーを有効にするパス
		@return : void
		*/
		setCookie : function(name,value,expdays,domain,path){
			if( value == null ) throw "Invalid Value";
			if( !expdays ) expdays = -1;
			if( !domain ) domain = PSG.Config.Cookie.domain;
			if( !domain ) domain = location.hostname; // 空設定等の場合の対処
			if( !path ) path = PSG.Config.Cookie.path;
			if( !path ) path = location.pathname.substring(0,location.pathname.lastIndexOf("/")+1 ); // 空設定等の場合の対処
			
			value = encodeURIComponent ? encodeURIComponent(value) : escape(value) ;
			var expires = new Date();
			var c;
			
			expires.setTime(expires.getTime() + 1000*60*60*24*expdays);
			c = name + "=" + value;
			c += "; domain=" + domain;
			c += "; path=" + path;
			if(expdays != 0){
				c += "; expires=" + expires.toGMTString();
			}
			document.cookie = c;
		}
	},



	Form : {
		/*
		@access public
		@param formElement : セーフモード適用対象のフォーム要素
		@return : void
		*/
		applySafemode : function( formElement ){
			/* PSG.Event.addEvent() でイベント登録すると何故かどちらを選択しても実行されてしまう */
			formElement.onreset = new Function("return PSG.really();");
			formElement.onsubmit = new Function("return PSG.really();");
		},
		
		/*
		@access public
		@return : void
		*/
		applySafemodeAll : function(){
			if( PSG.DOM.canDOM() == false ) return;
			
			var forms = document.getElementsByTagName("form");
			for(var i in forms){
				PSG.Form.applySafemode( forms[i] );
			}
		}
	},



	LinkSwitcher : {
		checkboxID : "PSGSWITCHBOX",
		formID : "PSGSWITCH",
		
		/*
		@access : public
		@return : void
		*/
		createController : function(){
			if( PSG.DOM.canDOM() == false ) return;
			
			var form = PSG.DOM.createElement("form");
			var div = PSG.DOM.createElement("div");
			var checkbox = PSG.DOM.createElement("input");
			var label = PSG.DOM.createElement("label");
			
			checkbox.setAttribute("type","checkbox");
			checkbox.setAttribute("value","on");
			checkbox.id = PSG.LinkSwitcher.checkboxID;
			/* WinIE は this でアクセスするとエラーになる。Fxxk */
			PSG.Event.addEvent(checkbox, "change", new Function("PSG.LinkSwitcher.switchLink(document.getElementById(PSG.LinkSwitcher.checkboxID).checked)") );
			div.appendChild(checkbox);
			
			label.setAttribute("for",PSG.LinkSwitcher.checkboxID);
			label.appendChild( document.createTextNode(PSG.Config.LinkSwitcher.text) );
			div.appendChild(label);
			
			form.setAttribute("action", location.href );
			form.id = "PSGSWITCH";
			form.appendChild(div);
			try{
				var targetElement;
				if( PSG.Config.LinkSwitcher.targetElementID ){
					targetElement = document.getElementById(PSG.Config.LinkSwitcher.targetElementID);
				} else {
					targetElement = document.getElementsByTagName(PSG.Config.LinkSwitcher.targetElementName)[PSG.Config.LinkSwitcher.targetElementIndex-1];
				}
				PSG.DOM.addElement( form, targetElement, PSG.Config.LinkSwitcher.isBefore );
			}catch(err){}
			
			if( PSG.Cookie.getCookie("open") == "New" ){
				PSG.LinkSwitcher.switchLink(true);
				checkbox.checked = true;
			} else {
				form.className = "disable";
			}
		},
		
		/*
		@access : public
		@param isNewWindow : 新しいウィンドウで開かせるかどうか
		@return : void
		@description :
		外部リンクを開かせるウィンドウの設定を行います
		*/
		switchLink : function(isNewWindow){
			if( PSG.DOM.canDOM() == false ) return;
			
			var external = PSG.Link.getExternalLinks();
			for(var i in external){
				PSG.Link.setOpenTarget( external[i], isNewWindow ? "_blank" : "_self" );
			}
			document.getElementById(PSG.LinkSwitcher.formID).className = isNewWindow ? "enable" : "disable";
			PSG.Cookie.setCookie("open", isNewWindow ? "New" : "Same", PSG.Config.LinkSwitcher.expdays );
		}
	},



	StyleSheet : {
		selectID   : "PSGSSSBOX", // セレクトボックスに付けるID。内部的にも使用するので重要
		formID : "PSGSSS", // PSG Style Sheet Selecter の略。フォーム要素の ID。CSS で制御しやすいように付けている
		
		/*
		@access : protected
		@return : 優先/代替スタイルシートに関連している link 要素の配列
		@description :
		link 要素で指定されているスタイルシートを取得します。
		返り値は HTMLLinkElement の配列で、永続スタイルシートは含みません。
		DOM がサポートされていなければ空配列を返します。
		*/
		getStyleSheets : function(){
			if( PSG.DOM.canDOM() == false ) return new Array();
			
			var sheets = new Array();
			var objLinks = document.getElementsByTagName("link");
			for(var i=0; i<objLinks.length; i++){ // この場合は for(var i in objLinks) は正常動作しません！
				if( // styleSheet オブジェクトが使えないブラウザを考慮
				objLinks[i].getAttribute("rel") &&
				objLinks[i].getAttribute("rel").toLowerCase().indexOf("stylesheet") != -1 &&
				objLinks[i].getAttribute("title") ){
					sheets.push(objLinks[i]);
				}
			}
			return sheets;
		},
		
		/*
		@access : public
		@param sheet : 適用するスタイルシート名
		@return : void
		@description :
		sheet と同一名のスタイルシートを有効に、それ以外を無効にします。
		永続スタイルシートには影響を及ぼしません。
		DOM がサポートされていなければ何もしません。
		*/
		changeStyleSheet : function(sheet){
			if( !sheet || PSG.DOM.canDOM() == false ) return;
			
			var sheets = PSG.StyleSheet.getStyleSheets();
			for(var i in sheets){
				/* WinIE6 は以下のようにするとページ読み込み時に何故か全てのスタイルを無効にする。Fxxk。
				sheets[i].disabled = (sheets[i].getAttribute("title") != sheet);
				*/
				sheets[i].disabled = true;
				if(sheets[i].getAttribute("title") == sheet){
					sheets[i].disabled = false;
				}
			}
			PSG.Cookie.setCookie("sheet", sheet, PSG.Config.StyleSheet.expdays);
		},
		
		/*
		@access : protected?
		@return : void
		@description :
		選択スタイル名によるクラス名の再設定と実際の CSS の切り替えを行う。
		イベントで割り当てられて実行される。
		*/
		handleStyleSheet : function(){
			var selectElement = document.getElementById(PSG.StyleSheet.selectID);
			var sheet = selectElement.options[selectElement.selectedIndex].text;
			var options = selectElement.options;
			for(var i=options.length-1; i>=0; i--){
				options[i].className = (options[i].text == sheet) ? "enable" : "disable";
			}
			PSG.StyleSheet.changeStyleSheet(sheet);
		},
		
		
		/*
		@access : public
		@return : void
		@description :
		link 要素で指定されているスタイルシートのタイトルを一覧でセレクトボックスとして出力します。
		出力は div 要素に select 要素を含めた形で行われます。
		form 要素には PSG.StyleSheet.formID を付けます。
		select 要素には PSG.StyleSheet.selectID を付けます。
		このセレクトボックスは選択項目が変更されると
		自動的に適切な changeStyleSheet() を実行されるよう設定されます。
		また、現在有効なスタイルの項目は選択状態にされます。
		DOM がサポートされていなければ何もしません。
		*/
		createController : function(){
			if( PSG.DOM.canDOM() == false ) return;
			
			var selectForm = PSG.DOM.createElement("form");
			var div = PSG.DOM.createElement("div");
			var select = PSG.DOM.createElement("select");
			var sheet = PSG.Cookie.getCookie("sheet");
			var sheets = PSG.StyleSheet.getStyleSheets();
			
			selectForm.id = PSG.StyleSheet.formID;
			selectForm.setAttribute("action", location.href); // form 要素には action 属性が必須
			select.id = PSG.StyleSheet.selectID;
			
			/*
			同一の title 属性を持つスタイルシートの link が複数あると
			option が重複するためセレクトボックスに含める前にチェックします [Feedback 2004-12-19]
			*/
			var titles = new Array();
			for(var i in sheets){
				var title = sheets[i].getAttribute("title");
				if( PSG.Arrays.hasValue(titles, title) == false ){
					titles.push(title);
					var opt = PSG.DOM.createElement("option");
					opt.appendChild( document.createTextNode(title) );
					select.appendChild(opt);
					if( title == sheet ){
						select.selectedIndex = i;
						opt.className = "enable";
					} else {
						opt.className = "disable";
					}
				}
			}
			
			/* 優先/代替スタイル一切適用無し状態が設定で有効なら追加 */
			if( PSG.Config.StyleSheet.enableNoStyle ){
				var nostyle = PSG.DOM.createElement("option");
				nostyle.appendChild( document.createTextNode(PSG.Config.StyleSheet.noStyleName) );
				select.appendChild(nostyle);
				if( sheet == PSG.Config.StyleSheet.noStyleName ){
					select.selectedIndex = titles.length;
					nostyle.className = "enable";
				} else {
					nostyle.className = "disable";
				}
			}
			
			/* テキストを追加 */
			if( PSG.Config.StyleSheet.text ){
				var label = PSG.DOM.createElement("label");
				label.setAttribute("for", PSG.StyleSheet.selectID ); // Feedback by ALIMIKA SATOMI 2004-12-19
				label.appendChild( document.createTextNode(PSG.Config.StyleSheet.text) );
				div.appendChild(label);
			}
			div.appendChild(select);
			selectForm.appendChild(div);
			
			PSG.Event.addEvent( select, "change", PSG.StyleSheet.handleStyleSheet );
			try{
				var targetElement;
				if( PSG.Config.StyleSheet.targetElementID ){
					targetElement = document.getElementById(PSG.Config.StyleSheet.targetElementID);
				} else {
					targetElement = document.getElementsByTagName(PSG.Config.StyleSheet.targetElementName)[PSG.Config.StyleSheet.targetElementIndex-1];
				}
				PSG.DOM.addElement( selectForm, targetElement, PSG.Config.StyleSheet.isBefore );
			}catch(err){}
		},
		
		/*
		@access : public
		@return : void
		@description :
		以前のスタイルシート設定を読み込んで、そのスタイルを反映させます。
		クッキーがなんらかの理由で存在しなければ何もしません。
		*/
		init : function(){
			var sheet = PSG.Cookie.getCookie("sheet");
			if( sheet != null ){
				PSG.StyleSheet.changeStyleSheet(sheet);
			}
		}
	}
}

/*
*
*********** 関数のイベント登録や即座の実行 *************
*
*/
if( PSG.Config.Frame.enable ){
	PSG.Event.addLoadEvent( PSG.Frame.breakFrame );
}
if( PSG.Config.Form.enable ){
	PSG.Event.addLoadEvent( PSG.Form.applySafemodeAll );
}
if( PSG.Config.Link.enable ){
	PSG.Event.addLoadEvent( PSG.Link.removeSelfLinks );
}
if( PSG.Config.LinkSwitcher.enable ){
	PSG.Event.addLoadEvent( PSG.LinkSwitcher.createController );
}
if( PSG.Config.Window.enable ){
	PSG.Event.addLoadEvent( PSG.Window.init );
}
if( PSG.Config.StyleSheet.enable ){
	PSG.Event.addLoadEvent( PSG.StyleSheet.createController );
	PSG.StyleSheet.init(); // 表示スタイルをレンダリング開始前に切り替える
}



}catch(error){} // 先頭の try 文の終了部

/*
*	PSG 配布先 - read a little
*		http://www.readalittle.net/
*
*	local variable : tabstop=4, charset=utf-8, newline=CR+LF
\e
*/

