jQuery.preloadImages = function() {
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

$.preloadImages(
  "../bda-design/lefttopnav-bg.png",
  "../design/topnav-start-bg.png",
  "../design/body-bg.png",
  "../design/button-top-bg.png",
  "../design/button-top-active-bg.png");

$(document).ready(function(){
  
  /* In Opera < 9.5 wird ein rechter Scrollbalken
   * eingeblendet als ob das div#content nicht
   * overflow:auto und 460px hoch wäre. Dadurch
   * wackelt das ganze Layout falls man mit der Maus
   * über die topbuttons fährt.
   */
  if ($.browser.opera && $.browser.version < 9.5) {
    $("div#content").css("height","0");
    $("div#content").animate( { height: "460px" }, { duration:10 } );
  }

  $("div#topsearch-start").css("display", "none");
  $("div#leftnav-start").css("display", "none");
  $("div#topnav-start").css("display", "none");
  $("div#search").css("display", "none");
  $("div#topsearchnav").css("display", "none");
  $("div#content").css("display","none");
  $("div#article").css("display","none");
  $("div#contenttop").css("display","none");
  $("div#bottomnav").css("display", "none");
 
  $("a.topbutton").css("display","none");
  $("a.bottombutton").css("display","none");
 
  /*
   * IE6 kann die Höhe 100% eines divs im Bezug zur Fensterhöhe
   * nicht darstellen. Deshalb verzichten wir hier auf die Höhenanimation des
   * vertikalen Sliders und blenden diesen stattdessen langsam ein.
   * Im css (ie6.css) ist die Höhe mit einer expression realisiert.
   */
  if (jQuery.browser.version.match(/^[5\.|6\.]/g)) {
    $("#sliderver").css("display","none");
  }
  else {
    $("#sliderver").css("height", "0");
  }

	$("#sliderhor").css("width","0");

  /*
   * IE8 antialiased den Text in einem Element nicht
   * wenn dort das Attribut filter gesetzt ist.
   * Der fadeIn-Effekt von jQuery wird über filter
   * implementiert, so dass nach einem fadeIn der Text
   * hässlich gestuft aussehen würde.
   * 
   * Diese Callbackfunktion die an die Ausführung des
   * Filters angehängt wird löscht anschließend
   * das Attribut filter complett.
   */
  function clearIEFilter(obj) {
    if ($.browser.msie && obj)
      $(obj).get(0).style.removeAttribute('filter');
  }
  function clearIEFilterCallback() {
    clearIEFilter(this);
  }

	function fadeButtons() {
    clearIEFilter($("div#search"));
		$("#topbutton1").fadeIn( 800, clearIEFilterCallback );
		$("#topbutton2").fadeIn( 950, fadeArticle );
		$("#topbutton3").fadeIn( 1100, clearIEFilterCallback );
		$("#topbutton4").fadeIn( 1250, clearIEFilterCallback );
		$("#topbutton5").fadeIn( 1400, clearIEFilterCallback );
		$("#topbutton6").fadeIn( 1550, clearIEFilterCallback );
		$("#topbutton7").fadeIn( 1600, clearIEFilterCallback );
		$("#bottombutton1").fadeIn( 1750, clearIEFilterCallback );
		// $("#bottombutton2").fadeIn( 1900, clearIEFilterCallback );
		// $("#bottombutton3").fadeIn( 2050, clearIEFilterCallback );
	}

  function fadeArticle() {
    clearIEFilter($("div#bottomnav"));
    $("div#article").fadeIn( 400, clearIEFilterCallback );
  }
  function fadeTopsearchNav () {
    clearIEFilter($("#topbutton2"));
    $("div#search").fadeIn( 400, fadeButtons );
    $("div#topsearchnav").fadeIn( 400, clearIEFilterCallback );
  }
  function fadeContent() {
    clearIEFilter($("div#leftnav-start"));
    $("div#content").fadeIn( 400, clearIEFilterCallback );
    $("div#contenttop").fadeIn( 400, clearIEFilterCallback );
    $("div#bottomnav").fadeIn( 400, fadeTopsearchNav );
  }
  function fadeTopNav() {
    $("div#topnav-start").fadeIn( 600, fadeContent );
  }
  function fadeTopLeftNav () {
    $("div#topsearch-start").fadeIn( 600, clearIEFilterCallback );
    $("div#leftnav-start").fadeIn( 600, fadeContent );
    $("div#topnav-start").fadeIn( 600, clearIEFilterCallback );
  }


	fadeTopLeftNav();

  var is_ie = false;
  $.each(jQuery.browser, function(i,val) {
		if( i == 'msie' && val == true ) {
      is_ie = true;
    }
  });
    
	if( is_ie ) {
		$("#sliderhor").css("filter","alpha(opacity=0)");
    /*
     * IE6 kann die Höhe 100% eines divs im Bezug zur Fensterhöhe
     * nicht darstellen. Deshalb verzichten wir hier auf die Höhenanimation des
     * vertikalen Sliders und blenden diesen stattdessen langsam ein.
     * Im css (ie6.css) ist die Höhe mit einer expression realisiert.
     */
    if (jQuery.browser.version.match(/^[5.\|6\.]/g)) {
  		$("#sliderver").fadeIn( 1500 );
    }
    else {
		  $("#sliderver").css("filter","alpha(opacity=0)");
      $("#sliderver").animate({ height: "100%", filter: "alpha(opacity=100)" }, { duration: 1500, easing: "linear" });
    }
		$("#sliderhor").animate( { width:"100%", filter:"alpha(opacity=100)" }, { duration:2000, easing:"linear" } );
	}
	else {
		$("#sliderver").css("opacity","0");
		$("#sliderhor").css("opacity","0");
		$("#sliderver").animate( { height:"100%", opacity:"1" }, { duration:1500, easing:"linear" } );
		$("#sliderhor").animate( { width:"100%", opacity:"1" }, { duration:2000, easing:"linear" } );
	}
  

});
