/*********************************************************************
 * Toshirou Takahshi tato@fureai.or.jp
 * Support http://game.gr.jp/js/
 *
 * Change 2004-10-09 by Kan Fushihara 
 * 
 *********************************************************************/

function dragLay(layName,x,y){
  this.id      = layName
  this.x       = x
  this.y       = y
  return 
}
dragLay.prototype.moveLAYOJ = moveLAYOJ

function moveLAYOJ(oj,x,y){
  if(document.getElementById){  //e5,e6,n6,m1,o6!)
    oj.left = x + 'px'
    oj.top  = y + 'px'
  } else if(document.all){      //e4!)
    oj.pixelLeft = x
    oj.pixelTop  = y
  } else if(document.layers)    //n4!)
    oj.moveTo(x,y)
}

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 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!)
}

document.onmousemove = mmove
document.onmouseup = mup
if(navigator.userAgent.indexOf('Gecko')!=-1)   //m1,n6!)
  document.onmousedown = mdown
if(document.layers){                           //n4!)
  document.captureEvents(Event.MOUSEMOVE)
  document.captureEvents(Event.MOUSEUP)
}

function getMouseX(e){
  if(window.opera)                            //o6!)
      return e.clientX
  else if(document.all && document.getElementById && (document.compatMode=='CSS1Compat')) // e6
      return document.documentElement.scrollLeft+event.clientX
  else if(document.all){                       //e4,e5
      return document.body.scrollLeft+event.clientX
  }else if(document.layers||document.getElementById)
      return e.pageX                          //n4,n6,m1!)
}

function getMouseY(e){
  if(window.opera)                            //o6!)
      return e.clientY
  else if(document.all && document.getElementById && (document.compatMode=='CSS1Compat')) // e6
      return document.documentElement.scrollTop+event.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!)
}

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 
}

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 
}

function mmove(e) {
  if(!window.clickElement) return
  if (getLayOj(clickElement)) {
     movetoX = getMouseX(e) - offsetX
     movetoY = getMouseY(e) - offsetY

     var oj=(!!document.layers)?getLayOj(clickElement)
                               :getLayOj(clickElement).style
    moveLAYOJ(oj,movetoX,movetoY)
    sticky[clickElement].x = movetoX
    sticky[clickElement].y = movetoY
    moveLine(clickElement)
    return false
  }
}

function mdown(e) {
  if(navigator.userAgent.indexOf('Gecko')!=-1)   //n6,m1!)
    if(e.currentTarget.className != 'sticky') return
    else clickElement = e.currentTarget.id
  var selLay = getLayOj(clickElement)
  if (selLay){
      offsetX = getMouseX(e) - getLEFT(selLay.id)
      offsetY = getMouseY(e) - getTOP(selLay.id)
  }
  return false
}

var zcount = 1
function mup(e) {
  if(lMode) saveLine();
  if(!window.clickElement) return false
  if (getLayOj(clickElement)) {
    zindexLAYOJ((!!document.layers)?getLayOj(clickElement)
                   :getLayOj(clickElement).style,zcount++)
    clickElement=null
  }
}
