var tip_cache = new Array();

function createRequestObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version>= 5)
			try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
					try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
					catch (E) {xmlhttp = false;}
			}
	@else
		xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
			try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
	}
	return xmlhttp;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
	}
	return curleft;
}
function overlib(str)
{
	coolTip(str,PUID,'div1');
}
function compareitems(id1,slot)
{
	compareitems(window.event,id1,slot);
}

function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

function compareitems(e,id1,slot)
{
	ajaxload('items',id1,3,0,0);
	var slotitem = document.getElementById(slot);
	if(slotitem)
	{
		var pos = getPosition(e);
		if((pos.x+400) > screen.width)
			var offx = -210;
		else
			var offx = 210;
		ajaxload('items',slotitem.value,'2',offx,0);
	}
}

function ajaxload(type,id,dv,offx,offy)
{
   try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
   } catch (e) {
   }
	if(!tip_cache[type+"|"+id])
	{
		if(offx > 0 && offy > 0)
			coolTip("Loading",PUID,"div"+dv,OFFSETX,offx,OFFSETY,offy);
		else if(offx > 0)
			coolTip("Loading",PUID,"div"+dv,OFFSETX,offx);
		else if(offy > 0)
			coolTip("Loading",PUID,"div"+dv,OFFSETY,offy);
		else
			coolTip("Loading",PUID,"div"+dv);
		playanim(type+"|"+id,1,dv);	
		var http = new createRequestObject();
		http.onreadystatechange = function() {
			if(http.readyState == 4){
				tip_cache[type+"|"+id] = http.responseText;
				var response = http.responseText;
				testload(dv,response,type);			
			}
		}

		reqURL = "/ajaxtip.php?table=" + type+"&id="+id;
		http.open('get',reqURL,true);
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		http.send(null);
	} else
	{
		if(offx > 0 && offy > 0)
			coolTip(tip_cache[type+"|"+id],PUID,"div"+dv,OFFSETX,offx,OFFSETY,offy);
		else if(offx > 0)
			coolTip(tip_cache[type+"|"+id],PUID,"div"+dv,OFFSETX,offx);
		else if(offy > 0)
			coolTip(tip_cache[type+"|"+id],PUID,"div"+dv,OFFSETY,offy);
		else
			coolTip(tip_cache[type+"|"+id],PUID,"div"+dv);
		testload(dv,tip_cache[type+"|"+id],type);
	}
}

function playanim(key,num,dv)
{
	if(!tip_cache[key])
	{
		var txt = "";
		if(num == 1)
			txt = ".";
		if(num == 2)
			txt = "..";
		if(num == 3)
			txt = "...";
		testload(dv,"Loading"+txt);
		setTimeout("playanim('"+key+"',"+((num+1)%4)+",'"+dv+"')",200);
	}
}

function testload(id,text,type)
{
	//document.getElementById("div"+id).innerHTML = '<table bgcolor="#61676c" border="0" cellpadding="1" cellspacing="0" width="200"><tbody><tr><td><table bgcolor="#171b1e" border="0" cellpadding="2" cellspacing="0" width="100%"><tbody><tr><td valign="top"><font color="#FFFFFF" face="Verdana,Arial,Helvetica" size="1">'+text+'</font></td></tr></tbody></table></td></tr></tbody></table>';
	if (type != 'items') { 
		document.getElementById("div"+id).innerHTML = '<table bgcolor="#171b1e" border="1" cellpadding="0" cellspacing="0" width="200"><tbody><tr><td valign="top"><font color="#FFFFFF" face="Verdana,Arial,Helvetica" size="1">'+text+'</font></td></tr></tbody></table>';
	} else { document.getElementById("div"+id).innerHTML = text; }
}

function flipstatus(id)
{
	var node = document.getElementById("h"+id);
	if(node.style.display == "none")
	{
		node.style.display = "block";
	} else
	{
		node.style.display = "none";
	}
}

var included_files = new Array();

function include_once(script_filename) {
    if (!in_array(script_filename, included_files)) {
        included_files[included_files.length] = script_filename;
        include_dom(script_filename);
    }
}

function in_array(needle, haystack) {
    for (var i = 0; i < haystack.length; i++) {
        if (haystack[i] == needle) {
            return true;
        }
    }
    return false;

}

function loadandshow(path, id)
{
	var id2 = id;
	id = 'showtooltip' + id;
	include_once(path);
	if(window[id])
		return window[id]();
	else
	{
		//setTimeout("coolTip(loadandshow('"+path+"',"+id2+"))",800);
		return 'Loading';
	}
}

