
function set_html_fields(json) {
	for (key in json) {
		if ($(key))
			$(key).innerHTML = json[key];
	}
}

/** Ajax GET **/
function ajxShowPage(u) {
	var options = {
		  method: 'get'
		, url: u
		, onSuccess: ajxShowPage_success
		, onFailure: ajxShowPage_fault
	};
	
	var r = new Request.JSON(options);
	r.send('');
}

// show page
function ajxShowPage_success(responseJSON, responseText) {
	if (responseJSON) {
		set_html_fields(responseJSON);
	} else {
		$('content_holder').innerHTML = responseText;
		// evaluate scripts
		var scripts = $('content_holder').getElementsByTagName('script');
		for (var x=0; x < scripts.length; x++) {
			eval(scripts[x].innerHTML);
		}
	}
	
}

function ajxShowPage_fault(xhr) { alert('Error: ' + xhr.responseText); } // "unused" function ;)


/** Ajax POST **/
function ajxPost(form_id, handler) {
	var options = {
		  method: 'post'
		, url: $(form_id).action.toString()
		, onSuccess: handler
		, onFailure: ajxPost_fault
	};
	
	var r = new Request.JSON(options);
	r.post($(form_id));
}
function ajxPost_fault(f) { alert('Error: ' + f.responseText); }	// "unused" function ;)

/** Ajax GET **/
function ajxGet(url, handler) {
	var options = {
		  method: 'get'
		, url: url
		, onSuccess: handler
		, onFailure: ajxGet_fault
	};
	
	var r = new Request.JSON(options);
	r.get();
}
function ajxGet_fault(f) { alert('Error: ' + f.responseText); }	// "unused" function ;)


