jQuery.fn.tips = function(options) {
	var tip = jQuery(this);
	
	obj = tip.attr('content')?tip.attr('content'):'';

	
	type = tip.attr('type')?tip.attr('type'):'';
	if(obj == null) return;
	var settings = {
        obj		: obj,
		content	:'',
		type	: type
	};
	var o_tip = '';

    if(options) {
       jQuery.extend(settings, options);
    };

	
	
	try{
		var _container = $(window);	
		var w = _container.width();
		var h = _container.height();
	}catch(e){
		tip.each(function(i){
			if(this.parentNode.nodeName=='A'){
				$(this).removeClass('helptip');
			}
		});
		return;
	}	
	
	tip.each(function(i){
		if(this.parentNode.nodeName=='A'){
			$(this).removeClass('helptip');
		}else{
			$(this).mouseover(function(e){event.show(e,this);})
			$(this).mousemove(function(e){event.move(e,this);})
			$(this).mouseout(function(){event.hide();});
		}
	});
		
	var event = {
		make: function(){
			if(document.getElementById('js_tip')) return;
			$('body').prepend('<div id="js_tip" style="z-index:1010;position:absolute;top:0px;left:0px;visibility:hidden;">'+
			'<table class="js_tip_table" cellpadding="0" cellspacing="0" border="0">'+
			'<tr>'+
				'<td class="js_tip_clt"><img src="/i/trans.gif" alt="" width="20" height="30" /></td>'+
				'<td id="js_tip_lt" class="js_tip_lt">'+
					'<div id="js_tip_top" class="js_tip_top"></div>'+
				'</td>'+
				'<td class="js_tip_crt"><img src="/i/trans.gif" alt="" width="20" height="30" /></td>'+
			'</tr>'+
			'<tr>'+
				'<td class="js_tip_ll"><img src="/i/trans.gif" alt="" width="20" height="1" /></td>'+
				'<td><div id="js_tip_content" style="background:#fff;">dfdsfs daf sdaf <br />dfsdfdasfasdf<br />dfsdfsdafadsf<br/></div></td>'+
				'<td class="js_tip_lr"><img src="/i/trans.gif" alt="" width="20" height="1" /></td>'+
			'</tr>'+
			'<tr>'+
				'<td class="js_tip_clb"><img src="/i/trans.gif" alt="" width="20" height="30" /></td>'+
				'<td id="js_tip_lb" class="js_tip_lb">'+
					'<div id="js_tip_bottom" class="js_tip_bottom"></div>'+
				'</td>'+
				'<td class="js_tip_crb"><img src="/i/trans.gif" alt="" width="20" height="30" /></td>'+
			'</tr>'+
			'</table>'+
			'</div>');
			
			$(document.getElementById('js_tip')).css({'display':'none','visibility':'visible'});
		},
		show: function(e,el){
			o_tip = $(document.getElementById('js_tip'));
			document.getElementById('js_tip_content').innerHTML = document.getElementById(settings.obj).innerHTML;
			o_tip.css('display','block');
			event.pos(o_tip,e.pageX,e.pageY);
			$('#js_tip').pngFix();
		},
		move: function(e,el){
			if(settings.type!='under'){
				event.pos(o_tip,e.pageX,e.pageY);
			}else{
				var o = tip.offset();
				event.pos(o_tip,o.left+o.scrollLeft+tip.width()/2,o.top+o.scrollTop);
			}
			
		},
		hide: function() {
			o_tip.css('display','none');
		},
		pos: function(o,x,y){
			var sw = _container.scrollLeft();
			var sh = _container.scrollTop();
			
			var oh = $(o).height();
			var ow = $(o).width();
			
			if(x+ow>w+sw) a_x = 'right';
			else if(x-ow<0) a_x = 'left'
			else a_x = 'center';
				
			if(y-oh-sh<=0) a_y = 'top'; else a_y = 'bottom';

			switch (a_y) {
				case 'bottom': y -= (oh+10); 
					document.getElementById('js_tip_bottom').style.display='block';
					document.getElementById('js_tip_top').style.display='none';
					var obj = $(document.getElementById('js_tip_lb'));
					break;
				case 'top': y += 20; 
					document.getElementById('js_tip_bottom').style.display='none';
					document.getElementById('js_tip_top').style.display='block';
					var obj = $(document.getElementById('js_tip_lt'));
				break;
			}
			switch (a_x) {
				case 'center': 	x -= ow/2;	obj.attr('align','center');  break;
				case 'right': 	x -= (ow-50); obj.attr('align','right'); break;
				case 'left': 	x -= 40;	obj.attr('align','left'); 	 break;
			}
			$(document.getElementById('js_tip')).css({left:x+'px',top:y+'px'});			
		}		
	}        
	event.make();
	return(this);
}