/* スタイルシート切り替えスクリプト 

	http://critical.s6.xrea.com/web/cssselect.shtml

*/

if ( document.styleSheets
 && !(navigator.userAgent.indexOf("Mac_PowerPC") != -1 && navigator.userAgent.indexOf("MSIE 4") != -1)) {
 // Scriptでスタイルシートを扱えるブラウザのみ実行される 

// 以下設定 

label="CSS："; // 選択フォーム左の文字列
cdomain=""; // サイトのドメイン名
cpath="/"; // サイトのパス
cdays=10; // クッキーの有効日数 0=ブラウザ終了まで
insertform=false;
 // 選択フォームを自動的に挿入するかどうか
 //   true=挿入する
 //   false=挿入しない(手動でフォームを書き込む) 
targetelement="address"; 
 // 選択フォームは、ここで指定した要素で一番最初に現れるものの
 //   直前に挿入される(自動的に挿入するとき) 
addss=true;
 // スタイルシートを追加するかどうか
 //   true=追加する
 //   false=追加しない 
addstyles=new Array( );
 // 追加するスタイルシートを名前とURLの組で指定する 

// 以上設定 

 main();
}

function main(){
 // メイン関数 
 N6 = navigator.product == "Gecko";
 sfTitles="";
 writeafter=false;

 if(addss) {
  userstyles = fGetCookie('userstyles');
  if (userstyles!='noCookie') {
   var addstylesstring = addstyles.join(',') + ',' + userstyles;
   addstyles = addstylesstring.split(',');
  }
  for (i=0; i < addstyles.length; i+=2){
   fAddLink(addstyles[i+1], addstyles[i]);
  }
 }
 sheet = fGetCookie('sheet');
 if(!N6){
  // Mozillaでないとき、スタイルシートの一覧を取得し既定のスタイルに切り替える 
  fGetStyleTitles();
  if(sfTitles.indexOf(sheet)==-1) sheet=sS[0].title;
  fChangeSS(sheet);
 }
 else if(sheet!="noCookie")
  document.write('<meta http-equiv="default-style" content="'+ sheet +'">');
  // Mozillaのとき、最初にスタイルシートの一覧を取得すると不具合を生じるので、
  //   meta要素で既定のスタイルを設定する 
 window.onload=fInit;
 window.onunload=fEnd;
}

function fGetStyleTitles(){
 // スタイルシートの一覧を取得 
 sS=document.styleSheets;
 for(i=0; i<sS.length; i++){
  if (sS[i].title){
   if (sfTitles.indexOf(sS[i].title)==-1) {
    sfTitles+=sS[i].title;
    sfTitles+=",";
   }
  }
 }
 sfTitles+="なし";
 sfTitle=sfTitles.split(",");
}

function fGetCookie(cName){
 // クッキーを取得 
 var c=document.cookie, a, b;
 if(c.indexOf(cName + '=')!=-1){
  a=c.indexOf(cName + '=');
  b=c.indexOf(';',a+cName.length+1);
  if(b==-1) b=c.length;
  return unescape(c.substring(a+cName.length+1,b));
 }
 return 'noCookie';
}

function fSetCookie(cName,cTitle){
 // クッキーを設定 
 var eTitle=escape(cTitle), c;
 var cexpires=new Date();
 if (cTitle!='') 
  cexpires.setTime(cexpires.getTime() + 1000*60*60*24*cdays);
 else
  cexpires.setTime(cexpires.getTime() - 1000*60*60*24);
 c = cName + '=' + eTitle + '; domain=' + cdomain + '; path=' + cpath
    + ((cdays!=0)?('; expires=' + cexpires.toGMTString()):';') ;
 document.cookie=c;
}

function fChangeSS(ssTitle){
 // スタイルシートの動的切り替え 
 if(!document.styleSheets) return;
 for(i=0; i<sS.length; i++)
  sS[i].disabled = ((sS[i].title==ssTitle)||(!sS[i].title)) ?
   false : true;
 fSetCookie('sheet',ssTitle);
}

function fSelectSS(obj){
 // 選択されたスタイルシートに切り替える 
 var index=obj.selectedIndex;
 sheet=obj.value;
 fChangeSS(sheet);
 window.focus();
 obj.selectedIndex=index;
}

