var tip_cache = new Array();

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 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)
{
	id = 'showtooltip' + id;
	include_once(path);
	if(window[id])
		return window[id]();
	else
		return '';
}

function overlib(str)
{
	coolTip(str,PUID,'div1');
}

function compareitems(id1,slot)
{
	/*coolTip(loadandshow('http://vg.mmodb.com/items/tooltips/'+id1+'.tt',id1),PUID,'div3');
	if(slot != "")
	{
		var slotitem = document.getElementById(slot);
		if(slotitem)
		{
			coolTip(loadandshow('http://vg.mmodb.com/items/tooltips/'+slotitem.value+'.tt',slotitem.value),PUID,'div2',OFFSETX,200);
		}
	}*/
	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);			
			}
		}

		reqURL = "http://vg.mmodb.com/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]);
	}
}

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)
{
	//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>';
document.getElementById("div"+id).innerHTML = '<table class="'+ol_bgclass+'" border="1" cellpadding="2" cellspacing="0" width="200"><tbody><tr><td valign="top">'+text+'</td></tr></tbody></table>';

}

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;
}
function detect(e)
{
	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 names2 = document.getElementById("names").value.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)))
		{
			overlib(dts[n], CAPTION,(names2[n] + '(' + tp[1] + ')'));
			return;
		} else
		{
			nd();
		}
	}
}}
function linkclick(e)
{
	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 names2 = document.getElementById("names").value.split("|");
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 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)))
		{
			var link = "http://vg.mmodb.com";
			if (tp[1] == "Mob")
				link += "/bestiary/";
			else if (tp[1] == "NPC")
				link += "/npcs/";	
			else if (tp[1] == "Object")
				link += "/objects/";
			var ts = names2[n].replace(/\s/g,"-");
			link += ts.toLowerCase() + "-" + idsa[n] + ".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 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;	
}