var loading_div = '<div style="text-align: center; width: auto; margin-top: 50px;"><img src="img/loading.gif" /></div>';

function update_content(url, tag)
{
	var content = $(tag);
	
	new Ajax.Updater(tag, url, {
		evalScripts: true,
		method: 'get',
		onFailure: function(transport) {
			content.update('An error has occured!');
		},
		onCreate: function(transport) {
			content.update(loading_div);
		}
	});
	
	return false;
}

function submit_form(form, tag, action)
{
	var content = $(tag);
	if (!action)
		action = form.action;
	
	new Ajax.Updater(tag, action, {
		evalScripts: true,
		method: 'post',
		postBody: form.serialize(),
		onFailure: function(transport) {
			content.update('An error has occured!');
		},
		onCreate: function(transport) {
			content.update(loading_div);
		}
	});

	return false;
}

var Script = {
	_loadedScripts: [],
	include: function(script){
		// include script only once
		if (this._loadedScripts.include(script)){
			return false;
		}
		// request file synchronous
		var code = new Ajax.Request(script, {
			asynchronous: false, method: "GET",
			evalJS: false, evalJSON: false
		}).transport.responseText;
		// eval code on global level
		if (Prototype.Browser.IE) {
			window.execScript(code);
		} else if (Prototype.Browser.WebKit){
			$$("head").first().insert(Object.extend(
				new Element("script", {type: "text/javascript"}), {text: code}
			));
		} else {
			window.eval(code);
		}
		// remember included script
		this._loadedScripts.push(script);
	}
};
