/*-------------------------------------------------------------------------------------
	*
	*	@copyright:_________2008, Tjaereborg
	*	@link:______________http://www.tjaereborg.de
	*	@author:____________Jung v. Matt/Neckar
	*	@function:__________fire functions if doc is loaded
	*
	*	@version:___________1.0
	* 	@revision:__________$Revision: 51 $
	* 	@lastmodified:______$Date: 2008-10-01 13:45:23 +0200 (Mi, 01 Okt 2008) $
	*
-------------------------------------------------------------------------------------*/
/*------------------------------------------------
	*	Browser sniffing
--------------------------------------------------*/
// Internet Explorer sniffing
var gpIESniff = $.browser.msie;
var gpIEVersionSniff = $.browser.version;
// IE6
if(gpIESniff && gpIEVersionSniff < 7)var gpIE6Sniff = true;

/*------------------------------------------------
	*	Adding class to html-tag to hide sections 
		on page load without flickering
--------------------------------------------------*/
document.documentElement.className += " gpJsLoad";


(function($){
	$.fn.extend({
		replaceClass: function(options){
			var defaults = {
				event_type:"hover",
				element_affected:"",
				old_class:"",
				new_class:""
			}
			var options = $.extend(defaults, options);
			return this.each(function(){
				var o = options;
				var obj = $(this);
				if (o.old_class == "" || o.new_class == "") return false;
				if (o.element_affected == "") o.element_affected = obj;
				if (o.event_type == "hover"){
					$(obj).hover(
						function(){
							$(o.element_affected).removeClass(o.old_class);
							$(o.element_affected).addClass(o.new_class);
						},
						function(){
							$(o.element_affected).removeClass(o.new_class);
							$(o.element_affected).addClass(o.old_class);
						}
					);
				}
				if (o.event_type == "click"){
					$(obj).click(function(event){
						event.preventDefault();
						if ($(o.element_affected).hasClass(o.old_class)){
							$(o.element_affected).removeClass(o.old_class);
							$(o.element_affected).addClass(o.new_class);
						}
						else{
							$(o.element_affected).removeClass(o.new_class);
							$(o.element_affected).addClass(o.old_class);
						}
					});
				}
			});
		}
	});
})(jQuery); 
/*------------------------------------------------
	*	Fire all Functions which need to be 
		executed or initialized if DOM is loaded
--------------------------------------------------*/
jQuery(function($) {
	GpEffects.searchBox();
	GpEffects.toggleBox();
	GpEffects.mnFlyOut();
	
	//if($("#hpCustomCt").length) {
		GpEffects.stFlyoutBox();
	//}
	
	if($(".slDropDown").length) {
		$(".slDropDown").selectbox();
	}
	if($(".slDropDownHalf").length) {
		$(".slDropDownHalf").selectbox({inputClass:'selectboxHalf',containerClass:'selectbox-wrapper-half'});
	}
	if($(".slDropDownOneCol").length) {
		$(".slDropDownOneCol").selectbox({inputClass:'selectboxOneCol',containerClass:'selectbox-wrapper-onecol'});
	}
	if($(".slDropDownOneColBig").length) {
		$(".slDropDownOneColBig").selectbox({inputClass:'selectboxOneColBig',containerClass:'selectbox-wrapper-onecolbig'});
	}
	if($(".slDropDownBig").length) {
		$(".slDropDownBig").selectbox({inputClass:'selectboxBig',containerClass:'selectbox-wrapper-big'});
	}

	if($("#arScroller").length) {
		$("#arScroller").jScrollPane({showArrows:true, arrowSize: 20, scrollbarWidth: 18, dragMinHeight: 30, dragMaxHeight: 110});
	}
	
	$("a[href=#]:not(#mtStartLn,.lnTgBox)").bind("click", function(){
		return false;
	});

	$('#hdCont form div ul li input').css({ display: 'none' });

	/*$("#hdCont form").bind("mouseover", function() {
		$('#hdCont form div').show();
	});

	$("#hdCont form").bind("mouseout", function() {
		$('#hdCont form div').hide();
	});*/
	
	// Image carousel
	if($("#trImgWheelCont").length){
		jQuery("#trImgWheelCont").jCarouselLite({
			//auto: 1000,
			//speed: 600,
			scroll: 1,
			//easing: "easeOutQuad",
			btnNext: ".jBtnNext",
			btnPrev: ".jBtnPrev",
			visible: 6
		});
	}
	
	/**
     * Create private namespace
     * 
     */
	if ( typeof RD == 'undefined' ) var RD = {};
	
	/**
	 * Toggle content elements
	 * 
	 * @alias tgContentEls
	 * @namespace RD
	 */
	RD.tgContentEls = function () {
		if ($('.V_ctToggle').length) {
			$('.V_ctToggle .V_lnIconToggle').each(function(){
				$(this).replaceClass({
					old_class:"V_toggleDown", 
					new_class:"V_toggleUp",
					event_type:"click"
				});
			})
			$('.V_ctToggle .V_lnIconToggle').bind('click', function(e){
				var el = $(this);
				el.parent().next().slideToggle('fast');
			})
		}
	}()
	
	
});

