/**
    Copyright (c) 2003-2008, spirito GmbH, Germany
    http://www.spirito.de
    info@spirito.de
 */

function log(s){
    if (typeof(console) != "undefined")
        console.log(s)
}


var slideimgs = {
    time_between_movement : 9000,
    pic_width : "478",
    pic_height: "478",
    pics_portraits_unique_people: new Array(), //6 Portraits, die zuerst angezeigt werden sollen.
    pics_portraits : new Array(),
    pics_technik : new Array(),
    pics_events:  new Array(),
    pics_portraits_done : new Array(),
    pics_technik_done : new Array(),
    pics_events_done:  new Array(),
    alt_titles : new Hash(),    
    
    play_on_connect_sound : true,
    
    /* Verwaltung der Top-Bilder */
    nextgallery : null,
    _pos1 : 0,
    _pos2 : 0,
    _pos3 : 0,    


    init : function(){
        slideimgs.nextgallery = slideimgs.pics_portraits;
            
            slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_005.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_005.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_010.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_010.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_017.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_017.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_020.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_020.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_025.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_025.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_028.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_028.jpg", ''); slideimgs.pics_portraits_unique_people.push("/data/lightcompany_port_030.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_030.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_001.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_001.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_002.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_002.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_003.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_003.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_004.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_004.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_006.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_006.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_009.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_009.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_013.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_013.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_016.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_016.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_018.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_018.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_019.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_019.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_022.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_022.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_024.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_024.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_026.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_026.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_027.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_027.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_029.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_029.jpg", ''); slideimgs.pics_portraits.push("/data/lightcompany_port_031.jpg"); slideimgs.alt_titles.set("/data/lightcompany_port_031.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_003.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_003.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_002.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_002.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_004.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_004.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_005.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_005.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_006.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_006.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_007.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_007.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_008.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_008.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_009.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_009.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_010.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_010.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_011.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_011.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_012.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_012.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_016.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_016.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_014.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_014.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_015.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_015.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_018.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_018.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_019.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_019.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_021.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_021.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_022.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_022.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_024.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_024.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_026.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_026.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_027.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_027.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_028.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_028.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_029.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_029.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_031.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_031.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_034.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_034.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_035.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_035.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_037.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_037.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_038.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_038.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_039.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_039.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_040.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_040.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_041.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_041.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_042.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_042.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_043.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_043.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_044.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_044.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_045.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_045.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_046.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_046.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_048.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_048.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_050.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_050.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_051.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_051.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_052.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_052.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_053.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_053.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_054.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_054.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_055.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_055.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_056.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_056.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_057.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_057.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_059.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_059.jpg", ''); slideimgs.pics_technik.push("/data/lightcompany_tech_061.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_061.jpg", ''); slideimgs.pics_technik.push("/data/technik_0001.jpg"); slideimgs.alt_titles.set("/data/technik_0001.jpg", ''); slideimgs.pics_events.push("/data/toyota9692.jpg"); slideimgs.alt_titles.set("/data/toyota9692.jpg", 'Toyota Moskau'); slideimgs.pics_events.push("/data/lightcompany_event_002.jpg"); slideimgs.alt_titles.set("/data/lightcompany_event_002.jpg", 'CYBERHOIST - Steuerung von Bühnenelementen'); slideimgs.pics_events.push("/data/lexus9798.jpg"); slideimgs.alt_titles.set("/data/lexus9798.jpg", 'Lexus Moskau'); slideimgs.pics_events.push("/data/lightcompany_tech_logo.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_logo.jpg", 'Das Markenzeichen der Lightcompany'); slideimgs.pics_events.push("/data/lightcompany_tech_013.jpg"); slideimgs.alt_titles.set("/data/lightcompany_tech_013.jpg", 'SAP - Deutscher Partnerkongress - Berlin 2008'); slideimgs.pics_events.push("/data/conga6786web.jpg"); slideimgs.alt_titles.set("/data/conga6786web.jpg", 'Conga Award'); slideimgs.pics_events.push("/data/bpt2008_01.jpg"); slideimgs.alt_titles.set("/data/bpt2008_01.jpg", 'CDU Bundesparteitag 2008'); slideimgs.pics_events.push("/data/bpt2008_02.jpg"); slideimgs.alt_titles.set("/data/bpt2008_02.jpg", 'CDU Bundesparteitag 2008'); slideimgs.pics_events.push("/data/fotos_gross_0000s_0000s_0004_ebene_23.jpg"); slideimgs.alt_titles.set("/data/fotos_gross_0000s_0000s_0004_ebene_23.jpg", 'Das Markenzeichen der Lightcompany'); slideimgs.pics_events.push("/data/cpd2780web.jpg"); slideimgs.alt_titles.set("/data/cpd2780web.jpg", 'CPD Düsseldorf'); slideimgs.pics_events.push("/data/fotos_gross_0000s_0000s_0004_ebene_23_1.jpg"); slideimgs.alt_titles.set("/data/fotos_gross_0000s_0000s_0004_ebene_23_1.jpg", 'Das Markenzeichen der Lightcompany'); slideimgs.pics_events.push("/data/rk7271web.jpg"); slideimgs.alt_titles.set("/data/rk7271web.jpg", 'Rheinkultur'); slideimgs.pics_events.push("/data/arcor3849web.jpg"); slideimgs.alt_titles.set("/data/arcor3849web.jpg", 'Arcor Meeting'); slideimgs.pics_events.push("/data/cat18web.jpg"); slideimgs.alt_titles.set("/data/cat18web.jpg", 'Caterpillar'); slideimgs.pics_events.push("/data/lightcompany_event_009.jpg"); slideimgs.alt_titles.set("/data/lightcompany_event_009.jpg", 'Citroen Händlertagung Karlsruhe'); slideimgs.pics_events.push("/data/event_102.jpg"); slideimgs.alt_titles.set("/data/event_102.jpg", 'CDU Parteitag 2007'); slideimgs.pics_events.push("/data/polo6657web.jpg"); slideimgs.alt_titles.set("/data/polo6657web.jpg", 'Polo Open Air'); slideimgs.pics_events.push("/data/event_108.jpg"); slideimgs.alt_titles.set("/data/event_108.jpg", 'C&A Amsterdam NL'); slideimgs.pics_events.push("/data/event_104.jpg"); slideimgs.alt_titles.set("/data/event_104.jpg", 'Vodafone Moskau'); slideimgs.pics_events.push("/data/woe8429web.jpg"); slideimgs.alt_titles.set("/data/woe8429web.jpg", 'World of Events 2007'); slideimgs.pics_events.push("/data/boot2009_01.jpg"); slideimgs.alt_titles.set("/data/boot2009_01.jpg", 'Boot 2009');
        /*Die Startbilder einbauen */
        $('slidepic1').src="/design/manx-lightcompany/img/blank.gif"
        $('slidepic2').src="/design/manx-lightcompany/img/blank.gif"
        //$("slidepic2").src=slideimgs.get_new_img()
        
    },
    
    take_positions : function(left, middle, right){
        $$("#slide-pic-container IMG").each( function(img){
           img.height = slideimgs.pic_height;
           img.width = slideimgs.pic_width;
        })
                
        var container = $("slide-pic-container")
        container.absolutize()
        if (document.viewport.getWidth() > 1173) {
            container.setStyle({
                "width": document.viewport.getWidth() + "px",
                "left" : "-" + (document.viewport.getWidth() - 1173)/2 + "px" 
            });
        }
        log("containerwidth: " + $("slide-pic-container").getWidth());
        
        left.show();
        left.absolutize();
        var posright = $("slide-pic-container").getWidth() - $("transpbalken").cumulativeOffset()['left'] - $("transpbalken").getWidth()
        left.setStyle({
            "right" : posright + "px",
            "left" : "auto",
            "width" :  slideimgs.pic_width + "px"
        })
        
        middle.show()
        middle.absolutize();
        var width = $("slide-pic-container").getWidth() - $("transpbalken").cumulativeOffset()['left'] - $("transpbalken").getWidth()
        var posright = $("slide-pic-container").getWidth() - $("transpbalken").cumulativeOffset()['left'] - $("transpbalken").getWidth() - middle.down("IMG").getWidth()
        middle.setStyle({
            "right" : posright +"px",
            "left" : "auto",
            "width" :  slideimgs.pic_width + "px"
        })
        
        right.down(".alt").update("")
        right.absolutize()
        right.setStyle({
            "right" : "0px",
            "width" : slideimgs.pic_width + "px"
        })
        right.hide()
        
        // TODO: wieder entfernen!
        // waere nett gewesen :-)
        // $("footer").insert( { "bottom" : "<span style='color:black;'>Test</span>" });
        /*
        console.dirxml(left);console.dirxml(middle);console.dirxml(right);
        console.log(left.getHeight());console.log(middle.getHeight());console.log(right.getHeight());
        */        
    },
    
    move : function(left, middle, right){
        right.down("IMG").src=slideimgs.get_new_img()
        slideimgs.take_positions(left, middle, right);

        /* linkes Bild */
        new Effect.Scale(left, 200,{scaleY: false, scaleContent: false, duration : 1} )
        new Effect.Fade(left, {duration: 0.5, delay: 0.5})
        
        /*mittleres Bild*/
        new Effect.Scale(middle, 200, {scaleY: false, scaleContent: false, duration : 2} )
        
        /* rechtes, neues Bild */
        right.setStyle({
                 "right" : "0px", 
                 "left":"auto"
        })
        var spaceRight = $("slide-pic-container").getWidth() - $("transpbalken").cumulativeOffset()['left'] - $("transpbalken").getWidth()
        var percent = ( 100/right.down().width ) *  spaceRight
        new Effect.Appear(right, {duration: 1, delay: 1})
        new Effect.Appear(right.down(".white-line"), {duration: 1, delay: 1})
        new Effect.Scale(right, percent, {scaleY: false, scaleContent: false, duration : 4  , delay: 1, afterFinish : slideimgs.on_connect} )

        window.setTimeout( function(){
                    slideimgs.move(middle,right,left);     
                }, 
            slideimgs.time_between_movement
        )
    },
    

    _show_unique_people_gallery: true, //Hilfsvar, um beim 1. Durchlauf zw. pics_portraits und pics_portraits_first umzuschalten.
    _get_next_img : function(gallery){
        //_nextimg neu setzen
        var unshown_pics;
        var shown_pics;

        if(slideimgs._show_unique_people_gallery && gallery == "pics_portraits"){
            unshown_pics = this["pics_portraits_unique_people"]
            shown_pics = this["pics_portraits_done"]
        }
        else{
            unshown_pics = this[gallery];
            shown_pics = this[gallery+"_done"]
        }
        var r = Math.random()
        r = Math.round(r * (unshown_pics.length-1))
        var nextimg = unshown_pics[r]
        
        unshown_pics.splice(r,1)         
        shown_pics.push(nextimg)
         
        if (unshown_pics.length == 0){
            if(slideimgs._show_unique_people_gallery && gallery == "pics_portraits"){
                slideimgs._show_unique_people_gallery = false;
            }
            else{
                this[gallery] = shown_pics
                this[gallery+"_done"] = new Array()
            }
        } 
        //console.log(this[gallery])
        //console.log(this[gallery+"_done"])
        //console.log("--------------")
        return nextimg
    },
    
    
    _img_cnt : 1,
    _themes : new Array("pics_portraits", "pics_technik", "pics_events"),
    _next_preload_theme : 0, //position in _themes Array
    _preload_img : null,
    get_new_img : function(){
        if (slideimgs._preload_img == null) //1. Durchlauf
        {
            slideimgs._preload_img = slideimgs._get_next_img(slideimgs._themes[0])
            slideimgs._next_preload_theme = 1
        }     
        var pic = slideimgs._preload_img
        slideimgs._preload_img = slideimgs._get_next_img( slideimgs._themes[ slideimgs._next_preload_theme ] )
        $("preloadimg").src = slideimgs._preload_img 
        //console.log(pic)

        slideimgs._img_cnt++;
        if ( slideimgs._img_cnt %10 != 0){
            if ( slideimgs._next_preload_theme == 0)
                slideimgs._next_preload_theme = 1
            else 
                slideimgs._next_preload_theme = 0
        } else {
                slideimgs._next_preload_theme = 2
        }
        
        return pic;
    },
    

    
    /*
    _img_cnt : 1,
    _last_theme : null,
    get_new_img : function(){
        var nextimg = null;
        if ( slideimgs._img_cnt %10 != 0){
            if (slideimgs._last_theme == slideimgs.pics_portraits){
                nextimg = slideimgs.get_not_shown_img("pics_technik")
                slideimgs._last_theme = slideimgs.pics_technik;
            }else{
                nextimg = slideimgs.get_not_shown_img("pics_portraits")
                slideimgs._last_theme = slideimgs.pics_portraits;
            }
        } else {
                nextimg = slideimgs.get_not_shown_img("pics_events")
        }
        slideimgs._img_cnt++;
        return nextimg;
    },

    

    
    _nextimg : null,    
    get_not_shown_img : function(gallery){
        // _nextimg speichert immer ein img zwischen, und lï¿½dt es vor.  
        
        var ret = null
        while (ret == null || slideimgs._nextimg == null) {
             ret = slideimgs._nextimg;
             slideimgs._nextimg = slideimgs.get_next_img(gallery)
         }
         
         //nï¿½chstes bild vorladen
         if ( $('preloadimg'))
            $('preloadimg').remove();
         $$("BODY")[0].insert({bottom: "<img height='1' width='1' id='preloadimg' src='" + slideimgs._nextimg + "'>"})
         
         return ret;
    },
    
    */
    
    on_connect : function(ev){
        if (app.play_sound)
            soundManager.play("zusammentreffen")
        new Effect.Appear($("flash-line"),{duration: 0.1, afterFinish: function(){ 
                                                                                                            new Effect.Fade($("flash-line"), {duration: 0.1})
                                                                                                            }                                           
        })
        //alt beschreibung einfï¿½gen
        var img = ev.element.down("IMG")
        var k = img.src.split("/")
        var key = "/" + k[k.length-2] + "/" + k[k.length-1]
        if (slideimgs.alt_titles.get(key)){
            var alt = img.next(".alt");
            var span = new Element("span");
            span.setStyle({
                "display": "none"
            });
            span.update(slideimgs.alt_titles.get(key));
            //var span = "<span style='display: none;'>" + slideimgs.alt_titles.get(key) + "</span>";
            alt.update(span);
            new Effect.Appear(span, {duration: 1});
        }
    }
    
};


