(function(){var W=this,ac,F=W.jQuery,R=W.$,T=W.jQuery=W.$=function(b,a){return new T.fn.init(b,a)},L=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,ad=/^.[^:#\[\.,]*$/;T.fn=T.prototype={init:function(e,b){e=e||document;if(e.nodeType){this[0]=e;this.length=1;this.context=e;return this}if(typeof e==="string"){var c=L.exec(e);if(c&&(c[1]||!b)){if(c[1]){e=T.clean([c[1]],b)}else{var a=document.getElementById(c[3]);if(a&&a.id!=c[3]){return T().find(e)}var d=T(a||[]);d.context=document;d.selector=e;return d}}else{return T(b).find(e)}}else{if(T.isFunction(e)){return T(document).ready(e)}}if(e.selector&&e.context){this.selector=e.selector;this.context=e.context}return this.setArray(T.isArray(e)?e:T.makeArray(e))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(a){return a===ac?Array.prototype.slice.call(this):this[a]},pushStack:function(c,a,d){var b=T(c);b.prevObject=this;b.context=this.context;if(a==="find"){b.selector=this.selector+(this.selector?" ":"")+d}else{if(a){b.selector=this.selector+"."+a+"("+d+")"}}return b},setArray:function(a){this.length=0;Array.prototype.push.apply(this,a);return this},each:function(a,b){return T.each(this,a,b)},index:function(a){return T.inArray(a&&a.jquery?a[0]:a,this)},attr:function(c,a,b){var d=c;if(typeof c==="string"){if(a===ac){return this[0]&&T[b||"attr"](this[0],c)}else{d={};d[c]=a}}return this.each(function(e){for(c in d){T.attr(b?this.style:this,c,T.prop(this,d[c],b,e,c))}})},css:function(b,a){if((b=="width"||b=="height")&&parseFloat(a)<0){a=ac}return this.attr(b,a,"curCSS")},text:function(a){if(typeof a!=="object"&&a!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(a))}var b="";T.each(a||this,function(){T.each(this.childNodes,function(){if(this.nodeType!=8){b+=this.nodeType!=1?this.nodeValue:T.fn.text([this])}})});return b},wrapAll:function(b){if(this[0]){var a=T(b,this[0].ownerDocument).clone();if(this[0].parentNode){a.insertBefore(this[0])}a.map(function(){var c=this;while(c.firstChild){c=c.firstChild}return c}).append(this)}return this},wrapInner:function(a){return this.each(function(){T(this).contents().wrapAll(a)})},wrap:function(a){return this.each(function(){T(this).wrapAll(a)})},append:function(){return this.domManip(arguments,true,function(a){if(this.nodeType==1){this.appendChild(a)}})},prepend:function(){return this.domManip(arguments,true,function(a){if(this.nodeType==1){this.insertBefore(a,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(a){this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,false,function(a){this.parentNode.insertBefore(a,this.nextSibling)})},end:function(){return this.prevObject||T([])},push:[].push,sort:[].sort,splice:[].splice,find:function(b){if(this.length===1){var a=this.pushStack([],"find",b);a.length=0;T.find(b,this[0],a);return a}else{return this.pushStack(T.unique(T.map(this,function(c){return T.find(b,c)})),"find",b)}},clone:function(b){var d=this.map(function(){if(!T.support.noCloneEvent&&!T.isXMLDoc(this)){var f=this.outerHTML;if(!f){var e=this.ownerDocument.createElement("div");e.appendChild(this.cloneNode(true));f=e.innerHTML}return T.clean([f.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(b===true){var a=this.find("*").andSelf(),c=0;d.find("*").andSelf().each(function(){if(this.nodeName!==a[c].nodeName){return}var g=T.data(a[c],"events");for(var e in g){for(var f in g[e]){T.event.add(this,e,g[e][f],g[e][f].data)}}c++})}return d},filter:function(a){return this.pushStack(T.isFunction(a)&&T.grep(this,function(b,c){return a.call(b,c)})||T.multiFilter(a,T.grep(this,function(b){return b.nodeType===1})),"filter",a)},closest:function(c){var a=T.expr.match.POS.test(c)?T(c):null,b=0;return this.map(function(){var d=this;while(d&&d.ownerDocument){if(a?a.index(d)>-1:T(d).is(c)){T.data(d,"closest",b);return d}d=d.parentNode;b++}})},not:function(b){if(typeof b==="string"){if(ad.test(b)){return this.pushStack(T.multiFilter(b,this,true),"not",b)}else{b=T.multiFilter(b,this)}}var a=b.length&&b[b.length-1]!==ac&&!b.nodeType;return this.filter(function(){return a?T.inArray(this,b)<0:this!=b})},add:function(a){return this.pushStack(T.unique(T.merge(this.get(),typeof a==="string"?T(a):T.makeArray(a))))},is:function(a){return !!a&&T.multiFilter(a,this).length>0},hasClass:function(a){return !!a&&this.is("."+a)},val:function(c){if(c===ac){var i=this[0];if(i){if(T.nodeName(i,"option")){return(i.attributes.value||{}).specified?i.value:i.text}if(T.nodeName(i,"select")){var e=i.selectedIndex,b=[],a=i.options,f=i.type=="select-one";if(e<0){return null}for(var h=f?e:0,d=f?e+1:a.length;h<d;h++){var g=a[h];if(g.selected){c=T(g).val();if(f){return c}b.push(c)}}return b}return(i.value||"").replace(/\r/g,"")}return ac}if(typeof c==="number"){c+=""}return this.each(function(){if(this.nodeType!=1){return}if(T.isArray(c)&&/radio|checkbox/.test(this.type)){this.checked=(T.inArray(this.value,c)>=0||T.inArray(this.name,c)>=0)}else{if(T.nodeName(this,"select")){var j=T.makeArray(c);T("option",this).each(function(){this.selected=(T.inArray(this.value,j)>=0||T.inArray(this.text,j)>=0)});if(!j.length){this.selectedIndex=-1}}else{this.value=c}}})},html:function(a){return a===ac?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(a)},replaceWith:function(a){return this.after(a).remove()},eq:function(a){return this.slice(a,+a+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(a){return this.pushStack(T.map(this,function(b,c){return a.call(b,c,b)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(d,a,b){if(this[0]){var e=(this[0].ownerDocument||this[0]).createDocumentFragment(),h=T.clean(d,(this[0].ownerDocument||this[0]),e),f=e.firstChild;if(f){for(var g=0,i=this.length;g<i;g++){b.call(c(this[g],f),this.length>1||g>0?e.cloneNode(true):e)}}if(h){T.each(h,E)}}return this;function c(k,j){return a&&T.nodeName(k,"table")&&T.nodeName(j,"tr")?(k.getElementsByTagName("tbody")[0]||k.appendChild(k.ownerDocument.createElement("tbody"))):k}}};T.fn.init.prototype=T.fn;function E(b,a){if(a.src){T.ajax({url:a.src,async:false,dataType:"script"})}else{T.globalEval(a.text||a.textContent||a.innerHTML||"")}if(a.parentNode){a.parentNode.removeChild(a)}}function ae(){return +new Date}T.extend=T.fn.extend=function(){var c=arguments[0]||{},e=1,d=arguments.length,h=false,f;if(typeof c==="boolean"){h=c;c=arguments[1]||{};e=2}if(typeof c!=="object"&&!T.isFunction(c)){c={}}if(d==e){c=this;--e}for(;e<d;e++){if((f=arguments[e])!=null){for(var g in f){var b=c[g],a=f[g];if(c===a){continue}if(h&&a&&typeof a==="object"&&!a.nodeType){c[g]=T.extend(h,b||(a.length!=null?[]:{}),a)}else{if(a!==ac){c[g]=a}}}}}return c};var ah=/z-?index|font-?weight|opacity|zoom|line-?height/i,Q=document.defaultView||{},M=Object.prototype.toString;T.extend({noConflict:function(a){W.$=R;if(a){W.jQuery=F}return T},isFunction:function(a){return M.call(a)==="[object Function]"},isArray:function(a){return M.call(a)==="[object Array]"},isXMLDoc:function(a){return a.nodeType===9&&a.documentElement.nodeName!=="HTML"||!!a.ownerDocument&&T.isXMLDoc(a.ownerDocument)},globalEval:function(a){if(a&&/\S/.test(a)){var b=document.getElementsByTagName("head")[0]||document.documentElement,c=document.createElement("script");c.type="text/javascript";if(T.support.scriptEval){c.appendChild(document.createTextNode(a))}else{c.text=a}b.insertBefore(c,b.firstChild);b.removeChild(c)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()==b.toUpperCase()},each:function(e,a,f){var g,d=0,c=e.length;if(f){if(c===ac){for(g in e){if(a.apply(e[g],f)===false){break}}}else{for(;d<c;){if(a.apply(e[d++],f)===false){break}}}}else{if(c===ac){for(g in e){if(a.call(e[g],g,e[g])===false){break}}}else{for(var b=e[0];d<c&&a.call(b,d,b)!==false;b=e[++d]){}}}return e},prop:function(b,a,c,d,e){if(T.isFunction(a)){a=a.call(b,d)}return typeof a==="number"&&c=="curCSS"&&!ah.test(e)?a+"px":a},className:{add:function(b,a){T.each((a||"").split(/\s+/),function(d,c){if(b.nodeType==1&&!T.className.has(b.className,c)){b.className+=(b.className?" ":"")+c}})},remove:function(b,a){if(b.nodeType==1){b.className=a!==ac?T.grep(b.className.split(/\s+/),function(c){return !T.className.has(a,c)}).join(" "):""}},has:function(a,b){return a&&T.inArray(b,(a.className||a).toString().split(/\s+/))>-1}},swap:function(b,c,a){var e={};for(var d in c){e[d]=b.style[d];b.style[d]=c[d]}a.call(b);for(var d in c){b.style[d]=e[d]}},css:function(e,g,c,h){if(g=="width"||g=="height"){var a,f={position:"absolute",visibility:"hidden",display:"block"},b=g=="width"?["Left","Right"]:["Top","Bottom"];function d(){a=g=="width"?e.offsetWidth:e.offsetHeight;if(h==="border"){return}T.each(b,function(){if(!h){a-=parseFloat(T.curCSS(e,"padding"+this,true))||0}if(h==="margin"){a+=parseFloat(T.curCSS(e,"margin"+this,true))||0}else{a-=parseFloat(T.curCSS(e,"border"+this+"Width",true))||0}})}if(e.offsetWidth!==0){d()}else{T.swap(e,f,d)}return Math.max(0,Math.round(a))}return T.curCSS(e,g,c)},curCSS:function(e,h,g){var b,i=e.style;if(h=="opacity"&&!T.support.opacity){b=T.attr(i,"opacity");return b==""?"1":b}if(h.match(/float/i)){h=H}if(!g&&i&&i[h]){b=i[h]}else{if(Q.getComputedStyle){if(h.match(/float/i)){h="float"}h=h.replace(/([A-Z])/g,"-$1").toLowerCase();var a=Q.getComputedStyle(e,null);if(a){b=a.getPropertyValue(h)}if(h=="opacity"&&b==""){b="1"}}else{if(e.currentStyle){var d=h.replace(/\-(\w)/g,function(k,j){return j.toUpperCase()});b=e.currentStyle[h]||e.currentStyle[d];if(!/^\d+(px)?$/i.test(b)&&/^\d/.test(b)){var f=i.left,c=e.runtimeStyle.left;e.runtimeStyle.left=e.currentStyle.left;i.left=b||0;b=i.pixelLeft+"px";i.left=f;e.runtimeStyle.left=c}}}}return b},clean:function(g,b,d){b=b||document;if(typeof b.createElement==="undefined"){b=b.ownerDocument||b[0]&&b[0].ownerDocument||document}if(!d&&g.length===1&&typeof g[0]==="string"){var e=/^<(\w+)\s*\/?>$/.exec(g[0]);if(e){return[b.createElement(e[1])]}}var f=[],h=[],a=b.createElement("div");T.each(g,function(l,i){if(typeof i==="number"){i+=""}if(!i){return}if(typeof i==="string"){i=i.replace(/(<(\w+)[^>]*?)\/>/g,function(q,p,r){return r.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?q:p+"></"+r+">"});var m=i.replace(/^\s+/,"").substring(0,10).toLowerCase();var k=!m.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!m.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||m.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!m.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!m.indexOf("<td")||!m.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!m.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!T.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];a.innerHTML=k[1]+i+k[2];while(k[0]--){a=a.lastChild}if(!T.support.tbody){var j=/<tbody/i.test(i),n=!m.indexOf("<table")&&!j?a.firstChild&&a.firstChild.childNodes:k[1]=="<table>"&&!j?a.childNodes:[];for(var o=n.length-1;o>=0;--o){if(T.nodeName(n[o],"tbody")&&!n[o].childNodes.length){n[o].parentNode.removeChild(n[o])}}}if(!T.support.leadingWhitespace&&/^\s/.test(i)){a.insertBefore(b.createTextNode(i.match(/^\s*/)[0]),a.firstChild)}i=T.makeArray(a.childNodes)}if(i.nodeType){f.push(i)}else{f=T.merge(f,i)}});if(d){for(var c=0;f[c];c++){if(T.nodeName(f[c],"script")&&(!f[c].type||f[c].type.toLowerCase()==="text/javascript")){h.push(f[c].parentNode?f[c].parentNode.removeChild(f[c]):f[c])}else{if(f[c].nodeType===1){f.splice.apply(f,[c+1,0].concat(T.makeArray(f[c].getElementsByTagName("script"))))}d.appendChild(f[c])}}return h}return f},attr:function(c,f,b){if(!c||c.nodeType==3||c.nodeType==8){return ac}var e=!T.isXMLDoc(c),a=b!==ac;f=e&&T.props[f]||f;if(c.tagName){var g=/href|src|style/.test(f);if(f=="selected"&&c.parentNode){c.parentNode.selectedIndex}if(f in c&&e&&!g){if(a){if(f=="type"&&T.nodeName(c,"input")&&c.parentNode){throw"type property can't be changed"}c[f]=b}if(T.nodeName(c,"form")&&c.getAttributeNode(f)){return c.getAttributeNode(f).nodeValue}if(f=="tabIndex"){var d=c.getAttributeNode("tabIndex");return d&&d.specified?d.value:c.nodeName.match(/(button|input|object|select|textarea)/i)?0:c.nodeName.match(/^(a|area)$/i)&&c.href?0:ac}return c[f]}if(!T.support.style&&e&&f=="style"){return T.attr(c.style,"cssText",b)}if(a){c.setAttribute(f,""+b)}var h=!T.support.hrefNormalized&&e&&g?c.getAttribute(f,2):c.getAttribute(f);return h===null?ac:h}if(!T.support.opacity&&f=="opacity"){if(a){c.zoom=1;c.filter=(c.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(b)+""=="NaN"?"":"alpha(opacity="+b*100+")")}return c.filter&&c.filter.indexOf("opacity=")>=0?(parseFloat(c.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}f=f.replace(/-([a-z])/ig,function(j,i){return i.toUpperCase()});if(a){c[f]=b}return c[f]},trim:function(a){return(a||"").replace(/^\s+|\s+$/g,"")},makeArray:function(a){var c=[];if(a!=null){var b=a.length;if(b==null||typeof a==="string"||T.isFunction(a)||a.setInterval){c[0]=a}else{while(b){c[--b]=a[b]}}}return c},inArray:function(b,a){for(var d=0,c=a.length;d<c;d++){if(a[d]===b){return d}}return -1},merge:function(b,e){var d=0,c,a=b.length;if(!T.support.getAll){while((c=e[d++])!=null){if(c.nodeType!=8){b[a++]=c}}}else{while((c=e[d++])!=null){b[a++]=c}}return b},unique:function(a){var f=[],g={};try{for(var e=0,d=a.length;e<d;e++){var b=T.data(a[e]);if(!g[b]){g[b]=true;f.push(a[e])}}}catch(c){f=a}return f},grep:function(e,a,f){var d=[];for(var c=0,b=e.length;c<b;c++){if(!f!=!a(e[c],c)){d.push(e[c])}}return d},map:function(f,a){var e=[];for(var d=0,c=f.length;d<c;d++){var b=a(f[d],d);if(b!=null){e[e.length]=b}}return e.concat.apply([],e)}});var O=navigator.userAgent.toLowerCase();T.browser={version:(O.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(O),opera:/opera/.test(O),msie:/msie/.test(O)&&!/opera/.test(O),mozilla:/mozilla/.test(O)&&!/(compatible|webkit)/.test(O)};T.each({parent:function(a){return a.parentNode},parents:function(a){return T.dir(a,"parentNode")},next:function(a){return T.nth(a,2,"nextSibling")},prev:function(a){return T.nth(a,2,"previousSibling")},nextAll:function(a){return T.dir(a,"nextSibling")},prevAll:function(a){return T.dir(a,"previousSibling")},siblings:function(a){return T.sibling(a.parentNode.firstChild,a)},children:function(a){return T.sibling(a.firstChild)},contents:function(a){return T.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:T.makeArray(a.childNodes)}},function(b,a){T.fn[b]=function(d){var c=T.map(this,a);if(d&&typeof d=="string"){c=T.multiFilter(d,c)}return this.pushStack(T.unique(c),b,d)}});T.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(b,a){T.fn[b]=function(h){var e=[],c=T(h);for(var d=0,g=c.length;d<g;d++){var f=(d>0?this.clone(true):this).get();T.fn[a].apply(T(c[d]),f);e=e.concat(f)}return this.pushStack(e,b,h)}});T.each({removeAttr:function(a){T.attr(this,a,"");if(this.nodeType==1){this.removeAttribute(a)}},addClass:function(a){T.className.add(this,a)},removeClass:function(a){T.className.remove(this,a)},toggleClass:function(a,b){if(typeof b!=="boolean"){b=!T.className.has(this,a)}T.className[b?"add":"remove"](this,a)},remove:function(a){if(!a||T.filter(a,[this]).length){T("*",this).add([this]).each(function(){T.event.remove(this);T.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){T(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(b,a){T.fn[b]=function(){return this.each(a,arguments)}});function Z(b,a){return b[0]&&parseInt(T.curCSS(b[0],a,true),10)||0}var ab="jQuery"+ae(),I=0,S={};T.extend({cache:{},data:function(c,d,b){c=c==W?S:c;var a=c[ab];if(!a){a=c[ab]=++I}if(d&&!T.cache[a]){T.cache[a]={}}if(b!==ac){T.cache[a][d]=b}return d?T.cache[a][d]:a},removeData:function(c,d){c=c==W?S:c;var a=c[ab];if(d){if(T.cache[a]){delete T.cache[a][d];d="";for(d in T.cache[a]){break}if(!d){T.removeData(c)}}}else{try{delete c[ab]}catch(b){if(c.removeAttribute){c.removeAttribute(ab)}}delete T.cache[a]}},queue:function(c,d,a){if(c){d=(d||"fx")+"queue";var b=T.data(c,d);if(!b||T.isArray(a)){b=T.data(c,d,T.makeArray(a))}else{if(a){b.push(a)}}}return b},dequeue:function(a,b){var d=T.queue(a,b),c=d.shift();if(!b||b==="fx"){c=d[0]}if(c!==ac){c.call(a)}}});T.fn.extend({data:function(d,b){var a=d.split(".");a[1]=a[1]?"."+a[1]:"";if(b===ac){var c=this.triggerHandler("getData"+a[1]+"!",[a[0]]);if(c===ac&&this.length){c=T.data(this[0],d)}return c===ac&&a[1]?this.data(a[0]):c}else{return this.trigger("setData"+a[1]+"!",[a[0],b]).each(function(){T.data(this,d,b)})}},removeData:function(a){return this.each(function(){T.removeData(this,a)})},queue:function(b,a){if(typeof b!=="string"){a=b;b="fx"}if(a===ac){return T.queue(this[0],b)}return this.each(function(){var c=T.queue(this,b,a);if(b=="fx"&&c.length==1){c[0].call(this)}})},dequeue:function(a){return this.each(function(){T.dequeue(this,a)})}});(function(){var b=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,h=0,l=Object.prototype.toString;var n=function(r,v,aj,D){aj=aj||[];v=v||document;if(v.nodeType!==1&&v.nodeType!==9){return[]}if(!r||typeof r!=="string"){return aj}var q=[],t,A,x,w,C,u,s=true;b.lastIndex=0;while((t=b.exec(r))!==null){q.push(t[1]);if(t[2]){u=RegExp.rightContext;break}}if(q.length>1&&g.exec(r)){if(q.length===2&&k.relative[q[0]]){A=j(q[0]+q[1],v)}else{A=k.relative[q[0]]?[v]:n(q.shift(),v);while(q.length){r=q.shift();if(k.relative[r]){r+=q.shift()}A=j(r,A)}}}else{var B=D?{expr:q.pop(),set:o(D)}:n.find(q.pop(),q.length===1&&v.parentNode?v.parentNode:v,c(v));A=n.filter(B.expr,B.set);if(q.length>0){x=o(A)}else{s=false}while(q.length){var y=q.pop(),z=y;if(!k.relative[y]){y=""}else{z=q.pop()}if(z==null){z=v}k.relative[y](x,z,c(v))}}if(!x){x=A}if(!x){throw"Syntax error, unrecognized expression: "+(y||r)}if(l.call(x)==="[object Array]"){if(!s){aj.push.apply(aj,x)}else{if(v.nodeType===1){for(var p=0;x[p]!=null;p++){if(x[p]&&(x[p]===true||x[p].nodeType===1&&i(v,x[p]))){aj.push(A[p])}}}else{for(var p=0;x[p]!=null;p++){if(x[p]&&x[p].nodeType===1){aj.push(A[p])}}}}}else{o(x,aj)}if(u){n(u,v,aj,D);if(m){hasDuplicate=false;aj.sort(m);if(hasDuplicate){for(var p=1;p<aj.length;p++){if(aj[p]===aj[p-1]){aj.splice(p--,1)}}}}}return aj};n.matches=function(q,p){return n(q,null,null,p)};n.find=function(p,w,x){var q,s;if(!p){return[]}for(var t=0,u=k.order.length;t<u;t++){var r=k.order[t],s;if((s=k.match[r].exec(p))){var v=RegExp.leftContext;if(v.substr(v.length-1)!=="\\"){s[1]=(s[1]||"").replace(/\\/g,"");q=k.find[r](s,w,x);if(q!=null){p=p.replace(k.match[r],"");break}}}}if(!q){q=w.getElementsByTagName("*")}return{set:q,expr:p}};n.filter=function(C,D,z,t){var u=C,x=[],p=D,r,w,q=D&&D[0]&&c(D[0]);while(C&&D.length){for(var aj in k.filter){if((r=k.match[aj].exec(C))!=null){var v=k.filter[aj],y,A;w=false;if(p==x){x=[]}if(k.preFilter[aj]){r=k.preFilter[aj](r,p,z,x,t,q);if(!r){w=y=true}else{if(r===true){continue}}}if(r){for(var s=0;(A=p[s])!=null;s++){if(A){y=v(A,r,s,p);var B=t^!!y;if(z&&y!=null){if(B){w=true}else{p[s]=false}}else{if(B){x.push(A);w=true}}}}}if(y!==ac){if(!z){p=x}C=C.replace(k.match[aj],"");if(!w){return[]}break}}}if(C==u){if(w==null){throw"Syntax error, unrecognized expression: "+C}else{break}}u=C}return p};var k=n.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(p){return p.getAttribute("href")}},relative:{"+":function(p,w,q){var s=typeof w==="string",x=s&&!/\W/.test(w),r=s&&!x;if(x&&!q){w=w.toUpperCase()}for(var t=0,u=p.length,v;t<u;t++){if((v=p[t])){while((v=v.previousSibling)&&v.nodeType!==1){}p[t]=r||v&&v.nodeName===w?v||false:v===w}}if(r){n.filter(w,p,true)}},">":function(u,r,t){var w=typeof r==="string";if(w&&!/\W/.test(r)){r=t?r:r.toUpperCase();for(var q=0,s=u.length;q<s;q++){var v=u[q];if(v){var p=v.parentNode;u[q]=p.nodeName===r?p:false}}}else{for(var q=0,s=u.length;q<s;q++){var v=u[q];if(v){u[q]=w?v.parentNode:v.parentNode===r}}if(w){n.filter(r,u,true)}}},"":function(p,r,t){var q=h++,s=a;if(!r.match(/\W/)){var u=r=t?r:r.toUpperCase();s=d}s("parentNode",r,q,p,u,t)},"~":function(p,r,t){var q=h++,s=a;if(typeof r==="string"&&!r.match(/\W/)){var u=r=t?r:r.toUpperCase();s=d}s("previousSibling",r,q,p,u,t)}},find:{ID:function(r,q,p){if(typeof q.getElementById!=="undefined"&&!p){var s=q.getElementById(r[1]);return s?[s]:[]}},NAME:function(q,u,t){if(typeof u.getElementsByName!=="undefined"){var r=[],v=u.getElementsByName(q[1]);for(var p=0,s=v.length;p<s;p++){if(v[p].getAttribute("name")===q[1]){r.push(v[p])}}return r.length===0?null:r}},TAG:function(q,p){return p.getElementsByTagName(q[1])}},preFilter:{CLASS:function(p,r,q,s,u,t){p=" "+p[1].replace(/\\/g,"")+" ";if(t){return p}for(var w=0,v;(v=r[w])!=null;w++){if(v){if(u^(v.className&&(" "+v.className+" ").indexOf(p)>=0)){if(!q){s.push(v)}}else{if(q){r[w]=false}}}}return false},ID:function(p){return p[1].replace(/\\/g,"")},TAG:function(q,r){for(var p=0;r[p]===false;p++){}return r[p]&&c(r[p])?q[1]:q[1].toUpperCase()},CHILD:function(q){if(q[1]=="nth"){var p=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(q[2]=="even"&&"2n"||q[2]=="odd"&&"2n+1"||!/\D/.test(q[2])&&"0n+"+q[2]||q[2]);q[2]=(p[1]+(p[2]||1))-0;q[3]=p[3]-0}q[0]=h++;return q},ATTR:function(v,r,q,s,u,t){var p=v[1].replace(/\\/g,"");if(!t&&k.attrMap[p]){v[1]=k.attrMap[p]}if(v[2]==="~="){v[4]=" "+v[4]+" "}return v},PSEUDO:function(u,r,q,s,t){if(u[1]==="not"){if(u[3].match(b).length>1||/^\w/.test(u[3])){u[3]=n(u[3],null,null,r)}else{var p=n.filter(u[3],r,q,true^t);if(!q){s.push.apply(s,p)}return false}}else{if(k.match.POS.test(u[0])||k.match.CHILD.test(u[0])){return true}}return u},POS:function(p){p.unshift(true);return p}},filters:{enabled:function(p){return p.disabled===false&&p.type!=="hidden"},disabled:function(p){return p.disabled===true},checked:function(p){return p.checked===true},selected:function(p){p.parentNode.selectedIndex;return p.selected===true},parent:function(p){return !!p.firstChild},empty:function(p){return !p.firstChild},has:function(p,q,r){return !!n(r[3],p).length},header:function(p){return/h\d/i.test(p.nodeName)},text:function(p){return"text"===p.type},radio:function(p){return"radio"===p.type},checkbox:function(p){return"checkbox"===p.type},file:function(p){return"file"===p.type},password:function(p){return"password"===p.type},submit:function(p){return"submit"===p.type},image:function(p){return"image"===p.type},reset:function(p){return"reset"===p.type},button:function(p){return"button"===p.type||p.nodeName.toUpperCase()==="BUTTON"},input:function(p){return/input|select|textarea|button/i.test(p.nodeName)}},setFilters:{first:function(p,q){return q===0},last:function(q,r,s,p){return r===p.length-1},even:function(p,q){return q%2===0},odd:function(p,q){return q%2===1},lt:function(p,q,r){return q<r[3]-0},gt:function(p,q,r){return q>r[3]-0},nth:function(p,q,r){return r[3]-0==q},eq:function(p,q,r){return r[3]-0==q}},filter:{PSEUDO:function(u,q,p,t){var r=q[1],w=k.filters[r];if(w){return w(u,p,q,t)}else{if(r==="contains"){return(u.textContent||u.innerText||"").indexOf(q[3])>=0}else{if(r==="not"){var v=q[3];for(var p=0,s=v.length;p<s;p++){if(v[p]===u){return false}}return true}}}},CHILD:function(w,t){var q=t[1],v=w;switch(q){case"only":case"first":while(v=v.previousSibling){if(v.nodeType===1){return false}}if(q=="first"){return true}v=w;case"last":while(v=v.nextSibling){if(v.nodeType===1){return false}}return true;case"nth":var u=t[2],x=t[3];if(u==1&&x==0){return true}var r=t[0],y=w.parentNode;if(y&&(y.sizcache!==r||!w.nodeIndex)){var s=0;for(v=y.firstChild;v;v=v.nextSibling){if(v.nodeType===1){v.nodeIndex=++s}}y.sizcache=r}var p=w.nodeIndex-x;if(u==0){return p==0}else{return(p%u==0&&p/u>=0)}}},ID:function(p,q){return p.nodeType===1&&p.getAttribute("id")===q},TAG:function(p,q){return(q==="*"&&p.nodeType===1)||p.nodeName===q},CLASS:function(p,q){return(" "+(p.className||p.getAttribute("class"))+" ").indexOf(q)>-1},ATTR:function(u,p){var q=p[1],s=k.attrHandle[q]?k.attrHandle[q](u):u[q]!=null?u[q]:u.getAttribute(q),t=s+"",v=p[2],r=p[4];return s==null?v==="!=":v==="="?t===r:v==="*="?t.indexOf(r)>=0:v==="~="?(" "+t+" ").indexOf(r)>=0:!r?t&&s!==false:v==="!="?t!=r:v==="^="?t.indexOf(r)===0:v==="$="?t.substr(t.length-r.length)===r:v==="|="?t===r||t.substr(0,r.length+1)===r+"-":false},POS:function(u,r,q,t){var s=r[2],p=k.setFilters[s];if(p){return p(u,q,r,t)}}}};var g=k.match.POS;for(var e in k.match){k.match[e]=RegExp(k.match[e].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var o=function(p,q){p=Array.prototype.slice.call(p);if(q){q.push.apply(q,p);return q}return p};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(f){o=function(t,p){var r=p||[];if(l.call(t)==="[object Array]"){Array.prototype.push.apply(r,t)}else{if(typeof t.length==="number"){for(var q=0,s=t.length;q<s;q++){r.push(t[q])}}else{for(var q=0;t[q];q++){r.push(t[q])}}}return r}}var m;if(document.documentElement.compareDocumentPosition){m=function(q,r){var p=q.compareDocumentPosition(r)&4?-1:q===r?0:1;if(p===0){hasDuplicate=true}return p}}else{if("sourceIndex" in document.documentElement){m=function(q,r){var p=q.sourceIndex-r.sourceIndex;if(p===0){hasDuplicate=true}return p}}else{if(document.createRange){m=function(p,r){var q=p.ownerDocument.createRange(),s=r.ownerDocument.createRange();q.selectNode(p);q.collapse(true);s.selectNode(r);s.collapse(true);var t=q.compareBoundaryPoints(Range.START_TO_END,s);if(t===0){hasDuplicate=true}return t}}}}(function(){var q=document.createElement("form"),p="script"+(new Date).getTime();q.innerHTML="<input name='"+p+"'/>";var r=document.documentElement;r.insertBefore(q,r.firstChild);if(!!document.getElementById(p)){k.find.ID=function(v,u,t){if(typeof u.getElementById!=="undefined"&&!t){var s=u.getElementById(v[1]);return s?s.id===v[1]||typeof s.getAttributeNode!=="undefined"&&s.getAttributeNode("id").nodeValue===v[1]?[s]:ac:[]}};k.filter.ID=function(t,s){var u=typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id");return t.nodeType===1&&u&&u.nodeValue===s}}r.removeChild(q)})();(function(){var p=document.createElement("div");p.appendChild(document.createComment(""));if(p.getElementsByTagName("*").length>0){k.find.TAG=function(s,t){var u=t.getElementsByTagName(s[1]);if(s[1]==="*"){var q=[];for(var r=0;u[r];r++){if(u[r].nodeType===1){q.push(u[r])}}u=q}return u}}p.innerHTML="<a href='#'></a>";if(p.firstChild&&typeof p.firstChild.getAttribute!=="undefined"&&p.firstChild.getAttribute("href")!=="#"){k.attrHandle.href=function(q){return q.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var q=n,p=document.createElement("div");p.innerHTML="<p class='TEST'></p>";if(p.querySelectorAll&&p.querySelectorAll(".TEST").length===0){return}n=function(u,v,s,r){v=v||document;if(!r&&v.nodeType===9&&!c(v)){try{return o(v.querySelectorAll(u),s)}catch(t){}}return q(u,v,s,r)};n.find=q.find;n.filter=q.filter;n.selectors=q.selectors;n.matches=q.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var p=document.createElement("div");p.innerHTML="<div class='test e'></div><div class='test'></div>";if(p.getElementsByClassName("e").length===0){return}p.lastChild.className="e";if(p.getElementsByClassName("e").length===1){return}k.order.splice(1,0,"CLASS");k.find.CLASS=function(s,r,q){if(typeof r.getElementsByClassName!=="undefined"&&!q){return r.getElementsByClassName(s[1])}}})()}function d(v,q,r,x,p,y){var z=v=="previousSibling"&&!y;for(var t=0,u=x.length;t<u;t++){var w=x[t];if(w){if(z&&w.nodeType===1){w.sizcache=r;w.sizset=t}w=w[v];var s=false;while(w){if(w.sizcache===r){s=x[w.sizset];break}if(w.nodeType===1&&!y){w.sizcache=r;w.sizset=t}if(w.nodeName===q){s=w;break}w=w[v]}x[t]=s}}}function a(v,q,r,x,p,y){var z=v=="previousSibling"&&!y;for(var t=0,u=x.length;t<u;t++){var w=x[t];if(w){if(z&&w.nodeType===1){w.sizcache=r;w.sizset=t}w=w[v];var s=false;while(w){if(w.sizcache===r){s=x[w.sizset];break}if(w.nodeType===1){if(!y){w.sizcache=r;w.sizset=t}if(typeof q!=="string"){if(w===q){s=true;break}}else{if(n.filter(q,[w]).length>0){s=w;break}}}w=w[v]}x[t]=s}}}var i=document.compareDocumentPosition?function(p,q){return p.compareDocumentPosition(q)&16}:function(p,q){return p!==q&&(p.contains?p.contains(q):true)};var c=function(p){return p.nodeType===9&&p.documentElement.nodeName!=="HTML"||!!p.ownerDocument&&c(p.ownerDocument)};var j=function(s,u){var p=[],w="",v,q=u.nodeType?[u]:u;while((v=k.match.PSEUDO.exec(s))){w+=v[0];s=s.replace(k.match.PSEUDO,"")}s=k.relative[s]?s+"*":s;for(var t=0,r=q.length;t<r;t++){n(s,q[t],p)}return n.filter(w,p)};T.find=n;T.filter=n.filter;T.expr=n.selectors;T.expr[":"]=T.expr.filters;n.selectors.filters.hidden=function(p){return p.offsetWidth===0||p.offsetHeight===0};n.selectors.filters.visible=function(p){return p.offsetWidth>0||p.offsetHeight>0};n.selectors.filters.animated=function(p){return T.grep(T.timers,function(q){return p===q.elem}).length};T.multiFilter=function(p,r,q){if(q){p=":not("+p+")"}return n.matches(p,r)};T.dir=function(q,r){var s=[],p=q[r];while(p&&p!=document){if(p.nodeType==1){s.push(p)}p=p[r]}return s};T.nth=function(t,s,q,p){s=s||1;var r=0;for(;t;t=t[q]){if(t.nodeType==1&&++r==s){break}}return t};T.sibling=function(p,q){var r=[];for(;p;p=p.nextSibling){if(p.nodeType==1&&p!=q){r.push(p)}}return r};return;W.Sizzle=n})();T.event={add:function(c,f,d,a){if(c.nodeType==3||c.nodeType==8){return}if(c.setInterval&&c!=W){c=W}if(!d.guid){d.guid=this.guid++}if(a!==ac){var e=d;d=this.proxy(e);d.data=a}var g=T.data(c,"events")||T.data(c,"events",{}),b=T.data(c,"handle")||T.data(c,"handle",function(){return typeof T!=="undefined"&&!T.event.triggered?T.event.handle.apply(arguments.callee.elem,arguments):ac});b.elem=c;T.each(f.split(/\s+/),function(k,j){var i=j.split(".");j=i.shift();d.type=i.slice().sort().join(".");var h=g[j];if(T.event.specialAll[j]){T.event.specialAll[j].setup.call(c,a,i)}if(!h){h=g[j]={};if(!T.event.special[j]||T.event.special[j].setup.call(c,a,i)===false){if(c.addEventListener){c.addEventListener(j,b,false)}else{if(c.attachEvent){c.attachEvent("on"+j,b)}}}}h[d.guid]=d;T.event.global[j]=true});c=null},guid:1,global:{},remove:function(b,e,c){if(b.nodeType==3||b.nodeType==8){return}var f=T.data(b,"events"),g,h;if(f){if(e===ac||(typeof e==="string"&&e.charAt(0)==".")){for(var d in f){this.remove(b,d+(e||""))}}else{if(e.type){c=e.handler;e=e.type}T.each(e.split(/\s+/),function(m,k){var i=k.split(".");k=i.shift();var l=RegExp("(^|\\.)"+i.slice().sort().join(".*\\.")+"(\\.|$)");if(f[k]){if(c){delete f[k][c.guid]}else{for(var j in f[k]){if(l.test(f[k][j].type)){delete f[k][j]}}}if(T.event.specialAll[k]){T.event.specialAll[k].teardown.call(b,i)}for(g in f[k]){break}if(!g){if(!T.event.special[k]||T.event.special[k].teardown.call(b,i)===false){if(b.removeEventListener){b.removeEventListener(k,T.data(b,"handle"),false)}else{if(b.detachEvent){b.detachEvent("on"+k,T.data(b,"handle"))}}}g=null;delete f[k]}}})}for(g in f){break}if(!g){var a=T.data(b,"handle");if(a){a.elem=null}T.removeData(b,"events");T.removeData(b,"handle")}}},trigger:function(d,b,e,h){var f=d.type||d;if(!h){d=typeof d==="object"?d[ab]?d:T.extend(T.Event(f),d):T.Event(f);if(f.indexOf("!")>=0){d.type=f=f.slice(0,-1);d.exclusive=true}if(!e){d.stopPropagation();if(this.global[f]){T.each(T.cache,function(){if(this.events&&this.events[f]){T.event.trigger(d,b,this.handle.elem)}})}}if(!e||e.nodeType==3||e.nodeType==8){return ac}d.result=ac;d.target=e;b=T.makeArray(b);b.unshift(d)}d.currentTarget=e;var c=T.data(e,"handle");if(c){c.apply(e,b)}if((!e[f]||(T.nodeName(e,"a")&&f=="click"))&&e["on"+f]&&e["on"+f].apply(e,b)===false){d.result=false}if(!h&&e[f]&&!d.isDefaultPrevented()&&!(T.nodeName(e,"a")&&f=="click")){this.triggered=true;try{e[f]()}catch(a){}}this.triggered=false;if(!d.isPropagationStopped()){var g=e.parentNode||e.ownerDocument;if(g){T.event.trigger(d,b,g,true)}}},handle:function(b){var c,h;b=arguments[0]=T.event.fix(b||W.event);b.currentTarget=this;var a=b.type.split(".");b.type=a.shift();c=!a.length&&!b.exclusive;var d=RegExp("(^|\\.)"+a.slice().sort().join(".*\\.")+"(\\.|$)");h=(T.data(this,"events")||{})[b.type];for(var f in h){var e=h[f];if(c||d.test(e.type)){b.handler=e;b.data=e.data;var g=e.apply(this,arguments);if(g!==ac){b.result=g;if(g===false){b.preventDefault();b.stopPropagation()}}if(b.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(c){if(c[ab]){return c}var e=c;c=T.Event(e);for(var d=this.props.length,a;d;){a=this.props[--d];c[a]=e[a]}if(!c.target){c.target=c.srcElement||document}if(c.target.nodeType==3){c.target=c.target.parentNode}if(!c.relatedTarget&&c.fromElement){c.relatedTarget=c.fromElement==c.target?c.toElement:c.fromElement}if(c.pageX==null&&c.clientX!=null){var b=document.documentElement,f=document.body;c.pageX=c.clientX+(b&&b.scrollLeft||f&&f.scrollLeft||0)-(b.clientLeft||0);c.pageY=c.clientY+(b&&b.scrollTop||f&&f.scrollTop||0)-(b.clientTop||0)}if(!c.which&&((c.charCode||c.charCode===0)?c.charCode:c.keyCode)){c.which=c.charCode||c.keyCode}if(!c.metaKey&&c.ctrlKey){c.metaKey=c.ctrlKey}if(!c.which&&c.button){c.which=(c.button&1?1:(c.button&2?3:(c.button&4?2:0)))}return c},proxy:function(a,b){b=b||function(){return a.apply(this,arguments)};b.guid=a.guid=a.guid||b.guid||this.guid++;return b},special:{ready:{setup:P,teardown:function(){}}},specialAll:{live:{setup:function(b,a){T.event.add(this,a[0],ag)},teardown:function(a){if(a.length){var c=0,b=RegExp("(^|\\.)"+a[0]+"(\\.|$)");T.each((T.data(this,"events").live||{}),function(){if(b.test(this.type)){c++}});if(c<1){T.event.remove(this,a[0],ag)}}}}}};T.Event=function(a){if(!this.preventDefault){return new T.Event(a)}if(a&&a.type){this.originalEvent=a;this.type=a.type}else{this.type=a}this.timeStamp=ae();this[ab]=true};function Y(){return false}function J(){return true}T.Event.prototype={preventDefault:function(){this.isDefaultPrevented=J;var a=this.originalEvent;if(!a){return}if(a.preventDefault){a.preventDefault()}a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=J;var a=this.originalEvent;if(!a){return}if(a.stopPropagation){a.stopPropagation()}a.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=J;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var ai=function(b){var c=b.relatedTarget;while(c&&c!=this){try{c=c.parentNode}catch(a){c=this}}if(c!=this){b.type=b.data;T.event.handle.apply(this,arguments)}};T.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(a,b){T.event.special[b]={setup:function(){T.event.add(this,a,ai,b)},teardown:function(){T.event.remove(this,a,ai)}}});T.fn.extend({bind:function(b,a,c){return b=="unload"?this.one(b,a,c):this.each(function(){T.event.add(this,b,c||a,c&&a)})},one:function(b,a,c){var d=T.event.proxy(c||a,function(e){T(this).unbind(e,d);return(c||a).apply(this,arguments)});return this.each(function(){T.event.add(this,b,d,c&&a)})},unbind:function(a,b){return this.each(function(){T.event.remove(this,a,b)})},trigger:function(b,a){return this.each(function(){T.event.trigger(b,a,this)})},triggerHandler:function(c,a){if(this[0]){var b=T.Event(c);b.preventDefault();b.stopPropagation();T.event.trigger(b,a,this[0]);return b.result}},toggle:function(a){var c=arguments,b=1;while(b<c.length){T.event.proxy(a,c[b++])}return this.click(T.event.proxy(a,function(d){this.lastToggle=(this.lastToggle||0)%b;d.preventDefault();return c[this.lastToggle++].apply(this,arguments)||false}))},hover:function(b,a){return this.mouseenter(b).mouseleave(a)},ready:function(a){P();if(T.isReady){a.call(document,T)}else{T.readyList.push(a)}return this},live:function(a,b){var c=T.event.proxy(b);c.guid+=this.selector+a;T(document).bind(aa(a,this.selector),this.selector,c);return this},die:function(a,b){T(document).unbind(aa(a,this.selector),b?{guid:b.guid+this.selector+a}:null);return this}});function ag(a){var d=RegExp("(^|\\.)"+a.type+"(\\.|$)"),b=true,c=[];T.each(T.data(this,"events").live||[],function(g,f){if(d.test(f.type)){var e=T(a.target).closest(f.data)[0];if(e){c.push({elem:e,fn:f})}}});c.sort(function(e,f){return T.data(e.elem,"closest")-T.data(f.elem,"closest")});T.each(c,function(){if(this.fn.call(this.elem,a,this.fn.data)===false){return(b=false)}});return b}function aa(a,b){return["live",a,b.replace(/\./g,"`").replace(/ /g,"|")].join(".")}T.extend({isReady:false,readyList:[],ready:function(){if(!T.isReady){T.isReady=true;if(T.readyList){T.each(T.readyList,function(){this.call(document,T)});T.readyList=null}T(document).triggerHandler("ready")}}});var G=false;function P(){if(G){return}G=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);T.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);T.ready()}});if(document.documentElement.doScroll&&W==W.top){(function(){if(T.isReady){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}T.ready()})()}}}T.event.add(W,"load",T.ready)}T.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(a,b){T.fn[b]=function(c){return c?this.bind(b,c):this.trigger(b)}});T(W).bind("unload",function(){for(var a in T.cache){if(a!=1&&T.cache[a].handle){T.event.remove(T.cache[a].handle.elem)}}});(function(){T.support={};var f=document.documentElement,e=document.createElement("script"),a=document.createElement("div"),b="script"+(new Date).getTime();a.style.display="none";a.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var d=a.getElementsByTagName("*"),g=a.getElementsByTagName("a")[0];if(!d||!d.length||!g){return}T.support={leadingWhitespace:a.firstChild.nodeType==3,tbody:!a.getElementsByTagName("tbody").length,objectAll:!!a.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/red/.test(g.getAttribute("style")),hrefNormalized:g.getAttribute("href")==="/a",opacity:g.style.opacity==="0.5",cssFloat:!!g.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};e.type="text/javascript";try{e.appendChild(document.createTextNode("window."+b+"=1;"))}catch(c){}f.insertBefore(e,f.firstChild);if(W[b]){T.support.scriptEval=true;delete W[b]}f.removeChild(e);if(a.attachEvent&&a.fireEvent){a.attachEvent("onclick",function(){T.support.noCloneEvent=false;a.detachEvent("onclick",arguments.callee)});a.cloneNode(true).fireEvent("onclick")}T(function(){var h=document.createElement("div");h.style.width=h.style.paddingLeft="1px";document.body.appendChild(h);T.boxModel=T.support.boxModel=h.offsetWidth===2;document.body.removeChild(h).style.display="none"})})();var H=T.support.cssFloat?"cssFloat":"styleFloat";T.props={"for":"htmlFor","class":"className","float":H,cssFloat:H,styleFloat:H,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};T.fn.extend({_load:T.fn.load,load:function(e,b,a){if(typeof e!=="string"){return this._load(e)}var c=e.indexOf(" ");if(c>=0){var g=e.slice(c,e.length);e=e.slice(0,c)}var d="GET";if(b){if(T.isFunction(b)){a=b;b=null}else{if(typeof b==="object"){b=T.param(b);d="POST"}}}var f=this;T.ajax({url:e,type:d,dataType:"html",data:b,complete:function(i,h){if(h=="success"||h=="notmodified"){f.html(g?T("<div/>").append(i.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(g):i.responseText)}if(a){f.each(a,[i.responseText,h,i])}}});return this},serialize:function(){return T.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?T.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(c,b){var a=T(this).val();return a==null?null:T.isArray(a)?T.map(a,function(d,e){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});T.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(b,a){T.fn[a]=function(c){return this.bind(a,c)}});var N=ae();T.extend({get:function(d,b,a,c){if(T.isFunction(b)){a=b;b=null}return T.ajax({type:"GET",url:d,data:b,success:a,dataType:c})},getScript:function(b,a){return T.get(b,null,a,"script")},getJSON:function(c,b,a){return T.get(c,b,a,"json")},post:function(d,b,a,c){if(T.isFunction(b)){a=b;b={}}return T.ajax({type:"POST",url:d,data:b,success:a,dataType:c})},ajaxSetup:function(a){T.extend(T.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return W.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(k){k=T.extend(true,k,T.extend(true,{},T.ajaxSettings,k));var a,r=/=\?(&|$)/g,f,b,q=k.type.toUpperCase();if(k.data&&k.processData&&typeof k.data!=="string"){k.data=T.param(k.data)}if(k.dataType=="jsonp"){if(q=="GET"){if(!k.url.match(r)){k.url+=(k.url.match(/\?/)?"&":"?")+(k.jsonp||"callback")+"=?"}}else{if(!k.data||!k.data.match(r)){k.data=(k.data?k.data+"&":"")+(k.jsonp||"callback")+"=?"}}k.dataType="json"}if(k.dataType=="json"&&(k.data&&k.data.match(r)||k.url.match(r))){a="jsonp"+N++;if(k.data){k.data=(k.data+"").replace(r,"="+a+"$1")}k.url=k.url.replace(r,"="+a+"$1");k.dataType="script";W[a]=function(u){b=u;o();l();W[a]=ac;try{delete W[a]}catch(t){}if(p){p.removeChild(d)}}}if(k.dataType=="script"&&k.cache==null){k.cache=false}if(k.cache===false&&q=="GET"){var s=ae();var c=k.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+s+"$2");k.url=c+((c==k.url)?(k.url.match(/\?/)?"&":"?")+"_="+s:"")}if(k.data&&q=="GET"){k.url+=(k.url.match(/\?/)?"&":"?")+k.data;k.data=null}if(k.global&&!T.active++){T.event.trigger("ajaxStart")}var g=/^(\w+:)?\/\/([^\/?#]+)/.exec(k.url);if(k.dataType=="script"&&q=="GET"&&g&&(g[1]&&g[1]!=location.protocol||g[2]!=location.host)){var p=document.getElementsByTagName("head")[0];var d=document.createElement("script");d.src=k.url;if(k.scriptCharset){d.charset=k.scriptCharset}if(!a){var i=false;d.onload=d.onreadystatechange=function(){if(!i&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){i=true;o();l();d.onload=d.onreadystatechange=null;p.removeChild(d)}}}p.appendChild(d);return ac}var m=false;var n=k.xhr();if(k.username){n.open(q,k.url,k.async,k.username,k.password)}else{n.open(q,k.url,k.async)}try{if(k.data){n.setRequestHeader("Content-Type",k.contentType)}if(k.ifModified){n.setRequestHeader("If-Modified-Since",T.lastModified[k.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}n.setRequestHeader("X-Requested-With","XMLHttpRequest");n.setRequestHeader("Accept",k.dataType&&k.accepts[k.dataType]?k.accepts[k.dataType]+", */*":k.accepts._default)}catch(e){}if(k.beforeSend&&k.beforeSend(n,k)===false){if(k.global&&!--T.active){T.event.trigger("ajaxStop")}n.abort();return false}if(k.global){T.event.trigger("ajaxSend",[n,k])}var j=function(v){if(n.readyState==0){if(h){clearInterval(h);h=null;if(k.global&&!--T.active){T.event.trigger("ajaxStop")}}}else{if(!m&&n&&(n.readyState==4||v=="timeout")){m=true;if(h){clearInterval(h);h=null}f=v=="timeout"?"timeout":!T.httpSuccess(n)?"error":k.ifModified&&T.httpNotModified(n,k.url)?"notmodified":"success";if(f=="success"){try{b=T.httpData(n,k.dataType,k)}catch(t){f="parsererror"}}if(f=="success"){var u;try{u=n.getResponseHeader("Last-Modified")}catch(t){}if(k.ifModified&&u){T.lastModified[k.url]=u}if(!a){o()}}else{T.handleError(k,n,f)}l();if(v){n.abort()}if(k.async){n=null}}}};if(k.async){var h=setInterval(j,13);if(k.timeout>0){setTimeout(function(){if(n&&!m){j("timeout")}},k.timeout)}}try{n.send(k.data)}catch(e){T.handleError(k,n,null,e)}if(!k.async){j()}function o(){if(k.success){k.success(b,f)}if(k.global){T.event.trigger("ajaxSuccess",[n,k])}}function l(){if(k.complete){k.complete(n,f)}if(k.global){T.event.trigger("ajaxComplete",[n,k])}if(k.global&&!--T.active){T.event.trigger("ajaxStop")}}return n},handleError:function(c,a,d,b){if(c.error){c.error(a,d,b)}if(c.global){T.event.trigger("ajaxError",[a,c,b])}},active:0,httpSuccess:function(a){try{return !a.status&&location.protocol=="file:"||(a.status>=200&&a.status<300)||a.status==304||a.status==1223}catch(b){}return false},httpNotModified:function(b,d){try{var a=b.getResponseHeader("Last-Modified");return b.status==304||a==T.lastModified[d]}catch(c){}return false},httpData:function(a,c,d){var e=a.getResponseHeader("content-type"),f=c=="xml"||!c&&e&&e.indexOf("xml")>=0,b=f?a.responseXML:a.responseText;if(f&&b.documentElement.tagName=="parsererror"){throw"parsererror"}if(d&&d.dataFilter){b=d.dataFilter(b,c)}if(typeof b==="string"){if(c=="script"){T.globalEval(b)}if(c=="json"){b=W["eval"]("("+b+")")}}return b},param:function(d){var b=[];function a(f,e){b[b.length]=encodeURIComponent(f)+"="+encodeURIComponent(e)}if(T.isArray(d)||d.jquery){T.each(d,function(){a(this.name,this.value)})}else{for(var c in d){if(T.isArray(d[c])){T.each(d[c],function(){a(c,this)})}else{a(c,T.isFunction(d[c])?d[c]():d[c])}}}return b.join("&").replace(/%20/g,"+")}});var V={},U,af=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function K(b,c){var a={};T.each(af.concat.apply([],af.slice(0,c)),function(){a[this]=b});return a}T.fn.extend({show:function(c,a){if(c){return this.animate(K("show",3),c,a)}else{for(var e=0,g=this.length;e<g;e++){var h=T.data(this[e],"olddisplay");this[e].style.display=h||"";if(T.css(this[e],"display")==="none"){var f=this[e].tagName,b;if(V[f]){b=V[f]}else{var d=T("<"+f+" />").appendTo("body");b=d.css("display");if(b==="none"){b="block"}d.remove();V[f]=b}T.data(this[e],"olddisplay",b)}}for(var e=0,g=this.length;e<g;e++){this[e].style.display=T.data(this[e],"olddisplay")||""}return this}},hide:function(b,a){if(b){return this.animate(K("hide",3),b,a)}else{for(var c=0,d=this.length;c<d;c++){var e=T.data(this[c],"olddisplay");if(!e&&e!=="none"){T.data(this[c],"olddisplay",T.css(this[c],"display"))}}for(var c=0,d=this.length;c<d;c++){this[c].style.display="none"}return this}},_toggle:T.fn.toggle,toggle:function(a,b){var c=typeof a==="boolean";return T.isFunction(a)&&T.isFunction(b)?this._toggle.apply(this,arguments):a==null||c?this.each(function(){var d=c?a:T(this).is(":hidden");T(this)[d?"show":"hide"]()}):this.animate(K("toggle",3),a,b)},fadeTo:function(c,a,b){return this.animate({opacity:a},c,b)},animate:function(a,d,b,c){var e=T.speed(d,b,c);return this[e.queue===false?"each":"queue"](function(){var g=T.extend({},e),i,f=this.nodeType==1&&T(this).is(":hidden"),h=this;for(i in a){if(a[i]=="hide"&&f||a[i]=="show"&&!f){return g.complete.call(this)}if((i=="height"||i=="width")&&this.style){g.display=T.css(this,"display");g.overflow=this.style.overflow}}if(g.overflow!=null){this.style.overflow="hidden"}g.curAnim=T.extend({},a);T.each(a,function(o,k){var l=new T.fx(h,g,o);if(/toggle|show|hide/.test(k)){l[k=="toggle"?f?"show":"hide":k](a)}else{var m=k.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),j=l.cur(true)||0;if(m){var p=parseFloat(m[2]),n=m[3]||"px";if(n!="px"){h.style[o]=(p||1)+n;j=((p||1)/l.cur(true))*j;h.style[o]=j+n}if(m[1]){p=((m[1]=="-="?-1:1)*p)+j}l.custom(j,p,n)}else{l.custom(j,k,"")}}});return true})},stop:function(b,c){var a=T.timers;if(b){this.queue([])}this.each(function(){for(var d=a.length-1;d>=0;d--){if(a[d].elem==this){if(c){a[d](true)}a.splice(d,1)}}});if(!c){this.dequeue()}return this}});T.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(b,a){T.fn[b]=function(d,c){return this.animate(a,d,c)}});T.extend({speed:function(b,a,c){var d=typeof b==="object"?b:{complete:c||!c&&a||T.isFunction(b)&&b,duration:b,easing:c&&a||a&&!T.isFunction(a)&&a};d.duration=T.fx.off?0:typeof d.duration==="number"?d.duration:T.fx.speeds[d.duration]||T.fx.speeds._default;d.old=d.complete;d.complete=function(){if(d.queue!==false){T(this).dequeue()}if(T.isFunction(d.old)){d.old.call(this)}};return d},easing:{linear:function(b,a,d,c){return d+c*b},swing:function(b,a,d,c){return((-Math.cos(b*Math.PI)/2)+0.5)*c+d}},timers:[],fx:function(b,c,a){this.options=c;this.elem=b;this.prop=a;if(!c.orig){c.orig={}}}});T.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(T.fx.step[this.prop]||T.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var b=parseFloat(T.css(this.elem,this.prop,a));return b&&b>-10000?b:parseFloat(T.curCSS(this.elem,this.prop))||0},custom:function(a,b,c){this.startTime=ae();this.start=a;this.end=b;this.unit=c||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;function d(f){return e.step(f)}d.elem=this.elem;if(d()&&T.timers.push(d)&&!U){U=setInterval(function(){var f=T.timers;for(var g=0;g<f.length;g++){if(!f[g]()){f.splice(g--,1)}}if(!f.length){clearInterval(U);U=ac}},13)}},show:function(){this.options.orig[this.prop]=T.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());T(this.elem).show()},hide:function(){this.options.orig[this.prop]=T.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(c){var d=ae();if(c||d>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var f=true;for(var e in this.options.curAnim){if(this.options.curAnim[e]!==true){f=false}}if(f){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(T.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){T(this.elem).hide()}if(this.options.hide||this.options.show){for(var b in this.options.curAnim){T.attr(this.elem.style,b,this.options.orig[b])}}this.options.complete.call(this.elem)}return false}else{var a=d-this.startTime;this.state=a/this.options.duration;this.pos=T.easing[this.options.easing||(T.easing.swing?"swing":"linear")](this.state,a,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};T.extend(T.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){T.attr(a.elem.style,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null){a.elem.style[a.prop]=a.now+a.unit}else{a.elem[a.prop]=a.now}}}});if(document.documentElement.getBoundingClientRect){T.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return T.offset.bodyOffset(this[0])}var f=this[0].getBoundingClientRect(),c=this[0].ownerDocument,g=c.body,h=c.documentElement,a=h.clientTop||g.clientTop||0,b=h.clientLeft||g.clientLeft||0,d=f.top+(self.pageYOffset||T.boxModel&&h.scrollTop||g.scrollTop)-a,e=f.left+(self.pageXOffset||T.boxModel&&h.scrollLeft||g.scrollLeft)-b;return{top:d,left:e}}}else{T.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return T.offset.bodyOffset(this[0])}T.offset.initialized||T.offset.initialize();var f=this[0],i=f.offsetParent,j=f,a=f.ownerDocument,c,h=a.documentElement,e=a.body,d=a.defaultView,k=d.getComputedStyle(f,null),b=f.offsetTop,g=f.offsetLeft;while((f=f.parentNode)&&f!==e&&f!==h){c=d.getComputedStyle(f,null);b-=f.scrollTop,g-=f.scrollLeft;if(f===i){b+=f.offsetTop,g+=f.offsetLeft;if(T.offset.doesNotAddBorder&&!(T.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(f.tagName))){b+=parseInt(c.borderTopWidth,10)||0,g+=parseInt(c.borderLeftWidth,10)||0}j=i,i=f.offsetParent}if(T.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"){b+=parseInt(c.borderTopWidth,10)||0,g+=parseInt(c.borderLeftWidth,10)||0}k=c}if(k.position==="relative"||k.position==="static"){b+=e.offsetTop,g+=e.offsetLeft}if(k.position==="fixed"){b+=Math.max(h.scrollTop,e.scrollTop),g+=Math.max(h.scrollLeft,e.scrollLeft)}return{top:b,left:g}}}T.offset={initialize:function(){if(this.initialized){return}var c=document.body,i=document.createElement("div"),g,h,a,f,b,j,e=c.style.marginTop,d='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';b={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(j in b){i.style[j]=b[j]}i.innerHTML=d;c.insertBefore(i,c.firstChild);g=i.firstChild,h=g.firstChild,f=g.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(h.offsetTop!==5);this.doesAddBorderForTableAndCells=(f.offsetTop===5);g.style.overflow="hidden",g.style.position="relative";this.subtractsBorderForOverflowNotVisible=(h.offsetTop===-5);c.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(c.offsetTop===0);c.style.marginTop=e;c.removeChild(i);this.initialized=true},bodyOffset:function(c){T.offset.initialized||T.offset.initialize();var a=c.offsetTop,b=c.offsetLeft;if(T.offset.doesNotIncludeMarginInBodyOffset){a+=parseInt(T.curCSS(c,"marginTop",true),10)||0,b+=parseInt(T.curCSS(c,"marginLeft",true),10)||0}return{top:a,left:b}}};T.fn.extend({position:function(){var b=0,c=0,e;if(this[0]){var d=this.offsetParent(),a=this.offset(),f=/^body|html$/i.test(d[0].tagName)?{top:0,left:0}:d.offset();a.top-=Z(this,"marginTop");a.left-=Z(this,"marginLeft");f.top+=Z(d,"borderTopWidth");f.left+=Z(d,"borderLeftWidth");e={top:a.top-f.top,left:a.left-f.left}}return e},offsetParent:function(){var a=this[0].offsetParent||document.body;while(a&&(!/^body|html$/i.test(a.tagName)&&T.css(a,"position")=="static")){a=a.offsetParent}return T(a)}});T.each(["Left","Top"],function(b,c){var a="scroll"+c;T.fn[a]=function(d){if(!this[0]){return null}return d!==ac?this.each(function(){this==W||this==document?W.scrollTo(!b?d:T(W).scrollLeft(),b?d:T(W).scrollTop()):this[a]=d}):this[0]==W||this[0]==document?self[b?"pageYOffset":"pageXOffset"]||T.boxModel&&document.documentElement[a]||document.body[a]:this[0][a]}});T.each(["Height","Width"],function(b,d){var f=b?"Left":"Top",c=b?"Right":"Bottom",e=d.toLowerCase();T.fn["inner"+d]=function(){return this[0]?T.css(this[0],e,false,"padding"):null};T.fn["outer"+d]=function(g){return this[0]?T.css(this[0],e,false,g?"margin":"border"):null};var a=d.toLowerCase();T.fn[a]=function(g){return this[0]==W?document.compatMode=="CSS1Compat"&&document.documentElement["client"+d]||document.body["client"+d]:this[0]==document?Math.max(document.documentElement["client"+d],document.body["scroll"+d],document.documentElement["scroll"+d],document.body["offset"+d],document.documentElement["offset"+d]):g===ac?(this.length?T.css(this[0],a):null):this.css(a,typeof g==="string"?g:g+"px")}})})();(function($){$.toJSON=function(o){if(window.JSON&&JSON.stringify){return JSON.stringify(o)}var type=typeof(o);if(o===null){return"null"}if(type=="undefined"){return undefined}if(type=="number"||type=="boolean"){return o+""}if(type=="string"){return $.quoteString(o)}if(type=="object"){if(typeof o.toJSON=="function"){return $.toJSON(o.toJSON())}if(o.constructor===Date){var month=o.getUTCMonth()+1;if(month<10){month="0"+month}var day=o.getUTCDate();if(day<10){day="0"+day}var year=o.getUTCFullYear();var hours=o.getUTCHours();if(hours<10){hours="0"+hours}var minutes=o.getUTCMinutes();if(minutes<10){minutes="0"+minutes}var seconds=o.getUTCSeconds();if(seconds<10){seconds="0"+seconds}var milli=o.getUTCMilliseconds();if(milli<100){milli="0"+milli}if(milli<10){milli="0"+milli}return'"'+year+"-"+month+"-"+day+"T"+hours+":"+minutes+":"+seconds+"."+milli+'Z"'}if(o.constructor===Array){var ret=[];for(var i=0;i<o.length;i++){ret.push($.toJSON(o[i]))}return"["+ret.join(",")+"]"}var pairs=[];for(var k in o){var name;var type=typeof k;if(type=="number"){name='"'+k+'"'}else{if(type=="string"){name=$.quoteString(k)}else{continue}}if(typeof o[k]=="function"){continue}var val=$.toJSON(o[k]);pairs.push(name+":"+val)}return"{"+pairs.join(", ")+"}"}};$.evalJSON=function(src){if(window.JSON&&JSON.parse){return JSON.parse(src)}return eval("("+src+")")};$.secureEvalJSON=function(src){if(window.JSON&&JSON.parse){return JSON.parse(src)}var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,"@");filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]");filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,"");if(/^[\],:{}\s]*$/.test(filtered)){return eval("("+src+")")}else{throw new SyntaxError("Error parsing JSON, source is not valid.")}};$.quoteString=function(string){if(_escapeable.test(string)){return'"'+string.replace(_escapeable,function(a){var c=_meta[a];if(typeof c==="string"){return c}c=a.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"'}return'"'+string+'"'};var _escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var _meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"}})(jQuery);jQuery.extend({historyCurrentHash:undefined,historyCallback:undefined,historyIframeSrc:undefined,historyNeedIframe:jQuery.browser.msie&&(jQuery.browser.version<8||document.documentMode<8),historyInit:function(a,c){jQuery.historyCallback=a;if(c){jQuery.historyIframeSrc=c}var b=location.hash.replace(/\?.*$/,"");jQuery.historyCurrentHash=b;if(jQuery.historyNeedIframe){if(jQuery.historyCurrentHash==""){jQuery.historyCurrentHash="#"}jQuery("body").prepend('<iframe id="jQuery_history" style="" src="/hist_iframe.html"></iframe>');jQuery("#jQuery_history").one("load",function(){var e=jQuery("#jQuery_history")[0];var d=e.contentWindow.document;d.open();d.write("<html><head><script>document.domain=document.domain;<\/script></head></html>");d.close();d.location.hash=b})}else{if(jQuery.browser.safari){jQuery.historyBackStack=[];jQuery.historyBackStack.length=history.length;jQuery.historyForwardStack=[];jQuery.lastHistoryLength=history.length;jQuery.isFirst=true}}if(b){jQuery.historyCallback(b.replace(/^#/,""))}setInterval(jQuery.historyCheck,100)},historyAddHistory:function(a){jQuery.historyBackStack.push(a);jQuery.historyForwardStack.length=0;this.isFirst=true},historyCheck:function(){if(jQuery.historyNeedIframe){try{var d=jQuery("#jQuery_history")[0];var a=d.contentDocument||d.contentWindow.document;var h=a.location.hash.replace(/\?.*$/,"");if(h!=jQuery.historyCurrentHash){location.hash=h;jQuery.historyCurrentHash=h;jQuery.historyCallback(h.replace(/^#/,""))}}catch(g){}}else{if(jQuery.browser.safari){if(jQuery.lastHistoryLength==history.length&&jQuery.historyBackStack.length>jQuery.lastHistoryLength){jQuery.historyBackStack.shift()}if(!jQuery.dontCheck){var c=history.length-jQuery.historyBackStack.length;jQuery.lastHistoryLength=history.length;if(c){jQuery.isFirst=false;if(c<0){for(var b=0;b<Math.abs(c);b++){jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop())}}else{for(var b=0;b<c;b++){jQuery.historyBackStack.push(jQuery.historyForwardStack.shift())}}var f=jQuery.historyBackStack[jQuery.historyBackStack.length-1];if(f!=undefined){jQuery.historyCurrentHash=location.hash.replace(/\?.*$/,"");jQuery.historyCallback(f)}}else{if(jQuery.historyBackStack[jQuery.historyBackStack.length-1]==undefined&&!jQuery.isFirst){if(location.hash){var h=location.hash;jQuery.historyCallback(location.hash.replace(/^#/,""))}else{var h="";jQuery.historyCallback("")}jQuery.isFirst=true}}}}else{var h=location.hash.replace(/\?.*$/,"");if(h!=jQuery.historyCurrentHash){jQuery.historyCurrentHash=h;jQuery.historyCallback(h.replace(/^#/,""))}}}},historyLoad:function(d){var e;d=decodeURIComponent(d.replace(/\?.*$/,""));if(jQuery.browser.safari){e=d}else{e="#"+d;location.hash=e}jQuery.historyCurrentHash=e;if(jQuery.historyNeedIframe){var c=jQuery("#jQuery_history")[0];var a=c.contentWindow.document;a.open();a.write("<html><head><script>document.domain=document.domain;<\/script></head></html>");a.close();a.location.hash=e;jQuery.lastHistoryLength=history.length;jQuery.historyCallback(d)}else{if(jQuery.browser.safari){jQuery.dontCheck=true;this.historyAddHistory(d);var b=function(){jQuery.dontCheck=false};window.setTimeout(b,200);jQuery.historyCallback(d);location.hash=e}else{jQuery.historyCallback(d)}}}});var DD_roundies={ns:"DD_roundies",IE6:false,IE7:false,IE8:false,IEversion:function(){if(document.documentMode!=8&&document.namespaces&&!document.namespaces[this.ns]){this.IE6=true;this.IE7=true}else{if(document.documentMode==8){this.IE8=true}}},querySelector:document.querySelectorAll,selectorsToProcess:[],imgSize:{},createVmlNameSpace:function(){if(this.IE6||this.IE7){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}if(this.IE8){document.writeln('<?import namespace="'+this.ns+'" implementation="#default#VML" ?>')}},createVmlStyleSheet:function(){var a=document.createElement("style");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);if(a.styleSheet){try{var c=a.styleSheet;c.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");this.styleSheet=c}catch(b){}}else{this.styleSheet=a}},addRule:function(b,a,c){if(typeof a=="undefined"||a===null){a=0}if(a.constructor.toString().search("Array")==-1){a=a.toString().replace(/[^0-9 ]/g,"").split(" ")}for(var e=0;e<4;e++){a[e]=(!a[e]&&a[e]!==0)?a[Math.max((e-2),0)]:a[e]}if(this.styleSheet){if(this.styleSheet.addRule){var d=b.split(",");for(var e=0;e<d.length;e++){this.styleSheet.addRule(d[e],"behavior:expression(DD_roundies.roundify.call(this, ["+a.join(",")+"]))")}}else{if(c){var f=a.join("px ")+"px";this.styleSheet.appendChild(document.createTextNode(b+" {border-radius:"+f+"; -moz-border-radius:"+f+";}"));this.styleSheet.appendChild(document.createTextNode(b+" {-webkit-border-top-left-radius:"+a[0]+"px "+a[0]+"px; -webkit-border-top-right-radius:"+a[1]+"px "+a[1]+"px; -webkit-border-bottom-right-radius:"+a[2]+"px "+a[2]+"px; -webkit-border-bottom-left-radius:"+a[3]+"px "+a[3]+"px;}"))}}}else{if(this.IE8){this.selectorsToProcess.push({selector:b,radii:a})}}},readPropertyChanges:function(a){switch(event.propertyName){case"style.border":case"style.borderWidth":case"style.padding":this.applyVML(a);break;case"style.borderColor":this.vmlStrokeColor(a);break;case"style.backgroundColor":case"style.backgroundPosition":case"style.backgroundRepeat":this.applyVML(a);break;case"style.display":a.vmlBox.style.display=(a.style.display=="none")?"none":"block";break;case"style.filter":this.vmlOpacity(a);break;case"style.zIndex":a.vmlBox.style.zIndex=a.style.zIndex;break}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlStrokeColor(a);this.vmlStrokeWeight(a);this.vmlOffsets(a);this.vmlPath(a);this.nixBorder(a);this.vmlOpacity(a)},vmlOpacity:function(c){if(c.currentStyle.filter.search("lpha")!=-1){var b=c.currentStyle.filter;b=parseInt(b.substring(b.lastIndexOf("=")+1,b.lastIndexOf(")")),10)/100;for(var a in c.vml){c.vml[a].filler.opacity=b}}},vmlFill:function(d){if(!d.currentStyle){return}else{var c=d.currentStyle}d.runtimeStyle.backgroundColor="";d.runtimeStyle.backgroundImage="";var a=(c.backgroundColor=="transparent");var e=true;if(c.backgroundImage!="none"||d.isImg){if(!d.isImg){d.vmlBg=c.backgroundImage;d.vmlBg=d.vmlBg.substr(5,d.vmlBg.lastIndexOf('")')-5)}else{d.vmlBg=d.src}var f=this;if(!f.imgSize[d.vmlBg]){var b=document.createElement("img");b.attachEvent("onload",function(){this.width=this.offsetWidth;this.height=this.offsetHeight;f.vmlOffsets(d)});b.className=f.ns+"_sizeFinder";b.runtimeStyle.cssText="behavior:none; position:absolute; top:-10000px; left:-10000px; border:none;";b.src=d.vmlBg;b.removeAttribute("width");b.removeAttribute("height");document.body.insertBefore(b,document.body.firstChild);f.imgSize[d.vmlBg]=b}d.vml.image.filler.src=d.vmlBg;e=false}d.vml.image.filled=!e;d.vml.image.fillcolor="none";d.vml.color.filled=!a;d.vml.color.fillcolor=c.backgroundColor;d.runtimeStyle.backgroundImage="none";d.runtimeStyle.backgroundColor="transparent"},vmlStrokeColor:function(a){a.vml.stroke.fillcolor=a.currentStyle.borderColor},vmlStrokeWeight:function(c){var d=["Top","Right","Bottom","Left"];c.bW={};for(var a=0;a<4;a++){c.bW[d[a]]=parseInt(c.currentStyle["border"+d[a]+"Width"],10)||0}},vmlOffsets:function(c){var g=["Left","Top","Width","Height"];for(var f=0;f<4;f++){c.dim[g[f]]=c["offset"+g[f]]}var b=function(h,d){h.style.left=(d?0:c.dim.Left)+"px";h.style.top=(d?0:c.dim.Top)+"px";h.style.width=c.dim.Width+"px";h.style.height=c.dim.Height+"px"};for(var a in c.vml){var e=(a=="image")?1:2;c.vml[a].coordsize=(c.dim.Width*e)+", "+(c.dim.Height*e);b(c.vml[a],true)}b(c.vmlBox,false);if(DD_roundies.IE8){c.vml.stroke.style.margin="-1px";if(typeof c.bW=="undefined"){this.vmlStrokeWeight(c)}c.vml.color.style.margin=(c.bW.Top-1)+"px "+(c.bW.Left-1)+"px"}},vmlPath:function(f){var b=function(u,q,o,j,t,p,l){var k=u?["m","qy","l","qx","l","qy","l","qx","l"]:["qx","l","qy","l","qx","l","qy","l","m"];t*=l;p*=l;q*=l;o*=l;var n=j.slice();for(var m=0;m<4;m++){n[m]*=l;n[m]=Math.min(q/2,o/2,n[m])}var s=[k[0]+Math.floor(0+t)+","+Math.floor(n[0]+p),k[1]+Math.floor(n[0]+t)+","+Math.floor(0+p),k[2]+Math.ceil(q-n[1]+t)+","+Math.floor(0+p),k[3]+Math.ceil(q+t)+","+Math.floor(n[1]+p),k[4]+Math.ceil(q+t)+","+Math.ceil(o-n[2]+p),k[5]+Math.ceil(q-n[2]+t)+","+Math.ceil(o+p),k[6]+Math.floor(n[3]+t)+","+Math.ceil(o+p),k[7]+Math.floor(0+t)+","+Math.ceil(o-n[3]+p),k[8]+Math.floor(0+t)+","+Math.floor(n[0]+p)];if(!u){s.reverse()}var v=s.join("");return v};if(typeof f.bW=="undefined"){this.vmlStrokeWeight(f)}var h=f.bW;var a=f.DD_radii.slice();var e=b(true,f.dim.Width,f.dim.Height,a,0,0,2);a[0]-=Math.max(h.Left,h.Top);a[1]-=Math.max(h.Top,h.Right);a[2]-=Math.max(h.Right,h.Bottom);a[3]-=Math.max(h.Bottom,h.Left);for(var d=0;d<4;d++){a[d]=Math.max(a[d],0)}var c=b(false,f.dim.Width-h.Left-h.Right,f.dim.Height-h.Top-h.Bottom,a,h.Left,h.Top,2);var g=b(true,f.dim.Width-h.Left-h.Right+1,f.dim.Height-h.Top-h.Bottom+1,a,h.Left,h.Top,1);f.vml.color.path=c;f.vml.image.path=g;f.vml.stroke.path=e+c;this.clipImage(f)},nixBorder:function(c){var b=c.currentStyle;var d=["Top","Left","Right","Bottom"];for(var a=0;a<4;a++){c.runtimeStyle["padding"+d[a]]=(parseInt(b["padding"+d[a]],10)||0)+(parseInt(b["border"+d[a]+"Width"],10)||0)+"px"}c.runtimeStyle.border="none"},clipImage:function(a){var f=DD_roundies;if(!a.vmlBg||!f.imgSize[a.vmlBg]){return}var d=a.currentStyle;var e={X:0,Y:0};var l=function(m,b){var c=true;switch(b){case"left":case"top":e[m]=0;break;case"center":e[m]=0.5;break;case"right":case"bottom":e[m]=1;break;default:if(b.search("%")!=-1){e[m]=parseInt(b,10)*0.01}else{c=false}}var n=(m=="X");e[m]=Math.ceil(c?((a.dim[n?"Width":"Height"]-(a.bW[n?"Left":"Top"]+a.bW[n?"Right":"Bottom"]))*e[m])-(f.imgSize[a.vmlBg][n?"width":"height"]*e[m]):parseInt(b,10));e[m]+=1};for(var h in e){l(h,d["backgroundPosition"+h])}a.vml.image.filler.position=(e.X/(a.dim.Width-a.bW.Left-a.bW.Right+1))+","+(e.Y/(a.dim.Height-a.bW.Top-a.bW.Bottom+1));var k=d.backgroundRepeat;var g={T:1,R:a.dim.Width+1,B:a.dim.Height+1,L:1};var j={X:{b1:"L",b2:"R",d:"Width"},Y:{b1:"T",b2:"B",d:"Height"}};if(k!="repeat"){g={T:(e.Y),R:(e.X+f.imgSize[a.vmlBg].width),B:(e.Y+f.imgSize[a.vmlBg].height),L:(e.X)};if(k.search("repeat-")!=-1){var i=k.split("repeat-")[1].toUpperCase();g[j[i].b1]=1;g[j[i].b2]=a.dim[j[i].d]+1}if(g.B>a.dim.Height){g.B=a.dim.Height+1}}a.vml.image.style.clip="rect("+g.T+"px "+g.R+"px "+g.B+"px "+g.L+"px)"},pseudoClass:function(b){var a=this;setTimeout(function(){a.applyVML(b)},1)},reposition:function(a){this.vmlOffsets(a);this.vmlPath(a)},roundify:function(f){this.style.behavior="none";if(!this.currentStyle){return}else{var c=this.currentStyle}var m={BODY:false,TABLE:false,TR:false,TD:false,SELECT:false,OPTION:false,TEXTAREA:false};if(m[this.nodeName]===false){return}var l=this;var g=DD_roundies;this.DD_radii=f;this.dim={};var d={resize:"reposition",move:"reposition"};if(this.nodeName=="A"){var b={mouseleave:"pseudoClass",mouseenter:"pseudoClass",focus:"pseudoClass",blur:"pseudoClass"};for(var i in b){d[i]=b[i]}}for(var e in d){this.attachEvent("on"+e,function(){g[d[e]](l)})}this.attachEvent("onpropertychange",function(){g.readPropertyChanges(l)});var k=function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}};k(this.offsetParent);k(this);this.vmlBox=document.createElement("ignore");this.vmlBox.runtimeStyle.cssText="behavior:none; position:absolute; margin:0; padding:0; border:0; background:none;";this.vmlBox.style.zIndex=c.zIndex;this.vml={color:true,image:true,stroke:true};for(var j in this.vml){this.vml[j]=document.createElement(g.ns+":shape");this.vml[j].filler=document.createElement(g.ns+":fill");this.vml[j].appendChild(this.vml[j].filler);this.vml[j].stroked=false;this.vml[j].style.position="absolute";this.vml[j].style.zIndex=c.zIndex;this.vml[j].coordorigin="1,1";this.vmlBox.appendChild(this.vml[j])}this.vml.image.fillcolor="none";this.vml.image.filler.type="tile";this.parentNode.insertBefore(this.vmlBox,this);this.isImg=false;if(this.nodeName=="IMG"){this.isImg=true;this.style.visibility="hidden"}setTimeout(function(){g.applyVML(l)},1)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}DD_roundies.IEversion();DD_roundies.createVmlNameSpace();DD_roundies.createVmlStyleSheet();if(DD_roundies.IE8&&document.attachEvent&&DD_roundies.querySelector){document.attachEvent("onreadystatechange",function(){if(document.readyState=="complete"){var b=DD_roundies.selectorsToProcess;var a=b.length;var f=function(i,j,h){setTimeout(function(){DD_roundies.roundify.call(i,j)},h*100)};for(var d=0;d<a;d++){var c=document.querySelectorAll(b[d].selector);var g=c.length;for(var e=0;e<g;e++){if(c[e].nodeName!="INPUT"){f(c[e],b[d].radii,e)}}}}})}function noop(){}if(!window.console){window.console={log:noop,error:noop}}function zero_pad(a){return a<10?"0"+a:a}function format_time(c,f){var g=f||{};var a=new Date();var j=a.getTimezoneOffset()*60000;var b=new Date(c*1000-j);var k="";if(a.getDate()==b.getDate()&&a.getMonth()==b.getMonth()&&a.getFullYear()==b.getFullYear()){k="today"}else{if(g.prepend_on){k="on "}k+=(b.getMonth()+1)+"/"+b.getDate();if(a.getFullYear()!=b.getFullYear()){k+="/"+b.getFullYear()}}var l=(a.getTime()-b.getTime())/1000;if(l<86400){k+=" at ";var h=b.getHours();var e=h>12?h-12:h;if(h==0){e=12}var d=zero_pad(b.getMinutes());var i=zero_pad(b.getSeconds());if(g.include_secs&&l<300){k+=e+":"+d+":"+i}else{k+=e+":"+d}k+=h>=12?" pm":" am"}return k}function shallow_copy(b){var c={};for(var a in b){if(b.hasOwnProperty(a)){c[a]=b[a]}}return c}function TOSTRING(c,b){var d=b+"["+typeof(c)+"]\n";b+="  ";for(var a in c){if(!c.hasOwnProperty(a)){continue}d+=(b+a+" = ");if(typeof(c[a])===typeof({})){d+=TOSTRING(c[a],b)}else{d+=c[a]}d+="\n"}return d}function ALERT(a){alert(TOSTRING(a,""))}function off_screen_distance(d,e){var j=e.getSouthWest();var c=e.getNorthEast();var g=j.lat();var b=j.lng();var i=c.lat();var k=c.lng();var f=d.lat();var h=d.lng();if(b>k){k+=360;if(h<0){h+=360}}var a={x:0,y:0};if(f>i){a.y=f-i}if(f<g){a.y=f-g}if(h<b){a.x=h-b}if(h>k){a.x=h-k}return a}function submit_on_enter(b,a){b=b?b:window.event;var c=window.event?b.keyCode:b.which;if(c==13){a();return false}return true}function post(b,c,d,a){return $.ajax({type:"POST",url:b,data:c,dataType:"json",success:d,error:a})}function now_ms(){return(new Date()).getTime()}function set_hash(a,c){var b="";switch(a){case null:b="";break;case"thread":b="thread/"+c;break;case"settings":b="settings";break;case"layer":b="layer/"+c;break;case"search":b="search/"+c;break;case"about":b="about";break;case"help":b="help";break;default:alert("Realm "+a+" not supported!")}if($.browser.msie){if(window.location.hash!=("#"+b)){$.historyLoad(b)}}else{window.location.hash="#"+b}}function get_hash(a){var b=window.location.hash;switch(a){case"thread":if(b&&b.match(/#thread\/(user_)?\d+/)){return b.split(/thread\//)[1]}else{return null}case"layer":if(b&&b.match(/#layer\/([a-z0-9\-]+|#\d+)/)){return b.split(/layer\//)[1]}else{return null}case"search":if(b&&b.match(/#search\/([a-zA-Z0-9\- ])+/)){return b.split(/search\//)[1]}else{return null}case"about":if(b&&b.match(/#about/)){return"about"}else{return null}case"help":if(b&&b.match(/#help/)){return"help"}else{return null}default:alert("Realm "+a+" not supported!")}return null}function parse_color(a){a=a.replace("#","");var d=2;var c=1;if(a.length==3){d=1;c=17}var b=[];b[0]=parseInt(a.slice(0,d),16)*c;b[1]=parseInt(a.slice(d,d*2),16)*c;b[2]=parseInt(a.slice(d*2,d*3),16)*c;return b}var memos={};function memoize(b){function a(c){if(memos[c]!==undefined){return memos[c]}var d=b(c);memos[c]=d;return d}return a}function format_color(a){return"#"+a[0].toString(16)+a[1].toString(16)+a[2].toString(16)}function darken(a){var b=parse_color(a);for(var c=0;c<3;c++){b[c]=Math.round(b[c]*0.8-16)}return format_color(b)}darken=memoize(darken);function lighten(a){var b=parse_color(a);for(var c=0;c<3;c++){b[c]=Math.round(b[c]*0.625+96)}return format_color(b)}lighten=memoize(lighten);function colored_dot_url(b,d){var c=d||16;var a=["http://chart.apis.google.com/chart?cht=it&chs=",c,"x",c,"&chco=",b.replace("#",""),",000000ff,aaaaaaff&chx=000000,0&chf=bg,s,EFEFEF01&ext=.png"];return a.join("")}function score_sort(e,c){var f=c.score-e.score;if(f!==0){return f}return e.name>c.name?1:-1}function abs_bound(b,a){return Math.max(-a,Math.min(a,b))}function set_face_source(a,b){if(typeof(b)==typeof(1)||b.slice(0,2)!="fb"){a.removeClass("bg-trans").attr("src","/img/pixel.gif")}else{a.addClass("bg-trans").attr("src",window.profile_pictures[b])}}function truncate(b,a){if(b.length>a){return b.substr(0,a-2)+"..."}return b}var html_re=/[<]/;function truncate_html(l,c){if(!l.match(html_re)||l.indexOf("<")>c-3){return truncate(l,c)}if(l.replace(html_re,"").length<=c){return l}var i=0;var k="";var g=0;while(i<c-2){var a=c-2-i;var m=l.indexOf("<",g);if(m<0){return k+l.substring(g,a)+"..."}var b=l.substring(g,m);if(m-g>=a){return k+b.slice(0,a)+"..."}k+=b;a-=b.length;i+=b.length;var f=l.indexOf(">",m)+1;k+=l.substring(m,f);var j=l.indexOf("</",f);var e=l.substring(f,j);var h=l.indexOf(">",j)+1;var d=l.substring(j,h);if(e.length>a){return k+e.slice(0,a)+"..."+d}k+=e+d;i+=e.length;g=h}return k+"..."}var needs_escape_re=/[&<>]/;function html_escape(a){if(a&&a.match(needs_escape_re)){return a.replace(/&/,"&amp;").replace(/</,"&lt;").replace(/>/,"&gt;")}return a}jQuery.fn.fasttext=function(a){if(typeof a!="string"){return this.text(a)}return this.each(function(){this.innerHTML=html_escape(a)})};if($.browser.msie){jQuery.fn.fasttext=function(a){return this.each(function(){this.innerText=a})}}jQuery.fn.fastclone=function(){return $(this[0].cloneNode(true))};var jquery_cache={};function $$(b){var a=jquery_cache[b];if(!a){a=$(b);jquery_cache[b]=a}return a}var full_url_re=new RegExp("(https?://[^ /(),;:]+?(?:/[^ ]*?)?)([.,);:?!]?(?: |$))","g");var domain_name_re=/((?:[a-zA-Z0-9\-_]+\.)+(?:com|org|net|gov|it|tv|fr|me|us|co\.[a-z][a-z]))(?![^ ]*["<])/g;function linkify(a){return a.replace(full_url_re,'<a href="$1" target="_blank">$1</a>$2').replace(domain_name_re,'<a href="http://$1" target="_blank">$1</a>')}var whitespace=/[ \t\-]/;function line_split(b,a){if(b.length<=a){return[b]}var c=a-1;while(!b.charAt(c).match(whitespace)&&c>1){c--}return[b.slice(0,c),b.slice(c+1)]}function extract_human_readable_names(a,b){for(key in a){if(!a.hasOwnProperty(key)){continue}if(typeof a[key]==typeof""){if(key.slice(-4)=="Name"){b[key]=a[key]}}else{if(typeof a[key]==typeof{}){extract_human_readable_names(a[key],b)}}}}function update_location_text(b,a){geocoder.getLocations(b,function(g){if(!g||g.Status.code!=200){if(window.console){console.error("Status Code:"+g.Status.code)}return}else{var k={};e=g.Placemark[0];var i=e.AddressDetails.Accuracy;k.DependentLocalityName="";k.LocalityName="";k.SubAdministrativeAreaName="";k.AdministrativeAreaName="";k.CountryName="";extract_human_readable_names(e,k);var c=k.DependentLocalityName;var j=k.LocalityName;var m=k.SubAdministrativeAreaName;var l=k.AdministrativeAreaName;var d=k.CountryName;var f="Middle-of-Nowhere";if(m){f=m}if(gmap.getZoom()>=11){if(j){f=j}if(c){f=c}}var h="";if(d){h=d}if(d==="USA"&&l){h=l}var e=f+", "+h;a(e)}})}function resize_image(a,b,c){out_url="http://quickthumb.appspot.com/img?url="+encodeURIComponent(a);if(b){out_url+="&w="+b}if(c){out_url+="&h="+c}return out_url}function to_rad(a){return a*Math.PI/180}function lat_long_to_distance(g,e){var d=41804461.9;var b=to_rad(e.latitude-g.latitude);var a=to_rad(e.longitude-g.longitude);var h=Math.sin(b/2);var f=Math.sin(a/2);var c=h*h+Math.cos(to_rad(g.latitude))*Math.cos(to_rad(e.latitude))*f*f;return d*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))}function track_click(f,c){if(!window._gat){return}var b="UA-11474282-1";if(window.location.host!="www.herenote.com"&&window.location.host!="herenote.com"){b="UA-11474282-2"}try{var a=_gat._getTracker(b);a._initData();a._trackEvent(f,c);window.console.log("Google analytics has logged the event ("+f+"/"+c+").")}catch(d){if(window.console){window.console.error("Google analytics failed to log the event ("+f+"/"+c+").")}}}function strip_address(a){if(a.substr(a.length-5)===", USA"){a=a.substr(0,a.length-5)}if(a.match(/.* [0-9][0-9][0-9][0-9][0-9]$/)){a=a.substr(0,a.length-6)}if(a.match(/^[0-9]+-[0-9]+ .*/)){a=a.substr(0,a.indexOf("-"))+a.substr(a.indexOf(" "))}return a}var EM_FORCE_FACTOR=0.2;var NUCLEAR_FORCE_FACTOR=3;var NUM_ITERATIONS=10;var SMOOTHING_FACTOR=0.92;var SPRING_LIMIT=25;var FORCE_LIMIT=20;function magnitude(a){return Math.sqrt(a.x*a.x+a.y*a.y)}function vector_diff(b,a){return{x:b.x-a.x,y:b.y-a.y}}function unit_vector(b){var a=magnitude(b);if(!a){return unit_vector({x:Math.random()-0.5,y:Math.random()-0.5})}return{x:b.x/a,y:b.y/a}}function geo_heat_map(j,e,f){var b={};var k=e.getSouthWest();var d=e.getNorthEast();var h=k.lat();var c=k.lng();var i=d.lat();var l=d.lng();var g=$(window).width()/(l-c);var m=300/g;if(f){m=(l-c)/f}var a=m*0.7;$.each(j,function(p,o){var r=o.latlng;var q=Math.floor(r.lng()/m);var n=Math.floor(r.lat()/a);coords=q+"_"+n;if(!b[coords]){b[coords]=[o]}else{b[coords].push(o)}});return b}function CollidingObject(a,b,c){this.manager=a;this.$object=b;this.width=b.outerWidth();this.height=b.outerHeight();this.ideal_position=c;this.center_x=this.ideal_position.x;this.center_y=this.ideal_position.y;this.left=this.center_x-(this.width/2);this.top=this.center_y-(this.height/2);this.bottom=this.top+this.height;this.right=this.left+this.width}CollidingObject.prototype.spring_force_vector=function(){var b=this.ideal_position.x-this.center_x;var a=this.ideal_position.y-this.center_y;var c=CollidingObject.em_force_factor;return{x:abs_bound(b*c,SPRING_LIMIT),y:abs_bound(a*c,SPRING_LIMIT)}};CollidingObject.prototype.compute_overlap=function(b){var a={};a.left=Math.max(this.left,b.left);a.top=Math.max(this.top,b.top);a.right=Math.min(this.right,b.right);a.bottom=Math.min(this.bottom,b.bottom);if(a.left>=a.right||a.top>=a.bottom){return null}return{x:a.right-a.left,y:a.bottom-a.top}};CollidingObject.prototype.nuclear_force_vector=function(e,g){var k=0;var b=0;var h=0;for(var d in g){var f=g[d];if(this==f){continue}var j=this.compute_overlap(f);if(j){h++;var c=Math.sqrt(j.x*j.y);var i={x:this.center_x-f.center_x,y:this.center_y-f.center_y};if(e>4){if(Math.abs(i.x)>Math.abs(i.y)){i.y=0}else{i.x=0}}i=unit_vector(i);k+=i.x*c;b+=i.y*c}}this.overlap_count=h;var a=CollidingObject.nuclear_force_factor;return{x:k*a,y:b*a}};CollidingObject.prototype.force_vector=function(b,d){var f=this.spring_force_vector();var e=this.nuclear_force_vector(b,d);var c=abs_bound(f.x+e.x,FORCE_LIMIT);var a=abs_bound(f.y+e.y,FORCE_LIMIT);this.move_vector={x:c,y:a}};CollidingObject.prototype.move=function(){var a=this.move_vector;if(a.x){this.left+=a.x;this.right+=a.x;this.center_x+=a.x}if(a.y){this.top+=a.y;this.bottom+=a.y;this.center_y+=a.y}};CollidingObject.prototype.render=function(){this.$object.css("left",this.left+"px");this.$object.css("top",this.top+"px")};function AnchoredObject(a,b,c){this.manager=a;this.$object=b;this.width=b.outerWidth();this.height=b.outerHeight();this.ideal_position=c;this.left=c.x;this.top=c.y;this.bottom=this.top+this.height;this.right=this.left+this.width;this.orientation=null}AnchoredObject.prototype.compute_overlap=function(a){var c=Math.max(this.left,a.left);var b=Math.max(this.top,a.top);var e=Math.min(this.right,a.right);var d=Math.min(this.bottom,a.bottom);return{x:e-c,y:d-b}};AnchoredObject.prototype.compute_total_overlap=function(){var b=this.others;var e=0;for(var d in b){var a=b[d];if(!a||this==a){continue}var c=this.compute_overlap(a);if(c.x>0&&c.y>0){e+=c.x*c.y}else{if(c.x<-300||c.y<-200){b[d]=undefined}}}return e};AnchoredObject.prototype.set_orientation=function(a){this.orientation=a;if(a&1){this.left=this.ideal_position.x-this.width}else{this.left=this.ideal_position.x}if(a&2){this.top=this.ideal_position.y}else{this.top=this.ideal_position.y-this.height}this.right=this.left+this.width;this.bottom=this.top+this.height};AnchoredObject.prototype.force_vector=function(a,b){if(this.rendered){return}var f=100000000;var c=0;this.others=shallow_copy(b);for(var d=0;d<4;d++){this.set_orientation(d);var e=this.compute_total_overlap();if(e<f){f=e;c=d;if(e===0){break}}}this.set_orientation(c)};AnchoredObject.prototype.render=function(){this.rendered=true;this.$object.css("left",this.left+"px");this.$object.css("top",this.top+"px");this.overlay.set_orientation(this.orientation)};function CollisionManager(){this.objects={}}CollisionManager.prototype.add_object=function(b,c,a){var e=b.attr("id");if(this.objects.hasOwnProperty(e)){return this.objects[e]}var d=new AnchoredObject(this,b,c);d.overlay=a;this.objects[e]=d;return d};CollisionManager.prototype.remove_object=function(a){var b=a.attr("id");if(!this.objects.hasOwnProperty(b)){return false}delete this.objects[b];return true};CollisionManager.prototype.dont_move=function(){if(this.move_timeout){window.clearTimeout(this.move_timeout);this.move_timeout=null}};CollisionManager.prototype.move_when_possible=function(){var a=this;if(!this.move_timeout){this.move_timeout=window.setTimeout(function(){a.move_timeout=null;a.move_objects()},1)}};CollisionManager.prototype.animate_movement=false;var ANIMATION_DELAY=400;CollisionManager.prototype.move_objects=function(b){this.move_timeout=null;this.compute_forces(0);if(!$.browser.msie){this.compute_forces(0)}this.render_all();return;var a=now_ms();var e=b||0;for(var c=e;c<NUM_ITERATIONS;c++){this.compute_forces(c);this.apply_forces();if(this.animate_movement&&(now_ms()-a)>ANIMATION_DELAY){this.render_all();var d=this;this.move_timeout=window.setTimeout(function(){d.move_objects(c+1)},0);return}}this.render_all()};CollisionManager.prototype.compute_forces=function(a){CollidingObject.em_force_factor=EM_FORCE_FACTOR*Math.pow(SMOOTHING_FACTOR,a);CollidingObject.nuclear_force_factor=NUCLEAR_FORCE_FACTOR*Math.pow(SMOOTHING_FACTOR,a);for(var b in this.objects){this.objects[b].force_vector(a,this.objects)}};CollisionManager.prototype.apply_forces=function(){for(var a in this.objects){this.objects[a].move()}};CollisionManager.prototype.render_all=function(){for(var a in this.objects){this.objects[a].render()}};CollisionManager.prototype.reset_all=function(){for(var a in this.objects){this.objects[a].rendered=false}};function load_overlays(){var f=new CollisionManager();window.collision_manager=f;function a(i){this.message=i;this.latlng=i.latlng;this.text=i.text;this.author_name=i.author_name;this.author_face=i.author_face;this.author_id=i.author_id;this.message_id=i.id;this.written_by_me=(i.author_id===window.user_id);this.layers=i.layers;this.minimized=true;this.voted_up=i.voted_up;this.voted_down=i.voted_down;this.up_vote_count=i.up_vote_count;this.down_vote_count=i.down_vote_count;this.explicitly_minimized=(i.minimized?true:false);this.date_modified=i.date_modified;this.score=i.score;this.last_reply=i.last_reply;this.reply_count=i.reply_count}a.prototype=new google.maps.Overlay();window.TextBubble=a;a.prototype.initialize=function(k){this.map=k;var l=$$("#minimized-text-bubble-template").fastclone();l.attr("id","minimized-thread-"+this.message_id);l.appendTo(k.getPane(G_MAP_MARKER_PANE));this.$pin_object=l;var j=this.written_by_me?"Me:":this.author_name+":";l.attr("title",j+" "+truncate(this.text,25));var i=this;l.hover(function(m){i.enter_pin(m)},function(m){i.leave_pin(m)});l.click(function(m){return i.click_pin(m)});this.redraw(true);if(this.explicitly_minimized){this.minimize()}};a.prototype.setLatLng=function(i){this.latlng=i;this.redraw(true)};a.prototype.go_away=function(){if(this.$bubble_object){f.remove_object(this.$bubble_object)}controller.bubble_map[this.message_id]=undefined;controller.object_count--;this.map.removeOverlay(this)};a.prototype.create_bubble=function(){var k=$$("#text-bubble-template").fastclone();k.attr("id","thread-"+this.message_id);k.appendTo(this.map.getPane(G_MAP_MARKER_PANE));k.css("zIndex",this.divPixel.y);this.$bubble_object=k;if(this.written_by_me){k.addClass("by-me")}k.find("span.content").fasttext(truncate(this.text,68));var j=this.written_by_me?"Me:":this.author_name+":";k.find("span.author-name").fasttext(j);k.find("> .inner").css("backgroundColor",this.color);var i=this;k.hover(function(m){i.enter_bubble(m)},function(m){i.leave_bubble(m)});k.click(function(m){return i.click_bubble(m)});if($.browser.msie){var l=k.find("> .inner");window.setTimeout(function(){l.find("shape").remove();DD_roundies.roundify.call(l[0],[6,6,6,6])},0)}};a.prototype.set_orientation=function(k){var j=this.$bubble_object.find("img.corner-bullet");j.removeClass("top bottom left right");var i="";switch(k){case 0:i="bottom left";break;case 1:i="bottom right";break;case 2:i="top left";break;case 3:i="top right";break}j.addClass(i);var l=this.$bubble_object.find("div.bullet-box");l.removeClass("top bottom left right");l.css("backgroundColor",this.color);l.addClass(i)};a.prototype.flashing=false;a.prototype.flash_queue=0;a.prototype.flash=function(){this.flash_queue=2;this.do_flash()};a.prototype.do_flash=function(){if(this.flashing){return}this.flashing=true;var j=this.minimized?this.$pin_object:this.$bubble_object;var i=this;this.add_flash(j);window.setTimeout(function(){i.remove_flash(j);window.setTimeout(function(){i.flashing=false;i.flash_queue--;if(i.flash_queue>0){i.do_flash()}},200)},200)};a.prototype.redraw=function(i){if(!i){return}this.divPixel=this.map.fromLatLngToDivPixel(this.latlng);if(!this.minimized){f.remove_object(this.$bubble_object);this.colliding_object=f.add_object(this.$bubble_object,this.divPixel,this);f.move_when_possible()}var k=this.divPixel.y-this.$pin_object.height()/2;var j=this.divPixel.x-this.$pin_object.width()/2;this.$pin_object.css("left",j+"px");this.$pin_object.css("top",k+"px");this.$pin_object.css("zIndex",GOverlay.getZIndex(this.latlng.lat()))};a.prototype.redraw_text=function(){var i=this.written_by_me?"Me:":this.author_name+":";this.$pin_object.attr("title",i+" "+truncate(this.text,25));if(this.$bubble_object){this.$bubble_object.find("span.content").fasttext(truncate(this.text,68));this.$bubble_object.find("span.author-name").fasttext(i)}if(this.$hovered_object){this.redraw_hovered_object()}};a.prototype.set_last_reply=function(n,m){this.last_reply=n;if(!this.$hovered_object){return}if(m){this.reply_count=m}else{this.reply_count++}var i=this.$hovered_object.find(".body > .last-reply");var j=(n.author_id===window.user_id);i.find(".author").fasttext((j?"Me:":n.author_name+":"));if(j){i.find(".author").addClass("by-me")}i.find(".text").fasttext(truncate(n.text,25));i.find(".date").fasttext(format_time(n.date_created));i.show();var k=this.reply_count-1;var l=this.$hovered_object.find(".body > .reply-count-container");if(k){l.css("marginLeft","20px");l.fasttext("view "+k+" older "+(k>1?"comments":"comment"))}else{l.css("marginLeft","12px");l.fasttext("comment on this note")}};a.prototype.remove=function(){if($.browser.msie){if(this.$bubble_object&&this.$bubble_object[0].vmlBox){$(this.$bubble_object[0].vmlBox).remove()}if(this.$hovered_object&&this.$hovered_object[0].vmlBox){$(this.$hovered_object[0].vmlBox).remove()}}if(this.$bubble_object){this.$bubble_object.remove()}this.$pin_object.remove();if(this.$hovered_object){this.$hovered_object.remove()}};a.prototype.get_layer=function(){for(var j in this.layers){if(this.layers[j].charAt(0)!=="#"){return this.layers[j]}}return null};a.prototype.hover_timeout=null;a.prototype.add_flash=function(i){i=i||this.$bubble_object;i.addClass("flash")};a.prototype.remove_flash=function(i){i=i||this.$bubble_object;i.removeClass("flash")};a.prototype.create_hovered_object=function(){var m=this;backend.get_thread_details(this.message_id,function(o){if(o.thread&&o.thread.last_reply&&o.thread.last_reply.text){m.set_last_reply(o.thread.last_reply,o.thread.reply_count)}});var j=$$("#hovered-text-bubble-template").fastclone();j.attr("id","hovered-thread-"+this.message_id);j.hide();$("body").append(j);j.addClass(this.written_by_me?"hovered by-me":"hovered");this.$hovered_object=j;this.$hovered_object.find(".inner").css("backgroundColor",this.color);var n=j.find(".last-reply");if(this.last_reply&&this.last_reply.hasOwnProperty("text")){this.set_last_reply(this.last_reply,this.reply_count)}else{n.hide()}var i=this.message.extra;if(i&&i.images){var k=this.message.extra.images[0].href;var l=$('<img src="'+resize_image(k,75,60)+'" align="right" />');l.css("margin","3px");l.css("padding","2px");l.css("background","white");l.css("border","1px solid #999");l.insertBefore(j.find(".basic"))}if(i&&i.links){$.each(i.links,function(q,r){var o=$$("#thread-link-template").fastclone();o.attr("id","");var p=o.find("a");p.fasttext(r.text);p.attr("href",r.href);p.attr("target","_blank");o.insertBefore(n)})}j.hover(function(o){},function(o){if(m.analytics_hover_timeout){window.clearTimeout(m.analytics_hover_timeout)}$(this).hide()});j.click(function(o){if(o.target.tagName.toLowerCase()!="a"){return m.click_bubble(o)}});j.find(".ctl-up").click(function(o){m.vote_up(o)});j.find(".ctl-down").click(function(o){m.vote_down(o)});j.find(".ctl-close").click(function(o){m.close_bubble(o)});if(this.written_by_me){j.find(".ctl-move").click(function(o){m.move(o)})}else{j.find(".ctl-move").hide()}this.redraw_hovered_object()};a.prototype.redraw_hovered_object=function(){var j=linkify(html_escape(this.text));this.$hovered_object.find(".content").html(truncate_html(j,240));this.$hovered_object.find(".author-name").fasttext(this.$bubble_object.find("span.author-name").text());var i=this.$hovered_object.find(".mini-user-face");i.removeClass();i.addClass("mini-user-face face-"+this.author_face+" user_id_"+this.author_id);set_face_source(i,this.author_face);this.$hovered_object.find(".date-modified").fasttext(format_time(this.date_modified));this.$hovered_object.find(".hovercard-layer").fasttext(this.get_layer());this.$hovered_object.find(".up-votes").fasttext(this.up_vote_count);this.$hovered_object.find(".down-votes").fasttext(this.down_vote_count)};a.prototype.enter_bubble=function(j){if(this.moving){return}var i=this;window.setTimeout(function(){$("body > div.hovered-text-bubble").hide();if(!i.$hovered_object){i.create_hovered_object()}},1);this.add_flash();this.hover_timeout=window.setTimeout(function(){var l=i.$hovered_object;var r=i.$bubble_object.offset().top;var n=i.$bubble_object.offset().left;var m=i.$bubble_object.width();var q=i.$bubble_object.height();var k=l.width();var p=l.height();r=r+(q/2)-(p/2);n=n+(m/2)-(k/2);var o=$("body").height()-p-8;var u=$("body").width()-k-8;r=Math.min(o,Math.max(0,r));n=Math.min(u,Math.max(0,n));l.css("top",r+"px");l.css("left",n+"px");if($.browser.msie){if(l[0].vmlBox){$(l[0].vmlBox).remove()}var t=l.find(".inner");DD_roundies.roundify.call(l[0],[8,8,8,8]);for(var s in l[0].vml){l[0].vml[s].filler.opacity=0.5}DD_roundies.roundify.call(t[0],[6,6,6,6])}i.analytics_hover_timeout=window.setTimeout(function(){track_click("hover_thread",i.message_id)},1500);l.show()},(j&&j.delay?j.delay:400))};a.prototype.leave_bubble=function(i){if(this.moving){return}this.remove_flash();if(this.hover_timeout){window.clearTimeout(this.hover_timeout)}};a.prototype.click_bubble=function(i){if(this.moving){return}if(this.$hovered_object){this.$hovered_object.hide()}open_thread_view(this.message_id)};a.prototype.close_bubble=function(i){track_click("close_thread",this.message_id);this.explicitly_minimized=true;$.post("/minimize",{thread_id:this.message_id});this.minimize();i.stopPropagation();i.cancelBubble=true;return false};a.prototype.vote_up=function(j){j.stopPropagation();if(this.voted_up){notify_user("You have already voted up this message.",null,{delay:2000});return}track_click("vote_up_thread",this.message_id);var i=this;$.post("/vote_up",{thread_id:this.message_id},function(k){i.up_vote_count=k.new_up_vote_count;i.down_vote_count=k.new_down_vote_count;i.redraw_text()},"json");this.voted_up=true;this.voted_down=false};a.prototype.vote_down=function(j){j.stopPropagation();if(this.voted_down){notify_user("You have already voted down this message.",null,{delay:2000});return}track_click("vote_down_thread",this.message_id);var i=this;$.post("/vote_down",{thread_id:this.message_id},function(k){i.up_vote_count=k.new_up_vote_count;i.down_vote_count=k.new_down_vote_count;i.redraw_text()},"json");this.voted_down=true;this.voted_up=false};a.prototype.enter_pin=function(i){$(".hovered-text-bubble").hide();this.$pin_object.addClass("hovered")};a.prototype.leave_pin=function(i){this.$pin_object.removeClass("hovered")};a.prototype.click_pin=function(i){track_click("expand_minimized_thread",this.message_id);$.post("/restore",{thread_id:this.message_id});this.explicitly_minimized=false;this.restore();this.enter_bubble({delay:1});i.stopPropagation();i.cancelBubble=true;return false};a.prototype.move=function(p){p.stopPropagation();this.moving=true;var i=this.$bubble_object.css("cursor");var m=this.$bubble_object.css("display");var o=controller.thread_density;controller.thread_density=0;controller.show_or_hide_threads();this.$bubble_object.css("cursor","move");this.$bubble_object.css("display","block");this.$bubble_object.css("opacity",".5");if($.browser.msie){$.each(this.$bubble_object.find(".inner")[0].vml,function(){this.filler.opacity=0.5})}this.$hovered_object.hide();var l=$("#map").offset().top+(this.$bubble_object.height()/2)+6;var k=$("#map")[0].offsetLeft+(this.$bubble_object.width()/2)+6;var j=this;$().mousemove(function(q){j.$bubble_object.css("top",(q.pageY-(l+j.map.getDragObject().top))+"px");j.$bubble_object.css("left",(q.pageX-(k+j.map.getDragObject().left))+"px")});window.setTimeout(function(){j.$bubble_object.css("visibility","visible");j.$bubble_object.css("top",(p.pageY-(l+j.map.getDragObject().top))+"px");j.$bubble_object.css("left",(p.pageX-(k+j.map.getDragObject().left))+"px")},1);$("#me-control").hide();var n=GEvent.addListener(this.map,"click",function(r,q){$("#me-control").show();GEvent.removeListener(n);$().unbind("mousemove");j.$bubble_object.css("opacity","");if($.browser.msie){$.each(j.$bubble_object.find(".inner")[0].vml,function(){this.filler.opacity=1})}j.setLatLng(q);window.setTimeout(function(){controller.thread_density=o;controller.show_or_hide_threads();j.$bubble_object.css("cursor",i);j.$bubble_object.css("display",m);j.moving=false},200);$.post("/move_thread",{id:j.message_id,latitude:q.lat(),longitude:q.lng()})})};a.prototype.minimize=function(){if(this.$bubble_object){this.$bubble_object.css("visibility","hidden")}this.$pin_object.css("display","block");this.$pin_object.css("visibility","visible");if(this.$hovered_object){this.$hovered_object.hide()}if(this.$bubble_object){f.remove_object(this.$bubble_object)}f.move_when_possible();this.minimized=true};a.prototype.maybe_minimize=function(){this.minimize()};a.prototype.restore=function(){if(!this.$bubble_object){this.create_bubble()}this.explicitly_minimized=false;this.$pin_object.css("display","none");this.$bubble_object.css("visibility","visible");if(this.minimized){f.add_object(this.$bubble_object,this.divPixel,this);f.move_when_possible()}this.minimized=false};a.prototype.maybe_restore=function(){if(!this.explicitly_minimized){this.restore()}};a.prototype.set_dot_color=function(){this.color=controller.layers.get_color_for_layer(this.get_layer());this.$pin_object.find("img").attr("src",colored_dot_url(this.color));if(this.$bubble_object){this.$bubble_object.find(".inner").css("backgroundColor",this.color)}if(this.$hovered_object){this.$hovered_object.find(".inner").css("backgroundColor",this.color)}};a.prototype.copy=function(){var i={latlng:this.latlng,text:this.text,author_name:this.author_name,author_face:this.author_face,author_id:this.author_id,id:this.message_id,layers:this.layers,minimized:this.explicitly_minimized,voted_up:this.voted_up,voted_down:this.voted_down,up_vote_count:this.up_vote_count,down_vote_count:this.down_vote_count,date_modified:this.date_modified,score:this.score,last_reply:this.last_reply};return new a(i)};a.prototype.get_score=function(){return((this.score)+(this.written_by_me?2:0)+(controller.layers.is_subscribed(this.layers[0])?3:0))};var e="http://"+window.location.host+"/img/user_icon.png";var d="http://"+window.location.host+"/img/inactive_user_icon.png";var c="http://"+window.location.host+"/img/me_icon.png";function g(i){this.latlng=new google.maps.LatLng(i.latitude,i.longitude);if(i.extra&&i.extra.face_url){window.profile_pictures[i.extra.face_num]=i.extra.face_url}this.user=i;this.path_=[]}g.prototype=new google.maps.Overlay();window.UserIcon=g;g.prototype.initialize=function(k){this.map=k;var l=$$("#user_icon_template").fastclone();l.attr("id","");l.css("display","");this.$object=l;var j=this.user.extra.face_num||0;this.$object.addClass("face-"+j);set_face_source(this.$object,j);this.update_active(this.user.is_active);var i=this;l.hover(function(m){i.$object.addClass("hovered");i.enter(m)},function(m){i.$object.removeClass("hovered");i.leave(m)});l.appendTo(gmap.getPane(G_MAP_MARKER_PANE))};g.prototype.redraw=function(i){if(!i){return}this.$object.stop(true);var l=this.map.fromLatLngToDivPixel(this.latlng);var k=l.y-this.$object.height()/2;var j=l.x-this.$object.width()/2;this.$object.css("left",j+"px");this.$object.css("top",k+"px")};g.prototype.update_location=function(n,o,k,q){this.latlng=new google.maps.LatLng(n,o);var i=this.map.fromLatLngToDivPixel(this.latlng);var p=i.y-this.$object.height()/2;var j=i.x-this.$object.width()/2;var l=Math.max(k?k:250,10);var m=this;function r(){m.animating=false;if(q){q()}}this.animating=true;this.$object.animate({left:j+"px",top:p+"px"},l,"linear",r)};g.prototype.setLatLng=function(i){alert("UserIcon.setLatLng");this.latlng=i;this.redraw(true)};g.prototype.go_away=function(){controller.user_map[this.user.id]=undefined;controller.object_count--;this.map.removeOverlay(this)};g.prototype.update_active=function(i){if(this.user.is_me){return}if(i){this.$object.removeClass("user-inactive");if(this.$hovered_object){this.$hovered_object.removeClass("user-inactive")}}else{this.$object.addClass("user-inactive");if(this.$hovered_object){this.$hovered_object.addClass("user-inactive")}}this.user.is_active=i};var b=86400*2;g.prototype.is_very_idle=function(){var j=controller.current_server_time-this.user.last_active_time;if(j>b){return true}var i=j<300;if(i!=this.user.is_active){this.update_active(i)}};g.prototype.follow_path=function(k){this.path_=this.path_.concat(k);if(this.path_.length>50){if(window.console){console.log("Skipping some movements to catch up to real time")}this.path_.splice(0,10)}var j=this;var i=function(){if(j.path_&&j.path_.length){var l=j.path_.shift();j.update_location(l[0],l[1],l[2]*0.9,i)}};i()};g.prototype.remove=function(){this.$object.remove()};g.prototype.set_name=function(i){if(this.user.name===i){return}this.user.name=i;if(this.$hovered_object){this.$hovered_object.find(".author-name").fasttext(i)}};var h=/face-(\d+|fb-\d+)/;g.prototype.set_face=function(k){if(this.user.extra.face_num===k){return}this.user.extra.face_num=k;var j=this.$object.attr("class").match(h);if(j){var l=j[0];var i=$(".user_id_"+this.user.id+"."+l);i.removeClass(l);i.addClass("face-"+k);set_face_source(i,k);this.$object.removeClass(l)}this.$object.addClass("face-"+k);set_face_source(this.$object,k)};g.prototype.create_hovered_object=function(){var i=$$("#hovered-user-template").fastclone();i.attr("id","hovered-user-"+this.user.id);var l=this.user.name?this.user.name:"new user";i.find(".author-name").fasttext(l);if(!this.user.name){i.find(".author-name").addClass("no-name")}var n="face-"+this.user.extra.face_num+" user_id_"+this.user.id;var j=i.find(".user-face");j.addClass(n);set_face_source(j,this.user.extra.face_num);i.hover(function(s){},function(s){$(this).hide()});if(this.user.fb_id){var p=i.find(".fb-profile-link");p.attr("href","http://www.facebook.com/profile.php?id="+this.user.fb_id);p.parent().show()}var r=i.find(".all-posts-link");var o=this;if(!this.user.posts_count){r.hide()}else{r.find(".num-threads").fasttext(this.user.posts_count);r.click(function(){controller.layers.select_layer("#"+o.user.id);i.hide()})}i.find(".user-thread-link").click(function(){i.hide();open_thread_view("user_"+o.user.id)});function k(){if(!window.user_name){user_input.ask_for_user_name(k);return}i.hide();backend.poke_user(o.user.id,function(){notify_user("Poke sent!","You have poked "+o.user.name+".",{delay:3000})},function(){notify_user("Poke not sent!","Unable to poke "+o.user.name+".  Try again later?",{delay:6000,color:"#c00"})})}i.find(".poke-link").click(k);i.find(".delete-user").click(function(){if(confirm("Are you sure?  Deleting is permanent, and removes all notes!")){backend.delete_user(o.user.id,function(){notify_user("User deleted")},function(s){if(s.message){notify_user("Unable to delete: "+s.message)}})}});var m=i.find("img.star");if(this.user.name){m.show();m.css("visibility","visible");var q="#"+this.user.id;if(controller.layers.is_subscribed(q)){i.addClass("starred")}}m.click(function(){if(controller.layers.is_subscribed(q)){controller.unsubscribe(q)}else{controller.subscribe(q)}});if(!this.user.is_active){i.addClass("user-inactive")}this.$hovered_object=i;$("body").append(i)};g.prototype.enter=function(j){var i=this;if(!this.$hovered_object){window.setTimeout(function(){i.create_hovered_object()},1)}this.hover_timeout=window.setTimeout(function(){var r=i.$object.offset().top;var m=i.$object.offset().left;var q=i.$object.width();var p=i.$object.height();var k=i.$hovered_object.width();var o=i.$hovered_object.height();r+=(p-o)/2;m+=(q-k)/2;var n=$("body").height()-o-8;var u=$("body").width()-k-8;r=Math.min(n,Math.max(0,r));m=Math.min(u,Math.max(0,m));i.$hovered_object.css("top",r+"px");i.$hovered_object.css("left",m+"px");var l=i.$hovered_object;if($.browser.msie){l.find("ignore").remove();var t=l.find(".inner");DD_roundies.roundify.call(l[0],[8,8,8,8]);for(var s in l[0].vml){l[0].vml[s].filler.opacity=0.5}DD_roundies.roundify.call(t[0],[6,6,6,6])}i.$hovered_object.show()},(j&&j.delay?j.delay:400))};g.prototype.leave=function(i){if(this.hover_timeout){window.clearTimeout(this.hover_timeout)}};g.prototype.flash=function(){this.flash_queue=2;this.do_flash()};g.prototype.do_flash=function(){if(this.flashing){return}this.flashing=true;var j=(this.$hovered_object&&this.$hovered_object.is(":visible")?this.$hovered_object:this.$object);var i=this;j.addClass("flash");window.setTimeout(function(){j.removeClass("flash");window.setTimeout(function(){i.flashing=false;i.flash_queue--;if(i.flash_queue>0){i.do_flash()}},200)},200)}}function load_controls(){BannerControl=function(){this.id="banner-control";this.$object=$("#banner-control");this.$layer=this.$object.find("#banner-current-layer");this.$location=this.$object.find("#banner-current-location");var o=this;$("#banner-post").click(function(){var p=gmap.fromLatLngToContainerPixel(gmap.getCenter());user_input.compose_message(p,gmap.getCenter())});$("#banner-join").click(function(){controller.subscribe(controller.layers.selected_layer)});$("#banner-leave").click(function(){controller.unsubscribe(controller.layers.selected_layer)});$("#banner-reset").click(function(){controller.clear_search();controller.layers.select_group("all")});$("#banner-star").click(function(){if($$("#banner-layer").hasClass("subscribed")){controller.unsubscribe(controller.layers.selected_layer)}else{controller.subscribe(controller.layers.selected_layer)}})};BannerControl.prototype.update_layer=function(w,t,q,v,u){if(v){if(w==="Me"){w="My notes"}else{w+="'s notes"}}var o=controller.get_search_query();if(o!==""){w+=' matching "'+o+'"'}this.$layer.text(w);this.set_title_bar();var p=!!v||v===0;this.$object.find(".mini-face-border").toggle(p);if(p){var s=this.$object.find(".mini-user-face");s.removeClass();var r="mini-user-face face-"+v+" user_id_"+u.slice(1);s.addClass(r);set_face_source(s,v)}if(t){this.$object.find("#banner_subscribe_container").show();this.$object.find("#banner-star").show();this.$object.find("#banner-layer").toggleClass("subscribed",q);this.$object.find(".stars").toggle(q);this.$object.find(".channel-button").toggle(!p);this.$object.find(".channel-button").css("background-color",t)}else{this.$object.find("#banner_subscribe_container").hide();this.$object.find("#banner-star").hide();this.$object.find(".stars").hide();this.$object.find(".channel-button").hide()}this.$object.find("#banner-layer").toggleClass("search-active",o!=="");if(o!==""){this.$object.find("#banner_subscribe_container").show()}};BannerControl.prototype.update_location=function(o){this.set_title_bar();this.$location.text(o);$$("#change_location_container").show()};BannerControl.prototype.set_title_bar=function(){var o=this.$location.text();var p=this.$layer.text();document.title=window.domain_title+": "+p+" @ "+o};MeControl=function(o){this.id="me-control";this.$object=$("#me-control");this.$face=this.$object.find(".user-face");var p=this;$(window).resize(function(){var q=p.get_position();p.$object.css("left",q.left+"px");p.$object.css("top",q.top+"px")});this.$face.addClass("face-"+o);set_face_source(this.$face,o);this.$face.mousedown(function(q){if($("#user-context-menu:visible").size()!==0){p.should_open_menu=false}else{p.should_open_menu=true;if(q.button===($.browser.msie?1:0)){p.prepare_to_drag(q)}q.preventDefault()}});this.$face.click(function(){if(p.should_open_menu){p.open_menu()}})};MeControl.prototype=new google.maps.Control();MeControl.prototype.prepare_to_drag=function(q){this.last_x=q.pageX;this.last_y=q.pageY;var p=this;function o(r){p.drag(r);r.preventDefault();return false}$$("body").mousemove(o);this.dragging=0};var n=null;MeControl.prototype.drag=function(I){if(n){window.clearTimeout(n)}var A=I.pageX;var z=I.pageY;var H=vector_diff(({x:A,y:z}),({x:this.last_x,y:this.last_y}));var J=this;if(!this.dragging){if(Math.abs(H.x)+Math.abs(H.y)<3){return}var B=$$("#page-cover");function u(x){if(n){window.clearTimeout(n)}controller.auto_move=false;J.$object.removeClass("selected");J.stop_drag();$$("body").unbind("mousemove");x.preventDefault();B.css("opacity","0.75");B.hide();return false}J.$object.addClass("selected");$$("body").one("mouseup",u);B.css("opacity","0.01");B.show()}var C=parseInt(this.$object.css("top"));var D=C+H.y;this.$object.css("top",D+"px");this.last_y=z;var o=parseInt(this.$object.css("left"));var s=o+H.x;this.$object.css("left",s+"px");this.last_x=A;var r=0;var p=0;var w=$$("#map");var F=0.15;var q=15;if(s<q){r=(q-s)/q}else{if(s>w.width()-40-q){r=(w.width()-40-q-s)/q}}if(D<10){p=(q-D)/q}else{if(D>w.height()-40-q){p=(w.height()-40-q-D)/q}}if(r||p){controller.auto_move=true;var G=0.5-abs_bound(r,1)*F;var K=0.5+abs_bound(p,1)*F;var t=gmap.getBounds();var E=t.getSouthWest();var v=t.getNorthEast();gmap.panTo(new google.maps.LatLng(v.lat()*K+E.lat()*(1-K),v.lng()*G+E.lng()*(1-G)));n=window.setTimeout(function(){J.drag(I)},30)}else{if(controller.auto_move){gmap.setCenter(gmap.getCenter());controller.auto_move=false}}if(++this.dragging%5==0){controller.add_to_move_path(this.get_latlng(this.last_x,this.last_y))}};MeControl.prototype.get_latlng=function(o,q){var p=$$("#map").offset().top;return gmap.fromContainerPixelToLatLng(new google.maps.Point(o,q-p))};MeControl.prototype.stop_drag=function(){this.$object.animate(this.get_position(),300,"linear");controller.auto_move=true;gmap.panTo(this.get_latlng(this.last_x,this.last_y))};MeControl.prototype.open_menu=function(){if(this.dragging){this.dragging=0;return}$$("body").unbind("mousemove");var t=gmap.getCenter();var r=$$("#user-context-menu");var o;var q;var s=this;function p(){$$("body").unbind("mousedown",q);GEvent.removeListener(o);r.hide();s.$object.removeClass("selected")}q=function(u){if(!$(u.target).parents().is("#user-context-menu")){p();return}};$$("body").mousedown(q);o=GEvent.addDomListener(gmap.getDragObject(),"mousedown",p);r.children().unbind("click");r.find("#user-menu-post").click(function(){var u={x:undefined,y:undefined};user_input.compose_message(u,t);p()});r.find("#user-menu-settings").click(function(){open_settings();p()});r.find("#user-menu-zoom").click(function(){gmap.zoomIn(t,true,true);p()});r.find("#user-menu-board").click(function(){open_thread_view("user_"+window.user_id);p()});this.$object.addClass("selected");r.show()};var d=/face-(\d+|fb-\d+)/;MeControl.prototype.set_face=function(r){var p=this.$face.attr("class").match(d);if(p){var q=p[0];var o=$(".user_id_"+window.user_id+"."+q);o.removeClass(q);o.addClass("face-"+r);this.$face.removeClass(q);if(controller.layers.layers["#"+window.user_id]){controller.layers.layers["#"+window.user_id].face_num=r}set_face_source(o,r)}this.$face.addClass("user-face");this.$face.addClass("face-"+r);set_face_source(this.$face,r);window.my_face_num=r};MeControl.prototype.initialize=function(o){this.$object.appendTo(o.getContainer());return this.$object.get(0)};MeControl.prototype.getDefaultPosition=function(){var o=this.get_position();return new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(o.left,o.top))};MeControl.prototype.get_position=function(){var p=$$("#map").width()/2;var o=$$("#map").height()/2;if(this.$object){p-=this.$object.width()/2;o-=this.$object.height()/2}return{top:o,left:p}};LayersControl=function(o){this.id="layers-control";this.$object=$$("#layers-control");this.selected_group="all";this.selected_layer="";this.initial_layer=o?o:"";this.layers={};var p=this;$$("#group-all").mousedown(function(){p.select_group("all");return false});$$("#group-my").mousedown(function(){p.select_group("my");return false});$$("#group-friends").mousedown(function(){p.select_group("friends");return false});$$("#group-search").mousedown(function(){p.select_group("search");return false});this.$layers_holder=$$("#layers")};LayersControl.prototype=new google.maps.Control();LayersControl.prototype.initialize=function(o){this.$template=this.$object.find("#layer-template");this.$template.remove();this.$object.appendTo(o.getContainer());return this.$object.get(0)};LayersControl.prototype.getDefaultPosition=function(){return new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(5,115))};LayersControl.prototype.clear_layers=function(){var o={};for(var p in this.layers){var q=this.layers[p];if(q.$object&&p!==this.selected_layer){q.$object.remove()}else{o[p]=q}}this.layers=o};var e=["#cbe66c","#ffb168","#82daf7","#99ffb3","#f4f77d","#cfffac","#f9c0e5","#ffd0c6","#f4A98f","#ffd572","#ffc095","#e5ff99","#bcbfff","#d7a6ff","#ff95c8","#d0e7ff","#d6b99f"];function i(q){q=q.toString();var p=0;for(var o=0;o<q.length;o++){p=(p*2)+q.charCodeAt(o)}return p}window.dumbhash=i;var f="#f9f95a";function k(o){if(!o||o==="global"){return f}return e[i(o)%e.length]}LayersControl.prototype.add_layer=function(t){var q=t.name;var r=q;if(t.is_user){r=(Number(q.substr(1))===window.user_id)?"Me":t.description}if(this.layers[q]){return}var o=this.$template.clone();o.attr("id","layer-"+q);var p=o.find("div.legend-channel");p.css("backgroundColor",k(q));o.find("div.layer-title").fasttext(r);o.find("div.layer-count").fasttext("("+t.count+")");if(t.is_user){if(r==="Me"){p.css("backgroundColor","#a1e6a9")}else{p.css("backgroundColor","#c2c6f2")}p.addClass("user-layer");var u=o.find("img.mini-user-face");u.addClass("face-"+t.face_num);u.addClass("user_id_"+q.substr(1));set_face_source(u,t.face_num)}var s=this;p.mousedown(function(){if(s.selected_layer===q){s.select_group(s.selected_group||"all")}else{s.select_layer(q)}return false});this.$layers_holder.append(o);this.layers[q]=t;t.layer_text=r;t.$object=o;t.hidden=true;if(r.length>15){o.find("div.layer-title").css("fontSize","10pt")}else{if(r.length>12){o.find("div.layer-title").css("fontSize","11pt")}}o.find("img.star").click(function(){if(!s.layers[q].subscribed){controller.subscribe(q)}else{controller.unsubscribe(q)}return false});o.toggleClass("selected",q===this.selected_layer);o.toggleClass("subscribed",t.subscribed);if(q===this.initial_layer){this.initial_layer="";if(t.is_user){this.select_group("friends")}else{this.select_group("all")}this.select_layer(q);controller.banner_control.update_layer(r,k(q),t.subscribed,t.face_num,q)}};LayersControl.prototype.show_layers_for_viewport=function(){var x=gmap.getBounds();var s=controller.bubble_map;var t={};var p=(x.getNorthEast().lat()-x.getSouthWest().lat())/15;var v=x.getNorthEast().lng()-x.getSouthWest().lng();if(v<0){v+=360}v/=12;for(var o in s){if(!s[o]){continue}var q=off_screen_distance(s[o].latlng,x);if(Math.abs(q.y)<p&&Math.abs(q.x)<v){var r=s[o].layers;for(var u=0;u<r.length;++u){var w=r[u];t[w]=t[w]?t[w]+1:1}}}for(var w in this.layers){this.layers[w].count=t[w]||0}this.redraw_layers()};LayersControl.prototype.scored_layers=function(){var q=[];for(var o in this.layers){var p=this.layers[o];var r=p.count;if(p.subscribed){}q.push({name:o,score:r})}q.sort(score_sort);return q};var c=8;LayersControl.prototype.redraw_layers=function(){for(var q in this.layers){var v=this.layers[q];v.$object.find(".layer-title").text(v.layer_text);v.$object.find(".layer-count").text("("+v.count+")")}var y=this.scored_layers();var s=0;var p=false;var z=0;var w=0;var A=$$("#layers");var x=A.height();for(var u in y){var q=y[u].name;var v=this.layers[q];var t=false;if(this.selected_group==="all"||this.selected_group==="search"){t=(y[u].score>0||q===this.selected_layer)&&!v.is_user}else{if(this.selected_group==="my"){t=v.subscribed}else{if(this.selected_group==="friends"){t=v.is_user}}}if(t){s++}if(!v.hidden&&(!t||s>=c)){v.$object.hide();v.hidden=true;z++}else{if(v.hidden&&t&&s<c){v.$object.show();v.hidden=false;w++}}if(v.position!==u){p=true}}if(p){for(var u in y){var q=y[u].name;var v=this.layers[q];v.$object.appendTo(this.$layers_holder);v.position=u}}var r=$$("#group-empty-"+this.selected_group);if(s){if(r.is(":visible")){r.stop();r.css("height","auto");r.hide()}if(!$$("#show-all-button").is(":visible")){$$("#hide-all-button").show()}}else{if(!r.is(":visible")){r.slideDown()}$$("#hide-all-button").hide()}if(w>z&&!A.is(":animated")){A.css("height",x+"px");var o=(w-z)*30+x;A.animate({height:o+"px"},300,"swing",function(){A.css("height","auto")})}};LayersControl.prototype.scroll=function(o){this.$layers_holder.stop();this.show_hide_scrollers(o);this.$layers_holder.animate({scrollTop:o},400)};LayersControl.prototype.scroll_up=function(){var o=this.$layers_holder[0].scrollTop;var p=Math.max(o-MAX_LAYERS_HEIGHT/2,0);this.scroll(p)};LayersControl.prototype.scroll_down=function(){var o=this.$layers_holder[0].scrollTop;var q=this.$layers_holder[0].scrollHeight-MAX_LAYERS_HEIGHT;var p=Math.min(o+MAX_LAYERS_HEIGHT/2,q);this.scroll(p)};LayersControl.prototype.show_hide_scrollers=function(o,q){var p=this.$layers_holder[0].scrollHeight-MAX_LAYERS_HEIGHT;if(q){this.$object.find(".scroll-holder").hide();this.$layers_holder[0].scrollTop=0}else{if(o<p-5){this.$object.find(".scroll-down").show()}else{if(o>p){this.$layers_holder[0].scrollTop=p}this.$object.find(".scroll-down").fadeOut(350)}if(o>5){this.$object.find(".scroll-up").show()}else{this.$object.find(".scroll-up").fadeOut(350)}}};LayersControl.prototype.new_message=function(p,o){if(!p){return}if(!this.layers[p]){this.add_layer({name:p,count:1,subscribed:true})}else{this.layers[p].count++}if(o){controller.subscribe(p)}this.redraw_layers()};LayersControl.prototype.clear_selections=function(){$("#layers-control > .empty-group-message:visible").slideUp();if(this.selected_group){$$("#group-"+this.selected_group).removeClass("selected")}if(this.selected_layer){this.layers[this.selected_layer].$object.removeClass("selected");this.selected_layer=""}};LayersControl.prototype.select_group=function(q){this.clear_selections();if(q==="search"){$$("#group-search").addClass("selected group-selected");controller.show_or_hide_threads(true);controller.banner_control.update_layer("Notes");return}controller.clear_search();if(this.selected_group){$$("#group-"+this.selected_group).removeClass("group-selected")}$$("#group-"+q).addClass("selected group-selected");switch(q){case"all":var p="All Notes";if(window.domain_title){p="All "+window.domain_title+" Notes"}controller.banner_control.update_layer(p);break;case"my":controller.banner_control.update_layer("My Channels");break;case"friends":controller.banner_control.update_layer("Nearby Users");break;default:alert("select_group() called with unrecognized name: "+q)}set_hash(null);if(this.selected_group!==q){this.selected_group=q;var o=this;$$("#layers").slideUp(150,function(){o.redraw_layers();$$("#layers").insertAfter($$("#group-"+q));$$("#layers").slideDown(150,function(){controller.show_or_hide_threads(true);controller.maybe_fill_view_port(true)})});this.$layers_holder[0].scrollTop=0}else{controller.show_or_hide_threads();controller.maybe_fill_view_port(true)}};LayersControl.prototype.select_layer=function(o){var p=this.layers[o];if(!p||this.selected_layer===o){return}this.clear_selections();if(o.charAt(0)==="#"){this.select_group("friends")}p.$object.addClass("selected");this.selected_layer=o;if(!controller.get_search_query()){set_hash("layer",p.name)}controller.banner_control.update_layer(p.layer_text,k(p.name),p.subscribed,p.face_num,o);controller.show_or_hide_threads(true);controller.maybe_fill_view_port(true)};LayersControl.prototype.is_implicitly_selected=function(q){var o=q.get_layer();var p="#"+q.author_id;if(this.selected_layer===""){if(this.selected_group==="all"||this.selected_group==="search"){return true}else{if(this.selected_group==="my"){if((this.layers[o]&&this.layers[o].subscribed)||(this.layers[p]&&this.layers[p].subscribed)){return true}}else{if(this.selected_group==="friends"){return true}}}}else{if(this.selected_layer===o||this.selected_layer===p){return true}}return false};LayersControl.prototype.is_subscribed=function(o){var p=this.layers[o];return p&&p.subscribed};LayersControl.prototype.get_color_for_layer=function(o){if(!o||o==="global"){return f}return k(o)};var l=2;var h=19;ZoomControl=function(){this.id="zoom-control";this.$object=$("#zoom-control");this.width=this.$object.find(".zoom-body").width();this.height=this.$object.find(".zoom-body").height()-1};ZoomControl.prototype=new google.maps.Control();ZoomControl.prototype.initialize=function(r){this.map=r;var q=this;this.$object.find(".zoom-in").mousedown(function(){r.zoomIn();return false});this.$object.find(".zoom-out").mousedown(function(){r.zoomOut();return false});var u=h-l;GEvent.addListener(r,"zoomend",function(){q.redraw()});var t=$("body");var p=this.$object.find(".zoom-triangle-container");function o(w){var v=w.pageX-p.offset().left;var y=u*(v/q.width)+l;r.setZoom(Math.round(y))}function s(v){t.unbind("mousemove",o);t.unbind("mouseup",s);controller.drag_zooming=false}p.mousedown(function(v){controller.drag_zooming=true;t.mouseup(s);t.mousemove(o);o(v);return false});this.redraw();return this.$object.get(0)};ZoomControl.prototype.getDefaultPosition=function(){return new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(5,90))};ZoomControl.prototype.redraw=function(){var o=(this.map.getZoom()-l)/(h-l);var p=this.$object.find(".zoom-triangle");p.css("border-top-width",Math.round(o*this.height)+"px");p.css("border-right-width",Math.round(o*this.width)+"px");p.css("top",Math.round((1-o)*this.height)+"px")};var a=1;var m=8;DensityControl=function(){this.id="density-control";this.$object=$("#density-control");var q=this.$object.find(".density-body");this.width=q.width();this.height=q.height()-1;var p=this;this.$object.find(".more-dense").click(function(){p.set_density(p.density+1)});this.$object.find(".less-dense").click(function(){p.set_density(p.density-1)});var s=$$("body");function o(w){var t=w.pageY-q.offset().top;var v=1-t/p.height;var u=Math.round(v*(m-a))+a;p.set_density(u)}function r(t){s.unbind("mousemove",o);s.unbind("mouseup",r)}q.mousedown(function(t){s.mouseup(r);s.mousemove(o);o(t);return false});this.density=5};DensityControl.prototype=new google.maps.Control();DensityControl.prototype.set_density=function(o){o=Math.max(a,Math.min(m,o));if(this.density!=o){this.density=o;controller.thread_density=this.density;this.redraw();controller.show_or_hide_threads()}};DensityControl.prototype.initialize=function(o){this.$object.appendTo(o.getContainer());this.redraw();return this.$object.get(0)};DensityControl.prototype.getDefaultPosition=function(){return new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(15,15))};DensityControl.prototype.redraw=function(){var o=(this.density-a)/(m-a);var p=this.$object.find(".density-bar");p.css("border-top-width",Math.round((1-o)*this.height)+"px");p.css("height",Math.round(o*this.height)+"px")};var b=[];b[0]="Try dragging the map to explore";b[1]="Move your mouse over a note to learn more about it";b[2]="Your user icon is in the middle of the map";b[3]="Try clicking your user icon";b[4]="Feel free to switch to a different icon";b[5]="You can also drag your user icon to a new location";b[6]="Right-click on a specific location on the map";b[7]="Move your mouse over a user to interact with them";b[8]='To jump to another city, click "change location" up top.';var g=0;function j(){var p=$$("#tip-holder");function o(){var q=b[g];$$("#tip-content").text(q);p.fadeIn(400,function(){if($.browser.msie){p[0].style.cssText=""}});g=(g+1)%b.length}if(p.is(":visible")){p.fadeOut(400,o)}else{o()}}window.setInterval(j,14000)}function load_user_input(){var w={};window.user_input=w;w.dialog_open=0;var j=$("#search-box");function b(){if(controller.search(j[0].value)){w.maybe_suggest_change_location()}else{j.focus()}}j.keydown(function(z){submit_on_enter(z,b)});j.focus(function(){$(".search-instructions").hide();j.select()});j.blur(function(){if(!j[0].value){$(".search-instructions").show()}});$("#search-submit").click(b);w.$no_results_notification=null;w.take_change_location_suggestion=function(){window.change_location($("#search-box").val());controller.clear_search();controller.layers.select_group("all");if(w.$no_results_notification){w.$no_results_notification.find(".dialog-close").mousedown();w.$no_results_notification=null}};function o(H,I,A,z){if(I){var J=$$("#page-cover");J.show();J.one("click",a)}var E="<div class='dialog-box'></div>";var B=$(E);B.appendTo("body");H.appendTo(B);var F,C;if(A!==undefined&&z!==undefined){F=z-(B.outerHeight()/2);C=A-(B.outerWidth()/2)}else{F=($(window).height()/2)-(B.outerHeight()/2);C=($(window).width()/2)-(B.outerWidth()/2)}var G=C+B.outerWidth();if(C<0){C=10}else{if(G>$(window).width()){C=$(window).width()-B.outerWidth()-10}}var D=F+B.outerHeight();if(F<0){F=10}else{if(D>$(window).height()){F=$(window).height()-B.outerHeight()-10}}B.css("top",F+"px");B.css("left",C+"px");w.dialog_open++;if($.browser.msie){DD_roundies.roundify.call(B[0],[8,8,8,8]);H.find(".button").each(function(){DD_roundies.roundify.call(this,[6,6,6,6])})}return B}function a(){var A=$("body > .dialog-box:not(#notification-dialog)");if(A.size()>1){A=A.filter(":last");$$("#page-cover").one("click",a)}else{$$("#page-cover").hide()}var z=A[0]?A[0].vmlBox:null;if(z){$(z).remove()}$("#template-container").append(A.children());A.remove();w.dialog_open=Math.max(w.dialog_open-1,0)}w.close_dialog_box=a;var d=20;var s=/[^a-zA-Z0-9\-_ ]/g;w.ask_for_user_name=function(B){var A=$(".first-time-dialog:visible");if(A.size()){a(A)}$("#first-time-current").remove();var E=$("#first-time").clone();E.attr("id","first-time-current");E.css("display","block");E.find(".no-name-warning").hide();var D=E.find("#first-time-name");function C(){E.find("#first-time-submit").click()}function z(){a(E)}e(D,d,s,C,z);window.setTimeout(function(){D[0].focus()},1);controller.pending_login_callback=function(){a(E);if(B){B()}};E.find("#first-time-submit").click(function(){var F=E.find("#first-time-name");if(F[0].value==""){E.find(".no-name-warning").fadeIn("fast");return}controller.update_username(F[0].value);$.post("/update_user",{name:F[0].value},function(){if(controller.pending_login_callback){controller.pending_login_callback();controller.pending_login_callback=null}})});o(E,true)};var v="Create New";var k="Enter your note here";var x="Enter the name of the channel you wish to create";var y="Channel names must be 15 characters or less. Please re-enter the name of the channel you wish to create";var f="Channel names must be 15 characters or less.";var r="Please choose the channel for your note.";var l="Unable to create your note, please try again.";var p="Please enter a note.";function c(B,z,E){z.find("div.layer-name").fasttext(E);var A=controller.layers.get_color_for_layer(E);z.css("backgroundColor",A);var D=B.find("div.subscribe-checkbox");if(controller.layers.is_subscribed(E)){D.hide()}else{D.show();var C=B.find("span.subscribe-channel");C.fasttext(E);C.css("backgroundColor",A)}}function g(z){z=(z.replace(/^\W+/,"")).replace(/\W+$/,"");z=z.toLowerCase();z=z.replace(/[^a-z0-9]+/g,"-");z=(z.replace(/^-/,"")).replace(/-$/,"");return z}function i(A,C,z,B,D){var E=$('<div class="option">'+B+"</div>");E.mouseenter(function(){C.find("div.option").removeClass("selected");$(this).addClass("selected")});E.mouseleave(function(){$(this).removeClass("selected")});E.click(function(){c(A,z,$(this).text());z.click()});C.find(".options").append(E);if(!D){E.hide()}}function u(C,G,I,A){var z=[];for(var D in A){if(!A[D].is_user){z.push({name:D,score:A[D].count})}}z.sort(score_sort);$.each(z,function(L,K){i(C,G,I,K.name,L<8)});if(z.length===0){i(C,G,I,"global",true)}var F=G.find(".create-new-option");F.mouseenter(function(){$(this).addClass("selected")});F.mouseleave(function(){$(this).removeClass("selected")});F.click(function(){var K=$(this).text();if(K===v){new_layer_text=g(prompt(x));while(new_layer_text.length>15){new_layer_text=g(prompt(y))}}else{new_layer_text=K.substr(0,K.indexOf(" "))}c(C,I,new_layer_text);I.click()});var H=F;var E=G.find(".search");E.keydown(function(P){var L=g(E.val());if(L.length>=15&&(P.which>=48||P.which==32)&&!P.ctrlKey&&!P.altKey){G.find(".length-warning").show();return false}if(P.which!==13&&P.which!==27&&P.which!==38&&P.which!==40){return}P.preventDefault();if(P.keyCode===40){if(H.is(".selected:visible")){H.removeClass("selected");return}var R=G.find(".option.selected:visible");if(R.size()===0){if(G.find(".option:visible").size()===0){H.addClass("selected")}else{H.removeClass("selected");G.find(".option:visible:first").addClass("selected")}return}R.removeClass("selected");var K=R.nextAll(".option:visible:first");if(K.size()===0){H.addClass("selected")}else{K.addClass("selected")}}else{if(P.keyCode===38){var R=$(".option.selected:visible");if(R.size()===0){if(!H.is(":visible")||H.hasClass("selected")){H.removeClass("selected");G.find(".option:visible:last").addClass("selected")}else{H.addClass("selected")}return}R.removeClass("selected");R.prevAll(".option:visible").eq(0).addClass("selected")}else{if(P.which===13){var O=$(".option.selected:visible");var N=$(".create-new-option.selected:visible");if(O.size()===0&&N.size()===0){return}var M="";if(O.size()!==0){new_layer_text=O.eq(0).text()}else{var Q=N.eq(0).text();if(Q===v){new_layer_text=g(prompt(x));while(new_layer_text.length>15){new_layer_text=g(prompt(y))}}else{new_layer_text=Q.substr(0,Q.indexOf(" "))}}c(C,I,new_layer_text);I.click()}else{if(P.which===27){I.click()}}}}});E.keyup(function(P){if(P.which===13||P.which===27||P.which===38||P.which===40){return}var L=g(E.val());if(L.length>15){G.find(".length-warning").show();var O=E.val();while(g(O).length>15){O=O.substr(0,O.length-1)}E.val(O);L=g(O)}else{if(L.length<15&&G.find(".length-warning:visible").size()){G.find(".length-warning").hide()}}var Q=L!==""?L+" (create new)":v;H.fasttext(Q);var N=false;G.find(".option").each(function(R){var S=$(this);if(S.text().indexOf(L)==-1){S.hide()}else{S.show();if(S.text()===L){N=true}}});var M=G.find(".option:visible");M.slice(8).hide();M=M.slice(0,8);if(N){H.hide()}else{H.show()}if(L!==""&&M.filter(".selected").size()===0&&H.filter(".selected:visible").size()===0){G.find(".option.selected").removeClass("selected");H.removeClass("selected");var K=G.find(".option:visible");if(K.size()!==0){K.eq(0).addClass("selected")}else{H.filter(":visible").addClass("selected")}}});var B=(I[0].offsetTop+I.outerHeight()-4);var J=I[0].offsetLeft-4;G.css("top",B+"px");G.css("left",J+"px");G.show();E.focus()}w.setup_layers_button=function(D,E,C){var B=D.find(".more-layers");var z=D.find(".more-layers-button");c(D,z,C||"global");var A=function(F){if(!$(F.target).parents().is(".more-layers")){z.click()}};z.click(function(I){if(z.hasClass("clicked")){var G=controller.layers.get_color_for_layer(z.find(".layer-name").text());z.css("backgroundColor",G);$("body").unbind("click",A);z.removeClass("clicked");$(".option").remove();var F=B.find(".create-new-option");F.removeClass("selected");F.fasttext(v);F.show();F.unbind();var H=B.find(".search");H.unbind();H.val("");B.hide();D.find("textarea.post-message-input").focus();return}z.css("backgroundColor","#f3f3f3");z.addClass("clicked");u(D,B,z,E.layers);$("body").click(A);I.stopPropagation();I.cancelBubble=true;return false})};function h(F,B,z){$$("#fb-page-cover").show();var E=window.location.href.split("#")[0];var H=line_split(F,60);var A={name:H[0],href:E+"#thread/"+z,properties:{channel:{text:B,href:E+"#layer/"+B}}};if(H.length>1){A.description=H[1]}var C=[{text:"Reply",href:E+"#--thread/"+z}];function D(){$$("#fb-page-cover").hide()}var G="posted a note in "+t+" on "+window.domain_title;FB.Connect.streamPublish(G,A,C,null,null,D)}var t="";w.compose_message=function(I,E,D){var z=false;t=$("#banner-current-location").text();update_location_text(E,function(J){t=J});$("#post-message-current").remove();var B=$("#post-message-template").clone();B.attr("id","post-message-current");B.css("display","");var G=B.find(".post-address");geocoder.getLocations(E,function(J){var K=strip_address(J.Placemark[0].address);if(J.Placemark[0].AddressDetails.Accuracy<=5){K="(lat: "+E.lat().toFixed(3)+", long: "+E.lng().toFixed(3)+")"}G.val(K);G.attr("original_address",K);G.attr("last_valid_address",K)});$change_address_link=B.find(".post-change-address");$save_address_link=B.find(".post-save-address");$change_address_link.click(function(J){G.removeAttr("disabled");G.select();$change_address_link.hide();$save_address_link.show();J.preventDefault()});$save_address_link.click(function(J){geocoder.setViewport(gmap.getBounds());geocoder.getLocations(G.val(),function(K){if(!K||K.Status.code!=200||K.Placemark.length==0){notify_user("The location you entered was invalid.");G.val(G.attr("last_valid_address"))}else{var L=strip_address(K.Placemark[0].address);G.val(L);G.attr("last_valid_address",L)}});G.attr("disabled","disabled");$save_address_link.hide();$change_address_link.show();J.preventDefault()});G.keypress(function(J){if(J.which===13){$save_address_link.click();window.setTimeout(function(){B.find("textarea.post-message-input").focus()},1)}});G.blur(function(J){$save_address_link.click()});var H=B.find("textarea.post-message-input");var C=B.find("div.post-message-instructions");H.click(function(J){C.hide()});H.blur(function(J){if(H.val()===""){C.show()}});window.setTimeout(function(){H.focus()},1);H.keydown(function(J){if(J.which==13){B.find(".post-message-submit").click();J.preventDefault()}if(J.which==27){B.find(".post-message-cancel").click()}if(J.which>=48){C.hide()}});B.find(".post-message-submit").click(function(P){if(z){return}z=true;var R=H.val();if(R===""){alert(p);P.stopPropagation();return false}if(!window.user_name){function J(){B.find(".post-message-submit").click()}w.ask_for_user_name(J);return false}var L=[B.find("div.layer-name").text()];var O=B.find("div.subscribe-checkbox:visible input");var Q=O[0]&&O[0].checked;var N=B.find("div.facebook-checkbox:visible input");var K=N[0]&&N[0].checked;B.find(".post-message-cover:first").show();function M(){backend.create_thread(R,L,E.lat(),E.lng(),function(S){controller.maybe_fill_view_port(true);controller.layers.new_message(L[0],Q);controller.update_message(S.message);controller.show_or_hide_threads();if(L[0]!==controller.layers.selected_layer&&(controller.layers.selected_group!=="all"||controller.layers.selected_layer!=="")){controller.layers.select_group("all");if(L[0]){controller.layers.select_layer(L[0])}}a();if(K){h(R,L[0],S.message.id)}z=false},function(S){alert(l);B.find(".post-message-cover:first").hide();z=false})}if(G.val()!==G.attr("original_address")){geocoder.getLocations(G.val(),function(T){if(!T||T.Status.code!=200||T.Placemark.length==0){M();return}var S=T.Placemark[0];E=new GLatLng(S.Point.coordinates[1],S.Point.coordinates[0]);M()})}else{M()}});B.find("div.post-message-cancel").click(function(J){a()});var A=controller.layers;var F=A.selected_layer;if(F===""||F.charAt(0)==="#"){F="global"}w.setup_layers_button(B,A,D||F);o(B,true,I.x,I.y)};w.map_context_menu=function(A,I){var E=A.fromContainerPixelToLatLng(I);var G=$("#map");var F=G.offset();var z=$("#map-context-menu");var J;var D;function C(){$("body").unbind("mousedown",D);GEvent.removeListener(J);z.hide()}D=function(K){if(!$(K.target).parents().is("#map-context-menu")){C()}};J=GEvent.addDomListener(A.getDragObject(),"mousedown",function(){C()});$("body").mousedown(D);var B=Math.min(I.x+6,G.width()-z.outerWidth()-2)+F.left;var H=Math.min(I.y+6,G.height()-z.outerHeight()-2)+F.top;z.css("left",B);z.css("top",H);z.children().unbind();z.find("#context-menu-post").click(function(){var K={x:undefined,y:undefined};w.compose_message(K,E);C()});z.find("#context-menu-move").click(function(){A.panTo(E);C()});z.find("#context-menu-zoom").click(function(){A.zoomIn(E,true,true);C()});z.show()};function n(z){if(!$(z.target).parents().is("#change_location_div")){w.hide_location_changer()}}w.show_location_changer=function(){$("#change_location_link").hide();$("#change_location_div").show();setTimeout(function(){$("#change_location_input")[0].select();$("body").click(n)},1);$("#change_location_input").focus();$("#change_location_input").keydown(function(z){if(z.keyCode==27){w.hide_location_changer()}})};w.hide_location_changer=function(){$("#change_location_div").hide();$("#change_location_link").show();$("#change_location_input").unbind("keydown");$("body").unbind("click",n)};w.maybe_suggest_change_location=function(){var z=$("#search-box").val();geocoder.setViewport(gmap.getBounds());geocoder.getLocations(z,function(C){if(!C||C.Status.code!=200||C.Placemark.length==0){$("#suggest_change_location").empty();$("#suggest_change_location_link").hide()}else{var B=C.Placemark[0];var A=new GLatLng(B.Point.coordinates[1],B.Point.coordinates[0]);var E=B.AddressDetails.Accuracy;var D=B.address.replace(", USA","");$("#suggest_change_location").fasttext(D);$("#suggest_change_location_link").show()}})};window.change_location=function(z,A){if(!z){z=$("#change_location_input").val()}if(!A){geocoder.setViewport(gmap.getBounds())}geocoder.getLocations(z,function(D){if(!D||D.Status.code!=200||D.Placemark.length==0){if(!A){window.geocoder=new GClientGeocoder();console.log("Let's try again, without bounding box");change_location(z,true)}else{alert('"'+z+'" not found')}}else{var C=D.Placemark[0];var B=new GLatLng(C.Point.coordinates[1],C.Point.coordinates[0]);var E=C.AddressDetails.Accuracy;gmap.setCenter(B,q(E))}})};function q(z){switch(z){case 1:return 5;case 2:return 7;case 3:return 9;case 4:return 13;case 5:return 14;case 6:return 15;case 7:return 15;case 8:return 15;case 9:return 15;default:return 4}}function e(E,D,A,C,B){E.keydown(function(G){E.parent().find(".no-name-warning").fadeOut("fast");var F=E[0].value;if(F.length>=D&&(G.which>=48||G.which==32)&&!G.ctrlKey&&!G.altKey){return false}if(G.which==13&&C){C();return false}if(G.which==27&&B){B();return false}});var z=A?A:/$^/;E.keyup(function(F){var G=E.attr("value");if(G.length>D||G.match(z)){E.attr("value",G.slice(0,D).replace(z,""))}})}window.open_settings=function(){var z=$("#settings-div");z.find(".no-name-warning").hide();select_face(window.my_face_num);o(z,true);var A=$("#display_name_input");A.attr("value",window.user_name);A.unbind();e(A,d,s,save_settings,close_settings);A.focus()};window.close_settings=function(){a()};var m=window.my_face_num;window.save_settings=function(){var A=$("#settings-div");params={};params.name=A.find("#display_name_input").attr("value");if(!params.name){A.find(".no-name-warning").fadeIn("fast");A.find("#display_name_input").focus();return}params.face_num=m;if(m.slice(0,2)=="fb"){params.face_url=profile_pictures.fb}A.find(".post-message-cover:first").show();function B(){window.my_face_num=m;controller.me_control.set_face(m);controller.update_username(params.name);A.find(".post-message-cover:first").hide();close_settings()}function z(){A.find(".post-message-cover:first").hide()}post("/save_settings",params,B,z)};window.select_face=function(z){z=z+"";$("#settings-div .user-face").removeClass("selected_face");m=z;z=z.split("-")[0];$("#set-face-"+z).addClass("selected_face")};window.open_help=function(z){var B=$$("#help-div");if(B.parent().is("#template-container")){o(B,true)}if(z){var A=$$("#help-content");A.animate({scrollTop:$("#help-"+z)[0].offsetTop-A[0].offsetTop})}$$("#page-cover").unbind("click");$$("#page-cover").one("click",function(C){close_help()});set_hash("help")};window.close_help=function(z){a();if(!z){set_hash(null)}};window.open_about=function(A){var z=$$("#about-div");if(z.parent().is("#template-container")){o(z,true)}if(A){var B=$$("#about-content");B.animate({scrollTop:$("#about-"+A)[0].offsetTop-B[0].offsetTop})}$$("#page-cover").unbind("click");$$("#page-cover").one("click",function(C){close_about()});set_hash("about")};window.close_about=function(z){a();if(!z){set_hash(null)}};window.notify_user=function(G,H,D){var E=D||{};var z=$("#notification-dialog");var F=z.find(".dialog-title");F.fasttext(G);var A=z.find(".dialog-message");if(H){A.fasttext(H);A.show()}else{A.hide()}if(E.color){F.css("color",E.color)}if(E.top){z.css("top",E.top)}else{z.css("top","100px")}var C;function B(){z.fadeOut(350,function(){z.show().appendTo($("#template-container"));if(z[0].vmlBox){$(z[0].vmlBox).remove()}});if(C){window.clearTimeout(C)}}z.find(".button").unbind("mousedown");z.find(".button").removeClass("hovered");z.find(".confirm-button").toggle(!!E.confirm_callback);if(E.confirm_callback){z.find(".confirm-button.yes").mousedown(function(){B();E.confirm_callback(true)});z.find(".confirm-button.no").mousedown(function(){B();E.confirm_callback(false)})}else{z.find(".dialog-close").mousedown(B);C=window.setTimeout(B,E.delay||8000)}z.find(".dialog-buttons-container").toggle(E.show_close!==false||!!E.confirm_callback);z.find(".dialog-close").toggle(E.show_close!==false&&!E.confirm_callback);$("body").append(z);if($.browser.msie){DD_roundies.roundify.call(z[0],[8,8,8,8]);DD_roundies.roundify.call(z.find(".button")[0],[6,6,6,6])}z.hide();z.css("left",($(window).width()-z.outerWidth())/2);z.fadeIn(350);return z}}var current_open_thread_id=null;function resize_frame(){var e=$("#thread_frame");var c=80;var b=5;var a=$(window).height()-(2*c);var d=Math.min($(window).width()-(2*c),600);e.css("width",d+"px");e.css("height",a+"px");e.css("top",(c-b+10)+"px");e.css("left",(($(window).width()-d)/2)+"px")}function open_frame(a){$("#page-cover").show();user_input.dialog_open++;var b='<iframe id="thread_frame" name="thread_frame" frameborder=0 class=dialog-box';b+=" src='"+a+"'";b+="></iframe>";var c=$(b);c.css("width","70%");c.css("border","0");c.css("position","absolute");c.css("background","transparent");c.css("z-index",6);c.appendTo("body");c.css("visibility","hidden");c.bind("load",function(){c.css("visibility","visible");c.css("border","5px solid #909098");c.css("background","white");c.focus();c[0].contentWindow.$("#new_reply_text").focus();resize_frame()});$(window).resize(resize_frame)}function close_frame(){$(window).unbind("resize",resize_frame);user_input.close_dialog_box()}function open_thread_view(a){if(current_open_thread_id){return}open_frame("/view_thread?thread_id="+a);$("#page-cover").unbind("click");$("#page-cover").one("click",function(b){close_thread_view()});current_open_thread_id=a;set_hash("thread",a)}function close_thread_view(a,b){if(!current_open_thread_id){return}if(!a){set_hash(null)}close_frame();if(!b){$.post("/close_thread",{thread_id:current_open_thread_id})}else{notify_user("Your note has been deleted",null,{delay:6000,show_close:false})}current_open_thread_id=null}var backend={};window.backend=backend;function post_safe(b,c,e,a){var d=function(f){if(f&&f.success){if(e){e(f)}}else{if(a){a(f)}}};post(b,c,d,a)}backend.move_user=function(b,c,a){post("/move","path="+$.toJSON(b),c,a)};backend.subscribe=function(b,c,a){post_safe("/subscribe","layer="+b,c,a)};backend.unsubscribe=function(b,c,a){post_safe("/unsubscribe","layer="+b,c,a)};backend.poke_user=function(b,c,a){post_safe("/poke","user_id="+b,c,a)};backend.delete_user=function(b,c,a){post_safe("/delete_user","user_id="+b,c,a)};backend.delete_thread=function(a,c,b){post_safe("/delete_thread","thread_id="+a,c,b)};backend.get_user_info=function(a){post_safe("/get_user_info","",a)};backend.get_thread_details=function(a,c,b){post_safe("/get_thread_details","thread_id="+a,c,b)};backend.create_thread=function(f,g,c,b,e,a){var d={text:f,layers:g,latitude:c,longitude:b};if(window.domain){d.domain=window.domain}post("/create_thread",d,e,a)};backend.fill_view_port=function(){var b=null;var a=false;return function(f,j,l,g,i,d,e,c,k){if(a){console.log("Aborting previous fill_view_port().");b.abort();a=false}var h={bottom:f.bottom,left:f.left,top:f.top,right:f.right,center_lat:j.lat,center_lng:j.lng,zoom:l,selected_layers:g,query:i,search_outside_window:(d?"true":"false"),clear_current_data:(e?"true":"false")};if(c){h.active=true}if(window.domain){h.domain=window.domain}a=true;b=$.post("/fill",h,function(m){m.params=h;k(m);a=false},"json")}}();backend.setup_stomp_client=function(){var stomp;var stomp_reconnect_timeout;var stomp_error_count=0;var connect_stomp_client=function(){stomp.connect(window.orbited_host,window.orbited_stomp_port);if(stomp_reconnect_timeout){window.clearTimeout(stomp_reconnect_timeout)}};return function(channel_handlers){if(stomp){stomp.channel_handlers=channel_handlers;stomp.disconnect();return}stomp=new STOMPClient();stomp.channel_handlers=channel_handlers;stomp.onopen=function(){};stomp.onclose=function(c){stomp_reconnect_timeout=window.setTimeout(connect_stomp_client,Math.min(1000<<stomp_error_count,60000));stomp_error_count++};stomp.onerror=function(error){console.error("stomp error: "+error)};stomp.onerrorframe=function(frame){console.error("stomp error frame: "+frame.body)};stomp.onconnectedframe=function(){stomp_error_count=0;for(var channel_id in stomp.channel_handlers){if(!stomp.channel_handlers.hasOwnProperty(channel_id)){continue}stomp.subscribe(channel_id)}};stomp.onmessageframe=function(frame){var data=eval("("+frame.body+")");stomp.channel_handlers[frame.headers.destination].apply(undefined,[data])};connect_stomp_client()}}();function load_controller(){var e=window.gmap;var h={};window.controller=h;h.bubble_map={};h.user_map={};h.movement_path=[];h.object_count=0;var f=100;var q={};function n(s){var r=s.getSouthWest();var t=s.getNorthEast();q.height=t.lat()-r.lat();q.width=t.lng()-r.lng();if(t.lng()<r.lng()){q.width+=360}q.bottom=r.lat()-q.height;q.top=t.lat()+q.height;q.left=r.lng()-q.width;q.right=t.lng()+q.width}function l(t){var s=t.lat();var r=t.lng();if(q.left>q.right){q.right+=360;if(r<0){r+=360}}return s>q.top||s<q.bottom||r>q.right||r<q.left}h.garbage_collect_users=function(){var s=h.user_map;n(e.getBounds());for(var t in s){var r=s[t];if(r&&(r.is_very_idle()||l(r.latlng))){r.go_away()}}};h.garbage_collect_threads=function(){var r=h.bubble_map;n(e.getBounds());for(var t in r){var s=r[t];if(s&&l(s.latlng)){s.go_away()}}};var b=5;h.handle_updates=function(H){if(H.current_server_time){h.current_server_time=H.current_server_time}if(H.params&&H.params.clear_current_data==="true"){for(var z in h.bubble_map){var G=h.bubble_map[z];if(G){G.go_away()}}var B=e.getBounds();var C=H.threads;for(var D=0;D<Math.min(C.length,b);D++){var v=C[D];B.extend(new GLatLng(v.latitude,v.longitude))}var x=e.getZoom();var t=e.getBoundsZoomLevel(B);var s=true;if(H.params&&H.params.query!==""){user_input.$no_results_notification=null;if(C.length===0){user_input.$no_results_notification=notify_user("No results in the whole world! Sorry. :-(");s=false}else{if(t>=x){s=false}else{function E(J){if(J){e.setCenter(B.getCenter(),t)}}notify_user("Would you like to zoom out to see more results?",null,{delay:12000,confirm_callback:E});s=false}}}if(s){e.setCenter(B.getCenter(),t)}H.params=undefined}if(H.site_notification){notify_user(H.site_notification.line1,H.site_notification.line2,H.site_notification.options);H.site_notification=undefined}if(H.poke){notify_user("You were poked by "+H.poke.from_name+"!");var I=h.user_map[H.poke.from_id];if(I){I.flash()}H.poke=undefined}if(H.feed_events){$.each(H.feed_events,function(J,K){h.add_feed_item(K)});H.feed_events=undefined}if(H.profile_pictures){var u=H.profile_pictures;for(var z in u){window.profile_pictures[z]=u[z]}H.profile_pictures=undefined}if(H.users){var y=H.users;for(var D=0;D<y.length;D++){var I=y[D];h.update_user(I)}H.users=undefined}if(H.layers){for(var D=0;D<H.layers.length;D++){h.layers.add_layer(H.layers[D])}H.layers=undefined}if(H.threads){var C=H.threads;var A=now_ms();for(var D=0;D<C.length;D++){if(D%5==0&&now_ms()-A>250){H.threads=C.slice(D);window.collision_manager.dont_move();setTimeout(function(){h.handle_updates(H)},0);return}var v=C[D];h.update_message(v)}}if(H.reply){for(var D=0;D<H.reply.replies.length;D++){var w=H.reply.replies[D];g(H.reply.thread,"incorporate_reply_event",w);var F=h.bubble_map[H.reply.thread];if(F){F.flash();F.set_last_reply(w)}}}if(H.enter_thread){g(H.enter_thread.thread,"enter_user",H.enter_thread.user)}if(H.leave_thread){g(H.leave_thread.thread,"leave_user",H.leave_thread.user)}if(H.user_movements){var I=H.user_movements.user;if(I&&h.user_map[I.id]){var r=h.user_map[I.id];if(I.last_active_time>r.user.last_active_time){r.follow_path(H.user_movements.path);r.user.last_active_time=I.last_active_time}r.update_active(true)}}if(h.new_thread_info){h.show_or_hide_threads();h.new_thread_info=false}h.garbage_collect_users();if(h.object_count>f){h.garbage_collect_threads()}h.layers.show_layers_for_viewport()};h.add_feed_item=function(s){var r=$$("#feeditem-template").clone();r.attr("id","");var u=r.find("img.mini-user-face");u.addClass("user_id_"+s.user_id+" face-"+s.user_face);if(s.user_face_url){u.attr("src",s.user_face_url)}r.find("span.feed-user").fasttext(s.user_name);r.find("span.feed-details").fasttext(truncate(s.text||"",40));var t=r.find("span.feed-type-text");t.text(s.type_text);if(s.thread_id){t.addClass("click-link");t.click(function(){h.pan_into_view(s.thread_id,s.latitude,s.longitude)})}r.hide();$$("#feeditems").prepend(r);$$("#feeditems").find("> div.feeditem").slice(40).remove();r.slideDown()};h.update_message=function(s){if(window.current_open_thread_id==s.id){g(s.id,"update_thread",s)}if(s.latitude>90){return}switch(s.status){case"D":if(h.bubble_map[s.id]){h.bubble_map[s.id].go_away()}break;case"A":if(h.bubble_map[s.id]){r=h.bubble_map[s.id];if(s.date_modified>r.date_modified){r.author_name=s.author_name;r.author_face=s.author_face;r.text=s.text;r.layers=s.layers;r.set_dot_color();r.date_modified=s.date_modified;r.score=s.score;r.up_vote_count=s.up_vote_count;r.down_vote_count=s.down_vote_count;var t=new google.maps.LatLng(s.latitude,s.longitude);r.setLatLng(t);r.redraw_text();h.new_thread_info=true}return r}else{h.new_thread_info=true;s.latlng=new google.maps.LatLng(s.latitude,s.longitude);if(s.just_posted){if(i(s)){return null}}var r=new TextBubble(s);h.bubble_map[s.id]=r;e.addOverlay(r);r.set_dot_color();h.object_count++;return r}break;default:console.error("Invalid message status: "+s.status)}};h.update_user=function(r){if(h.user_map[r.id]){var t=h.user_map[r.id];if(r.deleted){t.go_away();return}if(r.last_active_time>t.user.last_active_time){if(!t.animating&&!r.squelch_movement){t.update_location(r.latitude,r.longitude)}t.user.last_active_time=r.last_active_time}t.set_name(r.name);if(r.extra&&r.extra.face_num){if(r.extra.face_url){window.profile_pictures[r.extra.face_num]=r.extra.face_url}t.set_face(r.extra.face_num);if(h.layers.layers["#"+r.id]){h.layers.layers["#"+r.id].face_num=r.extra.face_num}}t.update_active(r.is_active)}else{if(!r.is_me&&!r.deleted){var s=new UserIcon(r);h.user_map[r.id]=s;e.addOverlay(s);h.object_count++}}};function g(r,t,u){var s=document.frames?document.frames.thread_frame:document.getElementById("thread_frame");if(s&&r==current_open_thread_id){var v=s.contentWindow||s;if(v[t]){v[t](u)}else{console.log("Can't find method in iframe: "+t)}}}h.update_username=function(r){window.user_name=r;$$("#top-right-name").text(r);if(r){$$("#top-right-name").removeClass("no-name")}};h.set_user_id=function(s){var r=$(".user_id_"+window.user_id);r.removeClass("user_id_"+window.user_id);r.addClass("user_id_"+s);window.user_id=s;window.stomp_channel="/user/"+s;window.reset_stomp()};var a="";h.get_search_query=function(){return a};h.search=function(s,t){if(!s){if(a){h.layers.select_group("all")}a="";return false}a=s;var r=t?false:true;h.layers.clear_selections();h.maybe_fill_view_port(true,r,true);h.banner_control.update_layer("Notes");h.layers.selected_group="search";var u=$$("#group-search");$$("#group-search-query").text(s);u.show();$$("#layers").insertAfter(u);$$("#layers-control .group-button").removeClass("group-selected");u.addClass("selected group-selected");set_hash("search",a);h.layers.redraw_layers();return true};h.clear_search=function(){if(a){a="";$$("#group-search").hide();$$("#layers-control .group-button").removeClass("group-selected");var s=$$("#group-all");s.addClass("group-selected");$$("#layers").insertAfter(s)}var r=$$("#search-box");r[0].value="";r.blur();$$("#suggest_change_location_link").css("visibility","hidden")};h.hide_all_notes=function(){for(var s in h.bubble_map){var r=h.bubble_map[s];if(r){r.minimize()}}$$("#hide-all-button").hide();$$("#show-all-button").show()};h.unhide_all_notes=function(){$$("#hide-all-button").show();$$("#show-all-button").hide();h.show_or_hide_threads()};h.maybe_fill_view_port=function(){var u=false;var r=null;var t=-1;var v=-1;var s=function(z,A,w){u=true;v=now_ms();var G=e.getBounds();var E=e.getCenter();var J=e.getZoom();var B=h.layers.selected_layer;var y=now_ms()-h.user_last_active<120000||w;$$("body").unbind("mousemove",h.set_active);$$("body").one("mousemove",h.set_active);var I=G.getSouthWest();var D=G.getNorthEast();var H=D.lat()-I.lat();var x=D.lng()-I.lng();var C={bottom:I.lat()-H,left:I.lng()-x,top:D.lat()+H,right:D.lng()+x};var F={lat:E.lat(),lng:E.lng()};backend.fill_view_port(C,F,J,B,a,z,A,y,function(K){r=E;t=J;h.handle_updates(K);u=false})};return function(w,E,C){var x=E?true:false;var y=C?true:false;if(w===true||now_ms()-v>(60*1000)){if(w){console.log("Calling fill_view_port(): opt_force === true")}else{console.log("Calling fill_view_port(): last call was > 1 min ago")}s(x,y,w);return true}if(u){return false}if(h.drag_zooming){return false}if(e.getZoom()!=t){console.log("Calling fill_view_port(): map zoom has changed");s(x,y);return true}var B=Math.max(100,$(window).height()-100);var A=e.fromLatLngToDivPixel(e.getCenter());var z=e.fromLatLngToDivPixel(r);var D=magnitude(vector_diff(A,z));if(D>B){console.log("Calling fill_view_port(): map dragged past threshold");s(x,y);return true}return false}}();h.user_last_active=now_ms();h.set_active=function(){var r=now_ms();if(r-h.user_last_active>120000&&!h.me_control.dragging){h.add_to_move_path(e.getCenter())}h.user_last_active=r;$$("body").unbind("mousemove",h.set_active)};h.last_add_to_move_path_time=0;h.last_move_path_center=null;h.add_to_move_path=function(t){var s=now_ms();h.last_move_path_center=t;var r=Math.min(s-h.last_add_to_move_path_time,100);h.movement_path.push([t.lat(),t.lng(),r]);h.last_add_to_move_path_time=s;h.maybe_send_movements()};var o=false;h.send_movements_timer=null;var k=$.browser.msie?200:100;h.maybe_send_movements=function(r){if(h.send_movements_timer){return}if(h.movement_path.length>0){h.send_movements_timer=window.setTimeout(h.send_movements,r||k)}};h.send_movements=function(){h.send_movements_timer=null;if(h.movement_path.length===0){return}if(o){h.maybe_send_movements();return}var t=h.movement_path.slice(Math.max(0,h.movement_path.length-25));h.movement_path=[];function s(){o=false}function r(){h.movement_path=t.concat(h.movement_path);h.maybe_send_movements(5000);o=false}o=true;backend.move_user(t,s,r)};var j=false;h.on_fb_connected_default=function(){if(!window.facebook_user){h.on_fb_connected(function(r){notify_user("Welcome back, "+r.user.name+"!",null,{delay:2500,show_close:false})})}};h.on_fb_connected=function(r){if(j){return}j=true;$$("#fb-page-cover").show();backend.get_user_info(function(u){$$("#fb-page-cover").hide();if(!u.user||!u.user.name){return}h.update_username(u.user.name);if(h.user_map[u.user.id]){h.user_map[u.user.id].go_away()}if(u.picture_url){window.profile_pictures.fb=u.picture_url;window.profile_pictures["fb-"+u.user.id]=u.picture_url;$$("#set-face-fb").show().attr("src",u.picture_url)}h.me_control.set_face(u.user.extra.face_num);h.set_user_id(u.user.id);for(var v in h.bubble_map){var s=h.bubble_map[v];if(s&&s.author_id==u.user.id){s.$bubble_object.addClass("by-me");s.$bubble_object.find(".author-name").text("Me:");if(s.$hovered_object){s.$hovered_object.addClass("by-me");s.$hovered_object.find(".author-name").text("Me:")}s.written_by_me=true}}var t=$$("#layer-\\#"+u.user.id);if(t.size()){t.find(".layer-title").text("Me");if(t.is(".selected")){$$("#banner-current-layer").text("Me")}}$.each(u.subscribed_layer_names,function(x,w){h.subscribe(w,true)});$$("#welcome .close-button").click();$$("#user-legend .facebook-button").hide();$$("#settings-fb-link").hide();$$("#first-time-fb-link").hide();$$("#post-message-template .facebook-checkbox").show();if(h.pending_login_callback){h.pending_login_callback();h.pending_login_callback=null}if(r){r(u)}})};h.thread_density=3;h.show_or_hide_threads=function(w){if(w){collision_manager.reset_all();if($$("#show-all-button").is(":visible")){h.unhide_all_notes();return}}else{if($$("#show-all-button").is(":visible")){h.hide_all_notes();return}}var v=[];for(var s in h.bubble_map){var r=h.bubble_map[s];if(r){v.push(r)}}$.each(v,function(A,B){if(h.layers.is_implicitly_selected(B)){B.should_show=!B.explicitly_minimized;return}B.minimize();B.should_show=false});var x=e.getBounds();var u=$.grep(v,function(A,B){return A.should_show});var y=geo_heat_map(u,e.getBounds());for(var z in y){var t=y[z];if(t.length>h.thread_density){t.sort(function(B,A){return A.get_score()-B.get_score()});$.each(t.slice(h.thread_density),function(A,B){B.should_show=false;B.maybe_minimize()})}}$.each(u,function(A,B){if(B.should_show){B.restore()}});h.layers.show_layers_for_viewport()};var d={};function i(E){var D=p(E);if(D&&!d[D]){d[D]=true;var C=$$("#promo-template").clone();C.attr("id","promo-"+D);C.addClass(D+"-promo");C.appendTo("body");C.find(".promo-author-name span").text(E.author_name);C.find(".promo-text").text(truncate(E.text,100));C.show();var u=500;var y=function(){$(this).hide();d[D]=false};var w=15000;if(D=="top"||D=="bottom"){var A=C.outerHeight();var t=$$("#map-container").offset().top+2;var v=t-A;if(D=="bottom"){var x=$$("#map-container").offset().top+$$("#map-container").outerHeight()-2;v=x;t=x-A}C.css("top",v+"px");C.css("left",($(window).width()-C.outerWidth())/2);C.animate({top:t+"px"},u);window.setTimeout(function(){C.animate({top:v+"px"},u,null,y)},w)}else{var r=C.outerWidth();var s=-r;var z=0;if(D=="right"){var B=$(window).width();s=B;z=B-r}C.css("left",s+"px");C.css("top",($(window).height()-C.outerHeight())/2);C.animate({left:z+"px"},u);window.setTimeout(function(){C.animate({left:s+"px"},u,null,y)},w)}C.click(function(){C.hide();h.pan_into_view(E.id,E.latlng.lat(),E.latlng.lng())});return true}return false}h.pan_into_view=function(s,w,t){var r=e.getBounds();var v=(r.getNorthEast().lat()-r.getSouthWest().lat())/8;var x=new google.maps.LatLng(w-v,t);e.panTo(x);var u=h.bubble_map[s];if(u){u.restore()}};function p(s){var r=e.getBounds();var t=off_screen_distance(s.latlng,r);if(!t.y&&!t.x){return""}if(Math.abs(t.y)>=Math.abs(t.x)){if(t.y>0){return"top"}else{return"bottom"}}else{if(t.x>0){return"right"}else{return"left"}}}var m=null;h.update_title_url=function(){var r=e.getCenter();var u=e.getZoom();var t=r.lat()+","+r.lng()+" x"+u;if(m===t){return}m=t;function s(v){h.banner_control.update_location(v)}update_location_text(e.getCenter(),s)};var c=/#\d+/;h.subscribe=function(r,s){var v=h.layers.layers[r];var w=r.match(c);var t;if(!v&&w){t=h.user_map[r.slice(1)];v={};v.name=r;v.is_user=true;v.description=t.user.name;v.face_num=t.user.extra.face_num;v.count=0;h.layers.add_layer(v)}v.$object.addClass("subscribed");if(r===h.layers.selected_layer){$$("#banner-layer").addClass("subscribed")}if(w&&t&&t.$hovered_object){t.$hovered_object.addClass("starred")}var x=function(){v.subscribed=true;h.layers.redraw_layers();var y=h.layers.get_color_for_layer(r);if(h.layers.selected_layer===r){h.banner_control.update_layer(v.layer_text,y,v.subscribed,v.face_num,r)}};var u=function(){if(r.match(c)){var y=h.user_map[r.slice(1)];if(y&&y.$hovered_object){y.$hovered_object.removeClass("starred")}}v.$object.removeClass("subscribed")};if(s){x()}else{backend.subscribe(r,x,u)}};h.unsubscribe=function(r){var u=h.layers.layers[r];u.$object.removeClass("subscribed");if(r===h.layers.selected_layer){$$("#banner-layer").removeClass("subscribed")}if(r.match(c)){var s=h.user_map[r.slice(1)];if(s&&s.$hovered_object){s.$hovered_object.removeClass("starred")}}var v=function(){u.subscribed=false;h.layers.redraw_layers();var w=h.layers.get_color_for_layer(r);if(h.layers.selected_layer===r){h.banner_control.update_layer(u.layer_text,w,u.subscribed,u.face_num,r)}};var t=function(){u.$object.addClass("subscribed")};backend.unsubscribe(r,v,t)}}function load_everything(){function h(){var n=$("#header").outerHeight();var p=$("#footer").outerHeight();var m=$(window).height();var k=m-(n+p);var l=$("#map-container");l.css("height",k-4);l.css("top",n);var o=$("#feeditems");o.css("maxHeight",(m-o.offset().top-p-50)+"px")}h();$(window).resize(h);var b=new google.maps.Map2(document.getElementById("map"));window.gmap=b;load_overlays();load_controls();load_user_input();load_controller();if(window.FB){FB.init(window.FB_KEY,"/xd_receiver.htm",{ifUserConnected:controller.on_fb_connected_default});FB.ensureInit(function(){var k=$("#invite-friends:visible");if(!k.size()){return}k.click(function(){var n="Get your friends involved";var l="what's happening here";var m="Hey, see what's up around here.";var o=new FB.UI.FBMLPopupDialog(n,'<fb:fbml><fb:request-form method="GET" invite="true" type="'+l+'" content="'+m+'"><fb:multi-friend-selector rows="2" cols="5" showborder="false" bypass="cancel" actiontext="'+window.domain_title+' is so much better when your friends are here too!"></fb:request-form></fb:fbml>');o.setContentWidth(625);o.setContentHeight(490);o.set_placement(FB.UI.PopupPlacement.center);o.show()})})}function i(l){var k=11;var m=new google.maps.LatLng(34.045,-118.35);if(window.user_saved_lat){k=window.user_saved_zoom;m=new google.maps.LatLng(window.user_saved_lat,window.user_saved_lng)}else{if(google.loader.ClientLocation){k=12;m=new google.maps.LatLng(google.loader.ClientLocation.latitude,google.loader.ClientLocation.longitude)}}l.setCenter(m,k);if(k<15){l.setMapType(G_PHYSICAL_MAP)}}b.enableContinuousZoom();if($.browser.msie){var c=new GKeyboardHandler(b)}i(b);b.addControl(new ZoomControl());$("html, body").keypress(function(p){if(p.target.tagName=="INPUT"||p.target.tagName=="TEXTAREA"){return}if(!$.browser.msie&&p.keyCode>=37&&p.keyCode<=40){var q=0;var o=0;var k=0.12;if(p.keyCode==37){q=-k}else{if(p.keyCode==38){o=k}else{if(p.keyCode==39){q=k}else{if(p.keyCode==40){o=-k}}}}if(!controller.auto_move&&(q||o)){controller.auto_move=true;var n=0.5+q;var m=0.5+o;var r=b.getBounds();var s=r.getSouthWest();var l=r.getNorthEast();b.panTo(new google.maps.LatLng(l.lat()*m+s.lat()*(1-m),l.lng()*n+s.lng()*(1-n)))}p.preventDefault();return false}});$(window).unload(function(){google.maps.Unload()});window.geocoder=new GClientGeocoder();controller.banner_control=new BannerControl();controller.me_control=new MeControl(window.my_face_num);b.addControl(controller.me_control);var e=get_hash("layer");controller.layers=new LayersControl(e);var d=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(0,30));b.addControl(controller.layers,d);window.select_layer=function(k){controller.layers.select_layer(k)};controller.update_title_url();var a=get_hash("search");$("#search-box").val("");if(a){$(".search-instructions").hide();$("#search-box").val(a)}function f(q){var o=get_hash("search");var n=get_hash("layer");var p=get_hash("thread");var m=get_hash("about");var l=get_hash("help");if(o){close_thread_view(true);close_about(true);close_help(true);if(controller.get_search_query()!==o){$(".search-instructions").hide();$("#search-box").val(o);controller.search(o,true)}}else{if(n){controller.clear_search();close_thread_view(true);close_about(true);close_help(true);controller.layers.select_layer(n)}else{if(p){open_thread_view(p)}else{if(m){open_about()}else{if(l){open_help()}else{controller.clear_search();var k=controller.layers.selected_group==="search"?"all":controller.layers.selected_group;controller.layers.select_group(k);close_thread_view();close_about();close_help()}}}}}}$(document).ready(function(){$.historyInit(f)});GEvent.addListener(b,"singlerightclick",function(k){user_input.map_context_menu(b,k)});var g=0;GEvent.addListener(b,"move",function(){if(++g%5==0&&!controller.auto_move){controller.add_to_move_path(b.getCenter());if(!$.browser.msie&&g%10==0){controller.layers.show_layers_for_viewport()}}});GEvent.addListener(b,"moveend",function(){if(!controller.me_control.dragging){controller.auto_move=false;g=0;controller.add_to_move_path(b.getCenter());controller.update_title_url();controller.layers.show_layers_for_viewport();controller.maybe_fill_view_port()}});GEvent.addListener(b,"zoomend",function(){if(b.getZoom()>14){b.setMapType(G_NORMAL_MAP)}else{b.setMapType(G_PHYSICAL_MAP)}controller.maybe_fill_view_port();controller.show_or_hide_threads()});$("#me-control").add(".button").hover(function(){$(this).addClass("hovered")},function(){$(this).removeClass("hovered")});window.click_logo=function(){controller.clear_search();controller.layers.select_group("all")};window.reset_stomp=function(){window.channel_handlers={};window.channel_handlers[window.stomp_channel]=controller.handle_updates;window.channel_handlers["/global"]=controller.handle_updates;backend.setup_stomp_client(channel_handlers)};reset_stomp();window.setInterval(function(){controller.maybe_fill_view_port()},200);if(friends_count>8&&false){controller.layers.select_group("my")}controller.maybe_fill_view_port(true,window.first_time_user);var j=get_hash("thread");if(j){open_thread_view(j)}else{if(window.first_time_user){$("#welcome").click(function(k){$("#welcome-tail").hide();$("#welcome").hide()});$("#welcome").css("top",-(18+$("#welcome").outerHeight())+"px");$("#welcome").css("left",20-($("#welcome").outerWidth()/2)+"px")}}if(get_hash("about")){open_about()}if(get_hash("help")){open_help()}if($.browser.msie){DD_roundies.addRule(".button",6)}}(function(){var HANDSHAKE_TIMEOUT=30000;var RETRY_INTERVAL=250;var RETRY_TIMEOUT=30000;Orbited={};Orbited.settings={};Orbited.settings.hostname=document.domain;Orbited.settings.port=(location.port.length>0)?location.port:80;Orbited.settings.protocol=location.protocol.slice(0,-1);Orbited.settings.log=false;Orbited.settings.streaming=true;Orbited.settings.HEARTBEAT_TIMEOUT=6000;Orbited.settings.POLL_INTERVAL=2000;Orbited.settings.pageLoggerHeight="200px";Orbited.settings.pageLoggerWidth=null;Orbited.settings.enableFFPrivileges=false;Orbited.singleton={};Orbited.Errors={};Orbited.Errors.ConnectionTimeout=101;Orbited.Errors.InvalidHandshake=102;Orbited.Errors.UserConnectionReset=103;Orbited.Errors.Unauthorized=106;Orbited.Errors.RemoteConnectionFailed=108;Orbited.Statuses={};Orbited.Statuses.ServerClosedConnection=201;Orbited.Statuses.SocketControlKilled=301;Orbited.util={};Orbited.util.browser=null;if(typeof(ActiveXObject)!="undefined"){Orbited.util.browser="ie"}else{if(navigator.userAgent.indexOf("WebKit")!=-1||navigator.userAgent.indexOf("Konqueror")!=-1){Orbited.util.browser="webkit"}else{if(navigator.product=="Gecko"&&window.find&&!navigator.savePreferences){Orbited.util.browser="firefox"}else{if((typeof window.addEventStream)==="function"){Orbited.util.browser="opera"}}}}(function(){Orbited.base64={};var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";if(window.btoa&&window.btoa("1")=="MQ=="){Orbited.base64.encode=function(data){return btoa(data)};Orbited.base64.decode=function(data){return atob(data)};return}Orbited.base64.encode=function(ba){var s=[];var l=ba.length;var rm=l%3;var x=l-rm;for(var i=0;i<x;){var t=ba.charCodeAt(i++)<<16|ba.charCodeAt(i++)<<8|ba.charCodeAt(i++);s.push(tab.charAt((t>>>18)&63));s.push(tab.charAt((t>>>12)&63));s.push(tab.charAt((t>>>6)&63));s.push(tab.charAt(t&63))}switch(rm){case 2:t=ba.charCodeAt(i++)<<16|ba.charCodeAt(i++)<<8;s.push(tab.charAt((t>>>18)&63));s.push(tab.charAt((t>>>12)&63));s.push(tab.charAt((t>>>6)&63));s.push(p);break;case 1:t=ba.charCodeAt(i++)<<16;s.push(tab.charAt((t>>>18)&63));s.push(tab.charAt((t>>>12)&63));s.push(p);s.push(p);break}return s.join("")};Orbited.base64.decode=function(str){var s=str.split("");var out=[];var l=s.length;var tl=0;while(s[--l]==p){++tl}for(var i=0;i<l;){var t=tab.indexOf(s[i++])<<18;if(i<=l){t|=tab.indexOf(s[i++])<<12}if(i<=l){t|=tab.indexOf(s[i++])<<6}if(i<=l){t|=tab.indexOf(s[i++])}out.push(String.fromCharCode((t>>>16)&255));out.push(String.fromCharCode((t>>>8)&255));out.push(String.fromCharCode(t&255))}while(tl--){out.pop()}return out.join("")}})();Orbited.loggers={};Orbited.Loggers={};Orbited.util.loggingSystem=null;if(window.Log4js){Orbited.util.loggingSystem="log4js"}else{if(window.console&&console.firebug&&console.firebug!="1.3.0"){Orbited.util.loggingSystem="firebug"}}Orbited.getLogger=function(name){if(!Orbited.loggers[name]){var logger=null;switch(Orbited.util.loggingSystem){case"firebug":logger=new Orbited.Loggers.FirebugLogger(name);break;case"log4js":logger=new Orbited.Loggers.Log4jsLogger(name);break;default:logger=new Orbited.Loggers.PageLogger(name);break}Orbited.loggers[name]=logger}return Orbited.loggers[name]};Orbited.Loggers.FirebugLogger=function(name){var self=this;self.name=name;self.enabled=false;var padArgs=function(args){var newArgs=[name+":"];for(var i=0;i<args.length;++i){newArgs.push(args[i])}return newArgs};self.log=function(){if(!self.enabled){return}console.log.apply(this,padArgs(arguments))};self.debug=function(){if(!self.enabled){return}console.debug.apply(this,padArgs(arguments))};self.info=function(){if(!self.enabled){return}console.info.apply(this,padArgs(arguments))};self.warn=function(){if(!self.enabled){return}console.warn.apply(this,padArgs(arguments))};self.error=function(){if(!self.enabled){return}console.error.apply(this,padArgs(arguments))};self.assert=function(){if(!self.enabled){return}var newArgs=[arguments[0],name+":"];for(var i=1;i<arguments.length;++i){newArgs.push(arguments[i])}console.assert.apply(this,newArgs)};self.trace=function(){if(!self.enabled){return}console.trace.apply(this,padArgs(arguments))}};Orbited.singleton.pageLoggerPane=null;Orbited.Loggers.PageLogger=function(name){var self=this;self.enabled=false;self.name=name;var checkPane=function(){if(!Orbited.singleton.pageLoggerPane){var p=document.createElement("div");p.border="1px solid black";if(Orbited.settings.pageLoggerHeight){p.style.height=Orbited.settings.pageLoggerHeight}if(Orbited.settings.pageLoggerWidth){p.style.height=Orbited.settings.pageLoggerWidth}p.style.overflow="scroll";document.body.appendChild(p);Orbited.singleton.pageLoggerPane=p}};var show=function(data){checkPane();var d=document.createElement("div");d.innerHTML=data;Orbited.singleton.pageLoggerPane.appendChild(d);Orbited.singleton.pageLoggerPane.scrollTop=Orbited.singleton.pageLoggerPane.scrollHeight};self.log=function(){if(!self.enabled){return}var newArgs=["log",new Date(),"debug","<b>"+name+"</b>"];for(var i=0;i<arguments.length;++i){newArgs.push(arguments[i])}show(newArgs.join(", "))};self.debug=function(){if(!self.enabled){return}var newArgs=[new Date(),"debug","<b>"+name+"</b>"];for(var i=0;i<arguments.length;++i){newArgs.push(arguments[i])}show(newArgs.join(", "))};self.info=function(){if(!self.enabled){return}var newArgs=[new Date(),"info","<b>"+name+"</b>"];for(var i=0;i<arguments.length;++i){newArgs.push(arguments[i])}show(newArgs.join(", "))};self.warn=function(){};self.error=function(){};self.assert=function(){};self.trace=function(){}};Orbited.Loggers.Log4jsLogger=function(name){var self=this;self.name=name;var log4jsName=name;while(log4jsName.indexOf(".")!=-1){log4jsName=log4jsName.replace(".","_")}var logger=Log4js.getLogger(log4jsName);self.logger=logger;logger.setLevel(Log4js.Level.OFF);var generateOutput=function(args){var newArgs=[name+":"];for(var i=0;i<args.length;++i){newArgs.push(args[i])}return newArgs.join(" ")};self.setLevel=function(level){logger.setLevel(level)};self.addAppender=function(a){logger.addAppender(a)};self.log=function(){logger.info(generateOutput(arguments))};self.debug=function(){logger.debug(generateOutput(arguments))};self.info=function(){logger.info(generateOutput(arguments))};self.warn=function(){logger.warn(generateOutput(arguments))};self.error=function(){logger.error(generateOutput(arguments))};self.assert=function(){};self.trace=function(){}};Orbited.system=Orbited.getLogger("system");Orbited.CometTransports={};Orbited.util.chooseTransport=function(){if(Orbited.settings.streaming==false||Orbited.util.browser=="webkit"){return Orbited.CometTransports.LongPoll}var choices=[];for(var name in Orbited.CometTransports){var transport=Orbited.CometTransports[name];if(typeof(transport[Orbited.util.browser])=="number"){Orbited.system.log("viable transport: ",name);choices.push(transport)}}return choices[0]};var createXHR=function(){try{return new XMLHttpRequest()}catch(e){}try{return new ActiveXObject("MSXML3.XMLHTTP")}catch(e){}try{return new ActiveXObject("MSXML2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}throw new Error("Could not find XMLHttpRequest or an alternative.")};Orbited.legacy={};Orbited.CometSession=function(){var self=this;self.readyState=self.READY_STATE_INITIALIZED;self.onopen=function(){};self.onread=function(){};self.onclose=function(){};var sessionUrl=null;var sessionKey=null;var sendQueue=[];var packetCount=0;var xhr=null;var handshakeTimer=null;var cometTransport=null;var pingInterval=30000;var pingTimeout=30000;var timeoutTimer=null;var lastPacketId=0;var sending=false;var xsdClose=null;var hardClose=function(){var tdata=encodePackets([[++packetCount,"close"]]);if(xsdClose){xsdClose.contentWindow.sendCloseFrame(sessionUrl.render(),tdata)}else{xhr.open("POST",sessionUrl.render(),!sessionUrl.isSameDomain(location.href));xhr.send(tdata)}};self.open=function(_url){self.logger.debug("open");self.readyState=self.READY_STATE_OPENING;sessionUrl=new Orbited.URL(_url);if(sessionUrl.isSameDomain(location.href)){xhr=createXHR()}else{xhr=new Orbited.XSDR();if(sessionUrl.isSamePort(location.href)){xsdClose=document.createElement("iframe");xsdClose.style.display="block";xsdClose.style.width="0";xsdClose.style.height="0";xsdClose.style.border="0";xsdClose.style.margin="0";xsdClose.style.padding="0";xsdClose.style.overflow="hidden";xsdClose.style.visibility="hidden";var ifUrl=new Orbited.URL("");ifUrl.protocol=Orbited.settings.protocol;ifUrl.domain=Orbited.settings.hostname;ifUrl.port=Orbited.settings.port;ifUrl.path="/static/xsdClose.html";ifUrl.hash=document.domain;xsdClose.src=ifUrl.render();document.body.appendChild(xsdClose)}}if(Orbited.settings.enableFFPrivileges){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(ex){}}xhr.open("GET",_url,true);xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status==200){sessionKey=xhr.responseText;self.logger.debug("session key is: ",sessionKey);resetTimeout();if(sessionUrl.path[sessionUrl.path.length]!="/"){sessionUrl.path+="/"}sessionUrl.path+=sessionKey;var transportClass=Orbited.util.chooseTransport();cometTransport=new transportClass();cometTransport.timeoutResetter=resetTimeout;cometTransport.isSubDomain=sessionUrl.isSubDomain(location.href);cometTransport.onReadFrame=transportOnReadFrame;cometTransport.onclose=transportOnClose;cometTransport.connect(sessionUrl.render())}else{xhr=null;self.readyState=self.READY_STATE_CLOSED;self.onclose(Orbited.Errors.InvalidHandshake)}}};xhr.send(null)};self.send=function(data){self.logger.debug("send",data);if(self.readyState!=self.READY_STATE_OPEN){throw new Error("Invalid readyState")}data=Orbited.base64.encode(data);sendQueue.push([++packetCount,"data",data]);self.logger.debug("sending ==",sending);if(!sending){self.logger.debug("starting send");doSend()}};self.close=function(){switch(self.readyState){case self.READY_STATE_CLOSING:case self.READY_STATE_CLOSED:return;case self.READY_STATE_INITIALIZED:self.readyState=self.READY_STATE_CLOSED;return;default:break}self.readyState=self.READY_STATE_CLOSING;sendQueue.push([++packetCount,"close"]);if(!sending){doSend()}};self.reset=function(){self.logger.debug("reset");var origState=self.readyState;self.readyState=self.READY_STATE_CLOSED;switch(origState){case self.READY_STATE_INITIALIZED:self.onclose(Orbited.Errors.UserConnectionReset);break;case self.READY_STATE_OPENING:xhr.onreadystatechange=function(){};xhr.abort();self.onclose(Orbited.Errors.UserConnectionReset);break;case self.READY_STATE_OPEN:self.sendQueue=[];self.sending=false;if(xhr.readyState<4){xhr.onreadystatechange=function(){};xhr.abort()}doClose(Orbited.Errors.UserConnectionReset);hardClose();break;case self.READY_STATE_CLOSING:break;case self.READY_STATE_CLOSED:break}};self.cleanup=function(){self.readyState=self.READY_STATE_CLOSED;cometTransport.close()};var transportOnReadFrame=function(frame){self.logger.debug("transportOnReadFrame");self.logger.debug("READ FRAME: ",frame.id,frame.name,frame.data?frame.data.length:"");if(!isNaN(frame.id)){lastPacketId=Math.max(lastPacketId,frame.id)}self.logger.debug(frame);switch(frame.name){case"close":if(self.readyState<self.READY_STATE_CLOSED){doClose(Orbited.Statuses.ServerClosedConnection)}break;case"data":self.logger.debug("base64 decoding "+frame.data.length+" bytes of data");var data=Orbited.base64.decode(frame.data);self.logger.debug("decode complete");self.onread(data);break;case"open":if(self.readyState==self.READY_STATE_OPENING){self.readyState=self.READY_STATE_OPEN;self.logger.debug("Call self.onopen()");self.onopen()}else{}break;case"ping":switch(cometTransport.name){case"longpoll":break;case"poll":break;default:sendQueue.push([++packetCount,"ping",null]);if(!sending){doSend()}break}break;case"opt":var args=frame.data.split(",");switch(args[0]){case"pingTimeout":pingTimeout=parseInt(args[1])*1000;break;case"pingInterval":pingInterval=parseInt(args[1])*1000;break;default:self.logger.warn("unknown opt key",args[0]);break}break}self.logger.debug("resetting timeout from transportOnReadFrame");resetTimeout()};var transportOnClose=function(){self.logger.debug("transportOnClose");if(self.readyState<self.READY_STATE_CLOSED){try{doClose(Orbited.Statuses.ServerClosedConnection)}catch(e){return}}};var encodePackets=function(queue){var output=[];for(var i=0;i<queue.length;++i){var frame=queue[i];for(var j=0;j<frame.length;++j){var arg=frame[j];if(arg==null){arg=""}if(j==frame.length-1){output.push("0")}else{output.push("1")}output.push(arg.toString().length);output.push(",");output.push(arg.toString())}}return output.join("")};var doSend=function(retries){self.logger.debug("in doSend");if(typeof(retries)=="undefined"){retries=0}if(retries*RETRY_INTERVAL>=RETRY_TIMEOUT){doClose(Orbited.Errors.ConnectionTimeout);sending=false;return}if(sendQueue.length==0){self.logger.debug("sendQueue exhausted");sending=false;return}sending=true;self.logger.debug("setting sending=true");var numSent=sendQueue.length;sessionUrl.setQsParameter("ack",lastPacketId);var tdata=encodePackets(sendQueue);self.logger.debug("post",retries,tdata);if(Orbited.settings.enableFFPrivileges){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(ex){}}xhr.open("POST",sessionUrl.render(),true);xhr.onreadystatechange=function(){self.logger.debug("doSend onreadystatechange");switch(xhr.readyState){case 4:if(xhr.status==200){resetTimeout();sendQueue.splice(0,numSent);return doSend()}else{window.setTimeout(function(){doSend(++retries)},RETRY_INTERVAL)}break}};xhr.send(tdata)};var doClose=function(code){self.logger.debug("doClose",code);unsetTimeout();self.readyState=self.READY_STATE_CLOSED;if(cometTransport!=null){cometTransport.onReadFrame=function(){};cometTransport.onclose=function(){};cometTransport.close()}self.onclose(code)};var resetTimeout=function(){self.logger.debug("reset Timeout",pingInterval+pingTimeout);unsetTimeout();timeoutTimer=window.setTimeout(timedOut,pingInterval+pingTimeout)};var unsetTimeout=function(){window.clearTimeout(timeoutTimer)};var timedOut=function(){self.logger.debug("timed out!");doClose(Orbited.Errors.ConnectionTimeout)}};Orbited.CometSession.prototype.logger=Orbited.getLogger("Orbited.CometSession");Orbited.CometSession.prototype.READY_STATE_INITIALIZED=1;Orbited.CometSession.prototype.READY_STATE_OPENING=2;Orbited.CometSession.prototype.READY_STATE_OPEN=3;Orbited.CometSession.prototype.READY_STATE_CLOSING=4;Orbited.CometSession.prototype.READY_STATE_CLOSED=5;var currentTCPSocketId=0;var openSockets={};Orbited.test={};Orbited.test.logger=Orbited.getLogger("Orbited.test");Orbited.test.socketcontrol={};Orbited.test.socketcontrol.kill=function(t){Orbited.test.logger.debug("kill ordered for socket:",t);if(openSockets[t.id]){openSockets[t.id](Orbited.Statuses.SocketControlKilled);t=null;Orbited.test.logger.debug("socket killed")}else{Orbited.test.logger.debug("socket not found")}};Orbited.test.stompdispatcher={};Orbited.test.stompdispatcher.send=function(dest,msg){Orbited.test.logger.debug("stompdispatcher dispatching "+msg+" to "+dest);var s=document.createElement("script");s.src="http://"+Orbited.settings.hostname+":"+Orbited.settings.port+"/system/test/stomp?";s.src+="msg="+msg;s.src+="&dest="+dest;document.body.appendChild(s)};Orbited.TCPSocket=function(){var self=this;self.id=++currentTCPSocketId;if(arguments.length>0){throw new Error("TCPSocket() accepts no arguments")}self.readyState=self.READY_STATE_INITIALIZED;self.onopen=function(){};self.onread=function(){};self.onclose=function(){};var onCloseTriggered=false;var buffer="";var session=null;var binary=false;var handshakeState=null;var hostname=null;var port=null;self.open=function(_hostname,_port,isBinary){if(self.readyState!=self.READY_STATE_INITIALIZED){throw new Error("Invalid readyState")}if(_hostname==false){throw new Error("No hostname specified")}if(isNaN(_port)){throw new Error("Invalid port specified")}binary=!!isBinary;self.readyState=self.READY_STATE_OPENING;hostname=_hostname;port=_port;session=new Orbited.CometSession();var sessionUrl=new Orbited.URL("/tcp");sessionUrl.domain=Orbited.settings.hostname;sessionUrl.port=Orbited.settings.port;sessionUrl.protocol=Orbited.settings.protocol;sessionUrl.setQsParameter("nocache",Math.random());session.open(sessionUrl.render());session.onopen=sessionOnOpen;session.onread=sessionOnRead;session.onclose=sessionOnClose;handshakeState="initial"};self.close=function(){if(self.readyState==self.READY_STATE_CLOSED){return}self.readyState=self.READY_STATE_CLOSED;doClose(Orbited.Errors.UserConnectionReset)};self.reset=function(){if(session){session.reset()}};self.send=function(data){if(self.readyState!=self.READY_STATE_OPEN){throw new Error("Invalid readyState")}if(!binary){data=Orbited.utf8.encode(data)}self.logger.debug("SEND: ",data);session.send(data)};var process=function(){var result=Orbited.utf8.decode(buffer);var data=result[0];var i=result[1];buffer=buffer.slice(i);if(data.length>0){window.setTimeout(function(){self.onread(data)},0)}};var sessionOnRead=function(data){switch(self.readyState){case self.READY_STATE_OPEN:self.logger.debug("READ: ",data);if(binary){window.setTimeout(function(){self.onread(data)},0)}else{self.logger.debug("start buffer size:",buffer.length);buffer+=data;process();self.logger.debug("end buffer size:",buffer.length)}break;case self.READY_STATE_OPENING:switch(handshakeState){case"initial":data=Orbited.utf8.decode(data)[0];self.logger.debug("initial");self.logger.debug("data",data);self.logger.debug("len",data.length);self.logger.debug("typeof(data)",typeof(data));self.logger.debug("data[0] ",data.slice(0,1));self.logger.debug("type ",typeof(data.slice(0,1)));var result=(data.slice(0,1)=="1");self.logger.debug("result",result);if(!result){self.logger.debug("!result");var errorCode=data.slice(1,4);doClose(parseInt(errorCode))}if(result){self.readyState=self.READY_STATE_OPEN;self.logger.debug("tcpsocket.onopen..");self.onopen();self.logger.debug("did onopen")}break}break}};var doClose=function(code){self.logger.debug("doClose",code);if(session){if(code==Orbited.Statuses.ServerClosedConnection||code==Orbited.Errors.Unauthorized||code==Orbited.Errors.RemoteConnectionFailed){session.cleanup()}else{sessionOnClose=function(){};session.close()}session=null}self.logger.debug("onCloseTriggered",onCloseTriggered);if(!onCloseTriggered){self.logger.debug("triggerClose timer",code);onCloseTriggered=true;window.setTimeout(function(){self.logger.debug("onclose!",code);self.onclose(code)},0)}};openSockets[self.id]=doClose;var sessionOnOpen=function(data){var payload=hostname+":"+port+"\n";self.logger.debug("sessionOpen; sending:",payload);payload=Orbited.utf8.encode(payload);self.logger.debug("encoded payload:",payload);X=payload;session.send(payload);handshakeState="initial"};var sessionOnClose=function(code){self.logger.debug("sessionOnClose");doClose(code)}};Orbited.TCPSocket.prototype.toString=function(){return"<Orbited.TCPSocket "+this.id+">"};Orbited.TCPSocket.prototype.logger=Orbited.getLogger("Orbited.TCPSocket");Orbited.TCPSocket.prototype.READY_STATE_INITIALIZED=1;Orbited.TCPSocket.prototype.READY_STATE_OPENING=2;Orbited.TCPSocket.prototype.READY_STATE_OPEN=3;Orbited.TCPSocket.prototype.READY_STATE_CLOSING=4;Orbited.TCPSocket.prototype.READY_STATE_CLOSED=5;Orbited.singleton.XSDR={receiveCbs:{},queues:{},iframes:{},id:0,register:function(receive,queue){var id=++Orbited.singleton.XSDR.id;Orbited.singleton.XSDR.receiveCbs[id]=receive;Orbited.singleton.XSDR.queues[id]=queue;Orbited.system.debug("id is",id);return id}};Orbited.XSDR=function(){var self=this;var ifr=null;var url;var method;var data;var requestHeaders;var queue=[];var id=Orbited.singleton.XSDR.register(function(data){receive(data)},queue);var bridgeUrl=new Orbited.URL("");bridgeUrl.domain=Orbited.settings.hostname;bridgeUrl.port=Orbited.settings.port;bridgeUrl.path="/static/xsdrBridge.html";bridgeUrl.hash=id.toString();bridgeUrl.protocol=Orbited.settings.protocol;self.logger.debug("bridgeUrl.hash is",bridgeUrl.hash);self.logger.debug("bridgeUrl.path is",bridgeUrl.path);self.logger.debug("bridgeUrl is",bridgeUrl.render());var reset=function(){self.responseText="";self.status=null;self.readyState=0;url=null;method=null;data=null;requestHeaders={}};reset();self.onreadystatechange=function(){};self.open=function(_method,_url,async){if(self.readyState==4){reset()}if(self.readyState!=0){throw new Error("Invalid readyState")}if(!async){throw new Error("Only Async XSDR supported")}self.logger.debug("open",_method,_url,async);self.readyState=1;url=_url;method=_method};self.send=function(data){if(self.readyState!=1){throw new Error("Invalid readyState")}self.logger.debug("send",data);if(!ifr){self.logger.debug("creating iframe");ifr=document.createElement("iframe");hideIframe(ifr);ifr.src=bridgeUrl.render();self.logger.debug("set ifr.src to",ifr.src);document.body.appendChild(ifr);Orbited.singleton.XSDR.iframes[id]=ifr}else{queue.push([method,url,data,requestHeaders])}};self.abort=function(){if(self.readyState>0&&self.readyState<4){self.logger.debug("ABORT called");ifr.src="about:blank";document.body.removeChild(ifr);ifr=null;self.readyState=4;self.onreadystatechange()}};self.setRequestHeader=function(key,val){if(self.readyState!=0){throw new Error("Invalid readyState")}requestHeaders[key]=val};self.getResponseHeader=function(){if(self.readyState<2){throw new Error("Invalid readyState")}return responseHeaders[key]};var receive=function(payload){self.logger.debug("received",payload);switch(payload[0]){case"initialized":queue.push([method,url,data,requestHeaders]);self.logger.debug("queue is",queue);self.logger.debug("Orbited.singleton.XSDR.queues[id] is",Orbited.singleton.XSDR.queues[id]);break;case"readystatechange":data=payload[1];self.readyState=data.readyState;self.logger.debug("readystatechange",self.readyState);if(data.status){self.status=data.status;self.logger.debug("status",data.status)}if(data.responseText){self.responseText+=data.responseText;self.logger.debug("responseText",data.responseText)}self.logger.debug("doing trigger");self.onreadystatechange();self.logger.debug("trigger complete");break}};var hideIframe=function(ifr){ifr.style.display="block";ifr.style.width="0";ifr.style.height="0";ifr.style.border="0";ifr.style.margin="0";ifr.style.padding="0";ifr.style.overflow="hidden";ifr.style.visibility="hidden"}};if(Orbited.util.browser=="opera"){var pmLocation=window.postMessage&&"contentWindow"||"document";(window.postMessage&&window||document).addEventListener("message",function(e){var msg=e.data.split(" ");var cmd=msg.shift();if(cmd=="event"){var id=msg.shift();var dataString=msg.join(" ");var data=Orbited.JSON.parse(dataString);Orbited.singleton.XSDR.receiveCbs[id](data)}if(cmd=="queues"){id=msg.shift();var queue=Orbited.singleton.XSDR.queues[id];if(queue.length>0){data=queue.shift();Orbited.singleton.XSDR.iframes[id][pmLocation].postMessage(Orbited.JSON.stringify(data),e.origin)}}},false)}Orbited.XSDR.prototype.logger=Orbited.getLogger("Orbited.XSDR");Orbited.singleton.XSDRBridgeLogger=Orbited.getLogger("XSDRBridge");var CT_READYSTATE_INITIAL=0;var CT_READYSTATE_OPEN=1;var CT_READYSTATE_CLOSED=2;Orbited.CometTransports.XHRStream=function(){var self=this;self.name="xhrstream";var url=null;var xhr=null;var ackId=null;var offset=0;var heartbeatTimer=null;var retryTimer=null;var buffer="";var retryInterval=50;self.readyState=CT_READYSTATE_INITIAL;self.onReadFrame=function(frame){};self.onread=function(packet){self.onReadFrame(packet)};self.onclose=function(){};self.close=function(){if(self.readyState==CT_READYSTATE_CLOSED){return}if(xhr!=null&&(xhr.readyState>1||xhr.readyState<4)){xhr.onreadystatechange=function(){};xhr.abort();xhr=null}self.readyState=CT_READYSTATE_CLOSED;window.clearTimeout(heartbeatTimer);window.clearTimeout(retryTimer);self.onclose()};self.connect=function(_url){if(self.readyState==CT_READYSTATE_OPEN){throw new Error("Already Connected")}url=new Orbited.URL(_url);if(xhr==null){if(url.isSameDomain(location.href)){xhr=createXHR()}else{xhr=new Orbited.XSDR()}}url.path+="/xhrstream";self.readyState=CT_READYSTATE_OPEN;open()};var open=function(){try{if(typeof(ackId)=="number"){url.setQsParameter("ack",ackId)}if(typeof(xhr)=="undefined"||xhr==null){throw new Error("how did this happen?")}if(Orbited.settings.enableFFPrivileges){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(ex){}}xhr.open("GET",url.render(),true);xhr.onreadystatechange=function(){self.logger.debug(xhr.readyState);if(self.readyState==CT_READYSTATE_CLOSED){return}switch(xhr.readyState){case 2:try{var status=xhr.status}catch(e){return}if(status==200){try{heartbeatTimer=window.setTimeout(heartbeatTimeout,Orbited.settings.HEARTBEAT_TIMEOUT)}catch(e){self.close();return}var testtimer=heartbeatTimer}break;case 3:try{var status=xhr.status}catch(e){return}if(status==200){retryInterval=50;process()}break;case 4:var doReconnect=true;try{if(xhr.status===null){doReconnect=true}else{doReconnect=false}}catch(e){}if(doReconnect){retryInterval*=2;window.clearTimeout(heartbeatTimer);retryTimer=window.setTimeout(reconnect,retryInterval);return}switch(xhr.status){case 200:process();offset=0;setTimeout(open,0);window.clearTimeout(heartbeatTimer);break;case 404:self.close();break;default:self.close();break}break}};xhr.send(null)}catch(e){self.close()}};var reconnect=function(){self.logger.debug("reconnect...");if(xhr.readyState<4&&xhr.readyState>0){xhr.onreadystatechange=function(){if(xhr.readyState==4){reconnect()}};self.logger.debug("do abort..");xhr.abort();window.clearTimeout(heartbeatTimer)}else{self.logger.debug("reconnect do open");offset=0;setTimeout(open,0)}};var commaPos=-1;var argEnd=null;var frame=[];var process=function(){var stream=xhr.responseText;receivedHeartbeat();while(stream[offset]==" "){offset+=1}while(stream[offset]=="x"){offset+=1}var k=0;while(true){k+=1;if(k>2000){throw new Error("Borked XHRStream transport")}if(commaPos==-1){commaPos=stream.indexOf(",",offset)}if(commaPos==-1){return}if(argEnd==null){argSize=parseInt(stream.slice(offset+1,commaPos));argEnd=commaPos+1+argSize}if(stream.length<argEnd){return}var data=stream.slice(commaPos+1,argEnd);frame.push(data);var isLast=(stream.charAt(offset)=="0");offset=argEnd;argEnd=null;commaPos=-1;if(isLast){var frameCopy=frame;frame=[];receivedPacket(frameCopy)}}};var receivedHeartbeat=function(){window.clearTimeout(heartbeatTimer);self.logger.debug("clearing heartbeatTimer",heartbeatTimer);try{heartbeatTimer=window.setTimeout(function(){self.logger.debug("timer",testtimer,"did it");heartbeatTimeout()},Orbited.settings.HEARTBEAT_TIMEOUT)}catch(e){return}var testtimer=heartbeatTimer;self.logger.debug("heartbeatTimer is now",heartbeatTimer)};var heartbeatTimeout=function(){self.logger.debug("heartbeat timeout... reconnect");reconnect()};var receivedPacket=function(args){var testAckId=parseInt(args[0]);if(!isNaN(testAckId)){ackId=testAckId}var packet={id:testAckId,name:args[1],data:args[2]};self.onread(packet)}};Orbited.CometTransports.XHRStream.prototype.logger=Orbited.getLogger("Orbited.CometTransports.XHRStream");Orbited.CometTransports.XHRStream.firefox=1;Orbited.CometTransports.XHRStream.firefox2=1;Orbited.CometTransports.XHRStream.firefox3=1;Orbited.CometTransports.XHRStream.safari2=1;Orbited.CometTransports.XHRStream.safari3=1;Orbited.CometTransports.LongPoll=function(){var self=this;self.name="longpoll";var url=null;var xhr=null;var ackId=null;var retryTimer=null;var buffer="";var retryInterval=50;self.readyState=CT_READYSTATE_INITIAL;self.onReadFrame=function(frame){};self.onclose=function(){};self.close=function(){self.logger.debug("close");if(self.readyState==CT_READYSTATE_CLOSED){return}if(xhr!=null&&(xhr.readyState>1||xhr.readyState<4)){xhr.onreadystatechange=function(){};xhr.abort();xhr=null}self.logger.debug("close! self.readyState now is 2");self.readyState=CT_READYSTATE_CLOSED;window.clearTimeout(retryTimer);self.onclose()};self.connect=function(_url){self.logger.debug("connect");if(self.readyState==CT_READYSTATE_OPEN){throw new Error("Already Connected")}url=new Orbited.URL(_url);if(xhr==null){if(url.isSameDomain(location.href)){xhr=createXHR()}else{xhr=new Orbited.XSDR()}}url.path+="/longpoll";self.readyState=CT_READYSTATE_OPEN;open()};var open=function(){self.logger.debug("open... self.readyState = "+self.readyState);if(self.readyState==CT_READYSTATE_CLOSED){return}try{if(typeof(ackId)=="number"){url.setQsParameter("ack",ackId)}if(typeof(xhr)=="undefined"||xhr==null){throw new Error("how did this happen?")}if(Orbited.settings.enableFFPrivileges){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(ex){}}xhr.open("GET",url.render(),true);xhr.onreadystatechange=function(){self.logger.debug("readystate",xhr.readyState);switch(xhr.readyState){case 4:try{var test=xhr.status}catch(e){self.logger.debug("start reconnect Timer (couldn't access xhr.status)");retryInterval*=2;window.setTimeout(reconnect,retryInterval);return}switch(xhr.status){case 200:self.timeoutResetter();process();self.logger.debug("completed request, reconnect immediately");setTimeout(open,0);break;case 404:self.close();break;case null:retryInterval*=2;self.logger.debug("start reconnect Timer (null xhr.status)");window.setTimeout(reconnect,retryInterval);break;default:self.logger.debug("something broke, xhr.status=",xhr.status);self.close();break}break}};xhr.send(null)}catch(e){self.close()}};var reconnect=function(){self.logger.debug("reconnect...");if(xhr.readyState<4&&xhr.readyState>0){xhr.onreadystatechange=function(){if(xhr.readyState==4){reconnect()}};self.logger.debug("do abort..");xhr.abort();window.clearTimeout(heartbeatTimer)}else{self.logger.debug("reconnect do open");offset=0;setTimeout(open,0)}};var process=function(){self.logger.debug("process");var commaPos=-1;var argEnd=null;var argSize;var frame=[];var stream=xhr.responseText;var offset=0;var k=0;while(true){k+=1;if(k>2000){throw new Error("Borked XHRStream transport")}if(commaPos==-1){commaPos=stream.indexOf(",",offset)}if(commaPos==-1){self.logger.debug("no more commas. offset:",offset,"stream.length:",stream.length);return}if(argEnd==null){argSize=parseInt(stream.slice(offset+1,commaPos));argEnd=commaPos+1+argSize}self.logger.assert(true);var data=stream.slice(commaPos+1,argEnd);self.logger.assert(data.length==argSize,"argSize:",argSize,"data.length",data.length);if(data.length!=argSize){DEBUGDATA=stream}frame.push(data);var isLast=(stream.charAt(offset)=="0");offset=argEnd;argEnd=null;commaPos=-1;if(isLast){var frameCopy=frame;frame=[];receivedPacket(frameCopy)}}};var receivedPacket=function(args){var testAckId=parseInt(args[0]);self.logger.debug("args",args);if(!isNaN(testAckId)){ackId=testAckId}self.logger.debug("testAckId",testAckId,"ackId",ackId);var packet={id:testAckId,name:args[1],data:args[2]};self.onReadFrame(packet)}};Orbited.CometTransports.LongPoll.prototype.logger=Orbited.getLogger("Orbited.CometTransports.LongPoll");Orbited.CometTransports.Poll=function(){var self=this;self.name="poll";var url=null;var xhr=null;var ackId=null;var retryTimer=null;var buffer="";var baseRetryInterval=Orbited.settings.POLL_INTERVAL;var retryInterval=baseRetryInterval;self.readyState=CT_READYSTATE_INITIAL;self.onReadFrame=function(frame){};self.onclose=function(){};self.close=function(){self.logger.debug("close...");if(self.readyState==CT_READYSTATE_CLOSED){return}if(xhr!=null&&(xhr.readyState>1||xhr.readyState<4)){xhr.onreadystatechange=function(){};xhr.abort();xhr=null}self.readyState=CT_READYSTATE_CLOSED;window.clearTimeout(retryTimer);self.onclose()};self.connect=function(_url){self.logger.debug("connect...");if(self.readyState==CT_READYSTATE_OPEN){throw new Error("Already Connected")}url=new Orbited.URL(_url);if(xhr==null){if(url.isSameDomain(location.href)){xhr=createXHR()}else{xhr=new Orbited.XSDR()}}url.path+="/poll";self.readyState=CT_READYSTATE_OPEN;open()};var open=function(){self.logger.debug("open...");try{if(typeof(ackId)=="number"){url.setQsParameter("ack",ackId)}if(typeof(xhr)=="undefined"||xhr==null){throw new Error("how did this happen?")}if(Orbited.settings.enableFFPrivileges){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(ex){}}xhr.open("GET",url.render(),true);xhr.onreadystatechange=function(){switch(xhr.readyState){case 4:try{var test=xhr.status}catch(e){retryInterval*=2;window.setTimeout(reconnect,retryInterval);return}switch(xhr.status){case 200:self.timeoutResetter();retryInterval=baseRetryInterval;process();setTimeout(open,retryInterval);break;case 404:self.close();break;case null:retryInterval*=2;window.setTimeout(reconnect,retryInterval);break;default:self.close();break}break}};xhr.send(null)}catch(e){self.close()}};var reconnect=function(){self.logger.debug("reconnect...");if(xhr.readyState<4&&xhr.readyState>0){xhr.onreadystatechange=function(){if(xhr.readyState==4){reconnect()}};self.logger.debug("do abort..");xhr.abort();window.clearTimeout(heartbeatTimer)}else{self.logger.debug("reconnect do open");offset=0;setTimeout(open,0)}};var process=function(){self.logger.debug("process...");var commaPos=-1;var argEnd=null;var argSize;var frame=[];var stream=xhr.responseText;var offset=0;var k=0;while(true){k+=1;if(k>2000){throw new Error("Borked XHRStream transport")}if(commaPos==-1){commaPos=stream.indexOf(",",offset)}if(commaPos==-1){self.logger.debug("no more commas. offset:",offset,"stream.length:",stream.length);return}if(argEnd==null){argSize=parseInt(stream.slice(offset+1,commaPos));argEnd=commaPos+1+argSize}var data=stream.slice(commaPos+1,argEnd);self.logger.assert(data.length==argSize,"argSize:",argSize,"data.length",data.length);if(data.length!=argSize){DEBUGDATA=stream}frame.push(data);var isLast=(stream.charAt(offset)=="0");offset=argEnd;argEnd=null;commaPos=-1;if(isLast){var frameCopy=frame;frame=[];receivedPacket(frameCopy)}}};var receivedPacket=function(args){self.logger.debug("receivedPacket...");var testAckId=parseInt(args[0]);self.logger.debug("args",args);if(!isNaN(testAckId)){ackId=testAckId}self.logger.debug("testAckId",testAckId,"ackId",ackId);var packet={id:testAckId,name:args[1],data:args[2]};self.onReadFrame(packet)}};Orbited.CometTransports.Poll.prototype.logger=Orbited.getLogger("Orbited.CometTransports.Poll");Orbited.CometTransports.HTMLFile=function(){var self=this;self.name="htmlfile";var id=++Orbited.singleton.HTMLFile.i;Orbited.singleton.HTMLFile.instances[id]=self;var htmlfile=null;var ifr=null;var url=null;var restartUrl=null;var restartTimer=null;var baseRestartTimeout=2000;var restartTimeout=baseRestartTimeout;self.onReadFrame=function(frame){};self.onread=function(packet){self.onReadFrame(packet)};self.onclose=function(){};self.connect=function(_url){if(self.readyState==CT_READYSTATE_OPEN){throw new Error("Already Connected")}self.logger.debug("self.connect",_url);url=new Orbited.URL(_url);url.path+="/htmlfile";url.setQsParameter("frameID",id.toString());self.readyState=CT_READYSTATE_OPEN;doOpen(url.render())};var doOpenIfr=function(){var ifr=document.createElement("iframe");ifr.src=url.render();document.body.appendChild(ifr)};var doOpen=function(_url){self.logger.debug("doOpen",_url);htmlfile=new ActiveXObject("htmlfile");htmlfile.open();if(self.isSubDomain){htmlfile.write('<html><script>document.domain="'+document.domain+'";<\/script></html>')}else{htmlfile.write("<html></html>")}htmlfile.parentWindow.Orbited=Orbited;htmlfile.close();var iframe_div=htmlfile.createElement("div");htmlfile.body.appendChild(iframe_div);ifr=htmlfile.createElement("iframe");iframe_div.appendChild(ifr);ifr.src=_url;restartUrl=_url;restartTimer=window.setTimeout(reconnect,restartTimeout)};self.restartingStream=function(_url){restartUrl=_url;restartTimer=window.setTimeout(reconnect,restartTimeout)};var reconnect=function(){self.logger.debug("doing reconnect... "+restartTimeout);restartTimeout*=2;ifr.src=restartUrl;restartTimer=window.setTimeout(reconnect,restartTimeout)};self.streamStarted=function(){self.logger.debug("stream started..");window.clearTimeout(restartTimer);restartTimer=null;restartTimeout=baseRestartTimeout};self.streamClosed=function(){self.logger.debug("stream closed!");window.clearTimeout(restartTimer);self.close()};self.receive=function(id,name,data){packet={id:id,name:name,data:data};self.onread(packet)};self.close=function(){if(self.readyState==CT_READYSTATE_CLOSED){return}self.logger.debug("close called, clearing timer");window.clearTimeout(restartTimer);self.readyState=CT_READYSTATE_CLOSED;ifr.src="about:blank";htmlfile=null;CollectGarbage();self.onclose()}};Orbited.CometTransports.HTMLFile.prototype.logger=Orbited.getLogger("Orbited.CometTransports.HTMLFile");Orbited.CometTransports.HTMLFile.ie=1;Orbited.singleton.HTMLFile={i:0,instances:{}};Orbited.CometTransports.SSE=function(){var self=this;self.name="sse";self.onReadFrame=function(frame){};self.onclose=function(){};self.readyState=CT_READYSTATE_INITIAL;var heartbeatTimer=null;var source=null;var url=null;var lastEventId=-1;self.close=function(){if(self.readyState==CT_READYSTATE_CLOSED){return}self.readyState=CT_READYSTATE_CLOSED;doClose();self.onclose()};self.connect=function(_url){if(self.readyState==CT_READYSTATE_OPEN){throw new Error("Already Connected")}url=new Orbited.URL(_url);url.path+="/sse";self.readyState=CT_READYSTATE_OPEN;doOpen()};doClose=function(){source.removeEventSource(source.getAttribute("src"));source.setAttribute("src","");if(opera.version()<9.5){document.body.removeChild(source)}source=null};doOpen=function(){source=document.createElement("event-source");source.setAttribute("src",url.render());if(opera.version()<9.5){document.body.appendChild(source)}source.addEventListener("payload",receivePayload,false)};var receivePayload=function(event){var data=eval(event.data);if(typeof(data)!="undefined"){for(var i=0;i<data.length;++i){var packet=data[i];receive(packet[0],packet[1],packet[2])}}};var receive=function(id,name,data){var tempId=parseInt(id);if(!isNaN(tempId)){lastEventId=tempId}packet={id:id,name:name,data:data};self.onReadFrame(packet)}};Orbited.CometTransports.SSE.prototype.logger=Orbited.getLogger("Orbited.CometTransports.SSE");Orbited.CometTransports.SSE.opera=1;Orbited.CometTransports.SSE.opera8=1;Orbited.CometTransports.SSE.opera9=1;Orbited.CometTransports.SSE.opera9_5=0.8;Orbited.URL=function(_url){var self=this;var protocolIndex=_url.indexOf("://");if(protocolIndex!=-1){self.protocol=_url.slice(0,protocolIndex)}else{protocolIndex=-3}var domainIndex=_url.indexOf("/",protocolIndex+3);if(domainIndex==-1){domainIndex=_url.length}var hashIndex=_url.indexOf("#",domainIndex);if(hashIndex!=-1){self.hash=_url.slice(hashIndex+1)}else{hashIndex=_url.length}var uri=_url.slice(domainIndex,hashIndex);var qsIndex=uri.indexOf("?");if(qsIndex==-1){qsIndex=uri.length}self.path=uri.slice(0,qsIndex);self.qs=uri.slice(qsIndex+1);if(self.path==""){self.path="/"}var domain=_url.slice(protocolIndex+3,domainIndex);var portIndex=domain.indexOf(":");if(portIndex==-1){self.port=80;portIndex=domain.length}else{self.port=parseInt(domain.slice(portIndex+1))}if(isNaN(this.port)){throw new Error("Invalid _url")}self.domain=domain.slice(0,portIndex);self.render=function(){var output="";if(typeof(self.protocol)!="undefined"){output+=self.protocol+"://"}output+=self.domain;if(self.port!=80&&typeof(self.port)!="undefined"&&self.port!=null){if(typeof(self.port)!="string"||self.port.length>0){output+=":"+self.port}}if(typeof(self.path)=="undefined"||self.path==null){output+="/"}else{output+=self.path}if(self.qs.length>0){output+="?"+self.qs}if(typeof(self.hash)!="undefined"&&self.hash.length>0){output+="#"+self.hash}return output};self.isSamePort=function(_url){_url=new Orbited.URL(_url);return _url.port==self.port};self.isSameDomain=function(_url){_url=new Orbited.URL(_url);if(!_url.domain||!self.domain){return true}return(_url.port==self.port&&_url.domain==self.domain)};self.isSameParentDomain=function(_url){_url=new Orbited.URL(_url);if(_url.domain==self.domain){return true}var orig_domain=_url.domain;var parts=document.domain.split(".");for(var i=0;i<parts.length-1;++i){var new_domain=parts.slice(i).join(".");if(orig_domain==new_domain){return true}}return false};self.isSubDomain=function(_url){_url=new Orbited.URL(_url);if(!_url.domain||!self.domain){return false}return(_url.port==self.port&&self.domain.indexOf("."+_url.domain)>0)};var decodeQs=function(qs){if(qs.indexOf("=")==-1){return{}}var result={};var chunks=qs.split("&");for(var i=0;i<chunks.length;++i){var cur=chunks[i];var pieces=cur.split("=");result[pieces[0]]=pieces[1]}return result};var encodeQs=function(o){var output="";for(var key in o){output+="&"+key+"="+o[key]}return output.slice(1)};self.setQsParameter=function(key,val){var curQsObj=decodeQs(self.qs);curQsObj[key]=val;self.qs=encodeQs(curQsObj)};self.mergeQs=function(qs){var newQsObj=decodeQs(qs);for(key in newQsObj){curQsObj[key]=newQsObj[key]}};self.removeQsParameter=function(key){var curQsObj=decodeQs(self.qs);delete curQsObj[key];self.qs=encodeQs(curQsObj)};self.merge=function(targetUrl){if(typeof(self.protocol)!="undefined"&&self.protocol.length>0){self.protocol=targetUrl.protocol}if(targetUrl.domain.length>0){self.domain=targetUrl.domain;self.port=targetUrl.port}self.path=targetUrl.path;self.qs=targetUrl.qs;self.hash=targetUrl.hash}};Orbited.utf8={};Orbited.utf8.decode=function(s){var ret=[];var j=0;function pad6(str){while(str.length<6){str="0"+str}return str}for(var i=0;i<s.length;i++){if((s.charCodeAt(i)&248)==240){if(s.length-j<4){break}j+=4;ret.push(String.fromCharCode(parseInt((s.charCodeAt(i)&7).toString(2)+pad6((s.charCodeAt(i+1)&63).toString(2))+pad6((s.charCodeAt(i+2)&63).toString(2))+pad6((s.charCodeAt(i+3)&63).toString(2)),2)));i+=3}else{if((s.charCodeAt(i)&240)==224){if(s.length-j<3){break}j+=3;ret.push(String.fromCharCode(parseInt((s.charCodeAt(i)&15).toString(2)+pad6((s.charCodeAt(i+1)&63).toString(2))+pad6((s.charCodeAt(i+2)&63).toString(2)),2)));i+=2}else{if((s.charCodeAt(i)&224)==192){if(s.length-j<2){break}j+=2;ret.push(String.fromCharCode(parseInt((s.charCodeAt(i)&31).toString(2)+pad6((s.charCodeAt(i+1)&63).toString(2),6),2)));i+=1}else{j+=1;ret.push(String.fromCharCode(s.charCodeAt(i)))}}}}return[ret.join(""),j]};Orbited.utf8.encode=function(text){var ret=[];function pad(str,len){while(str.length<len){str="0"+str}return str}var e=String.fromCharCode;for(var i=0;i<text.length;i++){var chr=text.charCodeAt(i);if(chr<=127){ret.push(e(chr))}else{if(chr<=2047){var binary=pad(chr.toString(2),11);ret.push(e(parseInt("110"+binary.substr(0,5),2)));ret.push(e(parseInt("10"+binary.substr(5,6),2)))}else{if(chr<=65535){var binary=pad(chr.toString(2),16);ret.push(e(parseInt("1110"+binary.substr(0,4),2)));ret.push(e(parseInt("10"+binary.substr(4,6),2)));ret.push(e(parseInt("10"+binary.substr(10,6),2)))}else{if(chr<=1114111){var binary=pad(chr.toString(2),21);ret.push(e(parseInt("11110"+binary.substr(0,3),2)));ret.push(e(parseInt("10"+binary.substr(3,6),2)));ret.push(e(parseInt("10"+binary.substr(9,6),2)));ret.push(e(parseInt("10"+binary.substr(15,6),2)))}}}}}return ret.join("")};Orbited.JSON=function(){function f(n){return n<10?"0"+n:n}Date.prototype.toJSON=function(key){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()};var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapeable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapeable.lastIndex=0;return escapeable.test(string)?'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==="string"){return c}return"\\u"+("0000"+(+(a.charCodeAt(0))).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(typeof value.length==="number"&&!(value.propertyIsEnumerable("length"))){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}return{stringify:function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})},parse:function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+(+(a.charCodeAt(0))).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}()})();(function(){try{var a=document.getElementsByTagName("script");for(var c=0;c<a.length;++c){var d=a[c];if(d.src.match("/static/Orbited.js$")){var b=new Orbited.URL(d.src);if(b.render().indexOf("http")!=0){var b=new Orbited.URL(window.location.toString())}Orbited.settings.hostname=b.domain;Orbited.settings.port=b.port;break}}}catch(f){}})();