function processWidget(strWidgetID, strPluginID, strTargetID, strTargetQuerystring){
	var strURL = "/__tools/_ajax/widgetProcessor.asp?widgetID=" + strWidgetID + "&targetID=" + strTargetID +  "&targetQS=" + strTargetQuerystring + "&pluginID=" + strPluginID + "&currentURL=" + location.pathname;
	var objFormElements = document.forms[strPluginID + strWidgetID].elements;
	var strPostData = "";

	//** compile form data into a string ready for posting
	for(var i = 0; i < objFormElements.length; i++){
		if (strPostData != "") strPostData = strPostData + "&";
		strPostData = strPostData + objFormElements[i].name + "=" + objFormElements[i].value.replace(/ /g, "+");
	} 

	if (strWidgetID != ""){
		//** create XML HTTP object
		if (window.XMLHttpRequest){
			//** FIREFOX
			objXMLHTTP = new XMLHttpRequest();

			//objXMLHTTP.onreadystatechange = reportStatus;
			objXMLHTTP.open("POST", strURL, false);
			objXMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			objXMLHTTP.send(strPostData);

			if (objXMLHTTP.status == 200) strAJAXResponse = objXMLHTTP.responseText;

		} else if (window.ActiveXObject) {
			objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
			// run the HTTP request
			if (strURL != ""){		
				objXMLHTTP.onreadystatechange = reportStatus;
				objXMLHTTP.open("POST", strURL, true);
				objXMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				objXMLHTTP.send(strPostData);
			}
		}

		document.getElementById("widget" + strTargetID).innerHTML = strAJAXResponse;
	}
}



function reportStatus(){
	// use error handling to prevent cross-browser errors
	try{
		// if object is ready
		if (objXMLHTTP.readyState == 4){ 
			// if HTTP status = OK (200)
			if (objXMLHTTP.status == 200){ 
				strAJAXResponse = objXMLHTTP.responseText;
			//	alert(strAJAXResponse);
			}else{
				// add error handling to complete or exit recursion if page cannot be loaded!!!
			}
		}
	}

	catch (e) {
		//do nothing - have reached end of records to process
	}
}