
function toggleButtons(state, formName) {
	if (formName) var inputs = document.forms[formName].getElementsByTagName('input');
	else var inputs = document.getElementsByTagName('input');
	for (i = 0; i < inputs.length; i++) {
		if (inputs[i].type == 'button' || inputs[i].type == 'submit') inputs[i].disabled = state;
	}
}

var formSuccess = function(t) {
	toggleButtons(0);
	kill();
	eval(t.responseText);
}

var formError = function(t) {
	toggleButtons(0);
	kill();
	alert('Error ' + t.status + ' -- ' + t.statusText);
}

function ajaxSubmit(formName, url, queryStr) {
	toggleButtons(1, formName);
	startActivity();
	var request = new Ajax.Request(url, {method:'post', postBody:(Form.serialize(formName)+'&'+queryStr), onSuccess:formSuccess, onFailure:formError});
}

function ajaxRequest(url, queryStr) {
	startActivity();
	var request = new Ajax.Request(url, {method:'post', postBody:queryStr, onSuccess:formSuccess, onFailure:formError});	
}

function showAndTell(box, boxClass, title, titleTxt, content, contentTxt, scrollToElem, promo) {

	var displayFunc = function(box, boxClass, title, titleTxt, content, contentTxt) {
		if ($(box).style.display == 'none') {
			$(title).innerHTML = titleTxt;
			$(content).innerHTML = contentTxt;
			if (promo) $(box).className = boxClass;
			else $(content).className = boxClass;
			new Effect.Appear(box, {duration:0.3});
		} else {
			new Effect.Opacity(box, {from:1.0, to:0.1, duration:0.3, afterFinish:function() {
				$(title).innerHTML = titleTxt;
				$(content).innerHTML = contentTxt;
				if (promo) $(box).className = boxClass;
				else $(content).className = boxClass;
				new Effect.Opacity(box, {from:0.1, to:1.0, duration:0.2});
			} });
		}
	}

	if (scrollToElem) {
		new Effect.ScrollTo(scrollToElem, {duration:0.1, afterFinish:displayFunc(box, boxClass, title, titleTxt, content, contentTxt)});
	} else {
		displayFunc(box, boxClass, title, titleTxt, content, contentTxt);
	}

}

function toggleChecks (formId, state, prefix) {
	var elems = $(formId).getElementsByTagName('input');
	for (var i = 0; i < elems.length; i++) {
		if (prefix) {
			if (elems[i].type == 'checkbox' && elems[i].id.substr(0, prefix.length) == prefix) eval("elems[i].checked = "+state+";");
		} else {
			if (elems[i].type == 'checkbox') eval("elems[i].checked = "+state+";");
		}
	}
}

function ifKey(keypress, needle) {
	key = keypress.keyCode;
	if (!key) key = keypress.charCode;
	if (key == needle) return true;
}