;(function($) {

	$.tooltip = {
		defaults: {
			title:'',
			text:'',
			url:'',
			urlText:'',
			width:300,
			x:'',
			y:'',
			top:'',
			id:'',
			docClick:true,
			timeoutStatus:true,
			timeout:15000,
			closeButton:true,
			timescookie:3,
			daycookie:1,
			position:'',
			up:true
		}
	}

	$.fn.extend({
	
	
		tooltip: function(settings){	
			return this.each(function() {					  
				// define ID
				settings = $.extend({}, $.tooltip.defaults, settings);
				if(settings.id == '') settings.id = this.id;
				if(settings.id == '') settings.id = 'box';				
				settings.id = "tooltip_"+settings.id;
				
				// read cookie
				cookie = ($.cookie(settings.id) != null)?$.cookie(settings.id):0;
				if(cookie >= settings.timescookie){
					return false;	
				}
				
				// calculate width
				width = (settings.width	<500)?settings.width:500;				
				width = (width <120)?120:width;				
				
				// calculate position
				offset = $(this).offset();
				if(settings.position == 'left'){
						x = offset.left;
				} else if (settings.position == 'right'){
					x = offset.left+$(this).width()-60;	
				} else if (settings.position > -1 && settings.position != ''){
					x = offset.left+parseInt(settings.position);
				} else {
					x = offset.left+($(this).width()/2)-60;
					if(x<offset.left) x = offset.left;			
				}
				y = offset.top+$(this).height()+1;
				if(settings.top != '') y = parseInt(offset.top)+$(this).height()+parseInt(settings.top);
				x = (settings.x != '')?settings.x:x;
				y = (settings.x != '')?settings.y:y;								
				
				//create tooltip
				tooltip = document.createElement('div');
				tooltip.id = settings.id;
				urlText = (settings.urlText != '')?settings.urlText:settings.url;
				url = (settings.url != '')?'<div><a href="'+settings.url+'">'+urlText+'</a></div>':'';
				text = '<div style="font-family:Arial, Helvetica, sans-serif;font-size:12px;width:'+width+'px"><div style="height:33px;background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/top_right.png\') top right no-repeat;padding-right:20px;"><div style="height:33px;background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/top_left.png\') top left no-repeat;"></div></div><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/body_right.png\') top right repeat-y;padding-right:20px;"><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/body.png\') top left repeat-y;padding:0 5px 0 15px;" id="test1"><strong>'+settings.title+'</strong><div>'+settings.text+'</div>'+url+'</div>	</div>	<div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/bottom_right.png\') bottom right no-repeat;padding-right:20px;height:13px;font-size:1px;"><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/bottom_left.png\') bottom left no-repeat;height:13px;font-size:1px;"></div>	</div></div>';
				if(settings.up){
					text = '<div style="font-family:Arial, Helvetica, sans-serif;font-size:12px;width:'+width+'px"><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/up_bottom_right.png\') bottom right no-repeat;padding-right:20px;height:13px;font-size:1px;"><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/up_bottom_left.png\') bottom left no-repeat;height:13px;font-size:1px;"></div>	</div><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/body_right.png\') top right repeat-y;padding-right:20px;"><div style="background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/body.png\') top left repeat-y;padding:0 5px 0 15px;" id="test1"><strong>'+settings.title+'</strong><div>'+settings.text+'</div>'+url+'</div>	</div>	<div style="height:33px;background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/up_top_right.png\') top right no-repeat;padding-right:20px;"><div style="height:33px;background:url(\'http://media.tiscali.co.uk/images/gfx/scripts/tooltip/up_top_left.png\') top left no-repeat;"></div></div></div>';
				}
				
				// replace png images for IE6			
				var IE = $.browser.msie;// && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
				if(IE){
					text = text.replace(/png/gi,"gif");
				}			
				$(tooltip).html(text);
				$(tooltip).css({width:width,position:'absolute',top:y,left:x,display:'none','z-index':1000, background:'transparent'});		
				$(tooltip).appendTo($('body'));

				// change top position if tooltip is UP
				if(settings.up){
					y = offset.top-$(tooltip).height()-settings.top;						
					$(tooltip).css({top:y});						
				}

				// set close button
				if(settings.closeButton){
					linx = document.createElement('a');
					$(linx).attr('rel','close');
					linx.href = "#";
					linx_top = 27;
					if(settings.up){
						linx_top=11;
					}
					$(linx).css({
						position:'absolute',
						right:9,
						top:linx_top,
						width:18,
						height:18,
						background:'url(http://media.tiscali.co.uk/images/gfx/scripts/tooltip/close_up.gif) no-repeat center center'
					});
									
					$(linx).click(function(){
						$("#"+settings.id).fadeOut('fast');
						return false;
					});
					$(linx).appendTo(tooltip);
				}
				//end close button
				
				//if click anywhere before show the tooltip, clear timeout
				$('body').click(function(){
					clearTimeout(timer);
				 });
				
				// if click anywhere after the tooltip is shown, hide the tooltip
				if(settings.docClick){
					$('body').click(function(){
						$("#"+settings.id).fadeOut('fast');
					});	
					$("#"+settings.id).click(function(){
						return false;
					});
					$("#"+settings.id+" a").click(function(){
						if($(this).attr('rel') != 'close')
							location.href = this.href;
					});					
				}
				
				// hide tooltip after settings.timeout microseconds
				if(settings.timeoutStatus){
					setTimeout("$('#"+settings.id+"').fadeOut('fast');",parseInt(settings.timeout)+2000);
				}
				
				//setup cookie and show tooltip
				timer = setTimeout("$.cookie('"+settings.id+"','"+(parseInt(cookie)+1)+"',{expires:"+settings.daycookie+" ,path: '/'});$('#"+settings.id+"').fadeIn();",1000);
			});
		}			
	});
	
	
})(jQuery);
