/* 

          Copyright 2004 - 2011 DB Systel GmbH

      */

      /******************************************************************************************************************

       *  initialisation routines

       * @requires jQuery - tested with 1.4.2 

       *****************************************************************************************************************/

      // read language from html element

      var lang = $("html").attr("lang");

      

      (function($) {

          /* image gallery */

          var moveOffsetPerPage = null;

          if($.browser.mozilla && /mac/.test( navigator.userAgent.toLowerCase() )){

              //moveOffsetPerPage = -1.5; // only needed before FF mac 3.6.9

          }

          else if($.browser.msie && parseInt(jQuery.browser.version) < 7){

              moveOffsetPerPage = -9.5;

          }

      

          if ($(".carousel").length) {

              // carousel configuration

              var carouselConfig = {

                  "visiblePanes": 3,

                  "panesToMove": 3,

                  "hoverpause": true,

                  "pagination": true,

                  "forceBlocks": true,

                  "pageOfPagesView": true,

                  "moveOffsetPerPage" : moveOffsetPerPage,

                  "blockWidth" : 423

              }

              // carousel internationalization

              switch(lang) {

              case "de":

                  carouselConfig["pageOfPagesTemplate"] = "{page} von {pages}";

                  break;

              case "fr":

                  carouselConfig["pageOfPagesTemplate"] = "{page} de {pages}";

                  break;

              default:

                  carouselConfig["pageOfPagesTemplate"] = "{page} of {pages}";

                  break;

              }

      

              // carousel initialization

              $(".carousel").carousel(carouselConfig);

          }

      

          /* language selector */

          var container = $('#language'), 

          current = container.find('.current .lang'),

          timeout = null,

          wrap = container.find('.wrap');

      

          current.wrap('<button />');

          current.removeClass('lang');

      

          var language = $.trim(current.attr('className')),

          button = current.parent().addClass(language);

      

          current.removeClass(language);

      

          button

          .hover(function(){

              $(this).addClass('hover');

          },function(){

              $(this).removeClass('hover');

          })

          .click(function(){

              wrap.toggleClass('open');

              if(wrap.hasClass('open')){

                  wrapUseractions.removeClass('open');

                  wrapUseractions.css('z-index', 1);

                  containerUseractions.css('z-index', 1);

                  if($(this).data('triggeredByKey')){

                      container.find('ul.all a:first').focus();

                  }

              } else {

                  wrapUseractions.css('z-index', 2);

                  containerUseractions.css('z-index', 2);

              }

              $(this).data('triggeredByKey',false);

          })

          .keydown(function(event) {

              $(this).data('triggeredByKey', true);

          });

      

      

          wrap.bind('focusout mouseleave', function() {

              timeout = window.setTimeout(function(){

                  wrap.removeClass('open');

                  wrapUseractions.css('z-index', 2);

                  containerUseractions.css('z-index', 2);

              },500);

          })

          .bind('focusin mouseenter', function() {

              if(timeout){

                  window.clearTimeout(timeout);

                  timeout = null;

              }

          });

      

          /* user actions selector */ 

          var containerUseractions = $('#useractions'), 

          currentUseraction = containerUseractions.find('.current .action'),

          timeoutUseractions = null,

          wrapUseractions = containerUseractions.find('.wrap');

      

          currentUseraction.wrap('<button />');

          currentUseraction.removeClass('action');

      

          var useraction = $.trim(currentUseraction.attr('className')),

          buttonUseraction = currentUseraction.parent().addClass(useraction);

      

          currentUseraction.removeClass(useraction);

      

          buttonUseraction

          .hover(function(){

              $(this).addClass('hover');

          },function(){

              $(this).removeClass('hover');

          })

          .click(function(){

              wrapUseractions.toggleClass('open');

              if(wrapUseractions.hasClass('open')){

                  wrapUseractions.css('z-index', 2);

                  containerUseractions.css('z-index', 2);

                  wrap.removeClass('open');

                  if($(this).data('triggeredByKey')){

                      containerUseractions.find('ul.all a:first').focus();

                  }

              }

              $(this).data('triggeredByKey',false);

          })

          .keydown(function(event) {

              $(this).data('triggeredByKey', true);

          });

      

      

          wrapUseractions.bind('focusout mouseleave', function() {

              timeoutUseractions = window.setTimeout(function(){

                  wrapUseractions.removeClass('open');

              },500);

          })

          .bind('focusin mouseenter', function() {

              if(timeout){

                  window.clearTimeout(timeoutUseractions);

                  timeoutUseractions = null;

              }

          });

      

      

          /* search form */

          $('#form-search .submit').attr('src','/contentblob/1350804/button-send-8.png/data.png');

          $('#form-search .submit').hover(

              function () {

                  $(this).attr('src','/contentblob/1350796/button-send-hover-8.png/data.png');

              },

              function () {

                  $(this).attr('src','/contentblob/1350804/button-send-8.png/data.png');

              }

          );

          /* pagination */

          $('.pagination a .previous').hover(

              function () {

                  $(this).attr('src','/contentblob/1381854/carousel-previous-hover.png/data.png');

              },

              function () {

                  $(this).attr('src','/contentblob/1350740/carousel-previous.png/data.png');

              }

          );

          $('.pagination a .next').hover(

              function () {

                  $(this).attr('src','/contentblob/1381856/carousel-next-hover.png/data.png');

              },

              function () {

                  $(this).attr('src','/contentblob/1350748/carousel-next.png/data.png');

              }

          );

      

          /* locator needs to hover country when language is selected */

          $('#locator a').hover(function() {

              $(this).siblings('.country').addClass('fake-hover');

          }, function() {

              $(this).siblings('.country').removeClass('fake-hover');

          });

          $('#locator .country').hover(function() {

              $(this).siblings(':first').addClass('fake-hover');

          }, function() {

              $(this).siblings(':first').removeClass('fake-hover');

          });

      

          /* extended search */

          $('div.extended-search').css({

              'visibility' : 'hidden'

          }).hide();

          $('a.extended-search')

          .removeClass('open')

          .addClass('closed')

          .click(function(event){

              event.preventDefault();

              if($(this).hasClass('closed')){

                  $(this).removeClass('closed');

                  $(this).addClass('open');

                  $('div.extended-search').slideDown(function(){

                      $(this).css({

                          'zoom' : 1,

                          'visibility' : 'visible'

                      }).attr('tabIndex',-1).focus();

                  });

              }

              else if($(this).hasClass('open')){

                  $(this).addClass('closed');

                  $(this).removeClass('open');

                  $('div.extended-search').css({

                      'visibility' : 'hidden'

                  }).slideUp();

              }

          });

      

         /* expanding sections */
    $('.expander .container').css({
        'visibility' : 'hidden'
    }).hide();
    $('.expander .toggle').removeClass('open').bind('click', function() {    
        // all items in the array.
        var list = new cookieList("expander");    

        
        //<variable> = <expression> ? <true clause> : <false clause>        
        var container = $(this).next('.container').length ? $(this).next('.container') : $(this).parent().next('.container');        

        
        if( $(this).hasClass('open') ){
            $(this).removeClass('open');
            container.css({
                'visibility' : 'hidden'
            }).slideUp().removeClass('open');
            //remove items to the cookieList "expander"
            list.remove(this.id);  

        
        }else{
            $(this).addClass('open');
            container.slideDown(function(){
                $(this).css({
                    'zoom' : 1,
                    'visibility' : 'visible'
                });
            });            
            //add items to the cookieList "open"
            if($(this).hasClass('open')){
                list.add(this.id);
                } 
        }
        return false; 
    }); 

        
    /* cookie function start*/

        
    //create cookie
    var cookieList = function(cookieName) {
        var cookie = $.cookie(cookieName);
        var items = cookie ? cookie.split(/,/) : new Array();
        return {
            "add": function(val) {
                items.push(val);
                $.cookie(cookieName, items.join(','));
            },
            "remove": function (val) { 
                indx = items.indexOf(val); 
                if(indx!=-1) items.splice(indx, 1); 
                $.cookie(cookieName, items.join(','), { expires : 1});        
            },
            "clear": function() {
                items = null;
                $.cookie(cookieName, null);
            },
            "items": function() {
                return items;
            }
        }
    }  

        
    //get cookie
    function get_cookies_array() {  
     var cookies = { };  
     if (document.cookie && document.cookie != '') {
         var split = document.cookie.split(';');
         for (var i = 0; i < split.length; i++) {
             var name_value = split[i].split("=");
             name_value[0] = name_value[0].replace(/^ /, '');
             cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
         }
     }  
     return cookies;     
 };    
    /*cookie function end*/

      

      

          $('#application-teaser div.submit').hover(function(){

              $(this).addClass('hover');

          },function(){

              $(this).removeClass('hover');

          });

      

          /* toolbar */

          var toolbar = $('#toolbar'),

              toolbarWrap = toolbar.find('.wrap'),

              title = toolbar.find('.title'),

              info = toolbar.find('.infos'),

              toolbarActions = toolbar.find('.actions'),

              toolbarActionsTitel = toolbar.find('.actions p'),

              toolbartimeout,

              toolbarwidth = 0,

              actionWidth = toolbar.find('.actions li').width()+14, //add margin

              basePos = 234; // position of the triangle when at very left

      

          toolbarWrap.append('<div class="shadow"></div>');

          var toolbarShadow = toolbar.find('.shadow');

      

          toolbar.bind('focusin mouseenter', function() {

              toolbarWrap.addClass('hover');

              toolbarwidth = toolbarWrap.width()-2; //get rid of the borders

              title.width(toolbarwidth);

              info.width(toolbarwidth-20); //get rid of the paddings

              if(toolbartimeout){

                  window.clearTimeout(toolbartimeout);

                  toolbartimeout = null;

              }

          })

          .bind('focusout mouseleave', function() {

              toolbarWrap.removeClass('hover');

              toolbartimeout = window.setTimeout(function(){

                  info.hide();

                  toolbarWrap.removeClass('open')

                  toolbarWrap.find('a').each(function(){

                      $(this).removeClass('active');

                  });

              },1000);

          });

          toolbarActions.delegate("a", "click", function(event){

              var preventDefault = $(this).find('.preventDefault');

              if (preventDefault.size()) {

                  event.preventDefault();

              }

              toolbarWrap.find('a').each(function(){

                  $(this).removeClass('active');

              });

              info.find('.info').hide();

              var extended = info.find('.'+$(this).parent().attr('className'));

              if(extended.size()){

                  info.show();

                  extended.show();

                  setToolBarShadow();

              }

      

              $(this).addClass('active');

      

          })

          .delegate("a", "focusin mouseenter", function(event){

              toolbarWrap.addClass('open');

              title.html('<p>'+$(this).text()+'</p>');

              var titleTop = (title.height()*-1)+4;

              title.css('top',titleTop);

              toolbarShadow.css('top',titleTop);

              setToolBarShadow();

              var index = toolbar.find('.actions li').index($(this).parent())+1;

              var itemOffset = toolbar.find('.actions li').eq(index-1).offset();

              var titleOffset = title.offset();

              var diff = itemOffset.left-titleOffset.left;

              var pos = (basePos - diff)*-1;

              title.css('backgroundPosition',pos+'px bottom');

          });

          var setToolBarShadow = function(){

              var height = title.outerHeight()-4+toolbarActions.outerHeight();

              if(info.css('display') == 'block'){

                  height += info.outerHeight();

              }

              toolbarShadow.css('height',height);

          }

          $(document).ready(function(){

      

              $("a.new-window").attr('target', '_blank');

      

              $('.isInitialOpen').trigger('click');

              if($(".tabs").length) {

                  var tabs = $(".tabs").accessibleTabs({

                      tabhead:'h2',

                      fx:"fadeIn",

                      syncheights:true

                  });

              }

      /* START call the cookie */        
        var cookie = $.cookie("expander");
        //Load the items or a new array if null.
        var items = cookie ? cookie.split(/,/) : new Array();                
        for(var name in items) {        
            var el = "#" + items[name];
            $(el).addClass('open');

        
            var container = $('.expander .open').next('.container').length ? $('.expander .open').next('.container') : $('.expander .open').parent().next('.container');
            if( $(el).hasClass('open') ){
                container.slideDown(function(){
                    $(this).css({
                        'zoom' : 1,
                        'visibility' : 'visible'
                    });
                });        
            };        
     };     
        /* END call the cookie */

              });

          if($(".accordion").length){

              $(".accordion").accordion({header:"h3",event:'mouseover',animated:false});

          }

      })(jQuery);

      

      /**

       * initialisation, internationalization and extension of shadowbox

       */

      if(typeof Shadowbox != 'undefined') {

          Shadowbox.init({animateFade:false, overlayOpacity:"0.65", flashParams:{wmode:'opaque'}});

          switch(lang) {

              case "de":

                  Shadowbox.lang = {

                      code:       'de',

                      item:       '',

                      of:         'von',

                      loading:    'ladend',

                      cancel:     'Abbrechen',

                      next:       'Nächste',

                      previous:   'Vorige',

                      play:       'Abspielen',

                      pause:      'Pause',

                      close:      'Schließen',

                      errors:     {

                          single: 'Um den Inhalt anzeigen zu können muss die Browser-Erweiterung <a href="{0}">{1}</a> installiert werden.',

                          shared: 'Um den Inhalt anzeigen zu können müssen die beiden Browser-Erweiterungen <a href="{0}">{1}</a> und <a href="{2}">{3}</a> installiert werden.',

                          either: 'Um den Inhalt anzeigen zu können muss eine der beiden Browser-Erweiterungen <a href="{0}">{1}</a> oder <a href="{2}">{3}</a> installiert werden.'

                      }

                  };

                  break;

              case "fr":

                  Shadowbox.lang = {

                      code:       'fr',

                      item:       '',

                      of:         'de',

                      loading:    'chargement',

                      cancel:     'Annuler',

                      next:       'Suivant',

                      previous:   'Précédent',

                      play:       'Lire',

                      pause:      'Pause',

                      close:      'Fermer',

                      errors:     {

                          single: 'Vous devez installer le plugin <a href="{0}">{1}</a> pour afficher ce contenu.',

                          shared: 'Vous devez installer les plugins <a href="{0}">{1}</a> et <a href="{2}">{3}</a> pour afficher ce contenu.',

                          either: 'Vous devez installer le plugin <a href="{0}">{1}</a> ou <a href="{2}">{3}</a> pour afficher ce contenu.'

                      }

                  };

                  break;

              default:

                  Shadowbox.lang = {

                      code:       'en',

                      item:       '',

                      of:         'of',

                      loading:    'loading',

                      cancel:     'Cancel',

                      next:       'Next',

                      previous:   'Previous',

                      play:       'Play',

                      pause:      'Pause',

                      close:      'Close',

                      errors:     {

                          single: 'You must install the <a href="{0}">{1}</a> browser plugin to view this content.',

                          shared: 'You must install both the <a href="{0}">{1}</a> and <a href="{2}">{3}</a> browser plugins to view this content.',

                          either: 'You must install either the <a href="{0}">{1}</a> or the <a href="{2}">{3}</a> browser plugin to view this content.'

                      }

                  };

                  break;

          }

      }

      

      /*

       * Funktion zur Anzeige vom Video Information Link, wird bei Bedarf aus dem iFrame aufgerufen, iframe-video.html

       * param linkName (String): Name fuer den Video Information Link

       * param videoInfoUrl (String): Pfad fuer den Video Information Link

       */

      function showVideoInfo(linkName, videoInfoUrl) {

          $('#sb-title-link')[0].style.display = "block";

          $('#sb-title-link a')[0].innerHTML = linkName;

          $('#sb-title-link a').attr("href",videoInfoUrl);

      }

    
