// JavaScript Document
function numberformat(num,dec)
{

mul=Math.pow(10,dec);
num=num*mul;
num=Math.round(num);
num = num/mul;
var numstr=String(num);
if(numstr.indexOf(".") == -1)
{
numstr = numstr + ".";
for(nfi=0;nfi<dec;nfi++) numstr = numstr + "0";
}
decpl = numstr.length - numstr.indexOf(".");
decpl = decpl - 1;
if (decpl < dec)
{
for(nfi=decpl;nfi<dec;nfi++) numstr = numstr + "0";
} 
return (numstr);

}

function isValidate(String)
{
	var chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"; //valid chars
	
	for(var i = 0; i < String.length; i++)
	{
		if(chars.indexOf(String.charAt(i)) < 0)
		{
			alert('Invalid Char Found, Only Number and Alphabet Allowed');
			return false;
		}
	}
}

//to display png image, if flag = ture, display in IE5.5 blow; else not display.
function pngDisplay(src, flag)
{
	var retstr;
	if(is_ie5_5up)
	{
		var img = new Image();
		img.src = src;
		
		retstr = "<img src=\"/images/blank.gif\" border=0 style=\"width:"+img.width+"; height:"+img.height+"; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='scale')\" />";
	}
	else if(is_ie5_5below && !flag)
	{
		retstr = "";
	}
	else
	{
		retstr = "<img src='"+src+"' border=0>";
	}
	return retstr;
}


function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie = c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate);
}

function getCookie(c_name)
{
	if(document.cookie.length>0)
  	{
  		c_start=document.cookie.indexOf(c_name + "=");
  		if(c_start!=-1)
    	{ 
    		c_start=c_start + c_name.length+1 ;
    		c_end=document.cookie.indexOf(";",c_start);
    		if (c_end==-1) c_end=document.cookie.length;
    		return unescape(document.cookie.substring(c_start,c_end));
    	}
  	}
	return null;
} 

function checkAvailable(obj, target)
{
	var x = document.getElementById(target);
	var return_msg = "";
	
	var exeurl = "modules/regist/checkuser.php";
	
	if(x.value != '' && x.value.length >=3 && x.value.length <= 14 && (x.value).match(/^([a-z]+)([a-z0-9]+)([a-z0-9]+)$/i))
	{
		var xmlReq = makeReq();
	
		if(xmlReq)
		{
			xmlReq.open("GET", exeurl+'?uname='+x.value, true);
	
			xmlReq.onreadystatechange = function(){
				if(xmlReq.readyState == 4 && xmlReq.status == 200)
				{
					if(xmlReq.responseText == "TRUE")
					{
						return_msg = "&nbsp;&nbsp;<font color='#33CC66'>Congratulations, <b>"+x.value+"</b> is available.</font>";
					}
					else
					{
						return_msg = "&nbsp;&nbsp;Sorry, <b>"+x.value+"</b> is unavailable.";
					}
					obj.disabled = false;
					obj.nextSibling.innerHTML = return_msg;
				}
				else
				{
					obj.disabled = true;
					obj.nextSibling.innerHTML ="&nbsp;&nbsp;<img src='/images/progress_loading.gif' align='center'>&nbsp;Checking...";
				}
			};
			xmlReq.send(null);
		}
		else
		{
			obj.nextSibling.innerHTML = "&nbsp;&nbsp;Sorry, we cannot check the availability of this id at this moment.";
		}
	}
	else
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Sorry, please enter a valid user name.";
	}
}

function checkAvailEmail(obj, target)
{
	var x = document.getElementById(target);
	var return_msg = "";
	
	var exeurl = "modules/regist/checkemail.php";
	
	if(x.value != '' && (x.value).match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i))
	{
		var xmlReq = makeReq();
	
		if(xmlReq)
		{
			xmlReq.open("GET", exeurl+'?email='+x.value, true);
	
			xmlReq.onreadystatechange = function(){
				if(xmlReq.readyState == 4 && xmlReq.status == 200)
				{
					if(xmlReq.responseText == "TRUE")
					{
						return_msg = "&nbsp;&nbsp;<font color='#33CC66'>Congratulations, <b>"+x.value+"</b> is available.</font>";
					}
					else
					{
						return_msg = "&nbsp;&nbsp;Sorry, <b>"+x.value+"</b> is unavailable.";
					}
					obj.disabled = false;
					obj.nextSibling.innerHTML = return_msg;
				}
				else
				{
					obj.disabled = true;
					obj.nextSibling.innerHTML ="&nbsp;&nbsp;<img src='/images/progress_loading.gif' align='center'>&nbsp;Checking...";
				}
			};
			xmlReq.send(null);
		}
		else
		{
			obj.nextSibling.innerHTML = "&nbsp;&nbsp;Sorry, we cannot check the availability of this email at this moment.";
		}
	}
	else
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Sorry, please enter a valid email.";
	}
}

