
jQuery.extend({	
	prompt: function(m,o){
		if(o == undefined) o = {};
		if(o.prefix == undefined) o.prefix = 'jqi';
		if(o.buttons == undefined) o.buttons = { Ok : true };
		if(o.callback == undefined) o.callback = function(){};
		if(o.container == undefined) o.container = 'body';
		if(o.opacity == undefined) o.opacity = 0.6;
		
		var ie6 = ($.browser.msie && $.browser.version < 7);	
		var b = $(o.container);		
		var fade = '<div class="'+ o.prefix +'fade" id="'+ o.prefix +'fade"></div>';
		var msgbox = '<div class="'+ o.prefix +'" id="'+ o.prefix +'"><div class="'+ o.prefix +'container"><div class="'+ o.prefix +'message">'+ m +'</div><div class="'+ o.prefix +'buttons" id="'+ o.prefix +'buttons">';
		for(var i in o.buttons) msgbox += '<button name="'+ o.prefix +'button'+ i +'" id="'+ o.prefix +'button'+ i +'" value="'+ o.buttons[i] +'">'+ i +'</button>';
		msgbox += '</div></div></div>';
		
		var jqi = b.prepend(msgbox).children('#'+ o.prefix);
		var jqif = b.prepend(fade).children('#'+ o.prefix +'fade');
				
		if(ie6) b.css({ overflow: "hidden" }).find("select").css({ visibility: "hidden" });
		jqif.css({ height: b.height(), width: b.width(), position: "absolute", top: 0, left: 0, right: 0, bottom: 0, zIndex: 998, display: "none", opacity: o.opacity });
		jqi.css({ position: (ie6)? "absolute" : "fixed", top: "30%", left: "50%", display: "none", zIndex: 999, marginLeft: ((((jqi.css("paddingLeft").split("px")[0]*1) + jqi.width())/2)*-1) });
		
		$('#'+ o.prefix +'buttons').children('button').click(function(){ 
			var msg = jqi.children('.'+ o.prefix +'container').children('.'+ o.prefix +'message');
			var clicked = o.buttons[$(this).text()];			
			jqi.remove(); 
			jqif.fadeOut("slow",function(){
				jqif.remove();
				if(ie6) b.css({ overflow: "auto" }).find("select").css({ visibility: "visible" });//ie6
				o.callback(clicked,msg);
			});
		});
		
		jqif.fadeIn("slow");
		jqi.fadeIn("fast");		
		return jqi;	
	}	
});