function showcoords(e,id,imgid)
{
	var img = document.getElementById("map");
	if(!img)
		img = document.getElementById("map"+id);
	if (!e) var e = window.event;
	// gets the actual click point
	x = e.clientX?(e.clientX):img.offsetLeft;
	y = e.clientY?(e.clientY):img.offsetTop;
	x = x - findPosX(img) + document.documentElement.scrollLeft;
	y = y - findPosY(img) + document.documentElement.scrollTop;
	var txt = document.getElementById("coorddis");
	if(!txt)
		txt = document.getElementById("coorddis"+id);
	var bounds = new Array();
	//bounds[44] = '0W|65335E|0N|65336S';
	var offsets = document.getElementById("offsets");
	if (!offsets) { offsets = document.getElementById("offsets"+id); }
	if (offsets) { offsets = offsets.value; }
	var extents = document.getElementById("extents");
	if (!extents) { extents = document.getElementById("extents"+id); }
	if (extents) { extents = extents.value; }
	if(!bounds[imgid] && !extents)
		return;
	if (offsets && extents) { 
		var offsets_array = offsets.split(",");
		var extents_array = extents.split(",");
		bounds[imgid] = offsets_array[0]+'E|'+extents_array[1]+'E|'+offsets_array[1]+'N|'+extents_array[0]+'N';
	} else if (extents) { 
		var extents_array = extents.split(",");
		bounds[imgid] = '0E|'+extents_array[1]+'E|0N|'+extents_array[0]+'N';
	} 
	var coords = bounds[imgid].split("|");
	var regex = new RegExp("([\\d|\\.]+)([W|E|N|S])");
	var matches = regex.exec(coords[0]);
	var west = matches[1];
	if(matches[2] == "W")
		west *= -1;
	matches = regex.exec(coords[1]);	
	var east = matches[1];
	if(matches[2] == "W")
		east *= -1;
	matches = regex.exec(coords[2]);	
	var north = matches[1];
	if(matches[2] == "S")
		north *= -1;
	matches = regex.exec(coords[3]);	
	var south = matches[1];
	if(matches[2] == "S")
		south *= -1;
	var distx = Math.abs(west-east);
	var disty = Math.abs(north-south);
	if((north < 0) && (south < 0))
		disty *= -1;		
	var percentx = x / 640;
	if(north > 0)
		y *= -1;
	var percenty = y / 480;
	var absdistx = (Math.round((distx *percentx)*10)/10)+(Math.round(west*10)/10);
	var absdisty = (Math.round((disty *percenty)*10)/10)+(Math.round(north*10)/10);
	//txt.innerHTML = east+", "+west;
	if(absdistx < 0) {
		var xtxt = Math.round((absdistx*-1)*10)/10;
		if (!extents) { xtxt += " W"; }
	} else {
		var xtxt = Math.round(absdistx*10)/10;
		if (!extents) { xtxt += " E"; }
	}
	if(absdisty < 0) {
		var ytxt = Math.round((absdisty*-1)*10)/10;
		if (!extents) { xtxt += " S"; }
	} else {
		var ytxt = Math.round(absdisty*10)/10;
		if (!extents) { xtxt += " N"; }
	}
	txt.innerHTML = xtxt+", "+ytxt;
}

function getcoords(x,y,imgid)
{
	var img = document.getElementById("map");
	if (!e) var e = window.event;
	// gets the actual click point
	var bounds = new Array();
//	bounds[47] = '60.5W|32.2W|1.0S|22.2S';
	if(!bounds[imgid])
		return;
	var coords = bounds[imgid].split("|");
	var regex = new RegExp("([\\d|\\.]+)([W|E|S|N])");
	var matches = regex.exec(coords[0]);
	var west = matches[1];
	if(matches[2] == "W")
		west *= -1;
	matches = regex.exec(coords[1]);	
	var east = matches[1];
	if(matches[2] == "W")
		east *= -1;
	matches = regex.exec(coords[2]);	
	var north = matches[1];
	if(matches[2] == "S")
		north *= -1;
	matches = regex.exec(coords[3]);	
	var south = matches[1];
	if(matches[2] == "S")
		south *= -1;
	var distx = Math.abs(west-east);
	var disty = Math.abs(north-south);
	if((north < 0) && (south < 0))
		disty *= -1;		
	var percentx = x / 640;
	if(north > 0)
		y *= -1;
	var percenty = y / 480;
	var absdistx = (Math.round((distx *percentx)*10)/10)+(Math.round(west*10)/10);
	var absdisty = (Math.round((disty *percenty)*10)/10)+(Math.round(north*10)/10);
	//txt.innerHTML = east+", "+west;
	if(absdistx < 0)
		var xtxt = Math.round((absdistx*-1)*10)/10+" W";
	else
		var xtxt = Math.round(absdistx*10)/10+" E";
	if(absdisty < 0)
		var ytxt = Math.round((absdisty*-1)*10)/10+" S";
	else
		var ytxt = Math.round(absdisty*10)/10+" N";
	return xtxt+", "+ytxt;
}




