jQuery(document).ready(function($) {
  $(".noJS").removeClass("noJS");
  $(".hideWithJS").hide();
  /* Buehne Startseite */
  if($("div.stageRotator").length > 0)
    $("div.stageRotator").stagerotator( { rotationDelay: 8000, rotationSpeed: 600, fadeTime: 400 } );
 
  /* Strecke contentWrapper, falls zu wenig Inhalt */
  if(!($("body").hasClass("print"))) {
    setTimeout('stretchContent()', 20);
  }
  /* save default searchterm value for each language */
  if($("#defaultSearchTerm").length) {
    var defaultSearchTerm = $("#defaultSearchTerm").val();
  }
  /* Weltkarte */
  if($("div.worldmap").length) {
    $("div.worldmap img#currentMap").removeAttr("alt");
    var defaultImgPath = $("img#currentMap").attr("src");
    $("div.worldmap area[data-imgpath]").each(function(index) {
      $(this).removeAttr("alt");
      $(this).hover(
        function() {
          $(this).parents(".worldmap").find("img#currentMap").attr("src", $(this).attr("data-imgpath"));
        },
        function() {
          $(this).parents(".worldmap").find("img#currentMap").attr("src", defaultImgPath);
        }
      );
    });
    $("div.worldmap area").qtip({
      position: {
        target: 'mouse',
        adjust: { x: 16, y: 16 }
      },
      hide: { delay: 0 },
      style: { classes: 'gtai-map-tooltip' }
    });
  }
  /* Customer Service PureHTML Tooltipps */
  if($("div.customerService").length) {
    $("div.customerService .process li p").each(function() {
      var temp = $(this).attr("title");
      $(this).attr("data-title", temp);
      $(this).removeAttr("title");
    });
    $("div.customerService .process li").qtip({
      content: {
        text: function(api) {
          var temp = $(this).find("p").attr("data-title");
          temp = "<p class='text'>" + temp + "</p>";
          temp = "<p class='title'>" + $(this).find("p").html() + "</p>" + temp;
          return temp;
        }
      },
      position: {
        target: 'mouse',
        adjust: { x: 10, y: 10 }
      },
      hide: { delay: 0 },
      style: { classes: 'gtai-cs-tooltip' }
    });
  }
  /* Zeitraum select */
  if($("form.search select#zeitraum").length) {
    if($.getUrlVar('zeitraumSave')) {
      var selectedOption = parseInt($.getUrlVar('zeitraumSave'));
      $("select#zeitraum option:eq(" + selectedOption + ")").attr('selected',true);
    }
    $("select#zeitraum").change(function() {
      $(this).find("option:selected").each(function() {
        $(this).parents(".selectContainer").find("input#zeitraumSave").attr("value", $(this).index());
        calcDateRange($(this).index());
      });
    });
    $("form.search .changeSelect").html($("form.search .changeSelect").attr("title"));
    $("form.search .changeSelect").toggle(
      function() {
        $("#zeitraumCustom").val("1");
        $("form.search .selectContainer").toggle();
        $("form.search .inputContainer").toggle();
        $(this).html($(this).attr("data-toggletext"));
      },
      function() {
        $("#zeitraumCustom").val("0");
        $("form.search .selectContainer").toggle();
        $("form.search .inputContainer").toggle();
        $(this).html($(this).attr("title"));
        var temp = $("select#zeitraum option:selected").index();
        $(".selectContainer input#zeitraumSave").attr("value", temp);
        calcDateRange(temp);
      }
    );
    if($.getUrlVar('zeitraumCustom') == 1) {
      $("form.search .changeSelect").click();
    }
  }
  /* Tabs */
  if($(".tabContainer").length) {
    $(".tabContainer").each(function() {
      var curTabContainer = $(this);
      var curTabNavi = $(this).find(".tabNavi");
      curTabNavi.find("li a").attr("href", "javascript:void(0);");
      curTabNavi.find("li").each(function() {
        var curLI = $(this);
        curLI.find("a").click(function() {
          curLI.parent().find("li.active").removeClass("active");
          curLI.addClass("active");
          curTabContainer.find(".tabContent").hide();
          var showID = curLI.index();
          curTabContainer.find(".tabContent:eq(" + showID + ")").fadeIn("fast");
        });
      });
    });
  }
  /* Forms */
  if($("select.instaSubmitWithJS").length) {
    $("select.instaSubmitWithJS").change(function() {
      // absenden wenn Value nicht leer
      var temp = $(this).val();
      if(temp)
        $(this).parents("form").submit();
    });
  }
  if($("form.zahlungsart").length == 2) {
    $("form.zahlungsart .absenden:first").hide();
    // disable keypress enter submit
    $(".cardinfoWrapper input[type='text']").keypress(function(e){
      if ( e.which == 13 ) return false;
    });
    $("form.zahlungsart a.btnJSSubmit").click(function() {
      $("input#rechnung").parents("form.zahlungsart").submit();
    });
    $("input#rechnung, input#kreditkarte").change(function() {
      $("form.zahlungsart a.btnJSSubmit").unbind();
      $("input#rechnung, input#kreditkarte").removeAttr("checked");
      $(this).attr("checked", "checked");
      if($(this).attr("id") == "rechnung") {
        $("form.zahlungsart a.btnJSSubmit").click(function() {
          $("input#rechnung").parents("form.zahlungsart").submit();
        });
      }
      if($(this).attr("id") == "kreditkarte") {
        $("form.zahlungsart a.btnJSSubmit").click(function() {
          $("input#kreditkarte").parents("form.zahlungsart").submit();
        });
      }
    });
  }
  /* Selected chapter link bold */
  if($('.overview li a').length) {
    $('.overview li a[href^="#"]').click(function(){
      $('.overview li').removeClass('current');
      $(this).parent('li').addClass('current');
    });
  }
  if($(".messageList form select[name^='facets']").length) {
    var temp = '<a href="javascript:void(0);" class="selectAllNone">Alle ausw&auml;hlen</a>'
    $(".messageList form select[name^='facets']").after(temp);
    $("a.selectAllNone").click(function() {
      $(this).parent().find("select[name^='facets'] option").each(function() {
        $(this).attr('selected', true);
      });
    });
  }
  /* Roundabout Carousel */
  if($('.roundAboutContainer').length) {
    //$(".roundAbout li img").reflect();
    var elems = $.find('.roundAboutContainer');
    var arr = $.makeArray(elems);
    $(arr).each(function(i){
        var $this = $(this);
        var roundAbout = $this.children('ul');
        var rabNext = $this.find('.rabNext');
        var rabPrev = $this.find('.rabPrev');
        //Start Carousel
        $(roundAbout).roundabout({
            minScale: 0.1,
            maxScale: 1.0,
            btnPrev: rabPrev,
            btnNext: rabNext,
            reflect: true,
            description: true,
            descSource: 'desc',
            descTitleTarget: '.caption a',
            descDataTarget: '.caption p'
        });

    });
  }
  /* Quicksearch within meta navigation */
  if($("#quickSearchField").length) {
    var qsOverlay = "<div class='qsOverlay'></div>";
    var result = "<div class='qsResult'></div>";
  
    $("body").append(qsOverlay);
    qsOverlay = $(".qsOverlay");
    $("#container").append(result);
    result = $(".qsResult");
    $("#quickSearchField").attr("autocomplete", "off");
    $("#quickSearchField").keyup(function() {
      var qsString = $(this).val();
      var qcId = $("#qcId").val();
      result.hide();
      if(qsString.length > 0) {
        qsString = replaceSpecialChars(qsString);
        result.load('/forms/search-quick-results?qcId=' + qcId + '&q=' + qsString + '&limit=4', function(response, status, xhr) {
          // load callback
          qsOverlay.fadeIn(400);
          result.show();
          // add close-button event
          result.find(".closeBtn").click(function() {
            qsOverlay.hide();
            result.hide();
          });
          var showAll = result.find("a.showAll");
          if(showAll.length) {
            showAll.attr("href", "javascript:void(0);");
            showAll.click(function() {
              $("#btnQuickSearch").click();
            });
          }
        });
      }
      else {
        qsOverlay.hide();
      }
    });
    $(".qsOverlay").click(function() {
      $(this).hide();
      result.hide();
    });
   
    // set initial value for each language and clear value on focus
    $("input#quickSearchField").clearValue(defaultSearchTerm);
    // remove default value before search is sent
    $("#btnQuickSearch").click(function() {
      if($("input#quickSearchField").val() == defaultSearchTerm) {
        $("input#quickSearchField").val("");
        $(this).parents("form").submit();
      }
    });
  }
  if($(".searchBox .bot form").length) {
    $("#quicksearchText").clearValue(defaultSearchTerm);
   
    if (Browser.Version() < 8) {
      $(".searchBox .bot form select").css("width", "120px").css("position", "static");
      $(".searchBox .bot form").jqTransform();
    }
    else
      $(".searchBox .bot form select").chosen();
  }
  
  if($(".suchmaske #searchTerm").length) {
    $(".suchmaske #searchTerm").clearValue(defaultSearchTerm);
  }
  
  // change empty fdContents padding
  $("#content .fdContent").each(function() {
    if(!($(this).children().length))
      $(this).css("padding", "1px 16px 0 16px");
  });
  
});
function replaceSpecialChars(temp) {
  temp = temp.split(' ').join('+');
  temp = temp.replace(/\u00E4/gi, '%C3%A4'); // a-umlaut
  temp = temp.replace(/\u00FC/gi, '%C3%BC'); // u-umlaut
  temp = temp.replace(/\u00F6/gi, '%C3%B6'); // o-umlaut
  temp = temp.replace(/\u00DF/gi, '%C3%9F'); // scharfes s
  return temp;
}
function stretchContent() {
  var content = $("#content").height();
  var contentWrapper = $(".contentWrapper").height();
  var contentWrapperOhneMS = $(".contentWrapperOhneMS").height();
  if(contentWrapper && contentWrapper < content)
    $(".contentWrapper:first").css("min-height", content);
  if(contentWrapperOhneMS && contentWrapperOhneMS < content)
    $(".contentWrapperOhneMS:first").css("min-height", content);
}
function calcDateRange(selectedCase) {
  var timeLimitFrom = new Date();
  var nowMS = timeLimitFrom.getTime();
  // 1 Tag = 86400000 ms
  var oneDayMS = 86400000;
  // Zeiträume
  var difDays = new Array(2, 7, 31, 93, 365);
  switch(selectedCase) {
    case 0:
      timeLimitFrom.setTime(0);
      break;
    case 1:
      timeLimitFrom.setTime(nowMS - (difDays[0]*oneDayMS));
      break;
    case 2:
      timeLimitFrom.setTime(nowMS - (difDays[1]*oneDayMS));
      break;
    case 3:
      timeLimitFrom.setTime(nowMS - (difDays[2]*oneDayMS));
      break;
    case 4:
      timeLimitFrom.setTime(nowMS - (difDays[3]*oneDayMS));
      break;
    case 5:
      timeLimitFrom.setTime(nowMS - (difDays[4]*oneDayMS));
      break;
    default:
      timeLimitFrom.setTime(0);
  }
  setDateRange(timeLimitFrom);
}
function setDateRange(timeLimitFrom) {
  if(timeLimitFrom.getTime() == 0) {
    $("#dateTo").val("");
    $("#dateFrom").val("");
    return;
  }
  var timeLimitNow = new Date();
  var timeLimitNowString;
  var timeLimitFromString;
  var day = timeLimitNow.getDate();
  var month = (timeLimitNow.getMonth() + 1);
  var year = timeLimitNow.getFullYear();
  timeLimitNowString = formatDate(day, month, year);
  $("#dateTo").val(timeLimitNowString);
  day = timeLimitFrom.getDate();
  month = (timeLimitFrom.getMonth() + 1);
  year = timeLimitFrom.getFullYear();
  timeLimitFromString = formatDate(day, month, year);
  $("#dateFrom").val(timeLimitFromString);
}
function formatDate(day, month, year) {
  var _day = day.toString();
  var _month = month.toString();
  var _year = year.toString();
  if(_day.length == 1) _day = "0" + _day;
  if(_month.length == 1) _month = "0" + _month;
  return (_day + "." + _month + "." + _year);
}

jQuery.fn.clearValue = function(text){
  return this.each(function(){
    //Make sure we're dealing with text-based form fields
    if(this.type != 'text' && this.type != 'password' && this.type != 'textarea')
      return;
  
    //Store field reference
    var fld_current=this;
  
    //Set value initially if none are specified
        if(this.value=='') {
      this.value=text;
    } else {
      //Other value exists - ignore
      return;
    }
  
    //Remove values on focus
    $(this).focus(function() {
      if(this.value==text || this.value=='')
        this.value='';
    });
  
    //Place values back on blur
    $(this).blur(function() {
      if(this.value==text || this.value=='')
        this.value=text;
    });
  
    //Capture parent form submission
    //Remove field values that are still default
    $(this).parents("form").each(function() {
      //Bind parent form submit
      $(this).submit(function() {
        if(fld_current.value==text) {
          fld_current.value='';
        }
      });
    });
  
  });
};
$.extend({
  getUrlVars: function() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name) {
    return $.getUrlVars()[name];
  }
});

var Browser = {
  Version: function() {
    var version = 999; // we assume a sane browser
    if (navigator.appVersion.indexOf("MSIE") != -1)
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}
