var http = false;
var requestCount = 0;
var clubid = '';
var msisdn = '';
var requestTimings = null;
var pageRefreshRequestCount = 0;

function startUserStatusChecking(inClubid, inMsisdn, inRequestTimings, inPageRefreshRequestCount) {
	try {
		http = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			http = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				http = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				http = false;
			}
		}
	}
	if (http) {
		clubid = inClubid;
		msisdn = inMsisdn;
		requestTimings = inRequestTimings;
		pageRefreshRequestCount = inPageRefreshRequestCount;
		updatePage();
	}
}

function updatePage() {
	if (requestCount == pageRefreshRequestCount) {
		document.getElementById('timeoutMessage').style.display = 'block';
	}

	var delay = null;
	if (requestCount < requestTimings.length) {
		delay = requestTimings[requestCount];
	}
	
	if (delay != null) {
		requestCount++;
		setTimeout("checkUserStatus()", delay);
	}
}

function checkUserStatus() {
	targetUrl = "/index/check-user-status?rnd="+new Date().getTime()+"&msisdn="+msisdn;
	http.open("GET", targetUrl, true);
	http.onreadystatechange = handleStatusResponse;
	http.send(null);
}

function handleStatusResponse() {
	if(http.readyState == 4 && http.status == 200) {
		statusCode = http.responseText;
		statusCode = statusCode.replace(/^\s+|\s+$/g, '');
		
		if (statusCode == 'OK') {
			// Signup complete
			document.signupComplete.submit();
		} else {
			// Signup not completed, schedule another status check request
			updatePage();
		}
	}
}