if (typeof handleException != "function") {
	alert('Error: critical JavaScript component errors.js has not been loaded!');
} 

function getHttpRequest() {

	httpRequest = null;
	
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		httpRequest=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE6, IE5
		httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		throw pgmError("Your browser does not support ajax!", SEVERITY.critical);
	}
	return httpRequest;
}


	
function lookupOfficeNames(request, additional, target, getPost) {
	if (request.length > 0) {
		request = 'DoctorVisit_DoctorListJSON.action?officeId=' + request + additional;
		if (!getPost) {
			var getPost = "get";
		}
		var xmlHttp;
		if (window.XMLHttpRequest) {
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlHttp=new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			// code for IE6, IE5
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			throw pgmError("Your browser does not support ajax!", SEVERITY.critical);
		}
		
	
		xmlHttp.onreadystatechange   = function() {
			if (xmlHttp.readyState == 4) {
				if (!document.getElementById(target)) {
					throw pgmError("Target ajax output object not found on page!", SEVERITY.critical);
				} else {
//					alert(xmlHttp.responseText);
					var allNames = JSON.parse(xmlHttp.responseText);
					
					var setText = '';
					for(i=0; i<allNames.doctors.length; i++) {
						setText += "<option value=" + allNames.doctors[i].id + ">";

						setText += allNames.doctors[i].name + "</option>";
					}
					//alert(setText);
					document.getElementById(target).innerHTML = setText;
				}
			} else {
			}
		};
		
		
		try {
			if (getPost.toLowerCase() == "get") {
//				alert(request);
				xmlHttp.open("GET", request, true);
				xmlHttp.send(null);
			} else if (getPost.toLowerCase() == "post") {
				throw pgmError("Post not supported yet...", SEVERITY.warning);
			} else {
				throw pgmError("Undefined http method: " + getPost, SEVERITY.warning);
			}
		} catch (e) {
			handleException(e);
		}
	} else {
		if (document.getElementById(target)) {
			document.getElementById(target).innerHTML = "";
		}
	}
}

function lookupDoctorNames(officeId, targetSelect) {
	var date = new Date();
	request = 'DoctorVisit_DoctorListJSON?officeInstanceId=' + officeId + "&time=" + date.getTime();

	var xmlHttp;
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlHttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE6, IE5
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		throw pgmError("Your browser does not support ajax!", SEVERITY.critical);
	}
	

	xmlHttp.onreadystatechange   = function() {
		if (xmlHttp.readyState == 4) {
			if (!document.getElementById(targetSelect)) {
				throw pgmError("Target ajax output object not found on page!", SEVERITY.critical);
			} else {
				var allNames = JSON.parse(xmlHttp.responseText);
				
				
				var setText = '<option value="0">None</option>';
				for(i=0; i<allNames.doctorInstanceMasterList.length; i++) {
					setText += "<option value='" + allNames.doctorInstanceMasterList[i].instanceId + "'>";

					setText += allNames.doctorInstanceMasterList[i].lastName + ", " + allNames.doctorInstanceMasterList[i].firstName + "</option>";
				}
				document.getElementById(targetSelect).innerHTML = setText;
			}
		} else {
		}
	};
	
	xmlHttp.open("GET", request, true);
	xmlHttp.send(null);
}

