// this outer "if" makes sure the functions do not get declared multiple times on the same page.
if( ajaxenabled == undefined ){
    // Generate a random parameter to bi-pass cache'ing.
    randomParameter = function(){
        var uid = new Date().getTime();
        return uid;
    }
    // implement a String.trim() function.
    String.prototype.trim = function(){
        return this.replace(/^\s+|\s+$/g, '');
    };
    var http_request = false;
    // The url is the URL on the server which will be called for content.
    // The blockId is the span or div which will display the results of the call.
    makeRequest = function( url, callback ) {

        function ajaxBindCallback(){
            if (ajaxRequest.readyState == 4) {
                if (ajaxRequest.status == 200) {
                    if (ajaxCallback){
                        ajaxCallback( ajaxRequest.responseText );
                    } else {
                        // alert('no callback defined');
                    }
                } else {
                    // alert("There was a problem retrieving the data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
                }
            }
        }
        // use a local variable to hold our request and callback until the inner function is called...
        var ajaxRequest = null;
        var ajaxCallback = callback;
        // bind our callback then hit the server...
        if (window.XMLHttpRequest) {
            // moz et al
            ajaxRequest = new XMLHttpRequest();
            ajaxRequest.onreadystatechange = ajaxBindCallback;
            ajaxRequest.open("GET", url, true);
            ajaxRequest.send(null);
        } else if (window.ActiveXObject) {
            // ie
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            if (ajaxRequest) {
                ajaxRequest.onreadystatechange = ajaxBindCallback;
                ajaxRequest.open("GET", url, true);
                ajaxRequest.send();
            }
        }
    }
        var ajaxenabled = true;
} // end-if not already defined.
