function sendAJAX(component,method,argumentCollection )
{	
	var theRequest = new Object();
	theRequest.component = component;
	theRequest.method = method;
	theRequest.argumentCollection = argumentCollection;
	
	var xmlhttp = getHTTML();
	try {
		var wddxer = new WddxSerializer();
		var theWDDX = wddxer.serialize(theRequest);	
		
		
		try {
			xmlhttp.open("POST", "/ajax.cfm", false);
		
			try{
				xmlhttp.setRequestHeader( "Content-type", "application/x-www-form-urlencoded");
				xmlhttp.setRequestHeader( "Cookie", document.cookie );

				xmlhttp.send("wddxPacket=" + escape(theWDDX));
				// now convert the wddx to a javascript object
		
				var wddxdes = new WddxDeserializer();
				var resultWDDX = wddxdes.deserialize(xmlhttp.responseText);
				return resultWDDX;
			} catch (e) {
				return false;
			}
			return false;
		} catch(e) {
			return false;
		}
	} catch(e) {
		return false;
	}
}


var MAX_DUMP_DEPTH = 10;

function dumpObj(obj, name, indent, depth) {
       if (depth > MAX_DUMP_DEPTH) {
              return indent + name + ": <Maximum Depth Reached>\n";
       }
       if (typeof obj == "object") {
              var child = null;
              var output = indent + name + "\n";
              indent += "\t";
              for (var item in obj)
              {
                    try {
                           child = obj[item];
                    } catch (e) {
                           child = "<Unable to Evaluate>";
                    }
                    if (typeof child == "object") {
                           output += dumpObj(child, item, indent, depth + 1);
                    } else {
                           output += indent + item + ": " + child + "\n";
                    }
              }
              return output;
       } else {
              return obj;
       }
}

function recordOutcome(fact,valu) {
    var http_request = true;
    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) {}
        }
    }
    http_request.open('GET', '/memetrics.cfm?fact='+fact+'&valu='+valu, true);
    http_request.send(null);
	return true;
}


function loadAd(objectId, componentId,divId) {
    var http_request = true;
    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) {}
        }
    }
    http_request.open('POST', '/bdc.cfm', true);
    params="objectId=" + objectId + "&componentId=" + componentId;
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", params.length);
	http_request.setRequestHeader("Connection", "close");
    http_request.onreadystatechange = function() { //Call a function when the state changes.
		if(http_request.readyState == 4 && http_request.status == 200 ) {
			document.getElementById(divId).innerHTML=(http_request.responseText);
		}
	}
    http_request.send(params);
	return true;
}
