$(document).ready(function() {
	initPoolGallery();
});

function getWetter(details) {
	if ( $('#maibaum_wetter').hasClass('winterpause') == false ) {
		$('#maibaum_wetter').css('background-image', 'url("' + details.img + '")').removeClass('centered');
	
		$('#maibaum_wetter').prepend('<div class="temperatur">'+details.degree+'<sup>°</sup>C</div>');
		$('#maibaum_wetter').prepend('<div class="datum">'+details.date+'</div>');
		$('#maibaum_wetter .biergarten.centered').removeClass('centered');
	}
}

function showHide(elemId) {
	var elm = document.getElementById(elemId);

	if(elm.style.display == "none") {
		elm.style.display = "block";
	}
	else {
		elm.style.display = "none";
	}
}

function initVideo( swfObjectContainer, container) {
	if (typeof(swfObjectContainer) == 'object' && $('#' + container).length != 0) {
		swfObjectContainer.write(container);
	} else if (typeof(swfObjectContainer) == 'string' && $('#' + container).length != 0) {
		$('#' + container).html(swfObjectContainer);
	} else {
		dumplog('initVideo: not found: '+container+' | '+typeof(swfObject)+' | #'+container+' | '+$('#'+container).length);
	}
}

function searchBoxCheck(defaultTerm)
{
	var elm = document.getElementById('searchTerm');
	if(elm.value==defaultTerm) {
		elm.value = '';
	}
}



var imgLo = new Array();

imgLo["submit"] = new Image();
imgLo["submit"].src = "/augustiner/sys/pix/general/submitbutton.png";


var imgHi = new Array();

imgHi["submit"] = new Image();
imgHi["submit"].src = "/augustiner/sys/pix/general/submitbutton_hi.png";


function iCh(imgName, mode) {
	if(mode==1) {
		document.getElementById(imgName).src = imgHi[imgName].src;
	}
	else {
		document.getElementById(imgName).src = imgLo[imgName].src;
	}
}


function initPoolGallery() {
	var galleries = $('.pool_gallery');
	 
	galleries.children('ul.withover').removeClass('withhover');
	
	var items =	galleries.find('li');
	
	items.hover(
								function(){
									var thisEl = $(this);
									thisEl.find('img').stop(true).animate({'top': '-75px'}, 250);
								},
								function(){
									var thisEl = $(this);
									thisEl.find('img').stop(true).animate({'top': '0px'}, 250);
								}
	);
	items.children('a.preview').fancybox({
		//'overlayColor':		'#002346',
		'overlayOpacity':	0.8,
		'padding':			0,
		'margin':			20,
		'showCloseButton':	true,
		'titlePosition':	'over',
		'titleFormat':		function (title, currentArray, currentIndex, currentOpts) {
								var li = $( currentArray[currentIndex] ).closest('li');
								var filesize	= li.find('.size').html();
								var title		= li.find('.name').html();
								var dimensions	= li.find('.dimensions').html();
								var description	= li.find('.description').html();
								var suffix		= li.find('.suffix').html().substring(1).toUpperCase();
								var download_url= li.children('a').attr('href').replace('/img/6x600/', '/data/');
								return '<a href="'+download_url+'"><span class="filesize">'+filesize+'</span>&nbsp;<span>Download '+suffix+'</span></a>&nbsp;' + ( li.hasClass('file') ? '' : '<span class="dimensions">' + dimensions + '</span>' ) + (description !== null ? description : title);
						},
		'onComplete': function() {

			$('#fancybox-wrap').addClass('pool_gallery_overlay');
			$('.fancybox-bg').remove();
			var title_offset = $("#fancybox-title").outerHeight() * -1;
			
			$("#fancybox-title").css({'top':'0px', 'bottom':'auto', 'width': ($("#fancybox-title").width() - 25) + 'px', 'margin-top': title_offset + 'px'});
			$("#fancybox-close").css({'margin-top': title_offset + 'px'});
			$("#fancybox-outer").css({'background': 'none'});
		}
	});
}


function initEventFancybox(selector) {
	if ( selector == undefined ) {
		selector = 'a.popupEvent';
	}

	$(selector).fancybox({
		'width'				: 648,
		'height'			: 500,
		'autoScale'			: false,
		'transitionIn'		: 'elastic',
		'transitionOut'		: 'elastic',
		'type'				: 'iframe',
		'overlayOpacity'    : 0.8,
		'speedIn'           : 300,
		'speedOut'          : 300,
		'margin'            : 0,
		'padding'           : 0,
		'changeFade'		: 'slow'
	});
}

