	/*
		Scoring Articles
		(c) 2007 by Xul.fr
		Licence Mozilla 1.1
	*/	


	var dataURL = null;

	function read(url, fun, element)
	{ 
		var xhr=createXHR();

		xhr.onreadystatechange=function()
		{ 
			if(xhr.readyState == 4)
			{
				var content = xhr.responseText;	
				fun(content, element);
			} 
		}; 
		
		xhr.open("GET", url + "?nocache=" + Math.random(),  true);
		xhr.send(null); 

	} 


	function writeFile(url)
	{ 
		var xhr = createXHR();

		xhr.onreadystatechange=function()
		{ 
			if(xhr.readyState == 4)
			{
				// nothing for now
			}
		}; 
		xhr.open("POST", "demo-mark-store.php", true);		// call the counter with a name of counter file
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("file=" + url); 
	} 
	
	function localize(url)	// full URL is processed in a different manner.
	{
		var prefix = "http://www.xul.fr/javascript/";
	
		if(url.substr(0, prefix.length) == prefix)
			url = url.substr(prefix.length);
			
		return url;	
	}
	
	function changeExtension(url, ext)	// creating a counter file
	{
		var x = url.lastIndexOf(".");
		url = url.slice(0, x);
		return url +  ext;		
	}
	
	function display(score, element)	// integer argument
	{
		if(score < 10)
			element.innerHTML = "0" + score;
		else
		{
			element.innerHTML =  score.toString();
		}
	}

	function initialize(value, element)
	{
		if(value == null || value.length == 0) value = "00";
		display(Number(value), element);	
	}

	function mark(element)
	{
		display(Number(element.innerHTML) + 1, element);
		writeFile(dataURL); 		
	}


	window.onload=function()
	{
		dataURL = changeExtension(localize(location.href), ".ctr"); // creating a count filename
		var element = document.getElementById("mark");
		read(dataURL, initialize, element);	// read count file
	}

