var http = new Array(4);
var cPort, cLast, cDomain;

function checkReturn(e){
	if(!document.getElementById("targetAddress").value.length)return;
	cTiv();

	var keyNum;
	if(window.event){
		keyNum = e.keyCode;
	}
	else if(e.which){
		keyNum = e.which;
	}
	if(keyNum == 13){
		callEvent(0);
		return;
	}
}

function callEvent(eventID){
	if (navigator.appName == "Microsoft Internet Explorer")http[eventID] = new ActiveXObject("Microsoft.XMLHTTP"); 
		else http[eventID] = new XMLHttpRequest();

	cPort = document.getElementById("portStart").value;
	cLast = document.getElementById("portEnd").value;
	
	if(isNaN(cPort) || isNaN(cLast)){
		document.getElementById("opsResponse").innerHTML = "invalid port number(s), please redefine...";
		return;
	}

	if(cPort < 1 || cPort > 65535 || cLast < 1 || cPort > 65535 || cLast > 65535 || cPort > cLast){
		document.getElementById("opsResponse").innerHTML = "specified port range is invalid...";
		return;
	}

	document.getElementById("po").innerHTML = "";

	cDomain = document.getElementById("targetAddress").value;
	switch(eventID){

		case 0:{ /* on submit */
			document.getElementById("opsResponse").innerHTML = "scanning target...";
			http[0].open("get", "connect_port.php?domain=" + escape(cDomain) + "&port=" + cPort);
			http[0].onreadystatechange = handleQuery;
		}break;
	}
	http[eventID].send(null);
}

function nextPort(){
	cPort++;
	document.getElementById("portNum").innerHTML = "scanning port " + cPort + "...";
	http[0].open("get", "connect_port.php?domain=" + escape(cDomain) + "&port=" + cPort);
	http[0].onreadystatechange = handleQuery;
	http[0].send(null);
}

function handleQuery(){
	if (http[0].readyState == 4) {
		var response = http[0].responseText;
		if (response == "true"){
			var cValue = document.getElementById("po").innerHTML + cPort + ", ";
			document.getElementById("po").innerHTML = cValue;
		}
		if(cPort < cLast){
			nextPort();
		}else{
			document.getElementById("opsResponse").innerHTML = "port scan complete!";
			document.getElementById("portNum").innerHTML = "Idle...";
		}
	}
	
}