var ajax = new sack();
var elementHeight = 0;
var toDo;
function whenLoading(){
	//var e = document.getElementById(ajax.element);
	//e.innerHTML = "<p>Sending Data...</p>";
}

function whenLoaded(){
	//var e = document.getElementById(ajax.element);
	//e.innerHTML = "<p>Data Sent...</p>";
}

function whenInteractive(){
	var e = document.getElementById(ajax.element);
	if (e && e.className == "delay") {
		ajax.displaySpinner = true;
		setTimeout(removeSpinner, 300);
	} else {
		ajax.displaySpinner = false;
	}
}

function removeSpinner() {
	if (ajax.response == "") {
		setTimeout(removeSpinner, 200);
	} else {
		ajax.displaySpinner = false;
		try {
			document.getElementById('spinner').style.display="none";
		} catch (err) {}
	}
}

function whenComplete(){
	if (ajax.displaySpinner) {
		setTimeout(whenComplete, 100);
	} else {
		var e = document.getElementById(ajax.element);	
		ajax.elementObj.innerHTML = ajax.response;
		removeSpinner();
		e.style.visibility="visible";
		if (toDo) {
			toDo.call();
		}
	}
}

function doit(formObj, target, toDo){
	ajax.response = "";
	this.toDo = toDo;
	var varsString = "";//"page=" + formObj.page.value;
	//varsString += "&primaryKey=" + formObj.primaryKey.value;
	ajax.form = formObj;
	var formElements = formObj.elements;
	var i;
	for (i = 0; i < formElements.length; i++) {
		formElements[i].value = formElements[i].value.replace(/&/g, "amp;");
		formElements[i].value = formElements[i].value.replace(/=/g, "|equals|");
		ajax.setVar(formElements[i].name, (formElements[i].type == "checkbox")? formElements[i].checked : formElements[i].value);
	}
	ajax.requestFile = "form_action.php";
	ajax.method = "POST";
	if (!target || typeof(target) == "undefined") {
		target = "replaceme";
	}
	ajax.element = target;
	if (target.className = 'delay') {
		ajax.displaySpinner = true;
	} else {
		ajax.displaySpinner = false;
	}
	ajax.onCompletion = whenComplete;
	ajax.onInteractive = whenInteractive;
	//ajax.onLoading = whenLoading;
	//ajax.onLoaded = whenLoaded;
	
	page = formObj.page.value;
	ajax.runAJAX(varsString);
}

function showFeedbackForm(formObj){
	ajax.encodeURIString = false;
	var varsString = "";
	var formElements = formObj.elements;
	var i;
	for (i = 0; i < formElements.length; i++) {
		ajax.setVar(formElements[i].name, (formElements[i].type == "checkbox")? formElements[i].checked : formElements[i].value);
	}
	ajax.requestFile = "includes/form_action.php";
	ajax.method = "POST";
	ajax.element = 'feedback';
	//ajax.onLoading = whenLoading;
	//ajax.onLoaded = whenLoaded; 
	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = ajaxScrollToFeedbackForm;
	ajax.runAJAX(varsString);
}

