var timer;
var prxcnt = 0;
var nextele;
var httpstatus_online = '<img src="http.gif" height="16" width="16" alt="HTTP Online" title="HTTP Online">';
var httpstatus_offline = '<img src="delete.gif" height="16" width="16" alt="HTTP Offline" title="HTTP Offline">';
var httpsstatus_online = '<img src="ssl.gif" height="16" width="16" alt="HTTPS Online" title="HTTPS Online">';
var httpsstatus_offline = '<img src="delete.gif" height="16" width="16" alt="HTTPS Offline" title="HTTPS Offline">';
var anonstatus_online = '<img src="anon.gif" height="16" width="16" alt="Anonymous" title="Anonymous">';
var anonstatus_offline = '<img src="delete.gif" height="16" width="16" alt="NOT Anonymous" title="NOT Anonymous">';

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode;
	if((charCode >= 48 && charCode <= 57) || charCode == 13 || charCode == 8)
		return true;
	return false;
}
function isEmpty(aTextField)
{
	var str = aTextField.replace(/\s/g, "");
	return (str.length == 0);
}
function isUndefined(a)
{
	return typeof a == 'undefined';
}
function postproc(reponse)
{
	if(reponse.responseText == '#HALT' && !isUndefined(timer))
	{
		//$('status').style.display='none';
		$('status').innerHTML = 'Proxy Detection: Done.<br>Proxy Checking: Done.';
		return clearTimeout(timer);
	}
	else if(reponse.responseText != '')
	{
		items = eval(reponse.responseText);
		if(prxcnt==0)
		{
			$('status').innerHTML = 'Proxy Detection: Done.<br>Proxy Checking: <img src="bouncer.gif" height="16" width="16" alt="Loading..." title="Loading">Checking Proxies...';
		}
		for(i=0, itmcnt = items.length; i < itmcnt; i++)
		{
			prxcnt++;
			var sp1 = document.createElement('div');
			sp1.setAttribute('id', 'prx_'+prxcnt);
			sp1.className = (items[i].http == 1 || items[i].https == 1) ? 'proxy_server online' : 'proxy_server offline';
			if($('HideOffline').checked && items[i].http == 0 && items[i].https == 0)
			{
				sp1.style.display='none';
			}
			var http = (items[i].http==0) ? httpstatus_offline : httpstatus_online;
			var https = (items[i].https==0) ? httpsstatus_offline : httpsstatus_online;
			var anon = (items[i].expsrc==0 && items[i].http==1) ? anonstatus_online : anonstatus_offline;

			sp1.innerHTML = '<span class="ct"><img src="http://www.xenolith0.net/images/flags/'+items[i].ct+'.gif" width="18" height="12" title="'+items[i].ct+'" alt="'+items[i].ct+'"></span><span class="ipaddressport">'+items[i].ip+':'+items[i].port+'</span><span class="statuses">'+http+''+https+''+anon+'</span><div class="oip">'+items[i].oip+'</div>';
			nextele = (prxcnt==1) ? 'formdibs' : 'prx_'+(prxcnt-1);
			$(nextele).parentNode.insertBefore(sp1, $(nextele));
		}
	}
	timer = setTimeout('statusupdate();', 1000);
}
function statusupdate()
{
	new ajax ('dbgbr.do', {method: 'GET', onComplete: postproc});
}
function form_submission()
{
	var submissionstr = '';
	var formElements = $('manual_proxies');
	for(var i = 0; i < formElements.length; i++)
	{
		if(((formElements[i].type == 'text' || formElements[i].type == 'textarea') && !isEmpty(formElements[i].value)) || ((formElements[i].type == 'checkbox' || formElements[i].type == 'radio') && formElements[i].checked))
			submissionstr = submissionstr + escape(formElements[i].name) + '=' + escape(formElements[i].value) + '&';
    }
	$('formdibs').style.display='none';
	var loader = document.createElement('div');
	loader.setAttribute('id', 'status');
	loader.className = 'main';
	loader.innerHTML = 'Proxy Detection: <img src="bouncer.gif" height="16" width="16" alt="Loading..." title="Loading">In Progress...<br>Proxy Checking: Waiting to Start.';
	$('primary').parentNode.insertBefore(loader, $('primary'));
	new ajax ('processor.do', {postBody: submissionstr});
	statusupdate();
}
function defaults()
{
   document.cookie = "config=false; expires=631220400; path=/advanced_proxy_checker/;";
   window.location = "http://www.xenolith0.net/advanced_proxy_checker/";
}