// Create the Microsoft ActiveXObeject
function doAjax(url,responseType)	{
	if (window.XMLHttpRequest) {
		ajaxObj = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp",	"MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0",	"MSXML2.XmlHttp.5.0"];
		for (var i = avers.length -1; i >= 0; i--)
		{
			try {
				ajaxObj = new ActiveXObject(avers[i]);
			} catch(e) {}
		}
	}
	if (responseType==undefined) {   // if not specified, assume it's required
		ajaxObj.onreadystatechange = doProcessRequest;
	}
	else if (responseType == "populateSelect") {
		ajaxObj.onreadystatechange = doProcessRequestSelect;
    }
	else if (responseType == "populateSelectWithPick"){
		ajaxObj.onreadystatechange = doProcessRequestSelectPickNewest;
	}
	else if (responseType == "AddResumeToFavourites"){
		ajaxObj.onreadystatechange = doProcessRequestAddResumeToFavourites;
	}
	else if (responseType == "MoveResumeToFavourites"){
		ajaxObj.onreadystatechange = doProcessRequestMoveResumeToFavourites;
	}
	else if (responseType == "UpdateResumeSearchAgentSchedule"){
		ajaxObj.onreadystatechange = UpdateResumeSearchAgentSchedule;
	}
	else if (responseType == "populateCompanies"){
		ajaxObj.onreadystatechange = getCompanyList;
	}
	//document.write(url);
	ajaxObj.open("GET", url, true);
	ajaxObj.send(null);
}

function doProcessRequest()	{
	if (ajaxObj.readyState == 4) {
		if (ajaxObj.status == 200) {
			ajaxElem.innerHTML = ajaxObj.responseText;
		}
		else	{
			alert ( "Unable to retrieve data." );
		}
	}
}

function doProcessRequestSelect()	{
	// This function can populate a select box using 2 comma delimited lists separated by |||
	if (ajaxObj.readyState == 4) {
		if (ajaxObj.status == 200) {
			//ajaxObj.responseText
			var optionVal = new Array;
			var optionName = new Array;
			
			breaker = ajaxObj.responseText.indexOf("|||");
			optionValueList = ajaxObj.responseText.substr(0,breaker);
			optionNameList = ajaxObj.responseText.substr(breaker + 3,ajaxObj.responseText.length);

			optionVal = optionValueList.split(",");
			optionName = optionNameList.split(",");
			
			ajaxElem.length = 0;
			for (i = 0; i < optionVal.length; i++) {
				ajaxElem.options[ajaxElem.length] = new Option(optionName[i],optionVal[i]);
			}
		}
		else	{
			alert ( "Unable to retrieve data." );
		}
	}
}

function doProcessRequestSelectPickNewest()
{
	// This function can populate a select box using 2 comma delimited lists separated by |||
	if (ajaxObj.readyState == 4) 
	{
		if (ajaxObj.status == 200) 
		{
			//ajaxObj.responseText
			var optionVal = new Array;
			var optionName = new Array;
			var selectedItem = 0;
			
			breaker  = ajaxObj.responseText.indexOf("|||");
			breaker2 = ajaxObj.responseText.indexOf("||||");
			
			optionValueList = ajaxObj.responseText.substr(0,breaker);
			optionNameList = ajaxObj.responseText.substr(breaker + 3,(breaker2 - (breaker+3)));
			selectedItem = ajaxObj.responseText.substr(breaker2+4, ajaxObj.responseText.length-(breaker2+4));
			
			optionVal = optionValueList.split(",");
			optionName = optionNameList.split(",");
			
			ajaxElem.length = 0;
			for (i = 0; i < optionVal.length; i++) {
				ajaxElem.options[i] = new Option(optionName[i],optionVal[i]);
				
				if(trim(ajaxElem.options[i].value) == trim(selectedItem))
				{
					ajaxElem.options[i].selected = true;
				}
			}
		}
		else	
		{
			alert ( "Unable to retrieve data." );
		}
	}
}
