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







if ( document.styleSheets



 && !(navigator.userAgent.indexOf("Mac_PowerPC") != -1



 && navigator.userAgent.indexOf("MSIE 4") != -1)) {



 /* Scriptでスタイルシートを扱えるブラウザのみ実行される */







/* 以下設定 */







label="テーマ選択："; // 選択フォーム左の文字列



cdomain="www.harunaru.com"; // サイトのドメイン名



cpath="/diary/"; // サイトのパス



cdays=10; // クッキーの有効日数 0=ブラウザ終了まで



insertform=true;



 /* 選択フォームを自動的に挿入するかどうか



    true=挿入する



    false=挿入しない(手動でフォームを書き込む) */



targetelement="hr"; 



 /* 選択フォームは、ここで指定した要素で一番最初に現れるものの



    直前に挿入される(自動的に挿入するとき) */



addss=false;



 /* スタイルシートを追加するかどうか



    true=追加する



    false=追加しない */



addstyles=new Array(



 '初夏' , 'http://homepage1.nifty.com/critical/summer.css' ,



 'ノート' , 'http://homepage1.nifty.com/critical/notebook.css' );



 /* 追加するスタイルシートを名前とURLの組で指定する */







/* 以上設定 */







 main();



}







function main(){



 /* メイン関数 */



 N6 = navigator.product == "Gecko";



 sfTitles="";







 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();



}







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>';



}







function fWriteForm(){



 /* 選択フォームを書き出す */



 if(document.styleSheets){



  fMakeHTML();



  document.write('<div class="selectsheet">',nHTML,'</div>');



 }



}







function fEnd(){



 /* 終了処理 */



 fReadSS();



 if (NowSheet!=sheet) fSetCookie('sheet',NowSheet);



}







function fReadSS(){



 /* 現在適用されているスタイルシートを読み込む */



 NowSheet="none";



 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);



 }



}




