if(typeof(AUTO123) == "undefined") AUTO123 = new Object();

AUTO123.Elements = function() {
  return {
    updateInnerHTML: function(elementid, new_text) {
      var e = document.getElementById(elementid);
      if(e != null) {
        if(e.innerHTML != "") {
          this.fadeOutElement(e, function() { AUTO123.Elements.fadeInElement(e, new_text) });
        }
        else {
          this.fadeInElement(e, new_text);
        }
      }
    },
    
    fadeOutElement: function(e, onComplete) {
      if(e != null) {
        var attr = {
          opacity: { to: 0 }
        };
        
        var anim = new YAHOO.util.Anim(e, attr, 0.5, YAHOO.util.Easing.easeIn);
        if(onComplete != null) {
          anim.onComplete.subscribe(onComplete);
        }
        anim.animate();
      }
    },
    
    fadeInElement: function(e, new_text) {
      if(e != null) {
        if(new_text != null) e.innerHTML = new_text;
        
        var attr = {
          opacity: { to: 1 }
        };
        
        var anim = new YAHOO.util.Anim(e, attr, 0.5, YAHOO.util.Easing.easeOut);
        anim.animate();
      }
    },
    
    setOpacity: function(elementid, opacity, speed) {
      if(typeof(opacity) == "undefined") opacity = 1;
      if(typeof(speed) == "undefined") speed = 0.4;

      var e = document.getElementById(elementid);
      if(e != null) {
        var attr = {
          opacity: { to: opacity }
        };
        
        var onStart = function() {
          YAHOO.util.Dom.setStyle(e, "opacity", 0);
          if(e.style.visibility == 'hidden') e.style.visibility = "";
        }
        
        var anim = new YAHOO.util.Anim(e, attr, speed, YAHOO.util.Easing.easeOut);
        if(opacity != 0) anim.onStart.subscribe(onStart);
        anim.animate();
      }
    }
  }
}();
