jQuery(document).ready(function () {

	jQuery.fn.extend({ hrefId: function() { return jQuery(this).attr("href").substr(jQuery(this).attr("href").indexOf("#") + 1); }});
	
	/* Deutschlandkarte */
	jQuery("area").each(function() 
	{
		
		jQuery(this).mouseover(function() {
			var lan = jQuery(this).attr("alt");
			jQuery("#Deutschlandkarte").attr("src","/fileadmin/templates/images/RKW_Landkarte/RKW_Landkarte_" + lan + ".gif").fadeIn();
			jQuery("#Deutschlandkarte_ev").attr("src","/fileadmin/templates/images/RKW_Landkarte_eV/RKW_Landkarte_" + lan + ".gif").fadeIn();				
		});
		
		jQuery(this).mouseout(function(){
			jQuery("#Deutschlandkarte").attr("src","/fileadmin/templates/images/RKW_Landkarte/RKW_Landkarte_startseite.gif").fadeIn();
			jQuery("#Deutschlandkarte_ev").attr("src","/fileadmin/templates/images/RKW_Landkarte_eV/RKW_Landkarte_startseite.gif").fadeIn();
		});
	});
	
	
	// Etracker dynamisch einsetzen --> Downloads im Pressebereich
	jQuery("ul.press-pics li h3").each(function() {
		
		var title = jQuery(this).find ("span").text();
		jQuery(this).parent().find ("p a").mousedown( function () {
			ET_Event.eventStart('Presse-Download', title, 'Download', document.getElementsByTagName('base')[0].href);
		});
		
	});
	
	// Etracker dynamisch einsetzen --> Alle Links, die nicht dem base-Url entsprechen
	jQuery("a").each(function() {

		var base_url = document.getElementsByTagName('base')[0].href;
		// Ggf ergänzen um /
		if (! base_url.match(/\/$/)) {
			base_url += '/'; 
		}		
		var reg_expression = new RegExp("^" + base_url, "i").source; 
		var reg_expression_uploads = new RegExp("^" + base_url+ 'uploads/', "i").source; 

		// Wenn extern, dann mit Event versehen
		if ((! this.href.match(reg_expression)) &&
			(! this.href.match(/^javascript:/i)) &&
			(! this.href.match(/^uploads/i)) &&
			(! this.href.match(/^mailto:/i)) ) {

			jQuery(this).mousedown( function () {
				ET_Event.eventStart('Extern', this.href, 'Click', document.getElementsByTagName('base')[0].href);
			});
			
		// Wenn Email, dann anderer Event			
		} else if (this.href.match(/^mailto:/i)) {

			jQuery(this).mousedown( function () {
				ET_Event.eventStart('E-Mail', this.href.replace(/^mailto:/, ''), 'Click', document.getElementsByTagName('base')[0].href);
			});
		
		// Auch für die verschlüsselten Emails
		} else if (this.href.match(/^javascript:linkTo_UnCryptMailto/i)) {
		 
			jQuery(this).mousedown( function () {
				ET_Event.eventStart('E-Mail', this.innerHTML, 'Click', document.getElementsByTagName('base')[0].href);
			});		
		
		// Wenn Downloads		
		} else if ((this.href.match(/^uploads/i)) || 
				   (this.href.match(reg_expression_uploads))) {

		   jQuery(this).mousedown( function () {
				ET_Event.eventStart('Normaler Download', this.href, 'Download', document.getElementsByTagName('base')[0].href);
			});
		}
		
	
	});	
           

	jQuery("input:text,textarea").each(function()
	{
		this.setAttribute('autocomplete', 'off');
	});

	jQuery("input:text.search,textarea.search, .column-left form input").each(function()
	{
		if (! this.defaultText) {
		
			if (this.title) {
				this.defaultText = this.title;
			} else {
				this.defaultText = this.value;
			}
		}
		jQuery(this).focus(function() { if (this.value == this.defaultText) { this.value = "";} }).blur(function() { if (this.value == "" && this.defaultText) this.value = this.defaultText; });
	});
	
	
	jQuery("#header form").each(function()
	{
		var $this = jQuery(this);
	
		$this.find("input.text").focus(function() { jQuery(this).addClass("focus"); }).blur(function() { if (this.value == this.defaultText) jQuery(this).removeClass("focus"); });
	});
	
	
	jQuery("div.dates").each(function()
	{
		var $this = jQuery(this), active = 0;
	
		var maxH = 0, w = $this.children("ul").length * 200;
		$this.children("ul").wrapAll('<div class="clip"></div>').each(function() { maxH = Math.max(jQuery(this).outerHeight(), maxH); });
		maxH += $this.children("p").outerHeight();
		$this.find("div.clip").width(w).height(maxH);
	
		$this.find(">p>a").click(function()
		{
			jQuery(this).addClass("active").siblings().removeClass("active");
			var i = $this.find(">.clip>ul").index($this.find("#" + jQuery(this).hrefId()));
			$this.children(".clip").stop(true).animate({ marginLeft: (i * -200) + "px" }, 250);
			return false;
		}).eq(active).addClass("active");
	
	});
	
	
	jQuery("div.banner").each(function()
	{
		var self = this, $this = jQuery(this), $first = $this.children("div.first"), $items = $this.find(">ul>li"), openTimer = false;
	
		$items.removeClass("active");
	
		var active = false;
		var $active = jQuery("#menu li.active a");
		if ($active.length)
			active = $active[0].className;
	
		$items.each(function(i) { jQuery(this).data("left", true).data("index", i).css({ zIndex: i }); });
	
		this.open = function(which, speed)
		{
			if (typeof speed == "undefined")
				speed = 1;
	
			var $current = $items.filter(".active");
			if ($current.hasClass(which))
				return;
	
			if (openTimer)
				clearTimeout(openTimer);
	
			openTimer = setTimeout(function()
			{
				openTimer = false;
				$first.fadeOut(speed * 500);
				if ($current.length)
					$current.removeClass("active");
				$current = $items.filter("." + which).addClass("active");
			
				if (!$current.data("left"))
					$current
						.data("left", true)
						.css({ left: ($current.data("index") * 51 + 410) + "px", right: "auto" })
						.stop(true).animate({ left: ($current.data("index") * 51) + "px" }, speed * 500);
	
				$current.prevAll().each(function()
				{
					if (!jQuery(this).data("left"))
						jQuery(this).data("left", true).css({ left: (jQuery(this).data("index") * 51 + 410) + "px", right: "auto" }).stop(true).animate({ left: (jQuery(this).data("index") * 51) + "px" }, speed * 500);
					jQuery(this).find("div").fadeIn(speed * 500);
				});
	
				$current.nextAll().each(function()
				{
					if (jQuery(this).data("left"))
						jQuery(this).data("left", false).stop(true).animate({ left: (jQuery(this).data("index") * 51 + 410) + "px" }, speed * 500, function() { jQuery(this).css({ left: "auto", right: ((5 - jQuery(this).data("index")) * 51 - 410) + "px" }); });
					jQuery(this).find("div").fadeIn(speed * 500);
				});
	
				$current.find("div").fadeOut(speed * 500);
				$items.parent().animate({ width: "716px", borderLeftWidth: "9px" }, speed * 500);
			}, speed * 333);
		};
	
		this.close = function(force)
		{
			if (openTimer)
			{
				clearTimeout(openTimer);
				openTimer = false;
			}
	
			if (active && !force)
				self.open(active);
			else
			{
				var $current = $items.filter(".active");

				if (!$current.length)
					return;
				$first.fadeIn(500);
				$current.removeClass("active");
				$items.parent().animate({ width: "306px", borderLeftWidth: "0px" }, 500, function()
				{
					$items.each(function() { jQuery(this).data("left", true).css({ left: (jQuery(this).data("index") * 51) + "px", right: "auto" }); });
				});
			}
		};
	
		$items.mouseenter(function() { self.open(this.className); });
		$items.parent().mouseleave(function() { self.close(); });
	
		if (active)
			self.open(active, 0);
	});
	
	var banner = jQuery("div.banner")[0];
	
	
	jQuery("#menu a").mouseenter(function() { banner.open(this.className); });
	jQuery("#header p.links a").mouseenter(function() { banner.close(true); });
	jQuery("#header p.links").mouseleave(function() { banner.close(); });
	jQuery("#menu").mouseleave(function() { banner.close(); });
	//jQuery("#menu li.active a").trigger("mouseenter");
	
	
	/*
	jQuery("form.ajax").each(function()
	{
		var $input = jQuery(this).find("input:text:last");
	
		jQuery(this).find("input:submit").click(function() { return false; });
	
		$input.keyup(function()
		{
			query = $input.val();
	
			if (!this.prevQuery || this.prevQuery != query && query)
			{
				var $form = $input.closest("form");
				var formData = {};
				$form.find("input,select,textarea").each(function() { if (jQuery(this).attr("name")) formData[jQuery(this).attr("name")] = jQuery(this).val(); });
				$.get($form.attr("action"), formData, function(data)
				{
					var bodyW = jQuery("body").width(), windowW = jQuery(window).width(), bodyPos = (windowW - bodyW) / 2;
					jQuery("div.results").remove();
					var $results = jQuery(data).appendTo("body"), $i = $form.find("input:submit").prev(), pos = $i.offset();
					$results.css({ left: (-bodyPos + pos.left + 10) + "px", top: (pos.top - 10 + $i.outerHeight()) + "px" });
					jQuery("form.search").removeClass("show-results");
					$form.addClass("show-results");
				}, "html");
			}
	
			this.prevQuery = query;
		})
	});

	
	jQuery(document).mousedown(function(event)
	{
		var $forms = jQuery("form.search");
		if ($forms.find("*").index(event.target) < 0)
		{
			$forms.removeClass("show-results");
			jQuery("div.results").remove();
		}
	});
	*/	
	
	var modal = new function()
	{
		var $overlay = jQuery('<div id="overlay"></div>').appendTo("body"), $modals = jQuery("div.modal"), $openModal = false;
	
		this.close = function()
		{
			$overlay.fadeOut(500);
			if ($openModal)
			{
				$openModal.fadeOut(500);
				$openModal = false;
			}
		};
	
		this.open = function(which)
		{
			$openModal = $modals.filter("#" + which);
	
			if ($.browser.msie && $.browser.version <= 6)
			{
				var pos = jQuery("body").offset();
				$overlay.css("left", -pos.left + "px").height(jQuery("body").height()).width(Math.max(jQuery(window).width(), jQuery("body").width()));
	
				jQuery(window).resize(function() { var pos = jQuery("body").offset(); $overlay.css("left", -pos.left + "px").width(Math.max(jQuery(window).width() - 1, jQuery("body").width())); });
			}
	
			$openModal.css({ visibility: "hidden" }).show().css({ marginTop: (-$openModal.outerHeight() / 2) + "px" }).hide().css({ visibility: "visible" }).fadeIn(500);;
			$overlay.css({ display: "block", opacity: "0" }).fadeTo(500, .85);
	
		};
	
		$modals.find("p.close a").click(function() { modal.close(); return false; });
		$overlay.click(function() { modal.close(); });
		jQuery("a.open-modal").click(function() { modal.open(jQuery(this).hrefId()); return false; });
	};
	
	
	jQuery("table.interactive tbody tr a").live("click", function() { window.location = jQuery(this).attr("href"); return false; });
	jQuery("table.interactive tbody tr").live("click", function() { jQuery(this).find("a:first").trigger("click"); });
	
	jQuery("table.interactive tbody").mouseleave(function() { jQuery("#" + jQuery(this).find("a:first").attr("rel")).hide(); });
	jQuery("table.interactive tbody tr").live("mousemove", function(event)
	{
		var bodyW = jQuery("body").width(), windowW = jQuery(window).width(), bodyX = (windowW - bodyW) / 2;
		jQuery("#" + jQuery(this).find("a:first").attr("rel")).css({ left: (event.pageX - bodyX + 32) + "px", top: (event.pageY + 10) + "px" }).show();
	});
	
	jQuery("table th a.sort").click(function()
	{
		var $this = jQuery(this);
		$this.toggleClass("asc");
	
		$.get($this.attr("href"), function(data)
		{
			$this.closest("table").find("tbody").empty().append(data);
	
			if ($.browser.msie && $.browser.version <= 6)
				jQuery("table tr").bind("mouseenter mouseleave", function() { jQuery(this).toggleClass("hover"); });
		}, "html");
	
		return false;
	});
	
	
	jQuery("ul.projects").each(function()
	{
		var $list = jQuery(this), count = $list.children().length, pos = 0, itemW = 98;
	
		$list.width(count * itemW);
		$list.wrap('<div class="projects"><div class="clip"></div></div>');
	
		jQuery('<p class="nav left"><a href="#">&lt;</a></p>').prependTo($list.parent().parent()).find("a").click(function()
		{
			if (pos <= 0)
				return false;
	
			pos--;
			$list.stop(true).animate({ left: (-pos * itemW) + "px" }, 500);
	
			return false;
		});
	
		jQuery('<p class="nav right"><a href="#">&gt;</a></p>').appendTo($list.parent().parent()).find("a").click(function()
		{
			if (pos >= count - 4)
				return false;
	
			pos++;
			var maxLeft = Math.max(-pos * itemW, -$list.width() + $list.parent().width());
			$list.stop(true).animate({ left: maxLeft + "px" }, 500);
	
			return false;
		});
	
	});
	
	
	jQuery("ul.projects li").mouseleave(function() { jQuery("#" + jQuery(this).find("a:first").attr("rel")).hide(); });
	jQuery("ul.projects li").live("mousemove", function(event)
	{
		var bodyW = jQuery("body").width(), windowW = jQuery(window).width(), bodyX = (windowW - bodyW) / 2;
		var bodyH = jQuery("body").width(), windowH = jQuery(window).width(), bodyY = (windowH - bodyH) / 2;

		jQuery("#" + jQuery(this).find("a:first").attr("rel")).css({ left: (event.pageX - bodyX + 10 -100) + "px", top: (event.pageY + 10 - 310) + "px" }).show();
	});
	
	
	if (jQuery.browser.msie && jQuery.browser.version <= 6)
		jQuery("table tr").bind("mouseenter mouseleave", function() { jQuery(this).toggleClass("hover"); });
});

