// ..::LvL - Tig, cleaned: Tue Mar  9 11:47:03 EST 2010
var docWidth = 0, docHeight = 0, mapNavHeight = 224, mapNavUser = 1;
var ssDelay = null, subNavDelay = null, mapShortDelay = null, sDateDelay = null, mapsDateDelay = null, voteDelay = null, tmpDelay = null;
var rcCurrent = '', rcQs = '', mapId = '';
var mapShortCurrent = 'm1';
var mapTypeCurrent = 'All';
var mapTypes = [
{'s':'All'		,'l':'All reviewed'},
{'s':'DM'		,'l':'DM / FFA'},
{'s':'CPM'		,'l':'CPMA'},
{'s':'CTF'		,'l':'CTF'},
{'s':'Pack'		,'l':'Map packs'},
{'s':'RA3'		,'l':'RA3'},
{'s':'Random'	,'l':'Random'},
{'s':'Space'	,'l':'Space'},
{'s':'TA'		,'l':'Team Arena'},
{'s':'Tourney'	,'l':'Tourney'},
{'s':'Video'	,'l':'Videos'},
{'s':'Mine'		,'l':'My Maps'} ];
var sliderBuff = 13; // 1/2 the width of the image
var sliderWidth= 0, posX = 0, sliderLimitL = 0, sliderLimitR = 0, sliderLimitLMAX = 0;
var sliderOffset = 0; // diff between click and position
var sliderX = 0; // position of slider from left
var now = new Date();
var rDate = new Date();
var mSecs = ((Date.parse('Dec 30 '+ now.getFullYear() +' 23:59:59')) - 915109200000);
var mSecsUnit = 0;
var months = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var ssCurrent = 0;
var ssHeight = 583;
var ssHeightVid = 503;
var ssOpen = false;
var ssVid = false;
var CTRL = false, ALT = false;
var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var ua = navigator.userAgent.toLowerCase();
var sfr = (ua.indexOf('applewebkit') != -1 ? 1 : 0);
if (sfr) var sfr2 = (ua.indexOf('version/') != -1 ? 0 : 1)
var msie = (ua.indexOf('msie') != -1 ? 1 : 0);
var IE = (document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
var operaSucks = false;
var bustCache = 1, bustCacheParam = '';
var gTime = 250, gTime2 = (gTime * 2);
var hshReload = false;
var hshStored = '';
var tVote = '', tType = '', tDl = '', tCom = '', tSort = '', tQ = '';
var r = '', q = '', txt = '';
var loadMsg = 'Loading ...';
var ignoreKeys = false;
var tmpData = '';
window.onresize = docSize;
document.onkeydown = kDown;
document.onkeyup = kUp;
var skn = 'blue';
var footOpenA = new Image();
var footOpenB = new Image();
var footClosedA = new Image();
var footClosedB = new Image();
var leftA = new Image();
var leftB = new Image();
var rightA = new Image();
var rightB = new Image();
var rateGray = new Image();
var rateColour = new Image();
footOpenA.src = '/skin/'+ skn +'/footOpen.png';
footOpenB.src = '/skin/'+ skn +'/footOpenB.png';
footClosedA.src = '/skin/'+ skn +'/footClosed.png';
footClosedB.src = '/skin/'+ skn +'/footClosedB.png';
leftA.src = '/skin/'+ skn +'/left.gif';
leftB.src = '/skin/'+ skn +'/leftOn.gif';
rightA.src = '/skin/'+ skn +'/right.gif';
rightB.src = '/skin/'+ skn +'/rightOn.gif';
rateGray.src = '/skin/'+ skn +'/rateGray.gif';
rateColour.src = '/skin/'+ skn +'/rateColour.gif';
function kUp(e) {
var k = e || window.event;
var kCode = k.which || k.keyCode;
if (kCode == 17) CTRL = false;
if (kCode == 18) ALT = false;
}
function kDown(e) {
var k = e || window.event;
var kCode = k.which || k.keyCode;
var i, m;
if (ignoreKeys) return true;
if (kCode == 18) {
ALT = true;
return true;
}
if (ALT) return true; // ALT + Arrow catch
if (kCode == 17) CTRL = true;
if ( (! CTRL) && (kCode == 37) ) {
m = document.getElementById('mapMask').getElementsByTagName('div').length;
i = (! document.getElementById(mapShortCurrent)) ? (m - 1) : (parseInt(mapShortCurrent.charAt(1)) - 1);
if (i < 1) i = m;
mapShortShow('m'+ i,m);
}
if ( (! CTRL) && (kCode == 39) ) {
m = document.getElementById('mapMask').getElementsByTagName('div').length;
i = (! document.getElementById(mapShortCurrent)) ? (m + 1) : (parseInt(mapShortCurrent.charAt(1)) + 1);
if (i > m) i = 1;
mapShortShow('m'+ i,m);
}
if ( (CTRL) && (kCode == 37) ) maps(0);
if ( (CTRL) && (kCode == 39) ) maps(1);
if ( (CTRL) && (kCode == 90) ) {
if (mapNavHeight > 8) mapNavClick(0);
else mapNavClick(1);
}
if ( ( (kCode == 27) || (kCode == 192) ) && (ssOpen) ) {
if (mapShortCurrent == 'mSearch') {
ssClose();
} else if (getH(mapShortCurrent +'m') != getH('ssMap')) {
if (kCode == 27) setTimeout('ssNew()',10);
else ssNew();
} else {
ssClose();
}
} else if ( ( (kCode == 27) || (kCode == 192) ) && (! ssOpen) ) {
if (kCode == 27) setTimeout('ssNew()',10);
else ssNew();
}
if ( (kCode == 38) && (ssOpen) ) ssKey(0);
if ( (kCode == 40) && (ssOpen) ) ssKey(1);
if ( (CTRL) && (kCode == 13) ) {
if (getH('rId') != getH(mapShortCurrent +'i')) loadRc(getH(mapShortCurrent +'i'),'review');
}
}
function docSize() {
var tmpW = 0;
if (docWidth) tmpW = docWidth;
if ( typeof( window.innerWidth ) == 'number' ) {
docHeight = window.innerHeight;
docWidth = window.innerWidth;
} else if ( document.documentElement && document.documentElement.clientHeight ) {
docHeight = document.documentElement.clientHeight;
docWidth = document.documentElement.clientWidth;
} else if ( document.body && document.body.clientHeight ) {
docHeight = document.body.clientHeight;
docWidth = document.body.clientWidth;
}
if (document.getElementById('content')) {
document.getElementById('content').style.height = (docHeight - 68 - mapNavHeight) +'px';
}
if (tmpW) sliderX = (sliderX - ((tmpW - docWidth) / 2));
setSlider();
}
function getH(id) {
if (document.getElementById(id)) return document.getElementById(id).innerHTML;
}
function getV(id) {
if (document.getElementById(id).value) return document.getElementById(id).value;
}
function setH(id,str) {
if (document.getElementById(id)) document.getElementById(id).innerHTML = str;
}
function setV(id,str) {
if (document.getElementById(id).value) document.getElementById(id).value = str;
}
function divToggle(id) {
if (document.getElementById(id).style.display == 'none') divShow(id);
else divHide(id);
}
function divShow(id) {
if (document.getElementById(id)) document.getElementById(id).style.display = 'block';
}
function divHide(id) {
if (document.getElementById(id)) document.getElementById(id).style.display = 'none';
}
function divShowAll(str) {
var d = str.split(',');
for (x in d) {
divShow(d[x]);
}
}
function divHideAll(str) {
var d = str.split(',');
for (x in d) {
divHide(d[x]);
}
}
function hshSet() {
var z = '';
if ( (hshReload) || (sfr2) ) return true;
if ( (! document.getElementById('mOK')) || ( (ssOpen) && (! document.getElementById('ssMap')) ) ) {
setTimeout('hshSet()',gTime2);
} else {
if (mapShortCurrent) z = z +'&c='+ mapShortCurrent;
if (mapId) z = z +'&i='+ mapId;
if (getH('mDate')) z = z +'&d='+ getH('mDate');
if (document.getElementById('ssMap')) {
if (ssCurrent) z = z +'&f='+ getH('ssMap') + '&s='+ getH('s'+ ssCurrent);
else z = z +'&f='+ getH('ssMap') + '&s='+ getH('ssMap');
}
if (mapTypeCurrent) z = z +'&m='+ mapTypeCurrent;
if (txt) z = z +'&t='+ txt;
if (ssVid) z = z +'&v=1';
if (rcCurrent) z = z +'&p='+ rcCurrent;
if (q) z = z +'&q='+ q;
if (r) z = z +'&r='+ r;
if (getH('mGroup')) z = z +'&g='+ getH('mGroup');
if (getH('myMapId')) z = z +'&u='+ getH('myMapId');
if (rcCurrent == 'mymapsExpand') z = z +'&l='+ escape(escape(rcQs));
if (msie) {
setH('IEHack',getH('IEHack') +'<a name="'+ z.substr(1) +'"> </a>');
}
if (window.location.pathname != '/') {
window.location = 'http://'+ window.location.host +'/#'+ z.substr(1);
} else {
window.location.hash = z.substr(1);
}
hshStored = window.location.hash;
crumbs(rcCurrent);
}
}
function hshChk() {
setTimeout('hshChk()',gTime);
if (window.location.hash == hshStored) {
return true;
}
hshStored = window.location.hash;
if (msie) {
hshLoad(window.location.hash.substr(1))
} else {
hshLoad(window.location.hash.substr(1))
}
}
function hshLoad(str,crmbs) {
var h, x, v, d, f, g, i, s, c, lnk, m, p, r, t, u, vid;
if (! document.getElementById('mOK')) {
return false;
} else if (str) {
hshReload = true;
h = str.split('&');
} else {
document.location = '/';
return false;
}
for (x in h) {
v = h[x].substring(2);
switch(h[x].substring(0,1)) {
case 'd':
d = unescape(v); break;
case 'c':
c = v; break;
case 'f':
f = v; break;
case 'm':
m = v; break;
case 'p':
p = v; break;
case 'i':
i = v; break;
case 'g':
g = v; break;
case 'r':
r = v; break;
case 's':
s = v; break;
case 't':
t = v; break;
case 'n':
((v == '1') ? mapNav(1) : mapNav(0));
break;
case 'q':
q = v; break;
case 'u':
u = v; break;
case 'v':
vid = true; break;
case 'l':
lnk = v; break;
}
}
if ( (r) && (p == 'top') ) {
topSetFrom(r);
topResult(r,g);
loadRc(0,p,'r='+ r);
} else if ( (q) && (p == 'search') ) {
mapSearch(q);
} else if ( (q) && (p == 'author') ) {
authorSearch(q);
} else if ( (q) && (p == 'authors') ) {
authorBrowse(q);
} else if ( (t) && (p == 'readme') ) {
loadRcStr(t,p);
} else if ( (lnk) && (p == 'member') ) {
loadRc(0,'member','id='+ lnk);
} else if ( (lnk) && (p == 'mymapsExpand') ) {
loadRc(0,'mymapsExpand',unescape(lnk));
} else if ( (p != 'review') && (p) ) {
loadRc(0,p);
} else {
if (i) loadRc(i,'review');
else {
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
page('rc/indexMain.php','main');
}
}
if (u) loadMine(u);
if ( (c) && (d) && (m) ) {
mapTypeCurrent = m;
mapTypeNoUpdate(m);
date2SliderX(d,1);
setTimeout('mapShortCurrent = \''+ c +'\'; mapNavJump()',gTime2);
}
if ( (f) && (vid) ) {
ss(f,f,vid);
} else if ( (f) && (s) ) {
ss(f,s +'lg');
} else {
ssClose();
}
hshReload = false;
}
function crumbs(id,prev,lnk) {
var c = '<a href="/">Home</a> &#187;';
if (prev) {
switch (prev) {
case 'review' :
c = c +' <a href="/review.php?id='+ lnk +'" onclick="loadRc('+ lnk +',\'review\');return false;">Review</a> &#187;';
break;
case 'queue' :
c = c +' <a href="/queue.php" onclick="loadRc(0,\'queue\');return false;">Map queue</a> &#187;';
break;
case 'year' :
if (lnk) c = c +' <a href="/year.php?'+ lnk +'" onclick="loadRc(0,\'year\',\''+ lnk +'\');return false;"> Browse years</a> &#187;';
else c = c +' <a href="/year.php" onclick="loadRc(0,\'year\',);return false;"> Browse years</a> &#187;';
break;
case 'panoramaList' :
if (lnk) c = c +' <a href="/panorama.php?'+ lnk +'" onclick="loadRc(0,\'panoramaList\',\''+ lnk +'\');return false;"> Browse panoramas</a> &#187;';
else c = c +' <a href="/panorama.php" onclick="loadRc(0,\'panoramaList\',);return false;"> Browse panoramas</a> &#187;';
break;
case 'videoList' :
if (lnk) c = c +' <a href="/video.php?'+ lnk +'" onclick="loadRc(0,\'videoList\',\''+ lnk +'\');return false;"> Browse videos</a> &#187;';
else c = c +' <a href="/video.php" onclick="loadRc(0,\'videoList\',);return false;"> Browse videos</a> &#187;';
break;
case 'featured' :
if (lnk) c = c +' <a href="/featured.php?'+ lnk +'" onclick="loadRc(0,\'featured\',\''+ lnk +'\');return false;"> Browse featured</a> &#187;';
else c = c +' <a href="/video.php" onclick="loadRc(0,\'videoList\',);return false;"> Browse videos</a> &#187;';
break;
case 'author' :
c = c + ' <a href="/author.php?'+ lnk +'" onclick="loadRc(0,\'author\',\''+ lnk +'\');return false;">Author</a> &#187;';
break;
case 'authors' :
c = c + ' <a href="/authors.php?'+ lnk +'" onclick="loadRc(0,\'authors\',\''+ lnk +'\');return false;">Author browse</a> &#187;';
break;
case 'members' :
c = c + ' <a href="/members.php" onclick="loadRc(0,\'members\');return false;">Members list</a> &#187;';
break;
case 'member' :
c = c + ' <a href="/member.php" onclick="loadRc(0,\'member\',\''+ lnk +'\');return false;">Member profile</a> &#187;';
break;
case 'mymapsExpand' :
c = c + ' <a href="/mymaps.php" onclick="loadRc(0,\'mymaps\');return false;">My maps</a> &#187; <a href="/mymapsExpand.php?'+ lnk +'" onclick="loadRc(0,\'mymapsExpand\',\''+ lnk +'\');return false;">Expanded</a> &#187;';
break;
}
}
if (id) {
switch (id) {
case 'review' :
c = c +' Review'; break;
case 'search' :
c = c +' Search'; break;
case 'top' :
c = c +' Top maps'; break;
case 'authors' :
c = c +' Author browse'; break;
case 'author' :
if (prev == 'authors') c = c +' Author';
else c = c +' <a href="/authors.php" onclick="loadRc(0,\'authors\');return false;">Author browse</a> &#187; Author';
break;
case 'queue' :
c = c +' Map queue'; break;
case 'contact' :
c = c +' Contact'; break;
case 'readme' :
c = c +' Readme'; break;
case 'about' :
c = c +' About'; break;
case 'featured' :
c = c +' Featured maps'; break;
case 'mydetails' :
c = c +' My details'; break;
case 'mymaps' :
c = c +' My maps'; break;
case 'mymapsEdit' :
c = c +' <a href="/mymaps.php" onclick="loadRc(0,\'mymaps\');return false;">My maps</a> &#187; Options'; break;
case 'mymapsExpand' :
c = c +' <a href="/mymaps.php" onclick="loadRc(0,\'mymaps\');return false;">My maps</a> &#187; Expanded'; break;
case 'year' :
c = c +' Browse years'; break;
case 'yearExpand' :
c = c +' <a href="/year.php" onclick="loadRc(0,\'year\');return false;">Years</a> &#187; Expanded'; break;
case 'mailout' :
c = c +' Newsletter'; break;
case 'widgets' :
c = c +' Widgets'; break;
case 'register' :
c = c +' Register'; break;
case 'faq' :
c = c +' F.A.Q.'; break;
case 'videoList' :
c = c +' Browse videos'; break;
case 'panoramaList' :
c = c +' Browse panoramas'; break;
case 'password' :
c = c +' Password request'; break;
case 'sitemap' :
c = c +' Sitemap'; break;
case 'member' :
c = c +' Member profile'; break;
case 'members' :
c = c +' Members list'; break;
default :
c = '';
}
} else {
c = '';
}
setH('crumbs',c);
}
function subNav(id) {
clearTimeout(subNavDelay);
divHide('navSubmit');
divHide('navBrowse');
divHide('navMaps');
divHide('navMisc');
if (id) divShow(id);
}
function subNavClr() {
subNavDelay = setTimeout('subNav()',2000);
}
function loadRc(id,rc,qs) {
var tmp = '';
rcCurrent = rc;
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
if (qs) {
if (id > 0) tmp = '&'+ qs;
else tmp = '?'+ qs;
rcQs = qs;
}
if ( (rc == 'review') && (mapNavUser == 0) && (mapNavHeight > 8) ) mapNav(0);
if (id > 0) {
mapId = id;
page('rc/'+ rc  +'.php?id='+ id + tmp,'main');
} else {
mapId = '';
page('rc/'+ rc +'.php'+ tmp,'main');
}
ssClose();
if ( (rc == 'review') && (id > 0) ) {
setTimeout('commentBox()',gTime);
setTimeout('comments('+ id +')',gTime2);
}
}
function loadRcStr(id,rc,qs) {
var tmp = '';
rcCurrent = rc;
if ( (rc == 'readme') && (id) ) txt = id;
if (qs) {
if (id) tmp = '?id='+ id +'&'+ qs;
else tmp = '?'+ qs;
} else {
tmp = '?id='+ id
}
page('rc/'+ rc +'.php'+ tmp,'main');
ssClose();
}
function mapNav(open) {
if (open) {
mapNavHeight = 224;
divHide('mapNavClosed');
divShow('mapNavOpen');
docSize();
} else {
divHide('mapNavOpen');
divShow('mapNavClosed');
mapNavHeight = 8;
docSize();
}
}
function mapNavClick(open) {
if (open) {
mapNav(1);
mapNavUser=1;
setCookie('lvl[m]','o',30);
} else {
mapNav(0);
mapNavUser=0;
setCookie('lvl[m]','c',30);
}
}
function mapShort(id,m) {
if ( (! mapShortCurrent) || (id == mapShortCurrent) ) return false;
mapShortDelay = setTimeout('mapShortShow("'+ id +'",'+ m +')',gTime);
}
function mapShortClr() {
clearTimeout(mapShortDelay);
}
function mapShortShow(id,m) {
var i, buffer = 0, missing = 0;
var r = parseInt(id.charAt(1)); // requested
if (!m) m = document.getElementById('mapMask').getElementsByTagName('div').length;
missing = (m < 8) ? (40 * (8 - m)) : 0;
for (i=1;i<=m;i++) {
document.getElementById('m'+ i).style.left = (((i - 1) * 40) + buffer) +'px';
if (i == r) {
buffer = (594 + missing);
mapShortCurrent = 'm'+ i;
date2SliderX(getH('m'+ i +'d'));
}
if (r == 8) document.getElementById('m8').style.left = '280px';
}
}
function mapSearch(str,order) {
q = str;
rcCurrent = 'search';
page('rc/search.php?q='+ escape(str) +'&o='+ order, 'main');
hshSet();
}
function authorSearch(str,order) {
q = str;
rcCurrent = 'author';
page('rc/author.php?q='+ escape(str) +'&o='+ order, 'main');
hshSet();
ssClose();
}
function authorBrowse(str,order) {
q = str;
rcCurrent = 'authors';
page('rc/authors.php?q='+ escape(str) +'&o='+ order, 'main');
hshSet();
}
function imgSwap(nm,im) {
switch (im) {
case footOpenA :
case footOpenB :
case footClosedA :
case footClosedB :
case leftA :
case leftB :
case rightA :
case rightB :
document[nm].src = im.src;
break;
default :
if (document.images[nm]) document.images[nm].src = '/skin/'+ im;
}
}
function setSlider() {
sliderLimitL = ((docWidth - sliderWidth) / 2);
sliderLimitR = (docWidth - sliderLimitL - sliderBuff);
sliderLimitLMAX = (sliderLimitL - sliderBuff);
if (document.getElementById('slider0')) posSlider(sliderX);
}
function posSlider(x,u) {
if (x < sliderLimitLMAX) x = sliderLimitLMAX;
if (x > sliderLimitR) x = sliderLimitR;
sliderX = x;
document.getElementById('slider0').style.left = x +'px';
sliderDate(u);
}
function mapNavDate(uMaps) {
if ( ( (document.onmousedown) || (document.onmousemove) ) && (operaSucks) ) {
clearTimeout(sDateDelay);
sDateDelay = setTimeout('mapNavDate('+ uMaps +')',gTime);
} else {
if (rDate.getTime() < 946386000000) rDate.setTime(946386000000) ;
if (rDate.getTime() > now.getTime()) rDate.setTime(now.getTime()) ;
if (uMaps) mapsByDate(rDate.getDate() +'%20'+ months[rDate.getMonth()] +'%20'+ rDate.getFullYear());
}
}
function mapNavJump() {
if (document.getElementById('mOK')) mapShortShow(mapShortCurrent);
else setTimeout('mapNavJump()',gTime2);
}
function sliderDate(uMaps) {
rDate.setTime(915109200000 + (mSecsUnit * (sliderWidth - (sliderX - sliderLimitL + sliderBuff))));
clearTimeout(sDateDelay);
sDateDelay = setTimeout('mapNavDate('+ ((uMaps) ? true : false) +')',gTime);
}
function date2SliderX(dString,u) {
var dMsecs = (sliderWidth + sliderLimitL - sliderBuff) - ((Date.parse(dString) - 915109200000) / mSecsUnit);
if (mapNavHeight < 224) mapNav(1);
if (u) {
posSlider(dMsecs,true);
} else {
posSlider(dMsecs);
}
}
function loadMine(mm) {
if (mapNavHeight < 224) mapNav(1);
if (mm) {
mapTypeCurrent = 'Mine';
mapTypeNoUpdate('Mine');
page('/rc/nMyMapsByDate.php?m=Mine&mm='+ mm +'&d=','mapMask');
hshSet();
}
}
function voteClr() {
voteDelay = setTimeout('voteRevert()',(gTime2 * 2));
}
function voteRevert() {
if (getH('votePrevious')) {
setH('voteInfo','Your previous vote: '+ getH('votePrevious'));
} else {
setH('voteInfo','Login to vote');
}
setH('voteYours','0 / 10');
if ( (getH('voteX')) && (document.getElementById('voteBoxRank')) ) document.getElementById('voteBoxRank').style.width = getH('voteX') +'px';
}
function voteReg() {
var v = getH('voteYours').split(' / 10');
if (v[0]) {
loadMsg = '<div class="mid "style="padding-top:17px;">'+ getH('loading') +'</div>';
page('rc/voteReg.php?id='+ getH('rId') +'&v='+ v[0] +'&s='+ getH('salt') +'&l='+ getH('voteLock'), 'voteContain');
voteResult();
}
}
function voteResult() {
if (! document.getElementById('voteResult')) {
setTimeout('voteResult()',gTime);
} else {
if (getH('voteResult') == 'success') {
setH('voteStatus','<b>Rate release:</b> Currently '+ getH('newMapRank') +' / 10 ('+ getH('newVotes') +' votes)');
setH('voteX',getH('newRankX'));
setH('mapRank',getH('newMapRank'));
}
}
}
function getVoteX(m) {
clearTimeout(voteDelay);
if (document.getElementById('voteBox')) {
posX = getPosX(m);
}
if (posX > 200) {
posX = (posX - (document.getElementById('content').offsetLeft + document.getElementById('voteBox').offsetLeft));
}
var r = (Math.round(posX / 10) / 2);
r = (r < 0 ? 0 : (r > 10 ? 10 : r));
setTimeout("setH('voteYours','"+ r +" / 10')",1);
if (document.getElementById('voteBoxRank')) setTimeout("document.getElementById('voteBoxRank').style.width = '"+ posX +"px'",20);
}
function getX(m) {
if (document.getElementById('slider0')) {
posX = getPosX(m);
posSlider((posX - sliderBuff),true);
}
}
function moveSlider(m) {
if (document.getElementById('slider0')) {
posX = getPosX(m);
}
if (! sliderOffset) sliderOffset = (posX - sliderX);
posSlider((posX - sliderOffset),true);
}
function getPosX(m) {
pagex = (sfr == 1 ? 0 : (ie5) ? IE.scrollLeft : window.pageXOffset);
mousex = (ie5) ? event.x : (ns6) ? clientX = m.clientX : false;
return (pagex + mousex);
}
function mapType(id) {
var o;
mapTypeCurrent = id;
if (mapNavHeight < 224) mapNav(1);
for (x in mapTypes) {
o = document.getElementById('mapType'+ mapTypes[x]['s']).style;
if (mapTypes[x]['s'] == id) {
o.display = 'none';
setH('mapTypeMaps',mapTypes[x]['l']);
sliderDate(true);
setTimeout('mapsDate()',(gTime * 4));
} else {
o.display = 'block';
}
}
}
function mapTypeNoUpdate(id) {
var o;
for (x in mapTypes) {
o = document.getElementById('mapType'+ mapTypes[x]['s']).style;
if (mapTypes[x]['s'] == id) {
o.display = 'none';
setH('mapTypeMaps',mapTypes[x]['l']);
} else {
o.display = 'block';
}
}
}
function mapsDate() {
if (document.getElementById('mOK')) {
date2SliderX(getH('mDate'));
} else {
clearTimeout(sDateDelay);
mapsDateDelay = setTimeout('mapsDate()',gTime);
}
}
function maps(dir) {
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
mapShortCurrent = false;
if (document.getElementById('mOK')) {
if (mapTypeCurrent == 'Random') {
page('/rc/nMapsRandom.php','mapMask');
} else if (mapTypeCurrent == 'top') {
if (r.substring(r.length - 4) == 'asce') {
if (dir) page('/rc/nTopResult.php?rG='+ getH('mGroup') +'&rD=1&tQ='+ r,'mapMask');
else page('/rc/nTopResult.php?rG='+ getH('mGroup') +'&rD=0&tQ='+ r,'mapMask');
} else {
if (dir) page('/rc/nTopResult.php?rG='+ getH('mGroup') +'&rD=1&tQ='+ r,'mapMask');
else page('/rc/nTopResult.php?rG='+ getH('mGroup') +'&rD=0&tQ='+ r,'mapMask');
}
} else if (mapTypeCurrent == 'Mine') {
if (dir) {
page('/rc/nMyMaps.php?m='+ mapTypeCurrent +'&mm='+ (getH('myMapId') ? getH('myMapId') : '' ) +'&idL='+ getH('mLow'),'mapMask');
} else {
page('/rc/nMyMaps.php?m='+ mapTypeCurrent +'&mm='+ (getH('myMapId') ? getH('myMapId') : '' ) +'&idH='+ getH('mHi'),'mapMask');
}
} else {
if (dir) {
page('/rc/nMaps.php?m='+ mapTypeCurrent +'&idL='+ getH('mLow'),'mapMask');
} else {
page('/rc/nMaps.php?m='+ mapTypeCurrent +'&idH='+ getH('mHi'),'mapMask');
}
}
mapsDate();
}
mapShortCurrentSet();
hshSet();
}
function mapsByDate(mDate) {
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
mapShortCurrent = false;
if (mapTypeCurrent == 'Random') {
page('/rc/nMapsRandom.php','mapMask');
} else {
if (document.getElementById('mOK')) {
if (mDate) {
if (mapTypeCurrent == 'top') {
page('/rc/nTopResult.php?rG='+ getH('mGroup') +'&tQ='+ r,'mapMask');
} else if (mapTypeCurrent == 'Mine') {
page('/rc/nMyMapsByDate.php?m='+ mapTypeCurrent +'&mm='+ (getH('myMapId') ? getH('myMapId') : '' ) +'&d='+ mDate,'mapMask');
} else {
page('/rc/nMapsByDate.php?m='+ mapTypeCurrent +'&d='+ mDate,'mapMask');
}
}
}
}
mapShortCurrentSet();
hshSet();
}
function mapShortCurrentSet() {
if (! mapShortCurrent) {
if (document.getElementById('mOK')) {
mapShortCurrent = 'm1';
} else {
setTimeout('mapShortCurrentSet()',gTime2);
}
}
}
function ss(f,s,v,p,m) {
var o = document.getElementById('ss');
if ( (ssOpen) && (getH('ssMap') == f) ) {
ssClose();
} else {
setH('ssBody','');
o.style.display = 'block';
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
if (v) {
o.style.height = ssHeightVid + 'px';
page('/rc/video.php?&m='+ f,'ssBody');
ssVid = true;
} else if (p) {
o.style.height = ssHeight + 'px';
page('/rc/panorama.php?&m='+ f,'ssBody');
} else if ((m) && (m == 'avt')) {
o.style.height = '437px';
page('/rc/avatar.php','ssBody');
avtChk();
} else {
o.style.height = ssHeight + 'px';
page('/rc/ss.php?s='+ s +'&m='+ f,'ssBody');
}
ssOpen = true;
hshSet();
}
}
function ssKey(d) {
var ssCount = 0, ssNext = 0;
if (document.getElementById('ssOption')) ssCount = document.getElementById('ssOption').getElementsByTagName('div').length;
if (document.getElementById('ssKey')) {
if (d) {
ssNext = (ssCurrent + 1);
} else {
ssNext = (ssCurrent - 1);
}
if (ssNext < 0) ssNext = (ssCount - 1);
if (ssNext >= ssCount) ssNext = 0;
ssCurrent = ssNext;
ssUpdate(getH('s0'),getH('s'+ ssNext));
}
}
function ssUpdate(f,ss) {
var o = document.getElementById('ssLrg');
setH('ssLrg','<a href="#" onclick="ssClose();return false;"><img src="/levels/'+ f +'/'+ ss +'lg.jpg" width="640" height="480" border="0" alt="'+ f +'" title="'+ f +'" /></a>');
hshSet();
}
function ssNew() {
var f = (mapShortCurrent) ? getH(mapShortCurrent +'m') : getH('m8m');
if (f) ss(f,f +'lg');
}
function ssClose(noSet) {
setH('ssBody','');
document.getElementById('ss').style.display = 'none';
document.getElementById('ss').style.height = '0px';
ssVid = false;
ssOpen = false;
if (! noSet) hshSet();
}
function login() {
var o = document.getElementById('ssLogin');
if (o) {
o.style.display = '';
o.style.height = 384 +'px';
loadMsg = '<div class="mid" style="padding-top:47px;">Loading...<br />'+ getH('loading') +'</div>';
page('/rc/ssLogin.php','ssLogin');
}
}
function loginChk() {
var l;
loadMsg = '<div class="mid"><p />Checking details...<br />'+ getH('loading') +'</div>';
l = 'l='+ (document.lgn['login'].value ? postSafe(document.lgn['login'].value) : '') +'&p='+ (document.lgn['password'].value ? postSafe(document.lgn['password'].value) : '');
l = l + '&h='+ (document.lgn['hash'].value ? postSafe(document.lgn['hash'].value) : '') +'&s='+ (document.lgn['s'].value ? document.lgn['s'].value : '');
page('/rc/ssLogin.php','ssLoginFrm',l,l.length);
loginStatus();
}
function loginStatus() {
if (document.getElementById('ssLoginMain')) {
if (document.getElementById('ssLoginStatus')) {
if (getH('ssLoginStatus') == 'done') {
setH('navMisc','<a href="/logout.php" onclick="window.location=\'http://\'+ window.location.hostname +\'/logout.php?h=\'+ escape(window.location.hash);return false;">Logout</a> &#160; <a href="#" onclick="loadRc(0,\'member\');return false;">My details</a> &#160; <a href="/members.php" onclick="loadRc(0,\'members\');tableChk(\'mTbl\',\'mList\');return false;">Members</a> &#160; <a href="/mailout.php" onclick="loadRc(0,\'faq\');return false;">F.A.Q.</a> &#160; <a href="/mailout.php" onclick="loadRc(0,\'mailout\');return false;">Newsletter</a> &#160; <a href="/mailout.php" onclick="loadRc(0,\'widgets\');return false;">Widgets</a> &#160; <a href="/contact.php" onclick="loadRc(0,\'contact\');return false;">Contact</a> &#160; <a href="/about.php" onclick="loadRc(0,\'about\');return false;">About ..::LvL</a> &#160;');
if ( (rcCurrent == 'review') && (mapId > 0) ) loadRc(mapId,'review');
setTimeout('ssLoginClose()',2000);
}
} else {
setTimeout('loginStatus()',gTime2);
}
}
}
function ssLoginClose() {
setH('ssLogin','');
document.getElementById('ssLogin').style.height = '0px';
document.getElementById('ssLogin').style.display = 'none';
}
function getRadioValue(f,a) {
var i;
for (i=0; i<a; i++) {
if (f[i].checked) return f[i].value;
}
}
function topSetFrom(str) {
var h = str.split(',');
tVote = h[0];
tType = h[1];
tDl = h[2];
tCom = h[3];
tSort = h[4];
}
function topResult(qStr,rG) {
if (mapNavHeight < 224) mapNav(1);
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
setH('mapTypeMaps','Top results');
mapTypeCurrent = 'top';
mapTypeNoUpdate('x');
if (qStr) r = qStr;
else r = tVote +','+ tType +','+ tDl +','+ tCom +','+ tSort;
rG = parseInt(rG);
if (rG >= 8) {
page('/rc/nTopResult.php?rG='+ (rG -8) +'&rD=0&tQ='+ r,'mapMask');
} else {
page('/rc/nTopResult.php?tQ='+ r,'mapMask');
}
mapsDate();
mapShortCurrentSet();
hshSet();
}
function topDefault(m) {
tVote = 20;
tType = m;
tDl = 0;
tCom = 0;
tSort = 'desc';
topResult();
}
function topSearch() {
var o;
if (document.topOp) {
o = document.topOp;
tVote = getRadioValue(o['tVote'],o['tVote'].length);
tType = getRadioValue(o['tType'],o['tType'].length);
tDl = getRadioValue(o['tDl'],o['tDl'].length);
tCom = getRadioValue(o['tCom'],o['tCom'].length);
tSort = getRadioValue(o['tSort'],o['tSort'].length);
topResult();
} else {
topClr();
return false;
}
}
function topClr() {
tVote = '';
tType = '';
tDl = '';
tCom = '';
tSort = '';
}
function authorsImg(id,fName, skin) {
divShow(id);
setH(id,'<img src="/levels/'+ fName +'/'+ fName +'sm.jpg" width="160" height="120" border="0" alt="'+ fName +'" title="'+ fName +'" />');
}
function mymapAdd(id) {
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
if (! id) return false;
if (id < 1) return false;
page('rc/mymapsAdd.php?id='+ id, 'main');
}
function mymapRm(id,uId) {
loadMsg = '<div class="mid"><p />'+ getH('loading') +'</div>';
page('rc/mymapsRemove.php?id='+ id, 'mmr'+ id);
setTimeout('loadMine("'+ uId +'")',(gTime * 4));
}
function commentBox() {
if (document.getElementById('commentBox')) {
if (document.getElementById('commentBox').offsetTop > 477) {
document.getElementById('commentBox').style.width='940px';
}
} else {
setTimeout('commentBox()',gTime2);
}
}
function comments(id) {
if (document.getElementById('postedComments')) {
loadMsg = 'Loading...';
page('rc/comments.php?id='+ id,'postedComments');
} else {
setTimeout('comments('+ id +')',gTime2);
}
}
function commentEdit(id) {
if (id) {
loadMsg = '<div class="mid"><p />Loading...<br />'+ getH('loading') +'</div>';
page('rc/commentEdit.php?id='+ id +'&h='+ document.getElementById('c'+ id).offsetTop +'&MSIE='+ msie, 'c'+ id);
}
}
function commentAddStatus(id) {
if (document.getElementById('postedComments')) {
if (getH('cStatus'+ id) == 'done') {
comments(id);
} else if (getH('cStatus'+ id) != 'err') {
setTimeout('commentAddStatus('+ id +')',gTime);
}
}
} // commentAddStatus
function commentAdd(id) {
var cN, cS, cP, cC;
var c = postSafe(document.cb['c'].value);
var p;
if (document.cb['name'].value) cN = postSafe(document.cb['name'].value);
if (document.cb['salt']) cS = document.cb['salt'].value;
if (document.cb['spth']) cP = document.cb['spth'].value;
if (document.cb['schk']) cC = document.cb['schk'].value;
if (cN == 'undefined') cN = '';
if ( (id > 0) && ( (c) && (c != 'Your comment here') ) ) {
loadMsg = '<div class="mid" style="padding-top:47px;">'+ getH('loading') +'</div>';
p = 'c='+ c +'&cN='+ (cN ? cN : '') +'&cS='+ (cS ? cS : '') +'&cP='+ (cP ? cP : '') +'&cC='+ (cC ? cC : '');
page('rc/commentAdd.php?id='+ id,'commentBox',p,p.length);
setTimeout('commentAddStatus('+ id +')',gTime2);
} else {
window.location = '/';
}
}
function formPost(fId,action,id) {
var i,v,x = document.getElementById(fId);
var tmp
for (i=0;i<x.length;i++) {
tmp = x.elements[i].name ;
v = v +'&'+ x.elements[i].name +'='+ postSafe(x.elements[i].value);
}
page('rc/'+ action,id,v,v.length);
}
function postSafe(s) {
if (s) {
s = s.replace(/%/g,'%25');
s = s.replace(/&/g,'%26');
s = s.replace(/\+/g,'%2B');
s = s.replace(/=/g,'%3D');
}
return s;
}
function loadPage(http, id, url){
if ( (http.readyState == 4) && (http.status == 200 || window.location.href.indexOf("http") == -1) ) {
setH(id,http.responseText);
if (_uacct != 'dev') urchinTracker(url);
}
}
function page(url, id, pData, pBytes){
var http = false;
setH(id,loadMsg);
if (window.XMLHttpRequest) { // if Mozilla, Safari etc
http = new XMLHttpRequest()
} else if (window.ActiveXObject){ // if IE
try {
http = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e) {
try {
http = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e) {}
}
} else {
return false;
}
if (bustCache) bustCacheParam=(url.indexOf("?")!=-1)? "&"+ new Date().getTime() : "?"+ new Date().getTime();
if (pData) {
http.open('POST', url+bustCacheParam, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", pBytes);
http.setRequestHeader("Connection", "close")
http.onreadystatechange = function(){
loadPage(http, id, url)
}
http.send(pData);
} else {
http.open('GET', url+bustCacheParam, true);
http.onreadystatechange = function(){
loadPage(http, id, url)
}
http.send(null);
}
}
function htmlMe(hOpen,hClose,fObj) {
var tPre, t, tPost;
var tStart = 0;
if (fObj.setSelectionRange) {
tStart = fObj.selectionStart + 0;
tPre = fObj.value.substr(0,tStart);
t = fObj.value.substr(fObj.selectionStart,fObj.selectionEnd - fObj.selectionStart);
tPost = fObj.value.substr(fObj.selectionEnd);
fObj.value = tPre + hOpen + t + hClose + tPost;
} else {
t = document.selection.createRange().text;
if (t != "") {
tPost = hOpen + t + hClose;
document.selection.createRange().text = tPost;
} else {
alert('Problem:\nSelect some text that you have typed first\nor you are using a unsupported browser.');
return false;
}
}
}
function faq(id) {
divHide('faqM');
divHide('faqS1');
divHide('faqS2');
divHide('faqH');
divHide('faqT');
divShow(id);
}
function lvlDl(lId,lNm,dlH) {
if (! dlH) {
dlH = 'lvl';
}
if (dlH == 'filefront') {
window.open('/dl.php?id='+ lId +'&ftp='+ dlH +'&zip='+ lNm,'_blank');
} else {
window.open('/dl.php?id='+ lId +'&ftp='+ dlH +'&zip='+ lNm,dlH +'Dl',"scrollbars='yes',resizable='yes',status='yes',width=620,height=380");
}
}
var sStr, sStrDelay = null;
function qSearch(qId,id) {
sStr = '';
clearTimeout(sStrDelay);
if (document.getElementById(qId).value) qSearchLoop(qId,id);
else sStrDelay = setTimeout('qSearchLoop("'+ qId +'","'+ id +'")',750);
}
function qSearchLoop(qId,id) {
var tmp = loadMsg;
if (sStr != document.getElementById(qId).value) {
sStr = document.getElementById(qId).value;
loadMsg = getH(id);
page('/rc/searchQuick.php?q='+ escape(sStr),id);
loadMsg = tmp;
divShow(id);
sStrDelay = setTimeout('qSearchLoop("'+ qId +'","'+ id +'")',1200);
} else {
sStrDelay = setTimeout('qSearchLoop("'+ qId +'","'+ id +'")',250);
}
}
function qSearchClose(id) {
clearTimeout(sStrDelay);
setH(id,'');
divHide(id);
}
var mousePos;
var cDiv;
var dDiv = new Array();
var mDownPos;
function panoMove(cId,dId,dCount,size,h,v) {
mDownPos = mousePos;
cDiv = getPosition(document.getElementById(cId));
for(var i=0;i<dCount;i++) {
var tmp = getPosition(document.getElementById(dId + i));
if (! dDiv[i]) dDiv[i] = new Array();
dDiv[i]['y'] = tmp.y;
dDiv[i]['x'] = tmp.x;
dDiv[i]['diffY'] = (dDiv[i].y - cDiv.y - mDownPos.y);
dDiv[i]['diffX'] = (dDiv[i].x - cDiv.x - mDownPos.x);
dDiv[i]['id'] = dId;
dDiv[i]['size'] = size;
dDiv[i]['h'] = h;
dDiv[i]['v'] = v;
}
}
function panoStop() {
for(var i=0;i<dDiv.length;i++) {
dDiv[i] = false;
}
}
function getPosition(e) {
var lft = 0, tp = 0;
while (e.offsetParent) {
lft += e.offsetLeft;
tp += e.offsetTop;
e = e.offsetParent;
}
lft += e.offsetLeft;
tp += e.offsetTop;
return { x:lft, y:tp };
}
function mouseMove(ev){
ev = ev || window.event;
mousePos = mouseCoords(ev);
if ( (mDownPos) && (cDiv) && (dDiv) ) {
for(var i=0;i<dDiv.length;i++) {
if (dDiv[i]['h']) {
if ((mousePos.x + dDiv[i]['diffX']) < (dDiv[i]['size'] * -1)) dDiv[i]['diffX'] = dDiv[i]['diffX'] + (dDiv[i]['size'] * dDiv.length);
if ((mousePos.x + dDiv[i]['diffX']) >= (dDiv[i]['size'] * (dDiv.length - 1))) dDiv[i]['diffX'] = dDiv[i]['diffX'] - (dDiv[i]['size'] * dDiv.length);
document.getElementById(dDiv[i]['id'] + i).style.left = (mousePos.x + dDiv[i]['diffX']) +'px';
}
}
return false;
}
}
function mouseCoords(ev){
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop  - document.body.clientTop
};
}
function setCookie(name, value, days, path, domain, secure) {
var expdate = new Date();
expdate.setTime(expdate.getTime() + days*24*60*60*1000);
var curCookie = name + "=" + escape(value) + ((expdate) ? "; expires=" + expdate.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
document.cookie = curCookie;
}
function gTrack(url) {
if (_uacct != 'dev') urchinTracker(url);
}
function bioChkClr() {
if (tmpDelay) clearTimeout(tmpDelay);
}
function bioChk() {
if (tmpDelay) clearTimeout(tmpDelay);
if (tmpData != getV('bioEditTxt')) {
divShow('bioSave');
} else if ((tmpData == getV('bioEditTxt')) && (document.getElementById('bioSave').style.display == 'block')) {
divHide('bioSave');
}
tmpDelay = setTimeout('bioChk()',gTime2);
}
function bioMode() {
var d = document.getElementById('bioEditBut');
if (d.innerHTML == 'Edit') {
d.innerHTML = 'Cancel edit';
tmpData = getV('bioEditTxt');
} else {
d.innerHTML = 'Edit';
divHide('bioSave');
}
divToggle('bioBody');
divToggle('bioEdit');
}
function bioUpdate() {
if (tmpDelay) clearTimeout(tmpDelay);
var b = getV('bioEditTxt');
loadMsg = '<div class="mid"><p />Updating bio ...</div>';
if (b) b = 'bio='+ postSafe(b);
else b = 'bio=';
bioMode();
page('/rc/bioUpdate.php','bioBody',b,b.length);
}
function avtChk() {
if (tmpDelay) clearTimeout(tmpDelay);
if (getH('avtOk') != 'ok') {
tmpDelay = setTimeout('avtChk()',gTime2);
return false;
} else {
setH('mbUpdate','');
avtLst.load();
}
}
var avtLst = {
load: function() {
A = document.getElementById('avatarMain');
var im = '';
var i = 0;
for (i in A.getElementsByTagName('img')) {
im = A.getElementsByTagName('img')[i];
if (im.id) {
im.onclick = avtLst.click;
im.onmouseover = avtLst.over;
im.onmouseout = avtLst.out;
}
}
},
over: function() {
this.className = 'avtOvr';
},
out: function() {
this.className = 'pad8';
},
click: function() {
document.getElementById('mbAvt').src = this.src;
page('/rc/avatarUpdate.php?d=1&a='+ escape(this.src),'mbUpdate');
ssClose();
}
}
function tableChk(ok,tName) {
if (tmpDelay) clearTimeout(tmpDelay);
if (getH(ok) != 'ok') {
tmpDelay = setTimeout('tableChk("'+ ok +'","'+ tName +'")',gTime2);
return false;
} else {
dTable.load(tName);
}
}
var dList = 'abcdef';
var dTable = {
load: function(id) {
T = document.getElementById(id);
var i = 0;
var td, d = '';
for (i in T.getElementsByTagName('td')) {
td = T.getElementsByTagName('td')[i];
if (td.id) {
td.onmouseover = dTable.over;
td.onmouseout = dTable.out;
}
}
},
over: function() {
var x = this.id.substr(1);
for (i=0;i<dList.length;i++) {
if (document.getElementById(dList[i] + x)) {
document.getElementById(dList[i] + x).className = document.getElementById(dList[i] + x).className +' rwOvr';
}
}
if (document.getElementById('z'+ x)) divShow('z'+ x);
if (document.getElementById('p'+ x)) {
if (getH('z'+ x) == 'Loading...') {
var tmp = getH('p'+ x);
var q = tmp.split('|');
var qs = '?';
var loadMsg
if (q[1]) {
for(i=1;i<q.length;i++) {
qs += q[i] +'='+ q[(i + 1)] +'&';
i++;
}
}
loadMsg = 'Loading...';
page('rc/'+ q[0] +'.php'+ qs,'z'+ x);
}
}
},
out: function() {
var x = this.id.substr(1);
for (i=0;i<dList.length;i++) {
if (document.getElementById(dList[i] + x)) {
document.getElementById(dList[i] + x).className = document.getElementById(dList[i] + x).className.replace(/ rwOvr/g,'');
}
}
if (document.getElementById('z'+ x)) divHide('z'+ x);
}
}

