/* ACCORDION */
window.addEvent('domready', function() {
	if( $( 'accordion' ) != null && !$( 'accordion').hasClass( 'accordion1Column' ) ) { //create our Accordion instance
        var myAccordion = new Accordion($('accordion'), 'div.toggler', 'div.element', {
            display: -1,
            opacity: false,
            alwaysHide: true,
            onActive: function(toggler, element){
                toggler.parentNode.addClass('active');
                element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none', 'height': 0, 'overflow': 'hidden'});
                toggler.parentNode.removeClass('hidden');
            },
            onBackground: function(toggler, element){
                toggler.getParent().removeClass('active');
                if( element.getNext( 'div.line' ) ) {
                    element.getParent().removeChild( element.getNext( 'div.line' ) );
                }
            },
            onChainComplete: function(){
                for( i = 0; i < arguments.length; i++ ) {
                    if( !arguments[i].parentNode.hasClass( 'active' ) && !arguments[i].parentNode.hasClass( 'hidden' ) ) {
                        arguments[i].parentNode.addClass( 'hidden' );
                        arguments[i].removeProperty( 'style' );
                    }
                    if( arguments[i].parentNode.hasClass( 'active' ) ) {
                        var line = new Element ('div', { 'class': 'line' } );
                        line.appendChild( new Element( 'div', { 'class': 'column columnLine columnLeft' } ) );
                        line.appendChild( new Element( 'div', { 'class': 'column columnLine columnRight' } ) );
                        arguments[i].getParent().appendChild( line );
                    }
                }
            }
        });
        var elements = $( 'accordion' ).getElements( 'div.element' );
        for( var i = 0; i < elements.length; i++ ) {
            if( elements[i].getNext( 'div.line' ) ) {
                elements[i].getParent().removeChild( elements[i].getNext( 'div.line' ) );
            }
            elements[i].removeProperty( 'style' );
            elements[i].parentNode.addClass( 'hidden' );
        }
    }
    
    if( $( 'accordionMarginal' ) != null ) {
        var marginalAccordion = new Accordion($('accordionMarginal'), '#accordionMarginal h2', 'p.element', {
            display: -1,
            alwaysHide: true
        });
    }
    
    if( document.getElement( '.accordion1Column' ) != null ) {
        var display = -1;
        if( document.location.hash && document.location.hash.length > 1 ) {
            var list = document.getElement( '.accordion1Column' ).getElements( 'h2' );
            for( var i = 0; i < list.length; i++ ) {
                if( list[i].getElement( 'a[name=' + document.location.hash.substring(1) + ']') ) {
                    display = i;
                    break;
                }
            }
        }
        var my1ColAccordion = new Accordion( document.getElement( '.accordion1Column'), 'h2', '.accordionElement', {
            display: display,
            alwaysHide: true,

            onActive: function( toggler, element ) {
            	//flash = findeFlash('flash1_mm');
				//if (flash)
				//	flash.start();
				//document.getElement('flash3_handel').start();
				
				//alert(toggler.getElements('a').get('name'));
				
                toggler.addClass( 'active' );
                
                //element.addClass( 'active' ); //causes problem in ie <8, seems not to have any effect anyway
                element.setStyles({'border-bottom': '1px solid white'});
            },
            onBackground: function( toggler, element) {
                toggler.removeClass( 'active' );
                //element.removeClass( 'active' ); //causes problem in ie <8, seems not to have any effect anyway
                element.setStyles({'border-bottom': 'medium none'});
            }
        } );
    }

});

