/**
    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>Flexibility<br></h1>Every event is special. Different content, different locations. We’re prepared for this and develop individual solutions for staging your unique event.")
            
                toptext.texts.push("<h1>Reliability<br></h1>We can rely on each other and the event organiser can rely on us. Making loose promises is not our thing, but reliable work is.")
            
                toptext.texts.push("<h1>Certification<br></h1>We’re currently working on standards for certifying providers of event technology, so that quality is sealed and certified.")
            
                toptext.texts.push("<h1>Solidity<br></h1>Presentations, concerts featuring international artists or whatever it may be – we offer a solid basis with sophisticated, high-end technology and qualified staff.")
            
                toptext.texts.push("<h1>Qualität <br></h1>First-class technology from well-known manufacturers – tested, looked after, maintained and always state-of-the-art. So that your audience can fully appreciate the quality of your event.")
            
                toptext.texts.push("<h1>Safety&nbsp;</h1><p>We don’t just place an emphasis on safety, we guarantee it. Even the smallest detail at the biggest events. Safe and sound.")
            
                toptext.texts.push("<h1>Precision&nbsp;</h1><p>We like working and we do it to a high level of precision. If everything is put together the right way in the first place, the whole thing just works.")
            
                toptext.texts.push("<h1>Detailed planning&nbsp;</h1><p>To develop ideas is one thing. To put them into practice is another. From the idea to the final concept, we plan everything carefully before it’s implemented.")
            
                toptext.texts.push("<h1>Expert knowledge<br></h1>As an expert company with staff who have proven qualifications, we can take care of everything from advice and detailed planning to making sure your event goes off without a hitch.")
            
                toptext.texts.push("<h1>Competence<br></h1>Well-founded specialist knowledge only really comes into its own when it has to be implemented practically. Whether it’s for “Dior” or the “Toten Hosen” in Germany, France, Singapore or elsewhere.")
            
                toptext.texts.push("<h1>Experience<br></h1>We have been overseeing events of all sizes at home and abroad for 25 years. Knowledge is only the half of it. We’re competent in both the theory and practice.")
            
                toptext.texts.push("<h1>Professionalism<br></h1>People and technology – you get the best results when both are of an international standard.")
            
        
    },
    
    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 )

})
*/