(function($){
	$.fn.akmEvents = function(options) {
		// define the default configuration and update them with the custom configuration in "options"
		_setSettings( $.extend( {}, _getDefaults(), options) );

		/**
		 * save informations to the configuration variable
		 * if you want to save multiple informations, provide them as object an leave the second parameter undefined
		 * otherwise if you want to modify one information, provide the name of the entry as second parameter
		 */
		function _setSettings(data, key) {
			var result = false;
			if ( key == undefined ) {
				for ( var dkey in data ) {
					if ( dkey != undefined ) _setSettings(data[dkey], dkey);
				}
				result = true;
			} else if ( _getSettings(key) != undefined ) {
				$.fn.akmEvents.settings[key] = data;
				result = true;
			}
				
			return result;
		}

		/**
		 * return saved configuration informations
		 * if you want only one information, provide the name of the entry
		 */
		function _getSettings(key) {
			if ( key == undefined ) {
				return $.fn.akmEvents.settings;
			} else if ( $.fn.akmEvents.settings[key] != undefined ){
				return $.fn.akmEvents.settings[key];
			} else {
				return undefined;
			}
		}

		function _getTranslations(translationKey, translationFallback) {
			var settings		= _getSettings();
			var navNode			= $(settings.selectorNav);
			var lang			= navNode.attr('lang');
			var translations	= new Array();
			if ( lang != '' && settings['lang_'+lang] != undefined ) {
				translations = settings['lang_'+lang];
			} else {
				for ( var key in settings ) {
					if ( key.substring(0, 5) == 'lang_' ) {
						translations = settings[key];
						break;
					}
				}
			}

			if ( translationKey == undefined ) {
				return translations;
			} else if ( translations[translationKey] != undefined ) {
				return translations[translationKey];
			} else {
				return translationFallback;
			}
		}

		/**
		 * return default configuration informations
		 * if you want only one information, provide the name of the entry
		 */
		function _getDefaults(key) {
			if ( key == undefined ) {
				return $.fn.akmEvents.defaults;
			} else {
				return $.fn.akmEvents.defaults[key];
			}
		}

		/**
		 * function for debugging (firebug logs)
		 */
		function _debug(obj, comment) {
			if (window.console && window.console.log) {
				var group_title = 'akmEvents';
				if ( comment != undefined ) group_title += ': '+comment;
				window.console.group(group_title);
				window.console.log(obj);
				window.console.groupEnd();
			}
		};

		/**
		 * extraxt and return the month and year information from the given string
		 */
		function _extractEventDate(classes) {
			var classList = classes.split(/\s+/);
			var returnVal = { 'month': null, 'year': null };
			for ( var classNo in classList ) {
				var className = classList[classNo];
				if ( className.indexOf('month_') == 0 ) { returnVal['month'] = className.substring(6); }
				if ( className.indexOf('year_') == 0 ) { returnVal['year'] = className.substring(5); }
			}
	
			return returnVal;
		}
		
		/**
		 * create the calendar navigation and apply functions to switch between the months
		 */
		function init() {
			var settings		= _getSettings();
			var initialSelector = settings.eventWrapperSelector+' '+settings.eventSelector;
			var listedYears		= 0;
			var loopYear		= null;
			var loopMonth		= null;

			var navNode			= $(settings.selectorNav);
			$(initialSelector).hide();
			navNode.parent().append('<div class="calendar_loader">&nbsp;</div><div style="float: none; clear: both;">&nbsp;</div>');
			navNode.append('<a href="#" class="calendar_nav_prev"><span>&lt;</span></a><div class="calendar_nav"><ul class="calendar_nav_slider"></ul></div><a href="#" class="calendar_nav_next"><span>&gt;</span></a>');

			var translations	= _getTranslations('months');

			// loop thru the calendar entries and get the year informations
			while ( listedYears < settings.maxYears ) {
				listedYears++;
				if ( loopYear == null ) {
					var tmpSelector = initialSelector+':eq(0)';
					var tmpNode		= $(tmpSelector)[0];
				} else {
					var tmpSelector = initialSelector+'.year_'+loopYear+':last';
					var tmpNode		= $(tmpSelector).next()[0];
				}

				if ( tmpNode == undefined ) { break; }
				var tmpDates= _extractEventDate(tmpNode.className);
				loopYear	= tmpDates.year;
				loopMonth	= tmpDates.month;

				var linkSelector = 'calendar_range_'+loopMonth+'_'+loopYear;
				if ( translations[parseInt(loopMonth)-1] != undefined ) {
					var label = translations[parseInt(loopMonth)-1];
				} else {
					var label = loopMonth+'.'+loopYear;
				}

				// add a timerange to the calendar navigation
				_addYearToNavigation(loopYear);
			}

			// bind logic to switch between the months and highlight the navigation
			$(settings.selectorNav+' .calendar_nav a').unbind('click').bind('click', function(event, removeLoader){
				var thisNode		= $(this);
				var parentRangeNode = thisNode.parents('li:eq(1)');
				if ( parentRangeNode.hasClass('active') == false ) {
					// activate the selected time range
					parentRangeNode.parent('ul').children('li.active').removeClass('active');
					parentRangeNode.addClass('active');
					var positionLeft = parentRangeNode.prevAll().length * parentRangeNode.width();

					if ( parentRangeNode.next().length == 0 ) {
						var navWidth = parentRangeNode.parents('div:eq(0)').width();
						if ( navWidth > 0 ) {
							positionLeft = positionLeft - (navWidth - parentRangeNode.width());
						}
					}

					// scroll the selected range into the visible area and switch to visible events
					parentRangeNode.parents('div:eq(0)').animate(
																	{'scrollLeft': positionLeft},
																	1500,
																	function() {
																		_activateRange(thisNode);
																		if ( removeLoader == true ) {
																			$('.calendar_loader').remove();
																		}
																	}
					);
				} else {
					_activateRange(thisNode);
					if ( removeLoader == true ) {
						$('.calendar_loader').remove();
					}
				}
				
				return false;
			});

			$(settings.selectorNav+' .calendar_nav_prev').unbind('click').bind('click', function(){
				var thisNode	= $(this);
				var activeRange	= thisNode.parent().find('li.active:eq(0)');
				
				if ( activeRange.length == 0 ) {
					thisNode.parent().find('li:eq(0) a:eq(0)').trigger('click');
				} else {
					activeRange.prev().find('a:eq(0)').trigger('click');
				}
				return false;
			});

			$(settings.selectorNav+' .calendar_nav_next').unbind('click').bind('click', function(){
				var thisNode	= $(this);
				var activeRange	= thisNode.parent().find('li.active:eq(0)');
				
				if ( activeRange.length == 0 ) {
					thisNode.parent().find('li:eq(1) a:eq(0)').trigger('click');
				} else {
					activeRange.next().find('a:eq(0)').trigger('click');
				}
				return false;
			});

			var tmpNode	= $(initialSelector+':eq(0)')[0];
			var date	= new Date();
			var tmpYear = date.getFullYear();
			var tmpMonth= date.getMonth() + 1;
			var lc		= 100;
			do {
				tmpNode = $(settings.selectorNav+' a.month_'+tmpMonth+'.year_'+tmpYear);
				tmpMonth = tmpMonth - 1;
				if ( tmpMonth < 1 ) {
					tmpYear = tmpYear - 1;
					tmpMonth = 12;
				}

				if ( tmpYear <= 2008 || lc <= 0 ) {
					break;
				} 
			} while ( tmpNode.length == 0 );
			

			if ( tmpNode != undefined ) {
				tmpNode.trigger('click');
			} else {
				var tmpNode	= $(initialSelector+':eq(0)')[0];
				if ( tmpNode != undefined ) {
					var tmpDates= _extractEventDate(tmpNode.className);
					firstYear	= tmpDates.year;
					firstMonth	= tmpDates.month;
					// trigger the click on the first month in the calendar navigation
					$(settings.selectorNav+' .calendar_nav a.month_'+firstMonth+'.year_'+firstYear).trigger('click', [true]);
				}
			}

			if ( navNode.find(settings.selectorCalendarListWrapper).length < 1 ) {
				navNode.append('<div class="'+settings.selectorCalendarListWrapper.substring(1)+'"><a href="#" class="calendar_month_prev"><span>&lt;</span></a><h2 id="calendar_headline"></h2><a href="#" class="calendar_month_next"><span>&gt;</span></a><div class="calendar_list"></div></div>');
			}
			
			$(settings.selectorCalendarListWrapper+' .calendar_month_next').unbind('click').bind('click', function(){
				var activeLi	= $(settings.selectorNav+' a.active:eq(0)').parent();

				if ( activeLi.next().length > 0 ) {
					activeLi.next().find('a:eq(0)').trigger('click');
				} else {
					var nextYearRange = activeLi.parent().parent().next();
					if ( nextYearRange.length > 0 ) {
						nextYearRange.find('a:eq(0)').trigger('click');
					}
				}
				return false;
			});

			$(settings.selectorCalendarListWrapper+' .calendar_month_prev').unbind('click').bind('click', function(){
				var activeLi	= $(settings.selectorNav+' a.active:eq(0)').parent();

				if ( activeLi.prev().length > 0 ) {
					activeLi.prev().find('a:eq(0)').trigger('click');
				} else {
					var nextYearRange = activeLi.parent().parent().prev();
					if ( nextYearRange.length > 0 ) {
						nextYearRange.find('a:eq(11)').trigger('click');
					}
				}
				return false;
			});
		}
	
		/**
		 * hide all events and show events within the selected month
		 */
		function _activateRange(linkObj) {
			var settings = _getSettings();

			var initialSelector = settings.eventWrapperSelector+' '+settings.eventSelector;
			var tmpRange		= linkObj.attr('id').split('_');
			var clickedMonth	= tmpRange[2];
			var clickedYear		= tmpRange[3];

			// remove the active class from nodes which have this class and activate the actual element
			linkObj.parents('ul:eq(1)').find('a.active').removeClass('active');
			linkObj.addClass('active');

			// hide all events and show all events whin the selected time range
			if ( $('#calendar_view_'+clickedMonth+'_'+clickedYear).length == 0 ) {
				_createMonthView(clickedMonth, clickedYear);
			}
				
			var notSelector	= '#calendar_view_'+clickedMonth+'_'+clickedYear;
			$('.calendar_view').not(notSelector).hide();
			$('.calendar_view'+notSelector).show();
			
			// hide and/or show the calendar navigation arrows
			var displayPrevYear = linkObj.parents('li:eq(1)').prev().length;
			var displayNextYear = linkObj.parents('li:eq(1)').next().length;
			var displayPrevMonth = linkObj.parents('li:eq(0)').prev().length;
			var displayNextMonth = linkObj.parents('li:eq(0)').next().length;
			var parentDiv		= linkObj.parents('div:eq(1)');
			var listDiv			= $(settings.selectorCalendarListWrapper);

			if ( displayPrevYear > 0 && displayNextYear > 0 ) {
				parentDiv.find('.calendar_nav_prev, .calendar_nav_next').show();
			} else if ( displayPrevYear < 1 && displayNextYear < 1 ) {
				parentDiv.find('.calendar_nav_prev, .calendar_nav_next').hide();
			} else {
				if ( displayPrevYear > 0 ) { parentDiv.find('.calendar_nav_prev').show(); } else { parentDiv.find('.calendar_nav_prev').hide(); }
				if ( displayNextYear > 0 ) { parentDiv.find('.calendar_nav_next').show(); } else { parentDiv.find('.calendar_nav_next').hide(); }
			}

			if ( displayPrevMonth > 0 || displayPrevYear > 0 ) { listDiv.find('.calendar_month_prev').show(); } else { listDiv.find('.calendar_month_prev').hide(); }
			if ( displayNextMonth > 0 || displayNextYear > 0 ) { listDiv.find('.calendar_month_next').show(); } else { listDiv.find('.calendar_month_next').hide(); }

			var translations = _getTranslations('months');
			$('#calendar_headline').html(translations[clickedMonth-1]+' '+clickedYear);
		}
		
		/**
		 * create the calendar navigation and add a timerange
		 */
		function _addYearToNavigation(year) {
			var settings = _getSettings();
			var navNode = $(settings.selectorNav);

			if ( navNode.find('li#calendar_year_'+year).length > 0 ) {
				return true;
			}

			// create the node list for the month tabs as string
			var monthLabels = _getTranslations('months');
			var monthList = '';
			for ( var monthNo in monthLabels ) {
				var mLabel	= _specialSubstring(monthLabels[monthNo], 3);

				var tmpMonthNo	= parseInt(monthNo) + parseInt(1);
				monthList += '<li><a href="#" id="calendar_range_'+tmpMonthNo+'_'+year+'" class="month_'+ tmpMonthNo +' year_'+year+'">'+mLabel+'</a></li>';
			}
				
			if ( navNode.find('.calendar_nav .calendar_nav_slider').length < 1 ) {
				navNode.append('<a href="#" class="calendar_nav_prev"><span>&lt;</span></a><div class="calendar_nav"><ul class="calendar_nav_slider"></ul></div><a href="#" class="calendar_nav_next"><span>&gt;</span></a>');
			}

			var calendarNavSliderNode = $($(settings.selectorNav).find('.calendar_nav_slider')[0]);
			calendarNavSliderNode.append('<li id="calendar_year_'+year+'"><span class="calendar_year_label">'+year+'</span><ul class="calendar_month_list">'+monthList+'</ul></li>');
			
			var width = 0;
			$('#calendar_year_'+year+' a').each(function() {
				width += $(this).parent().outerWidth(); 
			})
			$('#calendar_year_'+year).width(width+2);
		}
		
		/**
		 * create a list width rows for the days in the given month and insert the events
		 */
		function _createMonthView(month, year) {
			var settings = _getSettings();
			var navNode = $(settings.selectorNav);

			var calendarListObj = $('.calendar_list:eq(0)');

			var daysInMonth = new Date(Number(year), Number(month), 0).getDate();

			var newContent = '<table id="calendar_view_'+month+'_'+year+'" class="calendar_view">';

			var tmpDate = new Date();
			tmpDate.setFullYear(Number(year), Number(month)-1, 1);
			var dayOfWeek = tmpDate.getDay();

			var dayLabels = _getTranslations('days');

			var eventsProcessed = 0;
			
			for ( var dayNo = 1; dayNo <= daysInMonth; dayNo++ ) {
				var rowClasses = new Array();
				var rowClassesStr = '';
				var highlighted = dayNo % 2; 
				if ( highlighted ) {
					rowClasses.push('highlighted'); 
				}
				
				if ( dayNo == 1 ) {
					rowClasses.push('first'); 
				}
				
				if ( dayNo == daysInMonth ) {
					rowClasses.push('last');
				}

				var dLabel = _specialSubstring(dayLabels[dayOfWeek] ,2);
				var eventsCode	= '';
				eventsProcessed = 0;

				$(settings.eventWrapperSelector+' .day_'+dayNo+'.month_'+month+'.year_'+year+', '+settings.eventWrapperSelector+' .until_date_'+dayNo+'_'+month+'_'+year).each(function() {
					var thisObj = $(this);
					var timeCode = thisObj.find('.evt_time').clone().wrap("<div></div>").parent().html();
					if ( timeCode == null ) { timeCode = '&nbsp;'; }

					var titleCode = thisObj.find('.content_event_head').clone().wrap("<div></div>").parent().html();
					if ( titleCode == null ) { titleCode = '&nbsp;'; }
					
					var descriptionCode = thisObj.find('.content_event_lead').clone().wrap("<div></div>").parent().html();
					if ( descriptionCode == null ) { descriptionCode = '&nbsp;'; }
					if (
							settings.hideDescriptionIfEqualsTitle == true &&
							descriptionCode.substring(descriptionCode.indexOf('>')) == titleCode.substring(titleCode.indexOf('>'))
					) { descriptionCode = ''; }	
					
					var locationCode = thisObj.find('.evt_location').clone().prepend('im ').wrap("<div></div>").parent().html();
					if ( locationCode == null ) { locationCode = '&nbsp;'; }
					
					var eventDetails = titleCode+' '+descriptionCode+'&nbsp;'+locationCode;
					eventDetails = '<a href="'+thisObj.attr('href')+'?date='+dayNo+'.'+month+'.'+year+'">'+eventDetails.split('<br>').join(' ')+'</a>';
					
					if ( eventsProcessed > 0 ) {
						if ( highlighted ) {
							eventsCode += '<tr class="highlighted"><td class="calendar_time">'+timeCode+'</td><td class="calendar_event_details">'+eventDetails+'</td></tr>';
						} else {
							eventsCode += '<tr><td class="calendar_time">'+timeCode+'</td><td class="calendar_event_details">'+eventDetails+'</td></tr>';
						}
					} else {
						eventsCode += '<td class="calendar_time">'+timeCode+'</td><td class="calendar_event_details">'+eventDetails+'</td>';
					}

					eventsProcessed++;
				});
				
				var rowSpan = '';
				if ( eventsProcessed > 1 ) {
					rowSpan = ' rowspan="'+eventsProcessed+'"';
				} else if ( eventsProcessed == 0 ) {
					eventsCode = '<td class="calendar_time">&nbsp;</td><td class="calendar_event_details">&nbsp;</td>';
				}

				if ( rowClasses.length > 0 ) {
					rowClassesStr = ' class="'+rowClasses.join(' ')+'"';
				}
				
				//newContent += '<tr'+rowClassesStr+'><td'+rowSpan+' class="calendar_day_no">'+dayNo+'</td><td'+rowSpan+' class="calendar_day">'+dLabel+'</td>'+eventsCode+'</tr>';
				newContent += '<tr'+rowClassesStr+'><td'+rowSpan+' class="calendar_day_no">'+dayNo+'</td><td'+rowSpan+' class="calendar_day">'+dLabel+'</td>'+eventsCode+'</tr>';
				if ( dayOfWeek == 6 ) {
					dayOfWeek = 0;
				} else {
					dayOfWeek++;
				}
			}

			newContent += '</ul>';
			calendarListObj.append(newContent);
			
			initEventFancybox('#calendar_view_'+month+'_'+year+' a');
			return true;
		}

		function _getClassDetails(classString) {
			var originalClassArray = classString.split(' ');
			var tmpClassArray = new Array();
			for ( var i in originalClassArray ) {
				if ( originalClassArray[i].length > 1 ) {
					var key = originalClassArray[i].substring(0, originalClassArray[i].lastIndexOf('_'));
					var val = originalClassArray[i].substring(originalClassArray[i].lastIndexOf('_') + 1);
					if ( key.length == 0 ) { key = val; }
					tmpClassArray[key] = val;
				}
			}
			return tmpClassArray;
		}
		
		function _specialSubstring(text, newLength) {
			var newText = '';
			var charCount = 0;
				
			while ( charCount < newLength && text.length != 0 ) {
				if ( text.substring(0, 1) != '&' ) {
					newText += text.substring(0, 1);
					text = text.substring(1);
					charCount++;
				} else {
					var charEnd = text.indexOf(';');
					var newChar = text.substring(0, charEnd+1);
					newText += newChar;
					text = text.substring(charEnd+1);
					charCount++;
				}
			}
			return newText;
		}

		// plugin defaults
		if ( $.fn.akmEvents.settings == undefined ) {
			$.fn.akmEvents.defaults = {
				maxYears:			6,
				selectorNav:		'.eventNav',
				selectorCalendarListWrapper: '.calendar_list_wrapper',
				eventSelector:		'a.popupEvent',
				eventWrapperSelector: '.eventWrapper',
				lang_de:			{
										'months': {0:'Januar', 1:'Februar', 2:'März', 3:'April', 4:'Mai', 5:'Juni', 6:'Juli', 7:'August', 8:'September', 9:'Oktober', 10:'November', 11:'Dezember'},
										'days': {0:'Sonntag', 1:'Montag', 2:'Dienstag', 3:'Mittwoch', 4:'Donnerstag', 5:'Freitag', 6:'Samstagd'}
									},
				lang_en:			{
										'months': {0:'January', 1:'February', 2:'March', 3:'April', 4:'May', 5:'June', 6:'July', 7:'August', 8:'September', 9:'October', 10:'November', 11:'December'},
										'days': {0:'Sonntag', 1:'Montag', 2:'Dienstag', 3:'Mittwoch', 4:'Donnerstag', 5:'Freitag', 6:'Samstage'}
									},
				lang_it:			{
										'months': {0:'Gennaio', 1:'Febbraio', 2:'Marzo', 3:'Aprile', 4:'Maggio', 5:'Giugno', 6:'Luglio', 7:'Agosto', 8:'Settembre', 9:'Ottobre', 10:'Novembre', 11:'Dicembre'},
										'days': {0:'Sonntag', 1:'Montag', 2:'Dienstag', 3:'Mittwoch', 4:'Donnerstag', 5:'Freitag', 6:'Samstagi'}
									},
				lang_fr:			{
										'months': {0:'Janvier', 1:'F&eacute;vrier', 2:'Mars', 3:'Avril', 4:'Mai', 5:'Juin', 6:'Juillet', 7:'Ao&ucirc;t', 8:'Septembre', 9:'Octobre', 10:'Novembre', 11:'D&eacute;cembre'},
										'days': {0:'Sonntag', 1:'Montag', 2:'Dienstag', 3:'Mittwoch', 4:'Donnerstag', 5:'Freitag', 6:'Samstagf'}
									},
				lang_ru:			{
										'months': {0:'&#1071;&#1085;&#1074;&#1072;&#1088;&#1103;', 1:'&#1060;&#1077;&#1074;&#1088;&#1072;&#1083;&#1100;', 2:'&#1052;&#1072;&#1088;&#1090;&#1072;', 3:'&#1040;&#1087;&#1088;&#1077;&#1083;&#1100;', 4:'&#1052;&#1072;&#1081;', 5:'&#1048;&#1102;&#1085;&#1103;', 6:'&#1048;&#1102;&#1083;&#1103;', 7:'&#1040;&#1074;&#1075;&#1091;&#1089;&#1090;', 8:'&#1057;&#1077;&#1085;&#1090;&#1103;&#1073;&#1088;&#1100;', 9:'&#1054;&#1082;&#1090;&#1103;&#1073;&#1088;&#1100;', 10:'&#1053;&#1086;&#1103;&#1073;&#1088;&#1100;', 11:'&#1044;&#1077;&#1082;&#1072;&#1073;&#1088;&#1100;'},
										'days': {0:'Sonntag', 1:'Montag', 2:'Dienstag', 3:'Mittwoch', 4:'Donnerstag', 5:'Freitag', 6:'Samstagr'}
									},
				hideDescriptionIfEqualsTitle: true
			};

			$.fn.akmEvents.settings = $.fn.akmEvents.defaults;
		}
		
		init();
	}
})(jQuery);




