/* Parchment ========= Built: 2012-08-25 Copyright (c) 2008-2012 The Parchment Contributors BSD licenced http://code.google.com/p/parchment */ (function(){var a=false,b=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;Object.subClass=function(g){var f=this.prototype,e=f,d,c;a=true;e=new this();a=false;for(d in g){e[d]=typeof g[d]=="function"&&typeof f[d]=="function"&&b.test(g[d])?(function(h,i){return function(){var k=this._super,j;this._super=f[h];j=i.apply(this,arguments);this._super=k;return j}})(d,g[d]):g[d]}c=e.init?function(){if(!a){this.init.apply(this,arguments)}}:function(){};c.prototype=e;c.constructor=c;c.subClass=Object.subClass;return c}})();(function(){function b(h,i){return h[i]<<24|h[i+1]<<16|h[i+2]<<8|h[i+3]}function c(h){return[(h>>24)&255,(h>>16)&255,(h>>8)&255,h&255]}function e(h,i){return String.fromCharCode(h[i],h[i+1],h[i+2],h[i+3])}function g(h){return[h.charCodeAt(0),h.charCodeAt(1),h.charCodeAt(2),h.charCodeAt(3)]}var f=Object.subClass({init:function a(k){this.type="";this.chunks=[];if(k){if(e(k,0)!="FORM"){throw new Error("Not an IFF file")}this.type=e(k,8);var j=12,h=k.length;while(jh){throw new Error("IFF: Chunk out of range")}this.chunks.push({type:e(k,j),offset:j,data:k.slice(j+8,j+8+m)});j+=8+m;if(m%2){j++}}}},write:function d(){var m=g(this.type);for(var n=0,j=this.chunks.length;n ").appendTo(l);p=s.height();s.remove()});n(c.cssHooks,{bgcolor:{get:function(u){var s=c(u),t=s.css("background-color");if(j.test(t)){return s.parent().css("bgcolor")}return t},set:function(u,v){var s=c(u),t=s.parent();s.css("background-color",v);if(j.test(t.css("background-color"))){t.css("bgcolor",v)}}}});var f=h.scrollByPages||function(t){var s=doc ument.documentElement.clientHeight,u=s-Math.min(s/10,p*2);scrollBy(0,u*t)},r=h.getSelection||function(){return document.selection?document.selection.createRange().text:""},b=Object.subClass({init:function(s){var u=this,t=c("",{"class":"TextInput",autocapitalize:"off",keydown:function(w){var x=u.keyCode=w.which,v;if(u.mode!="line"){return}if(x==38){u.prev_next(1);v=1}if(x==40){u.prev_next(-1);v=1}if(x==33){f(-1);v=1}if(x==34){f(1);v=1}if(x==13){u.submitLine();v=1}w.stopPropagation();if(v){return false}},keypress:function(v){if(u.mode=="char"){u.charCode=v.which;u.submitChar();return false}},keyup:function(){if(u.mode=="char"){u.submitChar()}}});u.lastinput=c('').appendTo(s);g.on("click.TextInput keydown.TextInput",function(v){if(v.target.nodeName!="INPUT"&&r()==""){if(i.scrollTop()+i.height()-t.offset().top>-60){h.scrollTo(0,9000000000);v.target=t[0];t.focus().trigger(v);v.stopPropagation()}else{if(v.type=="keydown"&&v.which==8){return false}}}});u.history=[];u.input=t;u.contai ner=s;u.statuswin=c("
");u.scrollParent=c.browser.webkit?l:c("html")},die:function(){g.off(".TextInput")},scroll:function(){this.scrollParent.scrollTop(this.lastinput.offset().top-this.statuswin.height()-p)},getLine:function(t){var v=t.target.children().last(),u=this.input,s;this.order=t;this.mode="line";this.current=0;this.mutable_history=this.history.slice();this.mutable_history.unshift("");s=/^([\s\S]+
)(.+?)$/.exec(v.html());if(s){v.html(s[1]);s=v.clone().html(s[2]).appendTo(v)}else{s=v}u.width(20).val("").appendTo(s).width(t.target.offset().left+t.target.width()-u.offset().left);this.scroll();c(document).trigger("TurnComplete")},submitLine:function(){var s=this.input.val();this.lastinput.appendTo(this.input.parent());this.input.detach();if(s!=this.history[0]&&/\S/.test(s)){this.history.unshift(s)}g.trigger({type:"TextInput",mode:"line",input:s});this.mode=0;this.order.response=s;this.order.terminator=13;this.callback(this.order)},prev_next:function(w){var s=this.input,t=this.mutable_history,u=thi s.current,v=u+w;if(v=0){t[u]=s.val();s.val(t[v]);this.current=v}},getChar:function(s){this.order=s;this.mode="char";this.keyCode=this.charCode=0;this.input.addClass("CharInput").appendTo(this.container);this.scroll();c(document).trigger("TurnComplete")},submitChar:function(){var u=this.keyCode,s=this.charCode,t={keyCode:u,charCode:s};if(!u&&!s){return}this.input.detach().removeClass("CharInput");g.trigger({type:"TextInput",mode:"char",input:t});this.mode=0;this.order.response=t;this.callback(this.order)}});var a=Object.subClass({init:function(t,u){var s=this;this.elem=t.addClass("TextGrid").on("stream",function(v){s.stream(v.order.data);return false}).css("bgcolor","inherit");this.lineheight=u.env.charheight;this.io=u;u.TextInput.statuswin=this.elem;this.lines=[];this.styles=[];this.cursor=[0,0]},stream:function(x){var w,t,z,y,v=this.elem,I=this.cursor[0],u=this.cursor[1],H=this.lines,F=this.styles,A=this.io.env,G,D,C,s,E,B=H.length;for(z=0;zH.length){this.addline()}if(w.lines").addClass("box").prependTo(this.io.target);h.scrollTo(0,9000000000);C.css({top:i.scrollTop()+this.lineheight*w.lines,left:C.offset().left-1});this.write(C,H.slice(w.lines),F.slice(w.lines))}H.length=w.lines;F.length=w.lines;if(I>w.lines-1){I=0;u=0}}}if(t=="clear"){y=0;while(y=H.length){this.addline()}}if(t=="get_cursor"){w.pos=[I,u];this.io.input(w)}if(t=="stream"){while(I>=H.length){this.addline()}E=e;if(w.css){s=c("").appendTo(v).css(w.css);if(w.css.reverse){k(s)}E=s.attr("style");if(E){E=' style="'+E+'"'}}D=w.text;y=0;while(y=H.length){this.addline()}}}}if(t=="eraseline"){for(y=u;y"+z+"";w=x[v][u];z=t[v][u]}}s+=""+z+"";if(++v"}}y.html(s)},addline:function(v){var u=this.io.env.width,s=[],t=0;v=v||this.lines.length;while(t++").appendTo(w.target).addClass(s.name).css(s.css||{});if(s.css&&s.css.reverse){k(t)}if(x){x=u=="tt"?x.replace(/( +)/g,'$1'):x.replace(/\n +(?=\S)/g,o);t.html(x.replace(/\n/g,"
"))}if(v.func){v.func(t,w.io)}return false},q=/(\d+),\s*(\d+),\s*(\d+)/,d=Object.subClass({init:function(v){v=n({},v);this.env=v;var t=c(v.container),s=c("00000").appendTo(t),x=s.height(),u=s.width()/5,w=Math.min (Math.floor(t.width()/u),v.width||80);s.remove();n(v,{charheight:x,charwidth:u,width:w,fgcolour:q.exec(t.css("color")).slice(1),bgcolour:q.exec(t.css("bgcolor")).slice(1)});t.width(w*u+2);this.container=t;this.target=t;t.on("stream",m);this.TextInput=new b(t);this.structures={main:{node:"div"},status:{node:"div",func:function(y,z){new a(y,z)}}}},event:function(v){var s,w,u,x=this.target,t;for(u=0;u0){a(".load").detach()}};FatalError.prototype={onError:function(c){var b=c.message;a("#parchment").append('
An error occurred:
'+b+"\n\n"+c.traceback+"
");if(window.console){console.error(b)}},_makeTraceback:function(b){var f="";var d=0;var c=100;while(b!=null&&d4,a=function(q,r){var r=r||[],p=0,o;f or(o=q.length%8;p>4);q=((x&15)<<4)+(w>>2);p=((w&3)<<6)+v;r.push(u,q,p)}if(v==64){r.pop()}if(w==64){r.pop()}return r},i=function(t,r){if(g.btoa){return btoa(l(t,r))}var r=r||"",u,q,p,y,x,w,v,s=0,o=t.length;while(s>2;x=((u&3)<<4)+(q>>4);w=((q&15)<<2)+(p>>6);v=p&63;r+=(h.charAt(y)+h.charAt(x)+h.charAt(w)+h.charAt(v))}if(isNaN(q)){r=r.slice(0 ,-2)+"=="}else{if(isNaN(p)){r=r.slice(0,-1)+"="}}return r},j=function(t){var u=VBCStr(t),s=VBLastAsc(t),o=[],q=0,p=u.length%4,r;while(q>8)}p=u.length;while(q>8,(r=u.charCodeAt(q++))&255,r>>8,(r=u.charCodeAt(q++))&255,r>>8,(r=u.charCodeAt(q++))&255,r>>8)}if(s>-1){o.push(s)}return o},m=jQuery.ajaxSettings.xhr(),k={binary:m.overrideMimeType&&!(e.browser.opera&&parseFloat(e.browser.version)<10.5)?"charset":"responseBody" in m?"responseBody":0},n=function(q,t,p){var s,o,r;q=e.trim(q);if(p.mode=="base64"){if(g.atob){r=atob(q);s=a(r)}else{s=b(q)}}else{if(p.mode=="charset"){s=a(q)}else{s=j(p.xhr.responseBody)}}p.responseArray=s;p.responseText=r};m=undefined;e.ajaxPrefilter("binary",function(p,s,q){var r=p.isLocal&&!p.crossDomain&&d?0:k.binary,o=p.xhr;p.xhr=function(){return q.xhr=o.apply(p)};p.binary=r;q.done(n);p.jsonp=false;p.jsonpCallback="processBase64Zcode";q.mode="base64";if(p.url.slice(-3).toLowerCase()==".js"){return"jsonp"}if(r&&! p.crossDomain){return"text"}if(p.legacy){p.url=p.legacy;return"jsonp"}p.data="url="+p.url;p.url=parchment.options.proxy_url;if(r&&e.support.cors){return"text"}p.data+="&encode=base64&callback=pproxy";p.jsonpCallback="pproxy";return"jsonp"});e.ajaxPrefilter("text",function(o,q,p){p.mode=o.binary;if(p.mode=="charset"){o.mimeType="text/plain; charset=x-user-defined"}});g.file={text_to_array:a,array_to_text:l,base64_decode:b,base64_encode:i,support:k}})(window,jQuery);(function(b){var a=this,c='

'+e.desc+"

"};parchment.lib.UI=Object.subClass({init:function(e){this.library=e;this.panels={};this.load_indicator=b('

Parchment is loading.

> _

')},stylesheet_add:function(){var e=arguments,f;for(f=1;f",{rel:"alternate stylesheet",href:e[f],title:e[0],type:"text/css"}).appendT o("head")[0].disabled=true}}},stylesheet_switch:function(f,e){b('link[rel*="stylesheet"][title="'+f+'"]').each(function(){this.disabled=!e})},load_panels:function(){var e=parchment.options.panels,i,h,g,f=function(){var k=RegExp(h.val().replace(" ","( )?"),"i"),j=b.grep(i,function(l){return k.test(l.path+l.desc)});j=j.slice(0,30);g.html(b.map(j,d).join(""))};if(b.inArray("search",e)!=-1){this.panels.search=b('');h=this.panels.search.find("input");g=h.next();h.keydown(function(){h.unbind("keydown");b.getJSON("stories/if-archive.json").done(function(j){i=j;h.keyup(f);f()})})}if(b.inArray("url",e)!=-1){this.panels.url=b('
')}this.library.container.append(this.panels[e[0]]);this.panels.active=e[0]}})})(jQuery);(function(e,c){var g=/([-\w\s_]+)(\.[\w]+(\.js)?)?$/,i=/\.js$/,d=function(){throw new FatalError("Parchment could not load the story. Check your connection, and that the URL is correct.")},f=function(k){c(".load").detach();var l=e.runner=new (e[k[2].vm.runner]||Runner)(parchment.options,k[2].vm.engine),j=location.hash;l.toParchment=function(m){k[2].library.fromRunner(l,m)};l.fromParchment({code:"load",data:(new parchment.lib.Story(k[2].responseArray)).data});if(j&&j!="#"){l.fromParchment({code:"restore",data:file.base64_decode(j.slice(1))})}else{l.fromParchment({code:"restart"})}};parchment.lib.Story=IFF.subClass({init:function h(p,k){this.title=k;if(p[0]<9){this._super();this.chunks.push({type:"ZCOD",data:p});this.data=p}else{if(IFF.text_from(p,0)=="Glul"){this._super();this.chunks.push({type:"GLUL",data:p});this.data=p}else{if(IFF.text_from(p,0)= ="FORM"){this._super(p);if(this.type=="IFRS"){for(var n=0,j=this.chunks.length;n