<!--
//
// event handler for mouse dragging
//
grabObj = null;
function EventCtrl(div){
  this.div   = div;
  this.type  = ''; this.mask  = 0;
  this.pageX = 0; this.pageY = 0;
}
EventCtrl.prototype.linkCtrl = function(obj){ if(!obj.eventCtrl) obj.eventCtrl = this; }
function ech_mousedown(e){
  var ctrl = getCtrlFromEvent(e,null);
  if(ctrl && !ctrl.dragging){
    grabObj = ctrl; ctrl.dragging = true; ctrl.dragged = false;
    ctrl.startX = ctrl.pageX; ctrl.curX = ctrl.startX;
    ctrl.startY = ctrl.pageY; ctrl.curY = ctrl.startY;
    if(ctrl.mousedown) ctrl.mousedown(ctrl,ctrl.mousedownClient);
    return false;
  }
  return true;
}
function ech_mousemove(e){
  var ctrl = getCtrlFromEvent(e,null);
  if(ctrl && ctrl.dragging){
    if(ctrl.curX!=ctrl.pageX || ctrl.curY!=ctrl.pageY){
      ctrl.dragged=true;
      if(ctrl.mousemove) ctrl.mousemove(ctrl,ctrl.mousemoveClient);
      ctrl.curX=ctrl.pageX; ctrl.curY=ctrl.pageY;
    }
    return false;
  }
  return true;
}
function ech_mouseup(e){
  var ctrl = getCtrlFromEvent(e,null);
  if(ctrl && ctrl.dragging){
    grabObj = null; ctrl.dragging=false;
    if(ctrl.mouseup) ctrl.mouseup(ctrl,ctrl.mouseupClient);
    if(!ctrl.dragged && ctrl.mouseclick) ctrl.mouseclick(ctrl,ctrl.mouseclickClient);
    ctrl.curX = ctrl.pageX; ctrl.curY = ctrl.pageY;
    return false;
  }
  return true;
}
function ech_attachMouseDrag(div,dwf,dwc,mvf,mvc,upf,upc,ckf,ckc){
  var doc;
  if(document.layers){
    doc = div.document;
    doc.onmousedown = ech_mousedown;
    doc.onmousemove = ech_mousemove;
    doc.onmouseup   = ech_mouseup;
    doc.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
  } else if(document.all){
    doc = div;
    doc.onmousedown = ech_mousedown;
    document.onmousemove = ech_mousemove;
    document.onmouseup   = ech_mouseup;
  } else return null;
  if(!doc.eventCtrl) doc.eventCtrl = new EventCtrl(div);
  var ctrl=doc.eventCtrl;
  ctrl.dragging = false;
  ctrl.dragged  = false;
  ctrl.startX= 0; ctrl.startY= 0;
  ctrl.curX  = 0; ctrl.curY  = 0;
  ctrl.mousedown = dwf; ctrl.mousedownClient = dwc;
  ctrl.mousemove = mvf; ctrl.mousemoveClient = mvc;
  ctrl.mouseup   = upf; ctrl.mouseupClient   = upc;
  ctrl.mouseclick= ckf; ctrl.mouseclickClient= ckc;
  ctrl.mask|=2;
  return ctrl;
}
function ech_detachMouseDrag(div){
  var ctrl=null;
  if(document.layers){
    ctrl=div.document.eventCtrl;
    if(ctrl){
      var doc = ctrl.div.document;
      doc.releaseEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|Event.MOUSEUP);
      doc.onmousedown=null;
      doc.onmousemove=null;
      doc.onmouseup  =null;
    }
  } else if(document.all){
    ctrl=div.eventCtrl;
    if(ctrl){
      ctrl.div.onmousedown=null;
    }
  }
  if(ctrl!=null) ctrl.mask&=~2;
}
// ==================================================================
// slider object
//
function Slider(div,dir,len,min,max,pos,stcb,stcd,mvcb,mvcd,edcb,edcd){
  var ctrl=ech_attachMouseDrag(div,
      slideStart,null,
      slideMove, null,
      slideEnd,  null,
      null,      null);
  ctrl.dir =dir; ctrl.len =len;
  ctrl.dist=Math.floor((pos-min)*len/(max-min));
  ctrl.min =min; ctrl.max =max;
  ctrl.slideStartCB=stcb;ctrl.slideStartCD=stcd;
  ctrl.slideMoveCB =mvcb;ctrl.slideMoveCD =mvcd;
  ctrl.slideEndCB  =edcb;ctrl.slideEndCD  =edcb;
  return ctrl;
}
function getVal(ctrl){
  var v=ctrl.dist;
  if(v<0) v=0;
  else if(v>ctrl.len) v=ctrl.len;
  return Math.floor((v*(ctrl.max-ctrl.min)+ctrl.min*ctrl.len)/ctrl.len);
}
function slideStart(ctrl,client){
  if(ctrl.slideStartCB) ctrl.slideStartCB(ctrl,ctrl.slideStartCD,getVal(ctrl));
}
function slideMove(ctrl,client){
  var dx=0,dy=0;
  if((ctrl!=positionslider.eventCtrl)||(enabled)){
  switch(ctrl.dir){
  case 0:
    dx=ctrl.pageX-ctrl.curX; dy=0;
    var x=ctrl.dist+dx, mx=ctrl.len;
    if(ctrl.dist<0)       dx=x>0?x:0;
    else if(x<0)          dx=-ctrl.dist;
    else if(x>mx)         dx=ctrl.dist>mx?0:mx-ctrl.dist;
    else if(ctrl.dist>mx) dx=x-mx;
    ctrl.dist=x;
    break;
  case 1:
    dx=0; dy=ctrl.pageY-ctrl.curY;
    var y=ctrl.dist+dy, my=ctrl.len;;
    if(ctrl.dist<0)       dy=y>0?y:0;
    else if(y<0)          dy=-ctrl.dist;
    else if(y>my)         dy=ctrl.dist>my?0:my-ctrl.dist;
    else if(ctrl.dist>my) dy=y-my;
    ctrl.dist=y;
    break;
  }
  if(dx!=0 || dy!=0){
    moveDivBy(ctrl.div,dx,dy);
    if(ctrl.slideMoveCB) ctrl.slideMoveCB(ctrl,ctrl.slideMoveCD,getVal(ctrl));
  }}
}
function slideEnd(ctrl,client){
  if(ctrl.dist<0)             ctrl.dist=0;
  else if(ctrl.dist>ctrl.len) ctrl.dist=ctrl.len;
  if(ctrl.slideEndCB) ctrl.slideEndCB(ctrl,ctrl.slideEndCD,getVal(ctrl));
}
function slideCB(ctrl,client,value){curvol=(value+(100-maxvol));clip.setVolume(curvol);}
function slideCB2(ctrl,client,value){curpos=(value+(100-maxpos));pospos=curpos;}
function init(){
//  clip.setVolume(30);
  volpos=clip.getVolume();
  volnew=volpos/2;
  slider1.style.left=volnew;
  maxvol=(100-volpos);
  minvol=(maxvol-100);
  var sdh=Slider(getDivFromName('slider1','scrollbar1'),0,50,minvol,maxvol,0,slideCB,1,slideCB,2,slideCB,3);
//  pospos=clip.getPosition();
  pospos=0;
  posnew=pospos;
  maxpos=(100-pospos);
  minpos=(maxpos-100);
  positionslider=getDivFromName('slider2','scrollbar2');
}
function reset(){
//  pospos=clip.getPosition();
  pospos=curpos;
  posnew=pospos;
  maxpos=(100-pospos);
  minpos=(maxpos-100);
  positionslider=getDivFromName('slider2','scrollbar2');
  var sdh2=Slider(getDivFromName('slider2','scrollbar2'),0,115,minpos,maxpos,0,slideCB2,1,slideCB2,2,slideCB2,3);
}
function disable(){
  enabled=false;
  slider2.style.left=0;
  curpos=0;
}
function enable(){  
  var sdh2=Slider(getDivFromName('slider2','scrollbar2'),0,115,minpos,maxpos,0,slideCB2,1,slideCB2,2,slideCB2,3);
  enabled=true;
}
// -->