/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var eventscalendar = {}


eventscalendar.tipSetup = function(
	width,
	backgroundColor,
	borderColor,
	borderWidth,
	radius,
	padding,
	spikeLength,
	spikeGirth,
	shadow,
	shadowBlur,
	shadowOffsetX,
	shadowOffsetY,
	positions,
	fadeSpeed) {

	eventscalendar.tip = {

		width : width,
		backgroundColor : backgroundColor,
		borderColor : borderColor,
		borderWidth : borderWidth,
		radius : radius,
		padding : padding,
		spikeLength : spikeLength,
		spikeGirth : spikeGirth,
		shadow: shadow,
		shadowBlur: shadowBlur,
		shadowOffsetX: shadowOffsetX,
		shadowOffsetY: shadowOffsetY,
		positions: positions,
		fadeSpeed : fadeSpeed
	}

}

eventscalendar.addToolTipSelectorClass = function( element, className ) {
    jQuery( element ).addClass( className );
}

eventscalendar.removeToolTipSelectorClass = function( element, className ) {
    jQuery( element ).removeClass( className );
}

eventscalendar.processToolTip = function( toolTipID ) {

	try {

		jQuery( '#idMenu' + toolTipID ).bt({

			    shadow: eventscalendar.tip.shadow,
			    shadowBlur: eventscalendar.tip.shadowBlur,
			    shadowOffsetX: eventscalendar.tip.shadowOffsetX,
			    shadowOffsetY: eventscalendar.tip.shadowOffsetY,
				positions: eventscalendar.tip.positions,
				cssClass: 'eventscalendar-tip eventscalendar-tip-id-' + toolTipID ,
				trigger : 'none',
				contentSelector : 'jQuery( "#toolTipIdMenu' + toolTipID + '").html()',
				padding: eventscalendar.tip.padding,
				width: eventscalendar.tip.width,
				spikeLength: eventscalendar.tip.spikeLength,
				spikeGirth: eventscalendar.tip.spikeGirth,
				cornerRadius: eventscalendar.tip.radius,
				fill: eventscalendar.tip.backgroundColor,
				strokeWidth: eventscalendar.tip.borderWidth,
				strokeStyle: eventscalendar.tip.borderColor,
				showTip: function(box){
					jQuery(box).fadeIn(eventscalendar.tip.fadeSpeed);
				},
				hideTip: function(box, callback){
					callback();
				},
				shrinkToFit: true,
				hoverIntentOpts: {
					interval: 0,
					timeout: 0
				}

		});

		jQuery( '#idMenu' + toolTipID ).mouseover( function( event ) {

			event.preventDefault();
			var currentSelectStarter = this;
			eventscalendar.addToolTipSelectorClass( currentSelectStarter, 'eventscalendar-tip-selector' );


			jQuery( '#idMenu' + toolTipID ).btOn();

			jQuery( '.eventscalendar-tip-id-' + toolTipID ).bind( 'mouseleave', function( event ) {

				event.preventDefault();
				jQuery( '#idMenu' + toolTipID ).btOff();
				eventscalendar.removeToolTipSelectorClass( currentSelectStarter, 'eventscalendar-tip-selector' );

			});

			jQuery( '#idMenu' + toolTipID ).mouseout( function( event ) {

				event.preventDefault();

				var checkTo = 'not_defined';
				if ( typeof event.toElement !== "undefined" ) {
				    checkTo = event.toElement.tagName ;
				}  else if ( typeof event.relatedTarget !== "undefined" ) {
				    checkTo = event.relatedTarget.localName;
				}

				try {
				    if ( checkTo !== 'canvas' && checkTo !== 'CANVAS' &&  checkTo !== 'shape' ) {

					jQuery( '#idMenu' + toolTipID ).btOff();
					eventscalendar.removeToolTipSelectorClass( currentSelectStarter, 'eventscalendar-tip-selector' );

				    }
				} catch(e) {}

			} );


		} );

	} catch( e ) {}
}
