/*
    ============================================================================
    DHTML DaVinci - Versión 3.0 Mini (IE5++,NS6+,OP6+)
    Componente: Plugin de Desplazamiento - dvdesplazar.js
    Tamaño: 3847 bytes (3.75 Kb)
    Copyright (c) 2005 - Francisco Vida (info@pacovida.com)
    www.espirituDaVinci.com - info@espirituDaVinci.com
    ============================================================================
*/
    function DaVinciDesplazamiento()
    {
      this.motorArrancado=false
      this.stop=function(){this.motorArrancado=false}
    }

    function DaVinciDesplazarDesde(x,y,v0x,v0y,vx,vy,t,exe)
    {
      this.desplazar(x+this.x,y+this.y,v0x,v0y,vx,vy,t,exe)
    }

    function DaVinciDesplazarHasta(x,y,v0x,v0y,vx,vy,t,exe)
    {
      this.desplazar(x,y,v0x,v0y,vx,vy,t,exe)
    }

    function DaVinciDesplazar(x,y,v0x,v0y,vx,vy,t,exe)
    {
      if(!this.desplazamiento){this.desplazamiento=new DaVinciDesplazamiento()}
      var pasosx,pasosy
      var mrua=this.desplazamiento
      if(mrua.motorArrancado){return}

      mrua.tiempo=t;mrua.exe=(exe)? exe : null
      mrua.xini=this.x;mrua.yini=this.y;mrua.xfin=x;mrua.yfin=y
      mrua.xmod=mrua.xfin-mrua.xini;mrua.ymod=mrua.yfin-mrua.yini
      vx=(mrua.xmod>0)? Math.abs(vx) : -Math.abs(vx)
      vy=(mrua.ymod>0)? Math.abs(vy) : -Math.abs(vy)
      v0x=(mrua.xmod>0)? Math.abs(v0x) : -Math.abs(v0x)
      v0y=(mrua.ymod>0)? Math.abs(v0y) : -Math.abs(v0y)
      pasosx=(vx&&vx==v0x)? Math.abs(vx) : (mrua.xmod)? 2*mrua.xmod/(v0x+vx) : 0
      pasosy=(vy&&vy==v0y)? Math.abs(vy) : (mrua.ymod)? 2*mrua.ymod/(v0y+vy) : 0

      mrua.pasos=(pasosx>pasosy)? pasosx : pasosy
      mrua.v0x=(vx&&vx==v0x)? mrua.xmod/mrua.pasos : (!mrua.xmod)? 0 : (pasosx>=pasosy)? v0x : (vx==0)? 2*mrua.xmod/mrua.pasos : v0x
      mrua.v0y=(vy&&vy==v0y)? mrua.ymod/mrua.pasos : (!mrua.ymod)? 0 : (pasosy>=pasosx)? v0y : (vy==0)? 2*mrua.ymod/mrua.pasos : v0y
      mrua.vx=(vx&&vx==v0x)? mrua.v0x : (!mrua.xmod)? 0 : (pasosx>=pasosy)? vx : (vx==0)? vx : (2*mrua.xmod-v0x*mrua.pasos)/mrua.pasos
      mrua.vy=(vy&&vy==v0y)? mrua.v0y : (!mrua.ymod)? 0 : (pasosy>=pasosx)? vy : (vy==0)? vy : (2*mrua.ymod-v0y*mrua.pasos)/mrua.pasos
      mrua.ax=(!mrua.xmod)? 0 : (mrua.vx-mrua.v0x)/mrua.pasos
      mrua.ay=(!mrua.ymod)? 0 : (mrua.vy-mrua.v0y)/mrua.pasos
      mrua.iteracion=0
      mrua.motorArrancado=(mrua.xmod!=0||mrua.ymod!=0)
      if(mrua.motorArrancado){this.onDesplazarStart(this);this.motorDesplazar()}
      else{DaVinciEvaluar(mrua.exe,this)}
    }

    function DaVinciDesplazarMotor()
    {
      var mrua=this.desplazamiento
      if(!mrua.motorArrancado){return}
      if(mrua.iteracion++<mrua.pasos-1)
      {
        this.moverHasta(mrua.xini+mrua.v0x*mrua.iteracion+0.5*mrua.ax*mrua.iteracion*mrua.iteracion,mrua.yini+mrua.v0y*mrua.iteracion+0.5*mrua.ay*mrua.iteracion*mrua.iteracion)
        this.onDesplazar(this)
        if(mrua.motorArrancado){setTimeout(this.obj+'.motorDesplazar()',mrua.tiempo)}else{this.onDesplazarEnd(this)}
      }
      else
      {
        mrua.motorArrancado=false
        this.moverHasta(mrua.xfin,mrua.yfin)
        this.onDesplazar(this)
        this.onDesplazarEnd(this)
        DaVinciEvaluar(mrua.exe,this)
      }
    }

    DaVinci.prototype.desplazar=DaVinciDesplazar
    DaVinci.prototype.desplazarHasta=DaVinciDesplazarHasta
    DaVinci.prototype.desplazarDesde=DaVinciDesplazarDesde
    DaVinci.prototype.motorDesplazar=DaVinciDesplazarMotor
    DaVinci.prototype.onDesplazarStart=new Function
    DaVinci.prototype.onDesplazar=new Function
    DaVinci.prototype.onDesplazarEnd=new Function
    DVPlugins[DVPlugins.length]='Desplazar';DVDesplazar=true

//  === DHTML DaVinci (c) 2005 =================================================