var GpEffects = {
	// Search box meta navigation
	searchBox:function () {
		// Function call if the text search field has been clicked (focused)
		
		var defValues = new Array();
		$("input.fmTxt").focus(function() {
			if (!defValues[this.id]) {
				defValues[this.id] = this.value;
			}
			if (this.value == defValues[this.id]) {
				this.value = '';
			}
			$(this).blur(function() {
				if (this.value == '') {
					this.value = defValues[this.id];
				}
			});
		});
		
	},
	
	// Toggle Box function
	toggleBox:function () {
		$(".tgHandler h3").wrapInner("<a href='#' class='lnTgBox'></a>");
		$(".tgHandler").css({cursor:"pointer"});
		$(".tgHandler").attr("title","Bitte klicken um Inhalte einzublenden");
		$(".ctTgBox").hide();
		$(".tgHandler h3.stateOpen").parent().next().show();
		$(".tgHandler h3.stateOpen").each(function(i){
			$(this).parent().attr("title","Bitte klicken um Inhalte auszublenden");
		});
		
		$(".tgHandler").bind("click", function(){
			var thisEl = $(this);
			thisEl.find("h3").toggleClass("stateOpen");
			thisEl.next().slideToggle("fast",function(){
			if(thisEl.find("h3").hasClass("stateOpen")){
				thisEl.attr("title","Bitte klicken um Inhalte auszublenden");
			} else {
				thisEl.attr("title","Bitte klicken um Inhalte einzublenden");
			}				   
													   });
			//if($(this).css("display") == "block"){

			return false;

		});
		
		$("#bcHistory").bind("click", function(){
			//$(this).next().slideToggle("fast");
			
			if($(this).next().css("display") == "block"){
				$(this).attr("title","Bitte klicken um Inhalte auszublenden");
				$(this).next().slideUp("fast", function (){$("#bcHistory").toggleClass("bcHtActive");})
			} else {
				$(this).attr("title","Bitte klicken um Inhalte einzublenden");
				$(this).next().slideDown("fast")
				$("#bcHistory").toggleClass("bcHtActive");
			}
			return false;
		});
		
		$("body").bind("click", function(){
			//$("#bcHtFlyOut").slideUp("fast");
			
			if($("#bcHtFlyOut").css("display") == "block"){
				$("#bcHtFlyOut").slideUp("fast", function (){$("#bcHistory").toggleClass("bcHtActive");})
			}
		});
		
	},
	
	// Start Flyout Box function
	stFlyoutBox:function () {		
		$("#mtStart a, #hpBtn1").bind("click", function(){
			$("#hpCustomCt").slideToggle("slow");
			$("#mtStart a").toggleClass("changeAc");
			
			if($("#mtStart a").hasClass("changeAc")){
				$("#mtStart a").empty();
				$("#mtStart a").append("Schlie&szlig;en");
			} else {
				$("#mtStart a").empty();
				$("#mtStart a").append("&Auml;ndern");
			}
			return false;
		});
		$(".hpCustomBtn").bind("click", function(){
			$(".hpCustomBtn").removeClass("hpCustomBtnAc");
			$(this).toggleClass("hpCustomBtnAc");
		});
	},
	
	// MainNav Flyout function
	mnFlyOut:function () {
		var delayOnLv0, delayOffLv0, delayOnLv1, delayOffLv1, zIndex;
		
		$("#tsNav li,  #tsBdNav li").each(function (i) {
			$(this).css({zIndex:9999 - (i--)});
		});
		
		// Flyout Level 1
		$("li.mnLv0, #tsNav li,  #tsBdNav li, #arNav li").bind("mouseenter focus", function(){
			var parentId = $(this);
			
			//zIndex = parentId.css("z-index")
			

			parentId.addClass("isActual");

			$("li.mnLv0:not(.isActual), #tsNav li:not(.isActual), #tsBdNav li:not(.isActual), #arNav li:not(.isActual)").find(".mnFlyOutV:visible").slideUp("fast",function (){
				$("li.mnLv0:not(.isActual), #tsNav li:not(.isActual), #tsBdNav li:not(.isActual)").find("a:first").removeClass("mnLv0Hover");																		 
			});

			clearTimeout(delayOffLv0);
			delayOnLv0 = setTimeout(function(){
				parentId.find(".mnFlyOutV").parent().find("a:first").addClass("mnLv0Hover");
				parentId.find(".mnFlyOutV:hidden").slideDown("fast");
				//parentId.css({zIndex: zIndex + 10});
			}, 100);
		})
		// Hover out, blur mainnav
		.bind("mouseleave", function(){
			var parentId = $(this);
			//zIndex = parentId.css("z-index")
			//parentId.css({zIndex: zIndex - 10});

			parentId.removeClass("isActual");
			
			clearTimeout(delayOnLv0);
			delayOffLv0 = setTimeout(function(){
				parentId.find(".mnFlyOutV").slideUp("fast",function () {
					parentId.find("a:first").removeClass("mnLv0Hover");
					
				});
			}, 300);
			
		});
		
		// Flyout Level 2
		$("li.mnLv1:has(.mnFlyOutH)").bind("mouseenter focus", function(){
			var parentId = $(this);
			
			var snId = parentId.find(".mnFlyOutH"); // Subnav Flyout
			var wdHeight = $(window).height(); // Height of window
			var lnLnYpos = parentId.offset(); // Y-pos of current link
			var snHeight = snId.height(); // Height of mainnav
			var mnCulHeight = lnLnYpos.top + snHeight; // Cumulate height
			
			//alert(lnLnYpos.top)
			
			// Else get the subnav position by subtracting the real needed element height with the window height
			if(wdHeight < mnCulHeight){
				snYpos = wdHeight - mnCulHeight - 10;
				snId.css({top:snYpos});
			} else {
				snId.css({top:-1});
			}
			
			clearTimeout(delayOffLv1);
			delayOnLv1 = setTimeout(function(){
				parentId.find("a:first").addClass("mnLv1Hover");
				parentId.find(".mnFlyOutH").animate({ 
					width: 294
				}, "fast" );
			}, 200);
		})
		// Hover out, blur mainnav
		.bind("mouseleave", function(){
			var parentId = $(this);

			clearTimeout(delayOnLv1);
			delayOffLv1 = setTimeout(function(){
				parentId.find(".mnFlyOutH").animate({ 
					width: 0
				}, "fast",callback);
			}, 300);
			function callback() {
				// Removes classname to change bg-pos
				parentId.find("a:first").removeClass("mnLv1Hover");
			}
		});		

		// Special CSS Styles
		$(".mnFlyOutH ul, .mnFlyOutV ul, .lnListBox").each(function (i) {
			$(this).find("li:last a").css({borderBottom:"none"});
		});
		$("li.mnLv1:has(.mnFlyOutH)").find("a:first").addClass("mnIconSub");
		$("#mtNav li:first").css({background:"none"});

	}

}

