



var sscal = {



	hoverStateHolderTimer:[],




	monthOffset: 0,




	pageId: 0,




	calendars: "",




	init: function() {

		sscal.initAjaxButtons();
		sscal.initDayButtons();

	},




	initAjaxButtons: function() {

		jQuery('.tx-sscal-pi1').each(function(piKey, piDomObject) {

			jQuery(piDomObject).find('.sscal-headline-monthselector-another-month, .sscal-monthindicator').each(function(buttonKey, buttonDomObject) {

				var offset = sscal.monthOffset;
				if (jQuery(buttonDomObject).hasClass('sscal-headline-monthselector-previous-month')) {
					offset--;
				}
				else if (jQuery(buttonDomObject).hasClass('sscal-headline-monthselector-next-month')) {
					offset++;
				}
				else {
					offset = 0;
				}
				jQuery(buttonDomObject).click(function() {

					jQuery(piDomObject).addClass('sscal-loading');

					jQuery.getJSON(
						'?eID=sscal',
						{
							id: sscal.pageId,
							calendars: sscal.calendars,
							monthOffset: offset
						},
						function(data) {

							sscal.monthOffset = data.monthOffset;
							jQuery(piDomObject).html(data.content);
							jQuery(piDomObject).removeClass('sscal-loading');
							sscal.init();
						}
					);

				});
			});

		});

	},




	initDayButtons: function() {

		var hoverStateHolderTimer = {};

		jQuery('.sscal-daybutton').each(function(buttonKey, buttonDomObject) {
			jQuery(buttonDomObject).find('.sscal-tooltip').each(function(tooltipKey, tooltipDomObject){

				var counter = sscal.hoverStateHolderTimer.length;

				var cssOutConfig = {
					width: jQuery(tooltipDomObject).width(),
					height: jQuery(tooltipDomObject).height(),
					marginLeft: jQuery(tooltipDomObject).css('marginLeft'),
					opacity: 1
				};
				var cssInConfig = {
					width: 0,
					height: 0,
					marginLeft: 0,
					opacity: 0
				}

				sscal.hoverStateHolderTimer[counter] = -1;

				jQuery(tooltipDomObject).css(cssInConfig);

				jQuery(buttonDomObject).hover(function() {
					sscal.hoverOut(jQuery(tooltipDomObject), cssInConfig, cssOutConfig, counter);
				}, function() {
					sscal.hoverIn(jQuery(tooltipDomObject), cssInConfig, cssOutConfig, counter);
				});

			});
		});

	},




	hoverOut: function(tooltipDomObject, cssInConfig, cssOutConfig, counter) {

		window.clearTimeout(sscal.hoverStateHolderTimer[counter]);

		sscal.hoverStateHolderTimer[counter] = window.setTimeout(function() {
			tooltipDomObject
				.animate(
					cssOutConfig,
					400
				)
				.css({
					display: 'block'
				})
			;
		}, 500);

	},




	hoverIn: function(tooltipDomObject, cssInConfig, cssOutConfig, counter) {

		window.clearTimeout(sscal.hoverStateHolderTimer[counter]);

		sscal.hoverStateHolderTimer[counter] = window.setTimeout(function() {
			tooltipDomObject.animate(
				cssInConfig,
				400,
				function() {
					tooltipDomObject.css({
						display: 'none'
					})
				}
			);
		}, 500);

	}




};




jQuery(document).ready(sscal.init);