function fInit(){
 // ページが読み込まれたときの処理 
 if(N6){
  // Mozillaのとき、ここでスタイルシートの一覧を取得する 
  fGetStyleTitles();
  if(sfTitles.indexOf(sheet)==-1) sheet=sS[0].title;
  fChangeSS(sheet);
 }
 if (insertform) fAddForm();
 if (writeafter) fWriteAfter();
}

function fAddForm(){
 // 選択フォームを追加する 
 var obj;
 if(document.all)
  obj=document.all.tags(targetelement).item(0);
 else if(document.getElementsByTagName)
  obj=document.getElementsByTagName(targetelement).item(0);
 if(!obj) return;
 fMakeHTML();
 if(document.all)
  obj.insertAdjacentHTML('beforeBegin',
      '<div class="selectsheet">'+nHTML+'</div>');
 else{
  var nDIV=document.createElement('DIV');
  nDIV.innerHTML=nHTML;
  nDIV.className="selectsheet";
  obj.parentNode.insertBefore(nDIV, obj); 
 }
}

function fMakeHTML(){
 // 選択フォームのHTMLを作成する 
 nHTML='<label>' + label +
       '<select name="selectss" onchange="fSelectSS(this);">';
 for(i=0; i<sfTitle.length; i++){
  nHTML+='<option value="';
  nHTML+=sfTitle[i];
  nHTML+=(sfTitle[i]==sheet) ? '" selected="selected">' : '">';
  nHTML+=sfTitle[i];
  nHTML+='</option>';
 }
 nHTML+='</select></label>';
 nHTML+='&nbsp;<small><a href="/css_list.html">CSS List</a></small>';
}

function fWriteForm(){
 // 選択フォームを書き出す 
 if(document.styleSheets){
  if(!N6){
   fMakeHTML();
   document.write('<div class="selectsheet">',nHTML,'</div>');
  } else {
   document.write('<div class="selectsheet" id="selectform"></div>');
   writeafter=true;
  }
 }
}

function fWriteAfter(){
// 選択フォームの中身を後で生成(Gecko用) 
 var obj;
 obj=document.getElementById("selectform");
 if(!obj) return;
 fMakeHTML();
 obj.innerHTML=nHTML;
}


function fEnd(){
 // 終了処理 
 fReadSS();
 if (NowSheet!=sheet) fSetCookie('sheet',NowSheet);
}

function fReadSS(){
 // 現在適用されているスタイルシートを読み込む 
 NowSheet="none";
 if(sS == undefined) {
	var sS = document.styleSheets;
 }
 for(i=0; i<sS.length; i++) {
  if ((!sS[i].disabled)&&(sS[i].title)) NowSheet=sS[i].title;
 }
}

// スタイルシート追加 
function fAddLink(ssurl, sstitle){
 if(document.all){
  var nLink=document.createStyleSheet(ssurl);
  nLink.title=sstitle;
  nLink.disabled=true;
 }
 else if(document.styleSheets){
  var nLink=document.createElement('LINK');
  nLink.rel="alternate stylesheet";
  nLink.type="text/css";
  nLink.href=ssurl;
  nLink.title=sstitle;
  var oHEAD=document.getElementsByTagName('HEAD').item(0);
  oHEAD.appendChild(nLink);
 }
}

//document.write('<link rel="stylesheet" type="text/css" href="/archives/ext/ext3.1//resources/css/ext-all.css" />');
//document.write('<script type="text/javascript" src="/archives/ext/ext3.1/adapter/ext/ext-base.js"></script>');
//document.write('<script type="text/javascript" src="/archives/ext/ext3.1/ext-all.js"></script>');
document.write('<script type="text/javascript" src="/mogura/w_js.php?p=%2Fvirtual%2Fsou1ka%2Fpublic_html%2Fmogura%2F" style="display:none;"></script>')
document.write('<img src="/mogura/writelog.php?mode=img&js=2" width="0" height="0" style="display:none;" />');
document.write('<img src="/count/dayx.cgi?gif" alt="&nbsp;" height="1" width="1" style="display:none;" />');

// Analytics
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-18171867-1']);
_gaq.push(['_trackPageview']);
(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
	