// JavaScript Document
jQuery.fn.jTooltip = function(options) {
	var options = jQuery.extend({
		type		: "fixed", 		// допустимые значения fixed, mousemove
		showSpeed	: 0,			// скорость проявления подсказки
		hideSpeed	: 0, 			// скорость исчезания подсказки
		classTip	: ".tip"		// определяется класс, который будет хранить подсказку
		}, options);

		jQuery(this).hover(function() {
						tip = jQuery(this).find(options.classTip); //Находим все определенные нами подсказки и заносим их в переменную
						tip.show(options.showSpeed); //Показываем подсказку при наведении
					},  
				   function() {
						tip.hide(options.hideSpeed); //Прячем подсказку при потери элементом наведения
					});
		
		if (options.type == "mousemove") {
			jQuery(this).mousemove(function(e) {
				var mouseX = e.pageX + 1000, //Получаем координаты по оси Х
					mouseY = e.pageY + 10, //Получаем координаты по оси Y
					tipWidth = tip.width(), //Получаем ширину подсказки
					tipHeight = tip.height(), //Получаем высоту подсказки
					tipVisX = jQuery(window).width() - (mouseX + tipWidth), //Дистанция от правого края ссылки на подсказку
					tipVisY = jQuery(window).height() - (mouseY + tipHeight); //Дистанция от нижнего края ссылки на подсказку
				
				//Определяем попадает ли подсказка в границы экрана, если нет, то смещаем ее относительно ее высоты и ширины.
				if (tipVisX < 500) {
					mouseX = e.pageX - tipWidth - 1000;
				}
				if (tipVisY < 10) {
					mouseY = e.pageY - tipHeight - 10;
				}
				//Абсолютное позиционирование подсказки в этой области нам поможет
				//мы можем динамически передавать атрибутам блока отступ с верху и с лева,
				//а так же желательно передать ширину полученной подсказки, чтобы не было проблем с отображением
				tip.css({ top : 10, center : 1, width : tipWidth});
			})
		}
}


