$(document).ready(
	function () {
		/**
		Sprachenwechsel abfragen
		*/
		languageChanged = ($.readCookie("language") !== language) ? true : false;
		$.setCookie("language", language, {duration: 1});
		
		
		/** Tooltips */
		$('.tt').tooltip({  track: true,  showURL: false,  showBody: " - ",  fixPNG: true,  opacity: 0.95,  left: -120  });
		
		
		/** Scriptabhaengige Bereiche ein-/ausblenden */
		$(".script").show();
		$(".noscript").hide();
		
		$("#popup").draggable();
		$("#popup div.close").click(function () {  $("#popup").hide(300); });
		
		
		if (browser != "opera") {
			$(".operaOnly").hide();
		}
		
		// scroll to top
		$(".csc-linkToTop a").click(function () {
				$('html,body').animate({scrollTop: 0}, $(this).offset().top);
				return false;
		});
		
		// entryPage
		if ($(".entryPage").length){
			$("#linkMT a").hover(function () {
					$("#eye").fadeOut(500);
					$("#contentMT").fadeIn(500);
					$("#contentAS").fadeOut(500);
			});
			$("#linkAS a").hover(function () {
					$("#eye").fadeIn(500);
					$("#contentMT").fadeOut(500);
					$("#contentAS").fadeIn(500);
			});
			
		}
		
		
		// IE 6 (hope this Browser will pass away soon - it's a reason for my nightmares)
		if (browser == "msie" && version < 7){
			// PNG-Fix
			$(".spritesIcons, img[src$=.png]").addClass("ie6TransparencyBug");
			DD_belatedPNG.fix('.ie6TransparencyBug');
			
			// Alert IE6 Box
			if ($.readCookie("iebrowserupdate") != "1") {
				$.setCookie("iebrowserupdate", "1", {duration: 1});
				jAlert('Ihr Browser ist <b>inkompatibel</b> zu den weltweiten Standards (W3C) und beherbergt <span style="color: red;">mindestens 22 nicht behobene schwere Fehler</span>, die es z. B. ermöglichen, Daten von ihrem Computer zu klauen oder Ihren Computer als Spamschleuder zu missbrauchen! Wechseln Sie auf einen anderen Browser!<br /><br />Hier eine Liste populärer und sicherer anderer Webbrowser:<br /><table style="text-align: center"><tr><td><a style="color: #000;" href="http://www.microsoft.com/windows/Internet-explorer/default.aspx" target="_blank"><img src="fileadmin/tmpl/lib/ie6-warning/browser_ie.gif" width="100" height="100" border="0" alt="Internet Explorer 8+" /><br />Internet Explorer 8+</a></td><td><a style="color: #000;" href="http://www.mozilla.com/firefox/" target="_blank"><img src="fileadmin/tmpl/lib/ie6-warning/browser_firefox.gif" width="100" height="100" border="0" alt="Firefox 3+" /><br />Firefox 3+</a></td><td><a style="color: #000;" href="http://www.apple.com/safari/download/" target="_blank"><img src="fileadmin/tmpl/lib/ie6-warning/browser_safari.gif" width="100" height="100" border="0" alt="Safari 3+" /><br />Safari 3+</a></td><td><a style="color: #000;" href="http://www.opera.com/download/" target="_blank"><img src="fileadmin/tmpl/lib/ie6-warning/browser_opera.gif" width="100" height="100" border="0" alt="Opera 9.5+" /><br />Opera 9.5+</a></td><td><a style="color: #000;" href="http://www.google.com/chrome" target="_blank"><img src="fileadmin/tmpl/lib/ie6-warning/browser_chrome.gif" width="100" height="100" border="0" alt="Chrome 2.0+" /><br />Chrome 2.0+</a></td></tr></table>', 'Wissen Sie, dass Ihr Internet Explorer seit mindestens 5 Jahren nicht mehr aktuell ist?');
			}
		}
	}
);

