/**
 * Sprachen fuer den Datepicker
 */

var regional = {
	de: {
		closeText: 'schließen',
		prevText: '&#x3c;zurück',
		nextText: 'vor&#x3e;',
		currentText: 'heute',
		monthNames: ['Januar','Februar','März','April','Mai','Juni', 'Juli','August','September','Oktober','November','Dezember'],
		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', 'Jul','Aug','Sep','Okt','Nov','Dez'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		//dayNamesShort: ['Son','Mon','Die','Mit','Don','Fre','Sam'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		firstDay: 1,
		dateFormat: 'D., d. M. yy',
		isRTL: false,
		showButtonPanel: false,
		dateDateFormat: 'd. mmm. yyyy',
		checkinTitle: 'Klicken, um das Datum zu ändern',
		checkoutTitle: 'Klicken, um das Datum zu ändern'
	},
	cz: {
		closeText: 'blízko',
		prevText: '&#x3c;zpěd',
		nextText: 'před&#x3e;',
		currentText: 'dnes',
		monthNames: ['leden','únor','březen','duben','květen','červen', 'červenec','srpen','září','říjen','listopad','prosinec'],
		monthNamesShort: ['led','úno','bře','du','kvě','čer', 'čer','srp','zář','říj','lis','pro'],
		dayNames: ['neděle','pondělí','úterý','středa','čtvrtek','pátek','sobota'],
		dayNamesShort: ['ne','po','út','st','čt','pá','so'],
		dayNamesMin: ['ne','po','út','st','čt','pá','so'],
		firstDay: 1,
		dateFormat: 'DD, d. m. yy',
		showButtonPanel: false,
		isRTL: false,
		dateDateFormat: 'd. m. yyyy',
		checkinTitle: 'click to change the date',
		checkoutTitle: 'click to change the date'
	},
	it: {
		closeText: 'chiudi',
		prevText: '&#x3c;precedente',
		nextText: 'avanti&#x3e;',
		currentText: 'oggi',
		monthNames:['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'Settembre', 'ottobre', 'novembre', 'dicembre' ],
		monthNamesShort: ['gen','feb','mar','apr','mag','giu', 'lug','ago','set','ott','nov','dic'],
		dayNames: ['Domenica', 'Lunedi', 'Martedì', 'Mercoledì', 'Giovedi', 'Venerdì', 'Sabato'],
		dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
		dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
		firstDay: 1,
		dateFormat: 'DD, d MM, yy',
		showButtonPanel: false,
		isRTL: false,
		dateDateFormat: 'd. mmmm, yyyy',
		checkinTitle: 'click per cambiare la data',
		checkoutTitle: 'click per cambiare la data'
	},
	en: {
		closeText: 'close',
		prevText: '&#x3c;previous',
		nextText: 'next&#x3e;',
		currentText: 'today',
		monthNames: ['January','February','March','April','May','June', 'July','August','Septembre','October','November','December'],
		monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun', 'Jul','Aug','Sep','Oct','Nov','Dec'],
		dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
		dayNamesShort: ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
		firstDay: 1,
		dateFormat: 'DD, d MM, yy',
		showButtonPanel: false,
		isRTL: false,
		dateDateFormat: 'd. mmmm, yyyy',
		checkinTitle: 'click to change the date',
		checkoutTitle: 'click to change the date'
	}
}

var r = regional[language];
var languageChanged = true;
 
jQuery(function($){
		var rd = {
			closeText: r.closeText,
			prevText: r.prevText,
			nextText: r.nextText,
			currentText: r.currentText,
			monthNames: r.monthNames,
			monthNamesShort: r.monthNamesShort,
			dayNames: r.dayNames,
			dayNamesShort: r.dayNamesShort,
			dayNamesMin: r.dayNamesMin,
			firstDay: r.firstDay,
			dateFormat: r.dateFormat,
			isRTL: r.isRTL
		}
	$.datepicker.setDefaults(rd);
});

Date.dayNames = r.dayNames;
Date.abbrDayNames = r.dayNamesShort;
Date.monthNames = r.monthNames;
Date.abbrMonthNames = r.monthNamesShort;
Date.firstDayOfWeek = r.firstDay;
Date.format = r.dateDateFormat;


var date = {};
date['today'] = new Date();
date['todayStr'] = date.today.getDayName(true) + "., " + date.today.asString();
date['tommorow'] = date.today.addDays(1);
date['tommorowStr'] = date.tommorow.getDayName(true) + ", " + date.tommorow.asString();

$(document).ready(
	function () {
		/**
		Sprachenwechsel abfragen
		*/
		languageChanged = ($.readCookie("language") !== language) ? true : false;
		//$.setCookie("language", language, {duration: 1});
		
		
		/**
		Checkin- und Checkout-Feld Werte setzen:
		Datepicker aktivieren
		*/
		var checkin = $("input[name='tx_xpform2_pi1[start]']");
		if (checkin.length){
			checkin.attr("title", r.checkinTitle).datepicker({minDate: '+0D', maxDate: '+12M'});
			if (!checkin.attr("value").length) checkin.val(date.todayStr);
		}
		
		var checkout = $("input[name='tx_xpform2_pi1[end]']");
		if (checkout.length){
			checkout.attr("title", r.checkoutTitle).datepicker({minDate: '+1D', maxDate: '+12M +1D'});
			if (!checkout.attr("value").length) checkout.val(date.tommorowStr);
		}
		
		
		/** Tooltips */
		$('.tt').tooltip({  track: true,  showURL: false,  showBody: " - ",  fixPNG: true,  opacity: 0.95,  left: -120  });
		
		
		/** Scriptabhaengige Bereiche ein-/ausblenden */
		$(".script").show();
		$(".noscript").hide();
		
		
		if (browser != "opera") {
			$(".operaOnly").hide();
		}
		
		// scroll to top
		$(".csc-linkToTop a").click(function () {
				$('html,body').animate({scrollTop: 0}, $(this).offset().top);
				return false;
		});
		
		
		// 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 title = "";
		var iPad = navigator.userAgent.match(/iPad/i) != null ? true : false;
		
		var fn = {
			_init: function () {
				fn._setItemsObjAndSelectedItem();
				fn._renderActor();
			},
			
			_setItemsObjAndSelectedItem: function () {
				title = obj.attr("title");
				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 titleAttr = (title) ? 'title="'+title+'"' : "";
				var html = '<div id="'+id+'" class="'+c.cssClass_actor+' '+c.cssClass_additional_actor+'" '+titleAttr+'><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);


