//=======================================================
//　Pictlayer ー リンク先の画像をレイヤー表示します 
//　script by Photo-note（http://fseasons.blog39.fc2.com/
//　Last update 2009-02-02
//=======================================================

//画像へのリンクをクリックすると、原寸サイズの画像をレイヤーを表示します。
//元に戻るにはもう一度画像をクリックします。
//作者のblogで作動確認いただけます。
//表示される画像の背景色や透明度、画像の枠線などをカスタマイズ出来ます。
//適用するページのhtmlの編集は必要ありません。

//=======================================================
//編集ここから
//=======================================================

// 画像レイヤーの背景色
var Bgc = '#000';

// 不透明度を指定(0-100)
var Opc = '80';

// 画像に装飾用のスタイルをcss形式で指定
var Imgsty = 'border:solid 1px #666;';

// 作動させたい領域のID名を記入すると、他カラムのリンクを検索しません
// よく判らない場合はこのままで結構です
var Tar = '';

// 画像にカーソルを乗せた時のテキスト
var Och = '';

// 画像を閉じる時のテキスト
var Cch = '';

//=======================================================
//編集ここまで
//=======================================================

var DivElement=Imgcontainer=Dwidth='';
var Pict = new Array();
function initi() {
  if(document.getElementsByTagName && document.getElementById) {
    var Parea = (Tar == "")? document.body: (document.getElementById(Tar) || document.body);
    var Links = Parea.getElementsByTagName('a') || 0;
    var LinksNo = Links.length || 0;
    var p = 0;
    for(i=0;i<LinksNo;i++){
      var Href = Links[i].href;
      if(Href.match(/(jpg|jpeg|png|gif)$/i)) {
        p++;
        Nimg = 'I'+p;
        Pict[Nimg] = new Image();
        Pict[Nimg].src = Href;
        if (Links[i].childNodes[0].tagName == 'IMG')
          Links[i].childNodes[0].title = Och;
        else Links[i].title = Och;
          Links[i].target = '_self';
          Links[i].id = Nimg;
          Links[i].onclick = function() {PictLayer(this.id); return false;
        }
      }
    }
  }
  if(p > 0){
    DivElement = document.createElement('div');
    DivElement.style.position = 'absolute';
    DivElement.style.left = 0;
    DivElement.style.top = 0;
    DivElement.style.background = Bgc;
    DivElement.style.display = 'none';
    document.body.appendChild(DivElement);
    Imgcontainer = document.createElement('div');
    Imgcontainer.style.display = 'none';
    document.body.appendChild(Imgcontainer);
  }
}
function PictLayer(ic) {
  var winsize = WinSize();
  var Docsize = DocSize();
  var WinWid = winsize.wid;
  var WinHei = winsize.hei;
  var Dwidth = Docsize.docW;
  var Dheight = Docsize.docH;
  var Sheight = '';
  var Scrleft = winsize.x;
  var ImgElement = Pict[ic];
  var Iwidth = ImgElement.width;
  var Iheight = ImgElement.height;
  var Scrtop = winsize.y;
  var Dve_w = Math.max(Iwidth, Math.max(Dwidth, WinWid));
  var Dve_h = Math.max(Iheight, Math.max(Dheight, WinHei));
  var Left = Math.max(((Dve_w/2)-(Iwidth/2)), 0);
  var Top = Math.max(((WinHei/2)-(Iheight/2))+Scrtop, 0);
  Imgcontainer.innerHTML = '<img src="'+ImgElement.src+'" title="'+Cch+'" style="'+Imgsty+'cursor:pointer;">';
  Imgcontainer.style.position = 'absolute';
  Imgcontainer.style.left = Left+'px';
  Imgcontainer.style.top = Top+'px';
  Imgcontainer.style.display = 'block';
  //Imgcontainer.style.z-index = '5';
  Imgcontainer.onclick = function() {removePict();}
  DivElement.style.width = Dve_w+'px';
  DivElement.style.height = Dve_h+'px';
  DivElement.style.display = 'block';
  setOpacity(DivElement, Opc);
}
function removePict(pic) {
  Imgcontainer.style.display = 'none';
  DivElement.style.display = 'none';
}
function WinSize() {
  var Obj = new Object();
  Obj.wid = document.documentElement.clientWidth || document.body.clientWidth; 
  Obj.hei = document.documentElement.clientHeight || document.body.clientHeight;
  Obj.x = document.documentElement.scrollLeft ||document.body.scrollLeft;
  Obj.y = document.documentElement.scrollTop || document.body.scrollTop;
  return Obj;
}
function DocSize() {
  var Cdn = new Object();
  Cdn.docW = document.documentElement.scrollWidth || document.body.scrollWidth;
  Cdn.docH = document.documentElement.scrollHeight || document.body.scrollHeight;
  return Cdn;
}
function setOpacity(obj,num) {
  if (obj,num) {
    if (window.attachEvent && !window.opera) obj.style.filter = 'alpha(opacity=' + num + ')';
    else if (navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1) obj.style.MozOpacity = num/100;
    else obj.style.opacity = num/100;
  }
}
function showFlash(){
  var flashObjects = document.getElementsByTagName("object");
  for (i = 0; i < flashObjects.length; i++) {
    flashObjects[i].style.visibility = "visible";
  }
  var flashEmbeds = document.getElementsByTagName("embed");
  for (i = 0; i < flashEmbeds.length; i++) {
    flashEmbeds[i].style.visibility = "visible";
  }
}
function hideFlash(){
  var flashObjects = document.getElementsByTagName("object");
  for (i = 0; i < flashObjects.length; i++) {
    flashObjects[i].style.visibility = "hidden";
  }
  var flashEmbeds = document.getElementsByTagName("embed");
  for (i = 0; i < flashEmbeds.length; i++) {
    flashEmbeds[i].style.visibility = "hidden";
  }
}
function EventListener(target, type, func){
  if(target.attachEvent){
    target.attachEvent("on" + type, func);
  } else if(target.addEventListener){
    target.addEventListener(type, func, true);
  }else {
    target["on" + type] = func;
  }
}
EventListener(window, 'load', initi);
