var div_name = 'stats_popup_div';
var div_obj;
var hide = true;
var results_output = '';
var timeoutIDx = '';
var timerOn = false;
var maxBox = 550;
var maxBoxW = 350;


function startTime(player_name, feed_id) {
    div_obj = new getObj(div_name);
    showhide(div_obj ,1);
    setLyr(click_obj, div_name);
    document.getElementById(div_name).innerHTML="<font color='black'>Accessing player statistics...</font>";
    var url = "support/pstats/pstatservice.php?playername="+player_name+"&feed_id="+feed_id+"&qid=1";
    loadXMLDoc(url);
}

function hide_pop() {
    div_obj = new getObj(div_name);
    showhide(div_obj, 0);
}

function showhide(obj, hide)
{
	var x = new getObj(div_name);
	x.style.visibility = (hide) ?  'visible' : 'hidden';
	//setLyr(x,div_name);
}

function setLyr(obj,lyr)
{
	var newX = findPosX(obj) - 5;
	var newY = findPosY(obj) + 24;
	var ofstX = getScrollX();
	var ofstY = getScrollY();
	var maxX = getWinWidth() + ofstX;
	var maxY = getWinHeight() + ofstY;  
	
	
	if (lyr == div_obj) newY -= 50;
	
	var x = new getObj(lyr);
        x.style.top = newY  + 'px';
	
	if((newX + maxBoxW) > maxX) {
	    x.style.left = (maxX - maxBoxW) - 40 +  'px';
	} else {
		x.style.left = newX +  'px';
	}
}

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 findPosY(obj)
{
	var curtop = 0;
	var printstring = '';
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getWinHeight() {

    var myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myHeight = window.innerHeight;
    } else if( document.documentElement && document.documentElement.clientHeight) {
        myHeight = document.documentElement.clientHeight;
    } else if( document.body &&  document.body.clientHeight) {
        myHeight = document.body.clientHeight;
    }
    return myHeight ;
}

function getWinWidth() {
    var myWidth = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myWidth = window.innerWidth;
    } else if( document.documentElement && document.documentElement.clientWidth ) {
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if( document.body && document.body.clientWidth) {
        myWidth = document.body.clientWidth;
    }
    return myWidth;
}

function getScrollX() {
    var scrOfX = 0;
    if( typeof( window.pageYOffset ) == 'number' ) {
        scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        scrOfX = document.documentElement.scrollLeft;
    }
    return scrOfX;
}

function getScrollY() {
    var scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) {
        scrOfY = window.pageYOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        scrOfY = document.body.scrollTop;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        scrOfY = document.documentElement.scrollTop;
    }
    return scrOfY ;
}


function stopTime() {
    if (isShow() == 0)
    {
        if (timeoutIDx != '')
        {
            clearTimeout(timeoutIDx);
        }
    }
    if (timerOn == true) {
        clearTimeout(timerID);
        timerID = null;
        timerOn = false;
    }
}

function isShow ()
{
	var x = new getObj(div_name);
	return (x.style.visibility == 'visible') ? 1 : 0;
}

function getObj(name)
{
    if (document.getElementById)
    {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;
    } else if (document.all) {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    } else if (document.layers) {
        if (document.layers[name])
        {
            this.obj = document.layers[name];
            this.style = document.layers[name];
        } else {
            this.obj = document.layers.testP.layers[name];
            this.style = document.layers.testP.layers[name];
        }
    }
}
function loadXMLDoc(url) {

    var fpp = String(parent.location);
    var domain = fpp.split('/');

    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.setRequestHeader('Host', domain[2]);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.setRequestHeader('Host', domain[2]);
            req.send();
        }
    }
}



function processReqChange() {
    if(req.readyState == 4) {
        if(req.status == 200) {
	   var dom = req.responseXML;
	   var resultSet = dom.documentElement.firstChild;
	   var rows = resultSet.getElementsByTagName("row");
	   results_output = "<u>All stats this week are:</u> <br />";
//	alert(rows[0].childNodes[0].firstChild.nodeValue);
	   for(var q = 0; q < rows.length; q++) {
		row = rows.item(q);
		var stat_value = row.getElementsByTagName("total_exp")[0].firstChild.nodeValue;
		stat_name = "Total Experience : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("gold")[0].firstChild.nodeValue;
		stat_name = "Total Gold : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("solo_exp")[0].firstChild.nodeValue;
		stat_name = "Experience while alone : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("group_exp")[0].firstChild.nodeValue;
		stat_name = "Experience while grouped : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("lead_exp")[0].firstChild.nodeValue;
		stat_name = "Experience for leading : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("point_exp")[0].firstChild.nodeValue;
		stat_name = "Experience for tanking : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("sacpoints")[0].firstChild.nodeValue;
		stat_name = "Sacrifice points : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("kills_npc")[0].firstChild.nodeValue;
		stat_name = "Mobiles killed : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("kills_pc")[0].firstChild.nodeValue;
		stat_name = "Players killed (legally or not) : ";
		addStatResultToDiv(stat_value, stat_name);
		stat_value = row.getElementsByTagName("deaths")[0].firstChild.nodeValue;
		stat_name = "Deaths : ";
		addStatResultToDiv(stat_value, stat_name);
	   }	
        update_results_div();
        }
    }
}
function addStatResultToDiv(stat_value, stat_name) {
	results_output += stat_name + " " + CommaFormatted(stat_value) + "<br />";
}

function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d && d.length > 1) { amount = n+'.'+d; }
	else { amount = n }
	amount = minus + amount;
	return amount;
}

function update_results_div() {

    //clearTimeout(timeoutIDx);
    timeoutIDx = '';
    pre_output = '<span class="stat_header">';
    pre_output += '<div class="pop_header_close"><a class=\"coolBtn\" href="javascript:hide_pop();">Close</a></div>';
    pre_output += '</span><div class="stat_inside">';
    post_output = '</div>';
    document.getElementById(div_name).innerHTML = pre_output + results_output + post_output;
    //alert(document.getElementById(div_name).innerHTML);
}