var menu = {
    init : function(){
        $$("#menu2 A").each( function(a){
            Event.observe(a, "mouseover", menu.play_sound);
        })
    } ,
    play_sound : function(){
        soundManager.play("rollover")
    }
};

var toptext = {
    fade_duration : 10,
    slide_down_duration : 6,
    delay_between_slide_and_fade : 9, //muss groesser als slide_down_duration
    time_between_two_texts : 10, //in secs
    time_before_first_text : 5,
    /*
    fade_duration : 4,
    slide_down_duration : 3,
    delay_between_slide_and_fade : 3, //muss groesser als slide_down_duration
    time_between_two_texts : 3, //in secs
    time_before_first_text : 1,
    */
    
    texts : new Array(),
    texts_shown : new Array(),
    init : function(){
        new Effect.Fade($("top-text"));
        window.setTimeout( toptext.cycle, toptext.time_before_first_text * 1000 )
        
        
            
                toptext.texts.push("<h1>Flexibilität <br></h1>Jede Veranstaltung ist besonders. Andere Inhalte, andere Locations. Wir sind darauf eingestellt und entwickeln individuelle Lösungen, um das Einzigartige ans Licht zu bringen.")
            
                toptext.texts.push("<h1>Zuverlässigkeit <br></h1>Wir können uns auf einander verlassen und der Veranstalter auf uns. Lose Versprechungen liegen uns nicht, verlässliche Arbeit schon.")
            
                toptext.texts.push("<h1>Zertifizierung<br></h1>Wir arbeiten derzeit an einem Standard zur Zertifizierung von Anbietern der Veranstaltungstechnik. Damit Qualität demnächst auch Brief und Siegel hat.")
            
                toptext.texts.push("<h1>Solidität <br></h1>Präsentationen, Konzerte internationaler Künstler oder was auch immer: Wir bieten das solide Fundament mit ausgereifter High-End-Technik und qualifiziertem Personal.")
            
                toptext.texts.push("<h1>Qualität <br></h1>Erstklassige Technik renommierter Hersteller - geprüft, gepflegt, gewartet und immer auf dem neuesten Stand. Damit die Qualität einer Veranstaltung zu 100% beim Publikum ankommt.")
            
                toptext.texts.push("<h1>Sicherheit</h1><p>Wir schreiben Sicherheit nicht nur groß, wir gewährleisten sie. Auch bei größten Veranstaltungen bis ins kleinste Detail. Ganz sicher.")
            
                toptext.texts.push("<h1>Präzision</h1><p>Wir arbeiten gerne und genau. Denn wenn alle Komponenten bestmöglich ineinander greifen, kommt das Wesentliche zum Tragen.")
            
                toptext.texts.push("<h1>Detailplanung</h1><p>Ideen entwickeln ist das eine. Sie auch umzusetzen ist das andere. Vom Entwurf bis zur endgültigen Konzeption: Vor der Umsetzung haben wir alles sorgfältig geplant.")
            
                toptext.texts.push("<h1>Expertenschaft <br></h1>Als Meisterbetrieb mit ausgewiesenem Fachpersonal kümmern wir uns qualifiziert um alle Belange: Von der Beratung über die punktgenaue Planung bis zur reibungslosen Ausführung.")
            
                toptext.texts.push("<h1>Kompetenz <br></H1>Fundiertes Fachwissen kommt erst in der praktischen Umsetzung zur Geltung. Von der Beratung bis zur Ausführung ; in Deutschland, Frankreich, Singapur oder anderswo.")
            
                toptext.texts.push("<h1>Erfahrung <br></h1>Seit 25 Jahren betreuen wir Veranstaltungen jeglicher Größenordnung im In- und Ausland.<br>„Know How“ ist nur die halbe Miete. Wir kennen beides: Theorie und Praxis.")
            
                toptext.texts.push("<h1>Professionalität<br></h1>Mensch und Technik: Wenn beides auf internationalem Niveau zusammenkommt,<br>sind beste Ergebnisse das Resultat.")
            
        
    },
    
    cycle : function(){
        toptext.get_text()
        toptext.slide_down()
        new Effect.Fade($("top-text"), {
                duration: toptext.fade_duration, 
                delay: toptext.delay_between_slide_and_fade
        })
        new Effect.Fade($("transpbalken-dark"), {
            delay: toptext.delay_between_slide_and_fade,
            duration: toptext.fade_duration
        }) 
        var t = (toptext.time_between_two_texts +  toptext.delay_between_slide_and_fade + toptext.fade_duration) * 1000;
        window.setTimeout( toptext.cycle,  t ) 
    },


    get_text : function(){
        var t = toptext.texts.pop()
        $("inner-text").update(t)
        toptext.update_done = 1 //Kompatibilitï¿½t zur alten Ajax-Version
        toptext.texts_shown.push(t)
        if (toptext.texts.length == 0){
            toptext.texts = toptext.texts_shown
            toptext.texts.reverse()
            toptext.texts_shown = new Array()
        }
    },
        
    get_text_old : function(){
        var params = $H({
             "_" : $("sessionid").innerHTML.stripTags().strip(),
             "lang" : $("lang").innerHTML.stripTags().strip(),
             "module" : "toptext"
        });
        toptext.update_done = 0
        new Ajax.Request("/design/manx-lightcompany/ajax.html", {
            method: "get",
            parameters : params.toQueryString(),
            onSuccess : function(r){ 
                                        $("inner-text").update(r.responseText);
                                            toptext.update_done = 1                                
                                        }
        })
    },
    
    slide_down : function() {
        //Funktion wird immer wieder aufgerufen, und erst ausgefï¿½hrt, wenn der Ajax-Update fertig ist
        window.setTimeout( function(){
            if (toptext.update_done != 0) {
                $("top-text").down().setStyle({ //slideDown muss einen Container mit fester Height innerhalb des Elements haben
                    "height": "511px"
                })
                new Effect.SlideDown("top-text", {
                    duration: toptext.slide_down_duration
                });
                new Effect.Appear($("transpbalken-dark"), {duration: toptext.slide_down_duration})
            }
            else {
                toptext.slide_down()
            }
        }, 300)
    }
};



