countVisit();

function countVisit() {

    // Get current domain

    var myHostName = document.location.protocol + "//" + document.location.hostname;
    var myReferrer = document.referrer;

    // Update visit counter if document referrer is not from this domain
    if (myReferrer.indexOf(myHostName) < 0) updateCounter("visit");

    // Update counter for this page
    countHit();
}

function countHit() {
    var counterBase = getCounterBase();
    updateCounter(counterBase);
    return;
}

function updateCounter(counterBase) {

    var myDirBase = getMyDirBase();
    var url =  document.location.protocol + "//" + document.location.host +
    	myDirBase + "imgcounter.php?filename=" + counterBase;
    var request = getHTTPObject();

    if (request) {
//	request.onreadystatechange = function() {
//	    displayResponse(request, counterBase);
//	}
	request.open("GET", url, true); 
	request.send(null); 
    }
}

function displayResponse(request) {

    if (request.readyState == 4) {
//	if (request.status == 200 || request.status == 304) {
//	    alert(request.responseText);
//	}
	alert("readyState: " + request.readyState + "\nstatus: " + request.status + "\ncounterBase: " + counterBase);
//	document.write("\n<!--\nreadyState: " + request.readyState +
//	    "\nstatus: " + request.status + "\n-->\n");
    }
}

function getMyDirBase() {

    var myLocation = document.location;
    var myPath = myLocation.pathname;

    // If pathname length is 1 or less, counter base is "index"

    if (myPath.length <= 1) return "/";

    // Get basename of current script name

    var dirEnd = myPath.lastIndexOf("/") + 1;

    return myPath.substring(0, dirEnd);
}

function getCounterBase() {

    var myLocation = document.location;
    var myPath = myLocation.pathname;

//  alert("myPath: " + myPath);

    // If pathname length is 1 or less, counter base is "index"

//  if (myPath.length <= 1) return "index";

    // Get basename of current script name

    var scriptStart = myPath.lastIndexOf("/") + 1;
    var extStart = myPath.indexOf(".");

    if (scriptStart <= 0 || extStart < 0) return "index";
    else return myPath.substring(scriptStart, extStart);
}

function getHTTPObject() {
    var xhr = false;
    if (window.XMLHttpRequest) {
	xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
	try {
	    xhr = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
	    try {
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch(e) {
		xhr = false;
	    }
	}
    }
    return xhr;
}
