function parse_date(e){return Date.parse(e.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i,"$1,$2$4$3"))}function relative_time(e){var c=parse_date(e),a=arguments.length>1?arguments[1]:new Date;c=parseInt((a.getTime()-c)/1000);function b(d,f){return""+f+" "+d+(f==1?"":"s")}return c<60?"less than a minute ago":c<3600?"about "+b("minute",parseInt(c/60))+" ago":c<86400?"about "+b("hour",parseInt(c/3600))+" ago":"about "+b("day",parseInt(c/86400))+" ago"}
(function(e){e.fn.tweet=function(c){var a={username:["seaofclouds"],list:null,avatar_size:null,count:3,intro_text:null,outro_text:null,join_text:null,auto_join_text_default:"i said,",auto_join_text_ed:"i",auto_join_text_ing:"i am",auto_join_text_reply:"i replied to",auto_join_text_url:"i was looking at",loading_text:null,query:null};c&&e.extend(a,c);e.fn.extend({linkUrl:function(){var d=[],f=/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;this.each(function(){d.push(this.replace(f,
'<a href="$1">$1</a>'))});return e(d)},linkUser:function(){var d=[],f=/[\@]+([A-Za-z0-9-_]+)/gi;this.each(function(){d.push(this.replace(f,'<a href="http://twitter.com/$1">@$1</a>'))});return e(d)},linkHash:function(){var d=[],f=/ [\#]+([A-Za-z0-9-_]+)/gi;this.each(function(){d.push(this.replace(f,' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+a.username.join("%2BOR%2B")+'">#$1</a>'))});return e(d)},capAwesome:function(){var d=[];this.each(function(){d.push(this.replace(/\b(awesome)\b/gi,
'<span class="awesome">$1</span>'))});return e(d)},capEpic:function(){var d=[];this.each(function(){d.push(this.replace(/\b(epic)\b/gi,'<span class="epic">$1</span>'))});return e(d)},makeHeart:function(){var d=[];this.each(function(){d.push(this.replace(/(&lt;)+[3]/gi,"<tt class='heart'>&#x2665;</tt>"))});return e(d)}});function b(){var d="https:"==document.location.protocol?"https:":"http:";if(a.list)return d+"//api.twitter.com/1/"+a.username[0]+"/lists/"+a.list+"/statuses.json?per_page="+a.count+
"&callback=?";else if(a.query==null&&a.username.length==1)return d+"//api.twitter.com/1/statuses/user_timeline.json?screen_name="+a.username[0]+"&count="+a.count+"&callback=?";else{var f=a.query||"from:"+a.username.join(" OR from:");return d+"//search.twitter.com/search.json?&q="+escape(f)+"&rpp="+a.count+"&callback=?"}}return this.each(function(d,f){var g=e('<ul class="tweet_list">').appendTo(f),m='<p class="tweet_intro">'+a.intro_text+"</p>",k='<p class="tweet_outro">'+a.outro_text+"</p>",p=e('<p class="loading">'+
a.loading_text+"</p>");if(typeof a.username=="string")a.username=[a.username];a.loading_text&&e(f).append(p);e.getJSON(b(),function(h){a.loading_text&&p.remove();a.intro_text&&g.before(m);h=h.results||h;e.each(h,function(j,l){var n=a.join_text=="auto"?l.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)?a.auto_join_text_reply:l.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)?a.auto_join_text_url:l.text.match(/^((\w+ed)|just) .*/im)?a.auto_join_text_ed:l.text.match(/^(\w*ing) .*/i)?a.auto_join_text_ing:
a.auto_join_text_default:a.join_text;j=l.from_user||l.user.screen_name;var o=l.profile_image_url||l.user.profile_image_url;n='<span class="tweet_join"> '+n+" </span>";n=a.join_text?n:" ";o='<a class="tweet_avatar" href="http://twitter.com/'+j+'"><img src="'+o+'" height="'+a.avatar_size+'" width="'+a.avatar_size+'" alt="'+j+'\'s avatar" title="'+j+'\'s avatar" border="0"/></a>';o=a.avatar_size?o:"";j='<span class="tweet_time"><a href="http://twitter.com/'+j+"/statuses/"+l.id+'" title="view tweet on twitter">'+
relative_time(l.created_at)+"</a></span>";l='<span class="tweet_text">'+e([l.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+"</span>";g.append("<li>"+o+j+n+l+"</li>");g.children("li:first").addClass("tweet_first");g.children("li:odd").addClass("tweet_even");g.children("li:even").addClass("tweet_odd")});a.outro_text&&g.after(k);e(f).trigger("loaded").trigger(h.length==0?"empty":"full")})})}})(jQuery);
(function(e){e.fn.ajaxSubmit=function(a){if(!this.length){c("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof a=="function")a={success:a};var b=e.trim(this.attr("action"));if(b)b=(b.match(/^([^#]+)/)||[])[1];b=b||window.location.href||"";a=e.extend({url:b,type:this.attr("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},a||{});b={};this.trigger("form-pre-serialize",[this,a,b]);if(b.veto){c("ajaxSubmit: submit vetoed via form-pre-serialize trigger");
return this}if(a.beforeSerialize&&a.beforeSerialize(this,a)===false){c("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var d=this.formToArray(a.semantic);if(a.data){a.extraData=a.data;for(var f in a.data)if(a.data[f]instanceof Array)for(var g in a.data[f])d.push({name:f,value:a.data[f][g]});else d.push({name:f,value:a.data[f]})}if(a.beforeSubmit&&a.beforeSubmit(d,this,a)===false){c("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",
[d,this,a,b]);if(b.veto){c("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}f=e.param(d);if(a.type.toUpperCase()=="GET"){a.url+=(a.url.indexOf("?")>=0?"&":"?")+f;a.data=null}else a.data=f;var m=this,k=[];a.resetForm&&k.push(function(){m.resetForm()});a.clearForm&&k.push(function(){m.clearForm()});if(!a.dataType&&a.target){var p=a.success||function(){};k.push(function(j){e(a.target).html(j).each(p,arguments)})}else a.success&&k.push(a.success);a.success=function(j,l){for(var n=
0,o=k.length;n<o;n++)k[n].apply(a,[j,l,m])};f=e("input:file",this).fieldValue();g=false;for(b=0;b<f.length;b++)if(f[b])g=true;b=false;if(f.length&&a.iframe!==false||a.iframe||g||b)a.closeKeepAlive?e.get(a.closeKeepAlive,h):h();else e.ajax(a);this.trigger("form-submit-notify",[this,a]);return this;function h(){var j=m[0];if(e(":input[name=submit]",j).length)alert('Error: Form elements must not be named "submit".');else{function l(u,s){if(window.ActiveXObject){s=new ActiveXObject("Microsoft.XMLDOM");
s.async="false";s.loadXML(u)}else s=(new DOMParser).parseFromString(u,"text/xml");return s&&s.documentElement&&s.documentElement.tagName!="parsererror"?s:null}function n(){if(!A++){t.detachEvent?t.detachEvent("onload",n):t.removeEventListener("load",n,false);var u=true;try{if(B)throw"timeout";var s,r;r=t.contentWindow?t.contentWindow.document:t.contentDocument?t.contentDocument:t.document;var w=o.dataType=="xml"||r.XMLDocument||e.isXMLDoc(r);c("isXml="+w);if(!w&&(r.body==null||r.body.innerHTML=="")){if(--F){A=
0;setTimeout(n,100);return}c("Could not access iframe DOM after 50 tries.");return}q.responseText=r.body?r.body.innerHTML:null;q.responseXML=r.XMLDocument?r.XMLDocument:r;q.getResponseHeader=function(G){var H={"content-type":o.dataType};return H[G]};if(o.dataType=="json"||o.dataType=="script"){var C=r.getElementsByTagName("textarea")[0];if(C)q.responseText=C.value;else{var D=r.getElementsByTagName("pre")[0];if(D)q.responseText=D.innerHTML}}else if(o.dataType=="xml"&&!q.responseXML&&q.responseText!=
null)q.responseXML=l(q.responseText);s=e.httpData(q,o.dataType)}catch(I){u=false;e.handleError(o,q,"error",I)}if(u){o.success(s,"success");x&&e.event.trigger("ajaxSuccess",[q,o])}x&&e.event.trigger("ajaxComplete",[q,o]);x&&!--e.active&&e.event.trigger("ajaxStop");if(o.complete)o.complete(q,u?"success":"error");setTimeout(function(){y.remove();q.responseXML=null},100)}}var o=e.extend({},e.ajaxSettings,a),v=e.extend(true,{},e.extend(true,{},e.ajaxSettings),o),z="jqFormIO"+(new Date).getTime(),y=e('<iframe id="'+
z+'" name="'+z+'" src="'+o.iframeSrc+'" />'),t=y[0];y.css({position:"absolute",top:"-1000px",left:"-1000px"});var q={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;y.attr("src",o.iframeSrc)}},x=o.global;x&&!e.active++&&e.event.trigger("ajaxStart");x&&e.event.trigger("ajaxSend",[q,o]);if(v.beforeSend&&v.beforeSend(q,v)===false)v.global&&e.active--;
else if(!q.aborted){var A=0,B=0;if(v=j.clk){var E=v.name;if(E&&!v.disabled){a.extraData=a.extraData||{};a.extraData[E]=v.value;if(v.type=="image"){a.extraData[name+".x"]=j.clk_x;a.extraData[name+".y"]=j.clk_y}}}setTimeout(function(){var u=m.attr("target"),s=m.attr("action");j.setAttribute("target",z);j.getAttribute("method")!="POST"&&j.setAttribute("method","POST");j.getAttribute("action")!=o.url&&j.setAttribute("action",o.url);a.skipEncodingOverride||m.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});
o.timeout&&setTimeout(function(){B=true;n()},o.timeout);var r=[];try{if(a.extraData)for(var w in a.extraData)r.push(e('<input type="hidden" name="'+w+'" value="'+a.extraData[w]+'" />').appendTo(j)[0]);y.appendTo("body");t.attachEvent?t.attachEvent("onload",n):t.addEventListener("load",n,false);j.submit()}finally{j.setAttribute("action",s);u?j.setAttribute("target",u):m.removeAttr("target");e(r).remove()}},10);var F=50}}}};e.fn.ajaxForm=function(a){return this.ajaxFormUnbind().bind("submit.form-plugin",
function(){e(this).ajaxSubmit(a);return false}).bind("click.form-plugin",function(b){var d=b.target,f=e(d);if(!f.is(":submit,input:image")){d=f.closest(":submit");if(d.length==0)return;d=d[0]}var g=this;g.clk=d;if(d.type=="image")if(b.offsetX!=undefined){g.clk_x=b.offsetX;g.clk_y=b.offsetY}else if(typeof e.fn.offset=="function"){f=f.offset();g.clk_x=b.pageX-f.left;g.clk_y=b.pageY-f.top}else{g.clk_x=b.pageX-d.offsetLeft;g.clk_y=b.pageY-d.offsetTop}setTimeout(function(){g.clk=g.clk_x=g.clk_y=null},
100)})};e.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};e.fn.formToArray=function(a){var b=[];if(this.length==0)return b;var d=this[0],f=a?d.getElementsByTagName("*"):d.elements;if(!f)return b;for(var g=0,m=f.length;g<m;g++){var k=f[g],p=k.name;if(p)if(a&&d.clk&&k.type=="image"){if(!k.disabled&&d.clk==k){b.push({name:p,value:e(k).val()});b.push({name:p+".x",value:d.clk_x},{name:p+".y",value:d.clk_y})}}else if((k=e.fieldValue(k,true))&&k.constructor==Array)for(var h=
0,j=k.length;h<j;h++)b.push({name:p,value:k[h]});else k!==null&&typeof k!="undefined"&&b.push({name:p,value:k})}if(!a&&d.clk){a=e(d.clk);f=a[0];if((p=f.name)&&!f.disabled&&f.type=="image"){b.push({name:p,value:a.val()});b.push({name:p+".x",value:d.clk_x},{name:p+".y",value:d.clk_y})}}return b};e.fn.formSerialize=function(a){return e.param(this.formToArray(a))};e.fn.fieldSerialize=function(a){var b=[];this.each(function(){var d=this.name;if(d){var f=e.fieldValue(this,a);if(f&&f.constructor==Array)for(var g=
0,m=f.length;g<m;g++)b.push({name:d,value:f[g]});else f!==null&&typeof f!="undefined"&&b.push({name:this.name,value:f})}});return e.param(b)};e.fn.fieldValue=function(a){for(var b=[],d=0,f=this.length;d<f;d++){var g=this[d];g=e.fieldValue(g,a);g===null||typeof g=="undefined"||g.constructor==Array&&!g.length||(g.constructor==Array?e.merge(b,g):b.push(g))}return b};e.fieldValue=function(a,b){var d=a.name,f=a.type,g=a.tagName.toLowerCase();if(typeof b=="undefined")b=true;if(b&&(!d||a.disabled||f=="reset"||
f=="button"||(f=="checkbox"||f=="radio")&&!a.checked||(f=="submit"||f=="image")&&a.form&&a.form.clk!=a||g=="select"&&a.selectedIndex==-1))return null;if(g=="select"){g=a.selectedIndex;if(g<0)return null;b=[];a=a.options;d=(f=f=="select-one")?g+1:a.length;for(g=f?g:0;g<d;g++){var m=a[g];if(m.selected){var k=m.value;k||(k=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value);if(f)return k;b.push(k)}}return b}return a.value};e.fn.clearForm=function(){return this.each(function(){e("input,select,textarea",
this).clearFields()})};e.fn.clearFields=e.fn.clearInputs=function(){return this.each(function(){var a=this.type,b=this.tagName.toLowerCase();if(a=="text"||a=="password"||b=="textarea")this.value="";else if(a=="checkbox"||a=="radio")this.checked=false;else if(b=="select")this.selectedIndex=-1})};e.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||typeof this.reset=="object"&&!this.reset.nodeType)this.reset()})};e.fn.enable=function(a){if(a==undefined)a=true;return this.each(function(){this.disabled=
!a})};e.fn.selected=function(a){if(a==undefined)a=true;return this.each(function(){var b=this.type;if(b=="checkbox"||b=="radio")this.checked=a;else if(this.tagName.toLowerCase()=="option"){b=e(this).parent("select");a&&b[0]&&b[0].type=="select-one"&&b.find("option").selected(false);this.selected=a}})};function c(){e.fn.ajaxSubmit.debug&&window.console&&window.console.log&&window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""))}})(jQuery);
var Mustache=function(){function e(){}e.prototype={otag:"{{",ctag:"}}",render:function(c,a,b){if(c.indexOf(this.otag)==-1)return c;c=this.render_section(c,a,b);return this.render_tags(c,a,b)},render_partial:function(c,a,b){if(typeof a[c]!="object")throw{message:"subcontext for '"+c+"' is not an object"};if(!b||!b[c])throw{message:"unknown_partial"};return this.render(b[c],a[c],b)},render_section:function(c,a,b){if(c.indexOf(this.otag+"#")==-1)return c;var d=this,f=new RegExp(this.otag+"\\#(.+)"+this.ctag+
"\\s*([\\s\\S]+?)"+this.otag+"\\/\\1"+this.ctag+"\\s*","mg");return c.replace(f,function(g,m,k){g=d.find(m,a);return d.is_array(g)?d.map(g,function(p){return d.render(k,d.merge(a,d.create_context(p)),b)}).join(""):g?d.render(k,a,b):""})},render_tags:function(c,a,b){c=c.split("\n");function d(){return new RegExp(f.otag+"(=|!|<|\\{)?([^/#]+?)\\1?"+f.ctag+"+","g")}for(var f=this,g=d(),m=0;m<c.length;m++)c[m]=c[m].replace(g,function(k,p,h){switch(p){case "!":return k;case "=":f.set_delimiters(h);g=d();
m--;return"";case "<":return f.render_partial(h,a,b);case "{":return f.find(h,a);default:return f.escape(f.find(h,a))}},this);return c.join("\n")},set_delimiters:function(c){c=c.split(" ");this.otag=this.escape_regex(c[0]);this.ctag=this.escape_regex(c[1])},escape_regex:function(c){if(!arguments.callee.sRE){var a=["/",".","*","+","?","|","(",")","[","]","{","}","\\"];arguments.callee.sRE=new RegExp("(\\"+a.join("|\\")+")","g")}return c.replace(arguments.callee.sRE,"\\$1")},find:function(c,a){c=this.trim(c);
if(typeof a[c]==="function")return a[c].apply(a);if(a[c]!==undefined)return a[c];throw{message:"'"+c+"' not found in context"};},escape:function(c){return c.toString().replace(/[&"<>\\]/g,function(a){switch(a){case "&":return"&amp;";case "\\":return"\\\\";case '"':return'"';case "<":return"&lt;";case ">":return"&gt;";default:return a}})},merge:function(c,a){var b={};for(var d in c)if(c.hasOwnProperty(d))b[d]=c[d];for(d in a)if(a.hasOwnProperty(d))b[d]=a[d];return b},create_context:function(c){return this.is_object(c)?
c:{".":c}},is_object:function(c){return c&&typeof c=="object"},is_array:function(c){return c&&typeof c==="object"&&c.constructor===Array},trim:function(c){return c.replace(/^\s*|\s*$/g,"")},map:function(c,a){if(typeof c.map=="function")return c.map(a);else{var b=[],d=c.length;for(i=0;i<d;i++)b.push(a(c[i]));return b}}};return{name:"mustache.js",version:"0.1",to_html:function(c,a,b){return(new e).render(c,a,b)}}}();
var jsconf=function(){var e="home",c="<div class='article'><h3><a href='{{link}}'>{{title}}</a></h3><div class='dateline'>{{date}}</div><div class='body'>{{{body}}}</div>",a="<div class='tb'><div class='name'>{{name}}</div><div class='title'>{{title}}</div><div class='description'>{{description}}</div></div>",b=870;function d(){return jQuery("#navigation").offset().left}function f(h){var j=0,l=0;if(h=="articles"||h=="schedule"||h=="videos")l=110;else if(h=="register"||h=="home"||h=="sponsors")l=-439;
else if(h=="about"||h=="speakers"||h=="venue")l=-990;var n=d();if(h=="articles"||h=="register"||h=="about")j=n+10;else if(h=="schedule"||h=="home"||h=="speakers")j=n-b;else if(h=="videos"||h=="sponsors"||h=="venue")j=n-(b*2+13);return h={top:l,left:j}}function g(h){var j=f(e);h?jQuery("#viewpane").animate(j):jQuery("#viewpane").css(j)}function m(){jQuery(".trackbreg").click(function(h){h.preventDefault();h.stopPropagation();var j=jQuery(this).attr("href").split("_");h=j[0].replace("#","");j=j[1];
h="<h3>Registering For Track B</h3><form class='regform' method='POST' action='/app/schedule'><input type='hidden' name='day' value='"+h+"'/><input type='hidden' name='time' value='"+j+"'/><div class='field clearfix'><label for='name'>Name</label> <input type='text' id='name' name='name' value=''/></div><div class='field clearfix'><label for='email'>Email</label> <input type='text' id='email' name='email' value=''/></div><div class='field clearfix'><label for='title'>Talk Title</label> <input type='text' id='title' name='title' value=''/></div><div class='text'><label for='description'>Talk Description</label> <textarea id='description' name='description'></textarea></div><div class='terms'><input type='checkbox' name='av_confirm' value='1' id='av_confirm'/> <label for='av_confirm'>I allow JSConf to record and present my Track B talk on the Internet and to do everything possible to make me famous!</label></div><p>Please note, we reserve the right to remove any submission if deemed inappropriate or hostile. <b>You must already be attending JSConf to speak on Track B.</b></p><div id='spinner' style='display:none'><img src='/facebox/loading.gif' alt='just hold on a second'/> The ship's monkey is evaluating your offer.</div><div id='subm'><input type='submit' value='Put Me In Captain'/> or <a href='#cancel' class='cancel'>Get me off this boat</a></div></form>";
jQuery.facebox(h);jQuery("#facebox .footer").remove();jQuery("form .cancel").click(function(l){l.preventDefault();l.stopPropagation();jQuery(document).trigger("close.facebox")});jQuery("form.regform").submit(function(){jQuery("#spinner").show();jQuery("#subm").hide();jQuery(this).ajaxSubmit({dataType:"json",success:function(l){jQuery(document).trigger("close.facebox");jQuery.facebox("<h3>Successfully Submitted</h3><p>"+l+"</p>");jQuery.getJSON("/app/schedule",function(n){p("sat",n.TRACK_B);p("sun",
n.TRACK_B);m()})},error:function(l){jQuery("#facebox .error").remove();jQuery("#subm").show();jQuery("#spinner").hide();jQuery("#facebox h3").after("<div class='error'>"+l.responseText.replace('"',"")+"</div>")}});return false})})}function k(h){h.preventDefault();h.stopPropagation();$(".bio").hide();$($(this).attr("href")).show()}function p(h,j){j=j[h];jQuery.each(j,function(l,n){n.name&&n.type!=="break"&&jQuery("#"+h+"_"+l).html(Mustache.to_html(a,n))})}return{resizeContainer:function(){g()},focus_on:function(h){e=
h;g(true)},default_focus:function(){g(true)},load_blog:function(h,j){var l=new google.feeds.Feed("http://feeds.feedburner.com/posterous/tzwp");l.setNumEntries(h);l.load(function(n){n.error||j(n)})},load_tweets:function(){jQuery("#twitter").tweet({avatar_size:28,count:3,query:"jsconf",loading_text:"searching twitter..."})},init:function(){jQuery("#speaker_line a").click(k);jQuery("#home").each(function(){jsconf.load_blog(2,function(h){jQuery.each(h.feed.entries,function(){jQuery("#top_article").append(Mustache.to_html(c,
{title:this.title,body:this.contentSnippet.replace("Permalink",""),date:relative_time(this.publishedDate),link:this.link}))})})});jQuery("#article_listing").each(function(){jsconf.load_blog(10,function(h){jQuery.each(h.feed.entries,function(){jQuery("#article_listing").append(Mustache.to_html(c,{title:this.title,body:this.content.replace("Permalink",""),date:relative_time(this.publishedDate),link:this.link}))});jQuery("#article_listing .article p:last").remove()})});jQuery("#speaker_carousel").length>
0&&jQuery("#speaker_carousel").jCarouselLite({btnNext:".next",btnPrev:".prev",visible:8,afterEnd:function(){jQuery("#speaker_line a").click(k)},mouseWheel:true});jQuery("#schedule").length==1&&jQuery.getJSON("/app/schedule",function(h){p("sat",h.TRACK_B);p("sun",h.TRACK_B);m()});jsconf.load_tweets();jQuery(".chest").hover(function(){jQuery(".treasure").fadeIn()},function(){jQuery(".treasure").fadeOut()})}}}();google.setOnLoadCallback(jsconf.init);
