// loads specified source into a specified div
var do_ajax = function (sURL,div,fade,form,post_callback) {
	var method='GET';

	var form_name = '';
	if (form) {
		form_name = form.tagName.toLowerCase();
	}

	if (form_name == 'form') {
		method='POST';
	}

	var AjaxObject = { 
		handleSuccess:function(o){
			if (fade!='') {
				var fadeOut = new YAHOO.util.Anim(div, { opacity: { to: 0 } }, 0.5);
				var fadeIn = function(type, args) {

					if(o.responseText !== undefined){
						if (typeof div == 'string') {
							location.href = div;
						}
						else {
							div.innerHTML = o.responseText;
						}
						// this is to process stuff after responseText is received
						post_callback();
					}
					else {
						div.innerHTML = "Error sending Survey - please hit 'back' and resend.";
					}
					var fadeIn = new YAHOO.util.Anim(div, { opacity: { to: 1 } }, 0.5);
					fadeIn.animate();
				};
				fadeOut.onComplete.subscribe(fadeIn);
				fadeOut.animate();
			}
			else {
					if(o.responseText !== undefined){
						div.innerHTML = o.responseText;
						// this is to process stuff after responseText is received
						post_callback();
					}
					else {
						div.innerHTML = "Error sending Survey - please hit 'back' and resend.";
					}
			}

		},
		handleFailure:function(o){
			if(o.responseText !== undefined){
				div.innerHTML = o.responseText;
			}
			else {
				div.innerHTML = "Error sending Survey - please hit 'back' and resend.";
			}
		},
		startRequest:function(method,sURL){
			if (form_name == 'form') {
				YAHOO.widget.Button.addHiddenFieldsToForm(form);
				YAHOO.util.Connect.setForm(form);
			}
			YAHOO.util.Connect.asyncRequest(method, sURL, callback);
		}
	};

	var callback =
	{
		success:AjaxObject.handleSuccess,
	  	failure:AjaxObject.handleFailure,
		scope: AjaxObject
	};

	AjaxObject.startRequest(method,sURL);
}
