  var message_width = 400
  var message_height = 120
  
  var Win    = navigator.userAgent.indexOf('Win')!=-1
  var Mac    = navigator.userAgent.indexOf('Mac')!=-1
  var X11    = navigator.userAgent.indexOf('X11')!=-1
  var Moz    = navigator.userAgent.indexOf('Gecko')!=-1
  var msie   = navigator.userAgent.indexOf('MSIE')!=-1
  var bwlang = getBrowserLANG()
  //入力後退避位置
  if( Mac && msie ){ var gox=2000 ; var goy=2000 }
  else             { var gox=-300 ; var goy=-300 }
  //n4用レイヤー出力位置
  if(document.layers){var n4_left=300 ; var n4_top= 100 }
  messageLay['message']=new messageLay('message',-100,-100,'')

  function wrtMessageLay(e,message,execLink){
	openMessage();
	var def_flag = true;
	
    set_event__wrtMessageLay() //イベントキャプチャースタート

    ddata = ''
    ddata = '<div id=message_lay_obj>'
    ddata += '<TABLE class=confirm_message WIDTH=' + message_width + ' HEIGHT=' + message_height + '>\n'
    ddata += '   <TR><th>確認メッセージ</th></tr>'
	ddata += '   <TR><td>'
	
	ddata += '   <b>指定したデータを削除します。よろしいですか？</b><br><br>'
	ddata += '   削除対象データ<br>'
	ddata += '   ' + message 
	ddata += '   <br>'
	ddata += '   <a class=a_confirm_message href="' + execLink + '">はい</a>'
	ddata += '   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
	ddata += '   <a class=a_confirm_message href="javascript:closeMessage();">いいえ</a>'
	
	ddata += '</td></TR>'
    ddata += '</TABLE>\n'
    ddata += '</DIV>\n'
  
    messageLay['message'].outputLAYOJ(getLayOj('message'),'')//一時クリア
    messageLay['message'].outputLAYOJ(getLayOj('message'),ddata)

    if(e!=null){
      //if(navigator.userAgent.indexOf('Gecko')!=-1){   //n6,m1用
      if(navigator.userAgent.indexOf('Netscape6')!=-1){   //n6,m1用
        var left = e.currentTarget.offsetLeft + 50
        var top  = e.currentTarget.offsetTop  - 100
      } else if(navigator.userAgent.indexOf('Opera')!=-1){   //Opera
        var left = getMouseX(e) + 50
        var top  = getMouseY(e) + document.body.scrollTop - 100
      } else {
        var left = getMouseX(e) + 50
        var top  = getMouseY(e) - 100
      }
      if (top<0){
      	top=0;
      }
      if(document.layers){ var left = n4_left ; var top  = n4_top }//n4修正
      messageLay['message'].moveLAYOJ(getStyleOj('message'),left,top)
    } else {
        if (document.layers){
            top = document.body.scrollTop + (window.innerHeight / 2) - (message_height / 2);//n4
        } else {
            top = document.body.scrollTop + (document.body.clientHeight / 2) - (message_height / 2);
        }
        left = document.body.clientWidth / 2 - (message_width / 2);
    	if(document.layers){ var left = n4_left ; var top  = n4_top }//n4修正
      messageLay['message'].moveLAYOJ(getStyleOj('message'),left,top)
    }
  
  }

  //--レイヤー生成
  function messageLay(layName,x,y){
    this.id      = layName   // ドラッグできるようにするレイヤー名
    this.x       = x         // 初期left位置
    this.y       = y         // 初期top位置
    
    if(document.layers)      //n4用
      this.div='<layer name="'+layName+'" left="'+x+'" top="'+y+'"\n'
              +'       onfocus="clickElement=\''+layName
                                    +'\';mdown_wrtMessageLay(event);return false">\n'
              +'<a     href="javascript:void(0)"\n'
              +'       onmousedown="clickElement=\''+layName
                                    +'\';mdown_wrtMessageLay(event);return false">\n'
              + '</a></layer>\n'
    else                     //n4以外用
      this.div='<div  id="'+layName+'" class="dragLays"\n'
              +'      onmousedown="clickElement=\''+layName
                                    +'\';mdown_wrtMessageLay(event);return false"\n'
              +'      style="position:absolute; left:'+x+'px;top:'+y+'px">\n'
              + '</div>\n'
    document.write(this.div)
    return 
  }
  messageLay.prototype.moveLAYOJ   = moveLAYOJ   //メソッドを追加する
  messageLay.prototype.outputLAYOJ = outputLAYOJ //メソッドを追加する
  messageLay.prototype.zindexLAYOJ = zindexLAYOJ //メソッドを追加する

  //--レイヤー移動
  function moveLAYOJ(oj,x,y){
    if(document.getElementById){  //e5,e6,n6,m1,o6用
      oj.left = x
      oj.top  = y
    } else if(document.all){      //e4用
      oj.pixelLeft = x
      oj.pixelTop  = y
    } else if(document.layers)    //n4用
      oj.moveTo(x,y)
    hideOverMessageElement(x,y);
  }
  //--HTML出力
  function outputLAYOJ(oj,html){
    if(document.getElementById) oj.innerHTML=html  //n6,m1,e5,e6用
    else if(document.all) oj.innerHTML=html //e4用
    else if(document.layers)                       //n4用
       with(oj.document){
         open()
         write(html)
         close()
      }
  }
  //--奥行きZ座標set 
  function zindexLAYOJ(oj,zindex){
    if(document.getElementById) oj.zIndex=zindex  //n6,m1,e5,e6,o6用
    else if(document.all)       oj.zIndex=zindex  //e4用
    else if(document.layers)    oj.zIndex=zindex  //n4用
  }

  //--layNameで指定したオブジェクトを返す(必ずonload後に実行すること)
  function getLayOj(layName){  
    if(document.getElementById) 
      return document.getElementById(layName)           //e5,e6,n6,m1,o6用
    else if(document.all)   return document.all(layName)    //e4用
    else if(document.layers)return document.layers[layName] //n4用
  }
  function getStyleOj(clickElement){  
       return (!!document.layers)?getLayOj(clickElement)
                                 :getLayOj(clickElement).style
  }

  //--マウスX座標get 
  function getMouseX(e){
    if(window.opera)                            //o6用
        return e.clientX
    else if(document.all)                       //e4,e5,e6用
        return document.body.scrollLeft+event.clientX
    else if(document.layers||document.getElementById)
        return e.pageX                          //n4,n6,m1用
  }

  //--マウスY座標get 
  function getMouseY(e){
    if(window.opera)                            //o6用
        return e.clientY
    else if(document.all)                       //e4,e5,e6用
        return document.body.scrollTop+event.clientY
    else if(document.layers||document.getElementById)
        return e.pageY                          //n4,n6,m1用
  }

  //--レイヤ－左辺X座標get 
  function getLEFT(layName){
    if(document.all)                            //e4,e5,e6,o6用
      return document.all(layName).style.pixelLeft
    else if(document.getElementById)            //n6,m1用
      return (document.getElementById(layName).style.left!="")
              ?parseInt(document.getElementById(layName).style.left):""
    else if(document.layers)                    //n4用
      return document.layers[layName].left 
  }

  //--レイヤ－上辺Y座標get 
  function getTOP(layName){
    if(document.all)                          //e4,e5,e6,o6用
      return document.all(layName).style.pixelTop
    else if(document.getElementById)          //n6,m1用
      return (document.getElementById(layName).style.top!="")
              ?parseInt(document.getElementById(layName).style.top):""
    else if(document.layers)                  //n4用
      return document.layers[layName].top 
  }

  //--マウスカーソルを動かした時レイヤーもmoveLAYOJで動かす
  function mmove_wrtMessageLay(e) {
    if(!window.clickElement) return
    if (getLayOj(clickElement)) {
       movetoX = getMouseX(e) - offsetX
       movetoY = getMouseY(e) - offsetY
       var oj=getStyleOj(clickElement)
      messageLay[clickElement].moveLAYOJ(oj,movetoX,movetoY)
      return false
    }
  }

  //--マウスボタンを押し下げた時
  //  レイヤー内のカーソルoffset位置取得
  function mdown_wrtMessageLay(e) {
    if(navigator.userAgent.indexOf('Gecko')!=-1)   //n6,m1用
      if(e.currentTarget.className != 'dragLays') return
      else clickElement = e.currentTarget.id
    var selLay = getLayOj(clickElement)
    if (selLay){
        offsetX = getMouseX(e) - getLEFT(selLay.id)
        offsetY = getMouseY(e) - getTOP(selLay.id)
       if(document.layers){
        offsetX = getMouseX(e)+10 ; offsetY = getMouseY(e)+10
       }
    }
    return false
  }

  //--マウスボタンを上げた時ドラッグ解除
  var zcount = 0
  function mup_wrtMessageLay(e) {
    if(!window.clickElement) return
    if (getLayOj(clickElement)) {
      messageLay[clickElement].zindexLAYOJ(
        getStyleOj(clickElement),zcount++)
      clickElement=null
    }
  }

  //--イベントキャプチャー開始
  function set_event__wrtMessageLay(){
    document.onmousemove = mmove_wrtMessageLay   //n4,m1,n6,e4,e5,e6,o6用
    document.onmouseup   = mup_wrtMessageLay     //n4,m1,n6,e4,e5,e6,o6用
    if(navigator.userAgent.indexOf('Gecko')!=-1)  //m1,n6用
      document.onmousedown = mdown_wrtMessageLay
    if(document.layers){                          //n4用
      document.captureEvents(Event.MOUSEMOVE)
      document.captureEvents(Event.MOUSEUP)
    }
  }

  //--イベントキャプチャー停止
  function stop_event__wrtMessageLay(){
    document.onmousemove = null                   //n4,m1,n6,e4,e5,e6,o6用
    document.onmouseup   = null                   //n4,m1,n6,e4,e5,e6,o6用
    if(navigator.userAgent.indexOf('Gecko')!=-1)  //m1,n6用
      document.onmousedown = null
    if(document.layers){                          //n4用
      document.releaseEvents(Event.MOUSEMOVE)
      document.releaseEvents(Event.MOUSEUP)
    }
  }

  //--ブラウザの言語を取得
  function getBrowserLANG(){
    if(document.all)                  
      return navigator.browserLanguage      //e4,e5,e6,o6用
    else if(document.layers) 
      return navigator.language             //n4用
    else if(document.getElementById) 
      return navigator.language.substr(0,2) //n6,n7,m1用
  }
  
  function openMessage(){
    var obj=document.getElementById("message_lay_obj");
    if (obj != null){
      obj.style.display="block";
    }
  }
  function closeMessage(){
    var obj=document.getElementById("message_lay_obj");
    obj.style.display="none";
    hideOverMessageElement(2000,2000);
  }


