// JavaScript Document
var jpopup_timeout = null;
(function($){
	$.fn.jpopup = function(options){
		var opts = $.extend({},$.fn.jpopup.defaults,options);
		return this.each(function(){
			if(jpopup_timeout){
				clearTimeout(jpopup_timeout);
				jpopup_timeout = null;
			}
			if(!$('#jpopup_message').length){
	
				$('body').append("<div class='error hidden w300' id='jpopup_message'>" +
								 	"<div class='headerIcon'></div>"+
									"<div class='jpopup_cross' onclick='$(\"#jpopup_message\").hide();' id='jpopup_close'></div>"+
										"<h1 id='jpopup_title'>Title</h1>" +
										"<p id='jpopup_content'>Content</p>" +
									"<div id='jpopup_arrow' class='jpopup_arrow jpopup_bottom'></div>" +
								"</div>");
			}
			$('#jpopup_message').css({position: 'absolute' });			
			$('#jpopup_message').stop();
			$('#jpopup_message #jpopup_title').html(opts.title);
			$('#jpopup_message #jpopup_content').html(opts.message);
			$('#jpopup_arrow').removeClass('jpopup_top').removeClass('jpopuparrow_bottom').removeClass('jpopuparrow_left').removeClass('jpopuparrow_right');
			$('#jpopup_arrow').addClass('jpopuparrow_'+opts.align);
			$('#jpopup_message').css({top:-2000,zIndex: opts.zIndex}).show();
			var popwidth	= $('#jpopup_message').outerWidth(); 
			var popheight	= $('#jpopup_message').outerHeight();
			var arrowheight = $('.jpopup_arrow').outerHeight();
			$('#jpopup_message').hide();
			var offset 	= $(this).offset();
			var width		= $(this).outerWidth();
			var height		= $(this).outerHeight();
			switch(opts.align){
				case 'top' :
					var tp	= Number(offset.top)+Number(height)+16;
					var lft = offset.left+((width-popwidth)/2);
					$('#jpopup_message').css({top:tp-20,left:lft,opacity: 0}).show();
					$('#jpopup_message').animate({
						top: tp,
						opacity: 1
					},300,'swing');
				break;
				case 'bottom':
					var tp	= offset.top-popheight-16;
					var lft =  offset.left+((width-popwidth)/2);
					$('#jpopup_message').css({top:tp+20,left:lft,opacity: 0}).show();
					$('#jpopup_message').animate({
						top: tp,
						opacity: 1
					},300,'swing');
					
				break;
				case 'left':
					var tp	= Number(offset.top)+Math.round(height/2)-parseInt(popheight/2);
					var lft =  Number(offset.left)+Number(width)+Number(16);
					$('.jpopup_arrow').css({top: Math.round(popheight/2)-Math.round(arrowheight/2)}); 
					
					$('#jpopup_message').css({top:tp,left:lft-20,opacity: 0}).show();
					$('#jpopup_message').animate({
						left: lft,
						opacity: 1
					},300,'swing');
				break;
				case 'right':
					var lft =  Number(offset.left)-Number(popwidth)-16;
					var tp	= Number(offset.top)+Math.round(height/2)-parseInt(popheight/2);
					$('.jpopup_arrow').css({top: Math.round(popheight/2)-Math.round(arrowheight/2)}); 
					
					$('#jpopup_message').css({top:tp,left: lft+20,opacity: 0}).show();
					$('#jpopup_message').animate({
						left: lft,
						opacity: 1
					},300,'swing');
				break;
				default:
					var tp	= offset.top-20;
					var lft =  offset.left+width+24;
					
					$('#jpopup_message').css({top:tp,left:lft-20,opacity: 0}).show();
					$('#jpopup_message').animate({
						left: lft,
						opacity: 1
					},300,'swing');
				break;
			}
			if(opts.decay)jpopup_timeout = setTimeout("$('#jpopup_message').fadeOut('slow')",opts.decay);
		});
	}
	$.fn.jpopup.defaults = {
		align:			'left',
		decay:			null,
		zIndex:			100000
	};
})(jQuery);
