/**
 *author luoyouhua 2009-05-26
 */
 
 /**浏览器判断*/
var D=document; var  broswer = {
  isMozilla :(typeof document.implementation!='undefined')&&(typeof document.implementation.createDocument!='undefined')&&(typeof HTMLDocument!='undefined'),
  isIE :window.ActiveXObject?true:false,
  isOpera:(window.navigator.userAgent.toLowerCase().indexOf('opera')!=-1)
}
//设置透明度
function setOpacity(target,v){
   if(broswer.isMozilla){//firefox
      target.style.opacity=(v/100);
   }else{//IE opera 其他
      target.filters.alpha.opacity=v;
   }  
}
function divMove(target/**目标*/,mTarget/**移动目标*/,w/**宽*/,h/**高*/){
   var T = this;
   T.target = target;
   T.mTarget = mTarget||target;
   T.width =w||286;
   T.height = h||390;
   
   //intervalId
   T.intervalId_ox;
   T.intervalId_oy;
   T.intervalId_cx;
   T.intervalId_cy;
   T.mouseD=false;//鼠标左键是否按下
   T.oDrag=null ;//拖动对象
   
   //event position
   T.ex;
   T.ey;
   
   
   //初始化目标对象
   T.init = function(){
      T.target.style.display = "block";
      T.target.style.width = "1px";
      T.target.style.height = "1px";
   }
   
   //destroy hidden target
   T.done = function(){
      T.target.style.display="none";
   }
   
   T.show = function(){
        T.init();
        T.intervalId_ox = setInterval(function(){T.openx()},10);
   }
   T.hidden = function(){
        T.intervalId_cy=setInterval(function(){T.closey()},10);
   }
   
   //在x轴上展开
   T.openx = function(){
       var sw = parseInt(T.target.style.width);
       if(sw<T.width){
           T.target.style.width=sw+Math.ceil((T.width-sw)/5)+"px";
       }else{
           clearInterval(T.intervalId_ox);
           T.intervalId_oy=setInterval(function(){T.openy()},10);
       }
   }
   
   //在y轴上展开
   T.openy = function(){
       var sh = parseInt(T.target.style.height);
       if(sh<T.height){
           T.target.style.height = (sh+Math.ceil((T.height-sh)/5))+"px";
       }else{
           clearInterval(T.intervalId_oy);
       }
   }
   
   //在y轴上关闭
   T.closey = function(){
       var sh = parseInt(T.target.style.height);
       if(sh>0){
          T.target.style.height = (sh-Math.ceil(sh/5))+"px";
       }else{
          clearInterval(T.intervalId_cy);
          T.intervalId_cx = setInterval(function(){T.closex()},10);
       }
   }
   
   //在x轴上关闭
   T.closex = function(){
      var sw = parseInt(T.target.style.width);
      if(sw>0){
          T.target.style.width = (sw-Math.ceil(sw/5))+"px";
      }else{
          clearInterval(T.intervalId_cx);
          T.done();
      }
   }
   
   
   //==================鼠标拖动事件============================//
   /**标记鼠标左键按下事件
    *event.button IE: 0没按键 1按左键 2按右键 3按左和右键 4按中间键 5按左和中间键 6按右和中间键 7按所有的键
    *        firefox: 0按左键 1中间键 2右键 
   */
   D.onmousedown = function(e){
       var e=e?e:event;
       if(e.button==(broswer.isIE?1:0)) T.mouseD=true;
   }
   T.mTarget.onmousedown = function(e){
       var e = e?e:event;
       
       //标记拖动对象
       T.oDrag = T.target;
       
       //记录event的位置
       T.ex = e.clientX;
       T.ey = e.clientY;
       
       //设置透明度
      // setOpacity(T.target,80);
       
       //重新定位
       T.target.style.left = T.target.offsetLeft+"px";
       T.target.style.top = T.target.offsetTop+"px";
       
       //设置mousemove事件捕捉
       broswer.isIE?T.target.setCapture():window.captureEvents(Event.MOUSEMOVE);
   }
   //释放鼠标左键
   D.onmouseup = function(e){
      T.mouseD = false;
      //设置透明度
      setOpacity(T.target,100);
      //释放对象
      T.oDrag = null;
      //释放事件捕捉
      broswer.isIE?T.target.releaseCapture():window.releaseEvents(T.target.MOUSEMOVE);
   }
   document.onmousemove = function(e){
     var e=e?e:event;
     
     if(T.mouseD==true&&T.oDrag){
        //计算两次event位移
        var mrx = e.clientX-T.ex;
        var mry = e.clientY-T.ey;
        
        //重新定位div
        T.target.style.left = parseInt(T.target.style.left)+mrx+"px";
        T.target.style.top =  parseInt(T.target.style.top)+mry+"px";
        
        //再次记录event位置
        T.ex = e.clientX;
        T.ey = e.clientY;
     }
   }
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 }