
//####################################################################################################
/*animate.js*/
function fadein(e,t){ return opacityDimmer(e, 100, (t||500)); }
function fadeout(e,t){ return opacityDimmer(e, 0, (t||500)); }

//####################################################################################################
/*opacity.css*/
function opacityDimmer(id, opacEnd, millisec, onComplete){
 var e = document.getElementById(id);
 var opacCurr = e.style.opacity == null || e.style.opacity == '' ? (isNaN(getStyle(id,'opacity')) ? 100 : fixStyle(id,'opacity')*100) : e.style.opacity*100;

 var speed = Math.round(millisec/100);
 var timer = 0;
 
 Tweener.cancelTween(id,'opacity');
 var animation = [];
 if(opacCurr>opacEnd){
  for(i=opacCurr;i>=opacEnd;i--){ animation.push( setTimeout("setStyle('" + id + "','opacity'," + i/100 + ")",timer*speed) ); timer++; }
  }
 else if(opacCurr<opacEnd){
  for(i=opacCurr;i<=opacEnd;i++){ animation.push( setTimeout("setStyle('" + id + "','opacity'," + i/100 + ")",timer*speed) ); timer++; }
  }
 
 animation.push( setTimeout("Tweener.removeTween('" + id + "','opacity')",(timer-1)*speed) );
 
 if(typeof(onComplete)=='string'||isFunction(onComplete)) animation.push( setTimeout( onComplete,timer*speed ) );
 
 Tweener.addTween(id,'opacity',animation);
  
 return animation;
 }

//####################################################################################################
/*tweener.js*///PROTOTYPE DEVELOPMENT BETA
var Tweener = {
 tweens:{},
 addTween:function(id,param,tweener){
  if(typeof(Tweener.tweens[id])=='undefined'){Tweener.tweens[id]={};}
  Tweener.tweens[id][param]=tweener;
  },
 removeTween:function(id,param){ delete Tweener.tweens[id][param]; },
 cancelTween:function(id,param){
  if(typeof(Tweener.tweens[id])!='undefined'&&typeof(Tweener.tweens[id][param])!='undefined'){
   Tweener.clearAll(Tweener.tweens[id][param]); delete Tweener.tweens[id][param];
   }
  },
 clearAll:function(a){for(var i in a){clearTimeout(a[i]);}}
 }
