var loadingImage = "/Content.Node2/images/layout/loading_big.gif";
var TeaserPictures = new Array();
var shoutbox;
var nextTeaserChange;
var Teasers;
var ActualTeaserPicture = new Array();
var teaserClone = new Array();
var teaserNow;
// Funktion wird nach dem kompletten Laden der Seite (ohne Bilder) aufgerufen
$(document).ready(function() {
        // MSIE6-Workaround
        // Blendet die halbtransparenten PNGs im Header, die vom IE nicht korrekt dargestellt werden, aus und ersetzt sie durch eine Hintergrundfarbe
        // Auf Basis von JQuery
        var headerboxname = "div#header_box"; // der name der header box
        var promoboxname = "//div#promobox"; // der name der promobox samt ebene
        var maincontent = "div#maincontent";

        var a = navigator.userAgent.search(/MSIE 6/);
        if ($.browser.msie && (a>0) ) {
                var dieklasse = $(headerboxname).attr("class");
                $(headerboxname).css("backgroundImage","none");
                $(headerboxname + " h2").removeClass(dieklasse);
                $(headerboxname + " h2, "+headerboxname + " p").addClass("bg_"+dieklasse+"_farbe");
        }

        // das promobox ist ein div element, welches mit anderen in der gleichen Zeile liegt.
        // damit der hintergrund sich über die komplette höhe erstreckt,
        // wird die Höhe aller Elemente in der gleichen Zeile abgemessen und
        // die Höhe der Promobox auf die in dieser Zeile höchste vorkommende Höhe gesetzt.

        var myheight = 0; // neue höhe
        var actualHeight = 0;
        /* $(promoboxname+"/../div").each(function(i) { // für jedes der benachbarten Elemente (einschließlich sich selbst) wird diese Funktion ausgeführt
                actualHeight = $(promoboxname+"/../:eq("+i+")").height(); // Höhe des aktuellen Elements holen
                if (actualHeight>myheight) // wenn die höhe größer ist als die bisherige, setze sie auf diese
                        myheight = actualHeight;
                alert(actualHeight);
        }); */
        var myobj = $(promoboxname).parent().children();
        $.each(myobj, function (i,n) {
                actualHeight = n.scrollHeight;
                if (actualHeight>myheight) // wenn die höhe größer ist als die bisherige, setze sie auf diese
                        myheight = actualHeight;
        });
        if (myheight>330) myheight = 330;
        $(promoboxname).height(myheight); // setze die höhe der promobox

        // spielplan detail seite: fade
        // bestimme, ob die URI einen anker hat
        var urianchor = '';
        if (document.location.href.indexOf("#")>=0) {
                tmp = "a"+document.location.href.substr(document.location.href.indexOf("#"));
                if ($(urianchor).size()!=0 && urianchor!="a#")
                        urianchor = tmp;
        }
        var firstlink;
        // hole die Links, die links von den Bildern liegen
        $("//ul.links/li/a").add("#weiteretermine").each(function(i) {
                if (this.href.search(/#.+/)!=-1) {// alle links die zu einem anker linken
                        var anchor = "a"+this.href.substr(this.href.indexOf("#"));
                        if ($(anchor) && $(this).attr("rel")=="maincontent") { // wenn der anker valid ist
                                // alle divs von den links verschwinden lassen
                                $(anchor).next().hide();
                                $(this).attr("href","javascript:;") // href auf javascript aktion setzen
                                if (urianchor==anchor)  // wenn dieser anker bereits an der uri dran ist, dann zeige ihn
                                        $(maincontent).html($(anchor).next().html());
                                else if (urianchor=='' && i==0) // ansonsten zeige den ersten
                                        $(maincontent).html($(anchor).next().html());
                                // zeige den maincontent
                                $(maincontent).show(1, onLoadMainContent);
                                // gib allen links mit rel="maincontent" eine onclick function
                                $(this).click(function() {
                                        $(maincontent).fadeOut("fast", function() {
                                                $(maincontent).html($(anchor).next().html());
                                        });
                                        $(maincontent).css("opacity","0.0001");
                                        $(maincontent).show("fast",function() {
                                                $(maincontent).ScrollTo("normal");
                                                $(maincontent).fadeIn("fast", onLoadMainContent);
                                                tb_init('a.thickboxReinit');  // inserted by Andreas Perner 18.08.2009
//tb_init();
                                        });
                                        //$("body").animate({ scrollTop: $(maincontent).attr("offsetTop")}, "slow");
                                });
                        }
                }

        });
        $("a.print").attr("href","javascript:;");
        $("a.print").show();
        if ($("#datum1,#datum2").length>0) {
                $('#datum1,#datum2').calendar({
                        clearText : 'L&ouml;schen',
                        closeText : 'Schlie&szlig;en',
                        prevText : '&lt;Zur&uuml;ck',
                        nextText : 'Weiter&gt;',
                        //currentText : 'Heute',
                        dayNames : new Array('So','Mo','Di','Mi','Do','Fr','Sa'),
                        monthNames : new Array('J&auml;n','Feb','M&auml;r','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'),
                        dateFormat : 'DMY.',
                        speed : 'fast',
                        firstDay : 1,
                        yearRange : '-1:+1',
                        autoPopUp: 'both',
                        buttonImageOnly: true,
                        buttonImage: '/Content.Node2/images/layout/calendar.gif',
                        buttonText: 'Kalender',
                        closeAtTop : false,
                        showOtherMonths : true,
                        changeFirstDay : false
                });
        }

        shoutbox="#shoutbox";
        shoutboxPositions = new Array("links","mitte","rechts");
//      if ($(shoutbox).length>0) {

                shoutboxFadeIn();
                refreshShoutbox = window.setInterval(shoutboxFadeOut,6000);

                nextTeaserChange = 0;
                Teasers = new Array("operette", "oper", "musical", "ballett");
                for (i=0;i<Teasers.length;i++) {
                        if (!TeaserPictures[i])
							continue;
						teaserSelector = "div.teaser_"+Teasers[i];
                        
						var pic = TeaserPictures[i][Math.round(Math.random()*(TeaserPictures[i].length-1))];
                        $(teaserSelector).css("background-image","url("+pic+")");
                        ActualTeaserPicture[i] = pic;
                        changeTeaser();
//                      teaserClone[i] = $(teaserSelector).clone(true);
//                      teaserClone[i].appendTo($(teaserSelector));
                }
                teaserOverlay=$("<div></div>")
                        .attr("id","teaserOverlay")
                        .appendTo("body");
//        }
        $("a[@href*=#popup]").click(function() {
                window.open($(this).attr("href"),"",'scrollbars=yes,resizable=yes,height=600,width=818');
                return false;
        });
});
function changeTeaser() {
        teaserNow = $("div.teaser_"+Teasers[nextTeaserChange]);
		if (teaserNow.length==0)
			return;
        if (!teaserClone[nextTeaserChange]) {
                teaserClone[nextTeaserChange] = teaserNow.clone(true);
        }
        teaserClone[nextTeaserChange].fadeOut("slow", function() {
//              teaserClone[nextTeaserChange].remove();
//              teaserClone[nextTeaserChange] = teaserNow.clone(true);
//              teaserClone[nextTeaserChange].css("z-index","101").appendTo(teaserNow.parent());
        });

        //teaserClone = teaserNow.clone(true);
        //teaserClone.css("z-index","101").appendTo(teaserNow.parent());
        do {
                pos = Math.round(Math.random()*(TeaserPictures[nextTeaserChange].length-1));
        } while (pos==ActualTeaserPicture[nextTeaserChange]);

        teaserNow
                .css("background-image","url("+TeaserPictures[nextTeaserChange][pos]+")");
        ActualTeaserPicture[nextTeaserChange] = pos;
        nextTeaserChange = (nextTeaserChange+1)%Teasers.length;
}
function shoutboxFadeOut() {
        changeTeaser();
		if ($(shoutbox).length==0) {
			return;
		}
        $(shoutbox).fadeOut("medium", shoutboxFadeIn);

}
function shoutboxFadeIn() {
		if ($(shoutbox).length==0) {
			return;
		}

        $(shoutbox).hide();
        shoutboxClass = $(shoutbox).attr("class");

        do {
                pos = Math.round(Math.random()*(shoutboxPositions.length-1));
        } while (shoutboxClass.indexOf(shoutboxPositions[pos])!=-1);
        $(shoutbox).removeClass(shoutboxClass).addClass(shoutboxPositions[pos]).addClass("shoutbox");
        $(shoutbox).fadeIn("medium");
}
function onLoadMainContent() {
        $("//td.cast/a").each(function(i) {
                $(this).attr("href","javascript:;");
                $(this).click(function() {
                        $("//div#besetzung").fadeOut("fast");
                        var loadingImg = $("<img />").attr("src",loadingImage);
                        $("//div#besetzung").html(loadingImg);
                        $("//div#besetzung").fadeIn("fast");
                        $.get("besetzung."+language+".php",{eventid: $(this).attr("rel") }, function(data) {

                                $("//div#besetzung").html(data);

                        });

                        var day = $("table.further_dates tr td.day:eq("+i+")").html();
                        var weekday = $("table.further_dates tr td.weekday:eq("+i+")").html();
                        var starttime = $("table.further_dates tr td.starttime:eq("+i+")").html();
                        var monthyear = $("table.further_dates td.day:eq("+i+")").parent().parent().children("tr:eq(0)").children("th:eq(0)").html();
                        var datum = weekday + " " + day + ". " + monthyear + " <br /> Beginn: " + starttime;
                        $("//abbr.dtstart").html(datum);
                        //$("//div#besetzung").load("besetzung."+language+".php", {eventid: $(this).attr("rel") });
                });
        });



}
function druckvorschau() {
        window.print();
        return false;
}
