/**
 * 
 * Diakonie Menü Animation
 * 2011 Tobias Prinz, prinz@splitbit.de
 * 
 */


var diakonie_anim = {


    init: function() {
        var that = this;

        var img_list = [];
        var cache = [];
        var cur_pos = 0;
        var img_total = 0;
        var img_loaded = 0;
        var preloading = false;


        var preload = function() {
            if (typeof (synapsis_diakonie_menuimageids) != "undefined") {
                for (i = 0; i < synapsis_diakonie_menuimageids.length; i++) {
                    if (typeof (synapsis_diakonie_menuimageids) != "undefined") {
                        img_list.push("/images/cut/20/" + synapsis_diakonie_menuimageids[i] + "/940/300.jpg");
                    }
                    else {
                        img_list.push("/images/cut/20/" + synapsis_diakonie_menuimageids[i] + "/940/300.jpg");
                    }
                }

                img_total = img_list.length;
                preloading = true;
                for (var i = 0; i < img_total; i++) {
                    cache[i] = $('<img />')
				    .load(function() {
				        img_loaded++;
				    })
				    .attr('src', img_list[i]);
                }
            }
        }

        var play = function() {

            // Clear Cache.
            cache = [];


            /* Set up handlers */
            $('#stage_menu_box .stage_menu_item').each(function(i, node) {
                $(node).mouseover(function(e) {
                    if (i + 1 === cur_pos) {
                        return;
                    }
                    $(this).blur();
                    change2.apply(that, [i + 1]);
                    return false;
                })
            });
            $('#stage_menu_box').bind('mouseleave', function(e) {
                change2.apply(that, [0]);
                return false;
            });

            $('#stage_bg').css({
                opacity: 0
				, display: 'block'
            });
            $('#stage_bg_swap').css({
                opacity: 1
				, display: 'block'
            });
        }


        var bgIn = function(bg) {

            $('#stage_bg img').attr({
                src: img_list[cur_pos]
            }).parent().css({
                opacity: 1
            }).animate({
                opacity: 0
            }, 500, 'swing'
			);

            $('#stage_bg_swap img').attr({
                src: img_list[bg]
            }).parent().css({
                opacity: 0
            }).animate({
                opacity: 1
            }, 500, 'swing'
			);
        }


        var change2 = function(bg) {
            $('#stage_bg_swap').stop(true, false);
            $('#stage').css({
                backgroundColor: '#009EE3'
            });
            $('#stage_menu_box .stage_menu_item').removeClass('selected');
            $('#stage_menu_box .stage_menu_' + (bg)).addClass('selected');

            bgIn(bg);

            cur_pos = bg;
            return false;
        }




        if (!preloading) {
            preload();
        }
        if (img_loaded < img_total) {
            setTimeout(function() {
                play.apply(that);
            }, 100
			);
            return;
        } else {
            play();
        }

    }


};


$(function(){
	diakonie_anim.init();
});
