function randomval(minVal,maxVal,floatVal){

 var randVal = minVal+(Math.random()*(maxVal-minVal));
 return typeof floatVal=='undefined'?Math.round(randVal):randVal.toFixed(floatVal);

}


function opacity(id, ob, opacStart, opacEnd, millisec) {

 //speed for each frame
 var speed = Math.round(millisec / 100);

 if(!ob || id){ ob = document.getElementById(id); }

 //determine the direction for the blending, if start and end are the same nothing happens
 if(opacStart > opacEnd){

  for(i = opacStart; i >= opacEnd; i--){

    changeOpac(i, ob, '');
   setTimeout( function(){ opacity(id, ob, opacStart, opacEnd, millisec); }, speed);

  }

 }else if(opacStart < opacEnd){
  
  for(i = opacStart; i <= opacEnd; i++){

   changeOpac(i, ob, '');
   setTimeout( function(){ opacity(id, ob, opacStart, opacEnd, millisec); }, speed);

  }
   
 }
  
}


function changeOpac(opacity, object, id){

 if(!object || id){ object = document.getElementById(id); }
 object = object.style;

 if(opacity<=0){ object.visibility = "hidden"; }
 else{ object.visibility = "visible"; }
 object.opacity = (opacity / 100);
 object.MozOpacity = (opacity / 100);
 object.KhtmlOpacity = (opacity / 100);
 object.filter = "alpha(opacity=" + opacity + ")";

}


function movimenta(ob){

 if(!ob.s){ ob.s = 1; }

 if(!ob.t){ ob.t = 1; }
 if(!ob.ft){ ob.ft = 0; }

 //ob.s = 5;
 
 if(ob.j){ var posi = ob.j; }
 else{ var posi = parseInt(ob[ob.q]); }

 if(isNaN(posi)){ posi = 0; }
 
 var valor = Math.round((ob.v-posi)/ob.s);

 if(isNaN(valor) || !valor ){

  ob.style[ob.p] = ob.v + "px"; ob.b="x";
  if(ob.f){ window.setTimeout(ob.f, ob.ft); }

 }else{

  ob.j = posi+valor;
  
  if(ob.p=="alpha"){ changeOpac(ob.j, ob); }
  else{ ob.style[ob.p] = ob.j + "px"; }

  if(ob.f2){ window.setTimeout(ob.f2+"('"+ob.j+"')", 0); }
  window.setTimeout(function(){ movimenta(ob); }, ob.t);

 }

}


function movimenta2(ob){ // Trabalha com soma e subtração de pixels ao invés de divisão

 if(!ob.s){ ob.s = 1; }

 if(!ob.t){ ob.t = 1; }
 if(!ob.ft){ ob.ft = 0; }

 //ob.s = 5;

 if(ob.j){ var posi = ob.j; }
 else{ var posi = parseInt(ob[ob.q]); }
 
 var dif = ob.v-posi;

 if(ob.v<posi){ ob.b = ob.s*-1;  }
 else{ ob.b = ob.s; }

 if(isNaN(posi)){ posi = 0; }

 if(isNaN(dif) || Math.abs(dif)<Math.abs(ob.s)){
 
  ob.style[ob.p] = ob.v + "px";
  if(ob.f){ window.setTimeout(ob.f, ob.ft); }
  
 }else{

  ob.j = posi+ob.b;

  if(ob.p=="alpha"){ changeOpac(ob.j, ob); }
  else{ ob.style[ob.p] = ob.j + "px"; }

  if(ob.f2){ window.setTimeout(ob.f2+"('"+ob.j+"')", 0); }
  window.setTimeout(function(){ movimenta2(ob); }, ob.t);

 }

}