/* CONTACT BOX */
window.addEvent('domready', function() {
    if( $( 'contact' )  != null 
     && $('contact').getElement('ul') != null
     && $('contact').getElement('h1') != null
    ) {
        var contactSlide = new Fx.Slide($('contact').getElement('ul')).hide();
        var contactSlideOuter = new Fx.Tween($('contact'), { property: 'width' });
        $('contact').getElement('h1').addEvent('click', function(e){
            e.stop();
            if( !contactSlide.open ) {
                $('contact').addClass( 'open' );
                contactSlideOuter.start( '208px' );
            } else {
                contactSlideOuter.start( '110px' );
            }
            contactSlide.toggle();
            
        });
        
        contactSlide.addEvent('complete', function() {
            if(!contactSlide.open) {
                $('contact').removeClass( 'open' );
            }
        });
    }
});

/* WIPE OUT AREAS */
window.addEvent('domready', function() {
    if( $( 'content' ) != null ) {
        var areas = $( 'content' ).getElements( 'div.wipeOutArea' );
        var buttons = $( 'content' ).getElements( 'p.wipeOutButton' );
        
        for( var i=0; i < Math.min( areas.length, buttons.length ); i++ ) {
            var wipeOutSlide = new Fx.Slide( areas[i] ).hide();
            areas[i].store( 'button', buttons[i] );
            buttons[i].store( 'slide', wipeOutSlide );
            
            buttons[i].addEvent( 'click', function(e) {
                e.stop();
                this.retrieve( 'slide' ).toggle();
            });
            
            wipeOutSlide.addEvent( 'complete', function( el ) {
                if( el.retrieve( 'button' ).retrieve( 'slide' ).open ) {
                    el.retrieve( 'button' ).addClass( 'open' );
                } else {
                    el.retrieve( 'button' ).removeClass( 'open' );
                }
            });
        }
    }
});

/* IMAGE-WIPE FUNCTIONALITY */
window.addEvent('domready', function() {
    $each( $$('#content .imageWipe'), function( wipeContainer, index ) {
        var wipeImgs = wipeContainer.getElements('img');
        
        if( wipeImgs.length == 2 ) {
            var wipeWrap = new Element('div', {
                'styles': {
                    'height': wipeImgs[1].offsetHeight,
                    'width': wipeImgs[1].offsetWidth / 2
                },
                'class': 'wipeWrap'
            });
            
            var wipeWrapDrag = wipeWrap.makeResizable({
                limit: {x: [0, wipeImgs[1].offsetWidth], y: [wipeImgs[1].offsetHeight, wipeImgs[1].offsetHeight]},
                onSnap: function(el) {
                    if( !wipeContainer.hasClass('active') ) {
                        this.stop();
                    }
                },
                onDrag: function(el) {
                    if( !wipeContainer.hasClass('active') ) {
                        this.stop();
                    }
                }
            });
            wipeContainer.addEvents({
                'mouseenter': function(e) {
                    var wwLeft = wipeWrap.getCoordinates().left;
                    if( Browser.Engine.trident ) {
                        wwLeft = wipeWrap.getBoundingClientRect().left; /* trident (ie) proprietary method */
                    }
                    
                    wipeWrap.setStyle('width', e.page.x - wwLeft + 'px');
                    wipeWrap.fireEvent('mousedown', e);
                    wipeContainer.addClass('active');
                },
                'mouseleave': function(e) {
                    wipeWrap.fireEvent('mouseup', e);
                    wipeWrapDrag.stop(e);
                    wipeContainer.removeClass('active');
                }
            });
            wipeWrap.wraps(wipeImgs[1]);
            
            wipeContainer.addClass('activated');
            wipeContainer.setStyle('height', wipeImgs[1].offsetHeight);
            wipeContainer.setStyle('width', wipeImgs[1].offsetWidth);
        }
    });
});

