/* 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 }