(function ($) {
	$.fn.data = function( key, value ){
		var parts = key.split(".");
		parts[1] = parts[1] ? "." + parts[1] : "";

		if ( value == null ) {
			var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
			
			if ( data == undefined && this.length )
				data = jQuery.data( this[0], key );

			return data == null && parts[1] ?
				this.data( parts[0] ) :
				data;
		} else
			return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
				jQuery.data( this, key, value );
			});
	},
	$.fn.tooltip = function (options) {
		var that = this;
		$('body').append("<div id='whiteout"+options.name+"' style=\"z-index: 61000; position: absolute; width: 100%; height: 100%; top: 0; left: 0; bottom: 0; right: 0; background: #fff; display: none;\">&nbsp;</div>" + 
			"<div id='player"+options.name+"' style=\"z-index: 61050; position: absolute; width: 500px; padding: 10px; display: none; background: #fff; border: 2px #ccc solid;\">" + 
			"<a href=\"#\" class=\"close\" style=\"border: 0; float: right; text-decoration: underline; color: #275F88; font-size: 14px; font-weight:bold; padding: 10px 10px 0 10px; margin: -10px 0 0 0; background: none;\">x</a>" + 
			"<h2 class=\"dragme\" style=\"font-size: 16px; margin: 0 0 20px 0; padding: 0; border-bottom: 1px dotted #D3D3D3; color: #275F88;\">"+options.title+"</h2>" + 
			"<div id=\"playerSwfCont"+options.name+"\"></div></div>");
		$("#player"+options.name).data("drag", "off");
	
		$(this).click(function () {
			$("#player"+options.name).css('display', 'block');
			$("#playerSwfCont"+options.name).html("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\""+options.width+"\" height=\""+options.height+"\">" + 
				"<param name=\"movie\" value=\""+options.video+"\" />" + 
				"<param name=\"quality\" value=\"high\" />" + 
				"<param name=\"allowScriptAccess\" value=\"sameDomain\" />" + 
				"<param name=\"allowFullScreen\" value=\"false\" />" + 				
				"<embed src=\""+options.video+"\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\""+options.width+"\" height=\""+options.height+"\"></embed></object>");
			$("#whiteout"+options.name).css({
				'opacity': .8,
				'display': 'block'
			});
			if (!$("#player"+options.name).data("offsetx")) {
				$("#player"+options.name).css('left', $('#content').offset().left+(($('#content').width()/2)-($("#player"+options.name).width()/2)));
				$("#player"+options.name).css('top', ($('#whiteout'+options.name).height()/2)-($('#player'+options.name).height()/2));
				$("#player"+options.name).css('left', ($("#player"+options.name).offset().left));
				if ($("#player"+options.name).offset().top >= 0 && $("#player"+options.name).offset().top < ($("body").height()-$("#player"+options.name).height())) {
					$("#player"+options.name).css('top', ($("#player"+options.name).offset().top));
				} else if ($("#player"+options.name).offset().top < 0) {
					$("#player"+options.name).css('top', 0);
				} else {
					$("#player"+options.name).css('top', $("body").height()-$("#player"+options.name).height());
				}
				$("#player"+options.name).data("offsety", $("#player"+options.name).offset().top);
				$("#player"+options.name).data("offsetx", $("#player"+options.name).offset().left - $("#content").offset().left);
			} else {
				$("#player"+options.name).css('left', $('#content').offset().left+$("#player"+options.name).data("offsetx"));
				$("#player"+options.name).css('top', $("#player"+options.name).data("offsety"));
			}
			$("#whiteout"+options.name).css({
				'height': $('body').height()
			});
		});
		
		$("#player"+options.name+" .close").click(function () {
			$("#player"+options.name).css("display", "none");
			$("#whiteout"+options.name).css("display", "none");
			$("#playerSwfCont"+options.name).html("");
			return false;
		});
	
		// Setup a function for click on the dragme part of the script.
		$('#player'+options.name+' .dragme').mousedown(function (e) {
			$("#player"+options.name).data("x", e.pageX);
			$("#player"+options.name).data("y", e.pageY);
			$("#player"+options.name).data("drag", "on");
		});
		$("body").mouseup(function (e) {
			$("#player"+options.name).data("drag", "off");
		});
		
		$("body").mousemove(function (e) {
			if ($("#player"+options.name).data("drag") == "on") {
				var left = e.pageX - $("#player"+options.name).data("x");
				var top = e.pageY - $("#player"+options.name).data("y");
				$("#player"+options.name).css('left', ($("#player"+options.name).offset().left + left) + "px");
				$("#player"+options.name).css('top', ($("#player"+options.name).offset().top + top) + "px");
				$("#player"+options.name).data("x", e.pageX);
				$("#player"+options.name).data("y", e.pageY);
				$("#player"+options.name).data("offsetx", $("#player"+options.name).offset().left-$('#content').offset().left);
				$("#player"+options.name).data("offsety", $("#player"+options.name).offset().top);
			}
		});
		
		$(window).wresize(function () {
			if ($("#player"+options.name).css('display') == "block") {
				$(that).click();
			}
		});
	}
})(jQuery);
