/*
*** (C) 2009 UCMai.com ***

Subj:
Auth: yangjun
Date:
*/


(function ($) {
	$.fn.tip = function (options) {
		this.hover(function(){JT_show(this,options.width,options.content,options.url,options.title)},function(){$('#JT').remove()})
	}
	function JT_show(element,width,content,url,title){
		title = title || '&nbsp';
		var de = document.documentElement;
		var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
		var hasArea = w - getAbsoluteLeft(element);
		var clickElementy = getAbsoluteTop(element) - 3; //set y position
		if(width === undefined){width = 250};
		if(hasArea>((width*1)+75)){
			$("body").append("<div id='JT' style='width:"+width*1+"px'><div id='JT_arrow_left'></div><div id='JT_close_left'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
			var arrowOffset = element.offsetWidth + 11;
			var clickElementx = getAbsoluteLeft(element) + arrowOffset; //set x position
		}else{
			$("body").append("<div id='JT' style='width:"+width*1+"px'><div id='JT_arrow_right' style='left:"+((width*1)+1)+"px'></div><div id='JT_close_right'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//left side
			var clickElementx = getAbsoluteLeft(element) - ((width*1) + 15); //set x position
		}
		$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
		$('#JT').show();
		if(content) {
			$('#JT_copy').html(content);
		}
		else{
			if($(element).data('jtdata')) {
				$('#JT_copy').html($(element).data('jtdata'));
			}
			else{
				$.get(url,function (data) {
					$('#JT_copy').html(data);
					$(element).data('jtdata',data);
				});
			}
		}


	}
	function getAbsoluteLeft(element) {
		// Get an object left position from the upper left viewport corner
		oLeft = element.offsetLeft            // Get left position from the parent object
		while(element.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
			oParent = element.offsetParent    // Get parent object reference
			oLeft += oParent.offsetLeft // Add parent left position
			element = oParent
		}
		return oLeft
	}

	function getAbsoluteTop(element) {
		oTop = element.offsetTop            // Get top position from the parent object
		while(element.offsetParent!=null) { // Parse the parent hierarchy up to the document element
			oParent = element.offsetParent  // Get parent object reference
			oTop += oParent.offsetTop // Add parent top position
			element = oParent
		}
		return oTop
	}

})(jQuery)