/**
 * @author robertr
 */
if ( typeof window.dumplog != 'function' ) {
	function dumplog(variable){
		if (window.console !== undefined) {
			console.log(variable);
		}
	}
	dumplog('dumplog aktiviert');
}
/*
 * ajaxForm
 */
var ajaxFormSettings = {
						'initParameter': {
											0: {
													'selector': 'h1',
													'dataFrom': 'html',
													'queryField':	'event'
											},
											1: {
												'selector': function(parameterDetails) {
																var pos = document.location.search.lastIndexOf(parameterDetails.dataFrom+'=');
																if ( pos > 0 ) {
																	var search = document.location.search.substring(pos).split('&');
																	if ( search.length > 0 ) {
																		dateParts = search[0].split('=');
																		return dateParts[1];
																	} else {
																		return '';
																	}
																} else {
																	return '';
																}
												},
												'dataFrom': 'date',
												'queryField':	'date'
											}
						},
						'afterInit':	function() {
													initCorners();
						}
};
function initAjaxForm() {
	var ajaxFormWrappers = $('.ajaxForm .formContent:not(.init)');

	if ( window['ajaxFormSettings'] == undefined ) {
		window.ajaxFormSettings = {'initParameter': {}, 'afterInit': null};
	}

	if  ( ajaxFormWrappers.length > 0 ) {
		ajaxFormWrappers.each(function(formNo, formContentEl) {
			var jFormAreaEl = $(formContentEl);
			
			if ( jFormAreaEl.find('a[rel=form]').length == 1) {
				jFormAreaEl.addClass('init');
				var formUrl = jFormAreaEl.find('a[rel=form]').attr('href');
				if (formUrl != undefined && formUrl != '') {
					formData = {};

					if ( typeof window.ajaxFormSettings.initParameter == 'object' ) {
						for ( var i in window.ajaxFormSettings.initParameter ) {
							var curParam = window.ajaxFormSettings.initParameter[i];
							var curData = '';
							
							if ( typeof curParam.selector == 'function' ) {
								curData = curParam.selector(curParam);
							} else {
								var curElement = $(curParam.selector);
								if ( typeof curParam.dataFrom == 'function' ) {
									curData = curParam.dataFrom(curData);
								} else {
									switch ( curParam.dataFrom ) {
										case 'class':
										case 'id':
												curData = curElement.attr(curParam.dataFrom);
											break;
										case 'html':
												curData = curElement.html();
											break;
									}
								}
							}
	
							formData[curParam.queryField] = curData;
						}
					}

					formData.ajax = 1;

					$.ajax({
						method: 'get',
						url: formUrl,
						data: formData,
						beforeSend: function(){
							jFormAreaEl.find('*').remove();
							jFormAreaEl.append('<div class="loading">&nbsp;</div>');
						},
						complete: function(){
							jFormAreaEl.find('.loading').fadeOut("fast", function(){
								$(this).remove();
							});
							if ( typeof window.ajaxFormSettings.afterInit == 'function' ) {
								window.ajaxFormSettings.afterInit();
							}
						}, //stop showing loading when the process is complete
						success: function(html){ //so, if data is retrieved, store it in html
							if (html.indexOf('</html>') == -1) {
								jFormAreaEl.hide().html(html).slideDown(2000);
								var formAction = jFormAreaEl.find('form').attr('action');
								if ( formAction == '' || formAction.substr(0,1) == '/' || formAction.indexOf(window.location.protocol+'//'+window.location.hostname) === 0 ) {
									dumplog('redefine onsubmit');
									jFormAreaEl.find('form').unbind('submit').bind('submit', function(){ executeAjaxForm(this); return false; })
								}
							}
						}
					}); //close $.ajax(
					dumplog('initAjaxForm: init a ajax form complete ('+formUrl+')');
				}
			} else if ( jFormAreaEl.find('form').length == 1) {
				jFormAreaEl.addClass('init');
				var formAction = jFormAreaEl.find('form').attr('action');
				if ( formAction == '' || formAction.substr(0,1) == '/' || formAction.indexOf(window.location.protocol+'//'+window.location.hostname) === 0 ) {
					dumplog('redefine onsubmit');
					jFormAreaEl.find('form').unbind('submit').bind('submit', function(){ dumplog(this); executeAjaxForm(this); return false; })
				}
				dumplog('initAjaxForm: configure a existing form ('+formAction+')');
			} else {
				dumplog('initAjaxForm: detect a invalid form');
				dumplog(formUrl);
			}
		});
	} else {
		dumplog('initAjaxForm: no ajax forms where found');
	}
	dumplog('initAjaxForm: complete');
}

