jQuery(document).ready(function() {
    jQuery('#display_cart').jcarousel({
        vertical: true,
        scroll: 2
    });
});
$(function() {
	
	$('a#joinhelp').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250
	});	
	
	$('#meberon a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250
	});	
	
	$('.left-detail-img a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250
	});
	 
	$('#seezainoproduct a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250
	});

	$('.left-img a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250
	});

	$('#gozaino a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	$('.paymentbtn a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	$('#checkoutitem a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	$('.whenwereceipt a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	$('#feature-zproduct a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	$('.video li a').tooltip({
		track: true,
		delay: 0,
		showURL: false,
		showBody: " - ",
		fade: 250

	});
	


	$("select").tooltip({
		left: 35
	});
	 

	});


/*!
 * jCarousel - Riding carousels with jQuery
 *   http://sorgalla.com/jcarousel/
 *
 * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Built on top of the jQuery library
 *   http://jquery.com
 *
 * Inspired by the "Carousel Component" by Bill Scott
 *   http://billwscott.com/carousel/
 */

(function($){$.fn.jcarousel=function(o){if(typeof o=='string'){
	var instance=$(this).data('jcarousel'),args=Array.prototype.slice.call(arguments,1);
	return instance[o].apply(instance,args);}
	else
		return this.each(function(){
	$(this).data('jcarousel',new $jc(this,o));});};
	var defaults={vertical:false,start:1,offset:1,size:null,scroll:3,visible:null,
			animation:'normal',easing:'swing',auto:0,wrap:null,initCallback:null,
			reloadCallback:null,
			itemLoadCallback:null,
			itemFirstInCallback:null,
			itemFirstOutCallback:null,
			itemLastInCallback:null,
			itemLastOutCallback:null,
			itemVisibleInCallback:null,
			itemVisibleOutCallback:null,
			buttonNextHTML:'<div></div>',
			buttonPrevHTML:'<div></div>',
			buttonNextEvent:'click',
			buttonPrevEvent:'click',
			buttonNextCallback:null,
			buttonPrevCallback:null};
	$.jcarousel=function(e,o){
		this.options=$.extend({},defaults,o||{});
		this.locked=false;this.container=null;
		this.clip=null;this.list=null;
		this.buttonNext=null;
		this.buttonPrev=null;
		this.wh=!this.options.vertical?'width':'height';
		this.lt=!this.options.vertical?'left':'top';
		var skin='',split=e.className.split(' ');
		for(var i=0;i<split.length;i++){
			if(split[i].indexOf('jcarousel-skin')!=-1){
				$(e).removeClass(split[i]);skin=split[i];break;}}
		if(e.nodeName=='UL'||e.nodeName=='OL'){
			this.list=$(e);this.container=this.list.parent();
			if(this.container.hasClass('jcarousel-clip')){
				if(!this.container.parent().hasClass('jcarousel-container'))
					this.container=this.container.wrap('<div></div>');
				this.container=this.container.parent();}
			else if(!this.container.hasClass('jcarousel-container'))
				this.container=this.list.wrap('<div></div>').parent();}
		else{this.container=$(e);
		this.list=this.container.find('ul,ol').eq(0);}
		if(skin!=''&&this.container.parent()[0].className.indexOf('jcarousel-skin')==-1)
			this.container.wrap('<div class=" '+skin+'"></div>');
		this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass('jcarousel-clip'))
			this.clip=this.list.wrap('<div></div>').parent();this.buttonNext=$('.jcarousel-next',this.container);if(this.buttonNext.size()==0&&this.options.buttonNextHTML!=null)this.buttonNext=this.clip.after(this.options.buttonNextHTML).next();this.buttonNext.addClass(this.className('jcarousel-next'));this.buttonPrev=$('.jcarousel-prev',this.container);if(this.buttonPrev.size()==0&&this.options.buttonPrevHTML!=null)this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next();this.buttonPrev.addClass(this.className('jcarousel-prev'));this.clip.addClass(this.className('jcarousel-clip')).css({overflow:'hidden',position:'relative'});this.list.addClass(this.className('jcarousel-list')).css({overflow:'hidden',position:'relative',top:0,left:0,margin:0,padding:0});this.container.addClass(this.className('jcarousel-container')).css({position:'relative'});var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;var li=this.list.children('li');var self=this;if(li.size()>0){var wh=0,i=this.options.offset;li.each(function(){self.format(this,i++);wh+=self.dimension(this,di);});this.list.css(this.wh,wh+'px');if(!o||o.size===undefined)this.options.size=li.size();}this.container.css('display','block');this.buttonNext.css('display','block');this.buttonPrev.css('display','block');this.funcNext=function(){self.next();};this.funcPrev=function(){self.prev();};this.funcResize=function(){self.reload();};if(this.options.initCallback!=null)this.options.initCallback(this,'init');if($.browser.safari){this.buttons(false,false);$(window).bind('load.jcarousel',function(){self.setup();});}else
this.setup();};
var $jc=$.jcarousel;$jc.fn=$jc.prototype={jcarousel:'0.2.4'};
$jc.fn.extend=$jc.extend=$.extend;
$jc.fn.extend({setup:function(){
	this.first=null;this.last=null;
	this.prevFirst=null;this.prevLast=null;
	this.animating=false;this.timer=null;
	this.tail=null;this.inTail=false;
	if(this.locked)return;
	this.list.css(this.lt,this.pos(this.options.offset)+'px');
	var p=this.pos(this.options.start);
	this.prevFirst=this.prevLast=null;
	this.animate(p,false);$(window).unbind('resize.jcarousel',
			this.funcResize).bind('resize.jcarousel',this.funcResize);},reset:function(){
				this.list.empty();this.list.css(this.lt,'0px');this.list.css(this.wh,'10px');
				if(this.options.initCallback!=null)this.options.initCallback(this,'reset');
				this.setup();},
				reload:function(){if(this.tail!=null&&this.inTail)this.list.css(this.lt,
						$jc.intval(this.list.css(this.lt))+this.tail);
				this.tail=null;this.inTail=false;if(this.options.reloadCallback!=null)
					this.options.reloadCallback(this);
				if(this.options.visible!=null){var self=this;
				var di=Math.ceil(this.clipping()/this.options.visible),wh=0,lt=0;
				$('li',this.list).each(function(i){wh+=self.dimension(this,di);
				if(i+1<self.first)lt=wh;});this.list.css(this.wh,wh+'px');
				this.list.css(this.lt,-lt+'px');}this.scroll(this.first,false);},
				lock:function(){this.locked=true;this.buttons();},
				unlock:function(){this.locked=false;this.buttons();},
				size:function(s){if(s!=undefined){this.options.size=s;
				if(!this.locked)this.buttons();}return this.options.size;},has:function(i,i2)
				{if(i2==undefined||!i2)i2=i;
				if(this.options.size!==null&&i2>this.options.size)i2=this.options.size;
				for(var j=i;j<=i2;j++){var e=this.get(j);
				if(!e.length||e.hasClass('jcarousel-item-placeholder'))return false;}
				return true;},
				get:function(i){
					return $('.jcarousel-item-'+i,this.list);},
					add:function(i,s){var e=this.get(i),old=0,add=0;if(e.length==0){
						var c,e=this.create(i),j=$jc.intval(i);
						while(c=this.get(--j)){if(j<=0||c.length){
							j<=0?this.list.prepend(e):c.after(e);break;}}}else
old=this.dimension(e);e.removeClass(this.className('jcarousel-item-placeholder'));
typeof s=='string'?e.html(s):e.empty().append(s);
var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;
var wh=this.dimension(e,di)-old;
if(i>0&&i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-wh+'px');
this.list.css(this.wh,$jc.intval(this.list.css(this.wh))+wh+'px');return e;},
remove:function(i){var e=this.get(i);if(!e.length||(i>=this.first&&i<=this.last))
	return;var d=this.dimension(e);
	if(i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+d+'px');
	e.remove();this.list.css(this.wh,$jc.intval(this.list.css(this.wh))-d+'px');},
	next:function(){this.stopAuto();
	if(this.tail!=null&&!this.inTail)this.scrollTail(false);else
this.scroll(((this.options.wrap=='both'||this.options.wrap=='last')&&this.options.size!=null&&this.last==this.options.size)?1:this.first+this.options.scroll);},
prev:function(){this.stopAuto();if(this.tail!=null&&this.inTail)this.scrollTail(true);else
this.scroll(((this.options.wrap=='both'||this.options.wrap=='first')&&this.options.size!=null&&this.first==1)?this.options.size:this.first-this.options.scroll);},
scrollTail:function(b){if(this.locked||this.animating||!this.tail)return;var pos=$jc.intval(this.list.css(this.lt));
!b?pos-=this.tail:pos+=this.tail;this.inTail=!b;
this.prevFirst=this.first;this.prevLast=this.last;
this.animate(pos);},scroll:function(i,a){
	if(this.locked||this.animating)return;
	this.animate(this.pos(i),a);},pos:function(i){
		var pos=$jc.intval(this.list.css(this.lt));
		if(this.locked||this.animating)return pos;
		if(this.options.wrap!='circular')i=i<1?1:(this.options.size&&i>this.options.size?this.options.size:i);
		var back=this.first>i;var f=this.options.wrap!='circular'&&this.first<=1?1:this.first;var c=back?this.get(f):this.get(this.last);
		var j=back?f:f-1;var e=null,l=0,p=false,d=0,g;while(back?--j>=i:++j<i){e=this.get(j);
		p=!e.length;if(e.length==0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));
		c[back?'before':'after'](e);if(this.first!=null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){
			g=this.get(this.index(j));if(g.length)this.add(j,g.children().clone(true));}}
		c=e;d=this.dimension(e);
		if(p)l+=d;if(this.first!=null&&(this.options.wrap=='circular'||(j>=1&&(this.options.size==null||j<=this.options.size))))
			pos=back?pos+d:pos-d;}var clipping=this.clipping();
			var cache=[];
			var visible=0,j=i,v=0;var c=this.get(i-1);
			while(++visible){
				e=this.get(j);p=!e.length;if(e.length==0){
					e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));
					c.length==0?this.list.prepend(e):c[back?'before':'after'](e);
					if(this.first!=null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){
						g=this.get(this.index(j));if(g.length)this.add(j,g.find('>*').clone(true));}}c=e;
						var d=this.dimension(e);
						if(d==0){alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...');
						return 0;}if(this.options.wrap!='circular'&&this.options.size!==null&&j>this.options.size)cache.push(e);
						else if(p)l+=d;v+=d;if(v>=clipping)break;j++;}for(var x=0;x<cache.length;x++)cache[x].remove();
						if(l>0){this.list.css(this.wh,this.dimension(this.list)+l+'px');
						if(back){pos-=l;this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-l+'px');}}
						var last=i+visible-1;
						if(this.options.wrap!='circular'&&this.options.size&&last>this.options.size)last=this.options.size;
						if(j>last){visible=0,j=last,v=0;while(++visible){var e=this.get(j--);
						if(!e.length)break;v+=this.dimension(e);if(v>=clipping)break;}}var first=last-visible+1;
						if(this.options.wrap!='circular'&&first<1)first=1;
						if(this.inTail&&back){pos+=this.tail;this.inTail=false;}this.tail=null;
						if(this.options.wrap!='circular'&&last==this.options.size&&(last-visible+1)>=1){
							var m=$jc.margin(this.get(last),!this.options.vertical?'marginRight':'marginBottom');
							if((v-m)>clipping)this.tail=v-clipping-m;}while(i-->first)pos+=this.dimension(this.get(i));
							this.prevFirst=this.first;this.prevLast=this.last;
							this.first=first;this.last=last;return pos;},animate:function(p,a){
								if(this.locked||this.animating)return;this.animating=true;var self=this;var scrolled=function(){
									self.animating=false;if(p==0)self.list.css(self.lt,0);
									if(self.options.wrap=='circular'||self.options.wrap=='both'||self.options.wrap=='last'||
											self.options.size==null||self.last<self.options.size)self.startAuto();
									self.buttons();self.notify('onAfterAnimation');};this.notify('onBeforeAnimation');
									if(!this.options.animation||a==false){this.list.css(this.lt,p+'px');scrolled();}
									else{var o=!this.options.vertical?{'left':p}:{'top':p};this.list.animate(o,this.options.animation,this.options.easing,scrolled);}},startAuto:function(s){if(s!=undefined)this.options.auto=s;if(this.options.auto==0)return this.stopAuto();if(this.timer!=null)return;var self=this;this.timer=setTimeout(function(){self.next();},this.options.auto*1000);},stopAuto:function(){if(this.timer==null)return;clearTimeout(this.timer);this.timer=null;},buttons:function(n,p){if(n==undefined||n==null){var n=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='first')||this.options.size==null||this.last<this.options.size);if(!this.locked&&(!this.options.wrap||this.options.wrap=='first')&&this.options.size!=null&&this.last>=this.options.size)n=this.tail!=null&&!this.inTail;}if(p==undefined||p==null){var p=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='last')||this.first>1);if(!this.locked&&(!this.options.wrap||this.options.wrap=='last')&&this.options.size!=null&&this.first==1)p=this.tail!=null&&this.inTail;}var self=this;this.buttonNext[n?'bind':'unbind'](this.options.buttonNextEvent+'.jcarousel',this.funcNext)[n?'removeClass':'addClass'](this.className('jcarousel-next-disabled')).attr('disabled',n?false:true);this.buttonPrev[p?'bind':'unbind'](this.options.buttonPrevEvent+'.jcarousel',this.funcPrev)[p?'removeClass':'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled',p?false:true);if(this.buttonNext.length>0&&(this.buttonNext[0].jcarouselstate==undefined||this.buttonNext[0].jcarouselstate!=n)&&this.options.buttonNextCallback!=null){this.buttonNext.each(function(){self.options.buttonNextCallback(self,this,n);});this.buttonNext[0].jcarouselstate=n;}if(this.buttonPrev.length>0&&(this.buttonPrev[0].jcarouselstate==undefined||this.buttonPrev[0].jcarouselstate!=p)&&this.options.buttonPrevCallback!=null){this.buttonPrev.each(function(){self.options.buttonPrevCallback(self,this,p);});this.buttonPrev[0].jcarouselstate=p;}},notify:function(evt){var state=this.prevFirst==null?'init':(this.prevFirst<this.first?'next':'prev');this.callback('itemLoadCallback',evt,state);if(this.prevFirst!==this.first){this.callback('itemFirstInCallback',evt,state,this.first);this.callback('itemFirstOutCallback',evt,state,this.prevFirst);}if(this.prevLast!==this.last){this.callback('itemLastInCallback',evt,state,this.last);this.callback('itemLastOutCallback',evt,state,this.prevLast);}this.callback('itemVisibleInCallback',evt,state,this.first,this.last,this.prevFirst,this.prevLast);this.callback('itemVisibleOutCallback',evt,state,this.prevFirst,this.prevLast,this.first,this.last);},callback:function(cb,evt,state,i1,i2,i3,i4){if(this.options[cb]==undefined||(typeof this.options[cb]!='object'&&evt!='onAfterAnimation'))return;var callback=typeof this.options[cb]=='object'?this.options[cb][evt]:this.options[cb];if(!$.isFunction(callback))return;var self=this;if(i1===undefined)callback(self,state,evt);else if(i2===undefined)this.get(i1).each(function(){callback(self,this,i1,state,evt);});else{for(var i=i1;i<=i2;i++)if(i!==null&&!(i>=i3&&i<=i4))this.get(i).each(function(){callback(self,this,i,state,evt);});}},create:function(i){return this.format('<li></li>',i);},format:function(e,i){var $e=$(e).addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-'+i)).css({'float':'left','list-style':'none'});$e.attr('jcarouselindex',i);return $e;},className:function(c){return c+' '+c+(!this.options.vertical?'-horizontal':'-vertical');},dimension:function(e,d){var el=e.jquery!=undefined?e[0]:e;var old=!this.options.vertical?el.offsetWidth+$jc.margin(el,'marginLeft')+$jc.margin(el,'marginRight'):el.offsetHeight+$jc.margin(el,'marginTop')+$jc.margin(el,'marginBottom');if(d==undefined||old==d)return old;var w=!this.options.vertical?d-$jc.margin(el,'marginLeft')-$jc.margin(el,'marginRight'):d-$jc.margin(el,'marginTop')-$jc.margin(el,'marginBottom');$(el).css(this.wh,w+'px');return this.dimension(el);},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-$jc.intval(this.clip.css('borderLeftWidth'))-$jc.intval(this.clip.css('borderRightWidth')):this.clip[0].offsetHeight-$jc.intval(this.clip.css('borderTopWidth'))-$jc.intval(this.clip.css('borderBottomWidth'));},index:function(i,s){if(s==undefined)s=this.options.size;return Math.round((((i-1)/s)-Math.floor((i-1)/s))*s)+1;}});$jc.extend({defaults:function(d){return $.extend(defaults,d||{});},margin:function(e,p){if(!e)return 0;var el=e.jquery!=undefined?e[0]:e;if(p=='marginRight'&&$.browser.safari){var old={'display':'block','float':'none','width':'auto'},oWidth,oWidth2;$.swap(el,old,function(){oWidth=el.offsetWidth;});old['marginRight']=0;$.swap(el,old,function(){oWidth2=el.offsetWidth;});return oWidth2-oWidth;}return $jc.intval($.css(el,p));},intval:function(v){v=parseInt(v);
									return isNaN(v)?0:v;}});})(jQuery);




	/*
	 * jQuery Tooltip plugin 1.3
	 *
	 * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
	 * http://docs.jquery.com/Plugins/Tooltip
	 *
	 * Copyright (c) 2006 - 2008 Jörn Zaefferer
	 *
	 * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
	 * 
	 * Dual licensed under the MIT and GPL licenses:
	 *   http://www.opensource.org/licenses/mit-license.php
	 *   http://www.gnu.org/licenses/gpl.html
	 */
	 
	;(function($) {
		
			// the tooltip element
		var helper = {},
			// the current tooltipped element
			current,
			// the title of the current element, used for restoring
			title,
			// timeout id for delayed tooltips
			tID,
			// IE 5.5 or 6
			IE = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
			// flag for mouse tracking
			track = false;
		
		$.tooltip = {
			blocked: false,
			defaults: {
				delay: 200,
				fade: false,
				showURL: true,
				extraClass: "",
				top: 15,
				left: 15,
				id: "tooltip"
			},
			block: function() {
				$.tooltip.blocked = !$.tooltip.blocked;
			}
		};
		
		$.fn.extend({
			tooltip: function(settings) {
				settings = $.extend({}, $.tooltip.defaults, settings);
				createHelper(settings);
				return this.each(function() {
						$.data(this, "tooltip", settings);
						this.tOpacity = helper.parent.css("opacity");
						// copy tooltip into its own expando and remove the title
						this.tooltipText = this.title;
						$(this).removeAttr("title");
						// also remove alt attribute to prevent default tooltip in IE
						this.alt = "";
					})
					.mouseover(save)
					.mouseout(hide)
					.click(hide);
			},
			fixPNG: IE ? function() {
				return this.each(function () {
					var image = $(this).css('backgroundImage');
					if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
						image = RegExp.$1;
						$(this).css({
							'backgroundImage': 'none',
							'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
						}).each(function () {
							var position = $(this).css('position');
							if (position != 'absolute' && position != 'relative')
								$(this).css('position', 'relative');
						});
					}
				});
			} : function() { return this; },
			unfixPNG: IE ? function() {
				return this.each(function () {
					$(this).css({'filter': '', backgroundImage: ''});
				});
			} : function() { return this; },
			hideWhenEmpty: function() {
				return this.each(function() {
					$(this)[ $(this).html() ? "show" : "hide" ]();
				});
			},
			url: function() {
				return this.attr('href') || this.attr('src');
			}
		});
		
		function createHelper(settings) {
			// there can be only one tooltip helper
			if( helper.parent )
				return;
			// create the helper, h3 for title, div for url
			helper.parent = $('<div id="' + settings.id + '"><h3></h3><div class="body"></div><div class="url"></div></div>')
				// add to document
				.appendTo(document.body)
				// hide it at first
				.hide();
				
			// apply bgiframe if available
			if ( $.fn.bgiframe )
				helper.parent.bgiframe();
			
			// save references to title and url elements
			helper.title = $('h3', helper.parent);
			helper.body = $('div.body', helper.parent);
			helper.url = $('div.url', helper.parent);
		}
		
		function settings(element) {
			return $.data(element, "tooltip");
		}
		
		// main event handler to start showing tooltips
		function handle(event) {
			// show helper, either with timeout or on instant
			if( settings(this).delay )
				tID = setTimeout(show, settings(this).delay);
			else
				show();
			
			// if selected, update the helper position when the mouse moves
			track = !!settings(this).track;
			$(document.body).bind('mousemove', update);
				
			// update at least once
			update(event);
		}
		
		// save elements title before the tooltip is displayed
		function save() {
			// if this is the current source, or it has no title (occurs with click event), stop
			if ( $.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler) )
				return;

			// save current
			current = this;
			title = this.tooltipText;
			
			if ( settings(this).bodyHandler ) {
				helper.title.hide();
				var bodyContent = settings(this).bodyHandler.call(this);
				if (bodyContent.nodeType || bodyContent.jquery) {
					helper.body.empty().append(bodyContent)
				} else {
					helper.body.html( bodyContent );
				}
				helper.body.show();
			} else if ( settings(this).showBody ) {
				var parts = title.split(settings(this).showBody);
				helper.title.html(parts.shift()).show();
				helper.body.empty();
				for(var i = 0, part; (part = parts[i]); i++) {
					if(i > 0)
						helper.body.append("<br/>");
					helper.body.append(part);
				}
				helper.body.hideWhenEmpty();
			} else {
				helper.title.html(title).show();
				helper.body.hide();
			}
			
			// if element has href or src, add and show it, otherwise hide it
			if( settings(this).showURL && $(this).url() )
				helper.url.html( $(this).url().replace('http://', '') ).show();
			else 
				helper.url.hide();
			
			// add an optional class for this tip
			helper.parent.addClass(settings(this).extraClass);

			// fix PNG background for IE
			if (settings(this).fixPNG )
				helper.parent.fixPNG();
				
			handle.apply(this, arguments);
		}
		
		// delete timeout and show helper
		function show() {
			tID = null;
			if ((!IE || !$.fn.bgiframe) && settings(current).fade) {
				if (helper.parent.is(":animated"))
					helper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);
				else
					helper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);
			} else {
				helper.parent.show();
			}
			update();
		}
		
		/**
		 * callback for mousemove
		 * updates the helper position
		 * removes itself when no current element
		 */
		function update(event)	{
			if($.tooltip.blocked)
				return;
			
			if (event && event.target.tagName == "OPTION") {
				return;
			}
			
			// stop updating when tracking is disabled and the tooltip is visible
			if ( !track && helper.parent.is(":visible")) {
				$(document.body).unbind('mousemove', update)
			}
			
			// if no current element is available, remove this listener
			if( current == null ) {
				$(document.body).unbind('mousemove', update);
				return;	
			}
			
			// remove position helper classes
			helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");
			
			var left = helper.parent[0].offsetLeft;
			var top = helper.parent[0].offsetTop;
			if (event) {
				// position the helper 15 pixel to bottom right, starting from mouse position
				left = event.pageX + settings(current).left;
				top = event.pageY + settings(current).top;
				var right='auto';
				if (settings(current).positionLeft) {
					right = $(window).width() - left;
					left = 'auto';
				}
				helper.parent.css({
					left: left,
					right: right,
					top: top
				});
			}
			
			var v = viewport(),
				h = helper.parent[0];
			// check horizontal position
			if (v.x + v.cx < h.offsetLeft + h.offsetWidth) {
				left -= h.offsetWidth + 20 + settings(current).left;
				helper.parent.css({left: left + 'px'}).addClass("viewport-right");
			}
			// check vertical position
			if (v.y + v.cy < h.offsetTop + h.offsetHeight) {
				top -= h.offsetHeight + 20 + settings(current).top;
				helper.parent.css({top: top + 'px'}).addClass("viewport-bottom");
			}
		}
		
		function viewport() {
			return {
				x: $(window).scrollLeft(),
				y: $(window).scrollTop(),
				cx: $(window).width(),
				cy: $(window).height()
			};
		}
		
		// hide helper and restore added classes and the title
		function hide(event) {
			if($.tooltip.blocked)
				return;
			// clear timeout if possible
			if(tID)
				clearTimeout(tID);
			// no more current element
			current = null;
			
			var tsettings = settings(this);
			function complete() {
				helper.parent.removeClass( tsettings.extraClass ).hide().css("opacity", "");
			}
			if ((!IE || !$.fn.bgiframe) && tsettings.fade) {
				if (helper.parent.is(':animated'))
					helper.parent.stop().fadeTo(tsettings.fade, 0, complete);
				else
					helper.parent.stop().fadeOut(tsettings.fade, complete);
			} else
				complete();
			
			if( settings(this).fixPNG )
				helper.parent.unfixPNG();
		}
		
	})(jQuery);

