// イベントハンドラ：onMouseover
// 外部関数：addAnchor
//======画像読み込みの設定
var onMouseLoad=true;   // true:カーソルを合わせただけ、false:LOADボタンをクリックしてから
//======CSS設定
//if(!lightmode){
// document.write('<style type="text/css">');
// document.write('#controlPanel{right:18px;} body{overflow:hidden;} #dl{height:100%;overflow-y:scroll;}');
// document.write('</style>\n');
//}
//==========画像処理等
var lightmode = true;
// モード切替
function changeMode(){
 var bd=document.body;
 var dl=document.getElementById("DL");
 var tp=document.getElementById('thumbPanel');
 var cp=document.getElementById('controlPanel');
 if(lightmode){//normalへ
  //scroll位置の記憶
  var y=bd.scrollTop;
  //擬似フレーム化
  bd.style.overflowY="hidden";
  dl.style.posWidth =bd.clientWidth-120;
  dl.style.height   ="100%";
  dl.style.overflowY="scroll";
  //モード移行
  lightmode=false;
  //scroll
  dl.scrollTop=y;
  scrollTo(0,0);
  //tpの常時表示
  tp.style.visibility="visible";
  //cpの移動
  cp.style.posRight=3;
  //panel=on
  panel=true;
 }else{ //lightへ
  var dcW=panel ? dl.clientWidth+120 : dl.clientWidth;
  //scroll位置の記憶
  var y=dl.scrollTop;
  //擬似フレーム解除
  bd.style.overflowY="scroll";
  dl.style.posWidth =dcW;
  dl.style.posHeight="";
  dl.style.overflowY="auto";
  //モード移行
  lightmode=true;
  //scroll
  bd.scrollTop=y;
  //tpの非表示
  tp.style.visibility="hidden";
  //cpの移動
  cp.style.posRight=3;
  //panel=off
  panel=false;
 }
}

