function hide(id) { document.getElementById(id).style.display = 'none'; }
function show(id) { document.getElementById(id).style.display = 'block'; }
function hideDiv(div) { div.style.display = 'none'; }
function showDiv(div) { div.style.display = 'block'; }
function enable(id) { document.getElementById(id).removeAttribute('readonly'); }
function disable(id) { document.getElementById(id).setAttribute('readonly',true); }
function toggle(id) { if (document.getElementById(id).style.display == 'none' || (document.getElementById(id).className == 'hidden' && document.getElementById(id).style.display == '')) { show(id); } else { hide(id); } }
function getvalue(id) { return document.getElementById(id).value; }
function setvalue(id,val) { return document.getElementById(id).value = val; }

function addEvent(elm, evType, fn, useCapture){
    if (elm.addEventListener)
    {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      return r;
    } else {
      elm['on' + evType] = fn;
    }
}

function removeDiv(elm) {
	elm.parentNode.removeChild(elm);
}

function cloneBefore(original, copycat) {
	var newthing = document.createElement('div');
	newthing.innerHTML = original.innerHTML;
	newthing.style.display = 'block';
	copycat.parentNode.insertBefore(newthing, copycat);
}

function transformToAjax(form, result, noreset, hideafter) {
	var waiting = document.createElement('div');
	waiting.innerHTML = '<img src="images/loading.gif" alt="" /> Loading, please wait...';
	form.parentNode.insertBefore(waiting, form);
	hideDiv(form);
	if (result === false) {
		// Create a form result div - remove previous one if already created
		if (document.getElementById('formresult')) {
			document.getElementById('formresult').parentNode.removeChild(document.getElementById('formresult'));
		}
		var resultant = document.createElement('div');
		resultant.setAttribute('id','formresult');
		resultant.className = 'infomsg';
		form.parentNode.insertBefore(resultant, form);
	} else var resultant = document.getElementById(result);
	var status = AjaxRequest.submit(
	    form
	    ,{
	      'timeout':25000,
	      'onTimeout':function(req){ alert('Your request timed out. Please try again.'); showDiv(form); form.parentNode.removeChild(waiting); },
	      'onSuccess':function(req){ resultant.innerHTML = req.responseText; if (noreset !== true) form.reset(); if (hideafter === false) showDiv(form); form.parentNode.removeChild(waiting); },
	      'onError':function(req){ alert('Your request was not completed. Server response: '+req.statusText); showDiv(form); form.parentNode.removeChild(waiting); }
	    }
	  );
	return false;
}

function transformToAjax2(params) {
	return transformToAjax(params['form'],params['result'],params['noreset'],params['hideafter']);
}
