function executeXMLHTTPAsyncronic(page, query, output, attribute) {
    initAJAX();
    // Almacenar en el control la funcion que se invocara cuando
    // la peticion cambie de estado
    http_request.onreadystatechange = function() {
        if (http_request.readyState == 4) {
            // Comprobar si la respuesta ha sido correcta (HTTP 200)
            if (http_request.status == 200) {
                // Escribir el resultado en la pagina HTML mediante DHTML
                output.setAttribute(attribute, http_request.responseText);
            }
        }
    }
    // Enviar la peticion
    http_request.open("POST", page, true);
    http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    http_request.send(query);
}
function executeXMLHTTPSyncronic(page, query) {
    initAJAX();
    // Enviar la peticion
    http_request.open("POST", page, false);
    http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    http_request.send(query);
    return http_request.responseText;
}
function initAJAX() {
    // Crear el control XMLHttpRequest segun el navegador
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
            }
        }
    }
}

function writeCounterHit(fileName) {
    var page = "/wcounterHit.php";
    var query = 'fileName=' + fileName;
    executeXMLHTTPSyncronic(page, query);
}