// パネルの展開
var panel;
function changePanel(){
 if(lightmode){return}//&& confirm("Normalモードに移行しますか？")){changeMode();return}else{return}
 var dl=document.getElementById("DL");
 var tp=document.getElementById('thumbPanel');
 var cp=document.getElementById('controlPanel');
 if(panel){//閉じる
  cp.style.posRight=18;
  dl.style.posWidth=document.body.clientWidth;
  tp.style.visibility="hidden";
  panel=false;
 }else{ //開く
  cp.style.posRight=3;
  dl.style.posWidth=document.body.clientWidth-120
  tp.style.visibility="visible";
  panel=true;
 }
}
// LOADボタン
function insButton(a,hRH) {
 if(a.className!='replaced' && a.parentElement.tagName!='DIV'){
  if(imageExt2(a.href)){
   var nHTML='<input type="button" value="LOAD" onClick=\'loadImage(this,"'+a.href+'");blur()\'>';
  }else if(imageExt(a.href)){
   var nHTML='<input type="button" value="LOAD" onClick=\'loadImage(this,"'+a.href+'");blur()\'>'
            +'<input type="button" value="VIEW" onClick=\'changeView("swf","'+a.href+'");blur()\'>';
  }else{
   if(hRH){var ahref=hRH}else{var ahref=a.href}
   var nHTML='<input type="button" value="VIEW" onClick=\'changeView("html","'+ahref+'");blur()\'>'
            +'<input type="button" value="CHECK" onClick=\'changeView("html","http://www.tekijuku.com/URL/?url='+ahref+'");blur()\'>';
  }
  a.insertAdjacentHTML('AfterEnd',nHTML);
  a.className = 'replaced';
  if(onMouseLoad && imageExt2(a.href)){loadImage(a.nextSibling,a.href)}
  return;
 }
}
// 画像読込
function loadImage(btn,href){
// if(lightmode && takeArisk){changeMode()}
 if(!panel){changePanel()}
 var tp = document.getElementById("thumbPanel");
 if(btn.tagName!="A"){
  var thumbs = document.getElementsByTagName("IMG");
  var l=thumbs.length;
  for(var i=l;i--;){if(thumbs[i].src==href){
   if(lightmode){tp.style.visibility="visible";viewed=true;}
   thumbs[i].scrollIntoView(true);
   imgOver(thumbs[i],100);
   return true;
  }}
 }
 if(btn.parentElement.tagName=="DD"){var dt = btn.parentElement.previousSibling;}
 else                               {var dt = btn.parentElement;}
 var num = dt.firstChild.innerText;
 if(href.search(/\.swf/i)==-1){
  var nHTML = '<div><img src="'+href+'" onLoad="imgResult(this)" onError="imgResult(this)" onClick="changeView(\'img\')" onmouseover="imgOver(this,100)" onmouseout="imgOver(this,30)">'
            +addAnchor(num,num)+' '
            +'<button onClick="changeSize(this);blur()">...</button>'
            +'<button onClick="removeThumb(this)">DEL</button>'
            +'</div>';
 }else{
  var nHTML = '<div><embed src="'+href+'" onFocus="changeView(\'swf\')"></embed>'
            +addAnchor(num,num)+' '
            +'<button onClick="blur()">___</button>'
            +'<button onClick="removeThumb(this)">DEL</button>'
            +'</div>';
 }
 if(btn.tagName=="INPUT"){btn.value = 'LOADED';}
 tp.insertAdjacentHTML('BeforeEnd',nHTML);
 //表示継続
 if(!viewed){tp.style.visibility="visible";viewed=true;}
}
// 画像読込判定\\
function imgResult(img){
 var btn=img.parentElement.children.item(2);
 if(event.type=="load"){btn.value='___'; img.style.display='block';}
 else                  {btn.value='NONE';btn.style.color='#C00';}
}
// サイズの切替
function changeSize(btn){
 var div=document.getElementById("viewPanel");
 var img=div.firstChild;
 if(!img){return}
 if(btn.innerText.match(/100%|_+/)){
  var hRatio=div.style.pixelWidth /img.offsetWidth;
  var vRatio=div.style.pixelHeight/img.offsetHeight;
  var ratio =(hRatio>vRatio) ? vRatio : hRatio;
  if(ratio>1){ratio=1}else{img.style.zoom=ratio*100+'%';}
  btn.innerText=Math.round(ratio*100-0.5)+"%";
 }else{
  img.style.zoom="100%";
  btn.innerText="100%";
 }
}
// サムネイルの削除
function removeThumb(btn){btn.parentElement.removeNode(true);}
// 画像表示の切替
function changeView(mode,href){
 if(!href){href=event.srcElement.src}
 var div   =document.getElementById("viewPanel");
 var thumbs=document.getElementById("thumbPanel");
 if(thumbs){
  var l=thumbs.childNodes.length;
  for(var i=l;i--;){
   var stateBtn=thumbs.childNodes[i].childNodes[2];
   if(stateBtn.tagName=="BUTTON" && stateBtn.innerText!="NONE"){stateBtn.innerText="___"} //embedはchildNodesに入らない?
  }
 }
 if(!div.hasChildNodes() || div.firstChild.src!=href){
  var nHTML,buttons='<button onclick="window.open(\''+href+'\',\'_parent\')">OPEN</button><button onclick="clearView()">CLOSE</button>';
  if     (mode=="img") {nHTML='<img src="'+href+'" ondragstart="imageMoveStart(this)" ondrag="imageMove(this)" onclick="clearView()">'}
  else if(mode=="swf") {nHTML='<embed src="'+href+'"></embed>'+buttons}
  else if(mode=="html"){nHTML='<object data="'+href+'" onError="htmlNotFound()"></object>'+buttons}
  div.innerHTML=nHTML;
  div.style.posWidth =document.body.clientWidth -130;
  div.style.posHeight=document.body.clientHeight-20;
  if(mode=="img"){changeSize(event.srcElement.parentElement.childNodes[2])}
 }else{clearView()}
}
//Viewパネルクリア
function clearView(){
 var div=document.getElementById("viewPanel");
 while(div.hasChildNodes()){div.childNodes[0].removeNode(true)}
 div.style.posWidth ="";
 div.style.posHeight="";
}
var imageMoveX,imageMoveY;
function imageMoveStart(obj){
 imageMoveX=obj.parentElement.scrollLeft+event.clientX;
 imageMoveY=obj.parentElement.scrollTop +event.clientY
}
function imageMove(obj)     {
 obj.parentElement.scrollLeft=imageMoveX-event.clientX;
 obj.parentElement.scrollTop=imageMoveY -event.clientY
}
function htmlNotFound(){
 alert('404 NotFound かも\ ');
 clearView();
}
// LOADボタン挿入対象拡張子（通常用）
function imageExt(isu) {if(isu.search(/\.png$|\.jp(g|e|eg)$|\.gif$|\.bmp$|\.swf/i)!=-1){return true}else{return false}}
// LOADボタン挿入対象拡張子（一括読込用）
function imageExt2(isu){if(isu.search(/\.png$|\.jp(g|e|eg)$|\.gif$|\.bmp$/i)!=-1){return true}else{return false}}

// 画像一括読み込み
var allLoaded;
function allImageLoad(mode){
// if(confirm("画像の一括読込をしますか？")==false){return true;}
// if(allLoaded){return}
 var dds=document.getElementsByTagName("DD");
 var ddl=dds.length;var exist,onlyNew="";
 for(var i=0;i<ddl;i++){
  if(mode=="new"){if(dds[i].previousSibling.className!="new"){continue}}
  cl=dds[i].childNodes.length;
  for(j=0;j<cl;j++){
   cn=dds[i].childNodes[j];
   if(cn.tagName == "A"){
    if(imageExt2(cn.href)){loadImage(cn,cn.href);exist=true}
   }
  }
 }
 if(!exist){
  var target;
  if(mode=="new"){var target="新着レス"}else{var target="全てのレス"}
  alert(target+"に画像はないよ\ ")
 }else{
//  allLoaded=true;
 }
}
// モザイク処理
function imgOver(my,num) {my.style.filter="Alpha(opacity="+num+")"}