function lookupFieldNames(request, additional, target, getPost) {
	if (request.length > 0) {
		request = 'AttachField_SearchJSON.action?name=' + request + additional;
		if (!getPost) {
			var getPost = "get";
		}
		var xmlHttp;
		if (window.XMLHttpRequest) {
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlHttp=new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			// code for IE6, IE5
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			throw pgmError("Your browser does not support ajax!", SEVERITY.critical);
		}
		
	
		xmlHttp.onreadystatechange   = function() {
			if (xmlHttp.readyState == 4) {
				if (!document.getElementById(target)) {
					throw pgmError("Target ajax output object not found on page!", SEVERITY.critical);
				} else {
//					alert(xmlHttp.responseText);
					var allNames = JSON.parse(xmlHttp.responseText);
					var odd = false;
					
					var setText = '';
					for(i=0; i<allNames.fields.length; i++) {
						if (odd) {
							setText += "<div class='bglBlue'>";
							odd=false;
						} else {
							setText += "<div>";
							odd=true;
						}
						setText += "<a href='" + allNames.fields[i].link + "'>" + allNames.fields[i].name + "</a></div>";
					}
					//alert(setText);
					document.getElementById(target).innerHTML = setText;
				}
			} else {
			}
		};
		
		
		try {
			if (getPost.toLowerCase() == "get") {
//				alert(request);
				xmlHttp.open("GET", request, true);
				xmlHttp.send(null);
			} else if (getPost.toLowerCase() == "post") {
				throw pgmError("Post not supported yet...", SEVERITY.warning);
			} else {
				throw pgmError("Undefined http method: " + getPost, SEVERITY.warning);
			}
		} catch (e) {
			handleException(e);
		}
	} else {
		if (document.getElementById(target)) {
			document.getElementById(target).innerHTML = "";
		}
	}
}



function ajaxRequest(request, target, changeFunction) {
	if (request.length > 0) {
		if (!getPost) {
			var getPost = "get";
		}
		var xmlHttp;
		if (window.XMLHttpRequest) {
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlHttp=new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			// code for IE6, IE5
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			throw pgmError("Your browser does not support ajax!", SEVERITY.critical);
		}
		
		if (!changeFunction)
		{
			xmlHttp.onreadystatechange   = function() {
				if (xmlHttp.readyState == 4) {
//					alert('yo');
					if (!target) {
						throw pgmError("Target ajax output object not found on page!", SEVERITY.critical);
					} else {
						var height = target.style.height;
						//alert(height);
						//alert(target.parentNode.innerHTML);
//						alert(xmlHttp.responseText);
						target.innerHTML = xmlHttp.responseText;
						//alert(target.innerHTML;
						target.style.height = height;
					}
				} else {
				}
			};
		} else {
			xmlHttp.onreadystatechange = changeFunction;
		}
		
		
		try {
			if (getPost.toLowerCase() == "get") {
				xmlHttp.open("GET", request, true);
				xmlHttp.send(null);
			} else if (getPost.toLowerCase() == "post") {
				throw pgmError("Post not supported yet...", SEVERITY.warning);
			} else {
				throw pgmError("Undefined http method: " + getPost, SEVERITY.warning);
			}
		} catch (e) {
			handleException(e);
		}
	} else {
		if (document.getElementById(target)) {
			document.getElementById(target).innerHTML = "";
		}
	}
}

function ajaxSubmit(formName, existingQuery, getQuery)
{
	if (!existingQuery) {
		var existingQuery = "";
	}
	
	var targetForm;
	if (!getQuery) {
		var getQuery = "AddVehicle_Submit.action";
	}
	
	getQuery += "?";
	if (formName && document.getElementById(formName))
	{
		targetForm = document.getElementById(formName);
		for (i=0; i<targetForm.elements.length; i++) 
		{
			getQuery += targetForm.elements[i].name + "=";
			getQuery += targetForm.elements[i].value + "&";
		}
		
		//getQuery += "&" + existingQuery;
		
		//alert(existingQuery);
		
		changeFunction = function(xmlHttp) {
					if (xmlHttp.readyState == 4) {
						if (!document.getElementById(target)) {
							throw pgmError("Target ajax output object not found on page!", SEVERITY.critical);
						} else {
							document.getElementById(target).innerHTML = "XY";
						}
					} else {
					}
				};
//		alert(getQuery);
		ajaxRequest(getQuery, document.getElementById("TB_ajaxContent"));
		var height = document.getElementById("TB_ajaxContent").offsetHeight;
		//document.getElementById("TB_window").style.height = height + 'px';
	}
}










