var help = 0;
function trigger(ob, ID, USER) {
	if(help == 0) {
		ob.style.backgroundColor = '#ccffcc';
		ob.value = 'Hilfe aktiviert';
		help = 1;
		cAll(ID,USER,0);
	} else {
		ob.style.backgroundColor = '#ffcccc';
		ob.value = 'Hilfe deaktiviert';
		help = 0;
		cHide();
	}
}

function zeigeLoesung() {
	var ob = document.getElementById('loesung');
	switch(ob.style.display) {
		case 'none':
		ob.style.display = 'block';
		break;

		default:
		ob.style.display = 'none';
		break;
	}
}

function ajax() {
	try {
		req = window.XMLHttpRequest ? new XMLHttpRequest() :
			new ActiveXObject("Microsoft.XMLHTTP"); 
	} catch (e) {
		alert('ajax connection could not be established');
		req = null;
	}

	return req;
}

function cValue(ob, ID, USER, save) {
	if(help == 0)
		return;

	h = new Object();

	h[ob.id] = ob.value;
	var JSON = h.toJSONString();
	doku(JSON, ID, USER, 0);
}

function cAll(ID, USER, save) {
	if(help == 0 && save==0)
		return;

	h = new Object();

	var id;
	var f = document.getElementById("puzzle");
	var g = f.getElementsByTagName("input");

	for(var i=0; i<g.length; i++) {
		id = g[i].id;
		if(g[i].value != '')
			h[id] = g[i].value;
	}

	var JSON = h.toJSONString();
	doku(JSON, ID, USER, save);
}

function cHide() {
	var f = document.getElementById("puzzle");
	var g = f.getElementsByTagName("input");

	for(var i=0; i<g.length; i++) {
		document.getElementById(g[i].id).style.color = '#7777ff';
	}
}

function doku(JSON, ID, USER, save) {
	req = ajax(); 
	req.onreadystatechange = handleResponse;
	req.open('POST', '/wp-content/themes/hexadoku/solve.php');
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	var post = USER.length > 20 ? 'SESSION_ID' : 'USER';
	req.send("ID="+ID+"&"+post+"="+USER+"&save="+save+"&JSON="+JSON);
}

function handleResponse() {
	if(req.readyState == 4 && req.status == 200) { 

		//DEBUGGER
		//document.getElementById('debug').innerHTML = req.responseText;

		var JSON = req.responseText.parseJSON();
		if(JSON.percent)
			document.getElementById('percent').innerHTML = JSON.percent;

		if(JSON.modified)
			document.getElementById('modified').innerHTML = JSON.modified;

		if(help == 0)
			return;

		for(var o in JSON.h) {
			try {
				document.getElementById(o).style.color = (JSON.h[o] == 0) ? '#ff0000' : '#7777ff';
			} catch(e) {
				//Element not found
			}
		}
	}
}
