function getXMLHTTPObject() {
	var xmlhttp = false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xmlhttp = new XMLHttpRequest();
		}
	}
	
	if (!xmlhttp) return null;
	else return xmlhttp;
}

function callServer(stp) {
	var URL = "algo.php";
	var str = document.getElementById("stringInput").value;
	
	if (!maybeProcessing && httpRequester) {
		httpRequester.open("POST", URL, true);
		httpRequester.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		httpRequester.onreadystatechange = function() {
			if (httpRequester.readyState == 4 && !updateComplete) {
				updateComplete = true;
				killLoader();
				document.getElementById("algoDiv").innerHTML = httpRequester.responseText;
				maybeProcessing = false;
			}
		}
		
		maybeProcessing = true;
		updateComplete = false;
		showLoader();
		httpRequester.send("string=" + encodeURIComponent(str) + "&step=" + encodeURIComponent(stp));
		
		return true;
	}
	else {
		return false;
	}
}

function showLoader() {
	//document.getElementById("loaderImg").style.display = "block";
	document.getElementById("strangeDiv").innerHTML = "<img src=\"preloader.gif\" id=\"loaderImg\" alt=\"Loading...\" title=\"Loading...\" />";
}

function killLoader() {
	//document.getElementById("loaderImg").style.display = "none";
	document.getElementById("strangeDiv").innerHTML = "<input type=\"button\" id=\"beginBtn\" value=\"Начать\" onclick=\"callServer(1)\" />";
}

function initPage() {
	body = document.getElementsByTagName("body")[0];
	httpRequester = getXMLHTTPObject();
	maybeProcessing = false;
}