function selectRadioBox(id) {
	$('#hdCont form ul li a').removeClass('select');
	$('.rbtn'+id).attr({ checked: 'checked' });
	$('.rbtn'+id).parent('li').children('a').addClass('select');
}

function slotFlyOut(id) {
	var flyout = $('#slCont .fo'+id).css('height');
	if(flyout == '15px')
		$('#slCont .fo'+id).addClass('open');
	else
		$('#slCont .fo'+id).removeClass('open');
}

//popup
var popupWin = null;

function popdown() {
  if (popupWin && !popupWin.closed) popupWin.close();
}

function popup(obj,w,h) {
  var url = (obj.getAttribute) ? obj.getAttribute('href') : obj.href;
  if (!url) return true;
  w = (w) ? w += 20 : 810; 
  h = (h) ? h += 25 : 600;
  var args = 'width='+w+',height='+h+',scrollbars,resizable,status';
  popdown();
  popupWin = window.open(url,'popup',args);
  if(popupWin)
  	popupWin.focus();
  return (popupWin) ? false : true;
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
	if (theValue == true || theValue == false)
	  eval("obj."+theProp+"="+theValue);
	else eval("obj."+theProp+"='"+theValue+"'");
  }
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function setElememtHTML(value, targetElement) {
	//if IE 4+
	if (document.all) {
		eval(targetElement+'.innerHTML = value;');
	//else if NS 4
	} else if (document.layers) {
		eval('document.'+targetElement+'.document.write(value);');
		eval('document.'+targetElement+'.document.close();');
	}
	//else if NS 6 (supports new DOM)
	else if (document.getElementById) {
		rng = document.createRange();
		el = document.getElementById(targetElement);
		rng.setStartBefore(el);
		htmlFrag = rng.createContextualFragment(value);
		while (el.hasChildNodes())
			el.removeChild(el.lastChild);
		el.appendChild(htmlFrag);
	}
}

//on load function 
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
		if (oldonload) {
			oldonload();
		}
			func();
		}
	}
}

function clearInput(target){
	if(document.getElementById(target).value){
		document.getElementById(target).value = '';
	}
}