/* HIDDEN IMAGE SLIDESHOW, USES AND REQUIRES SLIMBOX */
window.addEvent('domready', function() {
    $each( $$('#mainContent p.slideShowStarter'), function( slideStarter, index ) {
        var slideStarterImgs = slideStarter.getElements('img');
        var slideStarterImg = slideStarterImgs.length == 1 ? slideStarterImgs[0] : false;
        var slideShowImgContainer = slideStarter.getNext('p.slideShowImages');
        var slideShowImgs = slideShowImgContainer != null 
            && slideShowImgContainer.getElements('img').length > 0 
                ? slideShowImgContainer.getElements('img') 
                : false;
        
        if( slideStarterImg != false && slideShowImgs != false && Slimbox ) {
            
            slideStarterImg.addEvent('click', function(e) {
                
                var imgArr = new Array();
                $each( slideShowImgs, function( slideShowImg, ind3x ) {
                    if( slideShowImg.title != '' ) {
                        imgArr.push( [slideShowImg.src, slideShowImg.title] );
                    } else {
                        imgArr.push( [slideShowImg.src] );
                    }
                });
                
                Slimbox.open( imgArr, 0 );
            });
        }
    });
});

/* HIDDEN FALLBACK IMAGE SLIDESHOW FOR MEDIABOX-FLV-SWF IF NO FLASH IS PRESENT */
window.addEvent('domready', function() {
    if( FlashDetect && FlashDetect.installed == false ) {

        $each( $$("a.mediabox-flv-swf"), function( mediaBoxLink, index ) {
            
            if( mediaBoxLink.getParent('p') != null 
             && mediaBoxLink.getParent('p').getNext() != null 
             && mediaBoxLink.getParent('p').getNext().hasClass('mediabox-alternative-slideshow') != null 
             && mediaBoxLink.getParent('p').getNext().getElements('img').length != null 
             && Slimbox
            ) {
            
                mediaBoxLink.addEvent('click', function(e) {
                    
                    var slideShowImgs = mediaBoxLink.getParent('p').getNext().getElements('img');
                    
                    var imgArr = new Array();
                    $each( slideShowImgs, function( slideShowImg, ind3x ) {
                        if( slideShowImg.title != '' ) {
                            imgArr.push( [slideShowImg.src, slideShowImg.title] );
                        } else {
                            imgArr.push( [slideShowImg.src] );
                        }
                    });
                    
                    Slimbox.open( imgArr, 0 );
                    
                    return false; // since this is a link and we don't want to follow
                });
            
            }
        });
        
    }
});

/* FALLBACK IMAGES FOR FLASH CONTENT; APPEAR ONLY WHEN NO FLASH IS PRESENT */
window.addEvent('domready', function() {
    if( FlashDetect && FlashDetect.installed == false ) {
        
        $each( $$(".flash-alternative"), function( alt, index ) {
            $(alt).setStyle('display', 'block');
            
            if( $(alt).getPrevious('object') != null ) {
                var hideMe = new Element('div', {
                    'styles': {
                        'display': 'none'
                    }
                });
                hideMe.wraps( $(alt).getPrevious('object') );
            }
            
            if( $(alt).getNext('object') != null ) {
                var hideMe = new Element('div', {
                    'styles': {
                        'display': 'none'
                    }
                });
                hideMe.wraps( $(alt).getNext('object') );
            }
        });
            
    }
});

/* CONTACT FORM */
window.addEvent( 'domready', function() {
    if( $( 'mailform' ) ) {
        if( $$( '#mailform #mailformSubjectSonstiges' ).getProperty( 'checked' ) == 'false' ) {
            $( 'mailform' ).elements['customSubject'].setStyle( 'visibility', 'hidden' );
        }
        $$( '#mailform #mailformSubjectSonstiges' ).addEvent( 'change', function( e ) {
            $( 'mailform' ).elements['customSubject'].setStyle( 'visibility', e.event.target.getProperty( 'checked' ) ? 'visible' : 'hidden' );
        });
        if( document.location.hash.length > 1 ) {
            var hash = document.location.hash.substr( 1 );
            if( $$( '#mailform input[name^=subject][value=' + hash + ']' ) ) {
                $$( '#mailform input[name^=subject][value=' + hash + ']' ).setProperty( 'checked', 'true' );
            }
        }
    }
});