

/*
	durgle.ajax.js
	version 1.7
	first created: 10/27/03
	last revised: 9/16/07
	http://www.durgle.com
	edward@durgle.com
*/


// -------- BEGIN AJAX -----------


// Make sure that all of the form is filled out
function GetParams(frm) {
	aForm = document.forms[frm];
	formLength = aForm.elements.length;
	Params = "";
	for (i = 0; i < formLength; i++) {
		formElementType = aForm.elements[i].type;
		formElementValue = aForm.elements[i].value;
		formElementName = aForm.elements[i].name;
		formElementID = aForm.elements[i].id;
		if (formElementType == "text" || formElementType == "password") {
			if (i == 0) {
				Sym = "?";
			} else {
				Sym = "&";
			}
			Params += Sym + formElementName + "=" + formElementValue;
		}
	}
	return Params;
}


// Get a browser independent XMLHTTP Object
function GetXMLHTTP() {
	var XMLHTTP = false;
	if (window.XMLHttpRequest) {
		XMLHTTP = new XMLHttpRequest()
  	} else if (window.ActiveXObject) {
		try {
			XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP")
		} catch (e) { 
			try {
        			XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
      		} catch (E) {
        			XMLHTTP = false;
      		}
    		}
  	}
	return XMLHTTP;
};


// Pass a server side response as a javascript function
function Ajax2Function(url) {
	var XMLHTTP = new GetXMLHTTP();
	// Compatibility with IE 5.0
	// Send the Request
	if (XMLHTTP) {
		XMLHTTP.onreadystatechange = function stateChange() {
			if (XMLHTTP && XMLHTTP.readyState == 4) {
				// Got something back..
				if (XMLHTTP.status == 200) {
					// Check to see if the response was good
					var response = XMLHTTP.responseText;
					if(debug) {
						alert(response);
					}
					eval(response);
				} else if(debug){
					document.write(XMLHTTP.responseText);
				}
			}
		}
		// open the page
		XMLHTTP.open("GET", url, true);
		// send the data
		XMLHTTP.send(null);
	}
}


// Pass a server side response as a javascript function
function InnerFromAJAX(url, params, obj_id, execAfterEval) {
	var XMLHTTP = new GetXMLHTTP();
	// Compatibility with IE 5.0
	if (params == null) {
		params = '0';
	}
	// Send the Request
	if (XMLHTTP) {
		XMLHTTP.onreadystatechange = function stateChange() {
			if (XMLHTTP && XMLHTTP.readyState == 4) {
				// Got something back..
				if (XMLHTTP.status == 200) {
					// Check to see if the response was good
					var response = XMLHTTP.responseText;
					if(debug) {
						alert(response);
					}
					document.getElementById(obj_id).innerHTML = response;
					if(debug) {
						alert(execAfterEval);
					}
					eval(execAfterEval);
				} else if(debug){
					document.write(XMLHTTP.responseText);
				}
			}
		}
	// open the page
	XMLHTTP.open("GET", url+params, true);
	// send the data
	XMLHTTP.send(null);
	}
}


function InstantAJAX(instantFile, instantDIV, instantIndicator, instantForm, execAfterEval) {
	document.getElementById(instantIndicator).style.display = "block";
	var XMLHTTP = new GetXMLHTTP();
	// Compatibility with IE 5.0
	Params = GetParams(instantForm);
	// Send the Request
	if (XMLHTTP) {
		XMLHTTP.onreadystatechange = function stateChange() {
			if (XMLHTTP && XMLHTTP.readyState == 4) {
				// Got something back..
				if (XMLHTTP.status == 200) {
					// Check to see if the response was good
					var response = XMLHTTP.responseText;
					if(debug) {
						alert(response);
					}
					document.getElementById(instantDIV).innerHTML = response;
					if(debug) {
						alert(execAfterEval);
					}
					eval(execAfterEval);
					document.getElementById(instantIndicator).style.display = "none";
				} else if(debug){
					document.write(XMLHTTP.responseText);
				}
			}
		}
	// open the page
	XMLHTTP.open("GET", instantFile + Params, true);
	// send the data
	XMLHTTP.send(null);
	}
}


// -------- END AJAX -----------