function hideOverMessageElement(x,y){
    function getStyleProp(obj, style){
        var value = obj.style[style];
        if (!value) {
            if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
                value = document.defaultView.
                getComputedStyle(obj, "").getPropertyValue(style);
            } else if (obj.currentStyle) { // IE
                value = obj.currentStyle[style];
            } else {
                value = obj.style[style];
            }
        }
        return value;
    };

    if (msie){
        var tags = new Array("applet", "iframe", "select");
        var EX1 = x;//
        var EX2 = message_width + EX1;
        var EY1 = y;//y
        var EY2 = message_height + EY1;

        for (var k = tags.length; k > 0; ) {
            var ar = document.getElementsByTagName(tags[--k]);
            var cc = null;
            for (var i = ar.length; i > 0;) {
                cc = ar[--i];
                var cp = getAbsolutePos(cc);
                var CX1 = cp.x;
                var CX2 = cc.offsetWidth + CX1;
                var CY1 = cp.y;
                var CY2 = cc.offsetHeight + CY1;

                if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
                    if (!cc.__msh_save_visibility) {
                        cc.__msh_save_visibility = getStyleProp(cc, "visibility");
                    }
                    cc.style.visibility = cc.__msh_save_visibility;
                } else {
                    if (!cc.__msh_save_visibility) {
                        cc.__msh_save_visibility = getStyleProp(cc, "visibility");
                    }
                    cc.style.visibility = "hidden";
                }
            }
        }
    }
}

function getAbsolutePos(el) {
    var r = { x: el.offsetLeft, y: el.offsetTop };
    if (el.offsetParent) {
        var tmp = getAbsolutePos(el.offsetParent);
        r.x += tmp.x;
        r.y += tmp.y;
    }
    return r;
};

