// ==UserScript==
// @name ika-core
// @namespace ika-core
// @description Next generation Ikariam search and addons script
// $icon http://www.ika-core.org/git/icon48.png
// @include http://s*.ikariam.gameforge.com/*
// @include http://m*.ikariam.gameforge.com/*
// @exclude http://support.*.ikariam.gameforge.com/*
// @run-at document-start
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
// @resource css http://www.ika-core.org/git/ika-core.css
// @resource lic http://www.ika-core.org/git/licencemsg.txt
// @version 1.4
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_getResourceText
// @grant GM_openInTab
// @grant GM_xmlhttpRequest
// ==/UserScript==
this.$ = this.jQuery = jQuery.noConflict(true);
var lang = (navigator.language) ? navigator.language : navigator.userLanguage;
var ufo = unsafeWindow, game, log, ikariam, screen, server,player,ally,selectedcity,island,islandx,islandy,citybuildings,islandcities,realHour,nmb,resman,worlddraw,worldmap,transload=false;
var goods={0:'<img src="skin/resources/icon_wood.png"/>',1:'<img src="skin/resources/icon_wine.png"/>',2:'<img src="skin/resources/icon_marble.png"/>',3:'<img src="skin/resources/icon_glass.png"/>',4:'<img src="skin/resources/icon_sulfur.png"/>'};
var buildings=["townHall","shipyard","port","glassblowing","branchOffice","barracks","academy","warehouse","palace","palaceColony","tavern","museum","workshop","wall","dump","vineyard","pirateFortress","safehouse","embassy","stonemason","carpentering","forester","winegrower","alchemist","optician","fireworker","architect","temple","blackMarket"];
//http://s1-gr.ikariam.gameforge.com/index.php?action=WorldMap&function=getJSONIsland&x=64&y=48
String.prototype.strip=function(){
return this.replace(/<.*?[^>]>/g,'');
};
String.prototype.digits = function(){
var d=this.replace(/\D/g, '');
if (d=='') return 0;
return d;
};
if (localStorage.getItem('debug')=='y'){
var deb=ufo.console.log.bind(console);
}else { deb=function(){};}
exportFunction(parser, unsafeWindow.console, {defineAs: "log"});
document.addEventListener('beforescriptexecute', function(e) {
if (e.target.innerHTML.search(/console\s=/) != -1 ) {
e.stopPropagation();
e.preventDefault();
window.removeEventListener(e.type, arguments.callee, true);
}}, true);
document.onreadystatechange = function() {
if (document.readyState == "complete") {
main();
GM_addStyle( GM_getResourceText('css'));
}
};
function view(name,title,content,oversize){
var tobj = {"boxId":name,"headerElem":title,"contentElem":content,"sidebarEls":{"0":{},"length":1,"prevObject":{"0":{},"context":{},"length":1},"context":{},"selector":"div.dynamic"},"oversized":true,"replaceBox":true,"keepSidebars":true,"minisized":false};
ufo.tobj = cloneInto(tobj, ufo);
ikariam.createTemplateView(ufo.tobj);
}
function viewhandler(s) {
if (!s.hasOwnProperty("ici")) {
if(jQuery.inArray(s["boxId"], buildings)!==-1) {
s["sidebarEls"]["ici"]=s["boxId"];
}
}
}
function bar(g,mg){
var w=g*100/mg;
return '<div class="barBg" title="'+nmb(w)+'%"><div class="ikbar" style="width:'+w+'%"></div></div>';
}
function CreateSlot(menu,n,bg,bgl,name,desc,fn){
menu.append('<li class="expandable slot'+n+'" style="display: inline-block; width: 53px;" onclick=""><div class="image image_friends" style="background:url('+bg+') repeat scroll '+bgl+' transparent;height:34px;width:32px;"></div><div class="name"><span class="namebox">'+name+'</br><small>'+desc+'</small></span></div></li>')
.find('.slot'+n)
.hover(function(){
$(this).animate({width : "199px"}, 300, "swing").parent().parent().css('z-index','120000');
},function(){
$(this).animate({width : "53px"}, 300, "swing").parent().parent().css('z-index','65');;
}).click(fn);
}
function loadcitybuildings(){
var l=[];
var d=JSON.parse(localStorage.getItem(player+'_cities'));
for (k in d){
if (d[k].hasOwnProperty("relationship")){
if (d[k]["relationship"]=="ownCity"){
l.push(JSON.parse(localStorage.getItem(player+'_'+k+'_buildings')));
}
}
}
return l;
}
function parser(s) {
if (typeof s == "object") {
game = s;
datahandler();
if (s.hasOwnProperty("boxId")) {
viewhandler(s);
}
if (s.hasOwnProperty("ici")) {
deb("fetch:"+s["ici"]);
resman=s["ici"];
}
if ((s.hasOwnProperty("link")&&resman)||(s.hasOwnProperty("selectedCity")&&resman)) {
var r=$('#sidebar .resources');
if (r.length){
var wood=r.find('.wood').contents(':not(span)').text().digits();
var wine=r.find('.wine').contents(':not(span)').text().digits();
var marble=r.find('.marble').contents(':not(span)').text().digits();
var glass=r.find('.glass').contents(':not(span)').text().digits();
var sulfur=r.find('.sulfur').contents(':not(span)').text().digits();
var time=r.find('.time').contents(':not(span)').text();
var level=$('#sidebar .actions .showLevel').contents(':not(span)').text().digits();
var bres={"0":wood,"1":wine,"2":marble,"3":glass,"4":sulfur,"time":time,"level":level};
localStorage.setItem(player+'_'+selectedcity+'_br_'+resman, JSON.stringify(bres));
deb("fetch-for-"+resman+"_level"+level.digits()+":"+JSON.stringify(bres));
}
}
if (s.hasOwnProperty("contentElem")) {
var obj = s["contentElem"];
s["contentElem"] = '';
deb("c:" + JSON.stringify(s));
s["contentElem"] = obj;
} else {
deb("o:" + JSON.stringify(s));
}
} else {
deb(s);
}
}
function datahandler() {
var gm=game;
if (gm.hasOwnProperty('backgroundView') ){
screen=gm['backgroundView'];
deb("view:" + screen);
}
if (gm.hasOwnProperty('gameName') ){
deb("player:" + gm['avatarId']);
player=gm['avatarId'];
deb("ally:" + gm['avatarAllyId']);
ally=gm['avatarAllyId'];
realHour=gm['realHour'];
}
if (gm.hasOwnProperty('serverName') ){
deb("server:" + gm['serverName']);
server=gm['serverName'];
}
if (gm.hasOwnProperty("bgViewData")){
deb("island:" + gm['bgViewData']['currentIslandId']);
island=gm['bgViewData']['currentIslandId'];
}
if (gm.hasOwnProperty("islandId")){
deb("island2:" + gm['islandId']);
island=gm['islandId'];
}
if (gm.hasOwnProperty("islandXCoord")){
deb("island2x:" + gm['islandXCoord']);
deb("island2y:" + gm['islandYCoord']);
islandx=gm['islandXCoord'];
islandx=gm['islandYCoord'];
}
//city list
if (gm.hasOwnProperty("relatedCityData")){
//deb("citylist:" + JSON.stringify(gm['relatedCityData']));
selectedcity=gm['relatedCityData']['selectedCity'];
deb("selectedcity:" + selectedcity);
localStorage.setItem(player+'_cities', JSON.stringify(gm['relatedCityData']));
}
if (gm.hasOwnProperty("cityDropdownMenu")){
//deb("citylist-dropdown:" + JSON.stringify(gm['cityDropdownMenu']));
selectedcity=gm['cityDropdownMenu']['selectedCity'];
deb("selectedcity:" + selectedcity);
localStorage.setItem(player+'_cities', JSON.stringify(gm['cityDropdownMenu']));
}
if (gm.hasOwnProperty("isOwnCity")||gm.hasOwnProperty("relatedCity")){
var cityres={'currentResources':gm['currentResources'],
'maxResources':gm['maxResources'],
'resourceProduction':gm['resourceProduction'],
'tradegoodProduction':gm['tradegoodProduction'],
'wineSpendings':gm['wineSpendings'],
'wineTickInterval':gm['wineTickInterval'],
'producedTradegood':gm['producedTradegood'],
'dt':new Date().getTime()};
localStorage.setItem(player+'_'+selectedcity+'_prod', JSON.stringify(cityres));
if (transload) transporterload(true);
}
if (gm.hasOwnProperty("relatedCity")){
if (gm["relatedCity"].hasOwnProperty("owncity")){
if(gm["relatedCity"]["owncity"]==1){
var cityres={'currentResources':gm['currentResources'],
'maxResources':gm['maxResources'],
'resourceProduction':gm['resourceProduction'],
'tradegoodProduction':gm['tradegoodProduction'],
'wineSpendings':gm['wineSpendings'],
'wineTickInterval':gm['wineTickInterval'],
'producedTradegood':gm['producedTradegood'],
'dt':new Date().getTime()};
//deb(player+'_'+selectedcity+'_prod:'+JSON.stringify(cityres));
localStorage.setItem(player+'_'+selectedcity+'_prod', JSON.stringify(cityres));
if (transload) transporterload(true);
}
}
}
if (gm.hasOwnProperty("backgroundData")){
citybuildings=JSON.stringify(gm['backgroundData']);
localStorage.setItem(player+'_city_'+gm['backgroundData']['id']+'_buildings', citybuildings);
rendercity();
}
if (screen=='city' && gm.hasOwnProperty("phase") &&gm["ownerId"]==player){
citybuildings=JSON.stringify(gm);
localStorage.setItem(player+'_city_'+gm['id']+'_buildings', citybuildings);
rendercity();
}
if (screen=='island' && gm.hasOwnProperty("cities")){
islandcities=gm;
localStorage.setItem(player+'_island_'+gm['id']+'', JSON.stringify(gm));
renderisland();
}
}
function renderisland(){
var m=$('#cities');
var ic=islandcities['cities'];
for (var k=0;k<ic.length;k++){
if (ic[k]["type"]=="city"){
var b=m.find('#cityLocation'+k+' a.island_feature_img');
b.find('.blevel').remove();
b.append('<div class="blevel">'+ic[k]['level']+'</div>');
var b=m.find('#cityLocation'+k+'Scroll div.center');
b.find('.infotip').remove();
b.append('<span class="infotip">'+ic[k]['ownerName']+'</span>');
}
}
}
function rendercity(){
var lc=JSON.parse(localStorage.getItem(player+'_'+selectedcity+'_buildings'));
var lcp=lc['position'];
var m=$('#locations');
var bl=loadcitybuildings();
for (var k=0;k<lcp.length;k++){
var p=m.find('#position'+k);
p.find('.blevel,.linfo,.binfo').remove();
if (lcp[k].hasOwnProperty("name")){
p.append('<div class="blevel" data="'+lcp[k]['level']+'">'+lcp[k]['level']+'</div><div data="'+lcp[k]['building'].replace(' constructionSite','')+'" class="linfo"></div><div class="binfo" data="'+lcp[k]['building'].replace(' constructionSite','')+'"></div>');
}
}
m.find('.blevel').click(function(){
$(this).parent().find('.hoverable').click();
}).hover(function(){
var p=$(this).parent().css('z-index',10000);
//binfo - resource info for building upgrade
var g=p.find('.binfo');
var bres=JSON.parse(localStorage.getItem(player+'_'+selectedcity+'_br_'+g.attr('data')));
if (bres){
var ht=(bres[0]?'<span>'+goods[0]+' '+nmb(bres[0])+'</span>':'')+
(bres[1]?'<span>'+goods[1]+' '+nmb(bres[1])+'</span>':'')+
(bres[2]?'<span>'+goods[2]+' '+nmb(bres[2])+'</span>':'')+
(bres[3]?'<span>'+goods[3]+' '+nmb(bres[3])+'</span>':'')+
(bres[4]?'<span>'+goods[4]+' '+nmb(bres[4])+'</span>':'')+
bres['time'];
g.html(ufo.BubbleTips.createTooltip(ht,'100px'));
}
// others cities same buildings
var e=p.find('.linfo');
var bname=e.attr('data');
if (bname=='palace') bname='palaceColony';
if (bname!='fetched'){
e.attr('data','fetched');
var txt='';
for (var b=0;b<bl.length;b++){
var cnm=bl[b]['name'];
if (cnm!=lc['name']){
var bp=bl[b]['position'];
for (var p=0;p<bp.length;p++){
var lbname=bp[p]['building'];
var hl='';
if (lbname.indexOf('constructionSite')>0){
lbname=lbname.replace(' constructionSite','');
hl=' class="red"';
} else {
hl='';
}
if (lbname=='palace') lbname='palaceColony';
if (lbname==bname){
txt+='<span '+hl+'>'+cnm+' '+bp[p]['level']+'</span>';
}
}
}
}
e.html(ufo.BubbleTips.createTooltip(txt,'100px'));
}
if (e.html()) e.show();
if (g.html()) g.show();
},function(){
$(this).parent().css('z-index','').find('.linfo,.binfo').hide();
});
}
function searchview(){
view("searchika","Search for players",'<iframe name="isearch" src="http://www.ika-core.org/" frameborder="0" scrolling="auto" marginwidth="0" marginheight="0" width="100%" height="100%"></iframe>',true);
}
function buildingsview(){
var bp,o,i,j,busy,link;
var bl=loadcitybuildings();
var s='<table class=\"table01 left clearfloat\" style=\"width:100%;margin:0;\"><tbody><tr>\
<th width=\"20%\"><img src=\"skin/icons/livingspace_24x24.png\"\/><\/th>';
for (i=0;i<buildings.length;i++){
s+='<th width=\"3%\" title=\"'+buildings[i]+'\"><img src=\"skin/buildings/x40_y40/'+buildings[i]+'.png\" width=\"40\"/><\/th>';
}
s+='<\/tr>';
var alt='';
//s+=JSON.stringify(bl);
for (i=0;i<bl.length;i++){
bp=bl[i]['position'];
o=[];
busy=[];
link=[];
for (j=0;j<bp.length;j++){
var ind=jQuery.inArray(bp[j]['building'].replace(' constructionSite',''), buildings);
o[ind]=bp[j]['level'];
busy[ind]=(bp[j]['building'].indexOf('constructionSite')>0?true:false);
link[ind]='?view='+bp[j]['building'].replace(' constructionSite','')+'&cityId='+bl[i]['id']+'&position='+j;
}
s+='<tr class="'+alt+'"><td title=\"'+bl[i]['name']+'\">'+bl[i]['name']+'<\/td>';
for (j=0;j<buildings.length;j++){
if (o[j]) {
s+='<td title=\"'+buildings[j]+(busy[j]?' upgrading':'')+' Level: '+o[j]+'\" class=\"point right'+(busy[j]?' red bold blink':'')+'\" onclick=\"ajaxHandlerCall(\''+link[j]+'\');return false;\">'+o[j]+'<\/td>';
} else {
s+='<td title=\"'+buildings[j]+' Does not exist'+'\" class=\"right\">-<\/td>';
}
}
s+='<\/tr>';
if (alt=='') {alt='alt';} else {alt='';};
}
s+='<\/tbody><\/table><iframe src="http://www.ika-core.org/ikariam-new.html" frameborder="0" scrolling="auto" marginwidth="0" marginheight="0" width="100%" height="115px"></iframe>';
view("buildingsika","Buildings View",s,true);
}
function mapislands(islands,data){
var l = data.data;
var q = data.request;
for (var m = q.x_min; m <= q.x_max; m++) {
for (var o = q.y_min; o <= q.y_max; o++) {
if (!islands[m]) {
islands[m] = new Array()
}
if (l[m] && l[m][o]) {
islands[m][o] = l[m][o];
} else {
islands[m][o] = "ocean"
}
}
}
}
function worldviewprepare(){
$.getJSON( "/","action=WorldMap&function=getJSONArea&x_min=0&x_max=101&y_min=0&y_max=101", function(data) {
var islands=[];
var l = data.data;
var q = data.request;
for (var m = q.x_min; m <= q.x_max; m++) {
for (var o = q.y_min; o <= q.y_max; o++) {
if (!islands[m]) {
islands[m] = new Array()
}
if (l[m] && l[m][o]) {
islands[m][o] = l[m][o];
} else {
islands[m][o] = "ocean"
}
}
}
worldview(islands);
});
}
function worldview(i){
var tg=["wood","wine","marble","glass","sulfur"];
var s='<table id="worldmap_2d">',x,y;
for (y=0;y<101;y++){
s+='<tr>'
for (x=0;x<101;x++){
var ci=i[x][y];
if (ci != "ocean") {
s+='<td id="is'+ci[0]+'" class="isle" title="'+ci[1]+'['+x+':'+y+'] wood:'+ci[6]+' '+tg[ci[2]]+'"></td>';
} else {
s+='<td class="ocean"></td>';
}
}
s+='</tr>';
}
s+='</table>';
view("worldika","World Map",s,false);
$('#is'+island).addClass('isleown');
}
function transporterload(force){
t=$('#iTrans');
if (t.is(':hidden')=='true') return;
if (!transload||force){
transload=true;
var s='<table class="table01 left clearfloat" style="width:100%;margin:0;"><tbody><tr>\
<th width="20%"><img src="skin/icons/livingspace_24x24.png"/></th>\
<th width="13%">'+goods[0]+'</th>\
<th width="13%">'+goods[1]+'</th>\
<th width="13%">'+goods[2]+'</th>\
<th width="13%">'+goods[3]+'</th>\
<th width="13%">'+goods[4]+'</th>\
<th width="15%"><img src="skin/interface/btn_max.png"/></th>\
</tr>';
var d=JSON.parse(localStorage.getItem(player+'_cities'));
var alt='';
var ar=$('#js_ChangeCityActionRequest').val();
var tg=[0,0,0,0,0];var pr=[0,0,0,0,0];
var dt=new Date().getTime();
for (k in d){
if (d[k].hasOwnProperty("relationship")){
if (d[k]["relationship"]=="ownCity"){
var cr=JSON.parse(localStorage.getItem(player+'_city_'+d[k]['id']+'_prod'));
//deb('tr:'+JSON.stringify(cr));
try{
var woodprod=(cr['resourceProduction']==0)?'':' <span style="font-size:0.8em">(+'+nmb(cr['resourceProduction']*realHour)+'/h)</span>';
var goodprod=(cr['tradegoodProduction']==0)?'':' <span style="font-size:0.8em">(+'+nmb(cr['tradegoodProduction']*realHour)+'/h)</span>';
var trgood=cr['producedTradegood'];
var delta=(dt-cr['dt'])/3600000;
cr['currentResources']['resource']+=delta*cr['resourceProduction']*realHour;
var winecon;
if (trgood==1){
cr['currentResources'][1]+=delta*(cr['tradegoodProduction']*realHour-cr['wineSpendings']);
winecon=(cr['tradegoodProduction']*realHour-cr['wineSpendings']);
winecon=(winecon==0)?'':' <span style="font-size:0.8em">('+((winecon>0)?'+':'-')+nmb(winecon)+'/h)</span>';
}else {
winecon=(cr['wineSpendings']==0)?'':' <span style="font-size:0.8em">(-'+nmb(cr['wineSpendings'])+'/h)</span>';
cr['currentResources'][trgood]+=delta*cr['tradegoodProduction']*realHour;
}
pr[0]+=cr['resourceProduction']*realHour;
pr[trgood]+=cr['tradegoodProduction']*realHour;
pr[1]-=cr['wineSpendings'];
tg[0]+=cr['currentResources']['resource'];
tg[1]+=cr['currentResources'][1];
tg[2]+=cr['currentResources'][2];
tg[3]+=cr['currentResources'][3];
tg[4]+=cr['currentResources'][4];
s+='<tr class="'+alt+'"><td class="city bold"><a title="Popuplation '+nmb(cr['currentResources']['citizens'])+'('+nmb(cr['currentResources']['population'])+')" href="#" onclick="$(\'#js_cityIdOnChange\').val(\''+d[k]['id']+'\').parent().submit();">'+goods[d[k]['tradegood']]+' '+d[k]['coords']+' '+d[k]['name']+'</a></td>'+
'<td class="right">'+nmb(cr['currentResources']['resource'])+woodprod+bar(cr['currentResources']['resource'],cr['maxResources']['resource'])+'</td>'+
'<td class="right" title="'+((trgood==1)?nmb(cr['tradegoodProduction']*realHour):'')+'-'+nmb(cr['wineSpendings'])+'">'+nmb(cr['currentResources']['1'])+winecon+bar(cr['currentResources'][1],cr['maxResources'][1])+'</td>'+
'<td class="right">'+nmb(cr['currentResources'][2])+((trgood==2)?goodprod:'')+bar(cr['currentResources'][2],cr['maxResources'][2])+'</td>'+
'<td class="right">'+nmb(cr['currentResources'][3])+((trgood==3)?goodprod:'')+bar(cr['currentResources'][3],cr['maxResources'][3])+'</td>'+
'<td class="right">'+nmb(cr['currentResources'][4])+((trgood==4)?goodprod:'')+bar(cr['currentResources'][4],cr['maxResources'][4])+'</td>'+
'<td class="center actions">'+(('city_'+d[k]['id']==selectedcity)?'':
'<a href="?view=transport&destinationCityId='+d[k]['id']+'&backgroundView='+screen+'&currentIslandId='+island+'&templateView=cityDetails&actionRequest='+ar+'" onclick="ajaxHandlerCall(this.href);return false;" id="itranslinkt'+d[k]['id']+'"><img width="32" height="22" src="skin/interface/mission_transport.png" alt="Transport" class="vertical_middle"></a>'+
'<a href="?view=deployment&deploymentType=army&destinationCityId='+d[k]['id']+'&backgroundView='+screen+'&currentIslandId='+island+'&templateView=cityDetails&actionRequest='+ar+'" onclick="ajaxHandlerCall(this.href);return false;" id="itranslinkt'+d[k]['id']+'"><img width="32" height="22" src="skin/interface/mission_deployarmy.png" alt="Army" class="vertical_middle"></a>'+
'<a href="?view=deployment&deploymentType=fleet&destinationCityId='+d[k]['id']+'&backgroundView='+screen+'&currentIslandId='+island+'&templateView=cityDetails&actionRequest='+ar+'" onclick="ajaxHandlerCall(this.href);return false;" id="itranslinkt'+d[k]['id']+'"><img width="32" height="22" src="skin/interface/mission_deployfleet.png" alt="Army" class="vertical_middle"></a>')+
'</td></tr>';
} catch(e){
//deb('tr-catch:'+e);
s+='<tr class="'+alt+'"><td class="city bold"><a href="#" onclick="$(\'#js_cityIdOnChange\').val(\''+d[k]['id']+'\').parent().submit();">'+goods[d[k]['tradegood']]+' '+d[k]['coords']+' '+d[k]['name']+'</a></td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>';
}
}
}
if (alt=='') {alt='alt';} else {alt='';};
}
s+='<tr class="'+alt+' total"><td class="city bold right">Total</td><td class="right">'+nmb(tg[0])+' <span style="font-size:0.8em">('+nmb(pr[0])+'/h)</span></td><td class="right">'+nmb(tg[1])+' <span style="font-size:0.8em">('+nmb(pr[1])+'/h)</span></td><td class="right">'+nmb(tg[2])+' <span style="font-size:0.8em">('+nmb(pr[2])+'/h)</span></td><td class="right">'+nmb(tg[3])+' <span style="font-size:0.8em">('+nmb(pr[3])+'/h)</span></td><td class="right">'+nmb(tg[4])+' <span style="font-size:0.8em">('+nmb(pr[4])+'/h)</span></td><td></td></tr>';
t.html(s+'</table><iframe src="http://www.ika-core.org/ikariam-new.html" frameborder="0" scrolling="auto" marginwidth="0" marginheight="0" width="100%" height="115px"></iframe>');
}
}
function transporter(){
var t=$('body #container').append('<div id="iTrans"></div>').find('#iTrans').mouseleave(function(){$(this).hide();});
var tr=$('<span class="white"> > </span><a id="iTransport" class="yellow" title="Transporter" href="#"><img class="vertical_middle" width="20" height="16" alt="Transport" src="skin/interface/mission_transport.png"> Transporter </a>');
var trans=(screen=='city')?tr.insertAfter('#js_cityBread'):$('#breadcrumbs').append(tr);
trans.mouseenter(function(){
transporterload();
t.css('left',$('#iTransport').offset().left+'px').show();
});
}
function rendersidebar(){
var lm=$('#leftMenu');
if (lm.length==0){
lm=$('#container').append('<div id="leftMenu"><div class="slot_menu city_menu" id="js_viewCityMenu" style="z-index: 65;"><ul class="menu_slots"></ul></div></div>');
}
var menu=lm.find('.menu_slots');
CreateSlot(menu,8,'http://gf1.geo.gfsrv.net/cdn00/0aa3bb98504af3b7f3d779bf46b82b.ico','-1px 1px','Search','Find players,islands,cities',searchview);
CreateSlot(menu,9,'skin/layout/btn_world.jpg','-28px -1px','World','Show the mini Wolrd Map',worldviewprepare);
CreateSlot(menu,10,'skin/buildings/x40_y40/forester.png','-1px 1px','Buildings','Show buidings overview',buildingsview);
}
function main(){
try {
//localStorage.clear();
ikariam = ufo.ikariam;
nmb=ufo.ikariam.Model.locaNumberFormat;
rendersidebar();
transporter();
deb("stub finish.");
} catch(e){alert('catch:'+e);}
}