jQuery.extend({ImpromptuDefaults:{prefix:"jqi",buttons:{Ok:true},loaded:function(){},submit:function(){return true},callback:function(){},opacity:0.6,zIndex:999,overlayspeed:"slow",promptspeed:"fast",show:"fadeIn",focus:0,useiframe:false,top:"15%",persistent:true},ImpromptuStateDefaults:{html:"",buttons:{Ok:true},focus:0,submit:function(){return true}},SetImpromptuDefaults:function(a){jQuery.ImpromptuDefaults=jQuery.extend({},jQuery.ImpromptuDefaults,a)},SetImpromptuStateDefaults:function(a){jQuery.ImpromptuStateDefaults=jQuery.extend({},jQuery.ImpromptuStateDefaults,a)},ImpromptuGoToState:function(a){jQuery("."+jQuery.ImpromptuCurrentPrefix+"_state").slideUp("slow");jQuery("#"+jQuery.ImpromptuCurrentPrefix+"_state_"+a).slideDown("slow",function(){jQuery(this).find("."+jQuery.ImpromptuCurrentPrefix+"defaultbutton").focus()})},ImpromptuClose:function(){jQuery("#"+jQuery.ImpromptuCurrentPrefix+"box").fadeOut("fast",function(){jQuery(this).remove()})},ImpromptuCurrentPrefix:"jqi",prompt:function(g,d){d=jQuery.extend({},jQuery.ImpromptuDefaults,d);jQuery.ImpromptuCurrentPrefix=d.prefix;var h=(jQuery.browser.msie&&jQuery.browser.version<7);var p=jQuery(document.body);var q=jQuery(window);var a='<div class="'+d.prefix+'box" id="'+d.prefix+'box">';if(d.useiframe&&((jQuery("object, applet").length>0)||h)){a+='<iframe src="javascript:;" class="'+d.prefix+'fade" id="'+d.prefix+'fade"></iframe>'}else{if(h){jQuery("select").css("visibility","hidden")}a+='<div class="'+d.prefix+'fade" id="'+d.prefix+'fade"></div>'}a+='<div class="'+d.prefix+'" id="'+d.prefix+'"><div class="'+d.prefix+'container"><div class="'+d.prefix+'close">X</div><div id="'+d.prefix+'states"></div>';a+="</div></div></div>";var c=$(a).appendTo(p);var e=c.children("#"+d.prefix);var s=c.children("#"+d.prefix+"fade");if(g.constructor==String){g={state0:{html:g,buttons:d.buttons,focus:d.focus,submit:d.submit}}}var r="";jQuery.each(g,function(m,b){b=jQuery.extend({},jQuery.ImpromptuStateDefaults,b);g[m]=b;r+='<div id="'+d.prefix+"_state_"+m+'" class="'+d.prefix+'_state" style="display:none;"><div class="'+d.prefix+'message">'+b.html+'</div><div class="'+d.prefix+'buttons">';jQuery.each(b.buttons,function(t,o){r+='<button name="'+d.prefix+"_"+m+"_button"+t+'" id="'+d.prefix+"_"+m+"_button"+t+'" value="'+o+'">'+t+"</button>"});r+="</div></div>"});e.find("#"+d.prefix+"states").html(r).children("."+d.prefix+"_state:first").css("display","block");jQuery.each(g,function(o,m){var b=e.find("#"+d.prefix+"_state_"+o);b.children("."+d.prefix+"buttons").children("button").click(function(){var u=b.children("."+d.prefix+"message");var t=m.buttons[jQuery(this).text()];var v={};jQuery.each(e.find("#"+d.prefix+"states :input").serializeArray(),function(w,x){if(v[x.name]==undefined){v[x.name]=x.value}else{if(typeof v[x.name]==Array){v[x.name].push(x.value)}else{v[x.name]=[v[x.name],x.value]}}});if(m.submit(t,u,v)){f(true,t,u,v)}});b.find("."+d.prefix+"buttons button:eq("+m.focus+")").addClass(d.prefix+"defaultbutton")});var i=function(){c.css({top:q.scrollTop()})};var k=function(){if(d.persistent){var m=0;c.addClass(d.prefix+"warning");var b=setInterval(function(){c.toggleClass(d.prefix+"warning");if(m++>1){clearInterval(b);c.removeClass(d.prefix+"warning")}},100)}else{f()}};var n=function(m){var b=(window.event)?event.keyCode:m.keyCode;if(b==27){f()}};var j=function(){c.css({position:(h)?"absolute":"fixed",height:q.height(),width:"100%",top:(h)?q.scrollTop():0,left:0,right:0,bottom:0});s.css({position:"absolute",height:q.height(),width:"100%",top:0,left:0,right:0,bottom:0});e.css({position:"absolute",top:d.top,left:"50%",marginLeft:((e.outerWidth()/2)*-1)})};var l=function(){s.css({zIndex:d.zIndex,display:"none",opacity:d.opacity});e.css({zIndex:d.zIndex+1,display:"none"});c.css({zIndex:d.zIndex})};var f=function(o,m,t,b){e.remove();if(h){p.unbind("scroll",i)}q.unbind("resize",j);s.fadeOut(d.overlayspeed,function(){s.unbind("click",k);s.remove();if(o){d.callback(m,t,b)}c.unbind("keypress",n);c.remove();if(h&&!d.useiframe){jQuery("select").css("visibility","visible")}})};j();l();if(h){q.scroll(i)}s.click(k);q.resize(j);c.keypress(n);e.find("."+d.prefix+"close").click(f);s.fadeIn(d.overlayspeed);e[d.show](d.promptspeed,d.loaded);e.find("#"+d.prefix+"states ."+d.prefix+"_state:first ."+d.prefix+"defaultbutton").focus();return c}});