function loadMBar(tag)
{
	var MBarReq = makeReq();
	var rContent = "";
	
	if(MBarReq)
	{
		MBarReq.open("GET", xml_file, true);
	
		MBarReq.onreadystatechange = function(){
			if(MBarReq.readyState == 4 && MBarReq.status == 200)
			{
				rContent = processMBar(MBarReq.responseXML, tag);
				document.getElementById('mBarMain').innerHTML = rContent;
			}
			else
			{
				document.getElementById('mBarMain').innerHTML = "<center><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		MBarReq.send(null);
	}
}

function processMBar(xmlDoc, tag)
{
	var mlist = xmlDoc.getElementsByTagName(tag);
	
	var currNode = "";
	
	var retStr = "";
	
	var curLength = 0;
	
	for(var i = 0; i < mlist.length; i++)
	{
		for(var j = 0; j < mlist[i].childNodes.length; j++)
		{
			currNode = mlist[i].childNodes[j];
			if(currNode.nodeType != 3)	//3 indicate text node
			{
				if(curLength > 45)
				{
					retStr += "<br>";
					curLength = 0;
				}
				
				curLength += currNode.attributes[0].value.length + 3;
				retStr += "|&nbsp;<a class='inpageMenuBar' href='"+currNode.attributes[1].value+"'>"+currNode.attributes[0].value+"</a>&nbsp;";
			}
		}
	}
	
	return retStr;
}

function showMonster(location, lvl, obj)
{
	var imgarr = new Array();
	imgarr[0] = "land_img";
	imgarr[1] = "sea_img";
	imgarr[2] = "boss_img";
	
	var target = "";	//file to execute
	var path = "include/content/gamecontent/";
	
	switch(location)
	{
		case 1: //land
			switch(lvl)
			{
				case 1:	//1-10
					target = "monster01_10.php";
					break;
				case 2:	//11-20
					target = "monster11_20.php";
					break;
				case 3:	//21-30
					target = "monster21_30.php";
					break;
				case 4:	//31-50
					target = "monster31_50.php";
					break;
				case 5:	//51-70
					target = "monster51_70.php";
					break;
				case 6:	//71-80
					target = "monster71_80.php";
					break;
			}
			break;
		case 2: //sea
			switch(lvl)
			{
				case 1:	//25-40
					target = "seamonster25_40.php";
					break;
				case 2:	//41-60
					target = "seamonster41_60.php";
					break;
				case 3:	//61-70
					target = "seamonster61_70.php";
					break;
				case 4:	//71-80
					target = "seamonster71_80.php";
					break;
			}
			break;
		case 3:	//boss
			target = "bossmonster.php";
			break;
	}
	
	if(obj)
	{
		restoreIMGOpa(imgarr);
	
		if(is_ie)
		{
			obj.filters["alpha"].opacity = 100;
		}
		else
		{
			obj.style.opacity = 1;
		}	
	}
	
	var monsterReq = makeReq();
	
	if(monsterReq)
	{
		monsterReq.open("GET", path+target, true);
	
		monsterReq.onreadystatechange = function()
		{
			if(monsterReq.readyState == 4 && monsterReq.status == 200)
			{
				document.getElementById('monsterMain').innerHTML = monsterReq.responseText;	
			}
			else
			{
				document.getElementById('monsterMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		monsterReq.send(null);
	}
}

function showHair(obj, category)
{
	var imgarr = new Array();
	imgarr[0] = "calico_img";
	imgarr[1] = "ami_img";
	imgarr[2] = "carsise_img";
	imgarr[3] = "phyllis_img";
	
	var target = "";	//file to execute
	var path = "include/content/gamecontent/";
	
	switch(category)
	{
		case 1: //lance
			target = "hair_lance.php";
			break;
		case 2: //ami
			target = "hair_ami.php";
			break;
		case 3:	//carsise
			target = "hair_carsise.php";
			break;
		case 4: //phyllis
			target = "hair_phyllis.php";
			break;
	}
	
	restoreIMGOpa(imgarr);
	
	if(is_ie)
	{
		obj.filters["alpha"].opacity = 100;
	}
	else
	{
		obj.style.opacity = 1;
	}
	
	
	var hairReq = makeReq();
	
	if(hairReq)
	{
		hairReq.open("GET", path+target, true);
	
		hairReq.onreadystatechange = function()
		{
			if(hairReq.readyState == 4 && hairReq.status == 200)
			{
				document.getElementById('hairMain').innerHTML = hairReq.responseText;
			}
			else
			{
				document.getElementById('hairMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		hairReq.send(null);
	}
}

function loadSpoiler(obj, city)
{
	var imgarr = new Array();
	imgarr[0] = "shaitan_img";
	imgarr[1] = "icicle_img";
	imgarr[2] = "argent_img";
	
	restoreIMGOpa(imgarr);
	
	if(is_ie)
	{
		obj.filters["alpha"].opacity = 100;
	}
	else
	{
		obj.style.opacity = 1;
	}
	
	var target = "";	//file to execute
	var path = "include/content/getstarted/";
	
	switch(city)
	{
		case 3: //Argent City
			document.getElementById('spoiler_corner').src = "/images/corner/Spoiler/_argentcity.gif";
			target = "spoiler-argent.php";
			break;
		case 2: //Icicle City
			document.getElementById('spoiler_corner').src = "/images/corner/Spoiler/_iciclecity.gif";
			target = "spoiler-icicle.php";
			break;
		case 1: //Shaitan City
		default:
			document.getElementById('spoiler_corner').src = "/images/corner/Spoiler/_shaitancity.gif";
			target = "spoiler-shaitan.php";
			break;
	}
	
	var spoilerReq = makeReq();
	
	if(spoilerReq)
	{
		spoilerReq.open("GET", path+target, true);
	
		spoilerReq.onreadystatechange = function()
		{
			if(spoilerReq.readyState == 4 && spoilerReq.status == 200)
			{
				document.getElementById('spoilerMain').innerHTML = spoilerReq.responseText;
			}
			else
			{
				document.getElementById('spoilerMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		spoilerReq.send(null);
	}
}

function searchNM(target, obj)
{
	var return_msg = "";
	
	var htmltxt = "<table width=\"675\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"40\" height=\"40\"><img src=\"/images/level-pic.gif\" width=\"40\" height=\"40\"></td><td bgcolor=\"#FFCC33\" align=\"center\"><strong><font color=\"#666666\" size=\"4\" face=\"Times New Roman\">Search Results</font></strong></td></tr></table>";
	
	var exeurl = "search.php";
	
	if(obj.category.value == 0)
	{
		alert('Please select the category.');
		obj.category.focus();
	}
	else if(!(obj.sname.value).match(/^[a-z0-9 ]{3,20}$/i) && obj.region.value == 0 && obj.city.value == 0 && obj.ditems.value == "")
	{
		alert('Please provide a basic keyword to start searching.');
		obj.sname.focus();
	}
	else
	{
		var paras = "sname=" + obj.sname.value + "&catid=" + obj.category.value;
		
		if(obj.region.value != 0)
		{
			paras += "&region=" + obj.region.value;
		}
		
		if(obj.category.value == 1 && obj.city.value != 0)	//npc
		{
			paras += "&city=" + obj.city.value;
		}
		
		if(obj.category.value == 2 && obj.ditems.value != "")	//monster
		{
			paras += "&ditems=" + obj.ditems.value;
		}
		
		var xmlReq = makeReq();
		
		if(xmlReq)
		{
			xmlReq.open("POST", exeurl, true);
			
			document.getElementById(target).style.display = "block";
			
			xmlReq.onreadystatechange = function(){
				if(xmlReq.readyState == 4 && xmlReq.status == 200)
				{
					return_msg = processSearchRS(xmlReq.responseXML, obj.category.value, obj.sname.value, obj.ditems.value);
					document.getElementById(target).innerHTML = htmltxt + return_msg;
				}
				else
				{
					return_msg = "<center>&nbsp;&nbsp;<img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#009933'>Searching...</font></center>";
					document.getElementById(target).innerHTML = htmltxt + return_msg;
				}
			};
			xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    		xmlReq.send(paras);
		}
		else
		{
			return_msg = "<p><font class='warningText'>No record matches your query.</font></p>";
			document.getElementById(target).innerHTML = htmltxt + return_msg;
		}
	}
}

function processSearchRS(xmlDoc, cty, sname, ditems)
{
	var output_str = "<table width=\"600\" border=\"1\" frame=\"void\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bordercolor=\"#FFCC99\">\n";
	
	if(xmlDoc.documentElement.nodeName == 'Sresult')
	{
		var counter = 0;
	
		for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
		{
			currNode = xmlDoc.documentElement.childNodes[i];
		
			if(currNode.nodeType != 3)
			{
				if(is_ie)
				{
					var myname = currNode.childNodes[0].firstChild.nodeValue.replace(/</g, "&lt;");
					myname = myname.replace(/>/g, "&gt;");
					myname = myname.replace(/ /g, "&nbsp;");
				
					if(sname != "")
					{
						myname = myname.replace(RegExp(sname, "gi"), "<font color=\"#993300\"><font style=\"background-color:#FFFFCC\"><b>"+sname+"</b></font></font>");
					}
					
					if(cty == 2)	//monster
					{
						output_str += "<tr>\n";
                    	output_str += "<td width=\"180\" rowspan=\"4\" class=\"thinborder\"><img src=\"/images/search/monster/"+currNode.childNodes[6].firstChild.nodeValue+"\" width=\"180\" height=\"129\"></td>\n";
                    	output_str += "<td class=\"fakeborder\" width=\"85\" height=\"25\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Name</strong></font></td>\n<td class=\"fakeborder\" colspan=\"3\" width=\"335\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myname+"</font></td></tr>\n";
                    	output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Coordinates</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[2].firstChild.nodeValue+"</font></td>\n";
                    	output_str += "<td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Region</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[3].firstChild.nodeValue+"</font></td>\n</tr>\n";
                    	output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#999900\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Level</strong></font></div></td>\n<td class=\"fakeborder\" colspan=\"3\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[4].firstChild.nodeValue+"</font></td>\n</tr>\n";
					
						var myitems = currNode.childNodes[5].firstChild.nodeValue;
					
						if(ditems != "")
						{
							myitems = myitems.replace(RegExp(ditems, "gi"), "<font color=\"#993300\"><font style=\"background-color:#FFFFCC\"><b>"+ditems+"</b></font></font>");
						}
					
						output_str += "<tr><td class=\"fakeborder\" bgcolor=\"#CCCC00\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Drops</strong></font></div></td>\n<td class=\"fakeborder\" colspan=\"3\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myitems+"</font></td>\n</tr>\n";
					}
					else
					{
						output_str += "<tr>\n";
                    	output_str += "<td class=\"thinborder\" width=\"180\" rowspan=\"2\"><img src=\"/images/search/npc/"+currNode.childNodes[5].firstChild.nodeValue+"\" width=\"180\" height=\"129\"></td>\n";
                    	output_str += "<td class=\"fakeborder\" width=\"85\" height=\"25\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Name</strong></font></td>\n<td class=\"fakeborder\" width=\"335\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myname+"</font></td>\n";
                    	output_str += "<td class=\"fakeborder\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Region</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#FFFFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[3].firstChild.nodeValue+"</font></td>\n</tr>\n";
                    	output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Coordinates</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[2].firstChild.nodeValue+"</font></td>\n";
                    	output_str += "<td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Area</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[4].firstChild.nodeValue+"</font></td>\n</tr>\n";
					}
				}
				else
				{
					var myname = currNode.childNodes[1].firstChild.nodeValue.replace(/</g, "&lt;");
					myname = myname.replace(/>/g, "&gt;");
					myname = myname.replace(/ /g, "&nbsp;");
				
					if(sname != "")
					{
						myname = myname.replace(RegExp(sname, "gi"), "<font color=\"#993300\"><font style=\"background-color:#FFFFCC\"><b>"+sname+"</b></font></font>");
					}
				
					if(cty == 2)	//monster
					{
						output_str += "<tr>\n";
                    	output_str += "<td class=\"thinborder\" width=\"180\" rowspan=\"4\"><img src=\"/images/search/monster/"+currNode.childNodes[13].firstChild.nodeValue+"\" width=\"180\" height=\"129\"></td>\n";
                    	output_str += "<td class=\"fakeborder\" width=\"85\" height=\"25\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Name</strong></font></td>\n<td class=\"fakeborder\" colspan=\"3\" width=\"335\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myname+"</font></td></tr>\n";
                    	output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Coordinates</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[5].firstChild.nodeValue+"</font></td>\n";
                    	output_str += "<td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Region</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[7].firstChild.nodeValue+"</font></td>\n</tr>\n";
                    	output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#999900\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Level</strong></font></div></td>\n<td class=\"fakeborder\" colspan=\"3\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[9].firstChild.nodeValue+"</font></td>\n</tr>\n";
						
						var myitems = currNode.childNodes[11].firstChild.nodeValue;
					
						if(ditems != "")
						{
							myitems = myitems.replace(RegExp(ditems, "gi"), "<font color=\"#993300\"><font style=\"background-color:#FFFFCC\"><b>"+ditems+"</b></font></font>");
						}
						
						output_str += "<tr><td class=\"fakeborder\" bgcolor=\"#CCCC00\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Drops</strong></font></div></td>\n<td class=\"fakeborder\" colspan=\"3\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myitems+"</font></td>\n</tr>\n";
					}
					else
					{
						output_str += "<tr>\n";
                  		output_str += "<td class=\"thinborder\" width=\"180\" rowspan=\"2\"><img src=\"/images/search/npc/"+currNode.childNodes[11].firstChild.nodeValue+"\" width=\"180\" height=\"129\"></td>\n";
                   		output_str += "<td class=\"fakeborder\" width=\"85\" height=\"25\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Name</strong></font></td>\n<td class=\"fakeborder\" width=\"335\" bgcolor=\"#FFFFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+myname+"</font></td>\n";
                  		output_str += "<td class=\"fakeborder\" bgcolor=\"#0066FF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Region</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#FFFFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[7].firstChild.nodeValue+"</font></td>\n</tr>\n";
                   		output_str += "<tr height=\"25\" valign=\"middle\"><td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Coordinates</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\" align=\"left\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[5].firstChild.nodeValue+"</font></td>\n";
                    	output_str += "<td class=\"fakeborder\" bgcolor=\"#00CCFF\" align=\"center\"><font color=\"#FFFFFF\" size=\"2\" face=\"Arial\"><strong>Area</strong></font></td>\n<td class=\"fakeborder\" bgcolor=\"#E6FFFF\">&nbsp;<font size=\"2\" face=\"Arial\">"+currNode.childNodes[9].firstChild.nodeValue+"</font></td>\n</tr>\n";
					}
				}
				counter++;
			}
		}
	
		output_str += "</table>\n";
	
		if(counter < 1)
		{
			output_str = "<br><table width=\"600\" border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"0\"><tr height=40 valign='middle'><td align='center' class='warningText'>No results matches your query.</td></table>\n";
		}
	
		
	}
	else if(xmlDoc.documentElement.nodeName == 'Warning')
	{
		output_str = "<br><table width=\"600\" border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"0\"><tr height=40 valign='middle'><td align='center' class='captionText'>"+xmlDoc.documentElement.firstChild.nodeValue+"</td></table>\n";
	}
	else
	{
		output_str = "<br><table width=\"600\" border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"0\"><tr height=40 valign='middle'><td align='center' class='warningText'>No results matches your query.</td></table>\n";
	}
	
	return output_str;
}

function updateSForm(caty)
{
	if(!isNaN(caty))
	{
		switch(parseInt(caty))
		{
			case 1:	//npc
				if(is_ie)
				{
					document.getElementById('cityRow').style.display = "block";
				}
				else
				{
					document.getElementById('cityRow').style.display = "table-row";
				}
				document.getElementById('city').disabled = false;
				document.getElementById('dropRow').style.display = "none";
				break;
			case 2:	//monster
				if(is_ie)
				{
					document.getElementById('dropRow').style.display = "block";
				}
				else
				{
					document.getElementById('dropRow').style.display = "table-row";
				}
				document.getElementById('ditems').disabled = false;
				document.getElementById('cityRow').style.display = "none";
				break;
			default:
				break;
		}
	}
}

function noNumbers(e, flag)
{
	var keynum;
	var keychar;
	var numcheck;

	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	
	if(flag)
	{
		return !numcheck.test(keychar);	
	}
	else
	{
		return numcheck.test(keychar);
	}
}

function updateTotal(id)
{
	var arr = id.split("_");
	var price = document.getElementById('price_'+arr[1]).innerHTML;
	var quantity = document.getElementById('qty_'+arr[1]).value;
	document.getElementById('subtotal_'+arr[1]).innerHTML = price * quantity;
}

var loadingImg = "";
var loadIntvID = "";

function loadImage(flag)
{
	var target = "picloader.php";
	var picReq = makeReq();
	
	var fid = document.getElementById('picid').value;
	
	var loadWord = "<center><br>Loading...</center>";
	
	switch(flag)
	{
		case 2:
			loadWord = "<center><br>Sailing to the last image. <br><img src='/images/progress_loading.gif' align='center'>&nbsp;Now Loading...</center>";
			break;
		case -2:
			loadWord = "<center><br>Sailing to the first image. <br><img src='/images/progress_loading.gif' align='center'>&nbsp;Now Loading...</center>";
			break;
		case 1:
		case -1:
		default:
			loadWord = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			break;
	}
	
	if(picReq)
	{
		picReq.open("GET", target+"?sid="+flag+"&fid="+fid, true);
		picReq.onreadystatechange = function()
		{
			if(picReq.readyState == 4 && picReq.status == 200)
			{
				processImageLoading(picReq.responseText, fid, flag);
			}
			else
			{
				document.getElementById('loadingMain').innerHTML = loadWord;
				document.getElementById('loadingMain').style.display = 'block';
			}
		};
		picReq.send(null);
	}
}

function processImageLoading(txt, fid, flag)
{
	if(txt == "FALSE")	//cannot find the image
	{
		if(flag == -1)
		{
			loadImage(2); //show the last image in same category.
		}
		else if(flag == 1)
		{
			loadImage(-2);	//show the first image
		}
	}
	else
	{
		var strpart = txt.split(">------<");
		
		if(strpart.length == 5)
		{
			document.getElementById('picid').value = strpart[0];
			document.getElementById('picTtl').innerHTML = strpart[1];
			document.getElementById('picUder').innerHTML = strpart[2];
			document.getElementById('picTime').innerHTML = strpart[3];
			document.getElementById('imgMain').innerHTML = strpart[4];
		}
		
		loadingImg = new Image();
		loadingImg.src = document.getElementById('imgMain').childNodes[0].src;
		
		loadIntvID = window.setInterval("fakeLoadImage()", 100);
	}
}

function goToGallery(type)
{
	if(isNaN(type) || type < 1)
	{
		type = 1;
	}
	
	if(type >= 5)
	{
		location.href='picture.php?eid='+(type-4);
	}
	else
	{
		location.href='picture.php?tid='+type;
	}
	
}

function fakeLoadImage()
{
	if(loadingImg.complete)
	{
		window.clearInterval(loadIntvID);
		document.getElementById('loadingMain').style.display = 'none';
	}
}

function showEquipList()
{
	var target = "include/content/gamecontent/equiplist.php";
	
	var equipReq = makeReq();
	
	if(equipReq)
	{
		equipReq.open("GET", target, true);
	
		equipReq.onreadystatechange = function()
		{
			if(equipReq.readyState == 4 && equipReq.status == 200)
			{
				document.getElementById('equipMain').innerHTML = equipReq.responseText;
			}
			else
			{
				document.getElementById('equipMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		equipReq.send(null);
	}
}

//arr is an array hold image id.
function restoreIMGOpa(arr)
{
	for(var i = 0; i < arr.length; i++)
	{
		if(is_ie)
		{
			document.getElementById(arr[i]).filters["alpha"].opacity = 60;
		}
		else
		{
			document.getElementById(arr[i]).style.opacity = 0.6;
		}
	}
}

function showChar(obj, category)
{
	var imgarr = new Array();
	imgarr[0] = "calico_img";
	imgarr[1] = "ami_img";
	imgarr[2] = "carsise_img";
	imgarr[3] = "phyllis_img";
	
	var target = "";	//file to execute
	var path = "include/content/guide/";
	
	switch(category)
	{
		case 1: //lance
			target = "char_lance.php";
			break;
		case 2: //ami
			target = "char_ami.php";
			break;
		case 3:	//carsise
			target = "char_carsise.php";
			break;
		case 4: //phyllis
			target = "char_phyllis.php";
			break;
	}
	
	restoreIMGOpa(imgarr);
	
	if(is_ie)
	{
		obj.filters["alpha"].opacity = 100;
	}
	else
	{
		obj.style.opacity = 1;
	}
	
	var charReq = makeReq();
	
	if(charReq)
	{
		charReq.open("GET", path+target, true);
	
		charReq.onreadystatechange = function()
		{
			if(charReq.readyState == 4 && charReq.status == 200)
			{
				document.getElementById('charMain').innerHTML = charReq.responseText;
			}
			else
			{
				document.getElementById('charMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		charReq.send(null);
	}
}

function updateCartItem(id)
{
	var target = "itemshop.php";
	
	var arr = id.split("_");
	var quantity = document.getElementById('qty_'+arr[1]).value;
	
	var cartReq = makeReq();
	
	if(cartReq && !isNaN(quantity))
	{
		var paras = "aid=1&iid="+arr[1]+"&iqty="+quantity;
		//alert(paras);
		
		cartReq.open("POST", target, true);
		
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML =cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Updating your cart...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
}


function deleteCartItem(id)
{
	if(confirm('Are you sure to delete this item from your cart?'))
	{
		var target = "itemshop.php";
	
		var cartReq = makeReq();
	
		if(cartReq)
		{
			var paras = "aid=2&iid="+id;
			cartReq.open("POST", target, true);
		
			cartReq.onreadystatechange = function()
			{
				if(cartReq.readyState == 4 && cartReq.status == 200)
				{
					document.getElementById('mycart').innerHTML = cartReq.responseText;
				}
				else
				{
					document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Deleting...</center>";
				}
			};
			cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			cartReq.send(paras);
		}
		return true;
	}
	else
	{
		return false;
	}
}

function displayCartConfirm(toid)
{
	document.getElementById('cartmsg').innerHTML = "";
	var target = "itemshop.php";
	
	var cartReq = makeReq();
	
	if(cartReq)
	{
		if(!isNaN(toid) && toid > 0)
		{
			var paras = "aid=3&toid="+toid;
		}
		else
		{
			var paras = "aid=3";
		}
		
		cartReq.open("POST", target, true);	
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML = cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
}
function doCheckOut(toid)
{
	var target = "itemshop.php";
	
	var cartReq = makeReq();
	
	if(cartReq)
	{
		if(!isNaN(toid) && toid > 0)
		{
			var paras = "aid=4&toid="+toid;
		}
		else
		{
			var paras = "aid=4";
		}
		
		cartReq.open("POST", target, true);
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML = cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Processing your request...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
}

function getBidHistory(aucid)
{
	var target = "itemauc.php";
	var aucReq = makeReq();
	
	if(aucReq && !isNaN(aucid) && aucid > 0)
	{
		aucReq.open("GET", target+"?sid=3&aucid="+aucid, true);
		
		aucReq.onreadystatechange = function()
		{
			if(aucReq.readyState == 4 && aucReq.status == 200)
			{
				document.getElementById('loadingTxt').innerHTML = "";
				
				var tmparr = aucReq.responseText.split(":::");
						
				if(tmparr.length == 2)
				{
					if(is_ie)
					{
						document.frames['auchis'].document.body.innerHTML = tmparr[1];
					}
					else
					{
						window.frames['auchis'].document.body.innerHTML = tmparr[1];
					}
					
					document.getElementById('auchisdiv').style.visibility = "visible";
					document.getElementById('auchisdiv').style.left = (screen.width - document.getElementById('auchisdiv').clientWidth)/2;
					var myheight = 0;
					if(tmparr[0] <= 500)
					{
						myheight = tmparr[0];	
					}
					else
					{
						myheight = 500;
					}
					document.getElementById('auchisdiv').style.height = myheight;
					document.getElementById('auchisdiv').style.top = (screen.height - myheight)/2 + 350;
				}

			}
			else
			{
				document.getElementById('loadingTxt').innerHTML = "<img src='/images/progress_loading.gif'>&nbsp;<font class=\"itemPrice\">Loading...</font>";
			}
		};
		aucReq.send(null);
	}
}

function placeBid(obj)
{
	obj.disabled = true;
	var target = "itemauc.php";
	//var aucid = document.getElementById('aucid').value;
	//var bid = document.getElementById('bid').value;
	
	var form = obj.form;
	
	if(!(form.aucid.value).match(/^\d{1,4}$/))
	{
		alert('Invalid request.');
		location.href='/';
	}
	else if(!(form.bid.value).match(/^\d{1,5}$/))
	{
		alert('Please enter a valid bid.');
		obj.disabled = false;
	}
	else
	{
		if(confirm('Are your sure to place your bid?'))
		{
			var bidReq = makeReq();
	
			if(bidReq)
			{
				var paras = "aucid="+form.aucid.value+"&bid="+form.bid.value;
				bidReq.open("POST",target,true);
				bidReq.onreadystatechange = function()
				{
					if(bidReq.readyState == 4 && bidReq.status == 200)
					{
						obj.disabled = false;
						obj.innerHTML = "Place Bid";
						
						var tmparr = bidReq.responseText.split(":::");
						
						if(tmparr.length != 2)
						{
							alert('Failed to place your bid.');
						}
						else
						{
							alert(tmparr[1]);
							
							if(tmparr[0] == 0 || tmparr[0] == 1)
							{
								window.location.reload();
							}
						}
					}
					else
					{
						obj.innerHTML = "Processing";
					}
				};
    			bidReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    			bidReq.send(paras);
			}
		}
		else
		{
			obj.disabled = false;
		}
	}
}

var showBetRs = false;

function placeBet(obj)
{
	var imgOpen = preload_img("/images/chest_opened.jpg");
	var imgUnOpen = preload_img("/images/chest_unopened.jpg");
	
	document.getElementById('chestimg').src = imgUnOpen.src;
	document.getElementById('resultField').innerHTML = "";
	
	obj.disabled = true;
	var target = "wgame.php";
	//var aucid = document.getElementById('aucid').value;
	//var bid = document.getElementById('bid').value;
	
	var form = obj.form;
	
	if(confirm('Are your sure to place your bet?'))
	{
		var betReq = makeReq();
	
		if(betReq)
		{
			var paras = "bet="+form.bet.value+"&btimes="+form.btimes.value;
			betReq.open("POST",target,true);
			betReq.onreadystatechange = function()
			{
				if(betReq.readyState == 4 && betReq.status == 200)
				{
					obj.disabled = false;
					
					var resTxt = betReq.responseText;
					
					var sindex = resTxt.indexOf("<script>");
					var eindex = resTxt.indexOf("</script>");
					
					if(sindex >= 0 && eindex > 0)
					{
						eval(resTxt.substring(sindex+8, eindex));
					}
					else
					{
						var retarr = resTxt.split("<r>-----<r>");
					
						var tmparr = retarr[0].split("<!-----!>");
					
						var przarr = Array();
					
						var outstr = "<table width=\"400\" border = 1 cellpadding = 1 cellspacing = 1>\n";
						outstr += "<tr valign=middle><td width=32 bgcolor=\"#D5D500\"></td><td align=center class=\"smlfnt\" bgcolor=\"#FFF4B9\" width=88>Item Image</td><td width=280 align=center class=\"smlfnt\" bgcolor=\"#FFE348\">Item Name</td></tr>";
					
						if(tmparr.length > 1)
						{
							for(var i = 0; i < tmparr.length; i++)
							{
								if(tmparr[i] != "")
								{
									przarr = tmparr[i].split("::::");
							
									outstr += "<tr bgcolor=\"#FFFFFF\"><td class=\"itemPrice\">&nbsp;"+(i+1)+"</td><td align=\"center\"><img src=\"/images/mallimage/final/"+przarr[0]+"\"></td><td class=\"itemName\">&nbsp;<font class=\"smlfnt\">"+przarr[1]+"</font></td></tr>\n";
								}
							}
						}
						else
						{
							alert(tmparr[0]);
						}
					
						outstr += "<tr borderColor='#00bbf8'><td borderColor='#00bbf8' colspan=3 height=30 valign=middle class='captionSmall' align=center>Please redeem your prizes in your <a href='vbag.php'>virtual bag</a>.</td></tr>";
						outstr += "</table>\n";
					
						document.getElementById('userrum').innerHTML = retarr[1];
						document.getElementById('chestimg').src = imgOpen.src;
					
						document.getElementById('resultField').innerHTML = outstr;
					}

				}
				else
				{
					document.getElementById('resultField').innerHTML = "Processing";
				}
			};
    		betReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    		betReq.send(paras);
		}
	}
}
function showNPC(obj, category)
{
	var imgarr = new Array();
	imgarr[0] = "ascaron_img";
	imgarr[1] = "mgocean_img";
	imgarr[2] = "dpblue_img";
	
	var target = "";	//file to execute
	var path = "include/content/gamecontent/";
	
	switch(category)
	{
		case 1: //ascaron
			target = "npc_ascaron.php";
			break;
		case 2: //deepblue
			target = "npc_deepblue.php";
			break;
		case 3:	//magical ocean
			target = "npc_magicalocean.php";
			break;
	}
	
	restoreIMGOpa(imgarr);
	
	if(is_ie)
	{
		obj.filters["alpha"].opacity = 100;
	}
	else
	{
		obj.style.opacity = 1;
	}
	
	var npcReq = makeReq();
	
	if(npcReq)
	{
		npcReq.open("GET", path+target, true);
	
		npcReq.onreadystatechange = function()
		{
			if(npcReq.readyState == 4 && npcReq.status == 200)
			{
				document.getElementById('npcMain').innerHTML = npcReq.responseText;
			}
			else
			{
				document.getElementById('npcMain').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		npcReq.send(null);
	}
}

function checkQty(obj)
{
	var target = "modules/itemmall/checkqty.php";
	var formNode = obj.form;
	
	/*while(formNode.tagName != "FORM")
	{
		formNode = formNode.parentNode;
	}*/
	
	var vid = formNode.vid.value;
	
	var checkReq = makeReq();
	
	if(checkReq)
	{
		checkReq.open("GET", target+"?vid="+vid+"&qty="+obj.value, true);
		
		checkReq.onreadystatechange = function()
		{
			if(checkReq.readyState == 4 && checkReq.status == 200)
			{
				obj.value = checkReq.responseText;
			}
		};
		checkReq.send(null);
	}
}

function updateServerList()
{
	var target = "modules/itemmall/updateslist.php";
	
	var x = document.getElementById('gpserver');
	
	var sid = x.options[x.selectedIndex].value;
	
	var serverReq = makeReq();
	
	if(serverReq)
	{
		serverReq.open("GET", target+"?sid="+sid, true);
		
		serverReq.onreadystatechange = function()
		{
			if(serverReq.readyState == 4 && serverReq.status == 200)
			{
				document.getElementById('server').disabled = false;
				
				var rtxt = serverReq.responseText;
				
				var tarr = rtxt.split(" ");
				
				document.getElementById('server').options.length = 1;
				
				for(var i = 0; i < tarr.length-1; i++)
				{
					var newoption = document.createElement("OPTION");
					var t2arr = tarr[i].split(",");
					newoption.value = t2arr[0];
					newoption.text = t2arr[1];
					
					document.getElementById('server').options.add(newoption);
				}
				document.getElementById('loadingTxt').innerHTML = "&nbsp;";
			}
			else
			{
				document.getElementById('loadingTxt').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading server list...</center>";
			}
		};
		serverReq.send(null);
	}
}

function updateCharList()
{
	var target = "vbag.php";
	
	var x = document.getElementById('server');
	
	var svrid = x.options[x.selectedIndex].value;
	
	var paras = "sid=4&svrid="+svrid;
	
	var charReq = makeReq();
	
	if(charReq)
	{
		charReq.open("POST", target, true);
		
		charReq.onreadystatechange = function()
		{
			if(charReq.readyState == 4 && charReq.status == 200)
			{
				document.getElementById('char').disabled = false;
				
				var rtxt = charReq.responseText;
				
				var tarr = rtxt.split(" ");
				
				document.getElementById('char').options.length = 1;
				
				for(var i = 0; i < tarr.length-1; i++)
				{
					var newoption = document.createElement("OPTION");
					var t2arr = tarr[i].split(",");
					newoption.value = t2arr[0];
					newoption.text = t2arr[1];
					
					document.getElementById('char').options.add(newoption);
				}
				
				document.getElementById('loadingTxt').innerHTML = "&nbsp;";
			}
			else
			{
				document.getElementById('loadingTxt').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading your character list...</center>";
			}
		};
		charReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		charReq.send(paras);
	}
}

function isValidName(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter your name.";
	}
	else if(!myvalue.match(/^([a-z]{2,})([a-z ]*)([a-z]{2,})$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid name.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function isValidUser(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter your user name.";
	}
	else if(myvalue.length < 3 || myvalue.length > 14)
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;User name length: 3-14.";
	}
	else if(!myvalue.match(/^([a-z]+)([a-z0-9]+)([a-z0-9]+)$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid user name.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function isValidPassword(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter your password.";
	}
	else if(!myvalue.match(/^[a-z0-9]{6,12}$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid password.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function isValidAnswer(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter the security answer.";
	}
	else if(!myvalue.match(/^[a-z0-9\._' @,\-]{3,}$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid security answer.";
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function isValidInvCode(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter the invitation code.";
	}
	else if(!myvalue.match(/[A-Z0-9]{10,16}/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid invitation code.";
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function isSecondPasswd(obj, tocmp)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please re-enter your password.";
	}
	else if(!myvalue.match(/^[a-z0-9]{6,12}$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid password.";		
	}
	else if(myvalue != document.getElementById(tocmp).value)
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Password mismatch.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}


function isNumber(obj)
{
	var myvalue = obj.value;
	
	if(!myvalue.match(/^\d{4,20}$/))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid number format.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}
function isFraction(String)
{ 
    var Letters = "1234567890."; 
    var i;
    var c;
	if(String.charAt(0)==".")
	{
		alert('Invalid Number Format!');
		return false;
	}
    for( i = 0; i < String.length; i ++ )
    {
    	c = String.charAt( i );
   		if (Letters.indexOf( c ) < 0)
		{
			alert('Invalid Number Format!');
        	return false;
		}
	}
    return true;
}
function isEmail(obj)
{
	var myvalue = obj.value;
	
	if(myvalue == "")
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Please enter your email.";
	}
	else if(!myvalue.match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i))
	{
		obj.nextSibling.innerHTML = "&nbsp;&nbsp;Invalid email address.";		
	}
	else
	{
		obj.nextSibling.innerHTML = "";
	}
}

function checkDate(year, month, day) 
{
	var myDate = new Date();
	myDate.setFullYear(year, parseInt(month)-1, parseInt(day));

	if (myDate.getMonth() != parseInt(month)-1) 
	{
  		return false;
	} 
	else 
	{
  		return true;
	}
}

function getDayOptions()
{
	var day_str = "";
	var today = new Date();
	for(var i = 1; i <= 31; i++)
	{
		if(i == today.getDate())
		{
			day_str += "<option value='"+zeroFill(i.toString(), 2)+"' selected>"+zeroFill(i.toString(), 2)+"</option>\n";
		}
		else
		{
			day_str += "<option value='"+zeroFill(i.toString(), 2)+"'>"+zeroFill(i.toString(), 2)+"</option>\n";
		}
	}
	
	return day_str;
}

function getYearOptions()
{
	var year_str = "";
	for(var i = 1960; i <= 1998; i++)
	{
		if(i == 1982)
		{
			year_str += "<option value='"+zeroFill(i.toString(), 4)+"' selected>"+zeroFill(i.toString(), 4)+"</option>\n";
		}
		else
		{
			year_str += "<option value='"+zeroFill(i.toString(), 4)+"'>"+zeroFill(i.toString(), 4)+"</option>\n";
		}
	}
	
	return year_str;
}

function zeroFill(str, len)
{
	if(str.length < len)
	{
		for(var i = 0; i < len - str.length; i++)
		{
			str = "0" + str;
		}
	}
	return str;
}

function nav_referer(url)
{
	opener.location.href= url
	window.close()
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

function autochange(x, y)
{
	y.value=x.value;
}

var popUpWin=0;
function popUpWindow(URLStr, left, top, width, height)
{
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  popUpWin = open(URLStr, '', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}

function preload_img(src)
{
	var img = new Image();
	img.src = src;
	
	return img;
}

function swapImage(obj, imgsrc)
{
	var img = new Image();
	img.src = imgsrc;
	
	obj.src = img.src;
}

function getSGTime()
{
	var today = new Date();

	var offsetH = today.getTimezoneOffset()/60;

	today.setHours(today.getHours() + offsetH + 8);

	var h = zeroFill(today.getHours().toString(), 2);
	var m = zeroFill(today.getMinutes().toString(), 2);
	var s = zeroFill(today.getSeconds().toString(), 2);
	
	var mname = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	
	var mon = today.getMonth();
	var d = zeroFill(today.getDate().toString(), 2);
	
	document.getElementById('sgtime').innerHTML = mname[mon] + "&nbsp;"+d+ "&nbsp;"+ h +":" + m + ":" + s + "GMT+8";
	var mytm = setTimeout('getSGTime()', 500);
}
         
function countdown(year, month, day, hour, minute)
{
	var today = new Date();
    var tyear = today.getFullYear() - 2000;
    var tmonth = today.getMonth() + 1;               
    
	var offsetH = today.getTimezoneOffset()/60;
	
    //Convert both today's date and the target date into miliseconds.                           
  	today = (new Date(tyear, tmonth, today.getDate(), today.getHours() + offsetH + 8, today.getMinutes(), today.getSeconds())).getTime();
	
    var target = (new Date(year, month, day, hour, minute, 00)).getTime();                         
         
    //Find their difference, and convert that into seconds.                  
    var tleft = Math.round((target - today) / 1000);
         
    if(tleft < 0)
        tleft = 0;
    
	var days = Math.floor(tleft / (60 * 60 * 24));
    tleft %= (60 * 60 * 24);
    var hours = Math.floor(tleft / (60 * 60));
    tleft %= (60 * 60);
    var minutes = Math.floor(tleft / 60);
    tleft %= 60;
    var seconds = tleft;
                    
    var dps = 's'; hps = 's'; mps = 's'; sps = 's';
     //ps is short for plural suffix.
    if(days <= 1) dps ='';
    if(hours <= 1) hps ='';
    if(minutes <= 1) mps ='';
    if(seconds <= 1) sps ='';
	
	var cd_str = "";
	
	if(days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0)
	{
		cd_str = "<font face='Lexia' size=4><b>Open Beta has officially launched!</b></font><br>";
	}
	else
	{
		cd_str = "<font face='Lexia' size=4><b>Launch of Open Beta in</b></font><br>";         
    	cd_str += days + ' day' + dps + ' ';
  		cd_str += hours + ' hour' + hps + ' ';
    	cd_str += minutes + ' minute' + mps + ' and ';
	    cd_str += seconds + ' second' + sps;
	}
	
	document.getElementById('cbcountdown').innerHTML = cd_str;

               
    //Recursive call, keeps the clock ticking.
    var mycoutndown = setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ')', 1000);
}

function loadSvrStatusV2()
{
	var width = 300;
	var height = 200;
	var top = Math.round((screen.height - height)/2);
	var left = Math.round((screen.width - width)/2);
	var newwin = window.open("about:blank", "ServerStatus", "width="+width+",height="+height+",top="+top+",left="+left+"");
	
	var xmlfile = '/uploadfile/ServerStatus/svrstatus.xml';
	var xmlHttpReq = makeReq();
	
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				newwin.document.close();
				newwin.document.open();
				newwin.document.write(processSvrStatusV2(xmlHttpReq.responseXML));
				newwin.document.close();
			}
			else
			{
				newwin.document.close();
				newwin.document.open();
				newwin.document.write("<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>");
				newwin.document.close();
			}
		};
		xmlHttpReq.send(null);
	}
}
function processSvrStatusV2(xmlDoc)
{
	var output_str = "<html>\n";
	output_str += "<head>\n";
	output_str += "<link type=\"text/css\" rel=\"stylesheet\" href=\"/style/common.css\">\n";
	output_str += "</head>\n";
	output_str += "<body bgcolor=\"#EBFAFF\" topmargin=\"0\" leftmargin=\"0\">\n";
	output_str += "<table width=280 align=\"center\" border = 0 cellpadding = 1 cellspacing = 1>\n";
	output_str += "<tr valign='middle' height = 35><td class=\"svrGroup\" colspan=3 align=\"center\">Server Status</td></tr>\n";
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			output_str += "<tr valign='middle'>";
			if(is_ie)
			{
				output_str += "<td class=\"svrName\" width=80 align=\"right\">"+currNode.childNodes[0].firstChild.nodeValue+"</td><td style=\"font:10px Tahoma;\">("+currNode.childNodes[2].firstChild.nodeValue+")</td><td valign=\"middle\" align=\"center\" width=100>";
				
				if(currNode.childNodes[1].firstChild.nodeValue == 1)	//server is up
				{
					output_str += "<img src='/images/server_up.gif'>";
				}
				else	//server is down
				{
					output_str += "<img src='/images/server_down.gif'>";
				}
				
				output_str += "</td>\n";
			}
			else
			{
				output_str += "<td class='svrName' width=80>"+currNode.childNodes[1].firstChild.nodeValue+"</td><td style=\"font:10px Tahoma;\">("+currNode.childNodes[5].firstChild.nodeValue+")</td><td valign='middle' align='center' width=100>";
				
				if(currNode.childNodes[3].firstChild.nodeValue == 1)	//server is up
				{
					output_str += "<img src='/images/server_up.gif'>";
				}
				else	//server is down
				{
					output_str += "<img src='/images/server_down.gif'>";
				}
				
				output_str += "</td>\n";
			}
			output_str += "</tr>\n";
		}
	}
	
	output_str += "</table>\n";
	output_str += "</body>\n";
	output_str += "</html>\n";
	
	return output_str;
}
function loadSvrStatus(id)
{
	var xmlfile = '/uploadfile/ServerStatus/svrstatus.xml';
	var xmlHttpReq = makeReq();
	
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				document.getElementById(id).innerHTML = processSvrStatus(xmlHttpReq.responseXML);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}
function processSvrStatus(xmlDoc)
{
	var output_str = "<table width=600 align='center' border = 0 cellpadding = 1 cellspacing = 1>\n";
	output_str += "<tr valign='middle' height = 25><td class='svrGroup' colspan=2>Seafarer</td></tr>\n";
	output_str += "<tr valign='middle'><td width= 20>&nbsp;</td>";
	
	var counter = 0;
	
	output_str += "<td align=center><table width='500' align='center' border = 0 cellpadding = 1 cellspacing = 1>\n";
	output_str += "<tr valign='middle'>";
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			if(is_ie)
			{
				output_str += "<td class='svrName' width=60>"+currNode.childNodes[0].firstChild.nodeValue+"</td><td valign='middle' align='center' width= 60>";
				
				if(currNode.childNodes[1].firstChild.nodeValue == 1)	//server is up
				{
					output_str += "<img src='/images/server_up.gif'>";
				}
				else	//server is down
				{
					output_str += "<img src='/images/server_down.gif'>";
				}
				
				output_str += "</td>\n";
			}
			else
			{
				output_str += "<td class='svrName' width=60>"+currNode.childNodes[1].firstChild.nodeValue+"</td><td valign='middle' align='center' width=60>";
				
				if(currNode.childNodes[3].firstChild.nodeValue == 1)	//server is up
				{
					output_str += "<img src='/images/server_up.gif'>";
				}
				else	//server is down
				{
					output_str += "<img src='/images/server_down.gif'>";
				}
				
				output_str += "</td>\n";
			}
			
			counter++;
			
			if(counter % 4 == 0)
			{
				output_str += "</tr><tr>\n";
			}
		}
	}
	
	output_str += "</tr></table></td></tr></table>\n";
	return output_str;
}
function loadBugList(id)
{
	var xmlfile = 'buglist.xml';
	var xmlHttpReq = makeReq();
	
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
		
		//xmlHttpReq.setRequestHeader("Cache-Control", "no-cache");
   		//xmlHttpReq.setRequestHeader("Pragma", "no-cache");
		
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				document.getElementById(id).innerHTML = processBugList(xmlHttpReq.responseXML);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}

function processBugList(xmlDoc)
{
	var output_str = "<table border = 1 bordercolor = '#663377' width = '95%' cellpadding = 4 cellspacing = 1>\n";
	output_str += "<tr height = 40 valign='middle'><td class='caption14px' align='center'>&nbsp;</td><td class='caption14px' align='center'><b>Bug Description</b></td><td class='caption14px' align='center'><b>By</b></td><td class='caption14px' align='center' width=70><b>Status</b></td></tr>\n";
	
	var counter = 1;
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			if(is_ie)
			{
				output_str += "<tr valign='middle'><td valign='top' class='normalText' align='right'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText'>"+currNode.childNodes[0].firstChild.nodeValue+"</td><td class='normalText' valign='top'>"+currNode.childNodes[1].firstChild.nodeValue+"</td><td class='normalText' align='center' valign='top'>&nbsp;&nbsp;";
				
				if(currNode.childNodes[2].firstChild.nodeValue == 1)	//fixed
				{
					output_str += "<font color='green'>Fixed</font>";
				}
				else	//in progress
				{
					output_str += "<font color='red'>In Progress</font>";
				}
				output_str += "</td></tr>\n";
			}
			else
			{
				output_str += "<tr valign='middle'><td valign='top' class='normalText' align='right'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText'>"+currNode.childNodes[1].firstChild.nodeValue+"</td><td class='normalText' valign='top'>"+currNode.childNodes[3].firstChild.nodeValue+"</td><td class='normalText' align='center' valign='top'>&nbsp;&nbsp;";
				
				if(currNode.childNodes[5].firstChild.nodeValue == 1)	//fixed
				{
					output_str += "<font color='green'>Fixed</font>";
				}
				else	//in progress
				{
					output_str += "<font color='red'>In Progress</font>";
				}
				output_str += "</td></tr>\n";
			}
			//output_str += "<tr><td colspan=3 height=5>&nbsp;</td></tr>\n";
			counter++;
		}
	}
	
	output_str += "</table>\n";
	return output_str;
}
function loadRankingList(id, svr)
{
	switch(svr)
	{
/*		case '1206':
			var xmlfile = "/uploadfile/rankXML/Flag.xml";
			break;
		case '1205':
			var xmlfile = "/uploadfile/rankXML/Engine.xml";
			break;
		case '1204':
			var xmlfile = "/uploadfile/rankXML/Deck.xml";
			break;*/
		case '1203':
			var xmlfile = "/uploadfile/rankXML/Crete.xml";
			break;
		case '1202':
		default:
			var xmlfile = "/uploadfile/rankXML/Azov.xml";
			break;
/*		case '1201':
		
			var xmlfile = "/uploadfile/rankXML/Bridge.xml";
			break;*/
	}
	
	var xmlHttpReq = makeReq();
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				var xmldoc = loadXMLStr(xmlHttpReq.responseText);
				document.getElementById(id).innerHTML = processRanking(xmldoc);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}

//load event player ranking
function loadRankingList2(id, svr)
{
	switch(svr)
	{
/*		case '1206':
			var xmlfile = "/uploadfile/rankXML/event/Flag.xml";
			break;
		case '1205':
			var xmlfile = "/uploadfile/rankXML/event/Engine.xml";
			break;
		case '1204':
			var xmlfile = "/uploadfile/rankXML/event/Deck.xml";
			break;*/
		case '1203':
			var xmlfile = "/uploadfile/rankXML/event/Crete.xml";
			break;
		case '1202':
		default:
			var xmlfile = "/uploadfile/rankXML/event/Azov.xml";
			break;
/*		case '1201':
		
			var xmlfile = "/uploadfile/rankXML/event/Bridge.xml";
			break;*/
	}
	
	var xmlHttpReq = makeReq();
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				var xmldoc = loadXMLStr(xmlHttpReq.responseText);
				document.getElementById(id).innerHTML = processRanking2(xmldoc);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}
function processRanking(xmlDoc)
{
	var output_str = "<table align='center' border = 1 rules='none' width = '80%' cellpadding = 0 cellspacing = 0>\n";
	output_str += "<tr height = 30 valign='middle'><td align='center' bgcolor='#3399FF'><strong><font color='#FFFFFF' size='2' face='Arial'>Rank</font></strong></td><td align='center' bgcolor='#FF9900'><strong><font color='#FFFFFF' size='2' face='Arial'>Character</font></strong></td><td bgcolor='#99CC00' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Class</font></strong></td><td bgcolor='#FFEE10' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Reputation</font></strong></td></tr>\n";
	
	var counter = 1;
	var rowcolor = new Array();
	var cellcolor = new Array();
	cellcolor[0] = "#79BCFF";
	cellcolor[1] = "#FFC66F";
	cellcolor[2] = "#C8FF75";
	cellcolor[3] = "#FFFF88";
	
	rowcolor[0] = cellcolor;
	
	cellcolor = new Array();
	cellcolor[0] = "#BFDFFF";
	cellcolor[1] = "#FFE3B9";
	cellcolor[2] = "#DFFFAE";
	cellcolor[3] = "#FFFFD5";
	
	rowcolor[1] = cellcolor;
	
	var bgcolor = new Array();
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			bgcolor = rowcolor[counter%2];
			
			try
			{
				if(is_ie)
				{
					output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;";
					output_str += currNode.childNodes[0].firstChild.nodeValue;
					output_str += "</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;";
					output_str += currNode.childNodes[2].firstChild.nodeValue;
					output_str += "</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>";
					output_str += currNode.childNodes[1].firstChild.nodeValue;
					output_str += "&nbsp;&nbsp;&nbsp;</td></tr>\n";
				}
				else
				{
					output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;";
					output_str += currNode.childNodes[1].firstChild.nodeValue;
					output_str += "</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;";
					output_str += currNode.childNodes[5].firstChild.nodeValue;
					output_str += "</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>";
					output_str += currNode.childNodes[3].firstChild.nodeValue;
					output_str += "&nbsp;&nbsp;&nbsp;</td></tr>\n";
				}
				counter++;
			}
			catch(err)
			{
				continue;
			}
		}
	}
	
	output_str += "</table>\n";
	return output_str;
}
function processRanking2(xmlDoc)
{
	var output_str = "<table align='center' border = 1 rules='none' width = '80%' cellpadding = 0 cellspacing = 0>\n";
	output_str += "<tr height = 30 valign='middle'><td align='center' bgcolor='#3399FF'><strong><font color='#FFFFFF' size='2' face='Arial'>Rank</font></strong></td><td align='center' bgcolor='#FF9900'><strong><font color='#FFFFFF' size='2' face='Arial'>Character</font></strong></td><td bgcolor='#99CC00' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Class</font></strong></td><td bgcolor='#FFEE10' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Level</font></strong></td></tr>\n";
	
	var counter = 1;
	var rowcolor = new Array();
	var cellcolor = new Array();
	cellcolor[0] = "#79BCFF";
	cellcolor[1] = "#FFC66F";
	cellcolor[2] = "#C8FF75";
	cellcolor[3] = "#FFFF88";
	
	rowcolor[0] = cellcolor;
	
	cellcolor = new Array();
	cellcolor[0] = "#BFDFFF";
	cellcolor[1] = "#FFE3B9";
	cellcolor[2] = "#DFFFAE";
	cellcolor[3] = "#FFFFD5";
	
	rowcolor[1] = cellcolor;
	
	var bgcolor = new Array();
	
	document.getElementById('noteTxt').innerHTML = "This is the seasonal ladder starting from <b>" + xmlDoc.documentElement.attributes[0].value+ "</b>";
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			bgcolor = rowcolor[counter%2];
			
			if(is_ie)
			{
				output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;"+currNode.childNodes[0].firstChild.nodeValue+"</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;"+currNode.childNodes[2].firstChild.nodeValue+"</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>"+currNode.childNodes[1].firstChild.nodeValue+"&nbsp;&nbsp;&nbsp;</td></tr>\n";
			}
			else
			{
				output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;"+currNode.childNodes[1].firstChild.nodeValue+"</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;"+currNode.childNodes[5].firstChild.nodeValue+"</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>"+currNode.childNodes[3].firstChild.nodeValue+"&nbsp;&nbsp;&nbsp;</td></tr>\n";
			}
			counter++;
		}
	}
	
	output_str += "</table>\n";
	return output_str;
}
//Load Guild Ranking
function loadGRankingList(id)
{
	var xmlfile = "/uploadfile/rankXML/Guild.xml";
	
	var xmlHttpReq = makeReq();
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				document.getElementById(id).innerHTML = processGRanking(xmlHttpReq.responseXML);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}

function processGRanking(xmlDoc)
{
	var output_str = "<table align='center' border = 1 rules='none' width = '80%' cellpadding = 0 cellspacing = 0>\n";
	output_str += "<tr height = 30 valign='middle'><td align='center' bgcolor='#3399FF'><strong><font color='#FFFFFF' size='2' face='Arial'>Rank</font></strong></td><td align='center' bgcolor='#FF9900'><strong><font color='#FFFFFF' size='2' face='Arial'>Defending Champion</font></strong></td><td bgcolor='#99CC00' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Challenger</font></strong></td><td bgcolor='#FFEE10' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Bid</font></strong></td></tr>\n";
	
	var counter = 1;
	var rowcolor = new Array();
	var cellcolor = new Array();
	cellcolor[0] = "#79BCFF";
	cellcolor[1] = "#FFC66F";
	cellcolor[2] = "#C8FF75";
	cellcolor[3] = "#FFFF88";
	
	rowcolor[0] = cellcolor;
	
	cellcolor = new Array();
	cellcolor[0] = "#BFDFFF";
	cellcolor[1] = "#FFE3B9";
	cellcolor[2] = "#DFFFAE";
	cellcolor[3] = "#FFFFD5";
	
	rowcolor[1] = cellcolor;
	
	var bgcolor = new Array();
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			output_str += "<th height=25 valign='middle' class='captionTimes' colspan=4>"+currNode.attributes[0].value+"</th>\n";
			counter = 1;
			if(((currNode.hasChildNodes() && is_ie) || (currNode.childNodes.length > 1 && !is_ie))) 
			{
				for(var j = 0; j < currNode.childNodes.length; j++)
				{
					if(currNode.childNodes[j].nodeType != 3)
					{
						bgcolor = rowcolor[counter%2];
						
						if(is_ie)
						{
							output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;"+currNode.childNodes[j].childNodes[0].firstChild.nodeValue+"</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;"+currNode.childNodes[j].childNodes[1].firstChild.nodeValue+"</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>"+currNode.childNodes[j].childNodes[3].firstChild.nodeValue+"&nbsp;&nbsp;&nbsp;</td></tr>\n";
						}
						else
						{
							output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;"+currNode.childNodes[j].childNodes[1].firstChild.nodeValue+"</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;"+currNode.childNodes[j].childNodes[3].firstChild.nodeValue+"</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>"+currNode.childNodes[j].childNodes[7].firstChild.nodeValue+"&nbsp;&nbsp;&nbsp;</td></tr>\n";	
						}
						counter++;
					}
				}
			}
			else
			{
				output_str += "<tr height = 25 valign='middle'><td class='normalText' align='center' bgcolor='"+bgcolor[0]+"' colspan=4>No guild challenge.</td></tr>\n";
			}
		}
	}
	
	output_str += "</table>\n";
	return output_str;
}

if (!is_ie) document.captureEvents(Event.MOUSEMOVE)

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0
var mousepos = new Array();

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (is_ie) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  
  mousepos[0] = tempX;
  mousepos[1] = tempY;
  return mousepos;
}

//for homepage
function showSampleDesc(id, index)
{
	var desc1 = "Fortune Set";	var desc2 = "Gown Set";
	var desc3 = "Ranger Set";	var desc4 = "Romantic Set";
	var desc5 = "Priest Set";	var desc6 = "Tuxedo Set";
	
	if(!document.getElementById(id))
	{
		var newdiv = document.createElement('div');
		newdiv.setAttribute("id", id);
		newdiv.style.position = "absolute";
		newdiv.style.borderWidth = "2px";
		newdiv.style.width = "auto";
		newdiv.style.height = "auto";
		newdiv.style.fontFamily = "Arial";
		newdiv.style.fontSize = "12px";
		newdiv.style.color = "#FFFFFF";
		newdiv.style.backgroundColor = "#5B5FE6";
		newdiv.style.borderStyle = "inset";
		newdiv.style.paddingTop = "10px";
		newdiv.style.paddingBottom = "10px";
		newdiv.style.paddingLeft = "10px";
		newdiv.style.paddingRight = "10px";
		newdiv.style.display = "none"
		
	
		if(is_ie)
		{
			//newdiv.setAttribute("className", "Menu_Float");
			newdiv.style.filter = "alpha(opacity = 90)";
		}
		else
		{
			//newdiv.setAttribute("class", "Menu_Float");
			newdiv.style.opacity = 0.9;
		}
	
		document.body.appendChild(newdiv);
	}

	document.getElementById(id).style.display = "block";
	document.getElementById(id).innerHTML = eval("desc"+index);
	
	document.getElementById(id).style.top = mousepos[1];
	
	document.getElementById(id).style.left = mousepos[0];
}

function hideSampleDesc(id)
{
	if(document.getElementById(id))
	{
		document.getElementById(id).style.display = "none";
	}
}

//for item mall
function showItemDesc(obj, itemid)
{
	document.getElementById('itemdesc').style.zIndex = 100;
	//document.getElementById('itemdesc').style.top = getYcor(obj) + obj.offsetHeight/2;
	document.getElementById('itemdesc').innerHTML = document.getElementById("idt_"+itemid).innerHTML;
	document.getElementById('itemdesc').style.visibility = "visible";
	
	var ycor = getYcor(obj);		//default drop down the sub menu from center of parent menu.
	
	if(ycor + document.getElementById('itemdesc').clientHeight  - document.body.scrollTop > document.body.clientHeight)	//if exceeds lower bound.
	{
		ycor = getYcor(obj) + obj.clientHeight/2 - document.getElementById('itemdesc').clientHeight;
	}
	
	if(ycor - document.body.scrollTop  < 2)	//if out of the upper bound.
	{
		ycor = getYcor(obj) + obj.clientHeight/2  - (document.getElementById('itemdesc').clientHeight)/2 ;
	}
	
	document.getElementById('itemdesc').style.top = ycor.toString() + "px";
	
	if(getXcor(obj)+obj.offsetWidth + document.getElementById('itemdesc').offsetWidth > screen.width)
	{
		document.getElementById('itemdesc').style.left = screen.width - document.getElementById('itemdesc').offsetWidth;
	}else
	{
		document.getElementById('itemdesc').style.left = getXcor(obj)+obj.offsetWidth;
	}
}

function hideItemDesc()
{
	document.getElementById('itemdesc').style.visibility = "hidden";
}

function updateCart(id)
{
	var target = "bulkshop.php";
	
	var arr = id.split("_");
	var quantity = document.getElementById('qty_'+arr[1]).value;
	
	var cartReq = makeReq();
	
	if(cartReq && !isNaN(quantity))
	{
		var paras = "aid=1&iid="+arr[1]+"&iqty="+quantity;
		cartReq.open("POST", target, true);
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML = cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Updating your cart...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
}

function deleteCart(id)
{
	if(confirm('Are you sure to delete this item from your cart?'))
	{
		var target = "bulkshop.php";
	
		var cartReq = makeReq();
	
		if(cartReq)
		{
			var paras = "aid=2&iid="+id;
			cartReq.open("POST", target, true);
		
			cartReq.onreadystatechange = function()
			{
				if(cartReq.readyState == 4 && cartReq.status == 200)
				{
					document.getElementById('mycart').innerHTML = cartReq.responseText;
				}
				else
				{
					document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Deleting...</center>";
				}
			};
			cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			cartReq.send(paras);
		}
		return true;
	}
	else
	{
		return false;
	}
}

function displayCart(toid)
{
	document.getElementById('cartmsg').innerHTML = "";
	var target = "bulkshop.php";
	
	var cartReq = makeReq();
	
	if(cartReq)
	{
		if(!isNaN(toid) && toid > 0)
		{
			var paras = "aid=3&toid="+toid;
		}
		else
		{
			var paras = "aid=3";
		}
		
		cartReq.open("POST", target, true);	
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML = cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Loading...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
}
function doCheck(toid)
{
	var target = "bulkshop.php";
	
	var cartReq = makeReq();
	
	if(cartReq)
	{
		if(!isNaN(toid) && toid > 0)
		{
			var paras = "aid=4&toid="+toid;
		}
		else
		{
			var paras = "aid=4";
		}
		
		cartReq.open("POST", target, true);
		
		cartReq.onreadystatechange = function()
		{
			if(cartReq.readyState == 4 && cartReq.status == 200)
			{
				document.getElementById('mycart').innerHTML = cartReq.responseText;
			}
			else
			{
				document.getElementById('mycart').innerHTML = "<center><br><img src='/images/progress_loading.gif' align='center'>&nbsp;Processing your request...</center>";
			}
		};
		cartReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		cartReq.send(paras);
	}
	
//添加查询credit_prk
function loadRankingLists(id, svr)
{
	switch(svr)
	{
/*		case '1206':
			var xmlfile = "/uploadfile/rankXML/Flag.xml";
			break;
		case '1205':
			var xmlfile = "/uploadfile/rankXML/Engine.xml";
			break;
		case '1204':
			var xmlfile = "/uploadfile/rankXML/Deck.xml";
			break;*/
		case '1203':
			var xmlfile = "/uploadfile/rankXML/Crete_one.xml";
			break;
		case '1202':
		default:
			var xmlfile = "/uploadfile/rankXML/Azov_one.xml";
			break;
/*		case '1201':
		
			var xmlfile = "/uploadfile/rankXML/Bridge.xml";
			break;*/
	}
	
	var xmlHttpReq = makeReq();
	if(xmlHttpReq)
	{
		xmlHttpReq.open("GET", xmlfile, true);
	
		xmlHttpReq.onreadystatechange = function(){
			if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
			{
				var xmldoc = loadXMLStr(xmlHttpReq.responseText);
				document.getElementById(id).innerHTML = processRankings(xmldoc);
			}
			else
			{
				document.getElementById(id).innerHTML = "<center><br><br><img src='/images/progress_loading.gif' align='center'>&nbsp;<font face='Arial' size=2 color='#FFFFFF'><b>Loading..<b></font></center>";
			}
		};
		xmlHttpReq.send(null);
	}
}

function processRankings(xmlDoc)
{
	var output_str = "<table align='center' border = 1 rules='none' width = '80%' cellpadding = 0 cellspacing = 0>\n";
	output_str += "<tr height = 30 valign='middle'><td align='center' bgcolor='#3399FF'><strong><font color='#FFFFFF' size='2' face='Arial'>Rank</font></strong></td><td align='center' bgcolor='#FF9900'><strong><font color='#FFFFFF' size='2' face='Arial'>Character</font></strong></td><td bgcolor='#99CC00' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Class</font></strong></td><td bgcolor='#FFEE10' align='center'><strong><font color='#FFFFFF' size='2' face='Arial'>Reputation</font></strong></td></tr>\n";
	
	var counter = 1;
	var rowcolor = new Array();
	var cellcolor = new Array();
	cellcolor[0] = "#79BCFF";
	cellcolor[1] = "#FFC66F";
	cellcolor[2] = "#C8FF75";
	cellcolor[3] = "#FFFF88";
	
	rowcolor[0] = cellcolor;
	
	cellcolor = new Array();
	cellcolor[0] = "#BFDFFF";
	cellcolor[1] = "#FFE3B9";
	cellcolor[2] = "#DFFFAE";
	cellcolor[3] = "#FFFFD5";
	
	rowcolor[1] = cellcolor;
	
	var bgcolor = new Array();
	
	for(var i = 0; i < xmlDoc.documentElement.childNodes.length; i++)
	{
		currNode = xmlDoc.documentElement.childNodes[i];
		
		if(currNode.nodeType != 3)
		{
			bgcolor = rowcolor[counter%2];
			
			try
			{
				if(is_ie)
				{
					output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;";
					output_str += currNode.childNodes[0].firstChild.nodeValue;
					output_str += "</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;";
					output_str += currNode.childNodes[2].firstChild.nodeValue;
					output_str += "</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>";
					output_str += currNode.childNodes[1].firstChild.nodeValue;
					output_str += "&nbsp;&nbsp;&nbsp;</td></tr>\n";
				}
				else
				{
					output_str += "<tr height = 25 valign='middle'><td class='normalText' align='right' bgcolor='"+bgcolor[0]+"'>"+counter+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td class='normalText' bgcolor='"+bgcolor[1]+"'>&nbsp;&nbsp;&nbsp;";
					output_str += currNode.childNodes[1].firstChild.nodeValue;
					output_str += "</td><td class='normalText' bgcolor='"+bgcolor[2]+"'>&nbsp;&nbsp;";
					output_str += currNode.childNodes[5].firstChild.nodeValue;
					output_str += "</td><td class='normalText' align='right' bgcolor='"+bgcolor[3]+"'>";
					output_str += currNode.childNodes[3].firstChild.nodeValue;
					output_str += "&nbsp;&nbsp;&nbsp;</td></tr>\n";
				}
				counter++;
			}
			catch(err)
			{
				continue;
			}
		}
	}
	
	output_str += "</table>\n";
	return output_str;
}
}