Files
TravianZ/assets/js/unx.js
T
iopietro 62d6e19ee9 The first release of the refactored version
It's still a work in progress, there are a lot of things that will
change in the final release
2018-09-16 17:22:39 +02:00

1755 lines
43 KiB
JavaScript

window.dlang = 'ar'; // edit it to en if fullscreen map not working
window.reloading = false;
var xhttp = new XMLHttpRequest();
var timer = new Object();
var ab = new Object();
var bb = new Object();
var cb = db();
var eb = 0;
var auto_reload = 1;
var fb = new Object();
var is_opera = window.opera !== undefined;
var is_ie = document.all !== undefined && window.opera === undefined;
var is_ie6p = document.compatMode !== undefined && document.all !== undefined && window.opera === undefined;
var is_ie7 = document.documentElement !== undefined && document.documentElement.style.maxHeight !== undefined;
var is_ie6 = is_ie6p && !is_ie7;
var is_ff2p = window.Iterator !== undefined;
var is_ff3p = document.getElementsByClassName !== undefined;
var is_ff2 = is_ff2p && !is_ff3p
automation();
function automation() {
this.xhttp.open("GET", "GameEngine/Automation.php", true);
this.xhttp.send();
//setTimeout(function(){ automation(); }, 1000);
}
function gb() {
return hb('height');
}
function ib() {
return hb('width');
}
function hb(jb) {
var kb = 0,
lb = 0;
if (typeof(window.innerWidth) == 'number') {
kb = window.innerWidth;
lb = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
kb = document.documentElement.clientWidth;
lb = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
kb = document.body.clientWidth;
lb = document.body.clientHeight;
}
if (jb == 'height') return lb;
if (jb == 'width') return kb;
}
var gmwds = false;
function start() {
mb("l1");
mb("l2");
mb("l3");
mb("l4");
initCounter();
if (typeof init_local == 'function') {
init_local();
}
if (quest.number === null) {
qst_handle();
}
if (gmwds) {
gmwd();
}
}
function nb() {
return new Date().getTime();
}
function db() {
return Math.round(nb() / 1000);
}
function ob(pb) {
p = pb.innerHTML.split(":");
qb = p[0] * 3600 + p[1] * 60 + p[2] * 1;
return qb;
}
function rb(s, sb) {
var tb, ub, vb;
if (s > -2) {
tb = Math.floor(s / 3600);
ub = Math.floor(s / 60) % 60;
vb = s % 60;
t = tb + ":";
if (ub < 10) {
t += "0";
}
t += ub + ":";
if (vb < 10) {
t += "0";
}
t += vb;
} else {
t = '0:00:00';
if (!window.reloading) {
document.location.reload();
window.reloading = true;
}
}
return t;
}
function fi2(qact, qact2, qact3) {
if (qact === undefined) {
qact = false;
}
if (qact2 === undefined) {
qact2 = false;
}
if (qact3 === undefined) {
qact3 = false;
}
var gi = 'ajax.php?f=qst';
var ci = (Math.abs(quest.number) + 1) / (Math.abs(quest.last) + 1);
return gi + '&cr=' + bi(4, ci) + '&qact=' + qact + '&qact2=' + qact2 + '&qact3=' + qact3;
}
function qst_next2(jf, act, act2, act3) {
var id;
if (jf) {
id = {
'x': document.getElementById('qst_val_x').value,
'y': document.getElementById('qst_val_y').value
};
} else {
id = {
'val': document.getElementById('qst_val').value
};
}
pi();
fd(fi2(act, act2, act3), function(mf) {
for (var qd in mf) {
quest[qd] = mf[qd];
}
}, 'POST', id);
qst_wfm();
}
function initCounter() {
for (var i = 1;; i++) {
pb = document.getElementById("tp" + i);
if (pb != null) {
ab[i] = new Object();
ab[i].node = pb;
ab[i].counter_time = ob(pb);
} else {
break;
}
}
pb = document.getElementsByClassName("timer");
[].forEach.call(pb, function(item, index){
if (item != null) {
bb[index] = new Object();
bb[index].node = item;
bb[index].counter_time = ob(item);
}
});
executeCounter();
}
function executeCounter() {
for (var i in ab) {
wb = db() - cb;
if (ab[i] && ab[i]['counter_time']) {
xb = rb(ab[i].counter_time + wb);
} else {
xb = 0;
}
ab[i].node.innerHTML = xb;
}
for (i in bb) {
wb = db() - cb;
if (bb[i] && bb[i]['counter_time']) {
yb = bb[i].counter_time - wb;
} else {
eb = 0;
yb = -1;
}
if (eb == 0 && yb < 0) {
bb[i] = null;
eb = 1;
if (!window.reloading) {
setTimeout(function() {
window.location.href = window.location.href;
}, 1000);
window.reloading = true;
}
} else {
xb = rb(yb);
bb[i].node.innerHTML = xb;
}
}
setTimeout("executeCounter()", 1000);
}
function mb(zb) {
pb = document.getElementById(zb);
if (pb != null) {
fb[zb] = new Object();
var $b = pb.innerHTML.match(/(\d+)\/(\d+)/);
element = $b[0].split("/");
_b = parseInt(element[0]);
ac = parseInt(element[1]);
bc = pb.title;
if (bc != 0) {
cc = nb();
timer[zb] = new Object();
timer[zb].start = cc;
timer[zb].production = bc;
timer[zb].start_res = _b;
timer[zb].max_res = ac;
timer[zb].ms = 3600000 / bc;
dc = 100;
if (timer[zb].ms < dc) {
timer[zb].ms = dc;
}
timer[zb].node = pb;
executeTimer(zb);
} else {
timer[zb] = new Object();
fb[zb].value = _b;
}
}
}
function executeTimer(zb) {
wb = nb() - timer[zb].start;
if (wb >= 0) {
ec = Math.round(timer[zb].start_res + wb * (timer[zb].production / 3600000));
if (ec >= timer[zb].max_res) {
ec = timer[zb].max_res;
} else {
window.setTimeout("executeTimer('" + zb + "')", timer[zb].ms);
}
fb[zb].value = ec;
timer[zb].node.innerHTML = ec + '/' + timer[zb].max_res;
}
}
var fc = new Array(0, 0, 0, 0, 0);
function add_res(res, gc) {
hc = fb['l' + (5 - gc)].value;
ic = haendler * carry;
fc[gc] = jc(fc[gc], hc, ic, carry);
document.getElementById(res).value = fc[gc];
}
function upd_res(res, gc, kc) {
hc = fb['l' + (5 - gc)].value;
ic = haendler * carry;
if (kc) {
lc = hc;
} else {
lc = parseInt(document.getElementById(res).value);
}
if (isNaN(lc)) {
lc = 0;
}
fc[gc] = jc(parseInt(lc), hc, ic, 0);
document.getElementById(res).value = fc[gc];
}
function jc(mc, nc, oc, pc) {
qc = mc + pc;
if (qc > nc) {
qc = nc;
}
if (qc > oc) {
qc = oc;
}
if (qc == 0) {
qc = '';
}
return qc;
}
function rc(n, d) {
var p, i, x;
if (!d) d = document;
if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
d = parent.frames[n.substring(p + 1)].document;
n = n.substring(0, p);
}
if (!(x = d[n]) && d.all) x = d.all[n];
for (var i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
for (var i = 0; !x && d.layers && i < d.layers.length; i++) x = rc(n, d.layers[i].document);
return x;
}
function btm0() {
var i, x, a = document.MM_sr;
for (var i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}
function btm1() {
var i, j = 0,
x, a = btm1.arguments;
document.MM_sr = new Array;
for (var i = 0; i < (a.length - 2); i += 3)
if ((x = rc(a[i])) != null) {
document.MM_sr[j++] = x;
if (!x.oSrc) x.oSrc = x.src;
x.src = a[i + 2];
}
}
function Popup(i, j, sc) {
if (typeof sc == 'undefined') {
sc = 's';
}
pb = document.getElementById("ce");
if (pb != null) {
var
iframeHeight = 440,
iframeWidth = 412;
var tc = '<div class="popup3">' + '<a href="#" onClick="Close(); return false;"><img src="img/x.gif" border="1" class="popup4" alt="Move"></a>' + '<iframe frameborder="0" id="Frame" style="top: auto" src="manual.php?' + sc + '=' + i + '&typ=' + j + '" width="412" height="440" border="0"></iframe>' + '</div>';
pb.innerHTML = tc;
uc();
}
vc();
if (!is_ie6 && !wc) return false;
else return true;
}
function PopupMap(i) {
if (typeof sc == 'undefined') {
sc = 's';
}
pb = document.getElementById("ce");
if (pb != null) {
var
iframeHeight = 575,
iframeWidth = 1000;
if (window.dlang == 'ar') {
var tc = '<div class="popup_map">' + '<div id="drag2"><a href="#" style="position: absolute;right: 968px;margin-top: 10px;" id="map_popclose" onClick="Close(); return false;"><img src="img/x.gif" border="0" width="20px" height="20px" alt="Move"></a>' + '<iframe frameborder="0" id="Frame" src="karte2.php?z=' + i + '" style="position: absolute; left: ' + Math.round((documentWidth() - iframeWidth) / 2) + 'px; top: ' + Math.round((documentHeight() - iframeHeight) / 2) + 'px" width="1000" height="575" border="0" scrolling="no"></iframe>' + '</div></div>';
} else {
var tc = '<div class="popup_map">' + '<div id="drag2"><a href="#" id="map_popclose" onClick="Close(); return false;"><img src="img/x.gif" border="0" width="20px" height="20px" alt="Move"></a>' + '<iframe frameborder="0" id="Frame" src="karte2.php?z=' + i + '" style="position: absolute; left: ' + Math.round((documentWidth() - iframeWidth) / 2) + 'px; top: ' + Math.round((documentHeight() - iframeHeight) / 2) + 'px" width="1000" height="575" border="0" scrolling="no"></iframe>' + '</div></div>';
}
pb.innerHTML = tc;
uc2();
}
vc();
if (!is_ie6 && !wc) return false;
else return true;
}
function uc() {
if ($('drag')) {
return;
}
$$('.popup3')[0].grab(new Element('div', {
'id': 'drag'
}), 'top').makeDraggable({
'handle': 'drag'
});
if ($$('body')[0].getStyle('direction').toLowerCase() == 'rtl') {
$$('.popup3')[0].setStyle('direction', 'rtl').getParent().setStyle('direction', 'ltr');
}
}
function uc2() {
if ($('drag')) {
return;
}
if (window.dlang == 'ar') {
//$$('.popup_map')[0].grab(new Element('div',{'id':'drag', "style": "width: 1000px;height: 10px;background-color: #fff0;position: absolute;cursor: move;"}),'top').makeDraggable({'handle':'drag'});
} else {
//$$('.popup_map')[0].grab(new Element('div',{'id':'drag'}),'top').makeDraggable({'handle':'drag'});
}
if ($$('body')[0].getStyle('direction').toLowerCase() == 'rtl') {
$$('.popup_map')[0].setStyle('direction', 'rtl').getParent().setStyle('direction', 'ltr');
}
}
function vc() {
var frm = document.getElementById("Frame");
if (!frm || frm == null || typeof(frm) == 'undefined') {
frm = document.getElementById("ce");
}
//if(gb()<700||ib()<700){
frm.style.position = 'absolute';
wc = true;
//} else{
//frm.style.position='fixed';wc=false;
//}
}
window.addEvent('resize', function() {
$f = $$('#Frame');
if (typeof($f) != 'undefined' && typeof($f[0]) != 'undefined' && $f[0].src.indexOf('manual.php') === -1) {
$f[0].style.left = (Math.round((documentWidth() - $f[0].width) / 2)) + 'px';
$f[0].style.top = (Math.round((documentHeight() - $f[0].height) / 2)) + 'px';
}
});
function Close() {
pb = document.getElementById("ce");
if (pb != null) {
pb.innerHTML = '';
}
if (quest.anmstep !== false) {
quest.anmstep = false;
}
}
function Allmsg() {
for (var x = 0; x < document.msg.elements.length; x++) {
var y = document.msg.elements[x];
if (y.name != 's10') y.checked = document.msg.s10.checked;
}
}
function xy() {
xc = screen.width + ":" + screen.height;
document.snd.w.value = xc;
}
function my_village() {
var yc = Math.round(0);
var zc;
var e = document.snd.dname.value;
for (var i = 0; i < dorfnamen.length; i++) {
if (dorfnamen[i].indexOf(e) > -1) {
yc++;
zc = dorfnamen[i];
}
}
if (yc == 1) {
document.snd.dname.value = zc;
}
}
var $c = document.getElementById ? 1 : 0;
var _c = document.all ? 1 : 0;
var ad = (navigator.userAgent.indexOf("Mac") > -1) ? 1 : 0;
var bd = (_c && (!ad) && (typeof(window.offscreenBuffering) != 'undefined')) ? 1 : 0;
var cd = bd;
var dd = bd && (window.navigator.userAgent.indexOf("SV1") != -1);
function changeOpacity(ed, opacity) {
if (bd) {
ed.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (opacity * 100) + ')';
} else if ($c) {
ed.style.MozOpacity = opacity;
}
}
function fd(url, gd, hd, id) {
if (hd === undefined) {
hd = 'GET';
}
var jd;
if (window.XMLHttpRequest) {
jd = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
jd = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
jd = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
} else {
throw 'Can not create XMLHTTP-instance';
}
jd.onreadystatechange = function() {
if (jd.readyState == 4) {
if (jd.status == 200) {
var kd = jd.getResponseHeader('Content-Type');
if (kd.indexOf(';') > -1) {
kd = kd.substr(0, kd.indexOf(';'));
}
switch (kd) {
case 'application/json':
if (jd.responseText.indexOf('[]') < 0) {
gd(jd.responseText == '' ? null : eval('(' + jd.responseText + ')'));
}
break;
case 'text/plain':
case 'text/html':
gd(jd.responseText);
break;
default:
throw 'Illegal content type';
}
} else {
throw 'An error has occurred during request';
}
}
};
jd.open(hd, url, true);
if (hd == 'POST') {
jd.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
var ld = md(id);
} else {
var ld = null;
}
jd.send(ld);
}
function md(nd) {
var od = '';
var pd = true;
for (var qd in nd) {
od += (pd ? '' : '&') + qd + '=' + window.encodeURI(nd[qd]);
if (pd) {
pd = false;
}
}
return od;
}
function mreload() {
param = 'reload=auto';
url = window.location.href;
if (url.indexOf(param) == -1) {
if (url.indexOf('?') == -1) {
url += '?' + param;
} else {
url += '&' + param;
}
}
if (!window.reloading) {
document.location.href = url;
window.reloading = true;
}
}
var rd = {
'index': 0,
'dir': 0,
'size': null,
'fields': [],
'cindex': 0,
'usealternate': false
};
var m_c = rd;
var sd;
var td;
var ud;
var vd;
var wd;
var xd;
var yd;
var zd;
var $d;
var _d = false;
var ae;
var be;
var ce;
var de = [];
de[38] = 1;
de[39] = 2;
de[40] = 3;
de[37] = 4;
var ee = {};
var fe;
var ge;
function map_init() {
sd = false;
td = false;
ud = false;
vd = false;
xd = 0;
wd = 0;
fe = he('karte2');
ie(['i', 'a', 't']);
if (null == m_c.az) {
throw 'm_c.az muss seitenspezifisch initialisiert werden.';
}
for (var p in m_c.az) {
document.getElementById('ma_' + p).onclick = je;
}
var ke = ['mcx', 'mcy', 'x', 'y', 'map_infobox'];
for (var i = 0; i < ke.length; i++) {
ee[ke[i]] = document.getElementById(ke[i]);
}
ke = ['mcx', 'mcy'];
for (var i = 0; i < ke.length; i++) {
ee[ke[i]].onfocus = function() {
vd = true;
};
ee[ke[i]].onblur = function() {
vd = false;
};
}
ee.ibox_cells = [];
ee.ibox_cells[0] = ee.map_infobox.firstChild.firstChild.lastChild;
for (var i = 1; i <= 3; i++) {
ee.ibox_cells[i] = ee.map_infobox.firstChild.nextSibling.childNodes[i - 1].lastChild;
}
document.onkeyup = le;
document.onkeydown = me;
document.onkeypress = ne;
document.map_coords.onsubmit = oe;
ee.mx = [];
ee.my = [];
for (var i = 0; i < mdim.x; i++) {
for (var j = 0; j < mdim.y; j++) {
area = pe(i, j, 'a');
area.onmouseover = qe;
area.onmouseout = re;
if (fe) {
area.onclick = se;
}
te(m_c.ad[i][j], area);
}
ee.mx[i] = document.getElementById('mx' + i);
ee.my[i] = document.getElementById('my' + i);
}
//var ue=document.getElementById('map_makelarge');
//if(ue){ue.onclick=ve;}
if (mdim.x == 13) {
document.getElementById('map_popclose').onclick = we;
}
}
function se() {
opener.location = this.href;
return false;
}
//function xe(ye){var ze=document.getElementById('map_makelarge');ze.className=ye?'loading':'';}
function $e(_e) {
var af;
var bf;
if (ee.map_infobox != null) {
if (_e.normal_field) {
var cf = df(_e.nr * 1);
af = [text_k.verlassenes_tal + ': ' + cf.join('-')];
bf = 'empty';
} else if (_e.free_oasis && !_e.classic_oasis) {
af = [text_k.freie_oase];
bf = 'oasis_empty';
} else if (_e.occupied_oasis && !_e.classic_oasis) {
af = [text_k.besetztes_tal, _e.name, _e.ew, _e.ally];
bf = 'oasis';
} else if (_e.village) {
var text = '<span class="tribe tribe' + _e.vid + '">' + _e.dname + '</span>';
af = [text, _e.name, _e.ew, _e.ally];
bf = 'village';
} else {
af = [text_k.details];
bf = 'default';
}
}
for (var i = 0; i < 4; i++) {
ee.ibox_cells[i].innerHTML = (af[i] === undefined || af[i] === '') ? '-' : af[i].replace(/\&/g, "&amp;");
}
ee.map_infobox.className = bf;
}
function ef(ff, gf) {
return ((ff - 1) * 10) + gf
}
function hf(jf) {
ee.x.firstChild.nodeValue = jf.x;
ee.y.firstChild.nodeValue = jf.y;
}
function kf(jf) {
ee.mcx.value = jf.x;
ee.mcy.value = jf.y;
l = $$('div.cropfinder_icon a').set('href', 'cropfinder.php?x=' + jf.x + '&y=' + jf.y);
}
function lf(x, y) {
var world_max = m_c.world_max;
var world_max_double = (world_max * 2) + 1;
return (world_max + x) + (world_max - y) * world_max_double + 1;
}
function ve() {
if (mmode) {
zd = window.open(this.href, "map", "top=100,left=25,width=1007,height=585");
zd.focus();
} else {
xe(true);
fd('ajax.php?f=kp&z=' + lf(m_c.z.x, m_c.z.y), function(mf) {
xe(false);
ae = document.getElementsByTagName('body')[0];
be = document.getElementsByTagName('html')[0];
ae.parentNode.removeChild(ae);
ce = document.createElement('body');
ce.innerHTML = mf.lm;
ce.style.backgroundColor = '#ffffff';
be.appendChild(ce);
m_c = [];
for (var qd in mf.dat.m_c) {
m_c[qd] = mf.dat.m_c[qd];
}
m_c.fields = [];
mdim = mf.dat.mdim;
mmode = mf.dat.mmode;
map_init();
});
}
return false;
}
function we() {
if (fe) {
pb = parent.document.getElementById("drag2");
if (pb != null) {
pb.innerHTML = ''
} else {
window.close();
}
} else {
mdim = {
'x': 7,
'y': 7,
'rad': 3
};
var nf = [];
for (var i = 0; i < mdim.x; i++) {
nf[i] = [];
for (var j = 0; j < mdim.y; j++) {
nf[i][j] = pe(i + 3, j + 3, 'a').details;
}
}
be.removeChild(ce);
be.appendChild(ae);
map_init();
var of ;
var area;
for (var i = 0; i < mdim.x; i++) {
for (var j = 0; j < mdim.y; j++) {
area = pe(i, j, 'a'); of = pe(i, j, 'i');
area.details = nf[i][j];
area.details.fresh = {}; of .className = nf[i][j].img;
pf(area, of );
}
}
hf(m_c.z);
kf(m_c.z);
}
return false;
}
//this function is executed on map direction icon clicking
//ma_n1, ma_n2, ma_n3, ma_n4
// document.getElementById('ma_'+p).onclick=je;
function je() {
var qf = 1 * this.id.substring(4, 5);
var rf = 1 * (this.id.substring(5, 7) == 'p7' ? mdim.x : 1);
// console.log(this.id + "--" + qf+"-"+rf);
map_scroll(qf, rf);
return false;
}
function sf(z) {
var x = z.x - mdim.rad;
var y = z.y - mdim.rad;
var tf = z.x + mdim.rad;
var uf = z.y + mdim.rad;
return {
'x': x,
'y': y,
'xx': tf,
'yy': uf
};
}
function vf(qf, rf, wf) {
if (wf == null) {
wf = 0;
}
if (m_c.size == null) {
throw 'Globale Variable m_c.size muss auf den Wert von $travian[map_prefetch_rows]) gesetzt werden.';
}
var xf, yf;
if (null === rf || 1 === rf) {
yf = m_c.size - 1;
} else if (mdim.x == rf) {
xf = mdim.x;
yf = -(mdim.x - 1);
} else {
throw 'Parameter steps muss 1 oder Breite der Karte in Feldern sein.';
}
var x, y, tf, uf, z;
var z = m_c.z;
switch (qf) {
case 1:
x = z.x + mdim.rad;
y = z.y + mdim.rad + wf;
tf = z.x - mdim.rad;
uf = y + yf;
break;
case 2:
x = z.x + mdim.rad + wf;
y = z.y - mdim.rad;
tf = x + yf;
uf = z.y + mdim.rad;
break;
case 3:
x = z.x + mdim.rad;
y = z.y - mdim.rad - wf;
tf = z.x - mdim.rad;
uf = y - yf;
break;
case 4:
x = z.x - mdim.rad - wf;
y = z.y - mdim.rad;
tf = x - yf;
uf = z.y + mdim.rad;
break;
}
return {
'x': x,
'y': y,
'xx': tf,
'yy': uf
};
}
function zf($f) {
var world_max = m_c.world_max;
var world_max_double = (world_max * 2) + 1;
if ($f > world_max) {
$f -= world_max_double;
}
if ($f < -world_max) {
$f += world_max_double;
}
return $f;
}
function _f($f) {
if ($f > m_c.world_max) {
$f = m_c.world_max;
}
if ($f < -m_c.world_max) {
$f = -m_c.world_max;
}
return $f;
}
//tientn: m_c is the object hold all global variables
function ag(qf, rf) {
var z = {};
z.x = m_c.z.x * 1;
z.y = m_c.z.y * 1;
switch (qf) {
case 1:
z.y += rf;
break;
case 2:
z.x += rf;
break;
case 3:
z.y -= rf;
break;
case 4:
z.x -= rf;
break;
}
m_c.z.x = zf(z.x);
m_c.z.y = zf(z.y);
}
function bg(cg) {
return 'ajax.php?f=k7&x=' + cg.x + '&y=' + cg.y + '&xx=' + cg.xx + '&yy=' + cg.yy;
}
function map_scroll(qf, rf, dg) {
var cg, eg;
if (sd) {
return false;
}
if (fg()) {
if (td) {
return false;
}
sd = true;
gg();
m_c.usealternate = false;
m_c.cindex = 0;
if (dg !== undefined) {
m_c.z.x = _f(dg.x);
m_c.z.y = _f(dg.y);
cg = sf(m_c.z);
} else {
ag(qf, rf);
cg = vf(qf, rf);
}
hg = bg(cg);
fd(hg, ig);
} else {
if (jg()) {
if (td) {
return false;
}
td = true;
ag(qf, rf);
cg = vf(qf, rf, 2);
hg = bg(cg);
fd(hg, ig);
} else if (kg()) {
ag(qf, rf);
lg();
gg();
} else {
ag(qf, rf);
}
mg(qf, rf);
}
function ig(ng) {
var og;
if (jg()) {
og = pg(m_c.cindex);
m_c.usealternate = false;
td = false;
} else {
og = m_c.cindex;
}
m_c.fields[og] = ng;
if (fg()) {
if (dg !== undefined) {
mg(0, 0, m_c.z);
qg('x');
qg('y');
} else {
mg(qf, rf);
qg(qf);
}
sd = false;
}
}
function jg() {
return m_c.usealternate;
}
function fg() {
return (qf != m_c.dir || rf == mdim.x || (rf == 1 && rf != m_c.steps) || dg !== undefined);
}
function kg() {
return (m_c.index == m_c.size);
}
} //end of map_scroll
function rg(qf, rf) {
m_c.dir = qf;
m_c.steps = rf;
}
function gg() {
m_c.index = 0;
}
function sg() {
m_c.index++;
if (m_c.index == m_c.size - 2) {
m_c.usealternate = true;
}
}
function lg() {
m_c.cindex = pg(m_c.cindex);
}
function mg(qf, rf, dg) {
var tg = document.getElementById('map_content');
var ug = tg.parentNode;
if (1 == rf) {
vg(qf);
wg(m_c.fields[m_c.cindex], qf, rf);
qg(qf);
sg();
} else if (mdim.x == rf || dg !== undefined) {
xg(m_c.fields[m_c.cindex]);
}
if (wd == 0) {
kf(m_c.z);
}
hf(m_c.z);
rg(qf, rf);
}
function pg(og) {
return (og == 0 ? 1 : 0);
}
function xg(ng) {
for (var i = 0; i < mdim.x; i++) {
for (var j = 0; j < mdim.y; j++) {
yg(i, j, ng[i][j]);
}
}
}
function zg($g, _g) {
_g.details.href = $g;
}
function yg(ah, bh, _e) {
var of = pe(ah, bh, 'i');
var area = pe(ah, bh, 'a');
te(_e, area); of .className = area.details.img;
pf(area, of );
}
function pf(area, of ) {
if (area.details.atyp) {
if (! of .firstChild) { of .appendChild(document.createElement('span'));
} of .firstChild.className = 'm' + area.details.atyp;
} else {
if ( of .firstChild) { of .removeChild( of .firstChild);
}
}
}
function te(_e, area) {
area.details = {};
var ch = ['x', 'y', 'nr', 'typ', 'querystring', 'img', 'atyp', 'dname', 'name', 'ew', 'ally', 'vid', 'atime'];
for (var i = 0; i < _e.length; i++) {
area.details[ch[i]] = _e[i];
}
area.details.normal_field = area.details.name === undefined && area.details.typ == 0;
area.details.free_oasis = area.details.name === undefined && area.details.typ != 0;
area.details.occupied_oasis = area.details.name !== undefined && area.details.typ != 0;
area.details.village = area.details.name !== undefined && area.details.typ == 0;
area.details.fresh = {};
area.details.classic_oasis = area.details.querystring === '';
}
function df(dh) {
switch (dh) {
case 1:
return [3, 3, 3, 9];
case 2:
return [3, 4, 5, 6];
case 3:
return [4, 4, 4, 6];
case 4:
return [4, 5, 3, 6];
case 5:
return [5, 3, 4, 6];
case 6:
return [1, 1, 1, 15];
case 7:
return [4, 4, 3, 7];
case 8:
return [3, 4, 4, 7];
case 9:
return [4, 3, 4, 7];
case 10:
return [3, 5, 4, 6];
case 11:
return [4, 3, 5, 6];
case 12:
return [5, 4, 3, 6];
default:
return false;
}
}
//document.map_coords.onsubmit=oe;
function oe() {
var x = parseInt(this.xp.value);
var y = parseInt(this.yp.value);
if (!isNaN(x) && !isNaN(y)) {
map_scroll(0, 0, {
'x': x,
'y': y
});
}
return false;
}
//document.onkeypress=ne;
function ne(e) {
if (vd) {
return true;
}
var qd = (window.event) ? event.keyCode : e.keyCode;
var qf = eh(qd);
if (qf != 0) {
return false;
}
}
function qe() {
_d = true;
hf(this.details);
$e(this.details);
fh(this);
ge = this;
}
function fh(area) {
if (!area.details.fresh.href) {
if (area.details.classic_oasis) {
area.removeAttribute('href');
area.style.cursor = 'default';
} else {
area.href = 'karte.php?' + area.details.querystring;
area.style.cursor = 'pointer';
}
area.details.fresh.href = true;
}
if (!area.details.fresh.title) {
area.details.fresh.title = gh(area);
}
}
function gh(area) {
if (area.details.normal_field) {
area.title = '';
} else if (area.details.free_oasis && !area.details.classic_oasis) {
area.title = text_k.freie_oase;
} else if (area.details.occupied_oasis && !area.details.classic_oasis) {
area.title = text_k.besetztes_tal;
} else if (area.details.village) {
if (area.details.atime !== undefined) {
area.title = area.details.dname + ' ' + rb(area.details.atime - Math.floor(new Date().getTime() / 1000), true);
return false;
} else {
area.title = area.details.dname;
}
} else {
area.title = '';
}
return true;
}
function re() {
var area = this;
window.setTimeout(function() {
if (ge == area) {
_d = false;
hf(m_c.z);
hh();
}
}, 50);
}
function wg(ng, qf) {
var ih, jh;
for (var i = 0; i < mdim.x; i++) {
switch (qf) {
case 1:
ih = i;
jh = mdim.x - 1;
_e = ng[i][m_c.index];
break;
case 2:
ih = mdim.x - 1;
jh = i;
_e = ng[m_c.index][i];
break;
case 3:
ih = i;
jh = 0;
_e = ng[i][m_c.size - m_c.index - 1];
break;
case 4:
ih = 0;
jh = i;
_e = ng[m_c.size - m_c.index - 1][i];
break;
}
yg(ih, jh, _e);
}
}
function kh(x, y, tf, uf) {
var of = pe(x, y, 'i');
var lh = pe(tf, uf, 'i');
mh( of , lh);
if ( of .firstChild) {
if (!lh.firstChild) {
lh.appendChild(document.createElement('span'))
}
lh.firstChild.className = of .firstChild.className;
} else {
if (lh.firstChild) {
lh.removeChild(lh.firstChild);
}
}
nh(x, y, tf, uf);
}
function nh(x, y, tf, uf) {
_e = pe(x, y, 'a');
oh = pe(tf, uf, 'a');
oh.details = _e.details;
oh.details.fresh = {};
}
function mh( of , lh) {
lh.className = of .className;
}
function vg(qf) {
for (var i = 0; i < mdim.x; i++) {
for (var j = 1; j < mdim.x; j++) {
switch (qf) {
case 1:
kh(i, j, i, j - 1);
break;
case 2:
kh(j, i, j - 1, i);
break;
case 3:
kh(i, mdim.x - 1 - j, i, mdim.x - j);
break;
case 4:
kh(mdim.x - 1 - j, i, mdim.x - j, i);
break;
}
}
}
}
function eh(qd) {
if (de[qd] !== undefined) {
return de[qd];
}
return 0;
}
//document.onkeyup=le;
function le(e) {
if (vd) {
return true;
}
var qd = ((window.event) ? event.keyCode : e.keyCode);
if (16 == qd) {
ud = false;
}
var qf = eh(qd);
if (qf == wd && wd != 0) {
wd = 0;
kf(m_c.z);
ph();
}
}
function m_r(qf, qh) {
if (wd == qf && qh == xd) {
window.setTimeout(function() {
m_r(qf, qh)
}, 100);
map_scroll(qf, 1);
}
}
function qg(rh) {
var jb;
switch (rh) {
case 2:
case 4:
case 'x':
jb = 'x';
break;
case 1:
case 3:
case 'y':
jb = 'y';
break;
}
var sh = 'm' + jb;
var th;
var uh;
var vh = 0;
var wh = 0;
for (var i = 0; i < mdim.x; i++) {
if (jb == 'x') {
vh = i;
} else {
wh = i;
}
if (ee[sh][i]) {
th = pe(vh, wh, 'a').details[jb];
ee[sh][i].firstChild.nodeValue = th;
}
}
}
//document.onkeydown=me;
function me(e) {
if (vd) {
return true;
}
var qd = (window.event) ? event.keyCode : e.keyCode;
if (qd == 16) {
ud = true;
}
var qf = eh(qd);
if (qf != 0 && qf != wd) {
var rf = (ud ? mdim.x : 1);
map_scroll(qf, rf);
var qh = new Date().getTime();
if (rf == 1) {
window.setTimeout(function() {
m_r(qf, qh)
}, 500);
}
xd = qh;
wd = qf;
ph();
}
if (qf != 0) {
return false;
}
}
function ph() {
window.setTimeout(function() {
if (_d) {
$e(ge.details);
}
}, 60);
}
var xh = {};
function pe(ah, bh, yh) {
if (xh) {
return xh[yh][ah][bh];
}
}
function ie(zh) {
var yh;
for (var i = 0; i < zh.length; i++) {
yh = zh[i];
xh[yh] = [];
for (var ah = 0; ah < mdim.x; ah++) {
xh[yh][ah] = [];
for (var bh = 0; bh < mdim.y; bh++) {
xh[yh][ah][bh] = document.getElementById(yh + '_' + ah + '_' + bh);
}
}
}
}
function hh() {
$e({
$h: '',
name: '',
_h: '',
ai: '',
x: m_c.z.x,
y: m_c.z.y
});
}
var quest = {
'anmstep': false
};
function bi(length, ci) {
if (length === undefined) {
length = 8;
}
if (ci === undefined) {
ci = 0.5;
}
var di = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';
var bi = '';
for (var i = 0; i < length; i++) {
var ei = Math.floor((Math.random() + ci) * 0.5 * di.length);
bi += di.substring(ei, ei + 1);
}
return bi;
}
function fi(qact, qact2) {
if (qact === undefined) {
qact = false;
}
if (qact2 === undefined) {
qact2 = false;
}
var gi = 'ajax.php?f=qst';
var ci = (Math.abs(quest.number) + 1) / (Math.abs(quest.last) + 1);
return gi + '&cr=' + bi(4, ci) + '&qact=' + qact + '&qact2=' + qact2;
}
function qst_next(jf, act, act2) {
var id;
if (jf) {
id = {
'x': document.getElementById('qst_val_x').value,
'y': document.getElementById('qst_val_y').value
};
} else {
id = {
'val': document.getElementById('qst_val').value
};
}
pi();
fd(fi(act, act2), function(mf) {
for (var qd in mf) {
quest[qd] = mf[qd];
}
}, 'POST', id);
qst_wfm();
}
function hi() {
document.getElementById('ce').innerHTML = '';
var step;
if (quest.anmstep === false) {
step = {
'step': {},
'source': {},
'current': {},
'target': {
'width': 448,
'height': 482,
'top': -1
},
'fps': 50,
'n': 10,
'i': 0,
'anm': {}
};
step.target[quest.rtl ? 'right' : 'left'] = '-502';
} else {
step = quest.anmstep;
ii(false);
}
step.anm = document.getElementById('anm');
for (var ji in step.target) {
step.source[ji] = Number(step.anm.style[ji].substr(0, step.anm.style[ji].length - 2));
step.current[ji] = step.source[ji];
step.step[ji] = Math.round((step.target[ji] - step.source[ji]) / step.n);
}
step.timeout = 1000 / step.fps;
quest.cstep = step;
quest.anmlock = true;
window.setTimeout(anm_step, step.timeout);
}
function ki(step) {
for (var ji in step.target) {
step.anm.style[ji] = step.current[ji] + 'px';
}
}
function li(step) {
step.i++;
if (step.i == 2) {
step.anm.style.visibility = 'visible';
}
for (var ji in step.target) {
step.current[ji] += step.step[ji];
}
return step;
}
function ii(mi) {
if (mi === undefined) {
mi == false;
}
var ni = document.getElementById('ce');
if (mi) {
var oi = '<div class="popup3 quest"><a href="#" onClick="qst_handle()"><img src="img/x.gif" border="1" class="popup4" alt="Close" title="Close"></a><div id="popup3"</div></div>';
ni.innerHTML = oi;
pi();
qst_wfm();
vc();
qi(true);
uc();
} else {
ni.innerHTML = '';
qi(false);
}
}
function qi(vis) {
if (!is_ie6) {
return;
}
var ri = vis ? 'hidden' : 'visible';
var si = document.getElementsByTagName('select');
var n = si.length;
for (var i = 0; i < n; i++) {
si[i].style.visibility = ri;
}
}
function anm_step() {
step = li(quest.cstep);
ki(step);
if (step.i < step.n) {
window.setTimeout('anm_step()', step.timeout);
} else {
step.anm.style.visibility = 'hidden';
quest.anmlock = false;
quest.cstep = false;
if (quest.anmstep === false) {
step.current = step.target;
step.target = step.source;
step.source = step.current;
ki(step);
step.i = 0;
ii(true);
quest.anmstep = step;
} else {
quest.anmstep = false;
if (quest.number >= quest.last || quest.altstep == 9) {
document.getElementById('qge').innerHTML = '';
}
}
}
}
function ti() {
var timer = document.getElementById('qst_timer');
if (timer && timer.parentNode.style.display != 'none') {
if (!timer.timestamp) {
timer.timestamp = db() + ob(timer);
} else {
var ui = timer.timestamp - db();
if (ui < 0) {
timer.parentNode.style.display = 'none';
document.getElementById('qst_reshere').style.display = 'block';
} else {
timer.innerHTML = rb(ui);
}
}
window.setTimeout(ti, 1000);
}
}
function qst_fhandle() {
id = {
'val': 1
};
fd(fi(), function(mf) {}, 'POST', id);
qst_handle();
}
function qst_handle() {
if (quest.anmlock) {
return false;
}
quest.markup = false;
if (quest.anmstep === false) {
fd(fi(), function(mf) {
for (var qd in mf) {
quest[qd] = mf[qd];
}
});
}
hi();
if (quest.ar) {
auto_reload = quest.ar;
quest.ar = undefined;
if (!window.reloading) {
document.location.href = (document.location.href.indexOf('#') > -1 ? document.location.href.substring(0, document.location.href.indexOf('#')) : document.location.href);
window.reloading = true;
}
}
}
function qst_wfm() {
var vi = document.getElementById('popup3');
if (!quest.markup || !vi) {
if (!quest.anmlock) {
window.setTimeout('qst_wfm(true)', 50);
}
} else {
wi(quest);
vi.innerHTML = quest.markup;
uc();
xi = false;
if (quest.reward.finish && window.bld) {
var yi = document.getElementById('building_contract');
if (bld.length < 2 && bld[0].gid == 1) {
yi.innerHTML = '';
xi = 0;
} else {
for (var i in bld) {
if (bld[i].stufe == 1 && bld[i].gid == 1) {
yi.getElementsByTagName('table')[0].deleteRow(i);
xi = i;
break;
}
}
}
if (xi !== false) {
var zi = $$('#t3 .rf' + bld[xi].aid)[0];
if (zi) {
zi.removeClass('rf' + bld[xi].stufe);
zi.addClass('rf' + bld[xi].stufe + 1);
} else {
$$('.f3')[0].appendChild(new Element('img', {
'class': ('reslevel rf' + bld[xi].aid + ' level' + bld[xi].stufe),
'src': 'img/x.gif'
}));
}
}
quest.ar = auto_reload;
auto_reload = -1;
}
if (quest.reward.plus) {
var of = document.getElementById('logo').className = 'plus';
}
quest.markup = false;
quest.msg = false;
}
}
function qst_weiter() {
pi();
fd(fi(), function(mf) {
document.getElementById('popup3').innerHTML = mf.markup;
var $i = document.getElementById('qgei');
$i.className = mf.qgsrc;
wi(mf);
uc();
});
}
function pi() {
document.getElementById('popup3').innerHTML = '<img src="img/x.gif" class="xlo" />';
}
function qst_enter(jf) {
if (jf === undefined) {
jf = false;
}
var id;
if (jf) {
id = {
'x': document.getElementById('qst_val_x').value,
'y': document.getElementById('qst_val_y').value
};
} else {
id = {
'val': document.getElementById('qst_val').value
};
}
pi();
fd(fi(), function(mf) {
for (var qd in mf) {
quest[qd] = mf[qd];
}
}, 'POST', id);
qst_wfm();
}
function qst_enter_coords() {
qst_enter(true);
}
function wi(_i) {
var $i = document.getElementById('qgei');
if ($i && _i.qgsrc) {
$i.className = _i.qgsrc;
}
var aj = document.getElementById('n5');
if (aj && _i.msrc) {
aj.className = _i.msrc;
}
if (_i.cookie) {
var date = new Date();
date.setTime(date.getTime() + 300000);
document.cookie = 't3fw=1; expires=' + date.toUTCString() + ';';
}
if (_i.fest && he('dorf2')) {
document.getElementById('content').innerHTML += _i.fest;
}
window.setTimeout(ti, 30);
}
function he(bj) {
return window.location.href.indexOf(bj + '.php') != -1;
}
function vil_levels_toggle() {
var cj = $('levels'),
dj = $('lswitch');
cj.toggleClass('on');
dj.toggleClass('on');
if (cj.hasClass('on')) {
document.cookie = 'SHOWLEVELS=1; expires=Wed, 1 Jan 2020 00:00:00 GMT';
} else {
document.cookie = 'SHOWLEVELS=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
}
function gmwd() {
if (is_ff2 && document.getElementById("gmwi").offsetWidth < 50) {
document.cookie = "a3=2; expires=Wed, 1 Jan 2020 00:00:00 GMT";
} else {
document.cookie = "a3=1; expires=Wed, 1 Jan 2020 00:00:00 GMT";
}
}
function gmc() {
document.getElementById("gmw").style.display = "none";
document.cookie = "a3=3; expires=Wed, 1 Jan 2020 00:00:00 GMT";
}
function documentWidth() {
return Math.max(
document.documentElement.clientWidth,
document.body.scrollWidth,
document.documentElement.scrollWidth,
document.body.offsetWidth,
document.documentElement.offsetWidth
);
}
function documentHeight() {
return Math.max(
document.documentElement.clientHeight,
//document.body.scrollHeight,
//document.documentElement.scrollHeight,
document.body.offsetHeight,
document.documentElement.offsetHeight
);
}