function executeAjaxForm(formElement) {
	dumplog('executeAjaxForm: enter');
	var jFormEl = $(formElement);
	var jFormAreaEl = $(formElement).parents('.formContent');
	var formUrl = formElement.action;
	
	if (formUrl != undefined && formUrl != '') {
		var dataString = '';
		
		for(i=0; i < formElement.elements.length; i++) {
			var field = formElement.elements[i];
			switch (field.tagName) {
				case 'INPUT':
						if ( field.type == 'text' || field.type == 'password' || field.type == 'hidden' ) {
							dataString += '&'+field.name+'='+escape(field.value);
						}
					break;
				case 'SELECT':
						dataString += '&'+field.name+'='+escape(field.value);
					break;
				case 'TEXTAREA':
					dataString += '&'+field.name+'='+escape(field.value);
				break;
			}
		}

		var formMethod = formElement.method.toLowerCase() == 'post' ? 'POST' : 'GET';
		dumplog(formMethod);
		
		$.ajax({
			type: formMethod,
			url: formUrl,
			data: 'ajax=1'+dataString,
			beforeSend: function(){
				jFormAreaEl.append('<div class="loading">&nbsp;</div>');
			},
			complete: function(){
				jFormAreaEl.find('.loading').fadeOut("fast", function(){
					$(this).remove();
				});
			}, //stop showing loading when the process is complete
			success: function(html){ //so, if data is retrieved, store it in html
				if (html.indexOf('</html>') == -1) {
					dumplog('replace content inside the form area');
					dumplog(jFormAreaEl);
					jFormAreaEl.html(html);
					jFormAreaEl.removeClass('init');
					initAjaxForm();
				}
			}
		}); //close $.ajax(
	}
	dumplog('executeAjaxForm: complete');	
}
