var g_image_animation_timers = new Array();
var g_image_animation_def = {
    container_div_id:0,
    delay:1,
    timer:2
};

function imageAnimationStart(container_div_id, delay) {
    var container_div, i, first_set;

    container_div = window.document.getElementById(container_div_id);
    container_div.setAttribute("fade", 0);
    first_set = false;
    for(i = 0; i < container_div.childNodes.length; i++) {
        if(container_div.childNodes[i].tagName != undefined) {
            if(container_div.childNodes[i].tagName == "DIV") {
                container_div.childNodes[i].style.zIndex = 2;
                container_div.childNodes[i].style.opacity = 0;
                container_div.childNodes[i].style["-moz-opacity"] = 0;
                container_div.childNodes[i].style.filter = "alpha(opacity=0)";
            } else if(container_div.childNodes[i].tagName == "IMG") {
                container_div.childNodes[i].setAttribute("active_image", first_set == false ? 1 : 0);
                if(first_set == false) {
                    first_set = true;
                    container_div.childNodes[i].style.display = "block";
                    container_div.childNodes[i].style.zIndex = 1;
                }
            }
        }
    }

    var atimer;

    atimer = imageAnimationGetTimer(container_div_id);

    atimer[g_image_animation_def.delay] = delay;

    if(atimer[g_image_animation_def.timer] != null) {
        clearTimeout(atimer[g_image_animation_def.timer]);
    }

    atimer[g_image_animation_def.timer] = setTimeout("imageAnimationFader('" + container_div_id + "');", 400);

}

function imageAnimationGetTimer(container_div_id) {
    var atimer, i;

    atimer = null;
    for(i = 0; atimer == null && i < g_image_animation_timers.length; i++) {
        if(g_image_animation_timers[i][g_image_animation_def.container_div_id] == container_div_id) {
            atimer = g_image_animation_timers[i];
        }
    }

    if(atimer == null) {
        atimer = new Array(container_div_id, 1, null);
        g_image_animation_timers.push(atimer);
    }

    return atimer;
}


function imageAnimationFader(container_div_id) {
    var container_div, current_fade, white_div, image, i;

    container_div = window.document.getElementById(container_div_id);
    current_fade = parseInt(container_div.getAttribute("fade", 0));


    white_div = null;
    for(i = 0; white_div == null && i < container_div.childNodes.length; i++) {
        if(container_div.childNodes[i].tagName != undefined && container_div.childNodes[i].tagName == "DIV") {
            white_div = container_div.childNodes[i];
        }
    }

    image = null;
    for(i = 0; image == null && i < container_div.childNodes.length; i++) {
        if(container_div.childNodes[i].tagName != undefined && container_div.childNodes[i].tagName == "IMG") {
            if(parseInt(container_div.childNodes[i].getAttribute("active_image"), 10)) {
                image = container_div.childNodes[i];
            }
        }
    }


    /* fade value 0..100   == fading white on top of image
       fade value 101..200 == fading new image on top of white
    */
    var delay;
    var atimer;

    atimer = imageAnimationGetTimer(container_div_id);

    if(current_fade == 0) {

        current_fade += 1;
        delay = atimer[g_image_animation_def.delay] * 1000;

    } else if(current_fade <= 100) {

        var alpha;

        alpha = current_fade;
        white_div.style.opacity = alpha / 100.0;
        white_div.style["-moz-opacity"] = alpha / 100.0;
        white_div.style.filter = "alpha(opacity=" + alpha + ")";
        
        current_fade += 10;
        delay = 50;

    } else if(current_fade == 101) {

        var first_image, next_image, take_next;


        white_div.style.opacity = 1.0;
        white_div.style["-moz-opacity"] = 1.0;
        white_div.style.filter = "alpha(opacity=100)";


        first_image = null;
        next_image = null;
        take_next = false;
        for(i = 0; next_image == null && i < container_div.childNodes.length; i++) {
            if(container_div.childNodes[i].tagName != undefined && container_div.childNodes[i].tagName == "IMG") {
                if(first_image == null) {
                    first_image = container_div.childNodes[i];
                }
                if(parseInt(container_div.childNodes[i].getAttribute("active_image"), 10)) {
                    take_next = true;
                } else if(take_next == true) {
                    next_image = container_div.childNodes[i];
                }
            }
        }

        if(next_image == null) {
            next_image = first_image;
        }


        image.style.zIndex = 0;
        image.style.display = "none";
        image.setAttribute("active_image", 0);
        next_image.style.zIndex = 1;
        next_image.style.display = "block";
        next_image.setAttribute("active_image", 1);
        
        current_fade += 1;
        delay = 50;

    } else if(current_fade <= 200) {

        var alpha;

        alpha = 100 - (current_fade - 100);
        white_div.style.opacity = alpha / 100.0;
        white_div.style["-moz-opacity"] = alpha / 100.0;
        white_div.style.filter = "alpha(opacity=" + alpha + ")";

        current_fade += 10;
        delay = 50;
        
    } else {

        white_div.style.opacity = 0.0;
        white_div.style["-moz-opacity"] = 0.0;
        white_div.style.filter = "alpha(opacity=0)";
        
        current_fade = 0;
        delay = 50;
    }

    container_div.setAttribute("fade", current_fade);
    
    
    atimer[g_image_animation_def.timer] = setTimeout("imageAnimationFader('" + container_div_id + "');", delay);
}


function openURL(white_div) {
    var container_div, image;

    container_div = white_div.parentNode;

    image = null;
    for(i = 0; image == null && i < container_div.childNodes.length; i++) {
        if(container_div.childNodes[i].tagName != undefined && container_div.childNodes[i].tagName == "IMG") {
            if(parseInt(container_div.childNodes[i].getAttribute("active_image"), 10)) {
                image = container_div.childNodes[i];
            }
        }
    }

    var url;

    url = image.getAttribute("url");
    if(url != null) {
        pageTracker._trackPageview('/banner/'+url);
        window.open(url);
    }
}