var content_updater = {
     change_duration : 1,
     
     init : function(){
       $$("#menu A").concat(
           $$("#content A").concat(
                $$("#submenu A").concat(
                    $$("#zertifikat A").concat(
                        $$("#footer A"))))).each( function(link) {
                            Event.observe(link, "click", content_updater.load_new);
        });    
     },

     
     load_new : function(ev){
         var elem = ev.element();
         while (! elem.readAttribute("href")) {
             elem = elem.up();
         }
         var dest = elem.href;
         //if ( dest.startsWith("http://" + $("documenthost").innerHTML) ){
         if ( dest.startsWith(document.URL.substr(0,25) ) ){
             ev.stop();
             urchinTracker(dest);
             content_updater.load_url(dest);
         }
     },
     
     load_url: function(url) {
        var urlparts = url.toString().split("?")
        var para = $H(url.toString().toQueryParams())
        // Anreichern mit Session und AJAX ID
        para = para.merge({
           "ajax": "1",
           "_": app.sessionid,
           "module" : "content"
        });
        content_updater.show_wait_img();    
        new Effect.Fade("content", {duration : content_updater.change_duration});
        new Effect.Fade("submenu", {duration : content_updater.change_duration});
        window.setTimeout( 
               function(){
                        content_updater.load_submenu(url);
                        new Ajax.Request(           
                            "/design/manx-lightcompany/ajax.html", {
                                parameters: para,
                                asynchronous: true,
                                encoding: "ISO-8859-1",
                                method : "post",
                                onComplete : content_updater.on_complete, 
                                onFailure: function() {
                                    content_updater.hide_wait_img();    
                                    new Effect.Appear("content");                
                                },
                                onException: function() {
                                    content_updater.hide_wait_img();     
                                    new Effect.Appear("content");        
                                }
                            });  
                     }, content_updater.change_duration * 1000
        );       
        return false;
    },
    
    _content : "",
    on_complete : function(transp){
        content_updater._content = transp.responseText;
        window.setTimeout( 
            function(){
                $('content').update(content_updater._content);
                $$("#content A").each( function(link){
                    if (!Element.hasClassName(link,'nomagic')) {
                        Event.observe(link, "click", content_updater.load_new);
                    }
                });                    
                new Effect.Appear("content", {
                    duration: content_updater.change_duration,
                    afterFinish: function(){
                        content_updater.hide_wait_img();
                    }
                });
            },
            content_updater.change_duration * 1000 
        );
    },
    
    load_submenu : function(url){
       var para = $H(url.toString().toQueryParams())
       para = para.merge({
           "ajax": "1",
           "_": app.sessionid,
           "module" : "submenu"
        });
        new Ajax.Request("/design/manx-lightcompany/ajax.html",{
            parameters : para.toQueryString(),
            method : "post",
            onComplete :  function(transp){
                $("submenu").update("");
                ids = transp.responseText.split(",");
                if (ids.length > 1) {
                    var cnt = 1;
                    ids.each(function(id){
                        var a = new Element("A");
                        Element.insert($("submenu"), {
                            bottom: a
                        });
                        a.href = document.URL + "xd/public/content/index.html?pid=" + id;
                        Element.insert(a, {
                            bottom: "<center>" + cnt + "</center>"
                        });
                        cnt++;
                    });
                    $$("#submenu A").each(function(link){
                        Event.observe(link, "click", content_updater.load_new);
                    });
                    new Effect.Appear("submenu", {
                        duration: content_updater.change_duration,
                        delay: content_updater.change_duration
                    });
                }
            }
        });
    },
    
    show_wait_img : function(){
        $("wait").show();
    },
    
    hide_wait_img : function(){
        $("wait").hide();
    }
    
}

