/**
 * integer.js is a widget for RANDOM.ORG that webmasters
 * can use on their website to pull a true randomm integer
 * from RANDOM.ORG's http integer interface.
 *
 * @author		Bo Allen	http://www.boallen.com
 * @copyright	Mads Haahr	http://www.random.org
 *
 */
 
var xmlHttp

function getTrueRandomInteger(min, max) {
	xmlHttp = GetXmlHttpObject()
	if (xmlHttp == null) {
		// AJAX not supported...
		return;
	} 

	// parameter check is done on the server side too, but we do it here as well to improve useability
	min = parseInt(min);
	max = parseInt(max);
	if (isNaN(min)) min = 1;
	if (isNaN(max)) max = 100;
	if (max <= min) max = min + 1;
	document.getElementById("true-random-integer-generator-min").value = min;
	document.getElementById("true-random-integer-generator-max").value = max;

	var url = "http://www.random.org/integers/?num=1&min=" + min + "&max=" + max + "&col=1&base=10&format=plain&rnd=new";
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = updateTrngDisplayAjax;
	xmlHttp.send(null);
} 

function updateTrngDisplayAjax() {
	if (xmlHttp.readyState < 4) {
		document.getElementById("true-random-integer-generator-result").innerHTML = '<img src="/util/cp/images/ajax-loader.gif" alt="Loading..." />';
	}
	if (xmlHttp.readyState == 4) { 
	        var trngresponse = xmlHttp.responseText;
		document.getElementById("true-random-integer-generator-result").innerHTML = trngresponse;
	}
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function integerJsInputControl(keyp) {
	var unicode=keyp.charCode ? keyp.charCode : keyp.keyCode;
	if (unicode != 8 && unicode != 9 && unicode != 45) { //allow backspace, tab, and minus
		if (unicode < 48 || unicode > 57) { //numeric only
			return false;
		} else {
			return true;
		}
	}
}	
