var savedTarget=null;                           // The target layer (effectively vidPane)
var orgCursor=null;                             // The original mouse style so we can restore it
var dragOK=false;                               // True if we're allowed to move the element under mouse
var dragXoffset=0;                              // How much we've moved the element on the horozontal
var dragYoffset=0;                              // How much we've moved the element on the verticle
var nextZindex = 9000;                          // Allow overlapping
var dragMinTop = 10;
var dragMinLeft = 5;

function moveHandler(e){
 if (e == null) { e = window.event } 
 if (e.button<=1&&dragOK){

  if ( applicationSize) {
   s = applicationSize();
   maxX = s[0];
   maxY = s[1];
  } else {
   maxX = document.body.offsetWidth;
   maxY = document.body.offsetHeight;
  }

  if ( eval( e.clientX-dragXoffset+savedTarget.children[0].offsetWidth+dragMinLeft) < maxX) {
   if ( eval( e.clientX-dragXoffset) > dragMinLeft) {
    newX=eval(e.clientX-dragXoffset);
   } else {
    newX = dragMinLeft;
   }
  } else {
   newX = eval(maxX-savedTarget.children[0].offsetWidth-dragMinTop);
  }
  savedTarget.style.left=newX+'px';
  if ( eval(e.clientY-dragYoffset+savedTarget.children[0].offsetHeight+dragMinTop) < maxY) {
   if ( eval( e.clientY-dragYoffset) > dragMinTop) {
    newY=eval(e.clientY-dragYoffset);
   } else {
    newY = dragMinTop;
   }
  } else {
   newY = eval(maxY-savedTarget.children[0].offsetHeight-dragMinTop);
  }  
  savedTarget.style.top=newY+'px';
  return false;
 }
}

function cleanup(e) {
 document.onmousemove=null;
 document.onmouseup=null;
 dragOK=false;
}

function initDragging(target)
{
 savedTarget=target;
 savedTarget.style.zIndex = nextZindex;
 nextZindex++;
 document.onmousedown=function(e) {
  if (e == null) { e = window.event;}
  var eventTarget = e.target != null ? e.target : e.srcElement;
  if ( eventTarget.className=="title" || eventTarget.className=="topcenter") {
   dragOK=true;
  } else {
   dragOK=false;
  }
  dragXoffset=e.clientX-parseInt(target.style.left);
  dragYoffset=e.clientY-parseInt(target.style.top);
 };
 document.onmousemove=moveHandler;
 document.onmouseup=cleanup;
}