function resize(id,entryid,zone,url,type)
{
	var img = document.getElementById('img'+id);
	var sizexe = document.getElementById('sizex');
	var sizeye = document.getElementById('sizey');
	if(sizexe.value == 501)
	{
		x= 751;
		sizexe.value=751;
	}
	else
	{
		x= 501;
		sizexe.value=501;
	}
	if(sizeye.value == 334)
	{
		y = 501;
		sizeye.value=501;
	}
	else
	{
		y = 334;
		sizeye.value=334;
	}
	img.src = url + "zonemap.php?"+type+"="+entryid+"&zone="+zone+"&sizex="+x+"&sizey="+y;
}

function include_dom(script_filename) {
    var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	return curtop;
}
function test()
{
	var w = document.myform.imagecount.selectedIndex;
	var chosen = document.myform.imagecount.options[w].text;
	var i;
	for(i = 0; i <= 10; i++)
	{
		var insert = document.getElementById('f'+(i-1));
		if (insert)
		{
			if (chosen < i)
			{
				insert.style.display = "none";
			} else
			{
				insert.style.display = "block";
			}
		}
	}
}
function clickapproveall(val)
{
	var cnt;
	for(cnt = 0; cnt < document.myform.length;cnt++)
	{
		var el = document.getElementById("approves"+cnt);
		if (el.type == 'checkbox')
		{
			el.checked = val;	
		}
		var el = document.getElementById("denys"+cnt);
		if (el.type == 'checkbox')
		{
			if (val != false)
			{
				el.checked = !val;	
			}
		}		
	}
}
function clickdenyall(val)
{
	var cnt;
	for(cnt = 0; cnt < document.myform.length;cnt++)
	{
		var el = document.getElementById("denys"+cnt);
		if (el.type == 'checkbox')
		{
			el.checked = val;	
		}
		var el = document.getElementById("approves"+cnt);
		if (el.type == 'checkbox')
		{
			if (val != false)
			{
				el.checked = !val;	
			}
		}		
	}
}
function addclick(map,e)
{
	if (!e) var e = window.event;
// gets the actual click point
xPosition = e.clientX?(e.clientX):document.getElementById("map"+map).offsetLeft;
yPosition = e.clientY?(e.clientY):document.getElementById("map"+map).offsetTop;
xPosition = xPosition - findPosX(document.getElementById("map"+map)) + document.documentElement.scrollLeft;
yPosition = yPosition - findPosY(document.getElementById("map"+map)) + document.documentElement.scrollTop;
//xPosition = xPosition - (document.body.scrollLeft * 2);
//yPosition = yPosition - (document.body.scrollTop * 2);
var cl = document.getElementById("click"+map);
var lvl = prompt("Level?","");
//set the hidden click input for that map
cl.value = cl.value + xPosition + "," + yPosition + ":" + lvl + "|";
document.myform.submit();
}
function setReply(id, tit)
{
	var pr = document.getElementById("parent");
	pr.value = id;
	var title = document.getElementById("title");
	title.value = "Re:" + tit;
	var mk = document.getElementById("markItUp");
	mk.innerHTML = "";
	var cheader = document.getElementById("comment_header");
	cheader.innerHTML = "Reply to Comment &nbsp;&nbsp;<a href='javascript:void(0);' onclick='makeNew()' style='font-size:14px'>[Add new Comment]</a>";
}

var buts;


function setCancel(id, mess)
{
	var cnt = document.getElementById(id);
	var str;
	str = '<tr><td align="left" valign="top" colspan=2>'+mess+'</td></tr><tr id="tr'+id+'">'+buts+'</tr>';
	cnt.innerHTML = str;

	updateid = 0;
	//alert(buts);
}

