<!--
	(function ($) {
		$.fn.MGHintBox = function (options) {
			return this.each(function () {

				var self = this;
				var settings = {
					self					: $(this),
					shadowWidth		: 0,
					pos						: { trg : ['right', 'top'], box : ['left', 'top'] },
					offset				: [0, 0],
					hideTimeout		: 500,
					showDelay		: 1000,
					zIndex				: $(this).css('z-index') == parseInt($(this).css('z-index'), 10) ? parseInt($(this).css('z-index')) : 0,
					closeButton		: '.hb-close'
				};

				// If options exist, merge them with default settings
				if ( options )
					$.extend( settings, options );
				if ((settings.pos.trg[0] == '' || settings.pos.trg[0] == 'mouse') && (options.offset == undefined || options.offset[0] == undefined)) { settings.offset[0] = 10; }
				if ((settings.pos.trg[1] == '' || settings.pos.trg[1] == 'mouse') && (options.offset == undefined || options.offset[1] == undefined)) { settings.offset[1] = 10; }

				if ($.inArray(settings.pos.h, $(['left', 'center', 'right'])) < 0 && isNaN(parseInt(settings.pos.h, 10))) { settings.pos.h = ''; }
				if ($.inArray(settings.pos.v, $(['top', 'center', 'bottom'])) < 0 && isNaN(parseInt(settings.pos.v, 10))) { settings.pos.v = ''; }

				var pLink = $(this);
				var hb = $(pLink.attr('href'));
				var hbw = hb.parents('.hb-wrapper');
				if (hbw.length < 1) {
					var hbi = $('<div/>').addClass('hb-inner').css({ position : 'relative', opacity : 0, display : 'none' });
					var hbs;
					hbw = $('<div/>').addClass('hb-wrapper').css({ position : 'absolute' });
					if (parseInt(settings.shadowWidth, 10) > 0) {
						var sw = settings.shadowWidth;
						var sImg = 'iVBORw0KGgoAAAANSUhEUgAAASkAAAHyCAYAAAC3YDhuAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX'
										 + '4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6'
										 + 'cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZ'
										 + 'ftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABY9JREFUeNrs2bGOgzAQRdEH8f9/cYK3WECDkzQrxZviHGlkRVBRXA1kSbLk17sT4NPWJP3VtBKkY1aRAibre3P6eKENcTqmRgvg04HqJVTbPmekUiLVXsQK4NOR2srcS7TOTaqGqSW52aSAyZvUYw/U5ftUKzcesbrtY5MCZm5S2c9Ld+o3qaWEyeseMDNSR6Cevomvng/wBZa8+cNOpICvJlKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSHgEgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBSBSgEgBiBQgUgAiBSBSgEgBiBQgUgAiBSBSgEgBiBQg'
										 + 'UgAiBSBSgEgBiBQgUgAiBSBSgEgBiBSASAEiBSBSgEgBiBSASAEiBSBSgEgBiBSASAEiBSBSgEgBiBSASAEiBSBSgEgBiBSASAEiBSBSACIFiBSASAEiBSBSACIFiBSASAEiBSBSACIFiBSASAEiBSBSACIFiBSASAEiBSBSACIFiBSASAGIFCBSACIFiBSASAGIFCBSACIFiBSASAGIFCBSACIFiBSASAGIFCBSACIFiBSASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIeQSASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFCBSACIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFKASAGIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIASIFIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgWIFIBIAYgUIFIAIgUgUoBIAYgUIFIAIgU'
										 + 'gUoBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUIFIAIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUoBIAYgUgEgBIgUgUgAiBYgUgEgBIgUgUgAiBYgUgEgBIgUgUgAiBYgUgEgBIgUgUgAiBYgUgEgBIgUgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBYgUgEgBiBQgUgAiBSBSgEgBiBQgUgAiBSBSgEgBiBQgUgAiBSBSgEgB/FEf5tSGC1s5k2Tx7IAJgdqG84xVe3HjY/+9iRQwcYt6lEg9bVJHkLYk9/1cRQqYuEmNc9mkegnUEadFpICJm1QfA1U3qQzvghEoYHKoxg71JL0NN4gU8J+RGs9LiEQJ+LZo5WcANaBj1aL4k9gAAAAASUVORK5CYII=';

						hbs = $('<div/>').addClass('hb-shadow').addClass('hb-inner').css({
							'behavior'							: 'url(border-radius.htc)',
							'-moz-border-radius'		: sw,
							'-webkit-border-radius' : sw,
							'-khtml-border-radius'	: sw,
							'border-radius'					: sw,
							'padding'								: '0 ' + sw + ' ' + sw + ' 0',
							'background'						: 'none no-repeat right bottom transparent',
							'background-image'			: 'url("data:image/png;base64,' + sImg + '")',
							'opacity'								: 1,
							'position'							: 'absolute',
							'right'									: (parseInt(sw, 10) * -1) + 'px',
							'bottom'								: (parseInt(sw, 10) * -1) + 'px',
							'display'								: 'block',
							'width'									: hb.width() - parseInt(sw, 10),
							'height'								: hb.height() - parseInt(sw, 10)
						});
					}
					hb.before(hbw);
					if (hbs) {
						hbw.append(hbi.append(hbs).append(hb));
					} else {
						hbw.append(hbi.append(hb));
					}
					hb.css({ position : 'relative', opacity : 1, display : 'block' });
				}
				var hb = hb.parents('.hb-inner');

				pLink.bind('mouseenter', function(e) {
                    pLink.data('toid',
                        setTimeout(function() {
					        if (!hbw.is(':visible')) {
						        hb.css({ opacity : 0, display : 'block' });
						        var p = getPos(settings.pos, settings.offset, e);
						        hbw.css({ left : p.left, top: p.top });
					        }
					        hb.trigger('show');
                        }, settings.showDelay)
                    );
				}).bind('mouseleave', function(e) {
					hb.trigger('starthide');
				}).bind('mousemove', function(e) {
					var p = getPos(settings.pos, settings.offset, e);
					hbw.stop(true, false).animate({ left: p.left, top: p.top }, 'fast');
				}).bind('click', function() {
					return false;
				});

				hbw.bind('mouseenter', function() {
					hb.trigger('show');
				}).bind('mouseleave', function() {
					hb.trigger('starthide');
				}).bind('click', function(e) {
					e.stopPropagation();
				});
				
				hb.bind('starthide', function() {
                    clearTimeout(pLink.data('toid'));
					hb.css({ 'z-index' : settings.zIndex });
					hb.trigger('stophide')
					  .data('toid', setTimeout(function(){ hb.trigger('hide'); }, settings.hideTimeout));

				}).bind('stophide', function() {
					clearTimeout(hb.data('toid'));

				}).bind('hide', function() {
					hb.trigger('stophide')
					  .stop(true, false)
					  .animate({ opacity : 0 }, function() { hb.css({ display : 'none' }); });
					$(document).unbind('click', globalClick);

				}).bind('show', function() {
					$(document).unbind('click', globalClick).bind('click', globalClick);
					hb.trigger('stophide')
					  .stop(true, false)
					  .css({ display : 'block', 'z-index' : settings.zIndex + 1 })
					  .animate({ opacity : 1 });
				});

				$(settings.closeButton, hb).bind('click', function() {
					hb.trigger('hide');
					return false;
				});

				function globalClick() {
					hb.trigger('hide');
				}

				function getPos(p, o, e) {
					var h1 = $(p.trg)[0].length < 1 ? 'mouse' : $(p.trg)[0];
					var v1 = $(p.trg)[1].length < 1 ? 'mouse' : $(p.trg)[1];
					var h2 = $(p.box)[0];
					var v2 = $(p.box)[1];

					var tX, tY, bX, bY;

					// get trg pos
					switch(h1) {
						case 'mouse':
							tX = e.clientX;
							break;
						case 'left':
							tX = pLink.offset().left;
							break;
						case 'right':
							tX = pLink.offset().left + pLink.outerWidth(false);
							break;
						case 'center':
							tX = pLink.offset().left + Math.floor(pLink.outerWidth(false) / 2);
							break;
						default:
							if (h1.indexOf('%') > -1)
								tX = pLink.offset().left + Math.floor(pLink.outerWidth(false) * parseInt(h1, 10) / 100);
							else
								tX = parseInt(h1);
							break;
					}

					switch(v1) {
						case 'mouse':
							tY = e.clientY;
							break;
						case 'top':
							tY = pLink.offset().top;
							break;
						case 'bottom':
							tY = pLink.offset().top + pLink.outerHeight(false);
							break;
						case 'center':
							tY = pLink.offset().top + Math.floor(pLink.outerHeight(false) / 2);
							break;
						default:
							if (v1.indexOf('%') > -1)
								tY = pLink.offset().top + Math.floor(pLink.outerHeight(false) * parseInt(v1, 10) / 100);
							else
								tY = parseInt(v1);
							break;
					}

					// get box pos
					switch(h2) {
						case 'left':
							break;
						case 'right':
							tX -= hbw.outerWidth(false);
							break;
						case 'center':
							tX -= Math.floor(hbw.outerWidth(false) / 2);
							break;
						default:
							if (h2.indexOf('%') > -1)
								tX = Math.floor(hbw.outerWidth(false) * parseInt(h2, 10) / 100);
							else
								tX = parseInt(h2);
							break;
					}

					switch(v2) {
						case 'top':
							break;
						case 'bottom':
							tY = hbw.outerHeight(false);
							break;
						case 'center':
							tY -= Math.floor(hbw.outerHeight(false) / 2);
							break;
						default:
							if (v2.indexOf('%') > -1)
								tY = Math.floor(hbw.outerHeight(false) * parseInt(v2, 10) / 100);
							else
								tY = parseInt(v2);
							break;
					}

					tX += parseInt(settings.offset[0]);
					tY += parseInt(settings.offset[1]);

					if (!$.browser.msie || ($.browser.msie && parseInt(!$.browser.version, 10) > 6)) {
						tX = Math.min($(window).width() + $(window).scrollLeft() - (hbw.outerWidth(true) + parseInt(settings.shadowWidth, 10)), tX); // off the right of screen
						tX = Math.max($(window).scrollLeft(), tX); // off the left of screen
						tY = Math.min($(window).height() + $(window).scrollTop() - (hbw.outerHeight(true) + parseInt(settings.shadowWidth, 10)), tY); // off the bottom of screen
						tY = Math.max($(window).scrollTop(), tY); // off the top of screen
					}

					return { left : tX, top : tY };
				}
			});

		};
	})(jQuery);
//-->

