var myAjax = ajax();
function ajax() {
	var ajax = null;
	if (window.XMLHttpRequest) {
        try {
			ajax = new XMLHttpRequest();
		}catch(e) {}
	}else if (window.ActiveXObject) {
		try {
			ajax = new ActiveXObject("Msxm12.XMLHTTP");
		}catch (e){	
			try{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e) 
            {
                alert("Sorry, your browser doesn't support AJAX."); 
				return false; 
            }
		}
	}
	return ajax;
}

function request_calc(n1, n2, tr1, tr2, fc1, fc2) {
	myAjax.open("POST", "calc.php");
	myAjax.onreadystatechange = result_calc;
	myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	myAjax.send("n1="+n1+"&n2="+n2+"&tr1="+tr1+"&tr2="+tr2+"&fc1="+fc1+"&fc2="+fc2);
}

function result_calc() {
	if (myAjax.readyState == 4) {
		document.getElementById('popup').innerHTML = myAjax.responseText;
	}
}

function generate_dices(dices) {
	myAjax.open("POST","generator.php",false);
	myAjax.onreadystatechange = null;
	myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	myAjax.send("dices="+dices);
    if(myAjax.responseXML.getElementsByTagName("result")[0].childNodes[0].nodeValue == 1){
        return(1)
    }else{
        return(0)
    }
}

function send_form(){
	var n1 = document.getElementById("n1");
	var n2 = document.getElementById("n2");
	var tr1 = document.getElementById("tr1");
	var tr2 = document.getElementById("tr2");
	var fc1 = document.getElementById("fc1");
	var fc2 = document.getElementById("fc2");
	popup();
	if(generate_dices(n1.value) && generate_dices(n2.value)){
		request_calc(n1.value, n2.value, tr1.value, tr2.value, fc1.value, fc2.value);
	}
}

function popup() {
	var e = document.getElementById('popup_background');
	if (e.style.display == 'none') {
		document.getElementById('popup_background').style.display = '';
		document.getElementById('popup_background').style.visibility = 'visible';
		document.getElementById('popup').style.display = '';
		document.getElementById('popup').style.visibility = 'visible';
		document.onkeyup = alertkey;
	} else {
		document.getElementById('popup').innerHTML = "Calcolo dei risultati in corso...";
		document.getElementById('popup_background').style.display = 'none';
		document.getElementById('popup_background').style.visibility = 'hidden';
		document.getElementById('popup').style.display = 'none';
		document.getElementById('popup').style.visibility = 'hidden';
		document.onkeyup = null;
	}
}

function alertkey(e) {
	if(!e) {
		if( window.event ) {
			//Internet Explorer
			e = window.event;
		} else {
			return;
		}
	}
	if( typeof( e.keyCode ) == 'number'  ) {
		//DOM
		e = e.keyCode;
	} else if( typeof( e.which ) == 'number' ) {
		//NS 4 compatible
		e = e.which;
	} else if( typeof( e.charCode ) == 'number'  ) {
		//NS 6+, Mozilla 0.9+
		e = e.charCode;
	} else {
		return;
	}
  
	if(e == 27)
		popup();
}

