/**
 * Datei für alle möglichen Clientseitige Effekte
 */

/**
 * setzt die Transparenz eines Objektes
 * @param DOMNode Objekt
 * @param int Transparenz in Prozent (0-100)
 */
function SetOpacity(object,opacityPct)
{
    if(opacityPct >= 100) opacityPct = 99.999;
  // IE.
    object.style.filter = 'alpha(opacity=' + opacityPct + ')';
  // Old mozilla and firefox
    object.style.MozOpacity = opacityPct/100;
  // Everything else.
    object.style.opacity = opacityPct/100;
}

/**
 * animiert das ausblenden eines Elements
 * Die Transparenz wird linear über den angegebenen Zeitraum verringert
 * Hat die Transparenz 0 erreicht wird das callback aufgerufen
 * 
 * @param DOMNode Element
 * @param int Zeit in ms
 * @param function Das callback
 */
function fadeOut(element, time, callback) {
    var opacity = 100;
    var start_time = (+new Date());
    var perms = opacity / time;
    setTimeout(function fade() {
        var new_time = (+new Date());
        var timediff = new_time - start_time;
        start_time = new_time;
        opacity = opacity - perms*timediff;
        SetOpacity(element, opacity);
        if(opacity <= 0) {
            callback(); 
        } else {
            setTimeout(fade, 1000 / 50);                                                                                                                                    
        }                                                                                                                                                                   
    }, 1000 / 50);                                                                                                                                                          
}

/**
 * animiert das einblenden eines Elements
 * Die Transparenz wird linear über den angegebenen Zeitraum erhöht
 * Hat die Transparenz 100% erreicht wird das callback aufgerufen
 * 
 * @param DOMNode Element
 * @param int Zeit in ms
 * @param function Das callback
 */
function fadeIn(element, time, callback) {
    var opacity = 100;
    var start_time = (+new Date());
    var perms = opacity / time;
    setTimeout(function fade() {
        var new_time = (+new Date());
        var timediff = new_time - start_time;
        start_time = new_time;
        opacity = opacity - perms*timediff;
        SetOpacity(element, parseInt(100-opacity));
        if(opacity <= 0) {
            callback(); 
        } else {
            setTimeout(fade, 1000 / 50);
        }
    }, 1000 / 50);
}