(function($) {
	/**
	Focus und Focusout-Event auf Input - loescht/setzt den Standardwert
	*/
	$.fn.handleInputValue = function(options) {
		var defaults = {
			value: '',
			setValueIfEmpty: false
		};
		var options = $.extend(defaults, options);
		var c;
		var obj, val, btnObj;
		this.each(function() {
				c 	= options;
				obj = $(this);
				if (!c.value) return;
				if (!obj.val() && c.setValueIfEmpty) obj.val(c.value);
				obj.focus(function () { if (obj.val() == c.value) obj.val(""); })
				obj.focusout(function () { if (obj.val() == "") obj.val(c.value); })
		});
		return this;
	};
	
	
	/**
	Select-Tag
	*/
	$.fn.selectUi = function (options) {
		var defaults = {
			'cssClass_actor': 'selectUi-actor',
			'cssClass_actorValue': 'selectUi-actorValue',
			'cssClass_content': 'selectUi-content',
			'cssClass_background': 'selectUi-overlay',
			'cssClass_container': 'selectUi-container',
			'cssClass_additional_container': '',
			'cssClass_additional_actor': ''
		};
		var c;
		var obj, actorObj, backgroundObj, containerObj;
		var selectedItem = false;
		var itemsObj = {};
		var iPad = navigator.userAgent.match(/iPad/i) != null ? true : false;
		
		var fn = {
			_init: function () {
				fn._setItemsObjAndSelectedItem();
				fn._renderActor();
			},
			
			_setItemsObjAndSelectedItem: function () {
				obj.find("option").each(function () {
					var k = $(this).attr("value");
					var v = $(this).html();
					if (!k) k = v;
					if (v){
						if (selectedItem===false) selectedItem = k;
						if ($(this).attr("selected")) selectedItem = k;
						itemsObj[k] = v;
					}
				});
			},
			
			_renderActor: function() {
				fn._removeBackground();
				fn._removeContainer();
				var id = "selectUi_" + parseInt(Math.random()*100000);
				var html = '<div id="'+id+'" class="'+c.cssClass_actor+' '+c.cssClass_additional_actor+'"><div class="'+c.cssClass_actorValue+'">'+itemsObj[selectedItem]+'</div></div>';
				obj.after(html);
				obj.hide();
				actorObj = $('#'+id);
				actorObj.click(function () { fn._actorClicked(); }).css({"cursor": "pointer"});
			},
			
			_actorClicked: function () {
				fn._removeBackground();
				fn._removeContainer();
				
				fn._addBackground();
				backgroundObj.click(function () {
						fn._removeBackground();
						fn._removeContainer();
				});
				
				var html = "";
				for (var k in itemsObj){
					var v = itemsObj[k];
					if (k != selectedItem) html += '<a href="" value="'+k+'">'+v+'</a>';
					else html += '<a href="" value="'+k+'" class="act">'+v+'</a>';
				}
				fn._addContainer(html);
				
				fn._addOptionLinks();
			},
			
			_addOptionLinks: function () {
				containerObj.find("a").each(function () {
						$(this).click(function () {
								selectedItem = $(this).attr("value");
								obj.val($(this).attr("value"));
								actorObj.remove();
								fn._renderActor();
								return false;
						});
				});
			},
			
			_addContainer: function (html) {
				$("body").prepend('<div class="'+c.cssClass_container+' '+c.cssClass_additional_container+'"></div>');
				containerObj = $("."+c.cssClass_container);
				
				var offsetLeft = actorObj.offset().left;
				var offsetTop = (os == "ipad") ? (actorObj.offset()).top-$(window).scrollTop() : actorObj.offset().top;
				containerObj.css({
						'top': parseInt(offsetTop+actorObj.height()-2),
						'left': parseInt(offsetLeft+2),
						'opacity': .9
				});
				
				
				containerObj.html('<div class="'+c.cssClass_content+'">'+html+'</div>');
				containerObj.fadeIn(200);
			},
			
			_removeContainer: function () {
				if (typeof containerObj == "object") containerObj.remove();
			},
			
			_addBackground: function () {
				$("body").prepend('<div class="'+c.cssClass_background+'"></div>');
				backgroundObj = $("."+c.cssClass_background);
				backgroundObj.css({ 'opacity': 0 });
			},
			
			_removeBackground: function () {
				if (typeof backgroundObj == "object") backgroundObj.remove();
			}
		};
		
		this.each(function() {
				c		= $.extend(defaults, options);
				obj	= $(this);
				if (!obj.length) return;
				fn._init();
		});
		return this;
	};
	
	
	/**
	Toggle
	*/
	$.fn.toggleSlideContent = function(dest, options) {
		var defaults = {
			'speedDown': 300,
			'speedUp': 300,
			'actClass': 'act',
			'normalClass': 'actor',
			'startOpen': false
		};
		var c = $.extend(defaults, options);
		var rObj, cObj;
		var opened = false;
		this.each(function() {
				rObj = $(this);
				cObj = (typeof dest == "object") ? dest : $(dest);
				
				if (!rObj.length) return;
				if (!cObj.length || !jQuery.trim(cObj.html())) return;
				
				rObj.css({ 'cursor': 'pointer'});
				rObj.addClass(c.normalClass)
				
				if (c.startOpen) {
					rObj.addClass(c.actClass)
					opened = true;
				} else {
					cObj.hide();
				}
				rObj.click(function () {
						/**
						There is a bug in IE for slideDown (the target-div hides after slideDown)
						*/
						if ($.browser.msie){
							if (opened){
								cObj.show(c.speedUp, function () {
									rObj.removeClass(c.actClass);
									opened = false;
								});
							} else {
								cObj.hide(c.speedDown, function () {
									rObj.addClass(c.actClass);
									opened = true;
								});
							}
						} else {
							if (opened){
								cObj.slideUp(c.speedUp, function () {
									rObj.removeClass(c.actClass);
									opened = false;
								});
							} else {
								cObj.slideDown(c.speedDown, function () {
									rObj.addClass(c.actClass);
									opened = true;
								});
							}
						}
				});
		});
		return this;
	};

	
})(jQuery);