function setEdit(id, parentid, tit, mess, table, nid)
{
	updateid = id;
	var cnt = document.getElementById(id);
	buts = document.getElementById("tr"+id).innerHTML;
	
	var str = '<form action="' + document.getElementById("comform").action + '" target = "comframe" action="/db/comup.php" method="post" style="display: inline;">';
	
	str = str + '<input type="hidden" name="isajax" value="1">\
				<input type="hidden" name="MAX_FILE_SIZE" value="1048576">\
				<input type="hidden" name="table" value="' + table + '">\
				<input type="hidden" name="id" value="' + nid + '">\
				<input type="hidden" name="myedit" id="myedit'+id+'" value="">\
				<input type="hidden" id="parent'+id+'" name="parent" value="0">\
				<table cellspacing="2" cellpadding="0" border="0">';
				
	str = str + '<tr><td><b>Subject:</b></td><td><input type="text" name="title" id="title'+id+'" size="30" /></td></tr>\
				<tr><td><b>Comment:</b></td><td><textarea id="markItUp'+id+'" name="text" cols="50" rows="5"></textarea></td></tr>\
				<tr><td><input type="submit" name="submit" id="comsubmit'+id+'" value="Update" /></td><td align="right" valign="top" colspan=2><a href="javascript:void();" onclick="setCancel('+id+', \''+mess+'\');">[Cancel]</a></td> </tr></table></form>';
				
	str = str + "</form>";

	str = '<tr><td align="left" valign="top" colspan=2>' + str + '</td></tr>';
	
	cnt.innerHTML = str;
	
	var pr = document.getElementById("parent"+id);
	pr.value = parentid;
	var title = document.getElementById("title"+id);
	title.value = tit;
	var ed = document.getElementById("myedit"+id);
	ed.value = id;
	var mk = document.getElementById("markItUp"+id);
	mk.innerHTML = mess;
	//var cheader = document.getElementById("comment_header");
	//cheader.innerHTML = "Edit Your Comment &nbsp;&nbsp;<a href='javascript:void(0);' onclick='makeNew()' style='font-size:14px'>[Add new Comment]</a>";
	
}

function makeNew()
{
	var pr = document.getElementById("parent");
	pr.value = "0";
	var title = document.getElementById("title");
	title.value = "";
	var ed = document.getElementById("myedit");
	ed.value = "";
	var mk = document.getElementById("markItUp");
	mk.innerHTML = "";
	var cheader = document.getElementById("comment_header");
	cheader.innerHTML = "Add Your Comment";	
}

function hidenodes()
{
	var type = document.getElementById("ntype").value;
	var mtype = document.getElementById("mtype").value;
	var cl = document.getElementById("click");
	var data = document.getElementById("data").value;
	var ename = document.getElementById("mlist").value;
	var dts = data.split("|");
	var click = cl.value;
	var clicks = click.split(";");
	var icsarr = document.getElementById("icons").value.split("|");
	var show = 0;
	for(var n = 0;n < clicks.length;n++)
	{
		if(clicks[n] == "")
			continue;
		var names = clicks[n].split("{");
		var name = names[1];
		var pos = names[0].split("|");				
		var tp = names[1].split("[");
		var cnt = 0;
		if(type != "")
		{
			while(document.getElementById("pop"+n+"s"+cnt))
			{
				var elem = document.getElementById("pop"+n+"s"+cnt);
				if(icsarr[n] != type)
				{
					show = 1;
					elem.style.display = "none";
				} else
				{
					elem.style.display = "block";
				}
				cnt++;
			}
			if(show > 0)
				continue;
		}
		cnt = 0;
		if(mtype != "")
		{
			while(document.getElementById("pop"+n+"s"+cnt))
			{
				var elem = document.getElementById("pop"+n+"s"+cnt);
				var txt = new String(dts[n]);
				
				if((txt == "") && (mtype != ""))
				{
					elem.style.display = "none";
					cnt++;
					continue;
				}
				if(txt.indexOf(mtype) != -1)
				{
					elem.style.display = "block";
				} else
				{
					elem.style.display = "none";
				}
				cnt++;
			}
		}
		cnt = 0;
		if(ename != "")
		{
			while(document.getElementById("pop"+n+"s"+cnt))
			{
				var elem = document.getElementById("pop"+n+"s"+cnt);
				if(elem.id != ename)
					elem.style.display = "none";
				else
					elem.style.display = "block";
				cnt++;
			}
		}
		if((type == "") && (mtype == "") && (ename == ""))
		{
			cnt = 0;
			var elem = document.getElementById("pop"+n+"s"+cnt);
			while(elem != null)
			{
				elem.style.display = "block";
				cnt++;
				elem = document.getElementById("pop"+n+"s"+cnt);
			}
		}
	}	

}

