// Apprise 1.5 by Daniel Raftery
// http://thrivingkings.com/appri...
//
// Button text added by Adam Bezulski
//
//
(function($) {
	$.fn.confirmOnClick = function(string, args)
	{
		if(!args) { args = {}; }
		args['confirm'] = true;
		$(this).appriseOnClick(string, args);
	}

	$.fn.appriseOnClick = function(string, args, callback)
	{
		$(this).click(function(e) {
	    		e.preventDefault();  // Don't follow href immediately.

			$(this).apprise(string, args, callback);
		});
	}

	$.fn.apprise = function(string, args, callback) // Anchor is passed as 'this'
	{
		var default_args =
			{
			'confirm'		:	false, 		// Ok and Cancel buttons
			'verify'		:	false,		// Yes and No buttons
			'input'			:	false, 		// Text input (can be true or string for default text)
			'animate'		:	200,		// Groovy animation (can true or number, default is 400)
			'textOk'		:	'Ok',		// Ok button default text
			'textCancel'	:	'Annulla',	// Cancel button default text
			'textYes'		:	'Si',		// Yes button default text
			'textNo'		:	'No'		// No button default text
			}
		
		if(args) 
			{
			for(var index in default_args) 
				{ if(typeof args[index] == "undefined") args[index] = default_args[index]; } 
			}

	    	var link = jQuery(this);

		
		var aHeight = jQuery(document).height();
		var aWidth = jQuery(document).width();
		jQuery('body').append('<div class="appriseOverlay" id="aOverlay"></div>');
		jQuery('.appriseOverlay').css('height', aHeight).css('width', aWidth).fadeIn(100);
		jQuery('body').append('<div class="appriseOuter"></div>');
		jQuery('.appriseOuter').append('<div class="appriseInner"></div>');
		jQuery('.appriseInner').append(string);
	    jQuery('.appriseOuter').css("left", ( jQuery(window).width() - jQuery('.appriseOuter').width() ) / 2+jQuery(window).scrollLeft() + "px");
	    
	    if(args)
			{
			if(args['animate'])
				{ 
				var aniSpeed = args['animate'];
				if(isNaN(aniSpeed)) { aniSpeed = 400; }
				jQuery('.appriseOuter').css('top', '-200px').show().animate({top:"100px"}, aniSpeed);
				}
			else
				{ jQuery('.appriseOuter').css('top', '100px').fadeIn(200); }
			}
		else
			{ jQuery('.appriseOuter').css('top', '100px').fadeIn(200); }
	    
	    if(args)
	    	{
	    	if(args['input'])
	    		{
	    		if(typeof(args['input'])=='string')
	    			{
	    			jQuery('.appriseInner').append('<div class="aInput"><input class="aTextbox" t="aTextbox" type="text" value="'+args['input']+'"></div>');
	    			}
	    		else
	    			{
					jQuery('.appriseInner').append('<div class="aInput"><input class="aTextbox" t="aTextbox" type="text"></div>');
					}
				jQuery('.aTextbox').focus();
	    		}
	    	}
	    
	    jQuery('.appriseInner').append('<div class="aButtons"></div>');
	    if(args)
	    	{
			if(args['confirm'] || args['input'])
				{ 
				jQuery('.aButtons').append('<button value="ok" class="button green"><span>'+args['textOk']+'</span></button>');
				jQuery('.aButtons').append('<button value="cancel" class="button gray"><span>'+args['textCancel']+'</span></button>'); 
				}
			else if(args['verify'])
				{
				jQuery('.aButtons').append('<button value="ok" class="button green"><span>'+args['textYes']+'</span></button>');
				jQuery('.aButtons').append('<button value="cancel" class="button red"><span>'+args['textNo']+'</span></button>');
				}
			else
				{ jQuery('.aButtons').append('<button value="ok" class="button green"><span>'+args['textOk']+'</span></button>'); }
			}
	    else
	    	{ jQuery('.aButtons').append('<button value="ok" class="button green"><span>Ok</span></button>'); }
		
		jQuery(document).keydown(function(e) 
			{
			if(jQuery('.appriseOverlay').is(':visible'))
				{
				if(e.keyCode == 13) 
					{ jQuery('.aButtons > button[value="ok"]').click(); }
				if(e.keyCode == 27) 
					{ jQuery('.aButtons > button[value="cancel"]').click(); }
				}
			});
		
		var aText = jQuery('.aTextbox').val();
		if(!aText) { aText = false; }
		jQuery('.aTextbox').keyup(function()
	    	{ aText = jQuery(this).val(); });


	    jQuery('.aButtons > button').click(function()
	    	{
	    		jQuery('.appriseOverlay').remove();
			jQuery('.appriseOuter').remove();
			var wButton = jQuery(this).attr("value");
		    	if(callback)
		    	{
					if(wButton=='ok')
						{ 
						if(args)
							{
							if(args['input'])
								{ callback(aText); }
							else
								{ callback(true); }
							}
						else
							{ callback(true); }
						}
					else if(wButton=='cancel')
						{ callback(false); }
			} else { // Follow href link if there as default.
				if(wButton=='ok')
				{
					if(jQuery(link).attr('href'))
					{
						location.href = jQuery(link).attr('href');
					}
				}
			}
		});
	}
})(jQuery);
