function getElementPos(elementId) {
	var ua = navigator.userAgent.toLowerCase();
	var isOpera = (ua.indexOf('opera') != -1);
	var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
	var el = document.getElementById(elementId);
	if (el.parentNode === null || el.style.display == 'none') {
		return false;
	}
	var parent = null;
	var pos = [];
	var box;
	if (el.getBoundingClientRect) // IE
	{
		box = el.getBoundingClientRect();
		var scrollTop = Math.max(document.documentElement.scrollTop,
				document.body.scrollTop);
		var scrollLeft = Math.max(document.documentElement.scrollLeft,
				document.body.scrollLeft);
		return {
			x : box.left + scrollLeft,
			y : box.top + scrollTop
		};
	} else if (document.getBoxObjectFor) // gecko
	{
		box = document.getBoxObjectFor(el);
		var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth)
				: 0;
		var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth)
				: 0;
		pos = [ box.x - borderLeft, box.y - borderTop ];
	} else // safari & opera
	{
		pos = [ el.offsetLeft, el.offsetTop ];
		parent = el.offsetParent;
		if (parent != el) {
			while (parent) {
				pos[0] += parent.offsetLeft;
				pos[1] += parent.offsetTop;
				parent = parent.offsetParent;
			}
		}
		if (ua.indexOf('opera') != -1
				|| (ua.indexOf('safari') != -1 && el.style.position == 'absolute')) {
			pos[0] -= document.body.offsetLeft;
			pos[1] -= document.body.offsetTop;
		}
	}
	if (el.parentNode) {
		parent = el.parentNode;
	} else {
		parent = null;
	}
	while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account
																				// for
																				// any
																				// scrolled
																				// ancestors
		pos[0] -= parent.scrollLeft;
		pos[1] -= parent.scrollTop;
		if (parent.parentNode) {
			parent = parent.parentNode;
		} else {
			parent = null;
		}
	}
	return {
		x : pos[0],
		y : pos[1]
	};
}

(function($) {
	$.fn.tip = function(opt) {
		var options = $.extend( {}, $.fn.tip.defaults, opt || {});
		init(options);
		this.mouseover(function(e) {
			// $(this).attr('y')
			this.selftip = this.title;
			this.title = "";
			if (this.selftip != "")
				showTip(e, this.selftip, options.opacity);
		}).mouseout(function() {
			this.title = this.selftip;
			tipdiv.hide().children(":first").html("");
		}).mousemove(function(e) {
			showTip(e);
		});
	};

	$.fn.tip.defaults = {
		maxwidth : 300, // 最大宽度
		opacity : 0.8, // 透明度
		background : "#006CDB", // 背景样式
		border : "#FEFFD4 solid 1px", // 边框样式
		contentcolor : "#FFFFFE", // 正文色
		font : "12px verdana,arial,sans-serif" // 字体样式
	};

	var tipdiv = null;

	function showTip(evt, selftip, opacity) {
		if (selftip) {// 仅用于over方法
			tipdiv.children(":first").html(selftip);
			tipdiv.css( {
				"opacity" : opacity,
				"top" : (evt.pageY + 20) + "px",
				"left" : (evt.pageX + 10) + "px"
			}).show();
		} else {
			tipdiv.css( {
				"top" : (evt.pageY + 20) + "px",
				"left" : (evt.pageX + 10) + "px"
			});
		}
	}

	function init(options) {
		var tipobj = $("#jq_bbf_tipdiv");
		if (tipobj.length == 0) {
			tipobj = [];
			tipobj
					.push("<div id=\"jq_bbf_tipdiv\" style=\"display:none;position:absolute;z-index:1000;max-width:");
			tipobj.push(options.maxwidth);
			tipobj.push("px;background:");
			tipobj.push(options.background);
			tipobj.push(";width:auto!important;width:auto;border:");
			tipobj.push(options.border);
			tipobj
					.push(";text-align:left;padding:3px;\"><p style=\"margin:0;padding:0;color:");
			tipobj.push(options.contentcolor);
			tipobj.push(";font:");
			tipobj.push(options.font);
			tipobj.push(";\"></p></div>");
			tipobj = $(tipobj.join("")).appendTo("body");
		}
		tipdiv = tipobj;
		tipobj = null;
	}
	;
})(jQuery);