audi_ngw.namespace(audi_ngw, 'tooltip');

audi_ngw.tooltip.show = function($element){

	var text = $element.attr('alt');
	var metadata = $element.metadata();
	if( 'undefined' !== metadata.tooltip ) {
		text = metadata.tooltip;
	}
	
	if( !text ) {
		return false;
	}
	 
	// X- und Y-Koordinaten des Cursor ermitteln
	var offset = $element.offset();
	
	var left = offset.left - 10 + $element.width(); //event.pageX + 10;
	var top = offset.top + 10 - $element.height(); //event.pageY + 10;
 
	// ein DIV fÃ¼r den Tooltip erstellen
	jQuery('body').append('<div id="audi_tooltip">' + text + '<span /></div>');
 
	// das erstellte DIV mit CSS positionieren
	jQuery('#audi_tooltip').css('left', left).css('top', top);
    
};


audi_ngw.tooltip.hide = function(){
	jQuery('#audi_tooltip').remove();
};

/**
 * Custom Event: wil be fired as soon as we injected the xhr-snippet 
 * @param {Object} event
 * @param {Object} data {sId: new HTML parent Id}
 */
audi_ngw.tooltip.onAjaxSnippetReady = function(event, data){
 	
	var $scope = jQuery(data.sId);

	audi_ngw.tooltip.initiate($scope);
	
	// trigger event 
	audi_ngw.event.trigger('ajaxSnippetPrepared');
};

/**
 * Custom Event: wil be fired as soon as we injected the xhr-snippet 
 * @param {Object} event
 * @param {Object} data {sId: new HTML parent Id}
 */
audi_ngw.tooltip.onAjaxModalContentReady = function(event, data){
 	
	var $scope = jQuery('#'+audi_ngw.url.getContentId());
	
	//audi_ngw.log("-> "+audi_ngw.event.ajaxModalContentReadyCount+" EVENT - ajaxModalContentReady:audi_ngw.tooltip.onAjaxModalContentReady",arguments);
	
	audi_ngw.tooltip.initiate($scope);
	
	// trigger event 
	audi_ngw.event.trigger('ajaxModalContentPrepared');
};


audi_ngw.tooltip.initiate = function($scope){


	jQuery('.audi_tooltip', $scope).unbind('hover').hover(function(){
		audi_ngw.tooltip.show(jQuery(this));
		
	}, function(){
		audi_ngw.tooltip.hide();
	});
	
	/* new tooltips */
	var intervalHandle;
	jQuery('.adviceTooltipJs', $scope).removeClass('adviceTooltipJs');
	jQuery('.adviceTooltip', $scope).hover(function(event){
				
		jQuery(this).addClass('adviceTooltipHover').find('.adviceContainer').fadeIn(250, function(){
			if( !jQuery(this).parent().hasClass('adviceTooltipHover') ) {
				jQuery(this).hide();
			} 
		});
	}, function(){

		jQuery(this).removeClass('adviceTooltipHover');
		intervalHandle = window.setInterval(function(){
			jQuery('.adviceTooltip').not('.adviceTooltipHover').find('.adviceContainer').hide();
			window.clearInterval(intervalHandle);
		}, 1000);

	});
};

audi_ngw.tooltip.prepare = function(){
	audi_ngw.event.bind('ajaxSnippetReady', audi_ngw.tooltip.onAjaxSnippetReady);
	audi_ngw.event.bind('ajaxModalContentReady.tooltip',audi_ngw.tooltip.onAjaxModalContentReady);
	
	audi_ngw.tooltip.initiate(jQuery('body'));
};