function hidenodesnew(mapid)
{
	var type = document.getElementById("ntype"+mapid).value;
	var mtype = document.getElementById("mtype"+mapid).value;
	var cl = document.getElementById("click"+mapid);
	var data = document.getElementById("data"+mapid).value;
	var dts = data.split("|");
	var click = cl.value;
	var clicks = click.split(";");
	var show = 0;
	for(var n = 0;n < clicks.length;n++)
	{
		if(clicks[n] == "")
			continue;
		var names = clicks[n].split("{");
		var name = names[1];
		var pos = names[0].split("|");				
		var tp = names[1].split("[");
		var cnt = 0;
		if(type != "")
		{
			while(document.getElementById("pop"+n+"s"+cnt+"m"+mapid))
			{
				var elem = document.getElementById("pop"+n+"s"+cnt+"m"+mapid);
				if(tp[1] != type)
				{
					show = 1;
					elem.style.display = "none";
				} else
				{
					elem.style.display = "block";
				}
				cnt++;
			}
			if(show > 0)
				continue;
		}
		cnt = 0;
		if(mtype != "")
		{
			while(document.getElementById("pop"+n+"s"+cnt+"m"+mapid))
			{
				var elem = document.getElementById("pop"+n+"s"+cnt+"m"+mapid);
				var txt = new String(dts[n]);
				
				if((txt == "") && (mtype != ""))
				{
					elem.style.display = "none";
					cnt++;
					continue;
				}
				if(txt.indexOf(mtype) != -1)
				{
					elem.style.display = "block";
				} else
				{
					elem.style.display = "none";
				}
				cnt++;
			}
		}
		if((type == "") && (mtype == ""))
		{
			cnt = 0;
			var elem = document.getElementById("pop"+n+"s"+cnt+"m"+mapid);
			while(elem != null)
			{
				elem.style.display = "block";
				cnt++;
				elem = document.getElementById("pop"+n+"s"+cnt+"m"+mapid);
			}
		}
	}	

}

function detectnew(e, mapid,mpid)
{
	if (!e) var e = window.event;
	showcoords(e,mapid,mpid);
// gets the actual click point
x = e.clientX?(e.clientX):document.getElementById("map"+mapid).offsetLeft;
y = e.clientY?(e.clientY):document.getElementById("map"+mapid).offsetTop;
x = x - findPosX(document.getElementById("map"+mapid)) + document.documentElement.scrollLeft;
y = y - findPosY(document.getElementById("map"+mapid)) + document.documentElement.scrollTop;
var cl = document.getElementById("click"+mapid);
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data"+mapid).value;
var names2 = document.getElementById("names"+mapid).value.split("|");
var dts = data.split("|");
var txts = new Array();
txts[0] = "Landmark";
txts[1] = "NPC";
txts[2] = "Quest";
txts[3] = "NPC";
txts[4] = "Quest NPC";
for (var n = 0; n < clicks.length;n++)
{
	var names = clicks[n].split("{");
	var name = names[1];
	var pos = names[0].split("|");
	for(var m = 0; m < pos.length; m++)
	{
		var lvls = pos[m].split(":");
		var ps = lvls[0].split(",");
		if (names[1])
		{
			var tp = names[1].split("[");
		}
		var obj = document.getElementById("pop"+n+"s"+m+"m"+mapid);
		if ((ps[0] > (x - 10)) && (ps[0] < (x + 10)) && (ps[1] > (y - 10)) && (ps[1] < (y + 10)))
		{
			if(obj.style.display != "none")
			{
				obj.style.backgroundColor = '#FF0000';
				coolTip(dts[n], CAPTION,(names2[n] + ' (' + txts[tp[1]] + ')'));
				return
			}
		} else
		{
			if(obj)
				obj.style.backgroundColor = '';
			//nd();
		}
	}
}
}

