function URLEncode(plaintext)
{
    // The Javascript escape and unescape functions do not correspond
    // with what browsers actually do...
    var SAFECHARS = "0123456789" +                    // Numeric
                    "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +    // Alphabetic
                    "abcdefghijklmnopqrstuvwxyz" +
                    "-_.!~*'()";                    // RFC2396 Mark characters
    var HEX = "0123456789ABCDEF";

    var encoded = "";
    for (var i = 0; i < plaintext.length; i++ ) {
        var ch = plaintext.charAt(i);
        if (ch == "+") {
            encoded += "%2B";
        }else
        if (ch == " ") {
            encoded += "+";                // x-www-urlencoded, rather than %20
        } else if (SAFECHARS.indexOf(ch) != -1) {
            encoded += ch;
        } else {
            var charCode = ch.charCodeAt(0);
            if (charCode > 255) {
                alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
                          "(URL encoding only supports 8-bit characters.)\n" +
                          "A space (+) will be substituted." );
                encoded += "+";
            } else {
                encoded += "%";
                encoded += HEX.charAt((charCode >> 4) & 0xF);
                encoded += HEX.charAt(charCode & 0xF);
            }
        }
    } // for

    return encoded;
};

/* THIS RUNS WHEN THE AJAX CALL IS LAUNCHED */
function item_loading(){
    new Effect.Appear('progress');
}

/* THIS RUNS WHEN THE AJAX CALL COMPLETES */
function item_complete(){
    new Effect.Fade('progress');
}

function addslashes(str) {
str=str.replace(/\'/g,'\\\'');
//str=str.replace(/\"/g,'\\"');
//str=str.replace(/\\/g,'\\\\');
//str=str.replace(/\0/g,'\\0');
return str;
}
function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

function call_ajax(url,http_host){

	document.getElementById('ajax-response').innerHTML = ''; //clean up first - in case we already have a resp there
	
	var query_string = 'action=add_click';
	query_string += '&url='+URLEncode(url);

	
	//THE AJAX CALL - needs prototype.js
	new Ajax.Updater('ajax-response','http://'+http_host+'/ajax.php',{onComplete:function(request){pageRedirect(url)},parameters:query_string, insertion:Insertion.Bottom, asynchronous:true, evalScripts: true, onFailure: function(request){reportError(request)}});
//	location.href=url;
    return false;


}

function pageRedirect(url)
{     
   window.location=url;   
}

function reportError(request)
{
	alert('Sorry. There was an error on page redirect.');
}
