
function getRequestInstance() {
	// Firefox, Safari...
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	// Internet Explorer
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	// *snif*
	return null;
}

function statusCommand(scriptName, command) {

	// lance la requête
	url = "/~bayo/statusCommand.php"
	var request = getRequestInstance();
	request.open("POST", url, true);
	
	// callback
	request.onreadystatechange = function() {
		if (request.readyState != 4) return;
		var xml = request.responseXML;
		updateButton(xml)
	}
	
	request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	param = ''
	param += 'scriptName=' + encodeURI(scriptName);
	param += '&command=' + command
	request.send(param);
}

function updateButton(xml) {
	if (!xml || !xml.documentElement) {
		trace(xml);
		return false;
	}

	doc = xml.documentElement
	if (doc.nodeName != 'status') return
	if (doc.getAttribute('updated' != 'yes')) return
	scriptId = doc.getAttribute('id')
	running = doc.getAttribute('status') == 'running'

	startButton = document.getElementById(scriptId + '_start');
	stopButton  = document.getElementById(scriptId + '_stop');
	startButton.disabled = running
	stopButton.disabled  = !running
}

function start(scriptName) {
	statusCommand(scriptName, 'start')
}

function stop(scriptName) {
	statusCommand(scriptName, 'stop')
}

function setRuleDisplay(ruleName, display) {
	ss = document.styleSheets;
	for(i=0; i<ss.length; i++) {
		for(j=0; j<ss[i].cssRules.length; j++) {
			if (ss[i].cssRules[j].selectorText != ruleName) continue
			ss[i].cssRules[j].style.display = display
			return
		}
	}
}

function displayStats() {
	setRuleDisplay('.scriptStats', 'table-cell')
	setRuleDisplay('.scriptLinks', 'none')
	document.getElementById('displayStats').disabled = true
	document.getElementById('displayLinks').disabled = false
}

function displayLinks() {
	setRuleDisplay('.scriptStats', 'none')
	setRuleDisplay('.scriptLinks', 'table-cell')
	document.getElementById('displayStats').disabled = false
	document.getElementById('displayLinks').disabled = true
}