/*
var soundManager = {
    stop: function(){
        //dummy
    },
    play: function(){
        //dummy
    }

}

function soundManagerInit(){
    //dummy
    return null;
}
*/

/////////////////////////////////////////
 var app={
     play_sound : true,
     sessionid : null,
     
     init: function(e){
        var sm = soundManagerInit()
        slideimgs.init()
        menu.init()
        toptext.init()
        content_updater.init()
        window.setTimeout( function(){ //nï¿½tig, da der soundManager einige Zeit zum Initialisieren braucht
           soundManager.play("intro")
           soundManager.play("loop", 1000)
           slideimgs.move( $("pic-container1"), $("pic-container2"), $("pic-container3") );
           Event.observe($("soundcontroll"), "click", app.sound_controll);
        }, 5000)
        app.sessionid = $("sessionid").innerHTML;
     },
     
     sound_controll : function(e){
        e.stop()
        if (app.play_sound == true){
            soundManager.stop("loop");
            $$("#menu2 A").each( function(a){
                Event.stopObserving(a, "mouseover", menu.play_sound);
            });
            app.play_sound = false;
            $("soundoff").hide();
            $("soundon").show();
        } 
        else{
            soundManager.play("loop", 1000)
            $$("#menu2 A").each( function(a){
                Event.observe(a, "mouseover", menu.play_sound);
            });
            $("soundon").hide();
            $("soundoff").show();
            app.play_sound = true;  
        }
     }
 }
 
 Event.observe(window, "load", app.init)



