var z16='0000000000000000',f16='ffffffffffffffff';if(!document.styleSheets){alert("Sorry, we can't support this browser. Please try Internet Explorer 6+ or Firefox 2+\nor a comparable modern browser.");window.close()}var css_attrs=[];function css_attribute(selector,attribute){var i,c=css_attrs;for(i=0;i<c.length;i++)if(c[i].sel==selector&&c[i].attr==attribute)return c[i].val;var rules=(document.styleSheets[0].cssRules?document.styleSheets[0].cssRules:document.styleSheets[0].rules);for(i=0;i<rules.length;i++)if(rules[i].selectorText.trim()==selector&&rules[i].style[attribute]){var val=rules[i].style[attribute].trim();c.push({sel:selector,attr:attribute,val:val});return val}c.push({sel:selector,attr:attribute,val:''});return''};function css_get_percent(selector,attr){var val=css_attribute(selector,attr);if(val==''||val.charAt(val.length-1)!='%')return 0;return Math.max(parseFloat(val.substr(0,val.length-1)),0.0)};function css_get_px(selector,attr,i){var val=css_attribute(selector,attr).toLowerCase();var vals=val.split(' ');if(arguments.length<3)i=0;if(i>=vals.length)return 0;val=vals[i];x=val.indexOf('px');if(x<0)return 0;return parseInt(val.substr(0,x))};function page_width(){return document.body.parentNode.clientWidth};function page_height(){return document.body.parentNode.clientHeight};function is_cr(e){if(!e)var e=window.event;var k=-1;if(window.event)k=e.keyCode;else if(e.which)k=e.which;return(k==13)};function stop_prop(e){if(typeof e=='undefined')var e=window.event;if(typeof e=='object'){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true}};function get_container(e){while(e&&(!e.id||(e.id!='doc_body'&&e.id!='clip_notes'))&&(!e.className||!e.className.match(/^(data[1-3]|thread_head|(pop_)?pop_win)$/)))e=e.parentNode;return e};function win_from_e(e){if(e&&e.id&&e.id.substr(0,7)=='__win__')return win.get(e.id.substr(7))};function get_pos(e){var x=0,y=0,c=get_container(e);if(c){x-=c.scrollLeft;y-=c.scrollTop}while(e){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent}return{x:x,y:y}};function mouse_in(ev,el){if(!ev)var ev=window.event;var p=get_pos(el),x=mouseX,y=mouseY;return(x>=p.x&&x<p.x+el.offsetWidth&&y>=(arguments.length>2?arguments[2]:p.y)&&y<p.y+el.offsetHeight)};function position_to_element(s,se,pos,align){var x,y,p=get_pos(se),w=se.offsetWidth,h=se.offsetHeight,pw=page_width(),ph=page_height();x=p.x;y=p.y;if(pos=='auto')var pos=(x+x+w>pw?'left':'right');else if(pos=='auto2')var pos=(y+y+h>ph?'above':'below');if(align=='auto')var align=(y+y+h>ph?'bottom':'top');else if(align=='auto2')var align=(x+x+w>pw?'right':'left');switch(pos){case'above':s.bottom=(ph-y+4)+'px';s.top='auto';break;case'below':s.top=(y+h+4)+'px';s.bottom='auto';break;case'bottom':s.bottom=(ph-y-h)+'px';s.top='auto';break;case'left':s.right=(pw-x+8)+'px';s.left='auto';break;case'right':s.left=(x+w+8)+'px';s.right='auto';break}switch(align){case'left':s.left=x+'px';s.right='auto';break;case'right':s.right=(pw-x-w)+'px';s.left='auto';break;case'top':s.top=y+'px';s.bottom='auto';break;case'bottom':s.bottom=(ph-y-h)+'px';s.top='auto';break}};function set_cookie(name,value,days){var d=new Date();d.setTime(d.getTime()+days*24*3600*1000);document.cookie=name+"="+value+";expires="+d.toUTCString()+'; path=/'};function del_cookie(name){document.cookie=name+'=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/'};function get_cookie(name){if(document.cookie.length>0){var e,s=document.cookie.indexOf(name+"=");if(s!=-1){s+=name.length+1;e=document.cookie.indexOf(";",s);if(e==-1)e=document.cookie.length;return unescape(document.cookie.substring(s,e))}}}function open_url(u){window.open(u,'MeechMePageOpen')};var services={unknown:{name:'Unknown',update:false,has:[]},yahoo:{name:'Yahoo',update:true,has:['profile','favorites','friends']},facebook:{name:'Facebook',update:true,has:['profile','favorites','friends','photos','videos','updates']},myspace:{name:'MySpace',update:true,has:['profile','favorites','friends','updates','photos','videos']},twitter:{name:'Twitter',update:true,has:['profile','updates','friends']},flickr:{name:'Flickr',update:false,has:['profile','photos','friends']},youtube:{name:'YouTube',update:false,has:['profile','favorites','friends','videos']},google:{name:'Google',update:false,has:['profile','updates','photos','videos']},photobucket:{name:'Photobucket',update:false,has:['profile','friends','photos']},linkedin:{name:'LinkedIn',update:true,has:['profile','friends','resume','updates']},foursquare:{name:'Foursquare',update:false,has:['profile','friends','geolocation']}};function service_name(service){if(services[service])return services[service].name;return'Dev'};function service_has(service,feature){var i,s=services[service];if(s){for(i=0;i<s.has.length;i++)if(s.has[i]==feature)return true}return false};var room_types={forum:'Forum',updates:'Updates/notes',chat:'Chat room','photo':'Photo gallery',video:'Video gallery',geo:'Map',room:'People &amp; Rooms'};function dollars(d){if(d<0)return'-';var s,f,i=Math.floor(d);f=Math.round((d-i)*100);if(f==100){i+=1;f=0}s='$'+i+'.';if(f<10)s+='0';return s+f};Array.prototype.find=function(a){for(var i=0;i<this.length;i++)if(this[i]==a)return i;return-1};String.prototype.e=function(){return document.getElementById(this)};String.prototype.el_id=function(){return this};String.prototype.el_data=function(){return this};String.prototype.trim=function(){return this.replace(/^\s+/g,'').replace(/\s+$/g,'')};String.prototype.nl2br=function(){return this.replace(/\n/g,'<br>').replace(/\r/g,'')};String.prototype.nl2space=function(){return this.replace(/\n/g,' ').replace(/\r/g,'')};String.prototype.br2nl=function(){return this.replace(/<br>/g,'\n')};String.prototype.html_chars=function(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;')};String.prototype.pluralize=function(){switch(this.substr(this.length-1,1)){case's':return this;case'y':return this.substr(0,this.length-1)+'ies';default:return this+'s'}};String.prototype.bbc2html=function(note,getitems){if(!note)var note={};note.embedded={};var S=this;if(S.indexOf('[')<0)return S;function X(p,f){return new RegExp(p,f)};function D(s){return rD.exec(s)};function R(s){return s.replace(rB,P)};function A(s,p){for(var i in p)s=s.replace(X(i,'g'),p[i]);return s};function P($0,$1,$2,$3){if($3&&$3.indexOf('[')>-1)$3=R($3);switch($1){case'float':return'<span style="float: '+$2+'">'+$3+'</span>';case'left':case'right':case'center':case'justify':return'<div style="text-align: '+$1+'">'+$3+'</div>';case'b':case'i':case'u':case's':case'sup':case'sub':case'h1':case'h2':case'h3':case'h4':case'h5':case'h6':case'table':case'tr':case'th':case'td':return'<'+$1+'>'+$3+'</'+$1+'>';case'row':case'r':case'header':case'head':case'h':case'col':case'c':return'<'+T[$1]+'>'+$3+'</'+T[$1]+'>';case'acronym':case'abbr':return'<'+$1+' title="'+$2+'">'+$3+'</'+$1+'>';case'person':case'room':if($3&&(($2&&(($1=='person'&&$2.match(/^[0-9a-f]{32}$/))||($1=='room'&&$2.match(/^[0-9]+$/))))||note[$1])){var u=($2?($1=='room'?users.add($2):users.add($2.substr(0,16),$2.substr(16))):note[$1]);if(!$2)note.embedded[$1]=true;if(!note[$1])note[$1]=u;return u.embed_link($3,false,true)}break;case'place':if($2&&$3&&$2.match(/^[0-9a-f]{32}$/))return users.add($2.substr(0,16),$2.substr(16)).embed_link($3,true);break;case'video':if($3&&(($2&&$2.match(/^\d+$/))||note.video)){var v=($2?get_video($2):note.video);if($2&&!v&&getitems)users.need_media($2);if(v){if(!$2)note.embedded.video=true;if(!note.video)note.video=v;return v.text_html($3)}}return'<span class="embed_video" title="video not found">'+$3+'</span>';break;case'photo':if($3&&(($2&&$2.match(/^\d+$/))||note.photo)){var p=($2?get_photo($2):note.photo);if($2&&!p&&getitems)users.need_media($2);if(p){if(!$2)note.embedded.photo=true;if(!note.photo)note.photo=p;return p.text_html($3)}}return'<span class="embed_photo" title="photo not found">'+$3+'</span>';break;case'geo':if($3&&($2||note.geo)){var g;if($2){var g=$2.split(',');if(g.length!=3||isNaN(parseFloat(g[0]))||isNaN(parseFloat(g[1]))||isNaN(parseInt(g[2])))break;g=new geoloc(parseFloat(g[0]),parseFloat(g[1]),parseInt(g[2]),0,$3,'')}else{note.embedded.geo=true;g=note.geo}if(!note.geo)note.geo=g;return g.embed_html($3)}break;case'wiki':if(!$3)return'';if(note.wiki)note.embedded.wiki=true;return(note.wiki?note.wiki.embed_html($3):$3);case'link':if((!$2&&!note.url)||!$3)return $3;var url,durl;if($2)url=$2;else{url=note.url.url;durl=note.url.durl}if(!durl)durl=url;return'<a class="noteurl" href="'+url.html_chars()+'" title="'+durl.html_chars()+'" target="_blank">'+$3.html_chars()+'</a>';case'tweet':if($2&&$3){var url='http://twitter.com/'+$2;return $3+' <img class="twitterlogo" src="gfx/twitterlogo.png"><span class="tweeter" onclick="window.open( \''+url+'\',\'MeechMePageOpen\')" title="Open '+url+'">'+$2+'</span>'}break}return'['+$1+($2?'='+$2:'')+']'+$3+'[/'+$1+']'};var rB=X('\\[([a-z][a-z0-9]*)(?:=([^\\]]+))?]((?:.|[\r\n])*?)\\[/\\1]','g'),rD=X('^(\\d+)x(\\d+)$');var T={row:'tr',r:'tr',header:'th',head:'th',h:'th',col:'td',c:'td'};var C={notag:[{'\\[':'&#91;',']':'&#93;'},'',''],code:[{'<':'&lt;'},'<code><pre>','</pre></code>']};C.php=[C.code[0],C.code[1]+'&lt;?php ','?>'+C.code[2]];var F={font:'font-family:$1',size:'font-size:$1%',color:'color:$1'};var U={c:'circle',d:'disc',s:'square','1':'decimal',a:'lower-alpha',A:'upper-alpha',i:'lower-roman',I:'upper-roman'};var I={},B={};for(var i in C)I['\\[('+i+')]((?:.|[\r\n])*?)\\[/\\1]']=function($0,$1,$2){return C[$1][1]+A($2,C[$1][0])+C[$1][2]};for(var i in F){B['\\['+i+'=([^\\]]+)]']='<span style="'+F[i]+'">';B['\\[/'+i+']']='</span>'}B['\\[list]']='<ul>';B['\\[list=(\\w)]']=function($0,$1){return'<ul style="list-style-type: '+(U[$1]||'disc')+'">'};B['\\[/list]']='</ul>';B['\\[\\*]']='<li>';if(!note.list||note.list.mode!='chat'){B['\\[quote(?:=([^\\]]+))?]']=function($0,$1){return'<div class="bb_quote"><span class="bbq_hdr">'+($1?$1:'Someone')+' said...</span><div class="bbq_body">'};B['\\[/quote]']='</div></div>'}else{B['\\[quote](.|[\r\n])*\\[/quote]']='';B['\\[quote=([^\\]@]+)[^\\]]*](.|[\r\n])*\\[/quote]']=function($0,$1){return'<span class="chat_quote">@'+$1+'</span> '}}B['\\[thead(?:=([^\\]]+))?]']=function($0,$1){return'<div class="bb_quote"><span class="bbq_hdr">Original post in this thread...</span><div class="bbq_body">'};B['\\[/thead]']='</div></div>';B['\\[(hr|br)]']='<$1 />';B['\\[sp]']='&nbsp;';return R(A(A(S,I),B))};String.prototype.stripitems=function(){var S=this;if(S.indexOf('[')<0)return S;function X(p,f){return new RegExp(p,f)};function R(s){return s.replace(rB,P)};function P($0,$1,$2,$3){if($3&&$3.indexOf('[')>-1)$3=R($3);return($3?$3:'')};var rB=X('\\[(person|place|photo|geo|video|tweet|link)(?:=([^\\]]+))?]((?:.|[\r\n])*?)\\[/\\1]','g');return R(S)};String.prototype.stripbbc=function(){var S=this;if(S.indexOf('[')<0)return S;function X(p,f){return new RegExp(p,f)};function R(s){return s.replace(rB,P)};function A(s,p){for(var i in p)s=s.replace(X(i,'g'),p[i]);return s};function P($0,$1,$2,$3){if($3&&$3.indexOf('[')>-1)$3=R($3);return($3?$3:'')};var rB=X('\\[([a-z][a-z0-9]*)(?:=([^\\]]+))?]((?:.|[\r\n])*?)\\[/\\1]','g'),rD=X('^(\\d+)x(\\d+)$');var F={font:'font-family:$1',size:'font-size:$1%',color:'color:$1'};var B={};for(var i in F){B['\\['+i+'=([^\\]]+)]']='';B['\\[/'+i+']']=''}B['\\[list]']='';B['\\[list=(\\w)]']='';B['\\[/list]']='';B['\\[\\*]']='';{B['\\[quote](.|[\r\n])*\\[/quote]']='';B['\\[quote=([^\\]@]+)[^\\]]*](.|[\r\n])*\\[/quote]']=''}B['\\[(hr|br)]']='';B['\\[sp]']='';return R(A(S,B))};var emoticons=[{code:':\\)',img:'smile'},{code:':\\(',img:'frown'},{code:':D',img:'grin'},{code:':O',img:'surprised'},{code:':P',img:'tongue'},{code:';\\)',img:'wink'},{code:'&lt;3',img:'heart'}];String.prototype.smilies=function(){var s=this;for(var i=0;i<emoticons.length;i++)s=s.replace(new RegExp(emoticons[i].code,'g'),'<img src="gfx/'+emoticons[i].img+'.png" width="16" height="16" alt="">');return s};String.prototype.to_html=function(urls,tweet,note){var s,m,f,i,a,img,yt;if(urls&&!this.match(/\[link(\=[^\]]+)?\].*\[\/link\]/)&&(m=this.match(/https?:\/\/([\w\-]+\.){1,3}[a-zA-Z]{2,}(\/[\w\/\+\=\%\&\.\~\?\-]*)?/g))!==null){s='';f=0;for(i=0;i<m.length;i++){if(m[i].match(/http:\/\/(www\.)?(twitpic\.com|lockerz\.com|yfrog\.com|youtube\.com|p\.twimg\.com|youtu\.be)/))continue;a=this.indexOf(m[i],f);s+=this.substr(f,a-f).html_chars();s+='<a class="noteurl" href="'+m[i]+'" target="_blank">'+m[i].html_chars()+'</a>';f=a+m[i].length}s+=this.substr(f).html_chars()}else s=this.html_chars();if(tweet&&(m=s.match(/(#|@)\w+/g))!==null){var t=s;s='';f=0;for(i=0;i<m.length;i++){a=t.indexOf(m[i],f);s+=t.substr(f,a-f)+'<a class="noteurl" href="http://twitter.com/'+(m[i].substr(0,1)=='@'?'':'search?q='+encodeURIComponent('#'))+m[i].substr(1)+'" target="_blank">'+m[i]+'</a>';f=a+m[i].length}s+=t.substr(f)}return s.replace(/(\[quote.*\])\s*/g,"$1").replace(/\s*\[\/quote\]\s*/g,'[/quote]').nl2br().bbc2html(note).smilies()};String.prototype.get_items=function(){this.bbc2html({},true)};String.prototype.addslashes=function(){return this.replace(/([\\"'])/g,"\\$1")};String.prototype.mydecode=function(){var u;try{u=decodeURIComponent(this)}catch(err){u=unescape(this)}return u};String.prototype.parse_vars=function(){var array={};if(this!=''){var array2=this.split('&');var l=array2.length,tmp,u;for(var i=0;i<l;i++){tmp=array2[i].split('=');array[unescape(tmp[0])]=tmp[1].replace(/[+]/g,' ').mydecode().replace(/\\([\\'"])/g,'$1').replace(/\\([\\'"])/g,'$1')}}return array};String.prototype.capitalize=function(){return(this==''?'':this.substr(0,1).toUpperCase()+this.substr(1))};String.prototype.maxlength=function(l){return(this.length<=l?this:this.substr(0,l-3)+'...')};String.prototype.plural=function(n){return(n==1?this:this.pluralize())};String.prototype.addslashes=function(){return this.replace(/[\\"']/g,'\\$&').replace(/\u0000/g,'\\0')};function build_query(o){var i,q='';for(i in o)q+='&'+i+'='+encodeURIComponent(o[i]);return q.substr(1)};var server_t_adjust=0;function set_server_t(t){var d=new Date();server_t_adjust=t-d.getTime()/1000.0};function server_t(){var d=new Date();return Math.round(d.getTime()/1000.0+server_t_adjust)};function now(){return server_t()};function time(){var d=new Date();return d.getTime()};var months=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');function date_str(t){var d=new Date();d.setTime(t*1000);var dstr=months[d.getMonth()]+'. '+d.getDate()+', '+d.getFullYear()+', ';dstr+=d.getHours()%12||12;dstr+=':';var m=d.getMinutes();dstr+=m<10?'0'+m:m;dstr+=d.getHours()>11?"pm":"am";return dstr};function time_phrase(t){function p(t,u){t=Math.round(t);return t+' '+u+(t==1?'':'s')};t=Math.max(t,0);if(t<60)return p(t,'second');t/=60.0;if(t<120)return p(t,'minute');t/=60.0;if(t<48)return p(t,'hour');t/=24.0;if(t<61)return p(t,'day');t/=30.4375;if(t<24)return p(t,'month');return p(t/12.0,'year')};function ago(t,abs){if(abs)t=server_t()-t;if(t<0)return'in '+time_phrase(-t);return time_phrase(t)+' ago'};function length(t){var h=Math.floor(t/3600);var m=Math.floor((t%3600)/60);var s=t%60;var str=''+s;if(s<9)str='0'+str;str=''+m+':'+str;if(h>0){if(m<9)str='0'+str;str=''+h+':'+str}return str};var wait={wait_list:{},wait_for:function(waitfor){var wait_icon=(arguments.length==1||arguments[1]);this.wait_list[waitfor]={waiting:true,icon:wait_icon};if(wait_icon)document.body.style.cursor='wait'},waiting_for:function(waitfor){return this.wait_list[waitfor]&&this.wait_list[waitfor].waiting},unwait_for:function(waitfor){this.wait_list[waitfor].waiting=false;for(var k in this.wait_list)if(this.wait_list[k].waiting&&this.wait_list[k].icon)return;document.body.style.cursor='auto'}};function ajax(){this.http=false;if(window.XMLHttpRequest)this.http=new XMLHttpRequest();else if(window.ActiveXObject)this.http=new ActiveXObject("Microsoft.XMLHTTP");if(!this.http)alert("Sorry, we are unable to support this browser. We suggest trying Firefox.");this.timeout=this.retry=false;this.queue=[]};ajax.prototype.set_timeout=function(){this.timeout=setTimeout('active_ajax.timed_out()',30000)};ajax.prototype.abort_timeout=function(){if(this.retry){clearTimeout(this.retry);this.retry=false}if(this.timeout){clearTimeout(this.timeout);this.timeout=false}};ajax.prototype.abort=function(){this.http.onreadystatechange=function(){};this.http.abort()};ajax.prototype.timed_out=function(){this.timeout=false;this.abort_timeout();this.abort();wait.unwait_for('ajax');this.fail()};ajax.prototype.next=function(success,response){var op;if(!success){while(this.queue.length>0){op=this.queue.shift();op.callback(success,response,op.args)}}else if(this.queue.length>0){op=this.queue.shift();op.callback(success,response,op.args);this.go()}if(this.queue.length==0){var e='ajaxload'.e();e.className='ajaxnotloading';e.title=''}};ajax.prototype.fail=function(){if(confirm('Oops, looks like our server is busy at the moment.\nTry again?'))this.go();else this.next(false,null)};ajax.prototype.handleHTTPResponse=function(){if(this.http.readyState!=4)return;switch(this.http.status){case 0:case 12029:case 12030:case 12031:case 12152:case 12159:this.retry=setTimeout('active_ajax.send()',2900);return}this.abort_timeout();wait.unwait_for('ajax');if(this.http.status==403){alert('You are not authorized to do that');this.next(false,null)}else if(this.http.status!=200){alert(this.http.status+' '+this.queue[0].base+' '+this.queue[0].params);this.fail()}else this.next(true,this.http.responseText.trim().parse_vars())};ajax.prototype.active_response=function(){active_ajax.handleHTTPResponse()};ajax.prototype.response=function(){return this.active_response};ajax.prototype.construct_url=function(base,params){var url='./ajax/'+base,havep=false;function glue(){if(havep)return'&';havep=true;return'?'};if(params!='')url+=glue()+params;url+=glue()+'url1='+urlhash1+'&url2='+urlhash2+'&user1='+userhash1+'&user2='+userhash2;var d=new Date;return url+glue()+'nc='+d.getTime()+'.'+Math.round(Math.random()*10000000)};ajax.prototype.send=function(){var x=this.queue[0],h=this.http;h.open("POST",this.construct_url(x.base,x.params),true);h.onreadystatechange=this.response();h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.setRequestHeader("Content-length",x.postdata.length);h.setRequestHeader("Content-Disposition",'form-data; name="MeechMe"');h.setRequestHeader("Connection","close");h.send(x.postdata)};ajax.prototype.go=function(){if(this.queue.length>0&&!wait.waiting_for('ajax')){wait.wait_for('ajax');this.send();this.set_timeout()}};ajax.prototype.add=function(op){if(this.http){var q=this.queue;for(var i=0;i<q.length;i++)if(q[i].base==op.base&&q[i].params==op.params)return;if(q.length==0){var e='ajaxload'.e();e.className='ajaxloading';e.title='Cancel / Retry'}q.push(op);this.go()}};ajax.prototype.get=function(base,params,callback){this.add({base:base,params:params,postdata:'c='+session_code,callback:callback,args:(arguments.length>3?arguments[3]:null)})};ajax.prototype.post=function(base,params,postdata,callback){this.add({base:base,params:params,postdata:postdata+'&c='+session_code,callback:callback,args:(arguments.length>4?arguments[4]:null)})};var active_ajax=new ajax();var notes_ajax=active_ajax,user_ajax=active_ajax;function abort_ajax(){var a=active.ajax;a.abort_timeout();a.abort();wait.unwait_for('ajax');a.next(false,null)};function cancel_ajax(){wait.unwait_for('ajax');var a=active.ajax;if(a.queue.length>0){if(confirm("Click cancel or OK to try again")){if(a.queue.length>0){a.abort_timeout();a.abort();a.go()}}else abort_ajax()}};function menu_item(x,text,handler,refresh,onactive){var t=this;if(menus.list[x]){t.name=menus.list[x][2];t.hc=x;t.title=menus.list[x][3]}else t.name=x;if(!t.title)t.title='';t.text=text;t.sets_active=(t.title!='');t.handler=handler;t.refresh_handler=(refresh?refresh:handler);t.onactive=onactive;t.active=false;t.over=t.out='';t.on_exit=false;t.hidden=false};menu_item.prototype.mouseover=function(over,out){this.over=over;this.out=out};menu_item.prototype.set=function(name,text,title,handler){this.name=name;this.text=text;this.title=title;this.handler=handler};menu_item.prototype.onclick=function(){var t=this;return' onclick="'+(typeof(t.handler)=='string'?t.handler:"menus.click2('"+t.bar+"','"+t.menu+"','"+t.name+"')")+'"'};menu_item.prototype.to_html=function(){var me=' onmouseover="menus.show()" onmouseout="menus.show()" onclick="this.onmouseout=null"';switch(this.name){case'share':return'<div class="mi_share"'+me+'></div>';case'_blank':return'<div class="mi_blank"'+me+'></div>';case'_title':return'<div class="mi_title"'+me+'>'+this.text+'</div>'}if(this.hidden||this.text=='')return'';var c='this.onmouseout=null;';return'<div class="mi_notsel" onmouseover="this.className=\'mi_sel\''+(this.over?';'+this.over:'')+'" onmouseout="this.className=\'mi_notsel\''+(this.out?';'+this.out:'')+'"'+this.onclick()+'>'+this.text+'</div>'};menu_item.prototype.hdr_html=function(id,d){var h='<span id="'+id+'" class="menu_hdr';if(d)h+=' disabled"';else{h+='2';if(this.desc)h+='" title="'+this.desc.html_chars()+'"';h+=' onmouseover="'+(this.over?this.over:'menus.hide()')+'"';if(this.out!='')h+=' onmouseout="'+this.out+'"';h+=this.onclick()}return h+'>'+this.text+'</span>'};menu_item.prototype.refresh=function(){var i=menus.active_item(this.bar);if(!i||!this.sets_active||this.bar!=i.bar||!i.on_exit||i.on_exit(true))this.refresh_handler(this)};menu_item.prototype.click=function(){var t=this,i;if(!t.active||t.reclick){i=menus.active_item(t.bar);if(!i||!t.sets_active||t.bar!=i.bar||!i.on_exit||i.on_exit())t.handler(t)}else if(t.onactive)t.onactive(t)};menu_item.prototype.set_active=function(){this.active=true;var p=(this.bar=='page'?page:user);p.fill_hdr(this.title);hash.update();main.resize()};function menu(name,hdr_id,label){this.name=name;this.hdr_id=hdr_id;this.label=label;this.items=[];this.active='none'};menu.prototype.add=function(item){item.bar=this.bar;item.menu=this.name;this.items.push(item)};menu.prototype.unshift=function(item){item.bar=this.bar;item.menu=this.name;this.items.unshift(item)};menu.prototype.item=function(name){var i,m=this.items;for(i=0;i<m.length;i++)if(m[i].name==name)return m[i]};menu.prototype.to_html=function(){var html='',m=this.items;for(var i=0;i<m.length;i++)html+=m[i].to_html();return html};menu.prototype.nvisible=function(){var i,n=0;for(i=0;i<this.items.length;i++)if(!this.items[i].hidden)n+=1;return n};menu.prototype.hdr_html=function(d){switch(this.nvisible()){case 0:return'';case 1:return this.items[0].hdr_html(this.hdr_id,d);default:var h='<span class="menu_hdr';if(d)h+=' disabled"';else{h+='" id="'+this.hdr_id+'"';h+=' onmouseover="menus.show(\''+this.bar+'\',\''+this.name+'\')"';h+=' onmouseout="menus.hide(event)"'}return h+'>'+this.label+'</span>'}};menu.prototype.set_active=function(item){this.active=item;this.item(item).set_active()};menu.prototype.active_item=function(){return(this.active=='none'?false:this.item(this.active))};menu.prototype.deactivate=function(){if(this.active!='none'){this.item(this.active).active=false;this.active='none'}};menu.prototype.click=function(item){var i=this.item(item);if(i)i.click();return i};menu.prototype.refresh=function(){if(this.active!='none')this.item(this.active).refresh()};menu.prototype.refresh_if=function(item){if(this.active==item)this.item(item).refresh()};menu_bar=function(name,menu_id){this.menus=[];this.name=name;this.menu_id=menu_id;this.active='none';menus.bars[name]=this};menu_bar.prototype.add=function(m){m.bar=this.name;this.menus.push(m)};menu_bar.prototype.menu=function(name){var i,m=this.menus;for(i=0;i<m.length;i++)if(m[i].name==name)return m[i]};menu_bar.prototype.to_html=function(s){var h=(this.name=='user'||this.name=='page'?'':'<span class="menu_pad"> </span>');for(var i=0;i<this.menus.length;i++)h+=this.menus[i].hdr_html(s);return h};menu_bar.prototype.fill=function(){this.menu_id.e().innerHTML=this.to_html()};menu_bar.prototype.set_active=function(menu,item){this.active=menu;this.menu(menu).set_active(item)};menu_bar.prototype.get_active=function(){return(this.active=='none'?'none':this.menu(this.active).active)};menu_bar.prototype.active_item=function(){return(this.active=='none'?false:this.menu(this.active).active_item())};menu_bar.prototype.deactivate=function(){if(this.active!='none'){this.menu(this.active).deactivate();this.active='none'}};menu_bar.prototype.click=function(menu,item){var m=this.menu(menu);if(m)return m.click(item);return m};menu_bar.prototype.refresh=function(){if(this.active!='none')this.menu(this.active).refresh()};menu_bar.prototype.refresh_if=function(menu,item){if(this.active==menu)this.menu(menu).refresh_if(item)};var menus={bars:{},last_hdr_id:'',first:true,timeouth:false};menus.list={u:['page','updates','updates','Updates'],d:['page','mingle','everyone','Discuss'],df:['page','mingle','friends','Friends chat'],pr:['user','profile','profile','Profile'],fv:['user','profile','favorites','Favorites'],rs:['user','profile','resume','Work and education'],g:['user','profile','geoloc'],p:['user','media','photos','Photos'],v:['user','media','videos','Videos'],sp:['user','stocks','portfolio','Portfolio'],ss:['user','stocks','sales','For sale'],so:['user','stocks','offers','Wanted'],sb:['user','stocks','bids','Bids'],st:['user','stocks','transactions','Transactions'],f:['user','profile','friends','Friends'],fg:['user','profile','following','Following'],fr:['user','profile','followers','Followers'],ub:['user','people','bookmarks'],r:['user','rooms','rooms','Rooms'],t:['user','room','thread'],rd:['page','admin','deleted'],dc:['page','mingle','conversations','Conversations'],dp:['page','mingle','private','Private messages'],db:['page','mingle','public','Public messages'],uf:['page','mingle','friendsup','Friends'],uo:['page','mingle','followup','Following'],um:['page','mingle','meechmeup','MeechMe updates'],vi:['page','mingle','active','Here now'],vp:['page','mingle','past','Visitors'],sh:['page','stocks','holders','Owners'],ob:['page','stocks','buyers','Buyers'],os:['page','stocks','sellers','Sellers'],sx:['page','stocks','transactions','Transactions'],bn:['page','admin','banned','Banned'],w:['page','main','welcome','Welcome to'],pb:['page','places','bookmarks'],h:['page','mingle','history','History']};menus.talktype=function(t){switch(t.substr(0,1)){case'n':return'u';case'g':return'd';case'f':return'df'}};menus.click=function(x){var m=menus.list[x];return menus.click2(m[0],m[1],m[2])};menus.click2=function(p,m,i){menus.hide();return menus.bars[p].click(m,i)};menus.refresh=function(bar){menus.bars[bar].refresh()};menus.refresh_if=function(x){var m=menus.list[x];menus.bars[m[0]].refresh_if(m[1],m[2])};menus.set_active=function(x){bigimage.close();main.hide_info();dialog_cancel();var m=menus.list[x];if(m){menus.bars[m[0]].deactivate();menus.bars[m[0]].set_active(m[1],m[2]);var p=(m[0]=='page'?page:user);if(arguments.length<2||arguments[2])(m[0]=='user'?user:page).empty_data_hdr();if(menus.first){main.resize();menus.first=false}main.visible(m[0]=='user'?'People':'Places')}};menus.active_item=function(bar){if(!menus.bars[bar])return false;return menus.bars[bar].active_item()};menus.get_active=function(bar){var m=menus.bars[bar];return(m?m.get_active():'none')};menus.get_menu=function(bar){var m=menus.bars[bar];return(m?m.active:'none')};menus.get=function(bar){return{bar:bar,menu:menus.get_menu(bar),item:menus.get_active(bar)}};menus.is_active=function(x){if(x){var m=menus.list[x];return(m[1]==menus.get_menu(m[0])&&m[2]==menus.get_active(m[0]))}};menus.set=function(bar,menu,item,text,title,handler){menus.bars[bar].menu(menu).item(item).set(item,text,title,handler)};menus.new_item=function(x,te,h,r,a){var i,m=menus.list[x];i=new menu_item(x,te,h,r,a);menus.bars[m[0]].menu(m[1]).add(i);return i};menus.ok2go=function(bar){var i=menus.active_item(bar);return(!i||!i.on_exit||i.on_exit())};menus.exit_handler=function(bar,handler){var i=menus.active_item(bar);if(i)i.on_exit=handler};menus.show=function(bar,menu){menus.shown=true;menus.persist=200;var el='menu'.e();if(arguments.length==0){if(menus.timeouth){clearTimeout(menus.timeouth);menus.timeouth=false}el.style.visibility='visible';menus.show_shadow();return}menus.iscontext=false;bigimage.close();var hdr,m=menus.bars[bar].menu(menu);while(true){hdr=m.hdr_id.e();if(hdr.offsetParent!=null)break}var e=hdr,x=0,y=0;while(e!=null){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent}menus.top_y=y;el.className='main_menu';el.innerHTML=m.to_html();el.style.left=(x-20)+'px';el.style.top=(y+hdr.offsetHeight+2)+'px';el.style.right='auto';el.style.bottom='auto';el.style.visibility='visible';menus.show_shadow()};menus.show_shadow=function(){if(!menus.shadow)menus.shadow=new shadow('menu'.e(),'menu');menus.shadow.show()};menus.hide=function(e){if(menus.timeouth){clearTimeout(menus.timeouth);menus.timeouth=false}var el='menu'.e();if(!e){menus.shown=false;el.style.visibility='hidden';if(menus.shadow)menus.shadow.hide()}else if(menus.iscontext||!mouse_in(e,el,menus.top_y))menus.timeouth=setTimeout('menus.timeout()',menus.persist)};menus.timeout=function(){menus.timouth=false;menus.hide()};menus.new_context=function(){menus.iscontext=true;var b=new menu_bar('context','');var m=new menu('context','','');b.add(m);return m};menus.notego=function(e,m,cn,align){main.hide_info();bigimage.close();var p=get_pos(e),el='menu'.e();el.className=cn;el.innerHTML=m.to_html();var s=el.style;position_to_element(s,e,'bottom',align);menus.persist=200;s.visibility='visible';menus.show_shadow()};menus.contextgo=function(e,m,c,s,p){main.hide_info();bigimage.close();var el='menu'.e();el.className=(c?c:'context_menu');el.innerHTML=m.to_html();menus.position(el,e,s);el.style.visibility='visible';menus.shown=true;menus.show_shadow();menus.iscontext=true;menus.persist=(p?p:200)};menus.position=function(el,e,sq){if(!e)var e=window.event;stop_prop(e);var s=el.style,x=mouseX,y=mouseY,pw=page_width(),ph=page_height(),w=el.offsetWidth;if(x*2>pw?(!sq||x+w>pw):(sq&&w<=x)){s.right=(pw-x-6)+'px';s.left='auto'}else{s.left=(x-6)+'px';s.right='auto'}if(y*2>ph){s.bottom=(ph-y-6)+'px';s.top='auto'}else{s.top=(y-6)+'px';s.bottom='auto'}};menus.user_context=function(id){var u=users.geti(id);menus.context_u=u;var m=menus.new_context();if(u.is_person())m.add(new menu_item('view','View',menus.cview));if(!u.is_guest()&&!u.is_no_owner()){m.add(new menu_item('visit','Visit',menus.cvisit));if(user.logged_in())m.add(new menu_item('visitnew','Visit in new window',menus.cvisit_newwin));if(u.is_external())m.add(new menu_item('open','Open',menus.copen));if(user.logged_in()&&!u.is_user()){if(u.is_person()&&u.follower)m.add(new menu_item('pm','Send private message',menus.csend_pm));m.add(new menu_item('bm','Post public message',function(){user.send_pubm(null,u)}));if(u.following)m.add(new menu_item('unfriend','Stop following',menus.cunfriend));else m.add(new menu_item('friend','Follow',menus.cfriend))}if(user.logged_in())m.add(new menu_item('buysell','Buy/sell settings',menus.cbuysell_settings));if(!u.is_person()&&u.admin.is_user()&&u.room&&u.room.displayed()){var p=u.room.getparent();if(p&&!p.is_person()&&p.room)m.add(new menu_item('move','Move room to parent',function(){page.move_room(u,p.room.parent)}));m.add(new menu_item('edit','Room settings',function(){page.edit_room(null,u)}));m.add(new menu_item('delete','Delete room',function(){page.delete_room(null,u)}))}}return m};menus.context=function(e,id){menus.contextgo(e,menus.user_context(id))};menus.map_sv=function(m,g){m.unshift(new menu_item('sv','Street view',function(){var map=g.geo.data.map;var p=map.getStreetView();p.setPosition(g.marker.getPosition());p.setVisible(true)}))};menus.map_context=function(e,g){var m=menus.user_context(g.aux);menus.map_sv(m,g);menus.contextgo(e,m)};menus.map_context2=function(e,g){var m=menus.new_context();menus.map_sv(m,g);if(g.geo.op.editable)m.add(new menu_item('edit','Edit',function(){g.select();g.geo.edit.open()}));menus.contextgo(e,m)};menus.map_note_context=function(e,g){var m=menus.new_context();menus.map_sv(m,g);notes.fill_menu(m,g.aux);menus.contextgo(e,m)};menus.video_context=function(e,idx){var p=all_videos[idx],m=menus.new_context();m.add(new menu_item('openurl','Open source page',function(){p.open_url()}));if(p.room&&p.room.uid&&!p.room.same(page.displayed))m.add(new menu_item('room','Visit source room',function(){main.log_into(p.room.uid)}));menus.contextgo(e,m)};menus.yt_context=function(e,url){m=menus.new_context();m.add(new menu_item('openurl','Open URL',function(){open_url(url)}));menus.contextgo(e,m)};menus.cview=function(){user.displayi(menus.context_u.id)};menus.cvisit=function(){var u=menus.context_u;main.log_into(u.hash1,u.hash2)};menus.cvisit_newwin=function(){var u=menus.context_u,d=new Date();window.open(site_main+'/#/'+u.uid,'Meechme-'+d.getTime())};menus.csend_pm=function(){user.send_pm(null,menus.context_u)};menus.cfriend=function(){friends.add(null,menus.context_u)};menus.cunfriend=function(){friends.remove(null,menus.context_u)};menus.cbuysell_settings=function(){var u=menus.context_u;if(u.owner&&u.owner.is_no_owner()){alert("Sorry, you can't trade stocks in pages that don't have an owner");return}if(!u.stock){user.ajax.get('getowner.php','h1='+u.hash1+'&h2='+u.hash2,menus.cbuysell_settings2);return}if(!users.get_user().portfolio){user.get_portfolio(users.get_user(),menus.cbuysell_settings);return}stocks.buysell_settings(u.stock)};menus.cbuysell_settings2=function(success,r){if(success){var u=users.get(r.hash1,r.hash2);u.owner=users.add(r.owner1,r.owner2);u.stock=users.add(r.stock1,r.stock2);users.get_data(menus.cbuysell_settings)}};menus.copen=function(){page.launch(menus.context_u)};function data_area(name,container_id,panehdr_id,panectl_id,menuctl_id,panename_id,quicklinks_id,data_hdr_id,data_id,menu_bar_name,control_id,ajax,fontlevel){if(arguments.length==0)return;var t=this,b;t.panename=name;t.container_id=container_id;t.panehdr_id=panehdr_id;t.panectl_id=panectl_id;t.menuctl_id=menuctl_id;t.panename_id=panename_id;t.quicklinks_id=quicklinks_id;t.data_hdr_id=data_hdr_id;t.data_id=data_id;t.menu_bar_name=menu_bar_name;t.control_id=control_id;t.ajax=ajax;t.fontlevel=fontlevel;b=(menu_bar_name=='page'?1:2);t.bpadding=b;t.left=css_get_percent('#'+container_id,'left');t.width=css_get_percent('#'+container_id,'width');t.top=css_get_percent('#'+container_id,'top');t.height=css_get_percent('#'+container_id,'height');t.padding=t.wpadding=2*css_get_px('.data1','padding',0);t.padding+=2*css_get_px('#'+container_id+' .data1','borderWidth',0);t.wpadding+=b;t.tpadding=2*css_get_px('.menu_bar','padding',0)+b;t.ipadding=2*css_get_px('.info_hdr','padding',0)+b;t.ppadding=2*css_get_px('.pane_hdr','padding',0)+b;t.cpadding=2*css_get_px('.control','padding',0)+b;t.menu_bar=false;t.control_html='';t.show_menu=true;t.show_data_hdr=false;t.o_popctl=false};data_area.prototype.clone=function(){var d=new data_area();for(var i in this)d[i]=this[i];return d};data_area.prototype.fill_html=function(h){if(this.geo)this.geo.active=false;this.data_id.e().innerHTML=h};data_area.prototype.show_ctl=function(){this.panectl_id.e().style.display='block';this.o_popctl=true};data_area.prototype.hide_ctl=function(){this.panectl_id.e().style.display='none';this.o_popctl=false};data_area.prototype.fill_menu=function(d){this.quicklinks_id.e().innerHTML=this.menu_bar.to_html(d)};data_area.prototype.fill_data_hdr=function(h){var e=this.data_hdr_id.e();e.className='data_hdr';e.innerHTML=h;e.style.display='block';this.show_data_hdr=true;main.resize()};data_area.prototype.empty_data_hdr=function(){if(this.show_data_hdr){this.data_hdr_id.e().style.display='none';this.show_data_hdr=false;main.resize()}};data_area.prototype.options=function(e,p,a){if(this.data_obj&&this.data_obj.have_options())main.show_info(e,p,a,'<div class="options">'+this.data_obj.options()+'</div>',true)};data_area.prototype.update_options=function(){if(this.data_obj)main.update_info('<div class="options">'+this.data_obj.options()+'</div>')};data_area.prototype.new_controls=function(){this.control_html='';this.data_obj=null};data_area.prototype.add_control=function(href,text,title){this.control_html+='<a href="javascript:'+href+'"';if(title)this.control_html+=' title="'+title+'"';this.control_html+='>'+text+'</a>'};data_area.prototype.fill_controls=function(){var b=this.menu_bar_name;if(this.data_obj&&this.data_obj.have_options())this.control_html+='<a onmouseover="'+b+'.options(this,\'bottom\',\'right\')">Options</a>';this.add_control("menus.refresh('"+b+"')",'Refresh');this.control_id.e().innerHTML=this.control_html+'<span class="ctl_pad"> </span>'};data_area.prototype.fill_hdr=function(desc){var d=desc,t=this,h,u=this.displayed;if(d.substr(0,1)=='+')d=d.substr(1);h='<div class="pane_hdr_name">'+(t.isthread()?'Thread - <span title="View note list" onclick="notelist.display('+t.notelist.parent.id+')">'+menus.list[t.notelist.parent.menu][3]+'</span>':d)+' - <span';if(u.is_external()&&t.menu_bar_name=='user'&&!t.isthread())h+=' title="Open '+(u.is_person()?'profile':'web')+' page" onclick="'+t.menu_bar_name+'.launch()"';else h+=' title="View room owner" onclick="user.viewowner()"';t.panename_id.e().innerHTML=h+u.oncontextmenu()+u.onmousedown()+'>'+u.name()+'</span></div>'};data_area.prototype.changefont=function(){this.fontlevel=(this.fontlevel%3)+1;this.data_id.e().className='data'+this.fontlevel;set_cookie(this.menu_bar_name+'font',this.fontlevel,365)};data_area.prototype.isthread=function(){var n=this.notelist;return(n&&n.displayed()&&n.thread>0)};data_area.prototype.resize=function(page_width,page_top,page_height,maximized,left,width,top,height){function px(percent){return Math.round((percent*page_height)/100.0)};var t=this,mc=(page.mode_ctl&&page.notelist&&page.notelist.displayed());var isp=(t.menu_bar_name=='page'),mo=(mc?52:0),mx=(maximized>=0);if(isp)'mode_ctl'.e().style.display=(mc?'block':'none');if(maximized<0){left=t.left;width=t.width;top=t.top;height=t.height}var el,cs=t.container_id.e().style,y=0;var w=Math.round(page_width*width/100.0)+(mx||!mc?0:(isp?mo/2:-mo/2));var h=px(height)-t.padding;cs.left=(Math.round(left*page_width/100.0)+(!mx&&!isp?mo/2:0))+'px';cs.width=w+'px';cs.top=page_top+px(top)+'px';cs.display='block';if(t.panehdr_id!=''){el=t.panehdr_id.e();el.style.width=(w-t.ppadding+1)+'px';y+=el.offsetHeight+8;h-=el.offsetHeight+8}if(t.data_hdr_id!=''&&t.show_data_hdr){el=t.data_hdr_id.e();if(isp)el.style.left=mo+'px';el.style.width=(w-t.bpadding-(isp?mo:0))+'px';y+=el.offsetHeight;h-=el.offsetHeight}if(t.control_id!=''){el=t.control_id.e();if(isp)el.style.left=mo+'px';el.style.width=(w-t.cpadding-(isp?mo:0))+'px';h-=el.offsetHeight}cs=t.data_id.e().style;cs.top=y+'px';if(isp)cs.left=mo+'px';cs.height=h+'px';cs.width=(w-t.wpadding-(isp?mo:0))+'px';y+=h+t.padding;if(t.control_id!=''){el=t.control_id.e();if(isp)el.style.left=mo+'px';el.style.top=y+'px';y+=el.offsetHeight}if(t.geo&&t.geo.active){el=t.geo.canvas().e();el.style.height=(h-get_pos(el).y+get_pos(t.data_id.e()).y+t.padding/2)+'px';google.maps.event.trigger(t.geo.data.map,'resize')}if(t.notelist)t.notelist.resize()};data_area.prototype.set=function(u,l,c){var d=this,du=this.displayed;if(!du||!u.same(du)||l||d.isthread()){var g=function(){hash.poll=false;d.update_icons(u);d.displayed=u;d.get_menus(l)};if(c)users.get_data(function(s){if(s)u.get_rooms(function(){g();c()})});else g()}else if(c)c()};data_area.prototype.revisit=function(id,m){var u=users.geti(id);if(this.menu_bar_name=='page')main.log_into(u.hash1,u.hash2,m);else{user.set(u);menus.click(m)}};data_area.prototype.notelist_controls=function(){var n=this.notelist;if(n&&n.displayed()){this.data_obj=n;if(n.post_ok&&!n.indirect)this.add_control("notes.post('"+n.panename+"')",'New','post new item');if(n.mode=='geo')this.add_control('notes.findloc()','Location','find a location')}};data_area.prototype.table_controls=function(){var t=this.table;if(t&&t.displayed())this.data_obj=t};data_area.prototype.check_popctl=function(ev){var e;if(this.o_popctl){e=this.panehdr_id.e();if(!mouse_in(ev,e))this.hide_ctl()}};var page=new data_area('Places','notes_container','ppane_hdr','ppane_ctl','pmenu_ctl','ppane_name','page_quicklinks','notes_data_hdr','notes_list','page','notes_ctl',notes_ajax,pagefont);page.mode_ctl=true;var user=new data_area('People','user_container','upane_hdr','upane_ctl','umenu_ctl','upane_name','user_quicklinks','user_data_hdr','user_data','user','user_ctl2',active_ajax,userfont);page.copylink=function(){page.displayed.copylink(true)};user.copylink=function(){user.displayed.copylink()};var notes=page.clone();var active=page.clone();active.ajax=user.ajax;var main={panes:[page,user],maximized:-1,splash:true,in_el:null};main.init=function(){document.body.onmousemove=function(e){if(!e)var e=window.event;mouseX=e.clientX;mouseY=e.clientY;var te,li;if(e.target)te=e.target;else if(e.srcElement)te=e.srcElement;if(te&&te.nodeType==3)te=te.parentNode;if(te){mouseX+=te.scrollLeft;mouseY+=te.scrollTop}user.check_popctl(e);page.check_popctl(e);if(menus.shown&&!mouse_in(e,'menu'.e())&&(!menus.shadow||!mouse_in(e,menus.shadow.s)))menus.hide(e);if(main.in_el&&!mouse_in(e,main.in_el.e)){main.in_el.close();main.in_el=null}if(win.dragging){win.dragging.drag(e);return false}if((li=main.listinfo)&&li.style.visibility=='visible'&&!mouse_in(e,li)&&!mouse_in(e,main.listpane)){li.style.visibility='hidden';main.listinfo_shadow.hide()}};set_cookie('sessioncode',session_code,30);public=public.parse_vars();main.get_menus();main.sidebar();docs.init();main.header_margin=1.5;if(user.logged_in())users.user=users.add_data(userid,userhash1,userhash2,service,guid,display_name,profile_str,cash,earnings,stockvalue);else users.user=users.get(userhash1,userhash2);var l,h=hash.parse();if(h.thread){notes.ajax.get('getthread.php','t='+h.thread,function(s,r){if(!s){window.location='novisit.php?where='+h.thread+'&why=nothread';return}visitid=h.vid=r.hash1;switch(r.type.substr(0,1)){case'n':h.pmenu='u';break;case'g':h.pmenu='d';break;case'f':h.pmenu='df';break;case'p':h.pmenu='dp';break}notes.ajax.get('loginto.php','service='+service+'&vid='+visitid,main.init1,h)})}else{if(h.vid)visitid=h.vid;if(!h.pmenu)h.pmenu='u';notes.ajax.get('loginto.php','service='+service+'&vid='+visitid,main.init1,h)}};main.init1=function(s,r,h){if(!s)window.location='novisit.php?where='+visitid+'&why=noaccess';if(r.error){h.thread=0;h.pmenu='u';notes.ajax.get('loginto.php','service='+service+'&vid='+(user.logged_in()?userid:2),main.init1,h);alert("The room you tried to visit does not exist, or you don't have permission to visit.");return}main.new_session=new session(r);users.get_data(main.log_into_finish,h.pmenu);var i,p=main.panes;for(i=0;i<p.length;i++){if(i==0||p[i].left+p[i].width>main.right)main.right=p[i].left+p[i].width;if(i==0||p[i].left<main.left)main.left=p[i].left;if(i==0||p[i].top+p[i].height>main.bottom)main.bottom=p[i].top+p[i].height;if(i==0||p[i].top<main.top)main.top=p[i].top}main.pop_shadow=new shadow('popinfo'.e(),'info');users.add_guest();users.add_no_owner();if(h.thread)notes.display_thread(h.thread);else users.get_data(user.welcome);users.get_data(page.update_icons_first);if(welcome)var x=welcome.to_html();user.import_from=import_str.parse_vars();user.import_service=import_services.parse_vars();if(banned)alert('You have been banned from participating here');if(user.logged_in()&&!user.participating())new_user=true;users.searchgo(query);if(oops=='noaccess')alert('Access to part or all of your profile was denied by you or your service.\nIf there was an error or the service was busy please try again.');else if(oops=='nocookies')alert('Cookies are required to sign in. Please enable them and try again.');else if(user.logged_in())user.ajax.get('newlinks.php','',function(){});if(new_user)user.new_user(true);else main.splash=false;if(go!='')main.sidelink(go);setInterval(hash.check,801);setInterval(notelist.adjust_photos,1000);if(user.logged_in()){main.sidebar_drops();notes.get_last_ids();setInterval(notes.get_last_ids,900000)}};main.get_menus=function(){main.menu2=new menu_bar('main2','main_menu2');m=new menu('meechmehome','meechme_menu','');main.menu2.add(m);m.add(new menu_item('meechmehome',"MeechMe home",main.meechme_home));m=new menu('docs','docs_menu','Info');main.menu2.add(m);m.add(new menu_item('whatsthis',"What's this?",docs.whats_this));m.add(new menu_item('getbutton',"Get your button!",main.get_button));m.add(new menu_item('basics','People &amp; Places',docs.basics));m.add(new menu_item('talk','Talking',docs.talk));m.add(new menu_item('cash','Cash &amp; Earnings',docs.cash));m.add(new menu_item('stocks','Stocks',docs.stocks));m.add(new menu_item('changeowner','Change owner',docs.change_owner));m.add(new menu_item('privacy','Privacy',docs.privacy));m.add(new menu_item('tos','Terms of service',docs.tos));m.add(new menu_item('contact','Contact',docs.contact));if(userhash1+userhash2=='3864f7dcbec46c2546ff18e3c19c30a3'){m=new menu('top','top_menu','Browse');main.menu2.add(m);tops.browse_menu(m)}main.menu2.fill();main.menu1=new menu_bar('main1','main_menu1');m=new menu('login','login','Sign in/out');main.menu1.add(m);if(user.logged_in()){var i=new menu_item('logout',"Sign out",user.logout);i.mouseover('main.show_logged_in(this)','main.hide_info()');m.add(i)}else m.add(new menu_item('login',"Sign in",user.login));if(user.logged_in()){m=new menu('settings','settings_menu','Settings');main.menu1.add(m);m.add(new menu_item('privacy',"Privacy",user.settings));m.add(new menu_item('actions',"Links",user.link_settings));m.add(new menu_item('import',"Import",user.uimport))}main.menu1.fill()};main.sidebar=function(){var h='<div id="sideme" onclick="main.sidelink(\'me\')" title="You!"></div><div id="andmy">and my...</div><div id="sidelinks">';function sl(a,t){h+='<div id="sidebar_'+a+'" class="sidelink" onmouseover="this.className=\'sidelink_sel\'" onmouseout="this.className=\'sidelink\'" onclick="main.sidelink(\''+a+'\')"><span>'+t+'</span></div>'};sl('updates','Updates');sl('uf','Friends');sl('uo','Following');sl('dp','Private Msgs');sl('db','Public Msgs');sl('dc','Conversations');sl('stocks','Stocks');sl('rooms','Rooms');sl('h','History');sl('clip','Clipboard');'sidebar'.e().innerHTML=h+'</div>'};main.sidebar_drops=function(){var l,w,u=users.get_user();l=main.clipboard=new _notelist(u,'','getnotes.php','z',20);l.pane={displayed:u,data_id:'clip_notes',data_hdr_id:'clip_hdr',fill_html:function(h){'clip_notes'.e().innerHTML=h},controls:function(){},empty_data_hdr:function(){'clip_hdr'.e().innerHTML=''},fill_data_hdr:function(h){'clip_hdr'.e().innerHTML=h}};l.panename='clip';w=win.open('sidebar','',{},{pane:'sidebar'.e()});w.receiver('sidebar',null,'sidebar_clip','sidelink_rec','sidelink')};main.sidelink=function(f){if(!user.logged_in()){user.login();return}var u=users.get_user();switch(f){case'me':user._display(u);break;case'updates':main.log_into(u.hash1,u.hash2,'u');break;case'rooms':user.set(u,null,function(){u.rooms.display()});break;case'stocks':var f=function(u){user.set(u);menus.click('sp');main.log_into(u.hash1,u.hash2,'sh')};if(!u.portfolio)user.get_portfolio(u,f);else f(u);break;case'clip':notes.display_clipboard();break;default:menus.click(f)}};main.meechme_home=function(){main.log_into('8ba93956549c95e8','2d18cc16a18d9f15')};main.resize=function(){var ph=page_height();var pageh=ph;'grey_out'.e().style.height=ph+'px';ph-=6;function px(percent){return Math.round((percent*ph)/100.0)};var he='header_container'.e();he.style.top=0;pt=he.offsetHeight+px(main.header_margin);ph-=pt;var i,pw=page_width();var s='sidebar'.e().style;s.left=(pw-160)+'px';s.top=pt+'px';s.height=ph+'px';s.display='block';for(i=0;i<main.panes.length;i++)if(main.maximized<0||i==main.maximized)main.panes[i].resize(pw-160,pt,ph,main.maximized,main.left,main.right-main.left,main.top,main.bottom-main.top);docs.resize(pw,pageh);if(editarea['editwelcome'])editarea['editwelcome'].resize(pw)};main.toggle=function(pane){var i,p=this.panes;if(this.maximized>=0){this.maximized=-1;for(i=0;i<p.length;i++){p[i].container_id.e().style.display='block'}}else{for(i=0;i<p.length;i++){if(p[i].menu_bar_name==pane){this.maximized=i}else p[i].container_id.e().style.display='none'}}this.resize()};main.selectpane=function(n){var p=this.panes;for(var i=0;i<p.length;i++)p[i].container_id.e().style.display=(i==n?'block':'none');this.maximized=n;this.resize()};main.show=function(name){var p=this.panes;if(this.maximized>=0&&p[this.maximized].panename!=name)for(var i=0;i<p.length;i++)if(p[i].panename==name)this.selectpane(i)};main.visible=function(name){var p=this.panes;if(this.maximized>=0&&p[this.maximized].panename!=name){this.maximized=-1;for(i=0;i<p.length;i++){p[i].container_id.e().style.display='block'}this.resize()}};main.addthis=function(){var u=page.displayed;document.title='Visiting: '+u.name()};main.log_into=function(hash1,hash2,m){if(!menus.ok2go('page'))return;var menu=(m?m:'u'),s=null,u;if(!hash2){for(var i in sessions)if(sessions[i].vid==hash1){s=sessions[i];break}u=users.getuid(hash1)}else{s=sessions['_'+hash1+hash2];u=users.get(hash1,hash2)}if(!m&&u&&u.room&&u.room.updates_mode=='group'){user.set(u);notes.display_rooms()}else if(s){main.new_session=s;main.log_into_finish(true,menu)}else active.ajax.get('loginto.php','service='+service+(hash2?'&hash1='+hash1+'&hash2='+hash2:'&vid='+hash1),main.log_into_response,menu)};var sessions={};function session(d){var s=this;s.t=parseInt(d.time);s.r=parseInt(d.rand);s.code=parseInt(d.code);s.url=d.url;s.title=d.title;s.vid=parseInt(d.id);s.urlhash1=d.url1;s.urlhash2=d.url2;s.stockhash1=d.stock1;s.stockhash2=d.stock2;s.admin=parseInt(d.isadmin);s.admin_id=d.admin;s.host=d.host;s.updates_mode=d.updatesmode;s.menu='u';s.displayed=users.add(d.url1,d.url2);s.displayed.uid=s.vid;s.displayed.set_room(d);if(s.admin_id.length==32){var u=users.add(s.admin_id.substr(0,16),s.admin_id.substr(16));s.displayed.admin=u;if(!u.is_no_owner())s.displayed.stock=users.add(d.stock1,d.stock2)}sessions['_'+d.url1+d.url2]=s};session.prototype.put=function(){var t=this;session_t=t.t;session_r=t.r;url=t.url;title=t.title;host=t.host;welcome=t.displayed.room.welcome;guestpost=t.displayed.room.guestpost;urlhash1=t.urlhash1;urlhash2=t.urlhash2;stockhash1=t.stockhash1;stockhash2=t.stockhash2;admin=t.admin;admin_id=t.admin_id;page.set(t.displayed);page.clear();main.addthis();main.session=t;visitid=t.vid;set_cookie('visitid',visitid,365)};main.log_into_response=function(s,r,menu){if(s){if(r.error){if(r.error=='banned')alert('You have been banned from visiting there');else alert("That room no longer exists, or you don't have permission to visit");hash.update()}else{main.new_session=new session(r);users.get_data(main.log_into_finish,menu)}}};main.log_into_finish=function(success,menu){if(success){main.session=main.new_session;main.session.put();if(menu==='both'){menus.click('u');user._display(page.displayed.admin)}else if(!menus.click(menu))menus.click('u')}else hash.update()};main.visit=function(vn){if(!menus.ok2go('page'))return;var i,s,v=visits[vn];for(var i in sessions){s=sessions[i];if(s.urlhash1==v.url1&&s.urlhash2==v.url2){s.menu=v.menu;main.new_session=s;main.log_into_finish(true,s.menu);return}}active.ajax.get('visit.php','vn='+vn+'&service='+service+'&h1='+v.url1+'&h2='+v.url2,main.visit_response)};main.visit_response=function(success,r){if(success){if(r.banned)alert('You have been banned from visiting there');else if(r.vn){main.new_session=new session(r);main.new_session.menu=visits[parseInt(r.vn)].menu;users.get_data(main.log_into_finish,main.new_session.menu)}}};main.visit_user=function(m){var u=users.get_user();if(u.same(page.displayed))return true;main.log_into(u.hash1,u.hash2,m);return false};main.hide_all=function(){main.hide_info();menus.hide()};main.show_info=function(se,pos,align,html,op){if(win.dragging||menus.shown)return;var e="popinfo".e();var s=e.style;if(arguments.length==0){s.visibility='visible';main.pop_shadow.show();return}main.info_isop=op;if(pos=='bottom'||pos=='top'||pos=='mouse')e.onmouseover=function(){main.show_info()};else e.onmouseover=function(){};e.onmouseout=function(){main.hide_info(op)};if(pos=='mouse')menus.position(e,se);else position_to_element(s,se,pos,align);e.innerHTML=html;s.visibility='visible';main.pop_shadow.show()};main.hide_info=function(op){if(op||!main.info_isop){"popinfo".e().style.visibility='hidden';if(main.pop_shadow)main.pop_shadow.hide()}};main.update_info=function(h){if(main.info_isop){var e='popinfo'.e();e.innerHTML=h;if(e.style.visibility=='visible')main.pop_shadow.show()}};main.show_logged_in=function(se){var h='<div class="showloggedin">signed in:<br><b>'+users.get_user().short_name()+'</b></div>';main.show_info(se,'below','right',h)};main.button_code=function(){if(!user.logged_in()){alert('Please log in to the account that will be the owner of your page');return}var c='<a href="http://meechme.com/?url=';var v='button_url'.e().value.trim();if(v==''){alert('Please enter the URL of your page');return}c+=encodeURIComponent(v)+'&amp;title=';v='button_title'.e().value.trim();if(v==''){alert('Please enter the title of your page');return}var u=users.get_user();c+=encodeURIComponent(v)+'&amp;owner='+u.hash1+u.hash2+'" target="_blank">\n';var b=buttons[selected_button];c+='<img src="'+site_main+'/gfx/'+b.img+'" width="'+b.w+'" height="'+b.h+'" style="border-style:none" alt="Meech Me!" title="Meet, chat and more with other readers of this page">\n';c+='</a>';'button_code'.e().innerHTML='<textarea rows="7" cols="65" style="overflow:auto">'+c.html_chars().replace(/ /g,'&nbsp;')+'</textarea>'};var buttons=[{img:'button05.png',w:16,h:16},{img:'button03.png',w:16,h:16},{img:'button04.png',w:98,h:16},{img:'button02.png',w:128,h:23},{img:'button01.png',w:131,h:21}];var selected_button;main.get_button=function(){var h='<p><b>If you are not logged in to the account you would like to use as the owner of your page, please close this dialog and log in to it now.</b></p>';h+="<p>Enter your page's URL and title, select your button, click \"get code\", and paste the code anywhere in your page. Make sure that your URL points to a page that will contain the code.";h+=' You may modify the code in any way to suit your purposes, such as to use your own button image or text.</p>';h+='<br><table><tr><td>Your page URL:</td><td><input id="button_url" size="55" value="http://"></td></tr>';h+='<tr><td>Your page title:</td><td><input id="button_title" size="55"></td></tr></table>';h+='<br>Select your button image:<br><br>';for(var i=0;i<buttons.length;i++){h+='<input type="radio" name="buttonimg" value="'+i+'" onclick="selected_button=parseInt(this.value)"';if(i==2){selected_button=i;h+=' checked="checked"'}h+=' style="background-color:#fff"> <img src="gfx/'+buttons[i].img+'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'}h+='<br><br><button onclick="main.button_code()">Get code!</button><br>';h+='<br><div id="button_code"><textarea rows="7" cols="65" style="overflow:auto"></textarea></div>';main_info(h)};window.onload=main.init;window.onresize=main.resize;function dialog_cancel(){if((arguments.length>0&&arguments[0])||!main.splash){'dialog'.e().style.display='none';'doc'.e().style.display='none';docs.displayed=false;'grey_out'.e().style.display='none';'select_service'.e().style.display='none';main.splash=false}};function grey_out(){'grey_out'.e().style.display='block'};var dialog_ctls;function dialog_ctl(j,t){dialog_ctls.push({j:j,t:t})};function dialog_ctl_clear(){dialog_ctls=[]};function dialog_ctl_html(){var i,c='',d=dialog_ctls;for(i=0;i<d.length;i++)c+='<button onclick="'+d[i].j+'">'+d[i].t+'</button>';return c};function dialog_ctl_put(){'main_dialog_ctl'.e().innerHTML=dialog_ctl_html()};function dialog(header,body){dialog_cancel();var el='dialog'.e();var html='';if(header!='')html='<div id="dialog_header">'+header+'</div>';html+='<div id="dialog_body">'+body+'</div>';dialog_ctls=[];if(arguments.length<3)dialog_ctl('dialog_cancel(true)','OK');else{if(arguments.length==4)dialog_ctl(arguments[3],'OK');if(arguments[2])dialog_ctl('dialog_cancel(true)','Cancel')}html+='<div id="main_dialog_ctl" class="dialog_ctl">'+dialog_ctl_html()+'</div>';el.innerHTML=html;grey_out();el.style.display='block'};var main_info_shown=false;function main_info(body,menu,op){grey_out();docs.show_menu=(arguments.length>1&&arguments[1]!='');var h='',el;if(!op)var op={cancel:'Close'};docs.resize(page_width(),page_height());el='doc_menu'.e();if(!docs.show_menu)el.style.display='none';else{el.innerHTML=menu;el.style.display='block'}if(op.info)h+=op.info;if(op.ok)h+='<button onclick="'+op.ok_js+'">'+op.ok+'</button>';if(op.cancel)h+='<button onclick="dialog_cancel(true)">'+op.cancel+'</button>';'doc_ctl'.e().innerHTML=h;'doc_font'.e().innerHTML=(op.cancel?'A':'');'doc_close'.e().innerHTML=(op.cancel?'x':'');'doc'.e().style.display='block';docs.displayed=true;el='doc_body'.e();el.innerHTML=body;el.scrollTop=0;main_info_shown=true};function show_doc(){if(!main_info_shown)docs.whats_this();else{grey_out();'doc'.e().style.display='block';docs.displayed=true}};var docs={have:{},show_menu:false,fontlevel:docsfont,displayed:false};docs.init=function(){docs.docs_menu=[["What's MeechMe?",'whatsthis'],['People &amp; Places','basics'],['Talking','talk'],['Cash &amp; Earnings','cash'],['Stocks','stocks'],['Change Owner','changeowner'],['Privacy','privacy'],['Terms of Service','tos'],['Contact','contact']];docs.outer='doc'.e().style;docs.inner='doc_body'.e().style;docs.menu='doc_menu'.e().style;docs.itop=css_get_percent('#doc_body','top');docs.iheight=css_get_percent('#doc_body','height');docs.ileft=css_get_percent('#doc_body','left');docs.iwidth=css_get_percent('#doc_body','width');docs.otop=css_get_percent('#doc','top');docs.oheight=css_get_percent('#doc','height');docs.oleft=css_get_percent('#doc','left');docs.owidth=css_get_percent('#doc','width');docs.mwidth=css_get_px('#doc_menu','width',0)+css_get_px('#doc_menu','borderWidth',1)+css_get_px('#doc_menu','borderWidth',3)+css_get_px('#doc_menu','padding',1);docs.grey='grey_out'.e().style;docs.header='header_container'.e().style};docs.changefont=function(){docs.fontlevel=(docs.fontlevel%3)+1;'doc'.e().className='docfont'+docs.fontlevel;set_cookie('docsfont',docs.fontlevel,365)};docs.resize=function(w,h){docs.header.width=w+'px';docs.grey.width=w+'px';docs.grey.height=h+'px';var s=docs.outer,ot,oh,ol,ow;ot=Math.round(h*docs.otop/100.0);oh=Math.round(h*docs.oheight/100.0);ol=Math.round(w*docs.oleft/100.0);ow=Math.round(w*docs.owidth/100.0);s.top=ot+'px';s.height=oh+'px';s.left=ol+'px';s.width=ow+'px';var bt,bh,bl,bw;bt=Math.round(oh*docs.itop/100.0)+'px';bh=Math.round((oh-20)*docs.iheight/100.0)+'px';bl=Math.round(ow*docs.ileft/100.0);bw=Math.round(ow*docs.iwidth/100.0);if(docs.show_menu){s=docs.menu;s.top=bt;s.height=bh;s.left=bl+'px';bl+=docs.mwidth;bw-=docs.mwidth}s=docs.inner;s.top=bt;s.height=bh;s.left=bl+'px';s.width=bw+'px'};docs.show=function(name){if(!docs.have[name]){docs.get(name);return}var mh='<div id="doc_menu_hdr">MeechMe!</div><div id="doc_menu2">',m=docs.docs_menu;for(var i=0;i<m.length;i++)mh+='<a class="user" href="javascript:docs.show(\''+m[i][1]+'\')">'+m[i][0]+'</a><br>';main_info('<div id="doc_inner">'+docs.have[name]+'</div>',mh+'</div>')};docs.get=function(name){active.ajax.get('getdoc.php','doc='+name,docs.get_response)};docs.get_response=function(success,response){if(success){if(response.status!='ok')alert('There was an error reading the document file.');else{docs.have[response.name]=response.doc;docs.show(response.name)}}};docs.whats_this=function(){docs.show('whatsthis')};docs.basics=function(){docs.show('basics')};docs.talk=function(){docs.show('talk')};docs.cash=function(){docs.show('cash')};docs.stocks=function(){docs.show('stocks')};docs.privacy=function(){docs.show('privacy')};docs.tos=function(){docs.show('tos')};docs.change_owner=function(){docs.show('changeowner')};docs.contact=function(){docs.show('contact')};var x=css_get_percent('#doc_body','top');x=css_get_percent('#doc_body','height');x=css_get_percent('#doc_body','left');x=css_get_percent('#doc_body','width');x=css_get_percent('#doc','top');x=css_get_percent('#doc','height');x=css_get_percent('#doc','left');x=css_get_percent('#doc','width');x=css_get_px('#doc_menu','width',0)+css_get_px('#doc_menu','borderWidth',1)+css_get_px('#doc_menu','borderWidth',3);x=css_get_px('#doc_menu','padding',1);x=css_get_percent('#note_edit','width');x=css_get_percent('#editnote','width');x=css_get_percent('#editwelcome','width');x=css_get_px('.editicons','left');x=css_get_px('.editicons','width');function shadow(p,type){this.p=p;var s=document.createElement('div');this.s=s;s.className='shadow';s.style.visibility='hidden';if(type){if(type=='menu'){s.onmouseover=function(){menus.show()}}}document.body.appendChild(s)};shadow.prototype.show=function(){var s=this.s.style,p=get_pos(this.p);s.top=(p.y+3)+'px';s.left=(p.x+3)+'px';s.width=this.p.offsetWidth+'px';s.height=this.p.offsetHeight+'px';s.visibility='visible'};shadow.prototype.hide=function(){this.s.style.visibility='hidden'};shadow.prototype.setz=function(z){this.s.style.zIndex=z};page.get_menus=function(l){var m,b=new menu_bar('page','');this.menu_bar=b;b.add(new menu('main','main_menu','Main'));menus.new_item('w','About',page.welcome).desc='About this room';notes.get_menus(this.menu_bar);active.get_menus(this.menu_bar);if(user.logged_in())menus.new_item('h','History',page.show_history,page.refresh_history).hidden=true;if(admin){m=new menu('admin','admin_menu','Admin');b.add(m);m.add(new menu_item('settings','Room settings',page.edit_room));m.add(new menu_item('links','Links',page.links));m.add(new menu_item('ban','',null));m.add(new menu_item('bn','Banned list',active.banned,active.refresh_banned));if(!page.displayed.same(page.displayed.admin))m.add(new menu_item('delroom','Delete this room',page.delete_room))}this.fill_menu(l&&l.type!='n'&&l.type!='g'&&l.type!='f')};page.controls=function(){page.new_controls();page.notelist_controls();page.table_controls();this.fill_controls();var l=page.notelist;if(page.mode_ctl&&l&&l.displayed()){var h='',y=8;function m(n){h+='<div class="mode_select mode_'+n+'" style="top:'+y+'px" onclick="notelist.set_mode('+l.id+",'"+n+'\')" title="View as '+room_types[n].toLowerCase()+'"></div>';if(n==l.mode||n=='forum'&&l.mode=='forum2')h+='<div class="mode_selected" style="top:'+(y+12)+'px"></div>';y+=40};if(!l.namelist()||l.indirect){m('updates');if(l.thread==0)m('forum');m('chat')}m('photo');m('video');m('geo');m('room');if(l.type=='n'||l.type=='g'||l.type=='f'||l.type=='fo'||l.type=='fu'){h+='<div class="mode_select mode_indirect" style="top:'+y+'px" onclick="notelist.set_indirect('+l.id+','+!l.indirect+')" title="'+(l.indirect?'Dis':'En')+'able updates from people &amp; rooms"></div>';if(l.indirect)h+='<div class="mode_selected" style="top:'+(y+12)+'px"></div>'}'mode_ctl'.e().innerHTML=h}};page.clear=function(){page.menu_bar.deactivate();notes.clear();active.clear()};page.name=function(){if(page.displayed)return page.displayed.name();return title};page.buysell_settings=function(){if(!user.logged_in())return;if(!users.get_user().portfolio){user.get_portfolio(users.get_user(),page.buysell_settings);return}stocks.buysell_settings(page.displayed.stock)};page.refresh_notelist=function(){page.notelist.refresh()};user.refresh_notelist=function(){user.notelist.refresh()};page.page_link=function(id,label,link){return'<tr><td><div class="page_icon" id="'+id+'" onclick="'+link+'">&nbsp;</div></td><td><div class="pl_notsel" onmouseover="this.className=\'pl_sel\'" onmouseout="this.className=\'pl_notsel\'" onclick="this.className=\'pl_notsel\';'+link+'">'+label+'</div></td></tr>'};page.welcome_h=function(){var u=page.displayed;if(!welcome||welcome=='')welcome='[size=120]Welcome to '+u.name()+(u.is_person()?"'s place":'')+'![/size]';var h='<div class="'+(u.photo?'welcomemsg_photo">'+u.photo.page_html():'welcomemsg">');h+=welcome.br2nl().to_html();if(u.photo)h+='<div style="clear:both">&nbsp;</div>';return h+'</div>'};page.welcome=function(){page.get_menus();var u=page.displayed,h=page.welcome_h()+'<div class="page_links"><table>';var l=page.page_link;if(!user.logged_in())h+=l('login_icon',"Sign in",'user.login()');h+=l('updates_icon','News and updates','notes.display_notices()');h+=l('chat_icon','Chat with everyone','notes.display_general()');h+=l('chat_icon','Chat with your friends','notes.display_friends()');h+=l('users_icon',"Who's here now",'active.update()');h+=l('users_icon',"Who's been here before",'active.display_past()');var s=u.stock;if(s)h+=l('dollars_icon',"Who owns stock in this place",'active.show_holders()');h+='</table></div>';if(s){h+='<br><table><tr><td>Stock value:</td><td>'+dollars(s.stock_value)+'</td></tr><tr><td>Earnings:</td><td>';h+=(s.earnings<0?'-':dollars(s.earnings)+' / week')+'</td></tr></table>'}page.fill_html(h);menus.set_active('w');page.controls();main.resize()};page.gp_response=function(success,response,a){if(success){alert('Guest posting permissions have been set.');if(page.displayed.same(a.u))main.session.guestpost=guestpost=parseInt(a.p)}};page.change_owner=function(){var u=users.get_user();if(u.is_guest())alert('Please log in to the account you wish to be the new owner');else{page.co_type='page';var p=page.displayed;if(p.service!='web')alert("You can't change the owner of a person's place");else{var h='Change the owner to '+u.short_name()+' of:<br><br>';h+='<input type="radio" name="co_type" value="page" onclick="page.co_type=this.value" checked="checked"> this page only<br>';if(p.admin&&!p.admin.is_no_owner())h+='<input type="radio" name="co_type" value="stock" onclick="page.co_type=this.value"> all pages owned by '+p.admin.short_name()+' at '+host+'<br>';h+='<input type="radio" name="co_type" value="unowned" onclick="page.co_type=this.value"> all unowned pages at '+host+'<br>';h+='<br>Create an empty file with this name and upload it to '+host+'<br>';h+='<input style="width:90%" value="meechme_verify_'+u.hash1+u.hash2+'.txt"><br><br>Click OK after you have uploaded the file.';dialog_cancel();dialog('Change page owner',h,true,'page.co_ok()')}}};page.co_ok=function(){if(confirm('Are you sure you want to change the owner to\n'+users.get_user().name())){dialog_cancel();this.ajax.get('changeowner.php','what='+page.co_type,page.co_response)}};page.co_response=function(success,response){if(success){var n=parseInt(response.n);if(n>=0)alert(n+' page(s) have changed owner. This will take effect the next time you log in this page.');else alert(response.msg)}};page.email_verify=function(){var u=users.get_user();if(u.is_guest())alert('Please log in to the account you wish to be the new owner');else{var e='contactemail'.e().value.trim();if(e=='')alert("Please enter the page's contact email");else if(confirm('Are you sure you want to change the owner to\n'+u.name())){dialog_cancel();this.ajax.get('emailverify.php','email='+encodeURIComponent(e),page.ve_response)}}};page.ve_response=function(success,response){if(success)alert('Your request to change the page owner has been received\nand will be processed as soon as possible')};page.show_history=function(){if(!users.get_user().visit_history){page.refresh_history();return}if(!main.visit_user('h'))return;users.get_data(page.show_history2)};page.refresh_history=function(){page.ajax.get('getvisithistory.php','',page.refresh_history_response)};page.refresh_history_response=function(success,response){if(success){var h=[];users.get_user().visit_history=h;for(var i in response){var x=response[i].parse_vars();h.push({u:users.addtbl(x.hash1,x.hash2),t:parseInt(x.t)})}page.show_history()}};page.show_history2=function(){var i,u,h=users.get_user().visit_history,t=active.table;t.clear('h');t.add_header('Place','td_user');t.add_header('Last Visited','td_left');t.add_header('Stock value','td_right');t.add_header('Earnings','td_right');for(i=0;i<h.length;i++){u=h[i].u;if(u)t.add_row([new td_user(u,true),new td_ago(h[i].t),'stockvalue','earnings'])}t.display(1)};page.editroom=function(u,o,p){var e={},w,c,isp=(u&&u.is_person()),h,rm,m;if(u){m=u.room;e.text=m.welcome;e.title=u.name();if(!isp)e.photo=u.photo}else rm=user.displayed.rooms.room_mode;o.drop=function(w,t,r){var el=story.getel(t,r);if(t=='photo')story.drop(w,t,r);else if(t=='video')story.drope(w,'photo',new photo({small:el.thumb}));else story.drope(w,t,el,true)};w=story.edit('editroom',(u?'Edit: '+u.name():'Create new room'),!isp,e,p,notes.preview,o);c=w.content;c.u=u;c.gp=(m&&m.guestpost);c.mode=(m?m.updates_mode:(rm&&rm!='deleted'?rm:'updates'));c.post=(m?m.post:'owner');c.sv=c.visit=(m?m.visit:'anyone');c.indirect=(m?m.indirect:false);if(!u||!m||m.updates_mode!='group'){h='<div class="room_option"><b>Select room type:</b><br>';if(!u)h+='<input type="radio" name="roomtype" value="group" onclick="page.editroom_setmode(\''+w.name+"',this.value)\""+(c.mode!='group'?'':' checked="checked"')+"> Group<br>";for(var i in room_types)h+='<input type="radio" name="roomtype" value="'+i+'" onclick="page.editroom_setmode(\''+w.name+'\',this.value)"'+(i!=c.mode?'':' checked="checked"')+'> '+room_types[i]+"<br>";h+='</div><br><input type="checkbox" onclick="win.set_val(\''+w.name+"','indirect',this.checked)\"";if(c.indirect)h+=' checked="checked"';h+='> Get updates from referenced people and rooms';w.add_tab('Type',h)}w.rename_tab('Main','About/Save');w.add_tab('Privacy',page.editroom_privacy(w));w.put_tabs();if(!u)w.set_tab('Type')};page.editroom_privacy=function(w){var c=w.content,v,n,k;var h='<div class="room_option"><b>Who can visit this room</b><br>';function po(o,t){h+='<input type="radio" name="'+n+'" value="'+o+'"'+(o==v?' checked="checked"':'')+' onclick="'+k+'">'+t+'<br>'};v=c.visit;n='setvisit';k="page.editroom_setvisit('"+w.name+"',this.value)";po('anyone','Anyone');po('friends','My friends');po('owner','Just me');h+='</select></div><div class="room_option"><b>Who can post in the main update / gallery / discussion area</b><br>';v=c.post;n='setpost';k="win.set_val('"+w.name+"','post',this.value)";po('signedin','Anyone signed in');po('friends','My friends');po('owner','Just me');h+='</select></div>';h+='<input type="checkbox" onclick="win.set_val(\''+w.name+"','gp',this.checked)\"";if(c.gp)h+=' checked="checked"';h+='> Allow guests to post in the general discussion area';return h};page.editroom_setmode=function(n,m){var v,p,w=win.get(n);var c=w.content;c.mode=m;if(m=='photo'||m=='video'||m=='geo'){p=user.ispublic(m=='geo'?'geolocation':m+'s');if(p==2)v='anyone';else if(p==1)v='friends';else v='owner'}else v=c.sv;if(v!=c.visit){c.visit=v;w.update_tab('Privacy',page.editroom_privacy(w))}};page.editroom_setvisit=function(n,v){var c=win.get(n).content;c.sv=c.visit=v};page.edit_room=function(x,u){page.editroom((u?u:page.displayed),{},page.edit_room2)};page.edit_room2=function(c){var w=c.elements.text,t=c.elements.title,f=c.elements.photo,u=c.u;if(u&&u.is_person())t=u.name();if(!t)alert('A title for the room is required');else{var p='h1='+u.hash1+'&h2='+u.hash2+'&page=this';if(f)p+='&photo='+encodeURIComponent(f.el_data());page.ajax.post('roomsettings.php','',p+'&title='+encodeURIComponent(t)+'&welcome='+encodeURIComponent(w)+'&gp='+(c.gp?1:0)+'&mode='+c.mode+'&post='+c.post+'&visit='+c.visit+'&indirect='+(c.indirect?1:0),page.edit_room_response,c)}};page.edit_room_response=function(success,r,c){if(!success)return;story.clear('editroom');var i,s,d,dr,u=c.u,e=c.elements;var p=r.page,su=u.stock,w=e.text,f=e.photo,o,reset,l;if(!u.is_person()){u.display_name=e.title;u.photo=f}if(o=u.room){reset=(o.updates_mode!=c.mode&&(o.updates_mode=='room'||c.mode=='room'));o.welcome=w;o.guestpost=c.gp;o.updates_mode=c.mode;o.post=c.post;o.visit=c.visit;o.indirect=c.indirect}for(i in sessions){s=sessions[i];d=s.displayed;if(d.same(u)||(p=='all'&&d.stock.same(su))){if(!d.is_person())d.display_name=e.title;title=e.title;dr=d.room;dr.welcome=w;dr.guestpost=c.gp;dr.updates_mode=c.mode;dr.post=c.post;dr.visit=c.visit;dr.indirect=c.indirect;if(u&&!u.is_person())s.displayed.photo=f}};if(l=u.notices){if(reset)l.reset();l.set_flags(u);l.set_mode(c.mode)}if(page.displayed.same(u)||(p=='all'&&page.displayed.stock.same(su))){welcome=w;guestpost=c.gp;page.welcome()}user.get_menus();if(o&&o.parent>0){p=o.getparent();if(p&&user.displayed.same(p)&&p.rooms&&p.rooms.displayed()){p.rooms.room_mode=u.room.updates_mode;p.rooms.display()}}};page.move_room=function(u,p){if(confirm('Move this room?'))user.ajax.get('setparent.php','u='+u.uid+'&p='+p,function(s){if(s){var x;if(x=u.room.getparent())x.rooms=null;if(x=users.getuid(p))x.rooms=null;u.room.parent=p;notes.display_rooms()}})};page.delete_room=function(x,u){if(!u)var u=page.displayed;if(confirm('Are you sure you want to delete this room\nand all notes and rooms that belong to it?'))page.ajax.get('deleteroom.php','id='+u.uid,page.delete_room_response,u)};page.delete_room_response=function(s,r,u){if(s){alert('The room has been deleted. It will be available\nfor undeleting for the next 2 hours.');u.room.deleted=true;var p=u.room.getparent();if(p){if(g=p.rooms)g.room_mode='deleted';if(g&&g.displayed())g.display()}user.get_menus();if(u.same(page.displayed))main.log_into(u.admin.uid)}};page.undelete_room=function(id){page.ajax.get('undeleteroom.php','id='+id,page.undelete_room_response,id)};page.undelete_room_response=function(s,r,id){if(s){alert('The room has been undeleted.');var u=users.getuid(id);u.noretrieve=false;u.room.deleted=false;var p=u.room.getparent(),g;if(p&&(g=p.rooms)&&g.displayed()){g.room_mode=u.room.updates_mode;g.display()}user.get_menus();users.get_data(function(){main.log_into(id)})}};function room(){};room.prototype.set=function(d){var r=this;r.parent=parseInt(d.parent);r.welcome=(d.welcome?d.welcome:'');r.guestpost=parseInt(d.guestpost);r.updates_mode=d.updatesmode;r.post=d.updatespost;r.visit=d.canvisit;r.indirect=parseInt(d.indirect);r.last=parseInt(d.lastpost_t);r.visited=(d.loggedin?parseInt(d.loggedin):0);r.deleted=(d.status=='deleted');r.welcome.get_items()};room.prototype.getparent=function(){return users.getuid(this.parent)};room.prototype.displayed=function(){var u=this.getparent();return(u&&u.same(user.displayed))};function links(u,g){this.list=[];this.room=u;this.get(g)};links.prototype.get=function(g){var t=this;var l=t.list,u=t.room;user.ajax.get('getlinks.php','room='+t.rid(),function(s,r){if(s){var i,d;for(i in r){d=r[i].parse_vars();d.room=(d.room>0?users.add(d.room):null);d.offline=(d.offline=='1');l.push(d)}l.sort(function(a,b){function c(a,b){return(a<b?-1:(a>b?1:0))};var r=c(a.service,b.service);if(r==0){r=c(a.displayname,b.displayname);if(r==0)r=c(a.name,b.name)}return r});users.get_data(function(s){if(s){if(u)u.links=t;else user.links=t;if(g)t.go()}})}})};links.prototype.go=function(){var l=this,w;if(l.room){var h='<div class="linkstitle">Services linked to '+l.room.short_name()+'</div><div class="pagelinks">'+l.html()+'</div>';w=this.w=win.open('links',h,{top:'100px',left:'200px'},{style:'popup'});w.rename_tab('Main','Links');w.add_tab('Attach link','<div class="linkstitle">Attach link to '+l.room.short_name()+'</div><div class="pagelinks">'+user.links.html(true,l.room.uid)+'</div>');w.put_tabs()}else main_info(l.html(user.unattached_links),user.settings_menu(user.unattached_links?3:2))};links.prototype.rid=function(){return(this.room?this.room.uid:0)};links.prototype.html=function(un,at){var r=this.rid(),l=this.list,h='<div class="link_settings">',i;for(i=0;i<l.length;i++){if((un&&l[i].room)||(!un&&!l[i].room))continue;h+='<table class="link" cellspacing="0" cellpadding="0"><tr><td><div style="width:16px;height:16px;background-image:url(\'gfx/'+l[i].service+'.png\')"></td><td>';h+='<div style="margin-left:0.5em"><span class="linkhover" onclick="user.link_open('+r+','+i+')" title="Open external room">'+service_name(l[i].service)+' > '+l[i].displayname+' > '+l[i].name+'</span>';if(!r){h+='<br><span class="linkroom"';if(l[i].room)h+=' onclick="main.log_into(\''+l[i].room.uid+'\')" title="Visit room">attached to '+l[i].room.name();else h+='">not attached to a room';h+='</span>'}if(at){h+='<div class="linkbuttons"><div class="linkbutton" onclick="page.link_edit(\'c\','+r+','+i+','+at+')">Attach'}else{h+='<br><span class="linkgo">';if(l[i].lastcheck>0)h+='last update: '+ago(l[i].lastcheck,true)+'; ';if(un)h+='updates disabled while unattached</span><div class="linkbuttons">';else if(l[i].fails==0&&l[i].nextcheck>0){if(l[i].offline)h+='next scheduled update: '+(l[i].nextcheck<=now()+5*60?'any minute now':ago(l[i].nextcheck,true));else h+='auto updating disabled';h+='</span><div class="linkbuttons">';h+='<div class="linkbutton" onclick="page.link_edit(\'u\','+r+','+i+')">Update now</div>'}else{h+='access to the link has expired</span>';h+='<div class="linkbuttons">';h+=' <div class="linkbutton" title="auto updating will not be enabled" onclick="user.import_go(\''+l[i].type.pluralize()+"','"+l[i].service+'\')">Refresh for now</div>';h+=' <div class="linkbutton" title="auto updating will be enabled" onclick="user.import_go(\''+l[i].type.pluralize()+'\',\''+l[i].service+'\',true)">Refresh for longer</div>'}if(un)h+='<div class="linkbutton" onclick="page.link_edit(\'d\','+r+','+i+')">Delete</div>';else{h+='<div class="linkbutton" onclick="page.link_edit(\'c\','+r+','+i+',0)">Unattach</div>';h+='<div class="linkbutton" onclick="';if(l[i].offline)h+='page.link_edit(\'a\','+r+','+i+')" title="disable auto updating while offline">Disable auto';else h+="user.import_go('offline','"+l[i].service+'\',true)" title="enable auto updating while offline">Enable auto';h+='</div>'}}h+='</div><div style="clear:both"></div></div></td></tr></table>'}return h+'</div>'};page.link_obj=function(r){return(r?users.getuid(r):user)};page.link_edit=function(f,r,i,nr){var l=page.link_obj(r).links,g=true;if(f=='d')g=confirm("Are you sure you want to delete this link and all notes received from this link?");else if(f=='c'&&nr>0)g=confirm("Are you sure you want to attach this link and all its note to this room?");else if(f=='c'&&nr==0)g=confirm("Are you sure you want to unattach this link from this room?");if(g){user.ajax.get('editlink.php','f='+f+'&l='+l.list[i].id+(f=='c'?'&r='+nr:''),function(s){if(s){if(r||nr)new links();new links((nr?users.getuid(nr):l.room),true)}})}};page.links=function(){if(!user.links)new links();var l=page.displayed.links;if(l)l.go();else new links(page.displayed,true)};function _user(hash1,hash2,known_user,noretrieve){this.hash1=hash1;this.hash2=hash2;this.known=known_user;this.noretrieve=noretrieve;this.retrieved=(hash1==userhash1&&hash2==userhash2);this.retrieve_tries=6;this.last_login=0;this.banned=false;this.cash=0;this.earnings=-1;this.stock_value=-1;this.profile={};this.following=this.follower=false};_user.prototype.get_photo=function(){var t=this,p=this.profile;if(t.photo)delete t.photo;if(p.image||p.smallimage||p.bigimage)t.photo=new photo({medium:p.image,small:p.smallimage,big:p.bigimage});else if(t.is_person()){if(p.sex&&p.sex=='F')t.photo=new photo({medium:'gfx/femalemedium.png',small:'gfx/femalesmall.png',big:'gfx/femalebig.png'});else t.photo=new photo({medium:'gfx/manmedium.png',small:'gfx/mansmall.png',big:'gfx/manbig.png'})}};_user.prototype.anonymous=function(){if(this.is_guest()||!this.is_person())return false;return(!this.display_name||this.display_name=='anonymous'||!this.profile||!this.profile.servicepage)};_user.prototype.name=function(){if(!this.display_name)return'Unknown user';if(this.service=='web'||this.service=='')return this.display_name;return this.display_name+' @ '+service_name(this.service)};_user.prototype.strong_name=function(){return'<strong>'+this.display_name+'</strong> @ '+service_name(this.service)};_user.prototype.short_name=function(){if(!this.display_name)return'Unknown user';var n=this.display_name;if(this.service=='web'||this.service==''){if(n.length>40)n=n.substr(0,37)+'...'}else{if(n.length>25)n=n.substr(0,22)+'...';n+=' @ '+service_name(this.service)}return n};_user.prototype.el_title=function(){return this.name()};_user.prototype.el_text=function(){if(this.is_person())return(this.profile.about?this.profile.about:'');return(this.room?this.room.welcome:'')};_user.prototype.el_id=function(){return this.uid};_user.prototype.el_data=function(){return this.uid+','+this.display_name.substr(0,20)};_user.prototype.events=function(){return this.onmouseover(true)+this.oncontextmenu()+this.onmousedown()+' onclick="'+this.linkjs(false)+'"'};_user.prototype.linkjs=function(w,m){var is_place,menu;if(w==='both'){is_place=true;menu=",'both'"}else{is_place=w;menu=(m?",'"+m+"'":'')}return(is_place||this.service=='web'?'main.log_into(\''+this.hash1+"','"+this.hash2+"'"+menu+')"':'user.displayi('+this.id+menu+')"')};_user.prototype.link=function(css_class,isplace,pp,name,menu){if(!this.display_name)return'unknown user';var a='<a href="javascript:'+this.linkjs(isplace,menu);if(css_class!='')a+=' class="'+css_class+'"';if(pp&&(this.photo||this.micro_profile()!=''))a+=this.onmouseover();a+=this.oncontextmenu()+this.onmousedown();return(a+'>'+(name&&name!=''?name:this.short_name())+'</a>')};_user.prototype.embed_link=function(text,fip,sn){if(!this.display_name)return'unknown user';var is_place=(fip||this.service=='web');var a='<span class="embed_';if(is_place)a+='place" onclick="main.log_into(\''+this.hash1+"','"+this.hash2+'\')"';else a+='person" onclick="user.displayi('+this.id+')"';if(this.photo||is_place||this.micro_profile()!='')a+=this.onmouseover(sn);a+=this.oncontextmenu()+this.onmousedown();return(a+'>'+text+'</span>')};_user.prototype.onclick=function(p){var t=this;if(p||!t.is_person())return' onclick="main.log_into(\''+t.hash1+"','"+t.hash2+'\')"';return' onclick="user.displayi('+this.id+')"'};_user.prototype.onmouseover=function(m){return' onmouseover="user.pop_profile'+(m?'_map':'')+'(this,'+this.id+')" onmouseout="main.hide_info()"'};_user.prototype.onmousedown=function(){return' onmousedown="win.startdrag(this,event,\''+(this.is_person()?'person':'room')+'\','+this.id+');return false"'};_user.prototype.oncontextmenu=function(){return' oncontextmenu="menus.context(event,'+this.id+');return false"'};_user.prototype.user_link=function(label,link){return'<div class="userlink" onclick="'+link+'">'+label+'</div>'};_user.prototype.prof_row=function(l,v){return'<tr><td class="prof_label">'+l+'</td><td class="prof_value">'+v+'</td></tr>'};_user.prototype.to_html=function(){if(!this.display_name)return'This user has decided not to participate in MeechMe, so their profile is no longer visible.';var prof=this.profile,h='<div id="user_profile">';var r=this.prof_row;if(this.photo)h+=this.photo.user_html();if(prof.about)h+='<p><b>About me:</b> '+prof.about.html_chars().nl2br()+'</p>';h+='<div style="clear:both"></div></div>';if(this.is_guest()||this.is_no_owner())return h;h+='<table cellspacing="0" cellpadding="0" id="userproftbl"><tr>';h+='<td id="useractions">';h+='<div class="userprofhdr">View</div>';h+=this.user_link('Updates',"main.log_into('"+this.hash1+"','"+this.hash2+"','u')");if(this.profile.favorites)h+=this.user_link('Favorites','user.display_favorites()');if(this.profile.resume)h+=this.user_link('Work&nbsp;&amp;&nbsp;education','user.display_resume()');h+=this.user_link('Portfolio','user.display_portfolio()');h+=this.user_link('Visitors',"main.log_into('"+this.hash1+"','"+this.hash2+"','vp')");h+='<br><div class="userprofhdr">Interact</div>';h+=this.user_link('Chat&nbsp;with&nbsp;everyone',"main.log_into('"+this.hash1+"','"+this.hash2+"','d')");h+=this.user_link('Chat&nbsp;with&nbsp;your&nbsp;friends',"main.log_into('"+this.hash1+"','"+this.hash2+"','df')");h+=this.user_link('Trade stocks',"main.log_into('"+this.hash1+"','"+this.hash2+"','sh')");h+='</td><td id="userdata">';var ph='';if(prof.sex||prof.age){var l='',v='';if(prof.sex){l='Sex';v=prof.sex;if(prof.age){l+=' / ';v+=' / '}}if(prof.age){l+='Age';v+=prof.age}ph+=r(l,v)}if(prof.location)ph+=r('Location',prof.location.html_chars());if(prof.occupation)ph+=r('Occupation',prof.occupation.html_chars());if(prof.relationship)ph+=r('Relationship<br>status',prof.relationship.html_chars());if(prof.interests)ph+=r('Interests',prof.interests.html_chars());if(ph!='')h+='<div class="userprofhdr">Profile</div><table>'+ph+'</table><br>';h+='<div class="userprofhdr">MeechMe $$$</div><table>';h+=r('Stock value',dollars(this.stock_value));h+=r('Earnings',this.earnings>=0?dollars(this.earnings)+' / week':'-');h+=r('Cash',dollars(this.cash));h+='</table>';h+='</td></tr></table>';if(this.visits){var v=this.visits;if(v.last)h+='<br>Last place visited: '+v.last.profile_text();if(v.note)h+='<br>Last note posted: '+v.note.profile_text()}return h};_user.prototype.micro_profile=function(){var p=this.profile,h='';if(p.sex)h+=p.sex;if(p.age)h+=p.age;if(p.location){if(h!='')h+=', ';h+=p.location}return h};_user.prototype.mini_profile=function(nl){if(!nl)var nl='<br>';function g(){return(h==''?'':nl)};var p=this.profile,h=this.micro_profile();if(p.about)return p.about.maxlength(250).html_chars();if(p.relationship)h+=g()+p.relationship.capitalize();if(p.occupation)h+=g()+p.occupation.capitalize();if(p.interests)h+=g()+'Likes: '+p.interests.nl2space().maxlength(35);return h};_user.prototype.logged_into=function(){return(this.hash1==urlhash1&&this.hash2==urlhash2)};_user.prototype.is_user=function(){return(user.logged_in()&&this.hash1==userhash1&&this.hash2==userhash2)};_user.prototype.is_admin=function(){return(this.hash1+this.hash2==admin_id)};_user.prototype.is_friend=function(){return(this.following&&this.follower)};_user.prototype.isf=function(){return'&isf='+(this.is_friend()||this.is_user()?1:0)};_user.prototype.is_person=function(){return(this.service&&this.service!='web')||this.is_guest()};_user.prototype.is_external=function(){var s=this.profile.servicepage;return(this.is_person()||(s&&s!='undefined'&&s.indexOf(site_main)<0))};_user.prototype.is_banned=function(){var s=page.displayed.stock;if(s){var l=s.banned;if(l){for(var i=0;i<l.length;i++)if(this.same(l[i]))return true}}return false};_user.prototype.is_guest=function(){return(this.hash1==z16&&this.hash2==z16)};_user.prototype.is_no_owner=function(){return(this.hash1=='ffffffffffffffff'&&this.hash2=='ffffffffffffffff')};_user.prototype.is_meechme=function(){return(this.stock&&this.stock.hash1=='dd3c23403feaacd6'&&this.stock.hash2=='25217fbf3cecdcd3')};_user.prototype.same=function(u){return(this.hash1==u.hash1&&this.hash2==u.hash2)};_user.prototype.displayed=function(){return this.same(user.displayed)};_user.prototype.copylink=function(){var tag=(this.service=='web'||(arguments.length>0&&arguments[0])?'place':'person');main.clipboard('['+tag+'='+this.hash1+this.hash2+']'+this.name()+'[/'+tag+']')};_user.prototype.set_room=function(d){if(!this.room)this.room=new room();this.room.set(d)};var users={ajax:user_ajax,idx:[],uid:{},hash:{}};users.get=function(h1,h2){return users.hash[h1+h2]};users.getuid=function(i){return users.uid[i]};users.geti=function(i){return users.idx[i]};users.get_user=function(){return users.get(userhash1,userhash2)};users._add=function(h1,h2,known_user,noretrieve){var i,x,u=(h2?users.hash[h1+h2]:users.uid[h1]);if(!u)for(i=0;i<users.idx.length;i++){x=users.idx[i];if((h2&&x.hash1==h1&&x.hash2==h2)||(!h2&&x.uid==h1)){u=x;break}}if(u){if(known_user)u.known=true;u.noretrieve=(u.noretrieve&&noretrieve)}else{u=new _user(h1,h2,known_user,noretrieve);u.id=users.idx.length;users.idx.push(u)}if(h2)users.hash[h1+h2]=u;else users.uid[h1]=u;return u};users.add=function(hash1,hash2){return this._add(hash1,hash2,true,false)};users.addtbl=function(hash1,hash2){return this._add(hash1,hash2,true,true)};users.add_data_obj=function(u,v){var v=users.add_data(u.uid,u.hash1,u.hash2,u.service,u.guid,u.displayname,u.profile,parseFloat(u.cash),parseFloat(u.earnings),parseFloat(u.stockvalue),v);v.following=(u.fing==1);v.follower=(u.fer==1);return v};users.add_data=function(i,h1,h2,s,g,d,p,c,e,sv,v){var id=''+i;var ui=users.uid[id],uh=users.hash[h1+h2];if(ui){users.add_data2(ui,id,h1,h2,s,g,d,p,c,e,sv,v);if(!uh)users.hash[h1+h2]=ui}if(uh){if(uh!=ui){users.add_data2(uh,id,h1,h2,s,g,d,p,c,e,sv,v);if(ui)users.idx[ui.id]=uh}if(!ui)users.uid[id]=uh;return uh}if(!ui){ui=users.add_data2(users.add(h1,h2),id,h1,h2,s,g,d,p,c,e,sv,v);users.uid[id]=ui;users.hash[h1+h2]=ui}return ui};users.add_data2=function(u,uid,hash1,hash2,service,guid,display_name,profile_str,cash,earnings,stockvalue,visits){u.uid=uid;u.hash1=hash1;u.hash2=hash2;u.service=service;u.guid=guid;u.cash=cash;u.earnings=earnings;u.stock_value=stockvalue;if(visits)u.visits=visits;u.display_name=display_name;var profile=profile_str.parse_vars();for(i in profile)if(profile[i]=='')delete profile[i];if(!u.profile)u.profile=profile;else{for(i in profile)u.profile[i]=profile[i]}u.get_photo();if(service!='web'){u.stock=u.admin=u}else if(profile['type']&&profile['type']=='stock')u.stock=u;u.retrieved=true;return u};users.add_profile=function(h1,h2,profile){var u=users.get(h1,h2);if(u)return u;u=this._add(h1,h2,false,false);u.profile={};u.cash=-1;for(var i in profile){if(i=='service'||i=='guid'||i=='display_name')u[i]=profile[i];else u.profile[i]=profile[i]}u.get_photo();if(u.service!='web');u.stock=u.admin=u;return u};users.add_url=function(hash1,hash2,title){var u=this._add(hash1,hash2,false,false);u.service='web';u.guid='0';u.display_name=title;u.profile={};return u};users.add_list=function(d){var u=this._add(d.hash1,d.hash2,true,true);if(!u.retrieved){for(var i in d){switch(i){case'profile':u[i]=d[i].parse_vars();break;default:u[i]=d[i];break}}if(!u.profile)u.profile={};u.get_photo();if(u.service!='web');u.stock=u.admin=u}return u};users.add_guest=function(){var u=this._add(z16,z16,false,false);u.uid=0;u.service='';u.display_name='Guest';u.profile={};u.cash=-1;u.retrieved=true;u.get_photo()};users.add_no_owner=function(){var u=this._add(f16,f16,false,false);u.service='';u.display_name='Keeper of unclaimed pages';var a="Hi, I'm the placeholder owner of all unclaimed pages at MeechMe. If you are the real owner of this page ";a+="please click 'Change owner' under 'More info' above.";u.profile={about:a};u.cash=-1;u.retrieved=true;u.get_photo()};users.clear_user=function(u){delete u.display_name};users.needed=function(){var need='',n=0,f=0,id=0,u,i,d=users.idx;for(i=0;i<d.length;i++){u=d[i];if(u.known&&!u.noretrieve&&!u.retrieved&&u.retrieve_tries-->0){if(need!='')need+='&';if(!u.hash2){need+='id'+id+'='+u.hash1;id+=1}else{need+='h1'+n+'='+u.hash1+'&h2'+n+'='+u.hash2;n+=1}if(f+n+id>=50)break}}return need};users.need_rooms=[];users.need_room=function(r){users.need_rooms.push(r)};users.rooms_needed=function(){var i,j=0,n='',r=users.need_rooms;for(i=0;i<r.length;i++)if(r[i].uid&&!r[i].room)n+='&r'+(j++)+'='+r[i].uid;r.length=0;return(n==''?n:n.substr(1))};users.needed_media=[];users.need_media=function(p){users.needed_media.push(p)};users.media_needed=function(){var i,j=0,n='',p=users.needed_media;for(i=0;i<p.length;i++)n+='&p'+(j++)+'='+p[i];p.length=0;return(n==''?n:n.substr(1))};users.jobs=[];users.get_data=function(callback,args){if(arguments.length>0)users.jobs.unshift({callback:callback,args:(arguments.length>1?args:null)});while(users.jobs.length>0){var need=users.needed();if(need!=''){users.ajax.post('getuserdata.php','uid='+(user.logged_in()?users.get_user().uid:0),need,users.get_data_response);break}need=users.rooms_needed();if(need!=''){users.ajax.post('getrooms.php','t=a',need,users.get_rooms_response);break}need=users.media_needed();if(need!=''){users.ajax.post('getmedia.php','',need,users.get_media_response);break}var j=users.jobs.pop();j.callback(true,j.args)}};users.get_data_fail=function(){for(var i=0;i<users.jobs.length;i++)users.jobs[i].callback(false,users.jobs[i].args);users.jobs=[]};users.get_data_response=function(success,user_data){if(!success){users.get_data_fail();return}set_server_t(parseInt(user_data.t));user.bookmark_data(user_data);users.get_data()};users.get_rooms_response=function(s,r){var i,x,u,v;if(s)for(i in r){x=r[i].parse_vars();u=users.add(x.hash1,x.hash2);u.admin=users.add(x.owner1,x.owner2);u.set_room(x);v=users.getuid(u.uid);v.set_room(x);v.admin=u.admin}users.need_rooms=[];users.get_data()};users.get_media_response=function(s,r){var i,d,p;if(s)for(i in r){d=r[i].parse_vars();if(d.photo&&d.photo!=''){p=new photo(d.photo.parse_vars());p.caption=d.text;p.title=d.title;p.id=d.id}if(d.video&&d.video!=''){p=new video(d.video.parse_vars());p.title=d.title;p.text=d.text;p.id=d.id}}users.needed_media=[];users.get_data()};_user.prototype.get_profile=function(){if(this.is_guest())return;user.ajax.get('getprofile.php','h1='+this.hash1+'&h2='+this.hash2,users.get_profile_response)};users.get_profile_response=function(success,u){if(success){if(u.retrieved=='no')alert('This is not yet a user of '+site_title+', so more profile info is unavailable');else{user.bookmark_data(u.user.parse_vars());user.display(u.hash1,u.hash2)}}};users.search_key=function(e){if(is_cr(e))users.search()};users.search=function(){users.searchgo('search_input'.e().value.trim())};users.searchgo=function(s){if(s!='')user.ajax.get('search.php','s='+encodeURIComponent(s),users.search2)};users.search2=function(success,response){if(success){var i,x,l=[];for(i in response){x=response[i].parse_vars();l.push(users.add(x.h1,x.h2))}users.get_data(users.search3,l)}};_user.prototype.search_result=function(){var h='<div class="search_result">';if(this.photo)h+=this.photo.search_html();return h+'<div class="search_profile">'+this.link('user','both',true)+'</div><div style="clear:both"></div></div>'};users.search3=function(success,l){if(success){if(l.length==1)main.log_into(l[0].hash1,l[0].hash2,'both');else{var i,h='<h1 class="search_header">Search results</h1>';if(l.length==0)h+='No matching people found.';else for(i=0;i<l.length;i++)h+=l[i].search_result();main_info(h)}}};function nid(t,id,g,l){this.t=t;this.id=id;this.g=g;this.l=l};nid.prototype.clone=function(){return new nid(this.t,this.id,this.g,this.l)};nid.prototype.gta=function(){this.g=true;return this};nid.prototype.lta=function(){this.l=true;return this};nid.prototype.getid=function(){if(this.l)return 0;if(this.g)return 2000000000;return this.id};nid.prototype.gett=function(s){var t=this.t;if(this.l)t=(s=='name'?' ':0);if(this.g)t=(s=='name'?'}':now()+240*3600);return encodeURIComponent(''+t)};nid.prototype.inc=function(){if(this.l)return new nid().lta();if(this.g)return new nid().gta();return new nid(this.t,this.id+1)};nid.prototype.cmp=function(n){var t=this;if((t.g&&n.g)||(t.l&&n.l))return 0;if(t.l||n.g)return-1;if(t.g||n.l)return 1;return(t.t==n.t?t.id-n.id:(t.t<n.t?-1:1))};function nspan(a,b){if(a){this.f=a.clone();this.l=b.clone()}};nspan.prototype.clone=function(){return new nspan(this.f,this.l)};nspan.prototype.gta=function(){this.f=new nid().gta();this.l=this.f.clone();return this};nspan.prototype.lta=function(){return new nspan(new nid.lta(),new nid().lta())};nspan.prototype.inspan=function(n){return(n.cmp(this.f)>=0&&n.cmp(this.l)<=0)};nspan.prototype.cmp=function(s){if(this.l.cmp(s.f)<0)return-1;if(this.f.cmp(s.l)>0)return 1;return 0};nspan.prototype.merge=function(s){if(this.f.cmp(s.f)>0)this.f=s.f.clone();if(this.l.cmp(s.l)<0)this.l=s.l.clone()};nspan.prototype.first=function(){return(this.f?this.f:new nid().lta())};nspan.prototype.last=function(){return(this.l?this.l:new nid().lta())};nspan.prototype.extend_older=function(n){var t=this;if(!t.f||t.f.l||n.cmp(t.f)<0)t.f=n.clone();if(!t.l||t.l.l)t.l=n.clone()};nspan.prototype.extend_newer=function(n){var t=this;if(!t.f||t.f.l)t.f=n.clone();if(!t.l||t.l.l||n.cmp(t.l)>0)this.l=n.clone()};nspan.prototype.shrinkto=function(l){if(l.length==0){this.f=new nid().lta();this.l=new nid().lta();return}var i,s=new nspan();for(i=0;i<l.length;i++)if(this.inspan(l[i].nid)){s.extend_older(l[i].nid);s.extend_newer(l[i].nid)}if(s.f){this.f=s.f;this.l=s.l}else{this.f=new nid().gta();this.l=new nid().gta()}};function nspans(all,sortby){this.all=all;this.sortby=(sortby?sortby:'added');this.l=[];this.last_id=0};nspans.prototype.setfirst=function(l){if(l.length>0&&!l[0].nid.l)this.first=l[0].nid.clone();else{this.first=new nid().gta()}};nspans.prototype.setlast=function(l){if(l.length>0){if(!this.last||l[l.length-1].nid.cmp(this.last)>0)this.last=l[l.length-1].nid.clone()}};nspans.prototype.add=function(s){if(!s.f||!s.l)return;var i,l=this.l,c=new nspan(s.f,s.l);for(i=0;i<l.length&&s.cmp(l[i])>0;i++);if(i==l.length)l.push(c);else if(s.cmp(l[i])<0)l.splice(i,0,c);else{l[i].merge(s);while(i+1<l.length){if(l[i].cmp(l[i+1])==0){l[i].merge(l[i+1]);l.splice(i+1,1)}else i+=1}}};nspans.prototype.remove=function(id){var i=0,l=this.all;while(i<l.length)if(l[i].id==id){if(this.first&&this.first.id==l[i].id)this.first=(l.length==0?new nid().gta():l[0].nid.clone());if(this.last&&this.last.id==l[i].id)this.last=(l.length==0?null:l[l.length-1].nid.clone());l.splice(i,1)}else i+=1};nspans.prototype.insert=function(n){var i,l=this.all,x;for(i=0;i<l.length&&n.nid.cmp(l[i].nid)>0;i++)x=1;if(i==l.length){l.push(n);return n}if(n.nid.cmp(l[i].nid)<0){l.splice(i,0,n);return n}return l[i]};nspans.prototype.get=function(s){var i,t=this;for(i=0;i<t.l.length;i++)if(t.l[i].inspan(s))return t.l[i]};nspans.prototype.gethave=function(s,n,d,m,ex){var t=this,h={nn:[],f:false,l:false},j,c,l=this.all;if(c=t.get(s)){h.f=(t.first&&c.inspan(t.first));h.l=(t.last&&c.inspan(t.last));j=(d<0?0:l.length-1);while(j>=0&&j<l.length&&s.cmp(l[j].nid)*d<=0)j-=d;j+=d;if(ex&&j>=0&&j<l.length&&s.cmp(l[j].nid)==0)j+=d;while(h.nn.length<n&&j>=0&&j<l.length&&c.inspan(l[j].nid)){if(m=='updates'||(m=='chat'&&l[j].text)||(m.match(/^forum2?$/)&&l[j].title)||(m=='room'&&l[j].person)||(m=='photo'&&t.sortby=='name')||l[j][m]){if(d>0)h.nn.push(l[j]);else h.nn.unshift(l[j])}j+=d}}else if(t.first&&s.cmp(t.first)<=0)h.f=true;return h};var notelist={lists:[],getting:[],nextid:1};notelist.index=function(l){l.id=this.lists.length;this.lists.push(l)};notelist.get=function(id){return this.lists[id]};notelist.edit=function(es,eh,ed){var i,j,l;for(i=0;i<notelist.lists.length;i++){l=notelist.lists[i];if(l.displayed())l.update_ago();for(j in l.spans)es(l.spans[j]);for(j in l.ispans)es(l.ispans[j]);eh(l);for(j=0;j<l.dlist.length;j+=ed(l,j));l.dspan.shrinkto(l.dlist)}};notelist.display=function(lid){var l=notelist.get(lid);main.log_into(l.room.uid,0,l.menu)};function _notelist(room,menu,ajax_get,type,n,pane){var t=this;notelist.index(t);t.room=room;t.menu=menu;t.ajax_get=ajax_get;t.ajax_post='postnote.php';t.ajax_edit='editnote.php';t.ajax_remove='deletenote.php';t.type=type;t.nget=n;t.post_ok=true;t.show_room=false;t.rootroom=false;t.show_thead=true;t.indirect=false;t.mode='updates';t.showquotes=false;t.forum_latest=false;if(!pane)var pane='page';t.pane=(pane=='page'?page:user);t.panename=pane;t.container=t.pane.data_id.e();t.adjustphotos=t.adjustingphotos=false;t.reset()};_notelist.prototype.reset=function(){var t=this,l,i=[],r=[],ir=[],s;t.base_mode=(t.room&&t.room.room?t.room.room.updates_mode:'updates');if(t.type=='fo'||t.type=='fu'||(t.type=='n'&&t.base_mode=='room')){l=r;s='name'}else{l=[];s='added'}t.spans={updates:new nspans(l,s),chat:new nspans(l,s),forum:new nspans(l),forum2:new nspans([]),photo:new nspans(l,s),video:new nspans(l,s),geo:new nspans(l,s),room:new nspans(r,'name')};t.ispans={updates:new nspans(i),chat:new nspans(i),forum:new nspans(i),forum2:new nspans([]),photo:new nspans(i),video:new nspans(i),geo:new nspans(i),room:new nspans(ir,'name')};t.views={};t.got=false;t.dlist=[];t.dspan=new nspan().gta();t.isfirst=true;t.thread=0};_notelist.prototype.resize=function(){if(this.displayed()){if(this.rootroom)this.rooms_menu();this.adjustphotos=true}};_notelist.prototype.getview=function(m,i){var v,t=this;if(!m)var m=t.mode,i=t.indirect;v=m+(i?'_i':'');if(!t.views[v])t.views[v]={};return t.views[v]};_notelist.prototype.namelist=function(){var t=this;return t.type=='fu'||t.type=='fo'||(t.type=='n'&&t.room&&t.room.room&&t.room.room.updates_mode=='room')};_notelist.prototype.sortby=function(m,i){return this.cspan(m,i).sortby};_notelist.prototype.name=function(){var h=this.room.short_name()+' / ';switch(this.type){case'r':h+='rooms';break;case'g':h+='everyone';break;case'f':h+='friends';break;case'n':h+='updates';break;case'z':return'clipboard'}return h};_notelist.prototype.refresh=function(){var l=this;if(l.less())l.get('last',l.mode,l.indirect,function(){l.get('refresh')});else l.get('refresh')};_notelist.prototype.getnote=function(id){if(this.head&&id==this.head.did)return{n:this.head,i:-1};var s=this.cspan();var i,l=s.all;for(i=0;i<l.length;i++)if(l[i].did==id)return{l:l,n:l[i],i:i};return{n:null,i:-1}};notelist.set_mode=function(id,m){var l=notelist.get(id);l.set_mode(m,l.indirect)};notelist.set_room_mode=function(id){var e,m,n=notelist.get(id);e=(n.panename+'_roommode').e();m=e.options[e.selectedIndex].value;if(m!='more'){n.room_mode=m;n.display()}};_notelist.prototype.set_mode=function(m,i){var t=this,s,c;if(!t.got&&(c=get_cookie('room'+t.room.uid+t.type))){c=c.split(',');t.lastsession=parseInt(c[0]);m=c[1];i=(c[2]==1)}if(m=='forum'&&t.forum_latest)m='forum2';if(m!=t.mode||i!=t.indirect||!t.got){if(s=this.getview(m,i).span)t.get(s.f,m,i);else t.get((m=='forum'||t.sortby(m,i)=='name'?'first':'last'),m,i)}};notelist.set_indirect=function(id,i){notelist.get(id).set_indirect(i)};_notelist.prototype.set_indirect=function(i){this.set_mode(i?'updates':'room',i)};_notelist.prototype.set_quotes=function(b){this.showquotes=b;notes.quotesvisible(this.container,this.showquotes,false)};_notelist.prototype.forum_sort=function(b){this.forum_latest=b;notelist.set_mode(this.id,'forum')};_notelist.prototype.have_options=function(){return!this.rootroom&&this.mode.match(/^updates|chat|forum2?$/)};_notelist.prototype.options=function(){var o,t=this;switch(t.mode){case'updates':o='<input type="checkbox"';if(t.showquotes)o+=' checked="checked"';o+=' onclick="'+t.panename+'.notelist.set_quotes(this.checked)"> Show quotes by default';break;case'chat':o='<input type="checkbox"'+(t.compactchat?' checked="checked"':'')+' onclick="var l=notelist.get('+t.id+');l.compactchat=this.checked;l.display()"> Compact';break;case'forum':case'forum2':o='<input type="checkbox"';if(t.forum_latest)o+=' checked="checked"';o+=' onclick="'+t.panename+'.notelist.forum_sort(this.checked)"> Order by latest post'}return o};_notelist.prototype.cspan=function(m,i){if(!m)var m=this.mode,i=this.indirect;return this[i?'ispans':'spans'][notelist.spans(m)]};_notelist.prototype.more=function(){if(this.what=='first')return false;var s=this.cspan();return this.dlist.length>0&&!(s.first&&this.dspan.f&&s.first.cmp(this.dspan.f)==0)};_notelist.prototype.less=function(){if(this.dlist.length==0)return false;if(this.setlastid)return false;var s=this.cspan();return!(s.last&&this.dspan.l&&s.last.cmp(this.dspan.l)==0)};_notelist.prototype.toggle_thead=function(){this.show_thead=!this.show_thead;this.put_head()};_notelist.prototype.put_head=function(){var t=this,h='',i,c,pid;var m=t.more(),l=t.less(),dl=t.dlist;var dll=dl.length,p=t.pane;if(t.mode=='geo')p.data_id.e().style.overflow='auto';if(t.thread<=0&&!m&&!l&&t.panename!='clip'){p.empty_data_hdr()}else{if(t.thread>0){h+='<div class="thread_ctl" onclick="'+t.panename+'.notelist.toggle_thead()">'+(t.show_thead?'hide':'show')+'</div>';if(t.show_thead){h+='<div class="thread_head">';if(t.head)h+=t.head.html('updates');else h+='The original post in this thread was not found';h+='</div>'}}if(m||l||t.type=='z'){var u='<img src="gfx/up-white.gif">',d='<img src="gfx/down-white.gif">',g=' style="margin-left:1.5em',dp=';padding:0 0.5em 0 0.5em">';h+='<table class="getolder" ondblclick="stop_prop(event)" onmousedown="return false" cellspacing="0" cellpadding="0"><tr><td>';h+='<div class="getoldermsg';if(!m)h+=' disabled"';else h+='" onclick="notelist.get('+t.id+').get(\'first\')"';h+='"><span>'+u+u+'</span></div></td><td>';h+='<div class="getoldermsg';if(!m)h+=' disabled"';else h+='" onclick="notelist.get('+t.id+').get(\'prev\')"';h+=g+dp+u+'<span>'+(t.sortby()=='name'?'Prev':'Older')+'</span></div></td><td>';h+='<div class="getoldermsg';if(!l)h+=' disabled"';else h+='" onclick="notelist.get('+t.id+').get(\'next\')"';h+=g+dp+d+'<span>'+(t.sortby()=='name'?'Next':'Newer')+'</span></div></td><td>';h+='<div class="getoldermsg';if(!l)h+=' disabled"';else h+='" onclick="notelist.get('+t.id+').get(\'last\')"';h+=g+'"><span>'+d+d+'</span></div></td></tr></table>';if(t.type!='z'){if(t.sortby()=='name')h+='<div class="selstart"><input value="'+(dll?dl[0].nid.t:'')+'" onclick="this.focus();this.value=\'\'" onkeyup="notelist.setstart(this.value,'+t.id+')"></div>'}h+='</div>';p.fill_data_hdr(h,'#fff')}else p.fill_data_hdr(h);if(t.thread>0)notes.quotesvisible(p.data_hdr_id.e(),false,true)}if(t.mode=='geo')p.data_id.e().style.overflow='hidden'};notelist.setstart=function(c,id){var n=notelist,x=c.trim().toLowerCase().substr(0,20);if(n.sstimer)clearTimeout(n.sstimer);if(x)n.sstimer=setTimeout('notelist.sstimer=null;notelist.get('+id+').get(new nid("'+x+'",0))',1000)};data_area.prototype.listinfo_on=function(){var l=this.notelist,e='listinfo'.e(),dl,p,h,pos;if(l&&l.displayed()&&(l.less()||l.more())&&l.type!='z'&&l.sortby()=='added'){dl=l.dlist;e.innerHTML='<div class="datestart" onclick="notelist.datestart(this,'+l.id+')" title="click to set start date"><table cellspacing="0" cellpadding="0"><tr><td></td><td align="left">'+date_str(dl[0].nid.t)+'</td></tr><tr><td align="right"><i>to</i></td><td align="left">'+date_str(dl[dl.length-1].nid.t)+'</div>';h=this.data_hdr_id.e();pos=get_pos(h);e.style.top=(pos.y+h.offsetHeight)+'px';e.style.left=(pos.x+h.offsetWidth-e.offsetWidth-22)+'px';e.style.visibility='visible';if(!(p=main.listinfo_shadow))p=main.listinfo_shadow=new shadow(e);p.show();main.listinfo=e;main.listpane=l.pane.data_hdr_id.e()}};notelist.datestart=function(e,id){var i,l=notelist.get(id),h,p=get_pos(e),d=new Date(),ds,s=' selected="selected"',y;if(l.mode.match(/^forum2?$/))return;main.listinfo.style.visibility='hidden';main.listinfo_shadow.hide();y=d.getFullYear();d.setTime(l.dlist[0].nid.t*1000);l.datestart=ds={y:d.getFullYear(),m:d.getMonth(),d:d.getDate(),h:d.getHours()};function sel(x){return'<select onchange="notelist.get('+id+').datestart.'+x+'=this.options[this.selectedIndex].value">'};h=sel('m');for(i=0;i<12;i++)h+='<option value="'+i+'"'+(i==ds.m?s:'')+'>'+months[i]+'</option>';h+='</select> '+sel('d');for(i=1;i<=31;i++)h+='<option value="'+i+'"'+(i==ds.d?s:'')+'>'+i+'</option>';h+='</select>, '+sel('y');for(i=2000;i<=y;i++)h+='<option value="'+i+'"'+(i==ds.y?s:'')+'>'+i+'</option>';h+='</select> '+sel('h');for(i=0;i<24;i++)h+='<option value="'+i+'"'+(i==ds.h?s:'')+'>'+(i%12||12)+(i>11?'p':'a')+'m</option>';h+='</select> <button onclick="notelist.datestart_go('+id+')">Go</button>';if(l.lastsession)h+='<br><br>Last session : <span style=font-weight:bold;color:#66f">'+date_str(l.lastsession)+'</span> <button onclick="notelist.get('+l.id+').get(new nid('+l.lastsession+',0));win.close(\''+l.panename+'_seldate\')">Go</button>';win.open(l.panename+'_seldate',h,{top:p.y+'px',left:p.x+'px',border:'1px solid #eee'},{style:'popup',applystyle:true})};notelist.datestart_go=function(id){var l=notelist.get(id);var ds=l.datestart;win.close(l.panename+'_seldate');l.get(new nid(Math.floor(new Date(ds.y,ds.m,ds.d,ds.h).getTime()/1000),0))};_notelist.prototype.display=function(top){var n=this,drop;if(!n.got){n.set_mode(n.mode,n.indirect);return}if(!n.displayed(false))return;n.pane.notelist=n;if(n.panename!='clip')n.pane.set(n.room,n);if(n.menu)menus.set_active(n.menu);if(!n.rootroom)n.put_head();var c=n.container,e,i,l=n.dlist,p=n.pane;while(c.hasChildNodes())c.removeChild(c.firstChild);n.pane.fill_html('');if(n.rootroom){var w=win.open(p.menu_bar_name+'_postpane','',{},{pane:p.container_id.e()});var h='',r=n.rooms_menu();for(i=0;i<r.length;i++)if(n.panename=='page'||r[i].m==n.room_mode)h+='<div '+w.receiver('room',(r[i].p?r[i].n.person:r[i].n.room),'_room'+r[i].n.did+(r[i].p?'_p':''),'room_note_rec','room_note',n)+' class="'+r[i].n.classname('room')+'">'+r[i].n.room_html(false,r[i])+'</div>';n.pane.fill_html(h)}else if(n.mode!='geo'){for(i=0;i<l.length;i++)if(!l[i].user.is_banned()&&(e=n.element(l[i])))c.appendChild(e);var s=c.scrollHeight;s=c.scrollHeight;c.scrollTop=(n.sortby()=='name'||top||n.what=='from'?0:c.scrollHeight);if(n.panename!='clip')drop={pane:p.container_id.e()}}else{var locs=[],g;for(i=0;i<l.length;i++)if(!l[i].user.is_banned()&&l[i].geo)locs.push(l[i].gogeo());var g=new geo(locs,p.menu_bar_name,{sortby:'time',showall:true,showtitle:true,showinfo:true,edit:new ngeoedit(),mouseover:notes.map_note,mouseout:notes.maptimer,onselect:function(){win.close('mapnote')},context:function(e,g){win.close('mapnote');menus.map_note_context(e,g)}});p.geo=g;p.fill_html(g.html());menus.exit_handler(p.menu_bar_name,p.geo_on_exit);g.go();function redrop(w){if(w&&w.displayed){var x=w.content.elements.geo;if(x){if(w.content.note)g.remove_note(g.get_note(w.content.note.id));w.content.elements.geo=null;story.drope(w,'geo',x)}}};redrop(win.get('post'+n.id));redrop(win.get('edit'));drop={pane:g.canvas().e(),geo:g};n.geo_tabs(true)}if(n.post_ok&&!n.indirect&&drop){drop.ondrop=function(w,t,r,ev){var e={},o=w.ops;e[t]=story.getel(t,r);if(!n.displayed()||!e[t]||mouse_in(ev,n.pane.panehdr_id.e()))return false;if(n.mode=='geo'&&o.geo&&t!='geo'){var b=o.geo.data.map.getBounds(),ne,sw,p=get_pos(w.e),lat,long,f;ne=b.getNorthEast();sw=b.getSouthWest();lat=ne.lat()+(sw.lat()-ne.lat())*(ev.clientY-p.y)/w.e.offsetHeight;f=(ne.lng()<sw.lng()?360:0);long=sw.lng()+((ne.lng()+f)-sw.lng())*(ev.clientX-p.x)/w.e.offsetWidth-f;e.geo=new geoloc(lat,long,o.geo.data.map.getZoom(),now(),'','')}notes.post(n,e);return true};win.open(p.menu_bar_name+'_postpane','',{},drop)}n.pane.controls();if(n.freshen&&!n.less()){n.freshen=false;n.get('next')}};_notelist.prototype.rooms_menu=function(){var n=this;if(n.updating)return;var iu=(n.panename=='user');n.updating=true;var p={'group':[0,'Groups'],'updates':[1,'Notes'],'room':[2,'Lists'],'photo':[3,'Photos'],'video':[4,'Videos'],'geo':[5,'Maps'],'forum':[6,'Forums'],'chat':[7,'Chat'],'deleted':[8,'Deleted']};var r=[],i,e,h,m,lm='',x,lx=0,rm,l=n.dlist;for(i=0;i<l.length;i++){if(l[i].person)r.push({m:'room',t:l[i].person.name(),n:l[i],p:true});if(l[i].room&&(rm=l[i].room.room)&&(iu||!rm.deleted))r.push({m:(rm.deleted?'deleted':l[i].room.room.updates_mode),t:l[i].room.name(),n:l[i],p:false})}r.sort(function(a,b){if(iu&&a.m!=b.m)return p[a.m][0]-p[b.m][0];if(a.t>b.t)return 1;if(a.t<b.t)return-1;return 0});if(iu){if(r.length==0)n.pane.empty_data_hdr();else{if(!n.room_mode)n.room_mode=r[0].m;m=n.room_mode;var sid=n.panename+'_room_sel';n.pane.fill_data_hdr('<div id="'+sid+'" class="room_select"></div>');e=sid.e();mh=[];for(i=0;i<r.length;i++)if(r[i].m!=lm){h=document.createElement('span');h.className='rooms_menu'+(r[i].m==m?'_sel':'');h.innerHTML=p[r[i].m][1];if(r[i].m!=m)h.onclick=function(m){return function(){n.room_mode=m;n.display()}}(r[i].m);e.appendChild(h);x=get_pos(h).x;if(x<lx){mh.pop();do{e.removeChild(e.lastChild);e.removeChild(e.lastChild);lm=mh.pop();lx=lm.x;lm=lm.m;h='<select id="'+n.panename+'_roommode" onchange="notelist.set_room_mode('+n.id+')"><option value="more">More</option>';for(i=0;r[i].m!=lm;i++);for(;i<r.length;i++)if(r[i].m!=lm){h+='<option value="'+r[i].m+'"';if(r[i].m==m)h+=' selected="selected"';h+='>'+p[r[i].m][1]+'</option>';lm=r[i].m}x=document.createElement('span');x.className='rooms_menu';x.innerHTML=h+'</select>';e.appendChild(x);x=get_pos(x).x}while(x<lx);break}mh.push({x:x,m:r[i].m});lx=x;lm=r[i].m}}}n.updating=false;return r};_notelist.prototype.displayed=function(){if(this.type=='z')return win.displayed('clipboard');if(arguments.length==0&&!menus.is_active(this.menu))return false;if(this.type=='p'||!this.room)return true;return this.pane.displayed.same(this.room)};_notelist.prototype.note=function(id){return('_note'+id).e()};_notelist.prototype.element=function(note){var h=note.html(this.mode);if(!h)return null;var el=document.createElement('div');el.id='_note'+note.did;el.className=note.classname(this.mode);el.innerHTML=h;note.set_events(this.mode,el);notes.quotesvisible(el,this.showquotes,false);return el};_notelist.prototype.add=function(note,mode,ind){var t=this,e,n;if(!mode)var mode=t.mode,ind=t.indirect;if(t.rootroom){note.title=note.room.name();note.photo=note.room.photo}var d=(t.displayed()&&t.mode==mode&&t.indirect==ind);n=t.cspan(mode,ind).insert(note);note.did=n.did;if(t.get_older_notes){n.odd=(t.dlist.length>0?!t.dlist[0].odd:true);t.dlist.unshift(n);t.dspan.extend_older(n.nid);if(d&&t.mode!='geo'&&!t.rootroom&&(e=t.element(n)))t.container.insertBefore(e,t.container.firstChild)}else{n.odd=(t.dlist.length>0?!t.dlist[t.dlist.length-1].odd:true);t.dlist.push(n);t.dspan.extend_newer(n.nid);if(d&&t.mode!='geo'&&!t.rootroom&&(e=t.element(n)))t.container.appendChild(e)}if(d&&t.mode=='geo'&&n.geo)t.pane.geo.add(n.gogeo())};_notelist.prototype.remove=function(id){};_notelist.prototype.undisp=function(id){var t=this,n;if(t.mode=='geo')t.pane.geo.remove_note(t.pane.geo.get_note(id));else if(n=t.note(id)){t.container.removeChild(n);t.adjustphotos=true}};_notelist.prototype.update_ago=function(){if(this.mode=='updates')for(var i=0;i<this.dlist.length;i++)this.dlist[i].update_ago();if(this.thread>0&&this.head&&this.show_thead)this.head.update_ago()};notelist.adjust_photos=function(){var l=page.notelist;if(l)l.adjust_photos();if(l=user.notelist)l.adjust_photos()};_notelist.prototype.adjust_photos=function(){var t=this;if(!t.adjustingphotos){t.adjustphotos=false;t.adjustingphotos=true;if(t.displayed()&&t.mode=='photo'){var i,j,l=t.dlist,e,f,m=0,r=0,h,lx=0;for(i=0;i<l.length;i++){if(e=('_notephoto'+l[i].did).e()){if((x=get_pos(e).x)<lx){for(j=r;j<i;j++)if(f=t.note(l[j].did))f.style.height=m+'px';r=i;m=0;h=0}m=Math.max(m,e.offsetHeight);lx=x}}for(j=r;j<l.length;j++)if(f=t.note(l[j].did))f.style.height=m+'px'}t.adjustingphotos=false}};notelist.get_response=function(success,response,a){if(success)a.l.add_new(response,a)};notelist.add_new=function(success,a){if(success)a.l.add_new2(a.mode,a.ind,a.nn,a.cb)};notelist.spans=function(mode){return mode};_notelist.prototype.get=function(w,mode,ind,callback){var t=this,h,get_older,ds,gf,ex,cb=callback,what=w;if(!mode)var mode=t.mode,ind=t.indirect;var ns=notelist.spans(mode),cm=(mode!=t.mode||ind!=t.indirect);var sp=t.cspan(ns,ind);t.setlastid=false;if(typeof(w)=='object'){get_older=false;t.gf=gf=w;ex=false;what='from'}else switch(what){case'first':get_older=false;ex=false;gf=(sp.first?sp.first:new nid().lta());break;case'prev':get_older=true;gf=(cm?t.dspan.l:t.dspan.f);ex=!cm;break;case'next':case'refresh':get_older=false;gf=t.dspan.l;ex=true;break;case'last':case'all':get_older=true;gf=(sp.last?sp.last:new nid().gta());ex=false;if(t.freshen)cb=function(){t.get('next')};break}t.get_older_notes=get_older;t.replyplace=false;if(what=='refresh'){what='next';h={nn:[],l:true}}else{var as=t.cspan('updates',ind),ts=t.cspan(ns,ind);if(as.all==ts.all)h=as.gethave(gf,t.nget,(get_older?-1:1),ns,ex);if(!h||(h.nn.length<t.nget&&as!=ts))h=ts.gethave(gf,t.nget,(get_older?-1:1),ns,ex)}t.what=what;if(h.nn.length==t.nget||((h.nn.length>0||mode!=t.mode)&&(get_older?h.f:h.l)))t.add_new2(mode,ind,h.nn,cb);else{var params='in='+(t.room?t.room.uid:0)+'&uid='+userid+'&thread='+t.thread+'&what='+what+'&vid='+t.pane.displayed.uid+'&ind='+(ind?1:0)+'&sort='+t.sortby(mode,ind);if(ns!='updates')params+='&mode='+ns;if(get_older){if(h.f){t.add_new2(mode,ind,h.nn,cb);return}else{var f=(h.nn.length>0?h.nn[0].nid:(ex?gf:gf.inc()));params+='&first='+f.getid()+'&firstt='+f.gett(t.sortby(mode,ind))+'&n='+(t.nget-h.nn.length)}}else if(!h.l){var l;if(h.nn.length>0){l=h.nn[h.nn.length-1].nid;ex=true}else l=gf;params+='&last='+l.getid()+'&lastt='+l.gett(t.sortby(mode,ind))+'&n='+(t.nget-h.nn.length)+'&ex='+(ex?1:0)}else{params+='&last='+sp.last_id+'&n='+t.nget;t.setlastid=true}notes.ajax.get(t.ajax_get,params+'&t='+t.type,notelist.get_response,{l:t,mode:mode,ind:ind,nn:h.nn,cb:cb})}};_notelist.prototype.makenote=function(n,a,i){return new _note(n,a,i,this)};_notelist.prototype.add_new=function(notes,a){var i,n,t=this;var isp=(t.what=='post'&&!this.rootroom&&a.mode=='room'),s=t.cspan(a.mode,a.ind);for(i in notes){n=t.makenote(notes[i].parse_vars(),a.mode,a.ind);n.list=t;if(isp){s.insert(n);s.add(new nspan(n.nid,n.nid))}else if(n.id==t.thread){n.head=true;t.head=n}else a.nn.push(n)}if(isp)t.get(n.nid,a.mode,a.ind);else{if(t.what=='post')t.what='next';users.get_data(notelist.add_new,a)}};_notelist.prototype.add_new2=function(mode,ind,nn,cb){var t=this;var i,div=t.container,gon=t.get_older_notes,ng=[],fg,sp,top=false,lid=0,isup=(mode==t.mode&&t.what!='first'&&t.what!='last'&&t.what!='from'),cm=(mode!=t.mode||ind!=t.indirect);t.got=true;if(cm){t.dlist=[];t.dspan=new nspan()}else top=(t.dspan.f.l);sp=t.cspan(mode,ind);if(nn.length==0&&t.what=='from'){sp.add(new nspan(t.gf,new nid().gta()));t.get('last',mode,ind);return}if(t.what=='first'||t.what=='last'||t.what=='from'){t.dlist=[];t.dspan=new nspan();top=(t.what=='first')}if(!t.isfirst&&t.displayed())t.update_ago();nn.sort(function(a,b){return a.nid.cmp(b.nid)});if(gon)nn.reverse();if(nn.length>t.nget)nn.splice(t.nget,nn.length-t.nget);for(i=0;i<nn.length;i++){t.add(nn[i],mode,ind);if(sp.first&&nn[i].nid.cmp(sp.first)<0)sp.first=nn[i].nid.clone();if(nn[i].geo){fg=i;ng.push(nn[i].geo)};lid=Math.max(lid,nn[i].id)}if(t.what=='from')t.dspan.f=t.gf.clone();sp.add(t.dspan);if((gon&&nn.length<t.nget)||top)sp.setfirst(t.dlist);while(isup&&t.dlist.length>t.nget){i=(gon?t.dlist.pop():t.dlist.shift());if(t.displayed())t.undisp(i.did)}t.dspan.shrinkto(t.dlist);if(t.dlist.length>0){t.getview(mode,ind).span=t.dspan.clone();if(t.last_id&&!t.dspan.f.g&&!t.dspan.f.l&&t.sortby(mode,ind)=='added')set_cookie('room'+t.room.uid+t.type,(!t.more()?0:t.dspan.f.t)+','+mode+','+(ind?1:0),7)}if(t.what=='last'||(!gon&&nn.length<t.nget))sp.setlast(t.dlist);if(!t.less()){sp.last_id=Math.max(sp.last_id,lid);if(t.last_id)t.last_id.set(sp.last_id)}if(!isup&&t.what!='all'){if(cm&&t.mode=='geo')t.pane.geo_on_exit(0);if(cm){if(t.mode!='geo')t.getview().scroll=t.container.scrollTop;t.mode=mode;t.indirect=ind;t.pane.update_options()}t.display(t.what=='first');if(cm&&t.mode!='geo'&&typeof(t.getview().scroll)=='number')t.container.scrollTop=t.getview().scroll;t.isfirst=false;if(cb)cb();return}if(t.displayed())t.put_head();t.isfirst=false;if(gon){var n=nn.length;if(n>0&&t.displayed()){switch(t.mode){case'updates':case'chat':if(!t.sortby()!='name')div.scrollTop=Math.max(div.childNodes[Math.max(n-1,0)].offsetTop-4,0);break;case'photo':div.scrollTop=0;break}}}if(t.displayed()){switch(t.mode){case'geo':if(ng.length==1)t.pane.geo.get_note(nn[fg].did).select();else if(ng.length>1)t.pane.geo.setview(ng);t.pane.geo.setvisible();break;case'room':if(t.rootroom){if(nn.length>0){var r=t.dlist[t.dlist.length-1].room;t.room_mode=r.room.updates_mode;if(t.room_mode!='group')main.log_into(r.hash1,r.hash2,'w')}t.display()}div.scrollTop=0;break;default:if(t.sortby()=='name')div.scrollTop=0;else{t.adjustphotos=true;if(!gon&&(!t.replyplace||nn.length>0))div.scrollTop=(t.less()?0:div.scrollHeight)}}t.pane.controls()}if(cb)cb()};function _note(n,m,ind,nl){if(n){if(!m)var m='updates',ind=false;var t=this,x,g,l;t.did=notelist.nextid++;t.id=parseInt(n.id);t.thread=parseInt(n.thread);t.replies=parseInt(n.replies);t.lastreply=parseInt(n.lastreply);t.date=t.added=parseInt(n.added);t.place=users.add(n.inroom);users.need_room(t.place);t.type=n.type;t.user=users.add(n.poster);t.nid=new nid((m=='forum2'?t.lastreply:(nl&&nl.sortby(m,ind)=='name'?n.name.toLowerCase():t.added)),t.id);if(n.title)t.title=n.title.trim();t.text=n.text;if(n.photo){var p;p=t.photo=new photo(n.photo.parse_vars());p.id=t.id;p.title=t.title;p.caption=t.text;if(!p.caption)p.caption=p.title;if(!p.room)p.room=t.place}if(n.video){var v;v=t.video=new video(n.video.parse_vars());v.id=t.id;v.note=t;if(!v.room)v.room=t.place}if(n.geo){var g=n.geo.split(',');if(g.length>=3){var lat=parseFloat(g[0]),long=parseFloat(g[1]),zoom=parseInt(g[2]);if(g.length>3)l=g.splice(3,g.length-3).join(',');else if(t.title)l=t.title.maxlength(60);else l=date_str(t.date);t.geo=new geoloc(lat,long,zoom,t.date,l,t.text)}}if(n.url)t.url=n.url.parse_vars();if(n.rid)t.rid=parseInt(n.rid);if(n.person&&n.person>0)t.person=users.add(n.person);if(n.room&&n.room>0){t.room=users.add(n.room);if(!t.room.room)users.need_room(t.room)}if(n.wiki)t.wiki=new wiki(n.wiki.parse_vars());t.istweet=(n.istweet==1);if((t.extservice=n.extservice)!='none'){t.extid=n.extid;t.extuser=n.extuser;if(t.extservice=='twitter'){t.text='[tweet='+t.extuser+']'+t.text+'[/tweet]';t.istweet=true}}t.head=false;t.text.get_items()}};_note.prototype.classname=function(mode){switch(mode){case'forum':case'forum2':return'forum_note';case'updates':return'note';case'chat':return'chat_note';case'photo':return'photo_note';case'video':return'video_note';case'room':return'room_note'}};_note.prototype.html=function(mode,p){if(!mode)var mode='updates';switch(mode){case'forum':case'forum2':return this.forum_html(p);case'updates':return this.update_html(p);case'chat':return this.chat_html(p);case'photo':return this.photo_html(p);case'video':return this.video_html(p);case'room':return this.room_html(p)}};_note.prototype.display=function(o){notes.stick=false;if(!o)var o={type:'preview'};var im=(o.type=='map');var n=(im?'mapnote':'preview'),s=(im?{width:'400px'}:{top:'100px',right:'100px',width:'400px'});if(im){o.onmouseover=function(){notes.clear_maptimeout();main.in_el={e:win.get(n).e,close:function(){if(!notes.stick&&win.get(n)!=win.dragging)win.close(n)}}};o.onclose=function(){main.in_el=null;return true};o,onclick=function(){notes.stick=true}}o.style='popup';var w=win.open(n,'<div class="note_preview">'+this._uhtml({preview:(o.type=='preview'),onchange:"win.get('"+n+"').shadow.show()"})+'</div>',s,o);notes.quotesvisible(w.e,false,false)};_note.prototype.video_html=function(preview){return this._vhtml({preview:preview,main:true})};_note.prototype.room_html=function(p,d){var r=(d?(d.p?this.person:this.room):users.getuid(this.rid));return this._html({type:(d&&d.m=='deleted'?d.m+'_':'')+'room',title:r.name(),room:r,photo:'room',psize:'smallest',show_room:true,room_info:true,preview:p,video_bar:(this.list&&!this.list.rootroom)})};_note.prototype.forum_html=function(){var n=this;var h='',t=n.title;h+='<div class="forum_subject"><span onmouseover="notes.forum_text(this,'+n.id+')" onmouseout="main.hide_info()" onclick="notes.display_thread('+n.thread+','+n.list.id+')">'+(t?t.html_chars():'[subject deleted]')+'</span></div>';h+='<div class="forum_info">'+n.replies+' reply'.plural(n.replies)+', last post '+ago(n.lastreply,true)+'</div>';return h};notes.forum_text=function(e,id){var i,l=page.notelist.dlist,n;for(i=0;i<l.length;i++){n=l[i];if(n.id==id){main.show_info(e,'auto2','left','<div class="forum_text">'+n._uhtml({onchange:'main.pop_shadow.show()'})+'</td></tr></table></div>');break}}};_note.prototype.thread_icon=function(c,r){var n=this,l=this.list;return(n.replies>0&&l&&!l.thread?'<div class="'+(c?c+' ':'')+'thread_icon"'+(r?' style="left:'+r+'px"':'')+' title="View thread" onclick="notes.display_thread('+n.thread+')"></div>':'')};_note.prototype._html=function(o,x){var n=this,h='<table class="note_table" cellspacing="0" cellpadding="0"><tr><td class="';var i,l=n.list,p=n.place,t,f,e,ev='',c,r;if(x)for(i in x)o[i]=x[i];if(o.text)t=o.text.to_html(true,n.istweet,n);else n.embedded={};switch(o.photo){case'user':if(e=n.user.photo){f=e.imgurl(o.psize);ev=e.events()}break;case'photo':if(e=n.photo){f=e.imgurl(o.psize);ev=e.events()}break;case'room':if(e=o.room.photo){f=e.imgurl(o.psize);ev=e.events(true,false)}else if(o.room.room){var m=o.room.room.updates_mode;f='gfx/mode_'+m;if(m=='photo')f+='s';f+='.png';o.psize='room'}ev+=o.room.onclick(true);break;case'video':if(e=n.video){f=e.thumb;ev=e.events(true)}o.psize='video'}if(!f)f='gfx/no_image.gif';switch(o.psize){case'room':c='note_no_image';break;case'smallest':c='note_image';break;case'mediumest':c='med_note_image';break;case'video':c='vid_note_image';break}h+=c+'_td"><div class="'+c+'"'+ev+' style="background-image:url(\''+f+'\');cursor:pointer"></div></td>';h+='<td class="note_body"><div';if(o.main)h+=' id="notetext'+n.id+'"';h+=' class="note_text">';if(!o.preview&&o.show_room&&l&&(l.show_room=='all'||(l.show_room=='notme'&&!p.is_user())||((l.show_room=='ifroom'||l.indirect)&&!p.same(n.user)))){h+='<div class="note_room"><span class="';if(n.type=='private')h+='pvt_room">'+p.short_name()+' / private';else{h+='pub_room" '+p.onmouseover(true)+p.oncontextmenu()+p.onmousedown()+'onclick="main.log_into(\''+p.hash1+"','"+p.hash2+"','"+menus.talktype(n.type)+'\')">'+p.short_name();if(l.show_room=='all')switch(n.type.substr(0,1)){case'f':h+=' / friends';break;case'g':h+=' / everyone';break;case'n':h+=' / updates';break}}h+='</span></div>'}if(o.type=='update'){function ih(t){return(n[t]&&!n.embedded[t]?'<div class="note_icon '+t+'_icon"'+n[t].events()+'></div>':'')};h+=n.thread_icon('note_icon');if(o.photo!='photo'&&!o.photo_thumb)h+=ih('photo');if(o.photo!='video'&&!o.video_thumb)h+=ih('video');if(!o.person_thumb)h+=ih('person');if(!o.room_thumb||!n.room||!n.room.photo)h+=ih('room');if(!l||l.mode!='geo')h+=ih('geo');h+=ih('wiki')}var pt=(o.photo_thumb&&n.photo),vt=(o.video_thumb&&n.video&&n.video.thumb),ut=(o.person_thumb&&n.person&&n.person.photo),rt=(o.room_thumb&&n.room&&n.room.photo),th='';if(pt||vt||ut||rt){h+='<div>';function it(i,e){if(th)th+=' ';th+='<img src="'+i.html_chars()+'"';if(o.onchange)th+=' onload="'+o.onchange+'"';th+=e.events()+'>'};if(pt)it(n.photo.imgurl(o.photo_thumb),n.photo);if(vt)it(n.video.thumb,n.video);if(ut)it(n.person.photo.imgurl('smallest'),n.person);if(rt)it(n.room.photo.imgurl('smallest'),n.room);h+=th+'</div>'}if(o.title){h+='<div class="note_title'+(o.text?'2':'')+'">';i='';if(!o.text)switch(o.type){case'video':i='<span class="vn_title" onclick="main.open_video(this,'+n.video.index+')" onmouseover="notes.video_note3(this,'+n.video.index+')" onmouseout="main.hide_info()">';break;case'room':i='<span class="vn_title" onclick="'+o.room.linkjs()+'" onmouseover="notes.room_info(this,'+o.room.id+','+l.id+','+n.did+')" onmouseout="main.hide_info()"'+o.room.onmousedown()+o.room.oncontextmenu()+'>';break;case'deleted_room':i='<span class="vn_title" title="undelete this room" onclick="page.undelete_room('+o.room.uid+')" onmouseover="notes.room_info(this,'+o.room.id+')" onmouseout="main.hide_info()">'}h+=i+o.title.html_chars();if(i)h+='</span>';h+='</div>'}if(o.text)h+=t;h+='</div>';if(o.update_bar){h+='<div class="note_header">';if(!o.preview&&l&&((p.admin&&p.admin.is_user())||n.user.is_user()||l.reply_ok||l.thread==0))h+='<span class="note_ctl" onmouseover="notes.menu(this,'+l.id+','+n.did+')" onmouseout="menus.hide()">+</span>';if(!o.preview&&n.replies>0&&n.id==n.thread){h+='<span class="note_ctl"';if(l&&l.thread==0)h+=' onclick="notes.display_thread('+n.thread+','+l.id+')"';h+='>'+n.replies+(n.replies>1?' replies':' reply')+'</span>'}h+=n.user.link('user',false,true)+'&nbsp;&nbsp;&nbsp;&nbsp;<span id="notedate'+n.id+'">'+ago(n.added,true)+'</span></div>'}if(o.video_bar||o.room_info){h+='<div class="vn_info">';if(o.video_bar){h+='<div class="vn_icon vn_menu" onmouseover="notes.menu(this,'+l.id+','+n.did+')" onmouseout="menus.hide()"></div>';function iv(i){if(n[i])h+='<div class="vn_icon '+i+'_icon"'+n[i].events()+'></div>'};h+=n.thread_icon('vn_icon');if(l.mode!='room'){iv('room');iv('person')}iv('geo');if(l.mode!='video')iv('video');iv('photo');iv('wiki')}if(l.mode=='video'){h+='<span class="video_info">';if(n.video&&n.video.length)h+=length(n.video.length)+',&nbsp;&nbsp;';h+='<span class="userlink" title="view thread" onclick="notes.display_thread('+n.thread+','+l.id+')">'+n.replies+' comment'.plural(n.replies)+'</span></span>'}else if(o.room.is_person()&&o.room.visits){var v=o.room.visits;i='';if(v.last.t>0)i='signed in '+ago(v.last.t,true);if(v.note.t>0)i+=(i==''?'':', ')+'posted '+ago(v.note.t,true);if(i)h+='<span class="room_info">'+i+'</span>'}else if(o.room_info&&(r=o.room.room)){i='';if(r.last)i='updated '+ago(r.last,true);if(r.visited)i+=(i==''?'':', ')+'visited '+ago(r.visited,true);if(i)h+='<span class="room_info">'+i+'</span>'}h+='</div>'}return h+'</td></tr></table>'};notes.room_info=function(e,r,lid,nid){var u=users.geti(r),t;if(lid)t=notelist.get(lid).getnote(nid).n.text;if(!t){if(u.is_person()){t=u.profile.about;if(!t)t=u.mini_profile('\n')}else t=u.room.welcome}main.pop_text(e,t)};_note.prototype._uhtml=function(x){var n=this,u,x;var o={type:'update',preview:false,text:n.text,photo:'user',psize:'smallest',show_room:true,update_bar:true,photo_thumb:'smallest',video_thumb:true,person_thumb:true,room_thumb:true},l=n.list;if(!n.head&&l&&l.sortby()=='name'){u=users.getuid(n.rid);x=(u.is_person()?'person':'room');o.text='['+x+'][b][color=#00c]'+u.name()+'[/color][/b][/'+x+']\n'+o.text}if(n.head)o.onchange='main.resize()';if(n.place)var r=n.place.room;if(r&&((l.type=='t'&&l.parent.menu=='u')||l.type=='n'))switch(r.updates_mode){case'photo':o.title=n.title;o.photo_thumb='mediumest'}return n._html(o,x)};_note.prototype._vhtml=function(x){var t=this.video.el_title();return this._html({type:'video',preview:false,title:(t?t:'[no title]'),photo:'video',video_bar:true,show_room:true},x)};_note.prototype.update_html=function(preview,text){return this._uhtml({preview:preview,text:(text?text:this.text),main:true})};_note.prototype.chat_html=function(){var n=this;var u=n.user,t=n.text.to_html(true,n.istweet,n),h='<div class="chat_ctl">';if(n.list&&n.list.compactchat)return n.user.link('reduser',false,true)+': '+t;function ih(t){return(n[t]&&!n.embedded[t]?'<div class="note_icon '+t+'_icon"'+n[t].events()+'></div>':'')};if(n.list)h+='<div class="note_icon vn_menu" onmouseover="notes.menu(this,'+n.list.id+','+n.did+')" onmouseout="menus.hide()"></div>';h+=n.thread_icon('note_icon');h+=ih('photo');h+=ih('video');h+=ih('person');h+=ih('room');h+=ih('geo');h+=ih('wiki')+'</div>';return'<div class="chat'+(u.is_user()?'':'not')+'me"><div class="chatbubble"><div style="width:100%;overflow:hidden">'+t+'</div><div class="chattriangle"></div>'+h+'</div><div class="chat_image" style="background-image:url(\''+n.user.photo.imgurl('smallest')+'\');cursor:pointer"'+n.user.events()+'></div><div style="clear:both"></div></div>'};_note.prototype.getphoto=function(){var n=this,p;if(!(p=n.photo)&&n.list&&n.list.sortby()=='name'&&!(p=n.roomphoto)&&!(p=users.getuid(n.rid).photo))n.roomphoto=p=new photo({small:'gfx/gallery.jpg',medium:'gfx/gallery.jpg'});return p};_note.prototype.photo_html=function(){var n=this;var x=n.text.to_html(false,false,n),p=n.getphoto();if(!p)return null;var h='';r=2,he=false;function ih(i){if(n[i]){h+='<div class="pgallery_icon '+i+'_icon" style="left:'+r+'px"'+n[i].events()+'></div>';r+=20;he=true}};if(n.list&&n.list.sortby()!='name'){ih('room');ih('person')}ih('geo');ih('video');ih('wiki');x=n.thread_icon('pgallery_icon',r);h+=x;if(x){he=true;r+=20}if(n.photo_els=he)h='<div class="photo_ctl_hidden" style="width:'+(r-2)+'px" id="_notectl'+n.did+'" onclick="stop_prop(event)">'+h+'</div>';h+='<div class="photo_menu_hidden" id="_photomenu'+n.did+'" onmouseover="notes.menu(this,'+n.list.id+','+n.did+')" onmouseout="menus.hide()" onclick="stop_prop(event)"></div>';return'<img id="_notephoto'+n.did+'" onload="notelist.get('+n.list.id+').adjustphotos=true" src="'+p.imgurl('smallest')+'">'+h};_note.prototype.set_events=function(mode,el){var n=this,c;switch(mode){case'photo':n.getphoto().set_events(el,n,n.photo_els);break;case'chat':if(n.compactchat)break;case'video':case'room':c=mode}if(c){el.onmouseover=function(){el.className=c+'_note_show'};el.onmouseout=function(e){el.className=c+'_note'}}};_note.prototype.update_ago=function(){var e=('notedate'+this.id).e();if(e)e.innerHTML=ago(this.added,true)};_note.prototype.gogeo=function(){var g=this.geo.clone();g.aux=this;g.note='';return g};notes.threads={};notes.quotemoved=false;notes.fill_menu=function(m,n){var l=n.list;if(l){var g=(l.mode=='photo'||l.mode=='video');if((n.place.admin&&n.place.admin.is_user())||n.user.is_user()){m.add(new menu_item('delete','Delete','notes.delete_note('+l.id+','+n.did+')'));if(n.type!='private'||n.user.is_user())m.add(new menu_item('delete','Edit','notes.edit('+l.id+','+n.did+')'))}if(n.type!='follow'&&n.type!='clip'){if(l.thread==0)m.add(new menu_item('thread',(g?'Comments ('+n.replies+')':'View thread'),'notes.display_thread('+n.thread+','+l.id+')'));if(l.reply_ok&&(n.type!='private'||n.user.follower))m.add(new menu_item('reply','Post a '+(g?'comment':'reply'),'notes.reply('+l.id+','+n.did+')'))}}};notes.menu=function(e,lid,id){var m=menus.new_context(),l=notelist.get(lid);notes.fill_menu(m,l.getnote(id).n);menus.notego(e,m,(l.mode=='photo'||l.mode=='video'?'pnote_menu':'note_menu'),(l.mode=='photo'?'auto2':'right'))};notes.clear=function(){this.fill_html('')};notes.showquote=function(e,v,f,h){if(f||!notes.quotemoved){var y=get_pos(e).y;var i,w,c=e.parentNode.childNodes;for(i=0;i<c.length;i++)if(c[i].className&&c[i].className=='bbq_body')c[i].style.display=(v?'block':'none');notes.quotemoved=(y!=get_pos(e).y);if((w=win_from_e(get_container(e)))&&w.shadow)w.shadow.show();else if(h)main.resize()}else notes.quotemoved=false};notes.quotevisible=function(e,v,h){notes.showquote(e,v,true,h);if(v){e.onmouseover=function(){};e.onmouseout=function(){};e.onclick=function(){notes.quotevisible(e,false,h)}}else{e.onmouseover=function(){notes.showquote(e,true,false,h)};e.onmouseout=function(){notes.showquote(e,false,false,h)};e.onclick=function(){notes.quotevisible(e,true,h)}}};notes.quotesvisible=function(e,v,h){if(e.className&&e.className=='bbq_hdr')notes.quotevisible(e,v,h);var i,c=e.childNodes;if(c)for(i=0;i<c.length;i++)notes.quotesvisible(c[i],v,h)};notes.get_ops=function(l,place,type,rp,r){var drop=null,o,p='p='+type,s1=(place.stock?place.stock.hash1:main.session.stockhash1),s2=(place.stock?place.stock.hash2:main.session.stockhash2);p+='&pid='+place.uid;if(r)p+='&thread='+r.thread+'&replyto='+r.id+'&replyuid='+r.user.uid;if(l){if(!l.less()&&((l.post_ok&&!l.indirect)||l.reply_ok))p+='&last='+l.cspan().last_id;p+='&t='+l.type+'&ind='+(l.indirect?1:0);p+='&mode='+notelist.spans(l.mode);l.replyplace=rp;l.getoldernotes=false;if(l.rootroom)drop=l.pane.edit_room_drop;else if(!user.logged_in())drop=function(){alert("Sorry, guests can't add items to notes")}}else p+='&mode=none';o={mode:'none',place:place,type:type,rp:rp,r:r,params:p};if(l){o.l=l;o.mode=l.mode;o.ind=l.indirect;o.req_title=(l.mode=='forum'||l.rootroom)}if(drop)o.drop=drop;return o};notes.post=function(l,e){if(!l)var l=page.notelist;else if(typeof(l)=='string')l=(l=='user'?user:page).notelist;var ops=notes.get_ops(l,l.room,l.type,false);if(l.rootroom){page.editroom(null,ops,notes.postgo);return}if(!e)var e={};var w=win.get('post'+l.id);if(w&&w.displayed&&!story.onclose(w))return;var geo,ll,r=(l.type=='g'?'general':(l.type=='f'?'friends':'notices'));r='<span onclick="main.log_into(\''+l.room.hash1+"','"+l.room.hash2+"','"+menus.talktype(r)+'\')">'+l.name()+'</span>';w=story.edit('post'+l.id,'Post to '+r,true,{},notes.postgo,notes.preview,ops);w.geo_tab(l.mode=='geo');for(var t in e)story.drope(w,t,e[t])};notes.reply=function(lid,id){var r=notes.getnote(lid,id).n,type,place,l;if(r.type=='private'){l=users.get_user().conversations;place=r.user;type='p'}else{l=notelist.get(lid);place=r.place;type=r.type.substr(0,1)}if(l.type=='n'&&(!l.post_ok||l.base_mode=='room'))type='g';story.edit('reply',(r.type=='private'?'Private message to '+r.user.short_name():'Post reply'),false,{title:r.title,text:'[quote='+r.user.name()+']\n'+r.text.stripitems()+'\n[/quote]'},notes.postgo,notes.preview,notes.get_ops(l,place,type,place,r))};user.send_pm=function(x,u){if(!u)var u=user.displayed;story.edit('private','Private message to '+u.short_name(),true,{},notes.postgo,notes.preview,notes.get_ops(null,u,'p',false))};user.send_pubm=function(x,u){if(!u)var u=user.displayed;story.edit('public','Public message to '+u.short_name(),true,{},notes.postgo,notes.preview,notes.get_ops(u.general_notes,u,'g',false))};notes.postgo=function(c){var el=c.elements,o=c.ops;if(!notes.ok(c))return;if(o.l)o.l.get_older_notes=false;o=notes.get_ops(o.l,o.place,o.type,o.rp,o.r);o.name=c.ops.name;c.ops=o;if(!user.logged_in()){notes.guest_note={note:el.text,ops:o};var hdr='If you log in you can post without entering these CAPTCHA codes. Also you can post longer notes, and edit and delete notes after they are posted.';var h='<table style="margin-bottom:0.5em"><tr><td><img id="captcha" src="securimage/securimage_show.php?'+Math.random()+'" alt="CAPTCHA Image"></td>';h+='<td><button onclick="\'captcha\'.e().src = \'securimage/securimage_show.php?\' + Math.random()">Change text</button></td></tr></table>';h+='Enter the above text: <input type="text" name="captcha_code" size="10" maxlength="6" id="captcha_text">';dialog(hdr,h,true,'notes.guest_post()');return}var i,dstr='';for(i in el)if(el[i])dstr+='&'+i+'='+encodeURIComponent(el[i].el_data());if(o.l&&o.l.rootroom)dstr+='&gp='+(c.gp?1:0)+'&mode='+c.mode+'&post='+c.post+'&visit='+c.visit+'&indirect='+(c.indirect?1:0);notes.ajax.post((o.l?o.l.ajax_post:'postnote.php'),o.params,dstr.substr(1),notes.post_response,c)};notes.post_response=function(success,response,c){if(success){if(response.status=='roomexists'){alert("That person or room is already on that list");return}var o=c.ops,l,e=c.elements;if(o.name){if(service_name(service)!='Dev'&&services[service].update){var go,dstr='update='+encodeURIComponent(c.elements.text.stripbbc())+'&vid='+visitid+'&nid='+response.id;dstr+='&el='+(e.photo||e.video||e.geo||e.person||e.room?1:0);if(o.r&&o.r.extservice&&o.r.extservice==service){dstr+='&tid='+o.r.thread+'&rid='+o.r.extid+'&ruser='+encodeURIComponent(o.r.extuser);go=true}else if(o.l&&o.l.menu=='u'&&o.l.post_ok&&!o.l.indirect&&o.place.admin.is_user())go=confirm('Post this to your '+service_name(service)+' page also?');if(go)notes.ajax.post('postupdate.php','',dstr,notes.post_update_response)}story.clear(o.name)}if(l=o.l){l.freshen=false;l.setlastid=false;if(l.displayed()&&l.mode=='geo'&&c.mg){l.pane.geo.remove_note(c.mg)}if(l.type=='n'&&o.type=='g'){if(confirm('Your reply has been posted in the '+l.replyplace.short_name()+' general discussion area.\nGo there now?'))main.log_into(l.replyplace.hash1,l.replyplace.hash2,'d')}else if(l.displayed()&&l.mode==o.mode&&l.indirect==o.ind){if(!l.less()||l.mode=='room'){l.what='post';notelist.get_response(true,response.notes.parse_vars(),{l:l,mode:l.mode,ind:l.indirect,nn:[]})}else if(confirm('Your note has been posted. Page down to see it?'))page.refresh_notelist();else{l.freshen=true}}else l.freshen=true}}};notes.post_update_response=function(success,response){if(success&&response.status!=200){if(service=='facebook'){if(confirm('Failed to post to Facebook -- you may need to enable posting permissions.\n\nEnable now?')){set_cookie('addauth','status',1);window.location=site_main+'/login.php?service='+service+'&visit='+visitid}}else alert('Failed to post to your '+service_name(service)+' page. Depending on your service you may need to sign in,\nor enable status update privileges for the MeechMe application on the service.')}};notes.guest_post=function(){var o=notes.guest_note.ops;dstr='text='+encodeURIComponent(notes.guest_note.note);notes.ajax.post('postnote.php',o.params+'&captcha='+encodeURIComponent('captcha_text'.e().value.trim()),dstr,notes.guest_post_response,o)};notes.guest_post_response=function(success,response,o){if(success){if(response.status=='ok'){dialog_cancel();notes.post_response(true,response,{ops:o})}else if(response.status=='nocaptcha')alert('The code you entered was incorrect. Please try again.')}};notes.ok=function(c){var n=c.elements,l=c.ops.l;if(!user.logged_in()){if(n.text.length>250){alert("Your note is "+n.text.length+" characters -- maximum for guests is 250");return false}return true}if(n.text.length>800){alert("Your note is "+n.text.length+" characters -- maximum is 800");return false}if(l&&l.type=='z')return true;if(c.ops.r){if(n.text==''){alert('Some text is required in replies.');return false}return true};if(n.geo&&n.geo.title==''){alert('Please enter a name for this location');return false}if(l&&!l.displayed()&&l.panename!='user'){if(!n.text&&!n.photo&&!n.video&&!n.geo&&!n.room&&!n.person){alert("Nothing to post!");return false}return true}if(l)switch(l.mode){case'updates':case'chat':if(n.text==''){alert('Some text is required when posting in this mode.');return false}break;case'forum':if(n.text==''||!n.title){alert('Some text and a title are required to post in forum mode.');return false}break;case'geo':if(!n.geo){alert('A location is required to post in map mode.');return false}break;case'room':if(l.rootroom){if(n.title)return true;alert('A room title is required');return false}if(!n.room&&!n.person){alert('A person and/or a room is required to post in person/room mode');return false}break;default:if(!n[l.mode]){alert('A '+l.mode+' is required to post in '+l.mode+' mode.');return false}}else if(n.text=='')return false;return true};notes.preview=function(el){var n=new _note();n.id='preview';n.user=users.get_user();var d=new Date();n.added=d.getTime()/1000.0;n.text=el.text;n.photo=el.photo;n.video=el.video;n.geo=el.geo;n.person=el.person;n.room=el.room;n.wiki=el.wiki;n.display()};notes.map_note=function(e,n){if(!win.dragging){var i,g,v=[],l=n.list.dlist,geo=n.list.pane.geo;var p=geo.get_note(n.did),h='',m,x;for(i=0;i<l.length;i++)if((g=geo.get_note(l[i].did))){if(g.selected&&geo.edit&&geo.edit.active){v=[g];break}if(g.mergedto==p)v.push(g)}if(v.length==1){v[0].aux.display({type:'map',positionto:e,pos:'auto2',align:'auto2'});notes.clear_maptimeout()}else{m=menus.new_context();for(i=0;i<v.length;i++){x=new menu_item('m'+i,v[i].title.maxlength(40),'notelist.get('+n.list.id+').pane.geo.get_note('+v[i].aux.did+').select()');x.mouseover('notes.mapchoice(this,'+n.list.id+','+v[i].aux.did+')"','notes.maptimer()');m.add(x)}notes.clear_maptimeout();menus.contextgo(0,m,'map_menu',true,2000)}}};notes.mapchoice=function(e,lid,did){notes.clear_maptimeout();notelist.get(lid).getnote(did).n.display({type:'map',positionto:e,pos:'auto',align:'auto'})};notes.maptimer=function(){notes.maptimeout=setTimeout("win.close('mapnote')",500)};notes.clear_maptimeout=function(){if(notes.maptimeout){clearTimeout(notes.maptimeout);notes.maptimeout=false}};notes.delete_note=function(lid,id){if(!confirm("Are you sure you want to delete that note?"))return;var p,w,n=notes.getnote(lid,id).n;p=n.place;w=win.get('edit');if(w&&w.displayed&&w.content.note.id==n.id)w.close(true);this.ajax.get(n.list.ajax_remove,'in='+p.uid+'&id='+n.id+'&admin='+admin,this.delete_response,n)};notes.delete_response=function(success,result,n){if(!success)return;if(!result.deleted){alert("You don't have permission to do that");return}win.close('mapnote');notelist.edit(function(s){s.remove(n.id)},function(l){if(l.head&&l.head.id==n.id){l.head.head=false;l.head=null;if(l.displayed())l.put_head()}},function(l,j){var d=l.dlist;if(d[j].id==n.id){if(l.displayed())l.undisp(d[j].did);d.splice(j,1);return 0}return 1})};notes.edit=function(lid,id){var l=notelist.get(lid);var n=l.getnote(id).n;var w=story.edit('edit','Edit note',(n.thread==n.id),{title:n.title,text:n.text,photo:n.photo,video:n.video,geo:(n.geo?n.geo.clone():null),person:n.person,room:n.room,wiki:n.wiki},notes.edit2,notes.preview,{n:n,l:l,req_title:(l.mode=='forum')},n);w.geo_tab(l.mode=='geo');if(l.mode=='geo'){var g=l.pane.geo.get_note(id);if(n.geo&&g){w.content.mg=g;l.pane.geo.edit.setnote(g,w.content.elements.geo)}}};notes.edit2=function(c){var el=c.elements,a=c.ops,l=c.ops.l;var p,n=a.n;if(!notes.ok(c))return;if(l.mode=='geo')l.pane.geo.edit.close();var i,dstr='';for(i in el)if(el[i])dstr+='&'+i+'='+encodeURIComponent(el[i].el_data());p=n.place;notes.ajax.post(l.ajax_edit,'in='+p.uid+'&id='+n.id+'&admin='+admin,dstr.substr(1),notes.edit_response,c)};notes.edit_response=function(success,result,c){if(success){var el=c.elements,a=c.ops,l=c.ops.l;var id=a.n.id,i;function un(n){if(n.id==id)for(i in el)n[i]=el[i];return n.id==id}if(l.displayed()&&l.mode=='geo'){un(a.n);if(c.mg)l.pane.geo.remove_note(c.mg);if(a.n.geo)l.pane.geo.add(a.n.gogeo()).select()}notelist.edit(function(s){for(i=0;i<s.all.length;i++)un(s.all[i])},function(l){if(l.head&&un(l.head)&&l.displayed())l.put_head()},function(l,j){var d=l.dlist,n;if(un(d[j])&&l.displayed()){switch(l.mode){case'geo':break;case'photo':case'video':if(!d[j][l.mode]){l.undisp(d[j].id);break}default:if(n=l.note(d[j].did)){n.innerHTML=d[j].html(l.mode);notes.quotesvisible(n,false,false);l.adjustphotos=true}}}return 1});story.clear('edit')}};notes.getnote=function(lid,id){return notelist.get(lid).getnote(id)};function last_id(t,m,l){var i=this;i.cn='lastid_'+t;i.m=m;i.l=l;var c=get_cookie(i.cn);i.id=(c?parseInt(c):0);i.hn=false};last_id.prototype.set=function(id){var l=this;if(id>=l.id){l.id=id;set_cookie(l.cn,id,30);if(l.hn)l.update(false)}};last_id.prototype.set_new=function(id){var l=this;if(id>l.id){l.id=id;if(!l.hn)l.update(true)}};last_id.prototype.update=function(n){var t=this;('sidebar_'+t.m).e().innerHTML='<span>'+t.l+'</span>'+(n?' <img src="gfx/updates.gif">':'');t.hn=n};notes.last_ids={fu:new last_id('fu','uf','Friends'),fo:new last_id('fo','uo','Following'),c:new last_id('c','dc','Conversations'),b:new last_id('b','db','Public Msgs'),p:new last_id('p','dp','Private Msgs')};notes.get_last_ids=function(){var i,p='uid='+userid,l=notes.last_ids;for(i in l)p+='&'+i+'='+l[i].id;notes.ajax.get("getlastids.php",p,function(s,r){if(s)for(i in r)l[i].set_new(parseInt(r[i]))})};_user.prototype.make_discuss=function(){var l,u=this;if(!(l=u.general_notes)){l=u.general_notes=new _notelist(u,'d','getnotes.php','g',20);l.post_ok=l.reply_ok=(user.logged_in()||guestpost)}return l};notes.display_general=function(){page.displayed.make_discuss().display()};_user.prototype.make_friendschat=function(){var l,u=this;if(!(l=u.friends_notes)){l=u.friends_notes=new _notelist(u,'df','getnotes.php','f',20);l.post_ok=l.reply_ok=user.logged_in()}return l};notes.display_friends=function(){if(!user.logged_in()){alert("Please log in first");return}page.displayed.make_friendschat().display()};_notelist.prototype.set_flags=function(u){var r=u.room,l=this;switch(r.post){case'guests':l.posk_ok=true;break;case'signedin':l.post_ok=user.logged_in();break;case'friends':l.post_ok=(u.admin.is_user()||u.admin.is_friend());break;case'owner':l.post_ok=u.admin.is_user();break}l.reply_ok=(l.post_ok||user.logged_in()||r.guestpost)};_user.prototype.make_notices=function(){var l,u=this;if(!(l=u.notices)){l=u.notices=new _notelist(u,'u','getnotes.php','n',20);l.indirect=u.room.indirect;l.mode=u.room.updates_mode;if(l.mode=='group')l.mode='updates'}l.set_flags(u);return l};notes.display_notices=function(){page.displayed.make_notices().display()};notes.display_friendsup=function(){if(!main.visit_user('uf'))return;var u=users.get_user();var l=u.friendsup;if(!l){l=u.friendsup=new _notelist(u,'uf','getnotes.php','fu',20);l.last_id=notes.last_ids.fu;l.indirect=true;l.post_ok=false;l.reply_ok=true}l.display()};notes.get_following=function(){var l,u=users.get_user();if(!(l=u.followup)){l=u.followup=new _notelist(u,'uo','getnotes.php','fo',20);l.last_id=notes.last_ids.fo;l.indirect=true;l.post_ok=true;l.reply_ok=true;l.show_room='ifroom'}return l};notes.display_followup=function(){if(main.visit_user('uo'))notes.get_following().display()};notes.display_meechmeup=function(){if(!main.visit_user('um'))return;var u=users.get_user();var l=u.meechmeup;if(!l){l=u.meechmeup=new _notelist(u,'um','getnotes.php','m',20);l.post_ok=l.reply_ok=false}l.display()};notes.make_room=function(n){var x,t=new _note();t.did=notelist.nextid++;t.thread=t.id=parseInt(n.id);t.date=t.added=parseInt(n.lastpost_t);t.replies=t.lastreply=0;t.room=users.add(n.hash1,n.hash2);t.room.admin=users.add(n.owner1,n.owner2);if(n.status=='deleted'){t.room.uid=t.id;users.uid[n.id]=t.room;t.room.noretrieve=true;t.room.display_name=n.displayname;t.room.service='web'}t.user=page.displayed;t.nid=new nid(t.date,t.id);t.istweet=t.head=false;t.text=(n.welcome?n.welcome:'');t.room.set_room(n);return t};_user.prototype.get_rooms=function(c){var l,u=this;if(l=u.rooms){if(c)c()}else{l=u.rooms=new _notelist(u,'r','getrooms.php','r',1000,'user');l.mode='room';l.post_ok=u.admin.is_user();l.reply_ok;l.rootroom=true;l.ajax_post='newroom.php';l.makenote=function(n){return notes.make_room(n)};l.get('all','room',false,c)}};_user.prototype.room_types=function(){var i,l,t={n:0};if(this.rooms){l=this.rooms.cspan('room',false).all;for(i=0;i<l.length;i++)t[l[i].room.room.updates_mode]=true;t.n=l.length}return t};notes.display_rooms=function(){var u=user.displayed;u.get_rooms(function(){u.rooms.display()})};notes.display_conversations=function(){var u=users.get_user();if(!main.visit_user('dc'))return;var l=u.conversations;if(!l){l=u.conversations=new _notelist(u,'dc','getnotes.php','c',20);l.last_id=notes.last_ids.c;l.post_ok=false;l.reply_ok=l.show_room='all'}l.display()};_user.prototype.make_private=function(){var l,u=this;if(!(l=u.private_msgs)){l=u.private_msgs=new _notelist(u,'dp','getnotes.php','p',20);l.last_id=notes.last_ids.p;l.post_ok=false;l.reply_ok=true}return l};notes.display_private=function(){if(main.visit_user('dp'))users.get_user().make_private().display()};_user.prototype.make_public=function(){var l,u=this;if(!(l=u.public_msgs)){l=u.public_msgs=new _notelist(u,'db','getnotes.php','b',20);l.last_id=notes.last_ids.b;l.post_ok=false;l.reply_ok=true;l.show_room='notme'}return l};notes.display_public=function(){if(main.visit_user('db'))users.get_user().make_public().display()};notes.display_thread=function(t,lid){var l=notes.threads[t];if(l)user.set(l.room,null,function(){l.display()});else{function go(r,p){notes.threads[t]=l=new _notelist(r,'t','getnotes.php','t',20,'user');l.thread=t;l.parent=p;l.head=null;l.post_ok=false;l.reply_ok=p.reply_ok;users.need_room(r);user.set(r,null,function(){l.display()})};if(lid){l=notelist.get(lid);go(l.room,l)}else{notes.ajax.get('getthread.php','t='+t,function(s,r){if(s){if(r.notfound)alert('That thread was not found');else{var p,room;if(r.type=='private')room=users.get_user();else{room=users.add(r.hash1);users.need_room(room)}users.get_data(function(s){if(s){switch(r.type.substr(0,1)){case'n':p=room.make_notices();break;case'g':p=room.make_discuss();break;case'f':p=room.make_friendschat();break;case'p':p=room.make_private();break}go(room,p)}})}}})}}};notes.display_clipboard=function(){var u=users.get_user(),l=main.clipboard,w,h='<div id="clip_hdr"></div><div id="clip_notes" style="height:300px;overflow:auto"></div>';w=win.open('clipboard',h,{width:'400px',bottom:'100px',right:'100px'},{ondrop:function(w,t,r){var e={};e[t]=story.getel(t,r);notes.post(main.clipboard,e)}});l.container='clip_notes'.e();l.display()};notes.get_menus=function(b){var i,m,u=page.displayed;var l=u.room.updates_mode;b.add(new menu('updates','updates_menu',''));switch(l){case'photo':case'video':l+='s';case'forum':case'chat':case'updates':l=l.capitalize();break;case'geo':l='Map';break;case'room':l='Room list';break;case'group':l='Updates'}var oa=function(){if(page.notelist.thread>0)notes.display_all()},or=page.refresh_notelist;i=menus.new_item('u',l,notes.display_notices,or,oa);i.desc="Main update/gallery/discussion area";i.title=l;m=new menu('mingle','mingle_menu','Mingle');b.add(m);m.add(new menu_item('_title','Discuss this room',null));menus.new_item('d','With everyone',notes.display_general,or,oa);menus.new_item('df','With your friends',notes.display_friends,or,oa);m.add(new menu_item('_blank',''));m.add(new menu_item('_title','Visitors'));menus.new_item('vi',"Who's here now",active.update);menus.new_item('vp','Previous visitors',active.display_past,active.update_past);if(user.logged_in()){menus.new_item('dc','Your conversations',notes.display_conversations,or,oa).hidden=true;menus.new_item('dp','Your private messages',notes.display_private,or,oa).hidden=true;menus.new_item('db','Your public messages',notes.display_public,or,oa).hidden=true;menus.new_item('uf','From your friends',notes.display_friendsup,or,oa).hidden=true;menus.new_item('uo','From your followees',notes.display_followup,or,oa).hidden=true;menus.new_item('um','From MeechMe',notes.display_meechmeup,or,oa).hidden=true}};td_user=function(u,isp,m){this.u=u;this.isplace=isp;this.menu=m};td_user.prototype.td_text=function(){return this.u.link('user',this.isplace,true,'',this.menu)};td_user.prototype.td_value=function(){return this.u.name().toLowerCase()};var td_blank={};td_blank.td_value=function(){return 0};td_blank.td_text=function(){return'-'};function td_when(t){this.t=t};td_when.prototype.td_text=function(){return time_phrase(this.t)};td_when.prototype.td_value=function(){return this.t};function td_ago(ago){this.value=ago};td_ago.prototype.td_text=function(){if(this.value==0)return'?';return ago(server_t()-this.value)};td_ago.prototype.td_value=function(){return-this.value};function td_idle(idle){this.value=idle};td_idle.prototype.td_text=function(){return''+Math.max(0,Math.floor(parseInt(this.value)/60.0))+' min.'};td_idle.prototype.td_value=function(){return this.value};function td_int(v){this.value=v};td_int.prototype.td_text=function(){return this.value};td_int.prototype.td_value=function(){return this.value};function table(classname,gref,bar){this.classname=classname;this.gref=gref;this.pane=(bar=='page'?page:user);this.gallery={};this.pp={}};table.prototype.clear=function(m){var t=this;t.menu=m;t.headers=[];t.rows=[];t.last_sortcol=-1;t.friends=t.showmap=t.neednames=false;var n=t.gn()+'_pp';if(t.pp[n])t.perpage=t.pp[n];else{var pp=get_cookie(n);t.perpage=t.pp[n]=(!pp?50:parseInt(pp))}t.page=1;t.type='normal';t.more=false;t.getdata=t.gd_normal};table.prototype.settype=function(tp){var t=this;t.type=tp;switch(tp){case'xlist':t.xlist=arguments[1];t.getmore=t.more_xlist;t.more=t.xlist.more;t.xlist.getfirst(t);break}};table.prototype.display=function(c,rv){if(this.rows.length==0&&this.more)this.getmore();else{if(arguments.length<2)var rv=false;if(arguments.length<1)var c=-1;this.getdata(c,rv)}};table.prototype.gd_normal=function(c,rv){var i,j,r,e,f,l,col=(c<0?this.last_sortcol:c);if(col==0&&!this.neednames){if(c>=0){this.sort(c);if(rv)this.rows.reverse();c=-1}f=(this.page-1)*this.perpage;l=Math.min(f+this.perpage,this.rows.length)}else{f=0;l=this.rows.length}for(i=f;i<l;i++){r=this.rows[i];for(j=0;j<r.length;j++){e=r[j];if(typeof(e)!='string'&&e.u)e.u.noretrieve=false}}users.get_data(display_table,{t:this,c:c,r:rv})};function display_table(success,a){if(success){var i,t=a.t;var j,e,r=t.rows,u;for(i=0;i<r.length;i++){u=r[i][0].u;if(u.display_name)for(j=1;j<r[i].length;j++){e=r[i][j];if(typeof(e)=='string')r[i][j]=t.getcell(e,u)}}if(a.c>=0){t.sort(a.c);if(a.r)r.reverse()}menus.set_active(t.menu,false);if(r.length>t.perpage||t.more)t.put_hdr();else t.pane.empty_data_hdr();t.pane.fill_html(t.to_html());t.pane.controls()}};table.prototype.put_hdr=function(){var t=this;var p=t.page,n=Math.ceil(t.rows.length/t.perpage),h='Page ',l=0;function ph(pg){var h='';if(pg-l>1)h+='<span class="tbl_selpage" onclick="'+t.gref+'.setpage('+Math.floor((pg+l)/2)+')">...</span>';l=pg;if(pg==p)h+='<span class="tbl_curpage">';else h+='<span class="tbl_selpage" onclick="'+t.gref+'.setpage('+pg+')">';return h+pg+'</span>'}h+=ph(1);if(p-1>1)h+=ph(p-1);if(p>1&&p<n)h+=ph(p);if(p+1<n)h+=ph(p+1);if(n>1)h+=ph(n);if(t.more)h+='<span class="tbl_selpage" onclick="'+this.gref+'.getmore()">load page '+(n+1)+'</a>';t.pane.fill_data_hdr('<div class="table_hdr">'+h+'</div>')};table.prototype.sortdisp=function(c){this.display(c)};table.prototype.setpage=function(p){this.page=p;this.nomap();this.display()};table.prototype.nomap=function(){this.showmap=false;if(this.pane.geo)this.pane.geo.active=false};table.prototype.setlastpage=function(){this.page=Math.max(Math.ceil(this.rows.length/this.perpage),1);this.nomap()};table.prototype.more_xlist=function(){this.xlist.getmore(this,more_xlist_response)};function more_xlist_response(success,response,a){if(success&&a.t.pane.displayed.same(a.u)){var i,t=a.t,x=a.x,n=0;for(i in response){x.add(response[i].parse_vars(),t);n+=1}t.more=x.more=(n==t.perpage);t.last_sortcol=-1;t.sort(x.sortcol);t.setlastpage();t.display()}};table.prototype.getcell=function(type,u){switch(type){case'lastvisit':return(u.visits&&u.visits.last?u.visits.last:td_blank);case'lastnote':return(u.visits&&u.visits.note?u.visits.note:td_blank);case'lastvisitor':return(u.visits&&u.visits.visitor?u.visits.visitor:td_blank);case'lastpost':return(u.visits&&u.visits.post?u.visits.post:td_blank);case'stockvalue':return new td_dollars(u.stock_value);case'earnings':return new td_dollars(u.earnings);case'cash':return new td_dollars(u.cash);case'idle':return new td_idle(u.idle);case'loggedin':return new td_ago(u.loggedin)}};table.prototype.displayed=function(){return this.menu&&menus.is_active(this.menu)};table.prototype.add_header=function(text,css_class){this.headers.push({text:text,css_class:css_class})};table.prototype.add_row=function(row){this.rows.push(row);if(row[0].u&&!row[0].u.display_name)this.neednames=true};table.prototype.havedata=function(row){return(row[0].u.retrieved||row[0].u.retrieve_tries==0)};table.prototype.sort=function(sortcol){function cmp(a,b){if(typeof(a[sortcol])=='string'||typeof(b[sortcol])=='string')return 0;var av=a[sortcol].td_value();var bv=b[sortcol].td_value();if(av>bv)return 1;if(av<bv)return-1;av=a[0].td_value();bv=b[0].td_value();return(av>bv?1:(av<bv?-1:0))};if(sortcol==this.last_sortcol){this.rows.reverse();this.up=!this.up}else{this.rows.sort(cmp);this.up=true}this.last_sortcol=sortcol;this.page=1};table.prototype.have_row=function(geo,friend){var i,u,t=this;var f=(t.page-1)*t.perpage;for(i=0;i<t.perpage&&i+f<t.rows.length;i++){u=t.rows[i+f][0].u;if(u&&u.display_name&&(!geo||u.profile.geolocation)&&(!friend||u.following))return true}return false};table.prototype.gn=function(){return'tg_'+this.menu};table.prototype.isgallery=function(){return(this.menu?this.gallery[this.gn()]:false)};table.prototype.set_view=function(v){var n=this.gn(),p=this.pane;if(this.showmap){if(p.geo)p.geo.active=false;this.showmap=false}this.gallery[n]=v;if(v==0)del_cookie(n);else set_cookie(n,v,365);this.display();p.controls();p.update_options()};table.prototype.set_map=function(){if(!this.showmap){this.showmap=true;var p=this.pane;var g=new geo(this.getlocs(),p.menu_bar_name,{mouseover:user.pop_profile_map,mouseout:main.hide_info,context:menus.map_context});p.geo=g;p.fill_html(g.html());menus.exit_handler(p.menu_bar_name,p.geo_on_exit);g.go();p.controls();p.update_options()}};table.prototype.to_html=function(){var t=this;if(t.isgallery()===undefined){var n=t.gn();var g=get_cookie(n);t.gallery[n]=(!g?0:parseInt(g))}if(t.rows.length==0)return'';if(t.isgallery())return t.gallery_html();var r,i,ri,j,hd=t.headers;var h='<table class="'+t.classname+'" cellspacing="0" cellpadding="0"><thead><tr>';for(i=0;i<hd.length;i++){h+='<td class="'+hd[i].css_class+'"><span class="tbl_hdr_cont" onclick="'+t.gref+'.sortdisp('+i+')"><span class="tbl_hdr';h+=(i==t.last_sortcol?(t.up?'_up':'_down'):'');h+='">'+hd[i].text+'</span></span></td>'}h+='</tr></thead><tbody>';var f=(t.page-1)*t.perpage;ri=0;for(i=0;i<t.perpage&&i+f<t.rows.length;i++){r=t.rows[i+f];if(r[0].u.display_name&&(!t.friends||r[0].u.following)){h+='<tr class="tblrow_'+(ri%2==1?'odd':'even')+'">';ri+=1;for(j=0;j<r.length;j++)h+='<td class="'+hd[j].css_class+'">'+r[j].td_text()+'</td>';h+='</tr>'}}h+='</tbody></table>';return h};table.prototype.gallery_html=function(){var i,r,u,h='',t=this;var s=t.isgallery(),f=(t.page-1)*t.perpage;for(i=0;i<t.perpage&&i+f<t.rows.length;i++){r=t.rows[i+f];u=r[0].u;if(!u.display_name||(t.friends&&!u.following))continue;if(s==2)h+='<div class="table_gallery_big">';h+='<div class="table_gallery'+(s==1?'':'2')+'" onclick="'+u.linkjs(r[0].isplace)+'" onmouseover="'+t.gref+'.gallery_info(this,'+(i+f)+')" onmouseout="main.hide_info()"';h+=' oncontextmenu="menus.context(event,'+u.id+');return false"';if(u.photo)h+=' style="background-image:url(\''+u.photo[(s==1?u.photo.smallest():u.photo.mediumest())]+'\')"';h+='></div>';if(s==2)h+='<div class="tg_name">'+u.short_name()+'</div></div>'}return h};table.prototype.gallery_info=function(e,i){var r=this.rows[i];var u=r[0].u;var h='<div id="tg_info"><div id="tg_info_hdr">'+u.short_name()+'</div>';var p=u.micro_profile();if(p!='')h+='<div id="tg_info_prof">'+p+'</div>';h+='<table cellspacing="0" cellpadding="0">';for(var i=1;i<r.length;i++)h+='<tr><td class="tg_info_label">'+this.headers[i].text+'</td><td>'+r[i].td_text()+'</td></tr>';h+='</table></div>';main.show_info(e,'auto','auto',h)};table.prototype.getlocs=function(){var g,i,l=[],t=this;var u,f=(t.page-1)*t.perpage;for(i=0;i<t.perpage&&i+f<t.rows.length;i++){u=t.rows[i+f][0].u;if(u&&u.display_name&&u.profile.geolocation&&(!this.friends||u.following)){g=u.profile.geolocation;l.push(new geoloc(g.lat,g.long,g.zoom,-1,u.short_name(),'',u.id))}}return l};table.prototype.have_options=function(){return true};table.prototype.options=function(){var t=this;var m=t.showmap,g=this.isgallery(),n=t.pane.menu_bar_name+'.table';var h='Per page:&nbsp;<select id="perpage" onchange="'+n+'.set_perpage()">';for(var pp=25;pp<=200;pp*=2){h+='<option value="'+pp+'"';if(pp==this.perpage)h+=' selected="selected"';h+='>'+pp+'</option>'}h+='</select><br><br>View<br><input type="radio" name="tableopts" onclick="'+n+'.set_view(0)"';if(!m&&g==0)h+=' checked="checked"';h+='> as list<br><input type="radio" name="tableopts" onclick="'+n+'.set_view(1)"';if(!m&&g==1)h+=' checked="checked"';h+='> as small gallery<br><input type="radio" name="tableopts" onclick="'+n+'.set_view(2)"';if(!m&&g==2)h+=' checked="checked"';h+='> as bigger gallery';if(t.have_row(true,t.friends)){h+='<br><input type="radio" name="tableopts" onclick="'+n+'.set_map()"';if(m)h+=' checked="checked"';h+='> on map'}if(t.have_row(t.showmap,!t.friends)){h+='<br><br><input type="checkbox"';if(t.friends)h+=' checked="checked"';h+=' onclick="'+n+'.set_friends(this.checked)"> Show friends &amp; following'}return h};table.prototype.set_perpage=function(){var el='perpage'.e(),p=this.pane,n=this.gn()+'_pp';this.perpage=this.pp[n]=parseInt(el.options[el.selectedIndex].value);set_cookie(n,this.perpage,365);if(this.showmap){if(p.geo)p.geo.onexit();this.showmap=false}this.page=1;this.display();p.controls();p.update_options()};function xlist(a,f,m,c){this.list=[];this.add=a;this.getfirst=f;this.getmore=m;this.sortcol=c;this.more=true;this.lastid=this.lastt=this.firstid=this.firstt=0};xlist.prototype.update_tid=function(t,id){var x=this;if(x.firstt==0||t<x.firstt)x.firstt=t;if(x.lastt==0||t>x.lastt)x.lastt=t;if(x.firstid==0||id<x.firstid)x.firstid=id;if(x.lastid==0||id>x.lastid)x.lastid=id};active.add_past_user=function(l,t){var u=users.addtbl(l.userhash1,l.userhash2);var r={u:u,t:parseInt(l.loggedin)};u.loggedin=r.t;this.update_tid(r.t,parseInt(l.id));this.list.push(r);active.past_row(t,r)};active.init_past_users=function(t){for(var i=0;i<this.list.length;i++)active.past_row(t,this.list[i])};active.past_row=function(t,r){if(t)t.add_row([new td_user(r.u),new td_ago(r.t),'stockvalue','earnings','cash'])};active.get_past_users=function(t,c){var x=this;var p=(x.firstid==0?'last=0':'first='+x.firstid+'&firstt='+x.firstt);active.ajax.get('gethistory.php',p+'&n='+t.perpage,c,{x:x,t:t,u:page.displayed})};active.clear=function(){this.first=this.last=0;this.banned_loaded=false};page.table=active.table=new table('user_table','page.table','page');function td_visitor(u){this.u=u};td_visitor.prototype.td_text=function(){return(this.u.is_guest()?'Guest(s)':this.u.link('user',false,true))};td_visitor.prototype.td_value=function(){return(this.u.is_guest()?'Guest(s)':this.u.name().toLowerCase())};active.update=function(item){active.ajax.get('getactive.php','',active.update_response,page.displayed)};active.update_response=function(success,gotusers,p){if(!success||!page.displayed.same(p))return;var u,g,t=active.table;t.clear('vi');t.add_header('User','td_user');t.add_header('Idle','td_left');t.add_header('Stock value','td_right');t.add_header('Earnings','td_right');t.add_header('Cash','td_right');for(var k in gotusers){g=gotusers[k].parse_vars();u=users.addtbl(g.userhash1,g.userhash2);u.idle=parseInt(g.lastactivity);t.add_row([new td_visitor(u),'idle','stockvalue','earnings','cash'])}t.display(0)};active.display_past=function(){var x=page.displayed.past_users,t=active.table;if(!x)x=page.displayed.past_users=new xlist(active.add_past_user,active.init_past_users,active.get_past_users,1);t.clear('vp');t.add_header('User','td_user');t.add_header('Logged in','td_left');t.add_header('Stock value','td_right');t.add_header('Earnings','td_right');t.add_header('Cash','td_right');t.settype('xlist',x);t.display(1)};active.update_past=function(){var u=page.displayed;var x=u.past_users;active.ajax.get('gethistory.php','last='+x.lastid+'&lastt='+x.lastt+'&n='+active.table.perpage,active.update_past_response,{u:u,x:x})};active.update_past_response=function(s,r,a){if(s&&page.displayed.same(a.u)){for(var i in r)a.x.add(r[i].parse_vars());active.display_past()}};active.banned=function(){if(!page.displayed.stock.banned)active.ajax.get('getbanned.php','stock1='+stockhash1+'&stock2='+stockhash2,active.banned_response);else active.fill_banned()};active.refresh_banned=function(){page.displayed.stock.banned=false;active.banned()};active.banned_response=function(success,response){if(success){var l=[],s=users.get(response.stock1,response.stock2);var b,banned=response.banned.parse_vars();for(var i in banned){b=banned[i].parse_vars();l.push(users.add_profile(b.userhash1,b.userhash2,b.profile.parse_vars()))}s.banned=l;if(s.same(page.displayed.stock))active.fill_banned();user.ban_control()}};active.fill_banned=function(){var u,tbl=active.table;tbl.clear('bn');tbl.add_header('User','td_user');var i,l=page.displayed.stock.banned;for(i=0;i<l.length;i++)tbl.add_row([new td_user(l[i])]);tbl.display(0);page.controls()};active.sort=function(col){this.table.display(col,false)};active.get_menus=function(menu_bar){if(page.displayed.stock){m=new menu('stocks','stocks_menu','Stocks');menu_bar.add(m);if(user.logged_in())m.add(new menu_item('buysell','Auto buy/sell this stock',page.buysell_settings));menus.new_item('sh','Stock holders',active.show_holders,active.refresh_holders);menus.new_item('ob','Offers to buy',active.show_buyers,active.refresh_buyers);menus.new_item('os','Offers to sell',active.show_sellers,active.refresh_sellers);menus.new_item('sx','Transactions',page.show_transactions,page.refresh_transactions)}};user.displayed=false;user.table=new table('user_table','user.table','user');user.logged_in=function(){return(service!='')};user.ispublic=function(f){return(public[f]?parseInt(public[f]):0)};user.participating=function(){return(user.ispublic('displayname')==2&&user.ispublic('servicepage')==2)};user.name=function(){if(user.displayed)return user.displayed.name();return'Please log in using your favorite social networking account'};user.login=function(extra){dialog_cancel();if(!extra)var extra='';else extra=",'"+extra+"'";var el='select_service'.e();var button='login'.e();var e=button,x=0,y=0;while(e!=null){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent}el.style.left=(x-250+button.offsetWidth-4)+'px';el.style.top=(y+button.offsetHeight+2)+'px';var h='<div id="login_service">Sign in with your account on one of these services:</div>';var services1=['Facebook','Twitter','Flickr','MySpace','Foursquare'];var services2=['Google','YouTube','Photobucket','Yahoo','LinkedIn'];function item(s,pad){if(s=='')return'<td></td><td></td>';var l=s.toLowerCase();return'<td style="padding-left:'+pad+'px;height:27px"><img src="http://meechme.com/gfx/'+l+'.png" alt=""></td><td style="height:27px;font-size:10pt"><a onmouseover="this.style.backgroundColor=\'#f4f4f4\'" onmouseout="this.style.backgroundColor=\'#fff\'" style="display:block;color:#000;text-decoration:none;margin-left:4px;padding:4px" href="javascript:user.login_service(\''+l+'\',true'+extra+')">'+s+'</a></td>'};h+='<div style="padding-bottom:4px;border-bottom:1px solid #f4f4f4"><table cellspacing="0" cellpadding="0" border="0">';for(var i=0;i<services1.length;i++)h+='<tr>'+item(services1[i],16)+item(services2[i],32)+'</tr>';h+='</table></div>';user.login_scope={profile:true,updates:true,ext_profile:true,photos:true,friends:true,videos:true,offline:true};h+='<div id="login_scope"><input type="checkbox" checked="checked" onclick="var i,s=user.login_scope;for(i in s)s[i]=this.checked"> link to account <span id="scope_details" onclick="user.scope_details()">[details]</span></div>';h+='<div style="clear:both;text-align:right;padding:8px"><button onclick="dialog_cancel()">Cancel</button></div>';el.innerHTML=h;grey_out();el.style.display='block'};user.scope_details=function(){var i,j=0,s=user.login_scope,h='&nbsp;Link to the following from the selected service:<table cellspacing="0" cellpadding="0"><tr>';for(i in s){if(i!='offline'){h+='<td><input type="checkbox"'+(s[i]?' checked="checked"':'')+' onclick="user.login_scope[\''+i+'\']=this.checked"> ';if(i=='profile')h+='basic profile';else if(i=='ext_profile')h+='extended profile';else h+=i;h+='</td>';if(j++%2>0)h+='</tr><tr>'}}h+='</tr></table><input type="checkbox"'+(s['offline']?' checked="checked"':'')+' onclick="user.login_scope[\'offline\']=this.checked"> auto update links offline';'login_scope'.e().innerHTML=h};user.login_service=function(service,cancel_dialog,extra){if(cancel_dialog)dialog_cancel();abort_ajax();var i,scope='',s=user.login_scope;for(i in s)if(s[i])scope+=','+i;window.location=site_main+'/login.php?service='+service+'&visit='+visitid+(extra?'&extra='+extra:'')+'&scope='+scope.substr(1)};user.logout=function(){main.hide_info();if((arguments.length>0&&arguments[0]===false)||confirm("Log out of Meech Me?")){del_cookie("service");del_cookie("hash1");del_cookie("hash2");del_cookie("sessioncode");del_cookie("expires");del_cookie("login_here");var p=page.displayed,u=users.get_user();if(p.room.visit=='anyone')v=p.uid;else if(u.room&&u.room.visit=='anyone')v=u.uid;else v=2;window.location=site_main+'/'+v}};user.refresh_profile=function(){abort_ajax();window.location=site_main+'/login.php?service='+service+'&visit='+visitid};user.pop_profile_html=function(id,name){var u=users.geti(id),h='<table cellspacing="0" cellpadding="0"><tr>';if(u.photo)h+='<td style="vertical-align:top">'+u.photo.pop_html()+'</td>';var p='';if(name)p+='<b>'+u.short_name()+'</b><br>';if(u.is_person())p+=u.mini_profile();else if(u.room){var w=u.room.welcome,t=u.room.updates_mode;p+=(w==''?w:w.stripbbc().maxlength(200).to_html()+'<br>');if(p!='')p+='<br>';p+=' Type: '+(t=='group'?t:room_types[t].toLowerCase())+'&nbsp;&nbsp;&nbsp;Last update: '+ago(u.room.last,true)}if(p!='')h+='<td style="vertical-align:top"><div class="pop_profile">'+p+'</div></td>';h+='</tr></table>';return h};user.pop_profile=function(se,id){main.show_info(se,'auto2','left',user.pop_profile_html(id,false))};user.pop_profile_map=function(se,id){main.show_info(se,'auto2','auto2',user.pop_profile_html(id,true))};user.display=function(h1,h2){user._display(users.get(h1,h2))};user.displayi=function(i){user._display(users.geti(i))};user._display=function(u){if(menus.ok2go('user')){u.noretrieve=false;users.get_data(user._display2,{u:u})}};user._display2=function(success,args){if(success)user.set(args.u,null,user.display_profile)};user.display_pane=function(html,menu){if(html!=''){menus.set_active(menu);user.fill_html(html);user.controls();main.show(user.name)}};user.display_profile=function(){if(user.displayed)user.display_pane(user.displayed.to_html(),'pr')};user.display_portfolio=function(){if(!user.displayed)return;var u=user.displayed;if(!u.portfolio){user.get_portfolio();return}u.portfolio.portfolio_html(u,user.table,-1);main.show(user.name)};user.display_favorites=function(h1,h2){var g=function(){var u=user.displayed;if(u.favorites)user.display_pane(u.favorites.to_html(),'fv');else user.ajax.get('getfavorites.php','h1='+u.hash1+'&h2='+u.hash2+u.isf(),function(s,r){if(s){u.favorites=new _favorites(r.favorites);user.display_favorites()}})};if(h1){if(!menus.ok2go('user'))return;user.set(users.get(h1,h2),null,g)}else g()};user.display_resume=function(h1,h2){var u=user.displayed;var g=function(){if(!u.resume)user.ajax.get('getresume.php','h1='+u.hash1+'&h2='+u.hash2+u.isf(),user.get_resume_response,{u:u});else user.display_pane('<div class="resume">'+u.resume+'</div>','rs')};if(h1)user.set(users.get(h1,h2),null,g);else g()};user.get_resume_response=function(success,response,args){if(success&&args.u.same(user.displayed)){args.u.resume=response.resume;user.display_resume()}};var prof_fields=[['displayname','Display name'],['servicepage','Profile page URL'],['image','Profile picture'],['about','About me'],['sex','Gender'],['age','Age'],['location','Location'],['occupation','Occupation'],['relationship','Relationship status'],['interests','Interests'],['photos','Photo galleries'],['videos','Videos'],['favorites','Favorites'],['resume','Work &amp; education'],['geolocation','Geolocation']];var newpub;user.settings_init=function(){function gp(p){for(var i=0;i<p.length;i++)newpub[p[i][0]]=(new_user?2:user.ispublic(p[i][0]))};newpub={};gp(prof_fields)};user.import_offline=true;user.import_create=true;user.settings_menu=function(n){var h='<div id="settingsmenu">';if(new_user)h+='<span class="usersettings'+(n==0?'_sel':'')+'" onclick="user.new_user(false)">Welcome</span><br>';h+='<span class="usersettings'+(n==1?'_sel':'')+'" onclick="user.settings(false)">Privacy settings</span><br>';if(!new_user){h+='<span class="usersettings'+(n==2?'_sel':'')+'" onclick="user.link_settings(false)">Attached links</span><br>';h+='<span class="usersettings'+(n==3?'_sel':'')+'" onclick="user.link_settings(false,true)">Unattached links</span><br>';h+='<span class="usersettings'+(n==4?'_sel':'')+'" onclick="user.uimport(false)">Import</span><br>'}return h};user.settings_ctl=function(){var o={ok:(new_user?'Begin!':'Save settings'),ok_js:'user.settings_ok()'};if(!new_user)o.cancel='Cancel';return o};user.settings_column=function(v){var i,j,x,p=prof_fields,f='privacy_settings'.e();for(i=0;i<p.length;i++){e=f['prof_'+p[i][0]];x=(i<2?2:v);newpub[p[i][0]]=x;for(j=0;j<3;j++)if(e[j].value==x)e[j].checked=true}};user.new_user=function(init){if(init)user.settings_init();var h='<div class="welcome_new"><div>Welcome, '+display_name+' from '+service_name(service)+'!</div>';h+='<p class="welcome_par">Take a moment if you like to adjust your ';h+='<a href="javascript:user.settings(false)">privacy</a> settings. ';h+='Not every feature presented is supported for '+service_name(service)+' accounts, however ';h+='you will be able to link to other accounts from other services that do support them, and your ';h+='setting choices will apply to them.</p>';h+='<p>Or you can leave that to later and dive right in. ';h+='Visit your place by clicking on the home icon in the left pane, and view your profile by ';h+='clicking on the home icon in the right pane.</p>';main_info(h,user.settings_menu(0),user.settings_ctl())};user.settings=function(init){if(init)user.settings_init();var h='<form id="privacy_settings">';h+='<div class="privacy_desc">Set who can see what from your profile. ';h+="To participate in MeechMe 'Display name' and 'Profile page URL' must be set to 'Everyone'. Click on a ";h+='column header to set the whole column.</div>';var i,j,p=prof_fields;h+='<table cellspacing="0" cellpadding="0" border="0">';h+='<thead><tr><td></td><td onclick="user.settings_column(2)">Everyone</td><td onclick="user.settings_column(1)">Friends</td><td onclick="user.settings_column(0)">No-one</td></tr></thead>';for(i=0;i<p.length;i++){h+='<tr class="tr_'+(i%2==0?'even':'odd')+'"><td>'+p[i][1]+'</td>';for(j=2;j>=0;j--){h+='<td class="pr_choice"><input type="radio" name="prof_'+p[i][0]+'" value="'+j+'"';if((new_user&&j==2)||(!new_user&&j==user.ispublic(p[i][0])))h+=' checked="checked"';h+=" onclick=\"newpub['"+p[i][0]+"']="+j+'"></td>'}h+='</tr>'}h+='</table>';if(!new_user)h+='<br><div class="privacy_desc">Note: photo, video, and geolocation settings will apply only to newly created or imported rooms. Existing room privacy settings may be changed in the room\'s settings.</div>';h+='</form>';main_info(h,user.settings_menu(1),user.settings_ctl())};user.settings_ok=function(){newpub.smallimage=newpub.bigimage=newpub.image;var ok=(newpub['displayname']==2&&newpub['servicepage']==2);if(!ok){ok=confirm("Either 'Display name' or 'Profile page URL' is not set to 'Everyone' -- click OK to confirm\nyou do not wish to participate in MeechMe, or Cancel to go back");ok=(ok&&(new_user||confirm("All of your notes and other information will be deleted.\nAre you sure you want to do this?")))}if(ok){var np=build_query(newpub);var dstr='t='+session_t+'&r='+session_r+'&public='+encodeURIComponent(np);this.ajax.post('setpublic.php','new='+(new_user?1:0),dstr,this.settings_response,np);if(status_enabled!=newpub['status']&&(service=='bebo'))window.open(site_main+'/services/'+service+'/enablestatus.php','EnableStatus','toolbar=0,location=0,statusbar=0,menubar=0,scrollbars=1,resizable=1,width=640,height=480');status_enabled=newpub['status'];dialog_cancel(true)}};user.settings_response=function(success,userprof,np){if(!success){if(new_user)user.settings(true);return}public=newpub;if(new_user)main_info_shown=false;new_user=false;var u=users.get(userhash1,userhash2);if(!user.participating()){user.logout(false);users.clear_user(u)}else{delete u.profile;users.add_data(u.uid,userhash1,userhash2,service,guid,display_name,userprof.profile,u.cash,u.earnings,u.stock_value)}user.get_menus();user.display(userhash1,userhash2)};user.link_settings=function(init,un){if(init)user.settings_init();user.unattached_links=un;var l=user.links;if(l)l.go();else new links(null,true)};user.link_open=function(r,i){open_url(page.link_obj(r).links.list[i].url)};user.uimport=function(init){if(init)user.settings_init();var types=['profile','photos','videos','friends','favorites','updates','geolocation','resume'];var i,from,type='profile';var t,j,h='<div style="margin-left:0.5em"><table>';for(i=0;i<types.length;i++){t=types[i];h+='<tr><td>Import '+t+'</td><td>from <select id="import_'+t+'"><option value="-">-</option>';from=[];for(j in services)if(service_has(j,t))from.push(j);from.sort();for(j=0;j<from.length;j++){h+='<option value="'+from[j]+'"';if(user.import_service[t]&&user.import_service[t]==from[j])h+=' selected="selected"';h+='>'+services[from[j]].name+'</option>'}h+='</select></td><td><button onclick="user.import_go(\''+t+'\',\'\',user.import_offline,!user.import_create)">Go!</button></td></tr>'}h+='</table><br>';h+='<br><input type="checkbox" '+(user.import_create?'checked="checked"':'')+' onclick="user.import_create=this.checked"> Attach new links to rooms';h+='<br><input type="checkbox" '+(user.import_offline?'checked="checked"':'')+' onclick="user.import_offline=this.checked"> Update links while offline';main_info(h+'</div>',user.settings_menu(4))};user.import_go=function(type,from,p,nr){if(!from){var el=('import_'+type).e();var from=el.options[el.selectedIndex].value;if(from=='-')return}dialog_cancel();abort_ajax();var scope;switch(type){case'favorites':case'resume':scope='ext_profile';break;case'geolocation':scope='updates';break;default:scope=type}if(p&&type!='offline')scope+=',offline';if(nr)scope+=',noroom';var params=[service,session_t,session_r,visitid,(p?'persist':''),scope,'',userhash1+userhash2+','+type+','+from];window.location=site_main+'/socthis2.php?params='+params.join('.')};user.welcome=function(success){var u=page.displayed.admin;if(u)user.display(u.hash1,u.hash2);else user.display(f16,f16)};user.ban=function(){var u=user.displayed;if(confirm('Ban '+u.name()+' from this place?')){var p='display_name='+encodeURIComponent(u.display_name);p+='&service='+u.service;p+='&servicepage='+encodeURIComponent(u.profile.servicepage);active.ajax.post('ban.php','banh1='+u.hash1+'&banh2='+u.hash2+'&ban='+u.uid,p,user.ban_response,{u:u,s:page.displayed.stock})}};user.unban=function(){var u=user.displayed;if(confirm('Allow '+u.name()+' to participate again?'))active.ajax.get('unban.php','banh1='+u.hash1+'&banh2='+u.hash2+'&stock1='+stockhash1+'&stock2='+stockhash2,user.unban_response)};user.ban_response=function(success,response,a){if(success){var u=a.u,s=a.s;u.ban_t=server_t();alert(u.name()+' has been banned');if(!s.banned)s.banned=[];var i,l=s.banned;for(i=0;i<l.length;i++)if(l[i].same(u))break;if(i==l.length)l.push(u);user.ban_control();menus.refresh_if('bn');menus.refresh_if('vi');if(page.notelist&&page.notelist.displayed())page.notelist.display()}};user.unban_response=function(success,response){if(success){var u=users.get(response.hash1,response.hash2);alert(u.name()+' has been unbanned');var i,l=users.get(response.stock1,response.stock2).banned;for(i=0;i<l.length;i++)if(l[i].same(u)){l.splice(i,1);break}user.ban_control();menus.refresh_if('bn')}};user.buysell_settings=function(){if(!users.get_user().portfolio){user.get_portfolio(users.get_user(),user.buysell_settings);return}stocks.buysell_settings(user.displayed)};user.refresh=function(){if(user.isthread())user.notelist.refresh();else if(!user.logged_in()||!user.displayed.is_user())user.displayed.get_profile();else if(user.import_from[menus.get_active('user')]!=userhash1+userhash2)user.uimport();else if(confirm("You may be asked to re-login to your "+service_name(service)+' account to refresh your profile. Continue?'))user.refresh_profile()};user.controls=function(){user.new_controls();var u=user.displayed;user.ban_control();this.notelist_controls();this.table_controls();user.fill_controls()};user.ban_control=function(){if(admin){var u=user.displayed;if(u&&!u.is_user()&&!u.is_guest()){if(u.is_banned())menus.set('page','admin','ban','Unban '+u.short_name(),'',user.unban);else menus.set('page','admin','ban','Ban '+u.short_name(),'',user.ban)}else menus.set('page','admin','ban','','',null)}};user.get_menus=function(l){var m,b=new menu_bar('user','');this.menu_bar=b;if(l&&l.thread){function i(n,t){m=new menu(n,n+'_menu','');b.add(m);m.add(new menu_item(m,t,function(){l.set_mode(n,false)}))}i('updates','Notes');i('photo','Photos');i('video','Videos');i('geo','Map');i('room','Rooms');i('chat','Chat');menus.new_item('t','',null,user.refresh).hidden=true;this.fill_menu();return}var u=this.displayed,i;var ip=u.is_person();if(ip){b.add(new menu('profile','profile_menu','Profile'));menus.new_item('pr','Profile',user.display_profile,user.refresh).desc='About this person';if(u.profile.favorites)menus.new_item('fv','Favorites',user.display_favorites,user.refresh).hidden=true;if(u.profile.resume)menus.new_item('rs','Work &amp; education',user.display_resume,user.refresh).hidden=true}else{m=new menu('about','room_about','');b.add(m);m.add(new menu_item('about','About',function(){main.log_into(u.hash1,u.hash2,'w')},user.refresh_notelist))}m=new menu('updates','room_updates','');b.add(m);i=new menu_item('room','Updates',function(){main.log_into(u.hash1,u.hash2,'u')});i.desc=u.display_name+"'s updates";m.add(i);var hr=u.room_types();m=new menu('rooms','rooms_menu','Rooms');b.add(m);if(hr.n>0){function ar(n,r){if(hr[r]){i=new menu_item('r',n,"var r=users.geti("+u.id+").rooms;r.room_mode='"+r+"';r.display()");m.add(i);i.reclick=true}};ar('Groups','group');ar('Notes','updates');ar('Lists','room');ar('Photos','photo');ar('Videos','video');ar('Maps','geo');ar('Forums','forum');ar('Chat','chat')}else{i=menus.new_item('r','Rooms',notes.display_rooms,user.refresh_notelist);i.desc=u.display_name+"'s rooms";i.hidden=(hr.n==0&&!u.admin.is_user())}if(ip){if(!u.is_guest()&&!u.is_no_owner()){m=new menu('stocks','user_stocks_menu','Stocks');b.add(m);if(user.logged_in())m.add(new menu_item('buysell','Auto buy/sell this stock',user.buysell_settings));menus.new_item('sp','Portfolio',user.display_portfolio,user.get_portfolio);menus.new_item('ss','Stocks for sale',user.show_sales,user.refresh_sales);menus.new_item('so','Stocks wanted',user.show_offers,user.refresh_offers);menus.new_item('sb','Auction bids',user.show_bids,user.refresh_bids);menus.new_item('st','Transactions',user.show_transactions,user.refresh_transactions)}if(user.logged_in()){menus.new_item('f','Friends',user.display_friends,user.refresh_friends).hidden=true;menus.new_item('fg','Following',user.display_following,user.refresh_friends).hidden=true;menus.new_item('fr','Followers',user.display_followers,user.refresh_followers).hidden=true}}this.fill_menu()};var friends={};friends.add=function(x,f){if(!f)var f=user.displayed();if(confirm("Follow "+f.name()+'?')){var u=users.get_user(),fo,fr,p='p=fo&pid='+u.uid+'&uid='+u.uid+'&stock1='+u.stock.hash1+'&stock2='+u.stock.hash2+'&t=follow&mode=room',d=(f.is_person()?'person':'room')+'='+encodeURIComponent(f.el_data());notes.ajax.post('postnote.php',p,d,function(s,r){if(s){f.following=true;if(fo=u.followup)notes.post_response(true,r,{ops:{l:fo,mode:'room',ind:false}});if(fr=u.friendsup)notes.post_response(true,r,{ops:{l:fr,mode:'room',ind:false}})}})}};friends.remove=function(x,f){if(!f)var f=user.displayed();if(confirm("Stop following "+f.name()+'?')){notes.ajax.get('removefriend.php','uid='+users.get_user().uid+'&fid='+f.uid,function(s,r){if(s){f.following=false;notes.delete_response(true,{deleted:true},r)}})}};var all_photos=[];function get_media(m,id){for(var i=0;i<m.length;i++)if(m[i].id==id)return m[i]};function get_photo(id){return get_media(all_photos,id)};function photo(p){var i,t=this;if(p){for(i in p)switch(i){case't':t[i]=parseInt(p[i]);break;case'room':t[i]=users.add(p[i]);break;default:t[i]=p[i]}t.index=all_photos.length;all_photos.push(t)}};photo.prototype.same=function(p){return(this.id==p.id)};photo.prototype.el_title=function(){return(this.title?this.title:'')};photo.prototype.el_text=function(){return(this.caption?this.caption:'')};photo.prototype.el_id=function(){return this.id};photo.prototype.el_data=function(){var i,d={},p=this;for(i in p)switch(i){case'small':case'medium':case'big':case'url':d[i]=p[i];break;case'room':if(p.room.uid)d.room=p.room.uid}return build_query(d)};photo.prototype.set_events=function(el,n,he){var p=this;el.onmouseover=function(ev){p.mouseover(el,ev,n,he)};el.onmouseout=function(){p.mouseout(n,he)};el.onmousemove=function(ev){bigimage.mmove(el,ev)};el.onmousedown=function(ev){win.startdrag(el,ev,'photo',p.index);return false};el.onclick=function(){notes.display_thread(n.thread,n.list.lid)}};photo.prototype.mouseover=function(el,ev,n,he){var me=('_photomenu'+n.did).e();me.style.bottom=(('_note'+n.did).e().offsetHeight-('_notephoto'+n.did).e().offsetHeight)+'px';me.className='photo_menu';if(he)('_notectl'+n.did).e().className='photo_ctl';bigimage.open(el,ev,this.index,n,(he?22:0),22)};photo.prototype.mouseout=function(n,he){bigimage.close();if(he)('_notectl'+n.did).e().className='photo_ctl_hidden';('_photomenu'+n.did).e().className='photo_menu_hidden'};photo.prototype._html=function(img,css_class,pane){return'<img class="'+css_class+'" src="'+this[img]+'" alt=""'+this.events(true,true,true,img)+'>'};photo.prototype.thumb_html=function(){return this._html('small','photo_thumb')};photo.prototype.user_html=function(){return this._html(this.mediumest(),'user_image')};photo.prototype.page_html=function(){return this._html(this.mediumest(),'page_image')};photo.prototype.smallest=function(){return(this.small?'small':(this.medium?'medium':'big'))};photo.prototype.mediumest=function(){return(this.medium?'medium':(this.small?'small':'big'))};photo.prototype.biggest=function(){return(this.big?'big':(this.medium?'medium':'small'))};photo.prototype.imgurl=function(s){var i=this[s]();if(i)return this[i]};photo.prototype._thumb=function(c,b,img){return'<div class="'+c+'" style="background-image:url(\''+this[img]+'\')"'+this.events(b,true,true,img)+'></div>'};photo.prototype.note_html=function(){return this._thumb('note_image',true,this.smallest())};photo.prototype.pop_html=function(){return this._thumb('popthumb',false,this.mediumest())};photo.prototype.search_html=function(){return this._thumb('search_image',true,this.smallest())};photo.prototype.events=function(b,c,d,img){var i,p=this,h='';if(p.index<0)return' title="photo not found"';if(typeof(b)=='undefined')var b=true;if(typeof(c)=='undefined')var c=true;if(typeof(d)=='undefined')var d=true;if(!img)var img='small';if(b){if(img=='small'){if(this.big)i=this.big;else if(this.medium)i=this.medium}else if(img=='medium'&&this.big)i=this.big;if(i)h+=' onmouseover="bigimage.open(this,event,'+this.index+')" onmouseout="bigimage.close()" onmousemove="bigimage.mmove(this,event)"'}if(d)h+=' onmousedown="win.startdrag(this,event,\'photo\','+p.index+');return false"';if(c&&((p.room&&p.room.uid&&!p.room.same(page.displayed))||p.url))h+=' onclick="menus.photo_context(event,'+p.index+')"';return h};photo.prototype.text_html=function(text){return'<span class="embed_photo"'+this.events(true,true,true)+'>'+text+'</span>'};menus.photo_context=function(e,i){var p=all_photos[i],m=menus.new_context();if(p.url)m.add(new menu_item('page','Open source page',function(){open_url(p.url)}));if(p.room&&p.room.uid&&!p.room.same(page.displayed))m.add(new menu_item('room','Visit source room',function(){main.log_into(p.room.uid)}));menus.contextgo(e,m)};function _bigimage(div){this.div=div};_bigimage.prototype.open=function(el,ev,i,n,t,b){this.t=(t?t:0);this.b=0;var p=all_photos[i],img=(p.big?p.big:p.medium),u;var html='<img class="photo_big" src="'+img+'" alt="">';var who,text,date;if(n){if(n.list&&n.list.sortby()=='name'&&n.rid){u=users.getuid(n.rid);who=u.name();text=(n.text?n.text:(u.is_person()?u.profile.about:u.room.welcome))}else{text=(n.text?n.text:n.title);date=n.date;if(n.list&&n.list.type!='n')who=n.user.short_name()}}else{if(p.caption)text=p.caption;if(p.t)date=p.t}if(text||date||who){html+='<div class="photo_caption">';if(who)html+='<b>'+who+'</b>'+(text||date?': ':'');if(text)html+=text.stripbbc().maxlength(140).to_html();if(date)html+=(text?' ('+ago(date,true)+')':ago(date,true));html+='</div>'}this.open2(el,ev,html)};_bigimage.prototype.openurl=function(el,ev,img){this.b=0;this.open2(el,ev,'<img class="photo_big" src="'+img+'" alt="">')};_bigimage.prototype.open2=function(el,ev,html){if(win.dragging)return;var l,r;this.p=get_pos(el);l=this.p.x;r=l+el.offsetWidth;sw=page_width();bel=this.div.e();bel.innerHTML=html;var s=bel.style;s.position='absolute';s.overflowX='visible';s.top='45px';this.bet=45;s.width='auto';if(l>sw-r){s.right=(sw-l+10)+'px';s.left='auto'}else{s.left=(r+10)+'px';s.right='auto'}this.h=this.w=0;this.hscroll=false};_bigimage.prototype.close=function(){this.div.e().style.display='none'};_bigimage.prototype.mmove=function(el,ev){if(win.dragging)return;if(!ev)var ev=window.event;var e=this.div.e();var s=e.style;var w=Math.max(this.w,e.offsetWidth),h=Math.max(this.h,e.offsetHeight);this.w=w;this.h=h;w+=22;var l=e.offsetLeft,t=this.bet;var b=t+h,elw=el.offsetWidth,elh=el.offsetHeight,pw=page_width(),ph=page_height();var mx=ev.clientX,my=ev.clientY,p=this.p;var sd=(my>=p.y+elh-this.b||my<=p.y+this.t?'none':'block');elh-=this.t+this.b;if(elh>0&&(b>ph-45||t<45)){if(el.nodeName!='IMG'&&el.nodeName!='DIV'){this.bet=Math.round(300-(600+h-ph)*(elw-mx+p.x)/elw);s.top=this.bet+'px';s.display='block';return}this.bet=Math.round(300-(600+h-ph)*(elh-my+p.y+this.t)/elh);s.top=this.bet+'px'}if(!this.hscroll){if(l<0){s.overflowX='scroll';s.left=0+'px';s.right='auto';s.width=(p.x-32)+'px';this.hscroll=true;this.hover=-l}else if(l+w>pw){s.overflowX='scroll';s.left=(p.x+elw+10)+'px';s.right='auto';s.width=(pw-p.x-elw-32)+'px';this.hscroll=true;this.hover=l+w-pw}}if(this.hscroll)e.scrollLeft=Math.round(3*this.hover*(elw-mx+p.x)/elw-this.hover);s.display=sd};var bigimage=new _bigimage('big_image');function videolist(g,v){this.list=[];var vob;for(var i in v){vob=new video(v[i].parse_vars());vob.gallery=g;this.list.push(vob)}this.list.sort(function(a,b){return b.added-a.added})};videolist.prototype.html=function(){var i,h='';for(i=0;i<this.list.length;i++)h+=this.list[i].html();return h};main.yt_embed=function(u){var h,e=u+(u.indexOf('?')>0?'&':'?')+'fs=1';h='<object width="425" height="355"><param name="movie" value="'+e+'"></param><param name="allowFullScreen" value="true"></param>';h+='<param name="autoplay" value="1"></param><embed src="'+e+'" type="application/x-shockwave-flash" width="425" height="355"  allowfullscreen="true" autoplay="1"></embed></object>';return h};main.open_ytvideo=function(id){main.pop_video(main.yt_embed('http://www.youtube.com/v/'+id))};main.open_video=function(pe,i){var v=all_videos[i];if(v.embed)main.pop_video(v.embed_html());else v.open_url()};main.pop_video=function(h){win.open('video',h,{top:'100px',right:'100px',zIndex:2000})};var all_videos=[];function get_video(id){return get_media(all_videos,id)};function video(d){var v=this,i;for(i in d){switch(i){case'length':case'added':v[i]=parseInt(d[i]);break;default:v[i]=d[i]}}v.index=all_videos.length;all_videos.push(v)};video.prototype.same=function(v){return(this.id==v.id)};video.prototype.el_title=function(){var v=this,n=this.note;return(v.title?v.title:(n&&n.title?n.title:''))};video.prototype.el_text=function(){var v=this,n=this.note;return(v.text?v.text:(n&&n.text?n.text:''))};video.prototype.el_id=function(){return this.id};video.prototype.el_data=function(){var i,v={},t=this;for(i in t)switch(i){case'text':v[i]=t[i].maxlength(200);break;case'title':case'length':case'thumb':case'embed':case'url':v[i]=t[i];break;case room:if(t.room.uid)v.room=t.room.uid}return build_query(v)};video.prototype.events=function(is){var v=this,h=' title="click to play"';if(is)h+=' onmouseover="notes.video_note2(this,'+v.index+')"';else h+=' onmouseover="notes.video_note(this,'+v.index+',true,false)"';h+='  onmouseout="main.hide_info()" onclick="main.open_video(this,'+v.index+')" onmousedown="win.startdrag(this,event,\'video\','+v.index+');return false"';if((v.room&&v.room.uid&&!v.room.same(page.displayed))||v.url)h+=' oncontextmenu="menus.video_context(event,'+this.index+');return false"';return h};video.prototype._html=function(c,tl){v=this,h='<div class="'+c+'">';h+='<img src="'+v.thumb+'"';if(v.id&&v.gallery)h+=' onmousedown="win.startdrag(this,event,\'video\','+v.index+');return false"';h+=' title="click to play" oncontextmenu="menus.video_context(event,'+v.index+',false);return false" onclick="main.open_video(this,'+v.index+')"';h+='>';if(v.el_title()!='')h+='<h1>'+v.el_title().to_html()+'</h1>';h+='<span>';if(v.length)h+='<b>length:</b> '+length(v.length)+', ';h+='<b>added:</b> '+ago(v.added,true)+'</span>';if(v.views||v.comments){h+='<br><span>';if(v.views)h+='<b>views:</b> '+v.views;if(v.comments){if(v.views)h+=', ';h+='<b>comments:</b> '+v.comments}h+='</span>'}if(v.el_text()!='')h+='<p>'+v.el_text().maxlength(tl).to_html()+'</p>';h+='<div style="clear:left"></div></div>';return h};video.prototype.html=function(){return this._html('video',5000)};video.prototype.pop_html=function(){var n=new _note();n.video=this;return'<div class="pop_video">'+n._vhtml({title:this.el_title(),text:this.el_text(),video_bar:false,preview:true,show_room:false})+'</div>'};notes.video_note=function(e,i,t,b){var v=all_videos[i],o;if(v.note){o={title:(t?v.el_title():''),text:v.el_text(),video_bar:false,update_bar:b,preview:true};if(b){o.photo='user';o.psize='smallest'};h='<div class="'+(b?'forum_text':'pop_video')+'">'+v.note._vhtml(o)+'</div>'}else h=v.pop_html();main.show_info(e,'auto2','auto2',h)};notes.video_note2=function(e,i){main.show_info(e,'auto','auto','<div class="forum_text">'+all_videos[i].note._uhtml({photo:'user',psize:'smallest'})+'</div>')};notes.video_note3=function(e,i){main.pop_text(e,all_videos[i].text)};main.pop_text=function(e,t){if(t)main.show_info(e,'auto2','auto2','<div class="forum_text">'+t.to_html()+'</div>')};video.prototype.text_html=function(text){return'<span class="embed_video"'+this.events()+'>'+text+'</span>'};video.prototype.embed_html=function(){var e=this.embed;return(e.substr(0,8)=='youtube:'?main.yt_embed(e.substr(8).trim()):e)};video.prototype.open_url=function(){open_url(this.url)};function _favorites(fstr){this.list=[];var i,f=fstr.parse_vars();for(i in f)this.list.push(f[i].parse_vars())};_favorites.prototype.to_html=function(){var i,h='';for(i=0;i<this.list.length;i++)h+='<div class="fav_name">'+this.list[i].name.to_html()+'</div><div class="fav_text">'+this.list[i].text.to_html()+'</div>';return h};var stocks={list:{}};stocks.index=function(id){var s;id=(arguments.length==1?'_':arguments[1])+id;if(id!='_0'&&this.list[id])s=this.list[id];else{s=new stock();this.list[id]=s}return s};stocks.reindex=function(s,id){s.id=id;this.list['_'+id]=s};stocks.parse=function(sobj,s){for(var i in sobj)switch(i){case'shares':case'keepmin':case'keepmax':case'expires':case'cyclepo':s[i]=parseInt(sobj[i]);break;case'buyprice':case'sellprice':case'reserveprice':case'price':s[i]=parseFloat(sobj[i]);break;case'hash1':s.stock=users.addtbl(sobj.hash1,sobj.hash2);break;case'ownerhash1':s.owner=users.addtbl(sobj.ownerhash1,sobj.ownerhash2);break;case'hash2':case'ownerhash2':break;default:s[i]=sobj[i];break}if(s.status){if(s.status=='auction'&&s.expires<server_t()){s.status='normal';s.buyprice=s.sellprice=-1}}return s};stocks.clone=function(s,id,owner,status,shares){ns=stocks.index(id);for(var i in s)ns[i]=s[i];ns.id=id;ns.owner=owner;ns.shares=shares;ns.status=status;return ns};stocks.get=function(id){return this.list[(arguments.length==1?'_':arguments[1])+id]};stocks.holder=function(s,u){if(!s.holders)return null;var p=s.holders.stocks;for(var i=0;i<p.length;i++)if(p[i].owner.same(u)&&p[i].status!='ipo'&&p[i].status!='po')return p[i];return null};stocks.holding=function(u,s){if(!u.portfolio)return null;var p=u.portfolio.stocks;for(var i=0;i<p.length;i++)if(p[i].stock.same(s)&&p[i].status!='ipo'&&p[i].status!='po')return p[i];return null};stocks.user_holding=function(s){return stocks.holding(users.get_user(),s)};stocks.user_have=function(s){var h=stocks.user_holding(s);return(h===null?0:h.shares)};stocks.show_bids=function(se,id){var s=(arguments.length==2?stocks.get(id):stocks.get(id,arguments[2]));main.show_info(se,'above','right',s.bids_html())};stocks.show_status=function(se,id){var s=stocks.get(id);main.show_info(se,'above','right',s.status_html())};function bid(b){if(arguments.length==1){this.bidder=users.add(b.userhash1,b.userhash2);this.price=parseFloat(b.price);this.shares=parseInt(b.shares)}else{this.bidder=arguments[0];this.price=arguments[1];this.shares=arguments[2]}};function stock(){this.clear()}stock.prototype.clear=function(){this.status='normal';this.shares=this.keepmin=this.expires=0;this.keepmax=10000;this.buyprice=this.sellprice=this.reserveprice=-1};stock.prototype.set_status=function(status,shares,buyprice,sellprice,reserveprice,keepmin,keepmax,expires){if((status=='auction'||this.status=='auction')&&status!=this.status)this.bids=[];this.status=status;this.shares=shares;this.buyprice=buyprice;this.sellprice=sellprice;this.reserveprice=reserveprice;this.keepmin=keepmin;this.keepmax=keepmax;this.expires=expires};stock.prototype.forsale=function(){if(this.status=='auction'||this.status=='ipo'||this.status=='po')return Math.max(this.shares-this.keepmin,0);if(this.sellprice<=0)return 0;return Math.max(this.shares-this.keepmin,0)};stock.prototype.wanted=function(){if(this.status=='auction'||this.status=='ipo'||this.status=='po'||this.buyprice<=0)return 0;return Math.max(this.keepmax-this.shares,0)};stock.prototype.minsellprice=function(){if(this.status=='auction'||this.status=='ipo'||this.status=='po')return this.reserveprice;return this.sellprice};stock.prototype.statusname=function(){switch(this.status){case'ipo':return'initial public offering';case'po':return'public offering';case'normal':var s='';if(this.wanted()>0)s='buy';if(this.forsale()>0){if(s!='')s+='/';s+='sell'}if(s!='')return s;return'not for sale';default:return this.status}};stock.prototype.add_bids=function(b){this.bids=[];for(var i in b)this.bids.push(new bid(b[i].parse_vars()))};stock.prototype.sort_bids=function(){this.bids.sort(function(a,b){return b.price-a.price})};stock.prototype.add_bid=function(u,price,shares){b=this.bids;for(var i=0;i<b.length;i++)if(b[i].bidder.same(u)){b[i].price=price;b[i].shares=shares;this.sort_bids();return}b.push(new bid(u,price,shares));this.sort_bids();if(b.length>5)b.splice(5,b.length-5)};stock.prototype.remove_bid=function(u){b=this.bids;for(var i=0;i<b.length;i++)if(b[i].bidder.same(u)){b.splice(i,1);break}};stock.prototype.bids_html=function(){var html='<div class="stockbids">';if(!this.bids||this.bids.length==0)html+='No bids yet<br><br>';else{html+='<div>Top bids</div><table cellspacing="0" cellpadding="0"><thead><tr>';html+='<td class="bt_left">Bidder</td><td class="bt_right">Bid per share</td><td class="bt_right">Shares</td></tr></thead><tbody>';for(var i=0;i<this.bids.length;i++)html+='<tr><td class="bt_left">'+this.bids[i].bidder.short_name()+'</td><td class="bt_right">'+dollars(this.bids[i].price)+'</td><td class="bt_right">'+this.bids[i].shares+'</td></tr>';html+='</tbody></table><br>'}var stat=(this.status=='bid'?this.auction_status:this.status);if(stat=='auction'||this.cyclepo)html+='Reserve price: '+dollars(this.reserveprice)+'<br>';if(this.expires<=server_t())html+='Auction has ended';else html+='Auction ends in '+time_phrase(this.expires-server_t());return html+'</div>'};stock.prototype.status_html=function(){var h='<table class="stockstatus"><tr><td>Buy:</td><td>'+(this.buyprice<=0?'no':'at '+dollars(this.buyprice)+' up to '+this.keepmax+' shares')+'</td></tr>';h+='<tr><td>Sell:</td><td>'+(this.sellprice<=0?'no':'at '+dollars(this.sellprice)+' down to '+this.keepmin+' shares')+'</td></tr></table>';return h};stock.prototype.name=function(){return this.stock.name()};function stocklist(s){this.stocks=[];var sobj;for(var i in s){sobj=s[i].parse_vars();this.stocks.push(stocks.parse(sobj,stocks.index(sobj.id)))}};stocklist.prototype.add_bid_stocks=function(bl){var b,s,sobj;for(var i in bl){sobj=bl[i].parse_vars();b=stocks.parse(sobj,stocks.index(sobj.id,'b'));b.auction_status=b.status;b.status='bid';this.stocks.push(b)}};stocklist.prototype.add_bid=function(id,s,u,price,shares){var l=this.stocks;for(var i=0;i<l.length;i++)if(l[i].id==id){l[i].price=price;l[i].shares=shares;return}var b=stocks.index(id,'b');b.id=id;b.stock=s;b.owner=u;b.price=price;b.shares=shares;b.status='bid';l.push(b)};stocklist.prototype.add_auctions=function(a){var s=this.stocks,i;for(var id in a){for(i=0;i<s.length;i++)if(s[i].id==id){s[i].add_bids(a[id].parse_vars());break}}};stocklist.prototype.setowner=function(owner){for(var i=0;i<this.stocks.length;i++)this.stocks[i].owner=owner};stocklist.prototype.setstock=function(s){for(var i=0;i<this.stocks.length;i++)this.stocks[i].stock=s};stocklist.prototype.get=function(id){var s=this.stocks;for(var i=0;i<s.length;i++)if(s[i].id==id)return s[i];return null};stocklist.prototype.add=function(stock){this.stocks.push(stock)};stocklist.prototype.remove=function(id){var s=this.stocks;for(var i=0;i<s.length;i++)if(s[i].id==id){s.splice(i,1);break}};stocklist.prototype.portfolio_html=function(u,t,sortcol){if(sortcol<0){var p=this.stocks;t.clear('sp');t.add_header('Stock','td_user');t.add_header('Shares','td_right');t.add_header('Status/Action','td_right');t.add_header('Value','td_right');t.add_header('Earnings','td_right');for(var i=0;i<p.length;i++)if(p[i].shares>0&&p[i].status!='ipo'&&p[i].status!='po')t.add_row([new td_user(p[i].stock),new td_int(p[i].shares),new td_stock_status(p[i]),'stockvalue','earnings']);t.display(0)}else t.display(sortcol)};stocklist.prototype.holders_table=function(t){var p=this.stocks;t.clear('sh');t.add_header('Owner','td_user');t.add_header('Shares','td_right');t.add_header('Status/Action','td_right');for(var i=0;i<p.length;i++)if(p[i].shares>0)t.add_row([new td_stock_owner(p[i]),new td_int(p[i].shares),new td_stock_status(p[i])])};stocklist.prototype.sellers_table=function(t){var p=this.stocks;t.clear('os');t.add_header('Seller','td_user');t.add_header('Status/Action','td_right');t.add_header('Asking price','td_right');t.add_header('Shares for sale','td_right');for(var i=0;i<p.length;i++)if(p[i].forsale()>0)t.add_row([new td_stock_owner(p[i]),new td_stock_status(p[i]),new td_dollars(p[i].minsellprice()),new td_int(p[i].forsale())])};stocklist.prototype.buyers_table=function(t){var p=this.stocks,w;t.clear('ob');t.add_header('Buyer','td_user');t.add_header('Status/Action','td_right');t.add_header('Offer price','td_right');t.add_header('Shares wanted','td_right');for(var i=0;i<p.length;i++){w=Math.min(p[i].wanted(),Math.floor(p[i].owner.cash/p[i].buyprice));if(w>0)t.add_row([new td_user(p[i].owner),new td_stock_status(p[i]),new td_dollars(p[i].buyprice),new td_int(w)])}};stocklist.prototype.sales_table=function(t){var p=this.stocks;t.clear('ss');t.add_header('Stock','td_user');t.add_header('Status/Action','td_right');t.add_header('Asking price','td_right');t.add_header('Shares for sale','td_right');t.add_header('Value','td_right');t.add_header('Earnings','td_right');for(var i=0;i<p.length;i++)if(p[i].forsale()>0)t.add_row([new td_user(p[i].stock),new td_stock_status(p[i]),new td_dollars(p[i].minsellprice()),new td_int(p[i].forsale()),'stockvalue','earnings'])};stocklist.prototype.offers_table=function(t){var p=this.stocks;t.clear('so');t.add_header('Stock','td_user');t.add_header('Status/Action','td_right');t.add_header('Offer price','td_right');t.add_header('Shares wanted','td_right');t.add_header('Value','td_right');t.add_header('Earnings','td_right');for(var i=0;i<p.length;i++)if(p[i].wanted()>0)t.add_row([new td_user(p[i].stock),new td_stock_status(p[i]),new td_dollars(p[i].buyprice),new td_int(p[i].wanted()),'stockvalue','earnings'])};stocklist.prototype.bids_table=function(t){var p=this.stocks;t.clear('sb');t.add_header('Stock','td_user');t.add_header('Action','td_right');t.add_header('Bid per share','td_right');t.add_header('Shares wanted','td_right');for(var i=0;i<p.length;i++)t.add_row([new td_user(p[i].stock),new td_stock_status(p[i]),new td_stock_price(p[i]),new td_int(p[i].shares)])};user.get_portfolio=function(){var u,c;if(arguments.length<2){u=user.displayed;c=user.disp_portfolio}else{u=arguments[0];c=arguments[1]}user.ajax.get('getportfolio.php','h1='+u.hash1+'&h2='+u.hash2,user.get_portfolio_response,{u:u,c:c})};user.get_portfolio_response=function(success,response,a){if(success){var u=a.u;u.portfolio=new stocklist(response.portfolio.parse_vars());u.portfolio.setowner(u);u.portfolio.add_auctions(response.auctions.parse_vars());a.c(u)}};user.disp_portfolio=function(u){if(user.displayed.same(u))user.display_portfolio()};function td_dollars(d){this.value=d};td_dollars.prototype.td_text=function(){return dollars(this.value)};td_dollars.prototype.td_value=function(){return this.value};function td_stock_owner(s){this.stock=s;this.u=s.owner};td_stock_owner.prototype.td_value=function(){return(this.stock.status=='ipo'||this.stock.status=='po'?'-':this.u.name().toLowerCase())};td_stock_owner.prototype.td_text=function(){return(this.stock.status=='ipo'||this.stock.status=='po'?'-':this.u.link('user',false,true))};function td_stock_status(s){this.stock=s};td_stock_status.prototype.amo=function(){var pre='';if(arguments.length==1)pre=",'"+arguments[0]+"'";return' onmouseover="stocks.show_bids(this,'+this.stock.id+pre+')" onmouseout="main.hide_info()"'};td_stock_status.prototype.nmo=function(){return' onmouseover="stocks.show_status(this,'+this.stock.id+')" onmouseout="main.hide_info()"'};td_stock_status.prototype.td_text=function(){var s=this.stock,title,dialog,mo='';var text=s.statusname();if(s.status!='bid'&&s.status!='ipo'&&s.status!='po'&&s.owner.is_user()){title='change settings';dialog='status';mo=(s.status=='auction'?this.amo():this.nmo())}else switch(s.status){case'normal':if(s.wanted()>0&&s.forsale()>0){title='buy/sell';dialog='buysell'}else if(s.wanted()>0){title='sell';dialog='sell'}else if(s.forsale()>0){title='buy';dialog='buy'}else if(s.owner.is_user()){title='change settings';dialog='status'}else return text;mo=this.nmo();break;case'ipo':if(s.owner.is_user())return'<span '+this.amo()+'>'+text+'</span>';case'auction':case'po':title='bid';dialog='bid';mo=this.amo();break;case'bid':if(!s.owner.is_user())return'<span '+this.amo('b')+'>bids</span>';title='change/rescind bid';dialog='editbid';text='change';mo=this.amo('b');break}return'<a class="tbl_link"'+mo+' title="'+title+'" href="javascript:'+'stocks.dialog('+s.id+',\''+dialog+'\')">'+text+'</a>'};td_stock_status.prototype.td_value=function(){return this.stock.statusname()};function td_stock_price(s){this.price=(s.status=='nfs'||s.status=='ipo'||s.status=='po'?-1:s.price)};td_stock_price.prototype.td_value=function(){return this.price};td_stock_price.prototype.td_text=function(){return(this.price<0?'-':dollars(this.price))};function td_stock_sale(s){this.forsale=(s.status=='nfs'?-1:s.forsale)};td_stock_sale.prototype.td_value=function(){return this.forsale};td_stock_sale.prototype.td_text=function(){return(this.forsale<0?'-':this.forsale)};stocks.dialog=function(id,type){if(!user.logged_in()){alert('You must be logged in to do that');return}var s;if(type=='editbid')s=stocks.get(id,'b');else s=stocks.get(id);s.show_dialog(type)};stocks.dialog_ok=function(status,id){var s;if(status=='bid'||status=='rescindbid')s=stocks.get(id,'b');else s=stocks.get(id);var p='id='+id+'&action='+s.selected+'&stock1='+s.stock.hash1+'&stock2='+s.stock.hash2+'&owner1='+s.owner.hash1+'&owner2='+s.owner.hash2;var v,d=sd_dialog[s.dialog].details[s.selected];for(var i=0;i<d.length;i++){if(!d[i].validate())return;p+='&'+d[i].ajax_param+'='+d[i].value()}if(s.confirm_action()){dialog_cancel();user.ajax.get('stockaction.php',p,stocks.dialog_response)}};stocks.dialog_response=function(success,response){if(!success)return;var u=users.get_user(),du=user.displayed;var s,su,sid=response.id;var stock=users.get(response.stock1,response.stock2);var us=stocks.user_holding(stock);switch(response.action){case'buysell':case'auction':s=stocks.user_holding(stock);stocks.reindex(s,sid);su=s.owner;break;case'buy':case'sell':s=stocks.get(sid);su=s.owner;break}if(response.status!='ok'){alert(response.msg);if(s!=null)switch(response.status){case'changesell':s.status=response.ostatus;s.shares=parseInt(response.oshares);s.sellprice=parseInt(response.osellprice);s.keepmin=parseInt(response.okeepmin);break;case'changebuy':s.status=response.ostatus;s.shares=parseInt(response.oshares);s.buyprice=parseInt(response.obuyprice);s.keepmax=parseInt(response.okeepmax);break;case'sold':if(us!==null)us.shares=0;break;case'noauction':s.shares=parseInt(response.shares);break;case'over':s.set_status(response.newstatus,parseInt(response.shares),parseFloat(response.price),parseInt(response.expires));break}}else switch(response.action){case'buysell':var msg='';var bought=parseInt(response.bought);if(bought>0){var spent=parseFloat(response.spent);msg='You bought '+bought+' shares at '+dollars(spent/bought)+' for '+dollars(spent);su.cash-=spent}var sold=parseInt(response.sold);if(sold>0){var sales=parseFloat(response.sales);if(msg!='')msg+='\n';msg+='You sold '+sold+' shares at '+dollars(sales/sold)+' for '+dollars(sales);su.cash+=sales}if(msg=='')msg='No shares were bought or sold';var i,tu,ts,t,trans=response.transactions.parse_vars();for(i in trans){t=trans[i].parse_vars();tu=users.get(t.h1,t.h2);if(tu){tu.cash+=parseFloat(t.cash);ts=stocks.holding(tu,stock);if(ts===null)ts=stocks.holder(stock,tu);if(ts!==null)ts.shares+=parseInt(t.shares)}}alert(msg);response.action='normal';case'auction':s.set_status(response.action,parseInt(response.shares),parseFloat(response.buyprice),parseFloat(response.sellprice),parseFloat(response.reserveprice),parseInt(response.keepmin),parseInt(response.keepmax),parseInt(response.expires));break;case'buy':var t=parseFloat(response.total),b=parseInt(response.bought);alert('You bought '+b+' shares for a total of '+dollars(t));u.cash=parseFloat(response.cash);su.cash+=t;if(u.portfolio||stock.holders){var us;if(u.portfolio)us=u.portfolio.get(response.bid);else us=stock.holders.get(response.bid);if(us===null){var ns=stocks.clone(s,response.bid,u,'normal',b);if(u.portfolio)u.portfolio.add(ns);if(stock.holders)stock.holders.add(ns)}else us.shares+=b}s.shares=parseInt(response.oshares);break;case'sell':var t=parseFloat(response.total),b=parseInt(response.sold);alert('You sold '+b+' shares for a total of '+dollars(t));u.cash=parseFloat(response.cash);su.cash-=t;s.shares+=b;us.shares-=b;break;case'bid':var price=parseFloat(response.price);var shares=parseInt(response.shares);if(s=stocks.get(sid))s.add_bid(u,price,shares);if(s=stocks.get(sid,'b'))s.add_bid(u,price,shares);if(u.bids)u.bids.add_bid(sid,stock,u,price,shares);break;case'rescindbid':if(s=stocks.get(sid))s.remove_bid(u);if(s=stocks.get(sid,'b'))s.remove_bid(u);if(u.bids)u.bids.remove(sid);break}switch(menus.get_active('page')){case'holders':active.show_holders();break;case'buyers':active.show_buyers();break;case'sellers':active.show_sellers();break}switch(menus.get_active('user')){case'profile':user.display_profile();break;case'portfolio':user.display_portfolio();break;case'sales':user.show_sales();break;case'offers':user.show_offers();break;case'bids':user.show_bids();break}};active.show_holders=function(){if(user.logged_in()&&!users.get_user().portfolio){user.get_portfolio(users.get_user(),active.show_holders);return}var s=page.displayed.stock;if(!s.holders){active.refresh_holders();return}s.holders.holders_table(active.table);active.table.display(0)};active.refresh_holders=function(){active.ajax.get('getholders.php','h1='+stockhash1+'&h2='+stockhash2,active.refresh_holders_response)};active.refresh_holders_response=function(success,response){if(!success)return;var s=users.get(response.stock1,response.stock2);s.holders=new stocklist(response.holders.parse_vars());s.holders.setstock(s);s.holders.add_auctions(response.auctions.parse_vars());active.show_holders()};active.show_sellers=function(){if(user.logged_in()&&!users.get_user().portfolio){user.get_portfolio(users.get_user(),active.show_sellers);return}var s=page.displayed.stock;if(!s.holders){active.refresh_sellers();return}s.holders.sellers_table(active.table);active.table.display(0)};active.refresh_sellers=function(){active.ajax.get('getholders.php','h1='+stockhash1+'&h2='+stockhash2,active.refresh_sellers_response)};active.refresh_sellers_response=function(success,response){if(!success)return;var s=users.get(response.stock1,response.stock2);s.holders=new stocklist(response.holders.parse_vars());s.holders.setstock(s);s.holders.add_auctions(response.auctions.parse_vars());active.show_sellers()};active.show_buyers=function(){if(user.logged_in()&&!users.get_user().portfolio){user.get_portfolio(users.get_user(),active.show_buyers);return}var s=page.displayed.stock;if(!s.holders){active.refresh_buyers();return}s.holders.buyers_table(active.table);active.table.display(0)};active.refresh_buyers=function(){active.ajax.get('getholders.php','h1='+stockhash1+'&h2='+stockhash2,active.refresh_buyers_response)};active.refresh_buyers_response=function(success,response){if(!success)return;var s=users.get(response.stock1,response.stock2);s.holders=new stocklist(response.holders.parse_vars());s.holders.setstock(s);active.show_buyers()};user.show_sales=function(){if(user.logged_in()&&!users.get_user().portfolio){user.get_portfolio(users.get_user(),user.show_sales);return}var s=user.displayed;if(!s.portfolio){user.refresh_sales();return}s.portfolio.sales_table(user.table);user.table.display(0)};user.refresh_sales=function(){user.get_portfolio(user.displayed,user.show_sales)};user.show_offers=function(){if(user.logged_in()&&!users.get_user().portfolio){user.get_portfolio(users.get_user(),user.show_offers);return}var s=user.displayed;if(!s.portfolio){user.refresh_offers();return}s.portfolio.offers_table(user.table);user.table.display(0)};user.refresh_offers=function(){user.get_portfolio(user.displayed,user.show_offers)};user.show_bids=function(){var s=user.displayed;if(!s.bids){user.refresh_bids();return}s.bids.bids_table(user.table);user.table.display(0)};user.refresh_bids=function(){user.ajax.get('getbids.php','h1='+user.displayed.hash1+'&h2='+user.displayed.hash2,user.refresh_bids_response)};user.refresh_bids_response=function(success,response){if(!success)return;var u=users.get(response.hash1,response.hash2);u.bids=new stocklist({});u.bids.add_bid_stocks(response.stocks.parse_vars());u.bids.setowner(u);u.bids.add_auctions(response.auctions.parse_vars());user.show_bids()};stocks.buysell_settings=function(u){var s=stocks.user_holding(u);if(s==null){s=stocks.index('0');s.clear();s.id='0';s.stock=u;s.owner=users.get_user();s.owner.portfolio.add(s);if(u.holders)u.holders.add(s)}s.show_dialog('status')};user.show_transactions=function(){var u=user.displayed;u.transactions=stocks.show_transactions(u,u.transactions,user.table,'&t=u')};user.refresh_transactions=function(){stocks.refresh_transactions(user.displayed,user.displayed.transactions,user.table)};page.show_transactions=function(){var u=page.displayed.stock;u.trades=stocks.show_transactions(u,u.trades,page.table,'&t=p')};page.refresh_transactions=function(){var u=page.displayed.stock;stocks.refresh_transactions(u,u.trades,page.table)};stocks.refresh_transactions=function(u,x,t){active.ajax.get('gettransactions.php','last='+x.lastid+'&h1='+x.stocku.hash1+'&h2='+x.stocku.hash2+x.ajaxp+'&n='+t.perpage,stocks.refresh_transactions_response,{x:x,t:t,u:u})};stocks.refresh_transactions_response=function(s,r,a){if(s){for(var i in r)a.x.add(r[i].parse_vars());stocks.show_transactions(a.u,a.x,a.t,a.x.ajaxp)}};stocks.show_transactions=function(u,x,t,p){if(!x)var x=new xlist(stocks.add_transaction,stocks.init_transactions,stocks.get_transactions,6);x.stocku=u;x.ajaxp=p;t.clear(t.gref=='user'?'st':'sx');t.add_header('Stock','td_user');t.add_header('Seller','td_left');t.add_header('Buyer','td_left');t.add_header('Shares','td_right');t.add_header('Total','td_right');t.add_header('Per share','td_right');t.add_header('When','td_right');t.settype('xlist',x);t.display(6);return x};stocks.add_transaction=function(l,t){var r={date:parseInt(l.date),stock:users.addtbl(l.stock1,l.stock2),buyer:users.addtbl(l.buyer1,l.buyer2),seller:users.addtbl(l.seller1,l.seller2),shares:parseInt(l.shares),amount:parseFloat(l.amount)};this.update_tid(r.date,parseInt(l.id));this.list.push(r);if(t)stocks.transaction_row(t,r)};stocks.transaction_row=function(t,r){if(t)t.add_row([new td_user(r.stock),new td_user(r.seller),new td_user(r.buyer),new td_int(r.shares),new td_dollars(r.amount),new td_dollars(r.amount/r.shares),new td_ago(r.date)])};stocks.init_transactions=function(t){for(var i=0;i<this.list.length;i++)stocks.transaction_row(t,this.list[i])};stocks.get_transactions=function(t,c){var x=this,u=t.pane.displayed;var p=(x.firstid==0?'last=0':'first='+x.firstid+'&firstt='+x.firstt);active.ajax.get('gettransactions.php',p+'&h1='+this.stocku.hash1+'&h2='+this.stocku.hash2+this.ajaxp+'&n='+t.perpage,c,{x:x,t:t,u:u})};function sd_selector(label,prefix,options,values){this.label=label;this.prefix=prefix;this.options=options;this.values=values};sd_selector.prototype.html=function(value,stock_id){var h=this.label,l=this.options.length;if(l==0)return h;h+=' <select id="stock_select" onchange="stocks.dialog_select('+stock_id+',\''+this.prefix+'\')">';for(var i=0;i<l;i++){h+='<option value="'+this.values[i]+'"';if(this.values[i]==value)h+=' selected="selected"';h+='>'+this.options[i]}return h+'</select>'};sd_selector.prototype.value=function(){var el='stock_select'.e();return el.options[el.selectedIndex].value};function sd_shares(label){this.label=label;this.ajax_param='shares'};sd_shares.prototype.html=function(value){return this.label+': <input id="numshares" size="10" value="'+value+'">'};sd_shares.prototype.value=function(){return parseInt('numshares'.e().value.trim())};sd_shares.prototype.validate=function(){var val=this.value(),s=sd_dialog.stock;if(isNaN(val)||val<=0){alert('Invalid number of shares entered');return false}return true};function sd_price(label){this.label=label;this.ajax_param='price'};sd_price.prototype.html=function(value){if(value<0)value=0;return'<div class="stock_input">'+this.label+': <input id="stockprice" size="10" value="'+value+'"></div>'};sd_price.prototype.value=function(){return parseFloat('stockprice'.e().value.trim())};sd_price.prototype.validate=function(){var val=this.value();if(!isNaN(val)&&val>0)return true;alert('Invalid price entered');return false};function sd_time(label){this.label=label;this.ajax_param='length'};sd_time.prototype.html=function(value){return'<div class="stock_input">'+this.label+': <select id="stocklength"><option value="4">4 hours<option value="24">1 day<option value="72">3 days<option value="168">1 week</select></div>'};sd_time.prototype.validate=function(){return true};sd_time.prototype.value=function(){var el='stocklength'.e();return parseInt(el.options[el.selectedIndex].value)};function sd_buyprice(){this.ajax_param='price'};sd_buyprice.prototype.html=function(price){this.price=price;return'<div class="stock_input">shares at '+dollars(price)+' per share</div>'};sd_buyprice.prototype.value=function(){return this.price};sd_buyprice.prototype.validate=function(){return true};stocks.buychecked=function(){return'buycheck'.e().checked};stocks.sellchecked=function(){return'sellcheck'.e().checked};function sd_buypricemax(){this.ajax_param='buyprice'};sd_buypricemax.prototype.html=function(price){if(price<0)price=0;var html='<div class="stock_settings"><div class="buysell_label"><input id="buycheck" type="checkbox"';if(price>0)html+=' checked="checked"';return html+'> Buy this stock automatically</div>if offered at $<input id="buypricemax" size="5" value="'+price+'"> per share or less'};sd_buypricemax.prototype.value=function(){if(!stocks.buychecked())return-1;return parseFloat('buypricemax'.e().value)};sd_buypricemax.prototype.validate=function(){if(!stocks.buychecked())return true;var v=this.value();if(isNaN(v)||v<=0){alert("Buy price must be a number greater than zero");return false}return true};function sd_sellpricemin(){this.ajax_param='sellprice'};sd_sellpricemin.prototype.html=function(price){if(price<0)price=0;var html='<div class="stock_settings"><div class="buysell_label"><input id="sellcheck" type="checkbox"';if(price>0)html+=' checked="checked"';return html+'> Sell this stock automatically</div>if offered $<input id="sellpricemin" size="5" value="'+price+'"> per share or more'};sd_sellpricemin.prototype.value=function(){if(!stocks.sellchecked())return-1;return parseFloat('sellpricemin'.e().value)};sd_sellpricemin.prototype.validate=function(){if(!stocks.sellchecked())return true;var v=this.value();if(isNaN(v)||v<=0){alert("Sell price must be a number greater than zero");return false}return true};function sd_keepmax(){this.ajax_param='keepmax'};sd_keepmax.prototype.html=function(keep){return', and while you have less than <input id="keepmax" size="5" value="'+keep+'"> shares</div>'};sd_keepmax.prototype.value=function(){if(!stocks.buychecked())return 10000;return parseInt('keepmax'.e().value)};sd_keepmax.prototype.validate=function(){if(!stocks.buychecked())return true;var v=this.value();if(isNaN(v)||v<0||v>10000){alert('Max. shares must be a number between 0 and 10000');return false}return true};function sd_keepmin(){this.ajax_param='keepmin'};sd_keepmin.prototype.html=function(keep){return', and while you have more than <input id="keepmin" size="5" value="'+keep+'"> shares</div>'};sd_keepmin.prototype.value=function(){if(!stocks.sellchecked())return 0;return parseInt('keepmin'.e().value)};sd_keepmin.prototype.validate=function(){if(!stocks.sellchecked())return true;var v=this.value();if(isNaN(v)||v<0||v>10000){alert('Min. shares must be a number between 0 and 10000');return false}return true};var sd_dialog={};sd_dialog.status={};sd_dialog.status.validate=function(){return true};sd_dialog.status.selector=new sd_selector('Set status to','_',['buy/sell','auction'],['buysell','auction']);sd_dialog.status.details={};sd_dialog.status.details.buysell=[new sd_buypricemax(),new sd_keepmax(),new sd_sellpricemin(),new sd_keepmin()];sd_dialog.status.details.auction=[new sd_shares('Number of shares to auction'),new sd_price('Reserve price per share'),new sd_time('Length of auction')];sd_dialog.buy={};sd_dialog.buy.validate=function(){return true};sd_dialog.buy.selector=new sd_selector('Buy this stock','_',[],[]);sd_dialog.buy.details={};sd_dialog.buy.details.buy=[new sd_shares('Buy '),new sd_buyprice()];sd_dialog.sell={};sd_dialog.sell.validate=function(){return true};sd_dialog.sell.selector=new sd_selector('Sell this stock:','o',[],[]);sd_dialog.sell.details={};sd_dialog.sell.details.sell=[new sd_shares('Sell '),new sd_buyprice()];sd_dialog.buysell={};sd_dialog.buysell.validate=function(){return true};sd_dialog.buysell.selector=new sd_selector('Buy or sell this stock','_',['buy','sell'],['buy','sell']);sd_dialog.buysell.details={buy:sd_dialog.buy.details.buy,sell:sd_dialog.sell.details.sell};sd_dialog.editbid={};sd_dialog.editbid.validate=function(){return true};sd_dialog.editbid.selector=new sd_selector('Change or rescind bid:','b',['change','rescind'],['bid','rescindbid']);sd_dialog.editbid.details={};sd_dialog.editbid.details.bid=[new sd_shares('Bid for how many shares'),new sd_price('Bid price per share')];sd_dialog.editbid.details.rescindbid=[];sd_dialog.bid={};sd_dialog.bid.validate=function(){var s=sd_dialog.stock;if(s.status=='ipo'&&s.stock.same(users.get_user())){alert("You can't bid on your own stock during the initial public offering");return false}return true};sd_dialog.bid.selector=new sd_selector('Place a bid on this auction','_',[],[]);sd_dialog.bid.details={};sd_dialog.bid.details.bid=[new sd_shares('Bid for how many shares'),new sd_price('Bid price per share')];sd_dialog.sell={};sd_dialog.sell.validate=function(){return true};sd_dialog.sell.selector=new sd_selector('Accept offer and sell:','o',[],[]);sd_dialog.sell.details={};sd_dialog.sell.details.sell=[new sd_shares('this many shares'),new sd_buyprice()];stock.prototype.show_dialog=function(type){sd_dialog.stock=this;if(!sd_dialog[type].validate())return;this.dialog=type;switch(type){case'status':this.selected=(this.status=='normal'?'buysell':'auction');break;case'editbid':this.selected='bid';break;case'buysell':this.selected='buy';break;default:this.selected=type;break}dialog(this.dialog_hdr(),this.dialog_body(),true,this.dialog_ok())};stock.prototype.dialog_hdr=function(){if(this.status=='bid')return'Bid to buy '+this.shares+' shares of '+this.name()+' for '+dollars(this.price)+' per share';var h='';if(this.status!='ipo'&&this.status!='po'){if(this.owner.is_user())h='You own ';else h=this.owner.short_name()+' owns '}h+=this.shares+' shares of '+this.stock.short_name()+'<br>Current status: ';switch(this.status){case'normal':h+='normal buying and selling';break;case'ipo':case'po':case'auction':h+='auction of '+this.forsale()+' shares ';if(this.status=='auction')h+='with a reserve price of '+dollars(this.reserveprice)+' per share ';h+='ending in '+time_phrase(this.expires-server_t());break}return h};stock.prototype.dialog_body=function(){var d=sd_dialog[this.dialog];var html=d.selector.html(this.selected,this.id);html+='<div id="stock_details">'+this.details_html()+'</div>';return html};stock.prototype.details_html=function(){var v,html='',d=sd_dialog[this.dialog].details[this.selected];for(var i=0;i<d.length;i++){switch(d[i].ajax_param){case'shares':if(this.selected=='buy')v=this.forsale();else if(this.selected=='sell')v=Math.min(this.wanted(),stocks.user_have(this.stock));else if(this.selected=='bid')v=(this.status=='bid'?this.shares:this.forsale());else v=this.shares;break;case'price':if(this.selected=='buy')v=this.sellprice;else if(this.selected=='sell')v=this.buyprice;else if(this.selected=='auction')v=this.reserveprice;else if(this.selected=='bid')v=(this.status=='bid'?this.price:this.reserveprice);else v=this.price;break;default:v=this[d[i].ajax_param];break}html+=d[i].html(v)}if(this.selected!='buysell')html='<div class="stock_settings">'+html+'</div>';return html};stock.prototype.dialog_ok=function(){return'stocks.dialog_ok(\''+this.status+'\','+this.id+')'};stock.prototype.select=function(){this.selected=sd_dialog[this.dialog].selector.value();'stock_details'.e().innerHTML=this.details_html()};stock.prototype.ajax_value=function(param){var d=sd_dialog[this.dialog].details[this.selected];for(var i=0;i<d.length;i++)if(d[i].ajax_param==param)return d[i].value();return-1};stock.prototype.confirm_action=function(){var p=this.ajax_value('price'),s=this.ajax_value('shares');var ps=dollars(p);var l=this.ajax_value('length')*3600;var t=time_phrase(l);function havecash(){if(p*s>users.get_user().cash){alert("You don't have enough cash for that");return false}return true};function haveshares(shares){if(s>shares){alert("Too many shares entered -- max. is "+shares);return false}return true};switch(this.selected){case'buysell':if(stocks.buychecked()&&stocks.sellchecked()){if(this.ajax_value('buyprice')>=this.ajax_value('sellprice')){alert('Buy price must be lower than the sell price');return false}if(this.ajax_value('keepmin')>this.ajax_value('keepmax')){alert('Max. shares must be greater than or equal to min. shares');return false}}var m='Please confirm that you wish to:\n\n';if(stocks.buychecked())m+='Buy shares at '+dollars(this.ajax_value('buyprice'))+' up to '+this.ajax_value('keepmax')+' shares\n';else m+='Not buy shares automatically\n';if(stocks.sellchecked())m+='Sell shares at '+dollars(this.ajax_value('sellprice'))+' down to '+this.ajax_value('keepmin')+' shares';else m+='Not sell shares automatically';return confirm(m);case'auction':if(!haveshares(this.shares))return false;return confirm('Auction '+s+' shares with a reserve price of '+ps+' per share for '+t+'?');case'bid':if(!havecash())return false;return confirm('Place bid to buy '+s+' shares at '+ps+' per share?');case'buy':if(!haveshares(this.forsale()))return false;if(!havecash())return false;return confirm('Buy '+s+' shares at '+ps+' per share?');case'sell':if(!haveshares(this.wanted()))return false;var have=stocks.user_have(this.stock);if(s>have){alert('You only own '+have+' shares');return false}return confirm('Sell '+s+' shares at '+ps+' per share?');case'rescindbid':return confirm('Rescind your bid to buy this stock?')}};stocks.dialog_select=function(id,prefix){stocks.get(id,prefix).select()};user.bookmark_data=function(user_data){var k,u;for(k in user_data){if(k=='t')continue;u=user_data[k].parse_vars();users.add_data_obj(u,{last:new visit(parseInt(u.lastvisit_t),u.lastvisit_url1,u.lastvisit_url2),note:new visit(parseInt(u.lastnote_t),u.lastnote_url1,u.lastnote_url2,menus.talktype(u.lastnote_type)),visitor:new visit(parseInt(u.loggedin),u.hash1,u.hash2,'vp'),post:new visit(parseInt(u.lastpost_t),u.hash1,u.hash2,menus.talktype(u.lastpost_type))})}};user.bookmark_table=function(label,b,menu,type){var t=user.table,i;t.clear(menu);t.add_header(label,'td_user');t.add_header('Last visit','td_left');t.add_header('Last note','td_left');t.add_header('Stock value','td_right');t.add_header('Earnings','td_right');t.add_header('Cash','td_right');for(i=0;i<b.length;i++)t.add_row([new td_user(b[i]),'lastvisit','lastnote','stockvalue','earnings','cash']);t.settype(type);t.display(0)};user.viewowner=function(){if(!page.displayed.admin)alert("This owner of this page is unknown");else user.display(page.displayed.admin.hash1,page.displayed.admin.hash2)};page.visit=function(){var u=user.displayed;if(u.is_guest()||u.is_no_owner())alert("Sorry, you can't visit guests or placeholder users");else main.log_into(u.hash1,u.hash2)};user.update_icons=function(u){};page.update_icons=function(u){};page.update_icons_first=function(success){};data_area.prototype.parent=function(){var u,t=this;var r=t.displayed.room;if(r&&r.parent>0){u=users.add(r.parent);users.get_data(t.parent2,u)}else if(this.menu_bar_name=='page')user._display(this.displayed.admin)};data_area.prototype.parent2=function(s,u){if(s){if(!u.is_person()&&!u.room)users.need_room(u);user.set(u,null,function(){notes.display_rooms()})}};page.launch=function(){var u=(arguments.length<1?page.displayed:arguments[0]);if(u.is_person())user.launch_user(u);else{var p=u.profile;open_url(p.type=='stock'?p.mainurl:p.url);user.record_visit(u)}};user.launch=function(){var u=(arguments.length<1?user.displayed:arguments[0]);if(u)user.launch_user(u)};user.launch_user=function(u){if(u.profile.servicepage){open_url(u.profile.servicepage);user.record_visit(u)}else if(!u.is_guest()&&!u.is_no_owner())alert('This profile page is private');else alert('Sorry, no profile page to open')};user.record_visit=function(u){if(user.logged_in()&&u.known){if(!u.owner)user.ajax.get('getowner.php','h1='+u.hash1+'&h2='+u.hash2,user.record_visit2);else if(!u.owner.is_no_owner())notes.ajax.get('recordvisit.php','stock1='+u.stock.hash1+'&stock2='+u.stock.hash2,function(){})}};user.record_visit2=function(success,r){if(success){var u=users.get(r.hash1,r.hash2);u.owner=users.add(r.owner1,r.owner2);u.stock=users.add(r.stock1,r.stock2);user.record_visit(u)}};var visits=[];function visit(t,url1,url2,m){this.t=t;this.url1=url1;this.url2=url2;this.menu=(m?m:'d');this.index=visits.length;visits.push(this)};visit.prototype.td_value=function(){return-this.t};visit.prototype.td_text=function(){return(this.t<=0?'-':this.link(ago(this.t,true)))};visit.prototype.link=function(text){return'<a class="tbl_link" href="javascript:main.visit('+this.index+')">'+text+'</a>'};visit.prototype.profile_text=function(){if(this.t<=0)return'-';var t,u=users.get(this.url1,this.url2),w=ago(this.t,true);if(u&&u.retrieved)return w+' at '+this.link(u.name());return this.link(w)};function list(d){this.title=d.title;this.pages=parseInt(d.pages);this.time=parseInt(d.time);this.columns=[];var i,cd,c=d.columns.parse_vars();for(i in c){cd=c[i].parse_vars();this.columns.push({type:cd.type,label:cd.label})}this.sortcol=parseInt(d.sortcol);this.sortorder=d.sortorder;this.page={}};list.prototype.add_row=function(page,d){var i,j=0,r=[];for(i in d){switch(this.columns[j].type){case'user':case'auction':r.push(users.add_list(d[i].parse_vars()));break;case'dollars':r.push(parseFloat(d[i]));break;default:r.push(parseInt(d[i]));break}j+=1}this.page[page].push(r)};list.prototype.css_class=function(i){switch(this.columns[i].type){case'user':case'auction':return'td_user';default:return'td_right'}};list.prototype.table_object=function(p,i,j){var e=this.page[p][i][j];switch(this.columns[j].type){case'user':return new td_user(e);case'auction':return new td_user(e,true,'os');case'dollars':return new td_dollars(e);case'int':return new td_int(e);case'when':return new td_when(e)}};list.prototype.table=function(t,p){t.clear();var i,j,r,c=this.columns;for(i=0;i<c.length;i++)t.add_header(c[i].label,this.css_class(i));for(i=0;i<this.page[p].length;i++){r=[];for(j=0;j<c.length;j++)r.push(this.table_object(p,i,j));t.add_row(r)}t.sort(this.sortcol);if(this.sortorder=='desc')t.sort(this.sortcol)};tops={lists:{},table:new table('top_table','tops','top')};tops.sortdisp=function(col){this.table.sort(col);main_info(this.table.to_html(),tops.menu())};tops.stockvalue=function(){tops.display('stockvalue',1)};tops.earnings=function(){tops.display('earnings',1)};tops.cash=function(){tops.display('cash',1)};tops.ipos=function(){tops.display('ipos',1)};tops.pos=function(){tops.display('pos',1)};tops.auctions=function(){tops.display('auctions',1)};tops.menu=function(){var l=tops.list,p=tops.page;var lst=tops.lists[l];var n=lst.pages,m='';m+='<div id="list_title">'+lst.title+'</div>';m+='<div id="list_date">list generated<br>'+date_str(lst.time)+'</div>';if(n>0){m+='<div id="list_page">page '+p+' of '+n+'</div>';m+='<div id="list_page_ctl">';m+='<div id="list_last" class="list_ctl" onclick="tops.display(\''+l+'\','+n+')" title="last page">&nbsp;</div>';m+='<div id="list_next" class="list_ctl"';if(p<n)m+=' onclick="tops.display(\''+l+'\','+(p+1)+')"';m+=' title="next page">&nbsp;</div>';m+='<div id="list_prev" class="list_ctl"';if(p>1)m+=' onclick="tops.display(\''+l+'\','+(p-1)+')"';m+=' title="previous page">&nbsp;</div>';m+='<div id="list_first" class="list_ctl" onclick="tops.display(\''+l+'\',1)" title="first page">&nbsp;</div>';m+='</div>'}m+='<span id="list_browse" onmouseover="menus.browse(event);return false" onmouseout="menus.hide()">Browse</span>';return m};tops.display=function(list,page){var i,u,l=tops.lists[list];tops.list=list;tops.page=page;if(!l)tops.gethdr(list);else if(l.pages==0)main_info('&nbsp;&nbsp;No data to display',tops.menu());else if(!l.page[page])tops.getpage(list,page);else{l.table(tops.table,page);main_info(tops.table.to_html(),tops.menu())}};tops.gethdr=function(list){user.ajax.get('getlisthdr.php','list='+list,tops.gethdr_response,{list:list})};tops.gethdr_response=function(success,response,args){if(success){tops.lists[args.list]=new list(response);tops.display(args.list,1)}};tops.getpage=function(list,page){user.ajax.get('getlist.php','list='+list+'&page='+page,tops.getpage_response,{list:list,page:page})};tops.getpage_response=function(success,response,args){if(success){var i,l=tops.lists[args.list];l.page[args.page]=[];for(var i in response)l.add_row(args.page,response[i].parse_vars());tops.display(args.list,args.page)}};tops.browse_menu=function(m){m.add(new menu_item('stockvalue','Top stocks',tops.stockvalue));m.add(new menu_item('earnings','Top earners',tops.earnings));m.add(new menu_item('cash','Most cash',tops.cash));m.add(new menu_item('ipos','Initial public offerings',tops.ipos));m.add(new menu_item('pos','Public offerings',tops.pos));m.add(new menu_item('auctions','Other Auctions',tops.auctions))};menus.browse=function(e){var m=menus.new_context();tops.browse_menu(m);menus.contextgo(e,m)};function _win(name,html,style,ops){if(!ops)var ops={};var w=this,e;if(ops.pane)e=ops.pane;else{e=document.createElement('div');e.id='__win__'+name;e.className=(ops.style=='popup'?'pop_':'')+'pop_win';for(var i in style)e.style[i]=style[i];e.onclick=function(){w.focus();if(w.ops.onclick)w.ops.onclick()};document.body.appendChild(e);if(ops.style=='popup')w.shadow=new shadow(e,'info')}w.name=name;w.e=e;w.z=0;w.open(html,ops);w.pos=get_pos(e)};_win.prototype.topz=function(){this.z=(this.ops.pane?0:(this.name=='video'?2000:500))};_win.prototype.open=function(html,ops){if(!ops)var ops={};var w=this;w.ops=ops;if(ops.pane)this.e=ops.pane;else{w.e.innerHTML='<div id="_win_tabs_'+w.name+'" class="win_tabs"></div><div id="_win_cont_'+w.name+'" class="win_cont" onmousedown="stop_prop(event)"><div id="_wt_'+w.name+'0">'+html+'</div></div><div class="window_close" onclick="win.close(\''+w.name+'\')" title="close">x</div>';w.e.onmousedown=function(e){w.startdrag(e);return false};w.e.onmouseover=(ops.onmouseover?ops.onmouseover:function(){});w.e.onmouseout=(ops.onmouseout?function(e){if(!mouse_in(e,w.e))w.ops.onmouseout(e)}:function(){});if(ops.positionto)position_to_element(w.e.style,ops.positionto,ops.pos,ops.align);w.e.style.display='block';if(w.shadow){w.shadow.setz(499);w.shadow.show()}w.tabs=[{n:'Main',e:'_wt_'+w.name+0}];w.ctab=0}w.displayed=true};_win.prototype.upshad=function(){if(this.shadow)this.shadow.show()};_win.prototype.add_tab=function(n,h){var w=this;if(w.get_tab(n)>=0)return false;var c=('_win_cont_'+w.name).e(),e=document.createElement('div'),id='_wt_'+w.name+w.tabs.length;e.id=id;e.className='win_tab_body';e.style.width=c.offsetWidth+'px';e.style.height=c.offsetHeight+'px';e.style.visibility='hidden';e.innerHTML=h;c.appendChild(e);w.tabs.push({n:n,e:id});return true};_win.prototype.update_tab=function(n,h){var t,w=this;if((t=w.get_tab(n))>=0)('_wt_'+w.name+t).e().innerHTML=h};_win.prototype.rename_tab=function(n,n2){var i=this.get_tab(n);if(i>=0)this.tabs[i].n=n2};_win.prototype.remove_tab=function(n){var i=this.get_tab(n);if(i>=0)this.tabs.splice(i,1);return(i>=0)};_win.prototype.get_tab=function(n){var i,t=this.tabs;for(i=0;i<t.length;i++)if(t[i].n==n)return i;return-1};_win.prototype.put_tabs=function(){var w=this;var e=('_win_tabs_'+w.name).e(),i,h='';if(w.tabs.length<2)e.style.display='none';else{for(i=0;i<w.tabs.length;i++)h+='<div class="win_tab'+(i==w.ctab?'_sel':'')+'" onclick="win.set_tab(\''+w.name+"',"+i+')">'+w.tabs[i].n+'</div>';e.innerHTML=h;e.style.width=(w.e.offsetWidth-60)+'px';e.style.display='block'}w.upshad()};_win.prototype.adjust_tabs=function(){var i,e,w=this,c=w.tabs[0].e.e();for(i=1;i<w.tabs.length;i++){e=w.tabs[i].e.e().style;e.width=c.offsetWidth+'px';e.height=c.offsetHeight+'px'}w.upshad()};_win.prototype.set_tab=function(tab){var t=tab,i,w=this,s=this.tabs;if(typeof(t)=='string')if((t=w.get_tab(tab))<0)return;for(i=0;i<s.length;i++)s[i].e.e().style.visibility=(i==t?'visible':'hidden');w.ctab=t;w.put_tabs()};_win.prototype.receiver=function(t,u,id,ic,oc,l){if(!this.receivers)this.receivers=[];if(t=='sidebar'||(!u.is_person()&&u.admin.is_user()))this.receivers.push({t:t,id:id,u:u,ic:ic,oc:oc,l:l});return'id="'+id+'"'};_win.prototype.close=function(f){var w=this;if(f||!w.ops.onclose||w.ops.onclose(w)){if(w.shadow)w.shadow.hide();if(!w.ops.pane){w.e.style.display='none';w.e.innerHTML=''}w.displayed=false}};_win.prototype.focus=function(){var t=time();if(t-win.lastfocus<200)return;win.lastfocus=t;var w=this,s=win.stack,i;if(w.ops.pane||w.z>=500)return;for(i=0;s[i].name!=w.name;i++)if(!s[i].ops.pane&&s[i].name!='video')s[i].z-=2;s[i].z=(s[i].name=='video'?2000:500);s.sort(function(a,b){return b.z-a.z});for(i=0;i<s.length;i++)if(!s[i].ops.pane){if(s[i].shadow)s[i].shadow.setz(s[i].z-1);s[i].e.style.zIndex=s[i].z}};_win.prototype.getsize=function(){var e=('_win_cont_'+this.name).e();return{w:e.offsetWidth,h:e.offsetHeight}};_win.prototype.startdrag=function(e){if(!e)var e=window.event;stop_prop(e);var w=this;this.pos=get_pos(this.e);w.mpos={x:e.clientX,y:e.clientY};var b=document.body;b.onmouseup=function(){w.stopdrag()};win.dragging=w};_win.prototype.drag=function(e){if(!e)var e=window.event;stop_prop(e);var w=this;w.pos.x+=e.clientX-w.mpos.x;w.pos.y+=e.clientY-w.mpos.y;var s=w.e.style;s.left=w.pos.x+'px';s.right='auto';s.top=w.pos.y+'px';s.bottom='auto';if(w.shadow)w.shadow.show();w.mpos={x:e.clientX,y:e.clientY}};_win.prototype.stopdrag=function(){var b=document.body;b.onmouseup=null;win.dragging=false};var win={stack:[],lastfocus:0};win.get=function(name){var i,s=win.stack;for(i=0;i<s.length;i++)if(s[i].name==name)return s[i];return null};win.open=function(name,html,style,ops){var w=win.get(name);if(w){if(ops&&ops.applystyle)for(var i in style)w.e.style[i]=style[i];w.open(html,ops)}else{w=new _win(name,html,style,ops);win.stack.push(w)}w.content={};w.receivers=null;w.focus();return w};win.close=function(name){var w=win.get(name);if(w&&w.displayed)w.close()};win.displayed=function(n){var w=win.get(n);return(w&&w.displayed)};win.set_tab=function(name,i){var w=win.get(name);if(w)w.set_tab(i)};win.set_val=function(name,n,v){var w=win.get(name);if(w)w.content[n]=v};win.startdrag=function(el,ev,type,ref){if(!ev)var ev=window.event;if(ev.button>1)return;stop_prop(ev);win.receive=null;if(type=='geo'&&ref.marker){win.close('mapnote');main.hide_info();var g=ref;if(g.dragging){var s='menu'.e().style;s.left=(page_width()+10)+'px';s.display='block';menus.show_shadow();return}else{g.marker.setClickable(true);g.geo.data.map.setOptions({draggable:false})}}if(!ev)var ev=window.event;var b=document.body,d={type:type,ref:ref,el:el,iw:win.in_win(ev)},h;win.dragged=d;d.mpos={x:ev.clientX,y:ev.clientY};d.origmpos={x:ev.clientX,y:ev.clientY};if(type!='geo'||!ref.dragging){d.pos=get_pos(el);switch(type){case'room':case'elroom':h='<img src="gfx/gallery.jpg">';d.pos={x:d.mpos.x-75,y:d.mpos.y-56};break;case'geo':case'elgeo':h='<img src="gfx/mapdrag.png">';d.pos={x:d.mpos.x-37,y:d.mpos.y-38};break;case'elperson':h=win.get(ref).content.elements.person.photo.note_html();d.pos={x:d.mpos.x-27,y:d.mpos.y-27};break;case'person':h=users.geti(ref).photo.note_html();d.pos={x:d.mpos.x-27,y:d.mpos.y-27};break;case'elphoto':h='<img src="'+win.get(ref).content.elements.photo.imgurl('smallest')+'">';break;case'elvideo':h='<img src="'+win.get(ref).content.elements.video.thumb+'">';break;case'photo':h='<img src="'+all_photos[ref].imgurl('smallest')+'">';break;case'video':h='<img src="'+all_videos[ref].thumb+'">';break;case'elwiki':h='<img src="gfx/wikipedia.png">';break}'drag'.e().innerHTML=h;win.dragging=win}b.onmouseup=function(e){win.stopdrag(e);return false}};win.drag=function(e){bigimage.close();if(!e)var e=window.event;stop_prop(e);var d=win.dragged,s='drag'.e().style,w=win.in_win(e),i,r,nr=null,wr=win.receive;var el=story.getel(d.type,d.ref);d.pos.x+=e.clientX-d.mpos.x;d.pos.y+=e.clientY-d.mpos.y;s.left=d.pos.x+'px';s.right='auto';s.top=d.pos.y+'px';s.bottom='auto';s.display='block';d.mpos={x:e.clientX,y:e.clientY};if(w&&(r=w.receivers))for(i=0;i<r.length;i++)if((!r[i].l||r[i].l.displayed())&&mouse_in(e,r[i].id.e())){if(r[i].t=='sidebar'){nr=r[i];break}else if(r[i].u.room.updates_mode=='group'){if(d.type=='room'&&el.admin.is_user()&&!el.same(r[i].u)){nr=r[i];break}}else if(d.type!='room'||!el.same(r[i].u)){nr=r[i];break}}if(wr&&wr!=nr)wr.id.e().className=wr.oc;if(nr&&nr!=wr)nr.id.e().className=nr.ic;win.receive=nr};win.stopdrag=function(e){if(!e)var e=window.event;var i,p,iw,mx=e.clientX,my=e.clientY,d=win.dragged,wr=win.receive,l,u,item;win.dragged=null;if(d.type!='geo'||!d.ref.dragging)'drag'.e().style.display='none';var b=document.body;b.onmouseup=null;win.dragging=false;if(docs.displayed)return;if(d.type=='geo'&&d.ref.geo)d.ref.geo.data.map.setOptions({draggable:true});if(wr)wr.id.e().className=wr.oc;iw=win.in_win(e);switch(d.type){case'elphoto':case'elvideo':case'elgeo':case'elperson':case'elroom':case'elwiki':if(iw!=d.iw){var w=win.get(d.ref),t=d.type.substr(2);if(confirm('Remove this as the main '+t+' of the note?')){w.content.elements[t]=null;story.elements(w);var l=w.content.ops.l;if(t=='geo'&&l&&l.displayed()&&l.mode=='geo'&&w.content.mg){l.pane.geo.remove_note(w.content.mg);w.content.mg=null;l.pane.geo.edit.close()}}}break;default:item=story.getel(d.type,d.ref);if(wr){if(wr.t=='room'&&d.type=='room'&&(u=story.getel(d.type,d.ref)).admin.is_user()&&wr.u.room.updates_mode=='group')page.move_room(u,wr.u.uid);else{var l,el={};if(wr.t=='sidebar')l=main.clipboard;else{l=wr.u.notices;if(!l)l=wr.u.make_notices()}el[d.type]=item;notes.post(l,el)}}else if(!iw||iw==d.iw||!iw.ops.ondrop||!iw.ops.ondrop(iw,d.type,d.ref,e)){if(mouse_in(e,page.panehdr_id.e())&&(d.type=='person'||d.type=='room')&&!item.same(page.displayed))main.log_into(item.uid);else if(mouse_in(e,user.panehdr_id.e())&&d.type=='person'&&!item.same(user.displayed))user._display(item)}}};win.in_win=function(e){var i,s=win.stack;for(i=0;i<s.length;i++)if(s[i].displayed&&mouse_in(e,s[i].e))return s[i]};function latlongzoom(lat,long,zoom){this.lat=Math.round(lat*1000000)/1000000;this.long=Math.round(long*1000000)/1000000;this.zoom=zoom};latlongzoom.prototype.to_str=function(){return this.lat+','+this.long+','+this.zoom};latlongzoom.prototype.same=function(l){return(this.lat==l.lat&&this.long==l.long&&this.zoom==l.zoom)};latlongzoom.prototype.latlng=function(){return new google.maps.LatLng(this.lat,this.long)};function geoloc(lat,long,zoom,t,title,note,aux){this.llz=new latlongzoom(lat,long,zoom);this.t=t;this.title=title;this.note=note;this.aux=aux};geoloc.prototype.clone=function(){return new geoloc(this.llz.lat,this.llz.long,this.llz.zoom,this.t,this.title,this.note,this.aux)};geoloc.prototype.same=function(g){return this.llz.same(g.llz)};geoloc.prototype.el_title=function(){return this.title};geoloc.prototype.el_text=function(){return this.note};geoloc.prototype.el_id=function(){return this.llz.to_str()};geoloc.prototype.el_data=function(){var s=this.el_id();if(this.title!='')s+=','+this.title;return s};geoloc.prototype.events=function(){var l=this.llz;var t=this.title.html_chars().addslashes();return' onclick="user.display_location(\''+t+"',"+l.lat+','+l.long+','+l.zoom+')" onmouseover="main.pop_geo_info(this,\''+t+'\')" onmouseout="main.hide_info()" onmousedown="win.startdrag(this,event,\'geo\',new geoloc('+l.lat+','+l.long+','+l.zoom+','+this.t+',\''+t+'\',\'\'));return false"'};geoloc.prototype.embed_html=function(text){return'<span class="embed_geo"'+this.events()+'">'+text+'</span>'};main.pop_geo_html=function(t,c){if(!c)c='Click';return'<div style="margin:8px"><b>'+t.maxlength(60)+'</b><br>'+c+' to view on map</div>'};main.pop_geo_info=function(e,t){main.show_info(e,'auto2','auto2',main.pop_geo_html(t))};geoloc.prototype.xy=function(){var m=this.geo.data.map;var s=Math.pow(2,m.getZoom()),r=m.getProjection(),ne,mp;ne=r.fromLatLngToPoint(m.getBounds().getNorthEast()),mp=r.fromLatLngToPoint(this.marker.getPosition());while(mp.x>ne.x)mp.x-=256;return{x:Math.round((mp.x-ne.x)*s),y:Math.round((mp.y-ne.y)*s)}};geoloc.prototype.closeto=function(p){var gp=this.xy();return(Math.abs(gp.x-p.x)<6&&Math.abs(gp.y-p.y)<6)};geoloc.prototype.editing=function(){return(this.selected&&this.geo.edit.active)};geoloc.prototype.attach=function(geo,map){var g=this,op;this.orig=new latlongzoom(g.llz.lat,g.llz.long,g.llz.zoom);if(typeof(g.aux)=='undefined')g.aux=g;if(!this.selected)this.selected=false;if(!this.infoshown)this.infoshown=false;g.geo=geo;op={position:g.llz.latlng(),map:map,draggable:false};if(geo.op.showtitle)op.title=g.title.html_chars();g.marker=new google.maps.Marker(op);if(geo.op.showinfo){g.info=new google.maps.InfoWindow({content:g.info_html('locinfo')});google.maps.event.addListener(this.info,'closeclick',function(){g.infoshown=false})}g.moved=false;google.maps.event.addListener(this.marker,'click',function(){g.select()});var getevel=function(){var ev={},el={},e=g.geo.canvas().e(),p;if(e.offsetWidth<Math.pow(2,g.geo.data.map.getZoom())*256){p=g.xy();el.offsetLeft=e.offsetWidth+p.x;el.offsetTop=p.y;el.offsetWidth=20;el.offsetHeight=34}else{p=get_pos(e);el.offsetLeft=mouseX-p.x;el.offsetTop=mouseY-p.y;el.offsetWidth=0;el.offsetHeight=0}el.offsetParent=el.parentNode=e;ev.clientX=mouseX;ev.clientY=mouseY;el.offsetLeft-=el.offsetWidth/2;el.offsetTop-=el.offsetHeight;return{ev:ev,el:el}};if(geo.op.context)google.maps.event.addListener(this.marker,'rightclick',function(){geo.op.context(getevel().ev,g)});if(geo.op.mouseover)google.maps.event.addListener(this.marker,'mouseover',function(){if(!g.dragging)geo.op.mouseover(getevel().el,g.aux)});if(geo.op.mouseout)google.maps.event.addListener(this.marker,'mouseout',function(){geo.op.mouseout()});google.maps.event.addListener(this.marker,'position_changed',function(){g.onmove()});google.maps.event.addListener(this.marker,'mousedown',function(){win.startdrag(null,getevel().ev,'geo',g)});if(g.selected)g.select()};geoloc.prototype.unattach=function(){if(this.geo.op.showinfo)this.hide_info();this.marker.setMap(null)};geoloc.prototype.set_dragging=function(d){this.marker.setDraggable(d);this.dragging=d};geoloc.prototype.onmove=function(){if(!win.dragging&&this.geo.edit.active){this.moved=true;this.geo.change();this.geo.edit.update_ll()}};geoloc.prototype.info_html=function(ctrclass){var g=this;return'<div class="'+ctrclass+'">'+(g.dragging?g.geo.edit.info_html(g):g._info_html())+'</div>'};geoloc.prototype._info_html=function(ctrclass){var g=this,h;h='<div class="loctitle">'+g.title.html_chars()+'</div>';if(g.note!='')h+='<div class="locnote">'+g.note.to_html(true)+'</div>';return h+'<div class="loctime">'+ago(g.t,true)+'</div>'};geoloc.prototype.show=function(){var m=this.map();m.setCenter(this.llz.latlng());m.setZoom(this.llz.zoom)};geoloc.prototype.show_info=function(show){this.info.setContent(this.info_html());this.info.open(this.map(),this.marker);this.infoshown=true};geoloc.prototype.hide_info=function(show){this.info.close();this.infoshown=false};geoloc.prototype.map=function(){return this.marker.getMap()};geoloc.prototype.select=function(f){var g=this.geo;g.active=true;if(g.op.onselect)g.op.onselect(this);if(f||!this.selected){main.hide_info();g.data.selected=this;this.show();var i,l=g.data.locs;for(i=0;i<l.length;i++){if(g.op.showinfo)l[i].hide_info();l[i].selected=false;l[i].marker.setZIndex(10)}this.selected=true;this.marker.setZIndex(20);g.update_sel();g.edit.setloc(this)}if(g.op.showinfo)this.show_info()};user.display_location=function(text,lat,long,zoom){win.open('map','<div id="pop_map"></div>',{top:'200px',right:'200px'});var l=new google.maps.LatLng(lat,long);var m=new google.maps.Map('pop_map'.e(),{mapTypeId:google.maps.MapTypeId.ROADMAP,streetViewControl:true,center:l,zoom:zoom,zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE}});new google.maps.Marker({position:l,map:m,title:text})};function ngeoedit(){this.active=false};ngeoedit.prototype.close=function(){if(this.active){this.g.set_dragging(false);this.active=false;this.g.geo.setvisible()}};ngeoedit.prototype.setloc=function(){};ngeoedit.prototype.setnote=function(g,ng){this.ng=ng;this.g=g;g.set_dragging(true);g.select();this.active=true;g.geo.setvisible()};ngeoedit.prototype.update_ll=function(){if(this.active){var n=this.ng;var l=this.g.marker.getPosition();n.llz.lat=l.lat();n.llz.long=l.lng()}};ngeoedit.prototype.update_z=function(){};ngeoedit.prototype.update_title=function(e){this.ng.title=e.value.trim()};ngeoedit.prototype.info_html=function(){var e=this.geo.pane+'.geo.edit.update_title(this)';return'Enter/edit location name:<br><input style="width:90%" onchange="'+e+'" onkeypress="'+e+'" onmouseout="'+e+'" value="'+this.ng.title.html_chars().addslashes()+'">'};function geo(locs,pane,options){this.active=false;this.pane=pane;this.op=options;var op=this.op;if(!op.editable)op.editable=false;if(!op.showinfo)op.showinfo=false;if(!op.showtitle)op.showtitle=false;if(!op.showall)op.showall=false;if(!op.sortby)op.sortby='title';this.data={changed:false,locs:[],sized:false,selected:null};var i,l=this.data;for(i=0;i<locs.length;i++)l.locs.push(locs[i].clone());this.sort();if((!op.showall&&op.sortby=='time')||locs.length==1){l.locs[0].selected=true;l.selected=l.locs[0]}};geo.prototype.focus=function(g){var i,l=this.data.locs;for(i=0;i<l.length;i++)if(g.lat==l[i].lat&&g.long==l[i].long){l[i].select();return}g.attach(this,this.data.map);l.push(g);g.select()};geo.prototype.sort=function(){var l=this.data.locs,o=this.op;if(o.sortby=='title')l.sort(function(a,b){return(a.title>b.title?1:-1)});else if(o.sortby=='time')l.sort(function(a,b){return b.t-a.t})};geo.prototype.setvisible=function(){var l=this.data.locs,i,j,p,m,g;for(i=0;i<l.length;i++){l[i].mergedto=l[i];m=l[i].marker;if(l[i].editing())m.setVisible(true);else{p=l[i].xy();for(j=0;j<i;j++)if(!l[j].editing()&&l[j].marker.getVisible()&&l[j].closeto(p)){l[i].mergedto=l[j];break}m.setVisible(j==i)}}if(!this.edit.active&&(g=this.data.selected)){p=g.xy();for(i=0;i<l.length;i++)if(l[i]!=g&&l[i].closeto(p))l[i].marker.setVisible(false);g.marker.setVisible(true)}};geo.prototype.selhtml=function(){var i,h='Show',l=this.data,p=this.pane;this.sort();if(this.op.editable)h+='/edit';h+=': <select style="width:65%" id="'+p+'_geo_select" onchange="'+p+'.geo.select()">';if(l.locs.length>1)h+='<option value="-1"'+(!l.selected?' selected="selected"':'')+'>All locations</option>';for(i=0;i<l.locs.length;i++)h+='<option value="'+i+'"'+(l.locs[i].selected?' selected="selected"':'')+'>'+l.locs[i].title.html_chars()+(this.op.sortby=='time'?' ('+ago(l.locs[i].t,true)+')':'')+'</option>';h+='</select> <span class="mapctl" onclick="'+p+'.geo.select()">Go</span>';if(this.op.editable&&l.selected)h+=' <span class="mapctl" onclick="'+p+'.geo.edit.open()">Edit</span>';return h+'</span>'};geo.prototype.update_sel=function(){var e=(this.pane+'_geo_selcont').e();if(this.data.locs.length==0)e.style.display='none';else{e.innerHTML=this.selhtml();e.style.display='block'}main.resize()};geo.prototype.canvas=function(){return this.pane+'_map_canvas'};geo.prototype.html=function(){(this.pane=='user'?user:page).data_id.e().style.overflow='hidden';var h='',p=this.pane;h='<div id="'+p+'_geo_selcont" class="geoloc_selcont" style="display:'+(this.data.locs.length>0?'block':'none')+'">';h+=this.selhtml();h+='</div>';h+='<div id="'+this.canvas()+'" class="map_canvas" ondblclick="stop_prop(event)" oncontextmenu="stop_prop(event);return false"></div>';return h};geo.prototype.go=function(){var l=this.data,i,g,b,t=this;var op={mapTypeId:google.maps.MapTypeId.ROADMAP,streetViewControl:true,zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE}};if((!t.op.showall&&t.op.sortby=='time'&&l.locs.length>0)||l.locs.length==1){g=l.locs[0];g.selected=true;l.selected=g;op.center=g.llz.latlng();op.zoom=g.llz.zoom}else if(l.locs.length>1){b=new google.maps.LatLngBounds();for(i=0;i<l.locs.length;i++)b.extend(l.locs[i].llz.latlng());op.center=b.getCenter();op.zoom=4}else{op.center=new google.maps.LatLng(0.0,0.0);op.zoom=2}l.map=new google.maps.Map(t.canvas().e(),op);if(b)l.map.fitBounds(b);for(i=0;i<l.locs.length;i++)l.locs[i].attach(t,l.map);t.edit=(t.op.edit?t.op.edit:new geoedit());t.edit.geo=t;google.maps.event.addListener(l.map,'idle',function(){if(!l.sized){l.sized=true;main.resize();if(l.selected)l.selected.select(true);t.setvisible()}});google.maps.event.addListener(l.map,'zoom_changed',function(){if(l.sized)t.edit.update_z();t.setvisible()});if(b)l.map.fitBounds(b);t.active=true};geo.prototype.set_time=function(){if(confirm("Make this your latest location?")){var g=this.data.selected;g.t=now();g.info.setContent(g.info_html('locinfo'));this.update_sel();this.change()}};geo.prototype.edit_info2=function(){var t='loctitleedit'.e().value.trim().substr(0,60);if(t==''){alert("The title can't be empty");return}var z=parseInt('loczedit'.e().value);if(isNaN(z)||z<0||z>20){alert('Invalid zoom');return}var ll='loclledit'.e().value.split(',');if(ll.length!=2){alert('Invalid lat/long');return}var lat=parseFloat(ll[0].trim());var long=parseFloat(ll[1].trim());if(isNaN(lat)||lat<-90.0||lat>90.0||isNaN(long)||long<-180.0||long>180.0){alert('Invalid lat/long');return}ll=new google.maps.LatLng(lat,long);var g=this.data.selected;g.title=t;g.note='locnoteedit'.e().value.trim().substr(0,140);g.zoom=z;g.marker.setPosition(ll);this.data.map.setZoom(z);this.data.map.setCenter(ll);this.update_sel();g.marker.setTitle(t);g.info.setContent(g.info_html('locinfo'));this.change()};geo.prototype.center=function(){var l=this.data;l.selected.marker.setPosition(l.map.getCenter())};geo.prototype.add_new=function(){var l=this.data;l.selected=null;ll=l.map.getCenter();var g=new geoloc(ll.lat(),ll.lng(),l.map.getZoom(),now(),'New location','');this.add(g);g.select();this.update_sel();this.change()};geo.prototype.add=function(g){var l=this.data;l.locs.push(g);g.attach(this,l.map);return g};geo.prototype.remove=function(){var l=this.data;var i,a=l.locs;var g=l.selected;if(a.length==1)alert("You can't remove all your locations");else if(confirm('Delete this location?')){g.unattach();a.splice(a.find(g),1);a[0].select();this.update_sel();this.change()}};geo.prototype.remove_note=function(g){var l=this.data;var i,a=l.locs;if((i=a.find(g))>=0){var sel=g.selected;g.unattach();a.splice(i,1);if(sel){l.selected=false}this.update_sel()}};geo.prototype.get_note=function(id){var i,a=this.data.locs;for(i=0;i<a.length;i++)if(a[i].aux.did==id)return a[i]};geo.prototype.trim=function(){if(confirm('Remove all but your last 20 locations?')){var i,l=this.data.locs;for(i=20;i<l.length;i++)l[i].unattach();l.splice(20,l.length-20);l[0].select();this.update_sel();this.change()}};geo.prototype.bounds=function(l){var i,b=new google.maps.LatLngBounds();for(i=0;i<l.length;i++)b.extend(l[i].llz.latlng());return b};geo.prototype.show_all=function(){var d=this.data;var l=d.locs,i;if(l.length==0){d.map.setCenter(new google.maps.LatLng(0.0,0.0));d.map.setZoom(1)}else if(l.length==1)l[0].select();else this.setview(l)};geo.prototype.setview=function(gl){var d=this.data;var i,l=d.locs;d.map.fitBounds(this.bounds(gl));d.selected=null;for(i=0;i<l.length;i++){l[i].selected=false;if(this.op.showinfo)l[i].hide_info()}this.update_sel();this.edit.setloc(null)};geo.prototype.select=function(){var e=(this.pane+'_geo_select').e();var s=parseInt(e.options[e.selectedIndex].value);if(s>=0)this.data.locs[s].select();else{this.show_all();this.edit.setloc()}};geo.prototype.restore=function(){var g=this.data.selected;g.marker.setPosition(g.orig.latlng());g.show();g.moved=false};geo.prototype.change=function(){if(!this.data.changed){this.data.changed=true}this.active=true};data_area.prototype.geo_pop_info=function(se,g){if(!g.infoshown)main.show_info(se,'auto2','auto2',g.info_html('locpop'))};user.geo_on_exit=function(){if(!user.geo)return true;var x=(!user.geo.data.changed||confirm('If you leave this map the changes you have made will not be saved. Leave anyway?'));if(x){user.geo.edit.close();user.geo.data.changed=false;user.geo.onexit()}return x};page.geo_on_exit=function(r){if(page.geo)page.geo.onexit(r);win.close('findloc');var n=page.notelist;if(n&&n.displayed())n.geo_tabs(false);return true};geo.prototype.onexit=function(r){if(!r){this.active=false;(this.pane=='user'?user:page).data_id.e().style.overflow='auto';win.close(this.pane+'_postpane')}};function find_loc_h(n){return'<input id="_'+n+'_findloc" size="35" onkeypress="find_loc_key(event,\''+n+'\')"> <button onclick="find_loc_go(\''+n+'\')">Find</button>'};function find_loc_key(e,n){if(is_cr(e))find_loc_go(n)};function find_loc_go(n){var m,l=('_'+n+'_findloc').e().value.trim(),go=win.get(n).content.find_loc_go;if(l!=''){if(m=l.match(/([+-]?\d+\.\d+), ?([+-]?\d+\.\d+)/))go(l,new google.maps.LatLng(m[1],m[2]));else{var gc=new google.maps.Geocoder();gc.geocode({'address':l},function(r,s){if(s==google.maps.GeocoderStatus.OK)go(l,r[0].geometry.location,r[0].geometry.viewport);else alert("That place wasn't found or the Google geocoder service is not available")})}}};notes.findloc=function(){var n='findloc';var w=win.get(n);if(w&&w.displayed)w.close();else{w=win.open(n,'Location name or coordinates:<br>'+find_loc_h(n),{top:'300px',right:'200px'});w.content.find_loc_go=function(p,l,v){var g=page.notelist.pane.geo,m=google.maps;if(g&&g.active){if(v)g.data.map.fitBounds(v);else g.data.map.setCenter(l)}}}};_win.prototype.geo_tab=function(s){var x,w=this,n='Add a location';if(s){var h='Create a new location at:<br><br>The center of the map: <button onclick="win.get(\''+w.name+'\').content.find_loc_go(\'\',page.geo.data.map.getCenter())">Go</button>';h+='<br><br>This place name or coordinates:<br>'+find_loc_h(w.name);h+='<br><br>You can drag the location on the map after it is created to place it more accurately';x=w.add_tab(n,h);w.content.find_loc_go=function(t,l,v){var g=page.geo;if(w.displayed&&g&&g.active){if(v)g.data.map.fitBounds(v);story.drope(w,'geo',new geoloc(l.lat(),l.lng(),g.data.map.getZoom(),now(),t,''))}}}else x=w.remove_tab(n);if(x)w.put_tabs()};_notelist.prototype.geo_tabs=function(s){var w=win.get('post'+this.id);if(w&&w.displayed)w.geo_tab(s);w=win.get('edit');if(w&&w.displayed)w.geo_tab(s)};var editicons=[{css:'boldicon',pre:'[b]',post:'[/b]',title:'bold'},{css:'italicicon',pre:'[i]',post:'[/i]',title:'italic'},{css:'underlineicon',pre:'[u]',post:'[/u]',title:'underline'},{css:'fontsizeicon',pre:'[size=120]',post:'[/size]',title:'size'},{css:'smileicon',pre:':)',post:'',title:'smile'},{css:'frownicon',pre:':(',post:'',title:'frown'}];var editarea={};function textedit(name,container,textarea,icons,text){editarea[name]=this;this.textarea=textarea;this.icons=icons;this.title=title;this.width=(name!='editwelcome'?1.0:css_get_percent('#'+textarea,'width')/100.0);this.icons_left=css_get_px('.editicons','left');this.icons_width=css_get_px('.editicons','width');var i,c,h='<table cellspacing="0" cellpadding="0" style="clear:both;margin:0;padding:0"><tr><td>';h+='<textarea class="textinput" id="'+textarea+'" rows="5" cols="40" onselect="editselect(\''+name+'\')">'+(text?text:'')+'</textarea></td><td valign="bottom"><div class="editicons" id="'+icons+'">';h+='<div class="addYouTube" onclick="story.youtube(\''+name+'\')" title="add a YouTube video"></div>';h+='<div class="addWiki" onclick="story.wiki(\''+name+'\')" title="add a Wikipedia article"></div>';for(i=0;i<editicons.length;i++)h+='<div class="'+editicons[i].css+'" onclick="editaction(\''+name+"',"+i+')" title="'+editicons[i].title+'"></div>';h+='</div></td></tr></table>';container.e().innerHTML=h};textedit.prototype.text=function(){return this.textarea.e().value.trim()};textedit.prototype.clear=function(){return this.textarea.e().value=''};textedit.prototype.resize=function(pw,h){var x=Math.round(pw*this.width)-this.icons_width;this.textw=x;var el=this.textarea.e();if(el){el.style.width=x+'px';if(h)el.style.height=h+'px';el.style.display='none';el.style.display='block';this.icons.e().style.display='none';this.icons.e().style.display='block'}};function editselect(name){if(document.selection)editarea[name].sel=document.selection.createRange()};function editaction(name,icon){var i=editicons[icon];editarea[name].paste_code(i.pre,'',i.post)};textedit.prototype.paste_code=function(pr,txt,po){var a=this;var t=a.textarea.e();function text(d,c){return(c!=''?c:d)};t.focus();if(document.selection){if(!a.sel)a.sel=document.selection.createRange();a.sel.text=pr+text(txt,a.sel.text)+po;a.sel=false}else if(t.selectionStart||t.selectionStart=='0'){var s=t.selectionStart,e=t.selectionEnd,v=t.value;t.value=v.substring(0,s)+pr+text(txt,v.substring(s,e))+po+v.substring(e,v.length)}else{t.value+=pr+txt+po}};var story={};story.edit=function(name,title,edtitle,el,post,preview,ops,note){ops.name=name;var h='<div class="edit_title" id="_'+name+'_title"></div><div class="element_items" id="_'+name+'_embedded"></div>';var ht=(el.title&&el.title!='');h+='<div class="texttitle" id="_'+name+'_titlewrap"><input class="titleinput';if(ht)h+='" value="'+el.title.html_chars()+'"';else if(!ops.req_title)h+=' titlestart" value="Title (optional)"';else h+=' titlestart" value="Title (required)"';h+=' id="_'+name+'_titleinput" type="text" maxlength="80" onmousedown="story.tstart(\''+name+'\')"></div>';h+='<div class="textedit" id="_'+name+'_edit"></div><div class="win_ctl" id="_'+name+'_ctl"><button onclick="story.post(\''+name+'\')">Post</button><button onclick="story.preview(\''+name+'\')">Preview</button></div>';var w=win.open(name,h,{top:'200px',right:'100px'},{style:'popup',ondrop:(ops.drop?ops.drop:story.drop),onpost:post,onpreview:preview,onclose:story.onclose});var x=new textedit(name,'_'+name+'_edit','_'+name+'_text','_'+name+'_icons',(el.text?el.text:'')),s=w.getsize(),c=w.content;c.textedit=x;c.ops=ops;el.title=null;c.elements=el;c.note=note;c.tstart=ht;c.edtitle=edtitle;var s=w.getsize();var width=s.w-c.textedit.icons_width-1,e=('_'+w.name+'_title').e();e.style.width=width+'px';e.innerHTML=title;c.textedit.resize(s.w-4,s.h-('_'+w.name+'_ctl').e().offsetHeight-10);('_'+w.name+'_embedded').e().style.width=width+'px';story.elements(w);return w};story.elements=function(w){var c=w.content,s=w.getsize();var e=c.elements,el=('_'+w.name+'_embedded').e(),h='',t;for(t in e)if(t!='text'&&t!='title'&&e[t])h+='<div class="element_'+t+'" onclick="story.paste(\''+w.name+'\',\''+t+'\')" onmousedown="win.startdrag(this,event,\'el'+t+'\',\''+w.name+'\');return false" onmouseover="story.pop_info(this,\''+w.name+'\',\''+t+'\')" onmouseout="main.hide_info()"'+(t=='geo'?' oncontextmenu="story.disp_loc(\''+w.name+'\');return false"':'')+' title="paste '+t+' code"></div>';if(h=='')el.style.display='none';else{el.innerHTML=h+'<div style="clear:both"></div>';el.style.display='block'}if(c.edtitle){('_'+w.name+'_titlewrap').e().style.display='block';('_'+w.name+'_titleinput').e().style.width=c.textedit.textw+'px'}w.adjust_tabs();if(w.shadow)w.shadow.show()};story.tstart=function(name){var c=win.get(name).content;if(c.edtitle&&!c.tstart)story.set_title(name,'')};story.get_title=function(n){return(win.get(n).content.tstart?('_'+n+'_titleinput').e().value.trim():'')};story.set_title=function(n,t){var e=('_'+n+'_titleinput').e();e.value=t;e.className='titleinput';win.get(n).content.tstart=true};story.clear=function(name){var w=win.get(name);if(w&&w.displayed){win.close('preview');var l=w.content.ops.l;w.content={};if(l&&name.substr(0,4)=='post'&&l.mode=='chat')notes.post(l);else w.close()}};story.pop_info=function(pe,n,t){var e=win.get(n).content.elements,h;switch(t){case'photo':h='<div style="margin:8px"><img src="'+e.photo.imgurl('smallest')+'"></div>';break;case'video':h=e.video.pop_html();break;case'person':h=user.pop_profile_html(e.person.id,true);break;case'room':h=user.pop_profile_html(e.room.id,true);break;case'geo':h=main.pop_geo_html(e.geo.title,'Right click');break;case'wiki':h=e.wiki.pop_html();break}main.show_info(pe,'auto2','auto2',h)};story.el_title=function(t,e){return(e.el_title()!=''?e.el_title():t.toUpperCase()+' TEXT')};story.paste=function(n,t){main.hide_info();var c=win.get(n).content;c.textedit.paste_code('['+t+']',story.el_title(t,c.elements[t]),'[/'+t+']')};story.disp_loc=function(n){var c=win.get(n).content,l=page.notelist,g;if(c.mg&&l&&l.displayed()&&l.mode=='geo'){c.mg.select();return}g=c.elements.geo;user.display_location(g.title,g.llz.lat,g.llz.long,g.llz.zoom)};story.onclose=function(w){var c=w.content;var e=c.elements;var b=(!e||(c.textedit.text()==''&&!e.photo&&!e.video&&!e.geo&&!e.person&&!e.room)||confirm('Discard this post?'));if(b&&e){var l=c.ops.l,n=c.note;if(l&&l.mode=='geo'){var g=l.pane.geo;g.edit.close();if(c.mg)g.remove_note(c.mg);if(n&&n.geo)g.add(n.gogeo()).select()}}return b};story.getel=function(t,r){switch(t){case'photo':return all_photos[r];case'video':return all_videos[r];case'geo':var g=r.clone();g.geo=r.geo;return g;case'person':case'room':return users.geti(r)}return null};story.drop=function(w,t,r){return story.drope(w,t,story.getel(t,r))};story.drope=function(w,t,e,paste){if(!e)return false;var c=w.content;var el=c.elements,te=w.content.textedit;function makemain(){var l=w.content.ops.l;if(t=='geo'&&l&&l.displayed()&&l.mode=='geo'){var geo=l.pane.geo;if(w.content.mg)geo.remove_note(w.content.mg);w.content.mg=geo.add(e.clone());geo.edit.setnote(w.content.mg,e)}el[t]=e;if(te.text()=='')te.paste_code('',e.el_text(),'');if(c.edtitle&&story.get_title(w.name)==''&&e.el_title()!='')story.set_title(w.name,e.el_title())};function p(){var id=e.el_id();if(id)te.paste_code('['+t+'='+id+']',story.el_title(t,e),'[/'+t+']');else alert("Sorry, that "+t+" can only be the main one of a note")};if(paste)p();else if(el[t]){if(el[t].same(e))alert('That is already the main '+t);else if(confirm("Make this main "+t+" of this note?"))makemain();else if(t!='wiki'&&confirm("Add this as an extra "+t+" of this note?"))p()}else{makemain();story.elements(w)}w.set_tab(0);return true};story.post=function(name){var w=win.get(name);var c=w.content,t;c.elements.text=c.textedit.text();if(c.edtitle&&(t=story.get_title(name))!='')c.elements.title=t;w.ops.onpost(c)};story.preview=function(name){var w=win.get(name);var c=w.content;c.elements.text=c.textedit.text();w.ops.onpreview(c.elements)};story.youtube=function(n){var w=win.get(n),l='YouTube',h='Enter a YouTube video URL:<br><input id="_'+n+'_youtube" size="40"> <button onclick="story.youtube_get(\''+n+'\')">Get</button>';if(w.add_tab(l,h))w.put_tabs();w.set_tab(w.get_tab(l))};story.youtube_get=function(n){var u=('_'+n+'_youtube').e().value.trim();if(u!=''){if(u.match(/^http:\/\/(?:www\.)?youtube\.com\/.*v=([\w\-]*)/))user.ajax.get('youtube.php','v='+RegExp.$1,story.youtube_go,n);else alert("That's not a valid YouTube URL")}};story.youtube_go=function(s,r,n){w=win.get(n);if(s&&w&&w.displayed){w.set_tab(0);w.remove_tab('YouTube');w.put_tabs();if(r.success=='no')alert("That video wasn't found");else story.drope(w,'video',new video(r))}};story.wiki=function(n){var w=win.get(n),l='Wikipedia',h='Enter a Wikipedia artice URL:<br><input id="_'+n+'_wiki" size="40"> <button onclick="story.wiki_get(\''+n+'\')">Get</button>';if(w.add_tab(l,h))w.put_tabs();w.set_tab(w.get_tab(l))};story.wiki_get=function(n){var u=('_'+n+'_wiki').e().value.trim();if(u!=''){if(u.match(/^http:\/\/(\w+).wikipedia\.org\/wiki\/([\w\+\%\.\~\-\(\),]+)/))user.ajax.get('wikipedia.php','l='+RegExp.$1+'&t='+RegExp.$2,story.wiki_go,{n:n,l:RegExp.$1,t:RegExp.$2});else alert("That's not a valid Wikipedia URL")}};story.wiki_go=function(s,r,a){w=win.get(a.n);if(s&&w&&w.displayed){w.set_tab(0);w.remove_tab('Wikipedia');w.put_tabs();if(r.success=='no')alert("That article wasn't found");else{var k=new wiki({lang:a.l,title:a.t,text:r.text.replace(/\s*<ref[^<]*\/>/g,'').replace(/\s*<ref[^<]*>[^<]*<\/ref>/g,'').replace(/\{\{nihongo\|([^\|]+)\|[^\{]*\}\}/ig,"$1").replace(/\{\{convert\|([^\|]+)\|([^\|]+)\|[^\{]*\}\}/g,"$1 $2").replace(/\{\{coord\|[^\{]*\}\}/g,"[see map]").replace(/\{\{[^\{]*\}\}\s*/g,"").replace(/(\s*\/\s*)?\[\[File:[^\[]*\]\]/ig,"").replace(/\[\[(?:[^\|\[\]]*\|)*([^\[\]]+)\]\]/g,"$1").replace(/'''''([^']*'?[^']*)'''''/g,"[i][b]$1[/b][/i]").replace(/'''([^']*'?[^']*)'''/g,"[b]$1[/b]").replace(/''([^']*'?[^']*)''/g,"[i]$1[/i]").replace(/&nbsp;/g,' ').replace(/<(\/?(?:sup|sub))>/g,'[$1]').replace(/\([\s,;]+([^\(]*)\)/g,"($1)").replace(/\(([^\(]*)[,;\s]+\)/g,"($1)").replace(/\([,;\s]*(or)?[,;\s]*\),?\s*/g,'').replace(/\([^\(]*(\s*[,;]){2,}[^\(]*\),?\s*/g,'')});story.drope(w,'wiki',k);if(r.lat){var l=Math.log(10000000);var z=Math.round(2+14*(Math.log(r.scale)-l)/(Math.log(2000)-l));story.drope(w,'geo',new geoloc(parseFloat(r.lat),parseFloat(r.long),z,now(),k.el_title(),''))}}}};var wikis=[];function wiki(d){var w=this;w.lang=d.lang;w.title=d.title;w.text=d.text;w.index=wikis.length;wikis.push(w)};wiki.prototype.el_title=function(){return this.title.mydecode().replace(/_/g,' ')};wiki.prototype.el_text=function(){return this.text};wiki.prototype.el_data=function(){return build_query({lang:this.lang,title:this.title,text:this.text})};wiki.prototype.events=function(){return' onmouseover="notes.pop_wiki(this,'+this.index+')" onmouseout="main.hide_info()" onclick="notes.open_wiki('+this.index+')"'};wiki.prototype.same=function(w){return(w.title==this.title)};wiki.prototype.embed_html=function(t){return'<span class="embed_wiki"'+this.events()+'>'+t+'</span>'};wiki.prototype.pop_html=function(){return'<div class="forum_text">'+this.text.to_html()+'</div>'};notes.pop_wiki=function(e,id){main.show_info(e,'auto2','auto2',wikis[id].pop_html())};notes.open_wiki=function(id){var w=wikis[id];open_url('http://'+w.lang+'.wikipedia.org/wiki/'+w.title)};var hash={poll:false};hash.update=function(){var h,c;c=menus.active_item('page').hc;if(!c)return;h=page.displayed.uid+(c!='u'?c:'')+'/';if(user.isthread())h+='t/'+user.notelist.thread;else{c=menus.active_item('user').hc;if(!c)return;if(user.displayed&&user.displayed.uid)h+=user.displayed.uid+(c!='pr'?c:'')}window.location.hash='#/'+h;hash.poll=true};hash.parse=function(){var p={},h=window.location.hash.match(/^\#\/(\d+)([a-z]{0,2})(?:\/(t\/)?(\d+)([a-z]{0,2}))?$/);if(h){p.pmenu=(h[2].length>0&&menus.list[h[2]]?h[2]:'u');p.vid=h[1];if(h[4]){if(h[3]&&h[3]=='t/')p.thread=h[4];else{p['uid']=h[4];p.umenu=(h[5].length>0&&menus.list[h[5]]?h[5]:'pr')}}}return p};hash.check=function(){if(hash.poll){var h=hash.parse(),t=user.isthread(),v=false,i;if(h.vid&&(h.vid!=page.displayed.uid||((i=menus.active_item('page'))&&h.pmenu!=i.hc))){hash.poll=false;main.log_into(h.vid,false,h.pmenu)}if(h.thread&&(!t||user.notelist.thread!=h.thread)){hash.poll=false;notes.display_thread(h.thread)}else if(h.uid&&user.displayed&&user.displayed.uid&&(user.displayed.uid!=h.uid||h.umenu!=menus.active_item('user').hc)){hash.poll=false;user.find_user(h)}}};user.find_user=function(h){var i,l=users.idx;for(i=0;i<l.length;i++)if(l[i].uid==h.uid){h.u=l[i];user.find_user_go(true,h);return}user.ajax.get('finduser.php','u='+h.uid,user.find_user_response,h)};user.find_user_response=function(s,r,h){if(s&&!r.notfound){h.u=users.add(r.hash1,r.hash2);users.get_data(user.find_user_go,h)}else{if(r.notfound)alert('That person was not found');if(h.first)menus.click('pr');hash.update()}};user.find_user_go=function(s,h){if(s){user.set(h.u,null,function(){if(!menus.click(h.umenu))menus.click('pr')})}};
