jQuery.noConflict();
(function($){

        function callOnDomReady() {
            
                
                $('html').addClass('js-on'); // html class
                $('body').removeClass('js-off');
                //Zebra-Tables
                $('div.text tbody tr:nth-child(odd)').addClass('odd');

                addPrintLink();

                //wait for the swfobject DOM-Ready, so we can return a proper reference to flash object
                swfobject.addDomLoadEvent(function(){
                        $('div.flash').embedSWF();
                });
                
                $('#nav-global.megamenu').simpleMenu({
                        generateSkip: true,
                        skipStructure: '<a class="menu-skip" href="#" title="Untermen� {from} �berspringen">direkt zu Men� {to} springen</a>',
                        skipEndStructure: '<a class="menu-skip" href="#" title="ans Ende vom Menu springen">Untermen� {from} �berspringen</a>',
                        init: function(e, ui){
                                
                        },
                        //showHiddenOnFocus: true,
                        show: function(e, ui){
                                var menuBox = $('> div.menu-box', ui.menu)
                                        .css({
                                                top: ui.menu.outerHeight({margin: true}) * -1
                                        });
                                
                                ui.menu.addClass('menu-open');
                                menuBox.stop(true, true)
                                        .animate({
                                                top: 0
                                        });
                        },
                        hide: function(e, ui){
                                var menuBox = $('> div.menu-box', ui.menu);
                                menuBox.animate(
                                        {
                                                top: ui.menu.outerHeight({margin: true}) * -1
                                        },
                                        {complete: function(){
                                                ui.menu.removeClass('menu-open');
                                                menuBox.css({top: 0});
                                        }}
                                );
                                
                        }
                });
                
                //initialize flowplayer
                window.contextPath = window.contextPath ||
                        '';
                
                $("div.video a").flowplayer(
                        contextPath + "/.resources/templating-kit/swf/flowplayer.swf", {
                                // splash image
                                clip:{
                                        autoPlay: false,
                                        autoBuffering: true
                                }
                        }
                );

                //different tabs
                createTabs();
                faqToc();

                //Teaser-Switchers
                
                $('div.teaser-wrapper:not(.tw-paging,.tw-slider)')
                        .each(function(){
                                $('div.pager', this)
                                        .append('<div class="prev"><span /></div><div class="next"><span /></div>');
                                $(this).scroller();
                        });

                pagingTeaserSwitcher();
                slidingTeaserSwitcher();

                createShowBox();
                
                slidingTabs();
                
                addLandmarks();

                $.socialbookmark.init('li.social-b a');

                createYoutubeList();
                
              
                $('div.flickr-box').flickrFeed({
                        flickrWrapper: 'div.flickr-photos',
                        maxItemCount: 6,
                        wrapperTmpl: '<ul><%=items%></ul>',
                        template: '<li><a href="<%=imglink%>"><img src="<%=imgsrc%>" alt="<%=imgtitle%>" title="<%=imgtitle%>" /></a></li>'
                });
                
                
                //hide the all of the element with class expand_body
                $(".expand_body_classifieds").hide();
                //toggle the componenet with class expand_head
                $(".expand_head_classifieds").click(function()
                {       
                  if(!$(this).parent().parent().prev(".expand_body_classifieds").is(":visible")){
                        $(this).text("hide");
                  }else{
                        $(this).text("details");
                  }
                  $(this).parent().parent().prev(".expand_body_classifieds").slideToggle(600);
                  return false;
                });
                
                $(".expand_body_faq").hide();
                $(".expand_head_faq").click(function()
                {       
         
                  if($(this).parent().nextAll(".expand_body_faq").is(":visible")){
                    //$(this).parent().prev().children("a").css('background-image','url("/dms/templating-kit/themes/sgdv/img/arrow-03.png")');
                    $(this).parent().prev().children("a").attr("class","expand_img_faq");
                    /*$(this).parent().prev().children("a").css('height','14px');
                    $(this).parent().prev().children("a").css('width','7px');*/
                  }else{
                    //$(this).parent().prev().children("a").css('background-image','url("/dms/templating-kit/themes/sgdv/img/arrow-02.png")');
                    $(this).parent().prev().children("a").attr("class","change-background");
                    /*$(this).parent().prev().children("a").css('height','7px');
                    $(this).parent().prev().children("a").css('width','14px');*/
                  }

                 $(this).parent().nextAll(".expand_body_faq").slideToggle(600);
                  

                  
                  return false;
                });
                $(".expand_img_faq").click(function()
                {       
         
                  if($(this).parent().nextAll(".expand_body_faq").is(":visible")) {
                    //$(this).css('background-image','url("/dms/templating-kit/themes/sgdv/img/arrow-03.png")');
                    $(this).attr("class","expand_img_faq");
                    /*$(this).css('height','14px');
                    $(this).css('width','7px');*/
                  } else {
                    //$(this).css('background-image','url("/dms/templating-kit/themes/sgdv/img/arrow-02.png")');
                    $(this).attr("class","change-background");
                    /*$(this).css('height','7px');
                    $(this).css('width','14px');*/
                  }

                  $(this).parent().nextAll(".expand_body_faq").slideToggle(600);

                  return false;
                });
                $(".caseContainter").children(".discussion-gallery-item:not(:first)").children(".discussion-gallery-item-active").toggle();
                $(".caseContainter").children(".discussion-gallery-item:first").children("div.discussion-gallery-accordion-link").children("a.colapse").text("Collapse");
                $(".discussionDetails").toggle();
                $(".newCaseContainer").toggle();
                $(".newImageUpload").click(function() {
                  var new_upload = $('.hiddenImageContainter').children(".uploadImage:first").clone();
                  if ($(this).parent().prev(".uploadContainer").children().length == 0){
                    var count = 1;
                  } else {
                    var count = ($(this).parent().prev(".uploadContainer").children().length + 1);
                  }
                  new_upload.find(".uploadTitleLabel").attr("for", new_upload.find(".uploadTitle").attr("name") + count);
                  new_upload.find(".uploadDescriptionLabel").attr("for", new_upload.find(".uploadDescription").attr("name") + count);
                  new_upload.find(".uploadImageLabel").attr("for", new_upload.find("input:file").attr("name") + count);

                  new_upload.find(".uploadTitle").attr("id", new_upload.find(".uploadTitle").attr("name") + count);
                  new_upload.find(".uploadDescription").attr("id", new_upload.find(".uploadDescription").attr("name") + count);
                  new_upload.find("input:file").attr("id", new_upload.find("input:file").attr("name") + count);

                  new_upload.find(".uploadTitle").attr("name", new_upload.find(".uploadTitle").attr("name") + count);
                  new_upload.find(".uploadDescription").attr("name", new_upload.find(".uploadDescription").attr("name") + count);
                  new_upload.find("input:file").attr("name", new_upload.find("input:file").attr("name") + count);
                  
                  $(this).parent().prev(".uploadContainer").append(new_upload);
                  return false;
                });
                $(".newDocUpload").click(function(){
                  var new_upload = $('.hiddenDocContainter').children(".uploadDoc:first").clone();

                  if ($(this).parent().prev(".uploadDocContainer").children().length == 0){
                    var count = 1;
                  } else {
                    var count = ($(this).parent().prev(".uploadDocContainer").children().length + 1);
                  }
                  new_upload.find(".uploadDocumentLabel").attr("for", new_upload.find("input:file").attr("name") + count);
                  new_upload.find("input:file").attr("id", new_upload.find("input:file").attr("name") + count);
                  new_upload.find("input:file").attr("name", new_upload.find("input:file").attr("name") + count);

                  $(this).parent().prev(".uploadDocContainer").append(new_upload);
                  return false;
                });
                
                $("#addNewBasicKnowledge").click(function(){
                  var newBasicKnowledge = $('#hiddenBasicKnowledgeContainer').children("div:first").clone();
                  newBasicKnowledge.find("textarea").attr("name", newBasicKnowledge.find("textarea").attr("name") + (new Date().getTime()));
                  $(this).parent().prev(".basicKnowledgeContainer").append(newBasicKnowledge);
                  return false;
                });
                
                $(".colapse").click(function() {
                if($(this).parent(".discussion-gallery-accordion-link").next(".discussion-gallery-item-active").attr("style") == "display: none;"){
                $(this).parent(".discussion-gallery-accordion-link").next(".discussion-gallery-item-active").toggle();
                $(this).text("Collapse")
                } else {        
                $(this).parent(".discussion-gallery-accordion-link").next(".discussion-gallery-item-active").toggle();
                $(this).text("Expand")
                }
                return false;
                });

                $(".expand").click(function() {
                if($(this).parent(".upload-gallery-accordion-link").next(".upload-gallery-item-active").attr("style") == "display: none;"){
                $(this).parent(".upload-gallery-accordion-link").next(".upload-gallery-item-active").toggle();
                $(this).text("Collapse")
                } else {        
                $(this).parent(".upload-gallery-accordion-link").next(".upload-gallery-item-active").toggle();
                $(this).text("Expand")
                }
                return false;
                });

                $(".discussionDetailsEditLink").click(function() {
                $(this).next(".discussionDetails").toggle();
                return false;
                });
                $(".newCaseLink").click(function() {
                $(this).next(".newCaseContainer").toggle();
                return false;
                });
                Date.firstDayOfWeek = 0;
                Date.format = 'dd.mm.yyyy';
                $(function(){
                $('.date-pick').datePicker({startDate:'01/01/1996'});
                });
                $('#select_all').change(function() {
                  var checkboxes = $(this).closest('form').find(':checkbox');
                  if($(this).is(':checked')) {
                    checkboxes.attr('checked', 'checked');
                  } else {
                    checkboxes.removeAttr('checked');
                  }
                  });

                $("div.memberListButtons #btnAdd").click(function() {
                  $("#availableMembersList option:selected").each(function(index) {
                    $(this).appendTo("#newMembersList");
                    $("#newMembers").val(String($("#newMembers").val()) + $(this).text() + ";");
                  });
                });

                $("div.memberListButtons #btnAddAll").click(function() {   
                  $("#availableMembersList option").each(function(index) {
                    $(this).appendTo("#newMembersList");                
                    $("#newMembers").val(String($("#newMembers").val()) + $(this).text() + ";");
                  });
                });

                $("div.memberListButtons #btnRemove").click(function() {
                  $("#newMembersList option:selected").each(function(index) {
                    $(this).appendTo("#availableMembersList");
                    var list = String($("#newMembers").val()).split(";");
                    var tmp = "";
                    var i=0;
                    for(i=0; i<list.length; i++) {
                      if((list[i] != "") && (list[i]!= $(this).text())) {
                        tmp = tmp + list[i] + ";";
                      }
                    }
                    $("#newMembers").val(tmp);
                  });
                });

                $("div.memberListButtons #btnRemoveAll").click(function() {
                  $("#newMembersList option").appendTo("#availableMembersList");
                  $("#newMembers").val("");
                });
        }
        
        function createYoutubeList(){
                var ytDataCFG = {
                                        complete: function(data, status){
                                                if(status == 'success'){
                                                        startYTPlayer(data.DOMFeed.parent());
                                                }
                                        },
                                        youTubeParams: {
                                                'max-results': 3 //youtube feed generator: http://gdata.youtube.com/demo/index.html
                                        },
                                        itemTmpl: 
                                                '<li>' +
                                                        '<a class="youtube-video" href="<%=link%>">' +
                                                                '<img src="<%=thumbnail.url%>" alt="" />' +
                                                        '</a>' +
                                                        '<h3><a class="youtube-video" href="<%=link%>"><%=title%></a></h3>' +
                                                        '<p><%=description%></p>' +
                                                '</li>'
                                },
                        carouselExtension = {
                                feedWrapperTmpl: '<div class="teaser-wrapper tw-switcher"><div class="pager"></div><div class="rack"><div class="rack-design"><%=items%></div></div></div>',
                                youTubeParams: {
                                                'max-results': 20 //youtube feed generator: http://gdata.youtube.com/demo/index.html
                                        },
                                itemTmpl: 
                                        '<div class="rack-teaser">' +
                                                '<a class="youtube-video" href="<%=link%>">' +
                                                        '<img src="<%=thumbnail.url%>" alt="" />' +
                                                '</a>' +
                                                '<h2><a class="youtube-video" href="<%=link%>"><%=title%></a></h2>' +
                                                '<p><%=description%></p>' +
                                        '</div>'
                        };
                function startYTPlayer(jElm){
                        swfobject.addDomLoadEvent(function(){
                                $('div.youtube-player-wrapper', jElm).html('<div class="youtube-player"></div>');
                                jElm
                                        .youtubeList({
                                                player: 'div.youtube-player'
                                        });
                                if(jElm.is('.carousel')){
                                        $('div.pager', jElm).html('<div class="prev"><span/></div><div class="next"><span class="show"/></div>');
                                        $('div.teaser-wrapper', jElm).scroller();
                                }
                        });
                }
                
                $('div.youtube-widget:not(.youtube-feed, .carousel)').each(function(){
                        startYTPlayer($(this));
                });
                
                $('a.youtube-feed')
                        .each(function(){
                                var jElm = $(this);
                                jElm.youtubeData( (jElm.parent().is('.carousel')) ? $.extend({}, ytDataCFG, carouselExtension) : ytDataCFG);
                        });
                        
                                
        }
        
        function createShowBox(){
                var showboxCFG = {
                                setInitialContent: {
                                        'showbox-title': $('h1').html(), 
                                        prev: 'previous',
                                        next: 'next',
                                        'close-button': 'close',
                                        'play-pause': 'play'
                                },
                                
                                getTextContent: function(opener, content, ui){
                                        // Um Text aus einer dl-Structure zu holen (Magnolia-Style)
                                        
                                        var dl                          = opener.closest('dl'), //hole das n�chst h�here dl
                                                dds                             = $('dd', dl), // hole die dd
                                                img                     = $('img', dl), // hole das img 
                                                extraContent    = ''
                                        ;
                                        
                                        //content objekt dient zur bef�llung der lightbox mit weiterem content
                                        //die eigenschaftsnamen stimmen mit den Klassen-Namen �berein
                                        
                                        //content['multimedia-box'] ist bereits mit dem grossen Bild vorbelegt
                                        //und wird nun mit dem alt Attribut des kleinen Bildes versehen
                                        content['multimedia-box'].attr('alt', img.attr('alt'));
                                        
                                        content['text-content'] = ''; // String in dem wir unser gesamt content zusammef�gen
                                        
                                        dds.each(function(){
                                                var dd          = $(this),
                                                        html    = dd.html()
                                                ;
                                                if(dd.is('.caption')){
                                                        content['text-content'] += '<h2 class="caption">'+ html +'</h2>';
                                                } else if(dd.is('.longdesc')){
                                                        content['text-content'] += '<p class="longdesc">'+ html +'</p>';
                                                } else if(!dd.is('.zoom')) {
                                                        extraContent += '<li class="'+ this.className +'">'+ html +'</li>';
                                                }
                                        });
                                        
                                        if(extraContent){
                                                content['text-content'] += '<ul class="sb-extra">'+ extraContent +'</ul>';
                                        }
                                        
                                },
                                showContentAnim: function(ui, img, e, extras){
                                        var contentBox = $('div.content-box', ui.element);
                                        contentBox
                                                .queue(function(){
                                                        var duration    = 300,
                                                                width           = img[0].width, 
                                                                height
                                                        ;
                                                        
                                                        ui.element.css({height: ui.element.height()});
                                                        ui.fillContent();
                                                        width = ui.calcWidth(img, width);
                                                        
                                                        contentBox
                                                                .css(
                                                                        {width: width}
                                                                )
                                                                .animate(
                                                                        {opacity: 1}, 
                                                                        {duration: duration}
                                                                );
                                                                
                                                        ui.element
                                                                .animate({
                                                                        height: contentBox.outerHeight({margin: true}) + $('div.showbox-head', ui.element).outerHeight({margin: true})
                                                                }, {
                                                                                duration: duration,
                                                                                complete: function(){
                                                                                        ui.element.css({height: ''});
                                                                                }
                                                                        });
                                                        
                                                        contentBox.dequeue();
                                                });
                                }
                        };
                        
                $('div.tw-images').each(function(){
                        
                        $('a[rel=showboxGrid]', this)
                                .addClass('showboxed')
                                .showboxGrid($.extend({}, showboxCFG, {
                                        setInitialContent: {
                                                'showbox-title': $(':header', this).html(), 
                                                prev: 'previous',
                                                next: 'next',
                                                'close-button': 'close',
                                                'play-pause': 'play'
                                        }
                                }));
                });
                $('a[rel=showboxGrid]:not(.showboxed)').showboxGrid(showboxCFG);

                $('div.tw-images').each(function(){
                        
                        $('a[rel=showbox]', this)
                                .addClass('showboxed')
                                .showbox($.extend({}, showboxCFG, {
                                        setInitialContent: {
                                                'showbox-title': $(':header', this).html(), 
                                                prev: 'previous',
                                                next: 'next',
                                                'close-button': 'close',
                                                'play-pause': 'play'
                                        }
                                }));
                });
                $('a[rel=showbox]:not(.showboxed)').showbox(showboxCFG);
        }
        function addLandmarks(){
                var landmarks = {
                        navigation: '#nav-global, #nav, #breadcrumb',
                        search: '#search-box',
                        article: 'div.text, div.teaser, div.opener, #comments li',
                        complementary: '#extras',
                        banner: '#branding',
                        main: '#main',
                        contentinfo: 'div.text-data, #site-info'
                };
                
                $.each(landmarks, function(landmark, sel){
                        $(sel).attr({role: landmark});
                });
        }

        function slidingTabs(){
                $.fn.mySlide = function(fn){
                        fn = fn || function(){};
                        return this.animate({
                                height: 'toggle',
                                opacity: 'toggle'
                        }, {
                                duration: 500,
                                complete: fn,
                                deque: true
                        });
                };
                
                $('ol.superpromos-toc')
                        .each(function(){
                                $(this)
                                        .bind('tabtreecollapse', function(e, ui){
                                                ui.panel
                                                        .stop(true, true)
                                                        .animate({
                                                                height: 'hide',
                                                                opacity: 0
                                                        }, {duration: 500});
                                        })
                                        .bind('tabtreeexpand', function(e, ui){
                                                ui.panel
                                                        .stop(true, true)
                                                        .animate({
                                                                height: 'show',
                                                                opacity: 1
                                                        }, {duration: 500});
                                        })
                                        .tabtree(
                                                {activeButtonClass: 'on', 
                                                selectEvents: 'mouseenter focus',
                                                handleDisplay: 'initial'
                                        })
                                        .find('a')
                                        .bind('click', function(e){
                                                
                                                if(e.pageX !== 0 && e.pageY !== 0){
                                                        var url = $($(this).attr('href'))
                                                                .find('a:first')
                                                                .attr('href');
                                                        if(url){
                                                                location = url;
                                                        }
                                                }
                                        });
                        });


        }

        function pagingTeaserSwitcher(){
                function myPag(status){
                                if(status == 'inactive'){
                                        $('a',this).animate({opacity: 0.5},{duration: 500});
                                } else {
                                        $('a',this).animate({opacity: 1},{duration: 500});
                                }
                        }
                        function myLink(status){
                                if(status == 'show'){
                                        this.animate({opacity: 1},{duration: 500});
                                } else {
                                        this.animate({opacity: 0},{duration: 500});
                                }
                        }
                        $('div.teaser-wrapper.tw-paging').scroller({
                                pagination: 'div.pagination',
                                paginationFn: myPag,
                                linkFn: myLink,
                                paginationTitleFrom: 'h2',
                                paginationAtoms: '<li class="pa-$number" title="$title"><a href="#">$number</a></li>'
                        });
        }

        function slidingTeaserSwitcher(){
                
                $('div.teaser-wrapper.tw-slider')
                        .each(function(){
                                var jElm = $(this),
                                        slider = $('div.slider', this)
                                                .css({display: 'block'})
                                                .wrap('<div class="slider-bar" />');
                                
                                $('div.slider-bar', this)
                                        .append('<span class="prev" /> <span class="next" />');
                                
                                function slideSliderCall(e, o, ui){
                                        ui = ui ||
                                                o;
                                        var val = (ui && isFinite(ui.value))? ui.value : (o) ? o.value : false;
                                        jElm
                                                .scroller('moveTo', val + '%', false);
                                }
                                
                                slider
                                        .slider({maxValue: 100})
                                        .bind('slide', slideSliderCall);
                                jElm
                                        .scroller({
                                        prevLink: 'div.slider-bar span.prev',
                                                nextLink: 'div.slider-bar span.next'
                                        })
                                        .bind('uiscrollerslide', function(e, d){
                                                slider
                                                        .slider('value', d.percentPos);
                                        });
                                
                        });
        }


        function addPrintLink(){

                function print(){
                        window.print();
                        return false;
                }

                $('<li class="print"><a href="#">Print</a></li>')
                        .prependTo('ul#text-features')
                        .find('a')
                        .click(print);
        }

        function faqToc() {
                var hash                = location.hash,
                        tabWidgets      = $('div.super-list'),
                        tabs            = $('h3 a', tabWidgets)
                ;

                if(hash){
                        tabs
                                .filter('[href='+hash+']')
                                .addClass('on');
                }

                tabWidgets
                        .bind('tabtreecollapse', function(e, ui){
                                ui.panel.stop(true, true).slideParentUp();
                        })
                        .bind('tabtreeexpand', function(e, ui){
                                ui.panel.stop(true, true).slideParentDown();
                        })
                        .tabtree({
                                        buttonSel: 'h3 a',
                                        activeButtonClass: 'on',
                                        toggleButton: true,
                                        multiSelectable: true, 
                                        handleDisplay: 'initial'
                                });
                        
        }

        $.fn.tabChangeAddon = function(){
                this
                        .bind('tabtreecollapse', function(e, ui){
                                ui.button.parent().removeClass('on');
                        })
                        .bind('tabtreeexpand', function(e, ui){
                                ui.button.parent().addClass('on');
                        });
                
                $('a.on', this)
                        .parent()
                        .addClass('on');
                return this;
        };

        function createTabs(){

                $('ol.text-box-toc, ol.toc-box-toc')
                        .each(function(){
                                $(this)
                                        .tabtree(
                                                {activeButtonClass: 'on'}
                                        )
                                        .tabChangeAddon();
                        });
        }


        $('html').addClass('js-on'); // html class
        
        $.extend($.ui.scroller.defaults, {
        //Elements Classes
        atoms: 'div.rack-teaser',
        prevLink: 'div.prev span',
                nextLink: 'div.next span'
        });

        $(callOnDomReady);
})(jQuery);