//TESTS
/*
Event.observe(window, "load", function(){
    window.setTimeout( function(){
        new Test.Unit.Runner({
            // optional setup function, run before each individual test case
            setup: function() { with(this) {
              // code
            }},
            // optional teardown function, run after each individual test case
            teardown: function() { with(this) {
              // code
            }},
        
            // test cases follow, each method which starts 
            // with "test" is considered a test case
            test_jedes_bild_in_nur_einmal: function() { with(this) {
                var all = slideimgs.pics_events.concat(slideimgs.pics_technik)
                all = all.concat(slideimgs.pics_portraits)
                this.assertEqual(all.length, all.uniq().length)
            }},
            
            
            test_SLIDEIMGS_get_not_shown_img : function() { 
                var a = new Hash()
                for ( var i = 0 ; i< slideimgs.pics_events.length; i++){
                    var pic = slideimgs.get_not_shown_img("pics_events")
                    this.assertNull(null)
                    this.assertEqual(a.get(pic), a.get("einbilddassesbestimmtnichtgibtundauchniemalsgebenwirdsowahrmirshrotthelfe"))
                    a.set(pic,1)
                }         
                var a = new Hash()
                for ( var i = 0 ; i< slideimgs.pics_portraits.length; i++){
                    var pic = slideimgs.get_not_shown_img("pics_portraits")
                    this.assertNull(null)
                    this.assertEqual(a.get(pic), a.get("einbilddassesbestimmtnichtgibtundauchniemalsgebenwirdsowahrmirshrotthelfe"))
                    a.set(pic,1)
                }         
                var a = new Hash()
                for ( var i = 0 ; i< slideimgs.pics_technik.length; i++){
                    var pic = slideimgs.get_not_shown_img("pics_technik")
                    this.assertNull(null)
                    this.assertEqual(a.get(pic), a.get("einbilddassesbestimmtnichtgibtundauchniemalsgebenwirdsowahrmirshrotthelfe"))
                    a.set(pic,1)
                }                
            }
            
        })
      }, 600 )

})
*/