function buildnodesnew(mapid,mpid)
{
var cl = document.getElementById("click"+mapid);
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data"+mapid).value;
var ids = document.getElementById("ids"+mapid).value;
var names2 = document.getElementById("names"+mapid).value.split("|");
var idsa = ids.split("|");
var dts = data.split("|");
var icsarr = document.getElementById("icons"+mapid).value.split("|");
var ics = new Array();
ics[1] = 'barrel.gif';
ics[2] = 'chest.gif'
ics[3] = 'dragon.gif';
ics[4] = 'monster.gif';
ics[5] = 'node.gif';
ics[6] = 'quest.gif';
ics[7] = 'shrine.gif';
ics[8] = 'trap.gif';
ics[9] = 'human.gif';
ics[10] = 'ring.gif';
ics[11] = 'eye.gif';

var scale = '16x16';
if (clicks.length > 10) { scale = '12x12'; }
if (clicks.length > 20) { scale = '12x12'; }
if (clicks.length > 30) { scale = '10x10'; }

//new icons
ics[1] = 'icons/'+scale+'/ico-o.gif';
ics[2] = 'icons/'+scale+'/ico-c.gif';
ics[3] = 'icons/'+scale+'/ico-b.gif';
ics[4] = 'icons/'+scale+'/ico-m.gif';
ics[5] = 'icons/'+scale+'/ico-o.gif';
ics[6] = 'icons/'+scale+'/ico-q.gif';
ics[9] = 'icons/'+scale+'/ico-n.gif';
ics[10] = 'icons/'+scale+'/ico-q.gif';

var txt = '';
for (var n = 0; n < clicks.length;n++)
{
	var names = clicks[n].split("{");
	var name = names[1];
	var pos = names[0].split("|");
	for(var m = 0; m < pos.length; m++)
	{
		var lvls = pos[m].split(":");
		var ps = lvls[0].split(",");
		if (names[1])
		{
			var tp = names[1].split("[");
		}
		if((ps[0] == 'undefined') || (ps[1] == 'undefined') || (ps[0] == 0) || ( ps[1] == 0) || (ps[0] < 0) || (ps[1] < 0))
		{

		} else
		{
			var tx = (parseInt(ps[0]))-8;
			var ty = (parseInt(ps[1]))-8;

			txt += '<img id="pop'+n+'s'+m+'m'+mapid+'" src="http://www.mmodb.com/images/'+ics[icsarr[n]]+'" style="position:absolute;left: '+tx+'px;top: '+ty+'px;cursor: pointer;" onmouseover="detectnew(event,'+mapid+','+mpid+');" onmouseout="nd();" onclick="linkclicknew(event,'+mapid+');">';
			//addnode('http://www.mmodb.com/DB/'+ics[icsarr[n]],tx,ty);
		}
	}
}
document.write(txt);
}
function linkclicknew(e, mapid)
{
	if (!e) var e = window.event;
// gets the actual click point
x = e.clientX?(e.clientX):document.getElementById("map"+mapid).offsetLeft;
y = e.clientY?(e.clientY):document.getElementById("map"+mapid).offsetTop;
x = x - findPosX(document.getElementById("map"+mapid)) + document.documentElement.scrollLeft;
y = y - findPosY(document.getElementById("map"+mapid)) + document.documentElement.scrollTop;
var cl = document.getElementById("click"+mapid);
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data"+mapid).value;
var ids = document.getElementById("ids"+mapid).value;
var names2 = document.getElementById("names"+mapid).value.split("|");
var idsa = ids.split("|");
var dts = data.split("|");
for (var n = 0; n < clicks.length;n++)
{
	var names = clicks[n].split("{");
	var name = names[1];
	var pos = names[0].split("|");
	for(var m = 0; m < pos.length; m++)
	{
		var lvls = pos[m].split(":");
		var ps = lvls[0].split(",");
		if (names[1])
		{
			var tp = names[1].split("[");
		}		
		if ((ps[0] > (x - 8)) && (ps[0] < (x + 8)) && (ps[1] > (y - 8)) && (ps[1] < (y + 8)) &&(document.getElementById("pop"+n+"s0m"+mapid).style.display != "none"))
		{
			var link = "";
			if (tp[1] > 0) {
				if (tp[1] == "2")
					link += "/quests/";
				else
					link += "/bestiary/";		
				var ts = names2[n].replace(/\s/g,"-").replace(/\./g,"").replace(/\'/,"");
				link += ts.toLowerCase() + "-" + idsa[n] + ".php";			
				top.location.href = link;
			}
			return;
		}
	}
}
}




function detect(e,img,mpid)
{
	if (!e) var e = window.event;
	showcoords(e,0,mpid);
// gets the actual click point
x = e.clientX?(e.clientX):document.getElementById("map").offsetLeft;
y = e.clientY?(e.clientY):document.getElementById("map").offsetTop;
x = x - findPosX(document.getElementById("map")) + document.documentElement.scrollLeft;
y = y - findPosY(document.getElementById("map")) + document.documentElement.scrollTop;
var cl = document.getElementById("click");
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data").value;
var names2 = document.getElementById("names").value.split("|");
var dts = data.split("|");
var txts = new Array();
txts[0] = "Landmark";
txts[1] = "NPC";
txts[2] = "Quest";
txts[3] = "NPC";
txts[4] = "Quest NPC";
var regex = new RegExp("pop(\\w+)s(\\w+)");
var matches = regex.exec(img.id);
var currentclick = clicks[matches[1]];
var names = currentclick.split("{");
var name = names[1];
var pos = names[0].split("|");
var lvls = pos[matches[2]].split(":");
var ps = lvls[0].split(",");
var tp = names[1].split("[");
var obj = document.getElementById("pop"+matches[1]+"s"+matches[2]);
if ((ps[0] > (x - 10)) && (ps[0] < (x + 10)) && (ps[1] > (y - 10)) && (ps[1] < (y + 10)))
{
	if(obj.style.display != "none")
	{
		if(obj)
			obj.style.backgroundColor = '#FF0000';
		 coolTip(dts[matches[1]], CAPTION,(names2[matches[1]] + ' (' + txts[tp[1]] + ')'));
		return;
	}

} else
{
	if(obj)
		obj.style.backgroundColor = '';
	//nd();	
}
}

function addnode(script_filename,x,y)
 {
    var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('img');
    js.setAttribute('style', 'position:absolute;left: '+x+'px;top: '+y+'px;');
    js.setAttribute('onmousemove', 'detect(event);');
    js.setAttribute('onmouseout', 'nd();');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

function fixstyle(obj)
{
	obj.style.backgroundColor = '';
	nd();
}

function moblistentry(id,name,text)
{
	this.id = id;
	this.name = name;
	this.text = text;
}

function sortByName(a, b) {
    var x = a.name.toLowerCase();
    var y = b.name.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function buildmoblist(mpid)
{
var cl = document.getElementById("click");
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data").value;
var ids = document.getElementById("ids").value;
var names2 = document.getElementById("names").value.split("|");
var idsa = ids.split("|");
var dts = data.split("|");
var x = findPosX(document.getElementById("map")) - document.getElementById("map").offsetLeft;
var y = findPosY(document.getElementById("map")) - document.getElementById("map").offsetTop;
var icsarr = document.getElementById("icons").value.split("|");
var txt = '<option value=""></option>';
var moblist = new Array();
var types = new Array();
types[1] = "Landmark";
types[4] = "NPC";
types[5] = "Node";
types[9] = "NPC";
types[6] = "Quest NPC";
for (var n = 0; n < clicks.length;n++)
{
	var names = clicks[n].split("{");
	var name = names[1];
	var pos = names[0].split("|");
	for(var m = 0; m < pos.length; m++)
	{
		var lvls = pos[m].split(":");
		var ps = lvls[0].split(",");
		if (names[1])
		{
			var tp = names[1].split("[");
		}
		if((ps[0] == 'undefined') || (ps[1] == 'undefined') || (ps[0] == 0) || ( ps[1] == 0) || (ps[0] < 0) || (ps[1] < 0))
		{

		} else
		{
			var tx = (parseInt(ps[0]))-8;
			var ty = (parseInt(ps[1]))-8;
			var moblistdesc = "";
			if (types[icsarr[n]]) { moblistdesc += " ("+types[icsarr[n]]+")"; }
			if (getcoords(tx,ty,mpid)) { moblistdesc += " ("+getcoords(tx,ty,mpid)+")"; }
			moblist[moblist.length++] = new moblistentry("pop"+n+"s"+m,names2[n],names2[n]+moblistdesc);
			m = pos.length;			
		}
	}
}
moblist.sort(sortByName);
for(var i = 0;i < moblist.length;i++)
{
	txt += '<option value="'+moblist[i].id+'">'+moblist[i].text+'</option>';
}
document.write(txt);
}

function showtarget(event,id)
{
	//alert(document.getElementById('mlist').value);
	detect(event,document.getElementById(document.getElementById('mlist').value),id);
}

function highlightdot()
{
	//var elid = document.getElementById("mlist").value;
	//var target = document.getElementById(elid);
	//var highlight = document.getElementById("highlight");
	//highlight.style.left = target.style.left;
	//highlight.style.top = target.style.top;
	//highlight.style.display = "block";
}

function buildnodes(mpid)
{
var cl = document.getElementById("click");
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data").value;
var ids = document.getElementById("ids").value;
var names2 = document.getElementById("names").value.split("|");
var idsa = ids.split("|");
var dts = data.split("|");
var x = findPosX(document.getElementById("map")) - document.getElementById("map").offsetLeft;
var y = findPosY(document.getElementById("map")) - document.getElementById("map").offsetTop;
var icsarr = document.getElementById("icons").value.split("|");
var ics = new Array();
ics[1] = 'barrel.gif';
ics[2] = 'chest.gif'
ics[3] = 'dragon.gif';
ics[4] = 'monster.gif';
ics[5] = 'node.gif';
ics[6] = 'quest.gif';
ics[7] = 'shrine.gif';
ics[8] = 'trap.gif';
ics[9] = 'human.gif';
ics[10] = 'ring.gif';
ics[11] = 'eye.gif';

var scale = '16x16';
if (clicks.length > 10) { scale = '12x12'; }
if (clicks.length > 20) { scale = '12x12'; }
if (clicks.length > 30) { scale = '10x10'; }

//new icons
ics[1] = 'icons/'+scale+'/ico-o.gif';
ics[2] = 'icons/'+scale+'/ico-c.gif';
ics[3] = 'icons/'+scale+'/ico-b.gif';
ics[4] = 'icons/'+scale+'/ico-m.gif';
ics[5] = 'icons/'+scale+'/ico-o.gif';
ics[6] = 'icons/'+scale+'/ico-q.gif';
ics[9] = 'icons/'+scale+'/ico-n.gif';
ics[10] = 'icons/'+scale+'/ico-q.gif';

var txt = '';
for (var n = 0; n < clicks.length;n++)
{
	var names = clicks[n].split("{");
	var name = names[1];
	var pos = names[0].split("|");
	for(var m = 0; m < pos.length; m++)
	{
		var lvls = pos[m].split(":");
		var ps = lvls[0].split(",");
		if (names[1])
		{
			var tp = names[1].split("[");
		}
		if((ps[0] == 'undefined') || (ps[1] == 'undefined') || (ps[0] == 0) || ( ps[1] == 0) || (ps[0] < 0) || (ps[1] < 0))
		{

		} else
		{
			var tx = (parseInt(ps[0]))-8;
			var ty = (parseInt(ps[1]))-8;			
			txt += '<img id="pop'+n+'s'+m+'" src="http://www.mmodb.com/images/'+ics[icsarr[n]]+'" name="pop'+n+'" style="position:absolute;left: '+tx+'px;top: '+ty+'px;cursor: pointer;_cursor: hand;" onmouseover="detect(event,this,\''+mpid+'\');" onmouseout="fixstyle(this);" onclick="linkclick(event,this);">';
			//addnode('http://www.mmodb.com/DB/'+ics[icsarr[n]],tx,ty);
		}
	}
}
document.write(txt);
}
function linkclick(e,img)
{
	if (!e) var e = window.event;
// gets the actual click point
x = e.clientX?(e.clientX):document.getElementById("map").offsetLeft;
y = e.clientY?(e.clientY):document.getElementById("map").offsetTop;
x = x - findPosX(document.getElementById("map")) + document.documentElement.scrollLeft;
y = y - findPosY(document.getElementById("map")) + document.documentElement.scrollTop;
var cl = document.getElementById("click");
var click = cl.value;
var clicks = click.split(";");
var data = document.getElementById("data").value;
var ids = document.getElementById("ids").value;
var names2 = document.getElementById("names").value.split("|");
var idsa = ids.split("|");
var dts = data.split("|");
var regex = new RegExp("pop(\\w+)s(\\w+)");
var matches = regex.exec(img.id);
var currentclick = clicks[matches[1]];
var names = currentclick.split("{");
var name = names[1];
var pos = names[0].split("|");
var lvls = pos[matches[2]].split(":");
var ps = lvls[0].split(",");
var tp = names[1].split("[");
var obj = document.getElementById("pop"+matches[1]+"s"+matches[2]);
if ((ps[0] > (x - 8)) && (ps[0] < (x + 8)) && (ps[1] > (y - 8)) && (ps[1] < (y + 8)))
{
	if(obj.style.display != "none")
	{
		var link = "";
		if (tp[1] > 0) {
			if (tp[1] != "2")
				link += "/bestiary/";
			else
				link += "/quests/";			
			var ts = names2[matches[1]].replace(/\s/g,"-").replace(/\./g,"").replace(/\'/,"");
			link += ts.toLowerCase() + "-" + idsa[matches[1]] + ".php";			
			top.location.href = link;
		}
		return;
	}
}
}
function setmouse(e)
{
	document.getElementById("map").onmousemove = detect(e);
	return;
}
function clearmap(map)
{
//clear the hidden click input for that map
var cl = document.getElementById("click"+map);
cl.value = "";
document.myform.submit();
}
function setpage(page)
{
	var pg = document.getElementById("page");
	pg.value = page;
	document.myform.submit();
	return;	 
}

function setcontent(table,id)
{
	document.myform.table_name.value = table;
	document.myform.id.value = id;
	document.myform.submit();
	return;	
}

function setlistpage(letter,page)
{
	document.myform.action = letter+page+".php";
	document.myform.submit();
	return;	
}
function setsearchpage(page)
{
	document.myform.page.value = page;
	document.myform.submit();
	return;	
}
function addsort(type,column)
{
	var up = document.getElementById("ASC");
	var down = document.getElementById("DESC");
	document.getElementById("first").value = column;
	var rep = new RegExp(column);
	if(type == "ASC")
	{
		up.value += column + "|";
		down.value = down.value.replace(rep,"");
	} else
	{
		down.value += column + "|";
		up.value = up.value.replace(rep,"");
	}
	document.myform.submit();
	return;	
}
function addsort2(type,column)
{
	var up = document.getElementById("ASC");
	var down = document.getElementById("DESC");
	if(type == "ASC")
	{
	    down.value = "";
        up.value = column;
	} else
	{
        down.value = column;
        up.value = "";
	}
	document.myform.submit();
	return;	
}