city=null;suggestedBar=null;MAX_WIDTH=8000;MAX_HEIGHT=2350;CITY_POS=0.45;CITZ_POS=0.58;CITZ_HEIGHT=0.24;NEW_CITIZENS_CHECK_INTERVAL=60000;Object.size=function(obj){var size=0,key;for(key in obj){if(obj.hasOwnProperty(key))size++;} return size;};function setBlockVisibility(visible){if(!visible){$("#bottom").hide();$(".whiteblock").slideUp(3000);}else{$(".whiteblock").fadeIn(2000);$("#bottom").fadeIn(2000);}} $(window).load(function(){city=new City($("#city"),"calc(100%)",$('#page-wrap').height());city.citify();$("#blockhide").find("a").click(function(){return false;});suggestedBar=new SuggestedBar($("#page-wrap"),"300px",$('#page-wrap').height());suggestedBar.prepend();});function CityCitizen(container,width,height){this.MAXCITIZENS=50;this.container=container;this.container_height=height;this.width=width;this.cit_height=Math.round(height*CITZ_HEIGHT);this.height=Math.round(height*0.5);this.citizens=new Object();this.cit_container=$('
');this.last_x=0;this.dead_pos=new Array();this.show=function(){$(this.container).append(this.cit_container);$(this.cit_container).css("height",this.height).css("width",this.width).css("top",Math.round(this.container_height*CITZ_POS));this.getRandomOnline();this.setTimers();this.onlineCheckerTicket=getOnlineChecker().addObserver(this,jQuery.proxy(function(objs){this.checkCitStatus(objs);},this));} this.getRandomOnline=function(){if(this.dead_pos.length==0&&Object.keys(this.citizens).length>this.MAXCITIZENS)return;var max_subs=this.dead_pos.length+(this.MAXCITIZENS-Object.keys(this.citizens).length);var subs=Math.round(Math.random()*(max_subs-1))+1;new Request(7,2).sendRequest(jQuery.proxy(function(req){var online=req.getResponse().objects;var newcit=new Array();for(var i in online){if(typeof(this.citizens[online[i].id])!="undefined")continue;newcit.push(online[i]);} for(var k=0;k0){this.dead_pos=arrayshuffle(this.dead_pos);x=this.dead_pos[0];this.dead_pos.splice(0,1);}else{x=this.last_x+Math.round(Math.random()*50);if(Object.size(this.citizens)>0){x+=Math.floor(235*(height / 350));}else{x+=140;} this.last_x=x;} var cit=new Citizen(who,this.cit_container,height,x,y);this.citizens[who.id]=cit;cit.show();getOnlineChecker().addObserved(this.onlineCheckerTicket,who.id);} this.goToHell=function(who){this.citizens[who.id].die();delete this.citizens[who.id];this.dead_pos.push(who.x);getOnlineChecker().removeObserved(this.onlineCheckerTicket,who.id);}} function MoodChanger(container,x,y,moodbubble){this.obj=$('
');this.input=$('');this.container=container;this.mood=moodDefaultText;$(this.obj).append(this.input);this.x=x;this.y=y;this.moodbubble=moodbubble;new Request(0,13).addArgument("user",userId).sendRequest(jQuery.proxy(function(req){var mood=req.getResponse().objects[0].mood;if(mood!=null){this.mood=mood;$(this.input).text(this.mood);}},this));this.show=function(){if($(this.obj).is(":visible"))return;$(this.container).append(this.obj);$(this.input).text(this.mood);$(this.obj).css("left",(this.x+25)+"px").css("top",(this.y-$(this.obj).height())+6+"px");$(this.obj).hide().fadeIn(300);$(this.input).focusin(jQuery.proxy(function(){if(this.mood==moodDefaultText)$(this.input).text("");},this));$(this.input).focusout(jQuery.proxy(function(){this.mood=$(this.input).val();new Request(0,12).addArgument("mood",this.mood).sendRequest(jQuery.proxy(function(){this.moodbubble.changeMood(this.mood);},this));this.hide();},this));$(this.input).bind("keydown",jQuery.proxy(function(e){if(e.which==13){$(this.input).blur();return false;}},this));} this.hide=function(){if(!$(this.obj).is(":visible"))return;$(this.obj).fadeOut(300,function(){$(this).remove();});} this.toggle=function(){if($(this.obj).is(":visible"))this.hide();else this.show();}} function Citizen(infoObj,container,height,x,y){this.infoObj=infoObj;this.container=container;this.height=height;this.width=Math.round(335*(this.height / 350));this.id=this.infoObj.id;this.lastEdit=this.infoObj.lastEdit;this.x=x;this.y=y;this.images=new Array();this.citinfo=new CitizenMood(this.container,infoObj.id,this.x+Math.round(this.width / 2)-33,(this.y-20));this.obj=$('
');this.darkshadow=logged&&this.id==userId?$(''):$('');this.shadow=$('');this.moodchanger=null;this.command=new CitizenCommand(this.container,this.id,this.infoObj.mageId,escapeHtml(this.infoObj.user),this.infoObj.age,this.x-3,this.y+this.height-10,this.width+6);this.infoBox=new CitizenInfoBox(this.container,this.id,this.x,this.y,this.infoObj,this.width,this.height);this.enableAddButton=function(enable){this.command.enableAddButton(enable);} this.setupShine=function(){this.citshine=$('
');$(this.obj).append(this.citshine);$(this.citshine).css({opacity:"0"});setInterval(jQuery.proxy(function(){$(this.citshine).css({marginTop:"0",opacity:"0.8"}).animate({marginTop:"26",opacity:"0"},{easing:"easeOutQuint",duration:1800,complete:function(){}});},this),2800);} this.show=function(){$(this.obj).css("height",this.height+"px").css("width",this.width);if(typeof(userId)!="undefined"&&this.id==userId)this.setupShine();$(this.obj).append(this.darkshadow);$(this.obj).append(this.shadow);$(this.shadow).hide();$(this.obj).css("top",this.y+"px");$(this.obj).css("left",this.x+"px");$(this.container).append(this.obj);$(this.obj).hide();$(this.obj).hover(jQuery.proxy(function(){$(this.shadow).show();if(this.id!=userId)this.command.show();this.citinfo.show();},this),jQuery.proxy(function(){$(this.shadow).hide();if(this.id!=userId)this.command.hide();},this));$(this.obj).click(jQuery.proxy(function(){this.infoBox.toggle();if(this.id!=userId){return;} if(this.moodchanger==null){this.moodchanger=new MoodChanger($(this.container),this.x,this.y,this.citinfo);} this.moodchanger.toggle();},this));this.setCitizenImage();this.imageRefreshProcedure();this.citinfo.startMooding();} this.imageRefreshProcedure=function(){this.refreshTimer=setTimeout(jQuery.proxy(function(){if(this.images.length==0){this.imageRefreshProcedure();return;} var image=this.images[0];this.images.splice(0,1);this.img=image;this.imageLoadTimeout=setTimeout(jQuery.proxy(function(){if(this.images.length>1)this.images.splice(0,this.images.length-1);this.imageRefreshProcedure();},this),8000);$(this.img).load(jQuery.proxy(function(){clearTimeout(this.imageLoadTimeout);$(this.obj).find("img.citimage").remove();$(this.obj).append(this.img);$(this.img).hide().fadeIn();if(!$(this.obj).is(":visible"))$(this.obj).show();this.imageRefreshProcedure();},this));},this),100);} this.setLastEdit=function(lastEdit){if(this.lastEdit==lastEdit)return;this.lastEdit=lastEdit;this.setCitizenImage();} this.setCitizenImage=function(){this.images.push($(''));} this.die=function(){clearInterval(this.isOnlineInterval);$(this.obj).fadeOut(1000,function(){$(this).remove();});this.citinfo.die();this.command.die();this.infoBox.die();} this.changeMood=function(mood){this.citinfo.changeMood(mood);} this.changeUsername=function(username){this.infoObj.user=username;this.command.changeUsername(username);}} function CitizenMood(container,id,x,y){this.container=container;this.id=id;this.x=x;this.y=y;this.mood="";this.obj=$('
');this.objP=$('

');$(this.obj).append(this.objP).append('
');$(this.container).append(this.obj);$(this.obj).hide();this.alive=true;this.startMooding=function(){this.moodTimeout=setTimeout(jQuery.proxy(function(){this.show();},this),Math.round(Math.random()*30000)+1000);} this.show=function(callback){if($(this.obj).is(":visible"))return;clearTimeout(this.moodTimeout);clearTimeout(this.hideTimeout);if(this.mood==""){this.startMooding();return;} $(this.objP).html("");$(this.objP).css("height","");var p=$('

');$(p).html(this.mood);$(this.objP).append(p);$(this.obj).fadeIn(500);$(this.objP).css("height",$(this.objP).height());$(this.obj).find(".arrFore").css("top",($(this.obj).height()));$(this.obj).css("left",(this.x-10)+"px").css("top",(this.y-$(this.obj).height())+6+"px");$(this.objP).find('p.citspeak').typewriter(jQuery.proxy(function(){this.hide(5000,jQuery.proxy(function(){if(this.alive)this.startMooding();},this));},this));} this.hide=function(delay,callback){if(typeof(delay)=="undefined"||delay==null||delay==0)delay=1;this.hideTimeout=setTimeout(jQuery.proxy(function(){if(!$(this.obj).is(":visible")){if(callback!=null)callback();return;} $(this.obj).fadeOut(500);if(callback!=null)callback();},this),delay);} this.changeMood=function(mood){this.mood=mood;} this.die=function(){clearTimeout(this.moodTimeout);this.alive=false;this.hide(0,jQuery.proxy(function(){$(this.obj).remove();},this));}} function CitizenCommand(container,id,mageId,username,age,x,y,width){this.container=container;this.id=id;this.mageId=mageId;this.username=username;this.age=age;this.x=x;this.y=y;this.width=width;this.obj=$('
');this.obj2=$('
');this.objButtons=$('
');$(this.obj).append(this.obj2);$(this.obj2).append('

'+this.username+'

').append(this.objButtons);$(this.container).append(this.obj);$(this.obj).css("left",this.x).css("top",this.y).css("width",this.width).hide();$(this.obj).hover(jQuery.proxy(function(){this.show();},this),jQuery.proxy(function(){this.hide();},this));this.die=function(){$(this.obj).fadeOut(function(){$(this).remove();});} this.show=function(){if(!logged)return;$(this.obj).stop();$(this.obj).fadeTo(100,1);} this.hide=function(){$(this.obj).fadeOut(500);} this.changeUsername=function(username){this.username=username;$(this.obj2).find(".username").text(username);} this.buttonsCheckTimer=setInterval(jQuery.proxy(function(){if(!logged)return;var friend=getGlobalFriendsList().isFriend(this.id);if(friend){if(this.friendSettingsButton.isVisible())return;if(this.addFriendButton.isVisible())this.addFriendButton.hide();this.friendSettingsButton.show();}else if(getGlobalRequestsList().isRequestSentTo(this.id)){if(this.addFriendButton.isVisible())this.addFriendButton.hide();}else{if(this.addFriendButton.isVisible())return;if(this.friendSettingsButton.isVisible())this.friendSettingsButton.hide();this.addFriendButton.show();}},this),500);this.setButtons=function(){if(!logged)return;var buttons=new Array();this.addFriendButton=new CButton(this.objButtons,"images/add-user-icon1.png",jQuery.proxy(function(){var quest=substitute(friendshipReqQuestionText,[this.username]);new YesNoDialog(quest,yesButtonText,noButtonText,jQuery.proxy(function(){new FriendAdder().addFriend(this.id);},this)).show();},this));this.settingsMenu=getFriendSettingsMenu(this.id,this.username);this.friendSettingsButton=new CButton(this.objButtons,"images/gear1.png",jQuery.proxy(function(obj){this.settingsMenu.toggle($("body"),$(obj.imgTag).offset().left,$(obj.imgTag).offset().top+23);},this));buttons.push(new CButton(this.objButtons,"images/chat-ico1.png",jQuery.proxy(function(){getChatContext().open(this.id,this.username);this.out=true;this.hide();},this)));buttons.push(this.addFriendButton);for(var i in buttons)buttons[i].show();} this.setButtons();} function CitizenInfoBox(container,id,x,y,infoObj,citWidth,citHeight){this.container=container;this.id=id;this.x=x;this.y=y;this.infoObj=infoObj;this.citWidth=citWidth;this.citHeight=citHeight;this.obj=$('
');$(this.obj).append("

"+this.infoObj.user+"

");if(logged) {$(this.obj).append("

"+labelCityAge+""+this.infoObj.age+"

");$(this.obj).append("

"+labelCityGender+""+(this.infoObj.male?labelCityMale:labelCityFemale)+"

");$(this.obj).append("

"+labelCityShowProfile+"

");} else {$(this.obj).append("

"+labelMinibrickNotLogged+"

");} if(this.infoObj.friend){$(this.obj).append("

"+labelCityName+""+this.infoObj.firstName+" "+this.infoObj.lastName+"

");} if(typeof(this.infoObj.country)!="undefined"){var where="";if(typeof(this.infoObj.city)!="undefined"){where+=escapeHtml(this.infoObj.city)+", ";} where+=escapeHtml(this.infoObj.country);$(this.obj).append("

"+labelCityFrom+""+where+"

");} $(this.container).append(this.obj);$(this.obj).css("left",(this.x+this.citWidth-20)+"px").css("top",(this.y+(this.citHeight / 2)-($(this.obj).height()/ 2))+"px");$(this.obj).hide();this.die=function(){$(this.obj).fadeOut(function(){$(this).remove();});} this.show=function(){if($(this.obj).is(":visible"))return;$(this.obj).fadeIn();} this.hide=function(){if(!$(this.obj).is(":visible"))return;$(this.obj).fadeOut();} this.toggle=function(){if($(this.obj).is(":visible"))this.hide();else this.show();}}