/* ** Form transmit via AJAX/JQuery  ** */
var cachedThrobber = new Image;
cachedThrobber.src = "/media/throbber.gif";
function submitAjaxForm(){
	var submitData = "nGAP&ajax&";
	var formId = this.id
	var inputFields = $("input", this);
	var formAction = $(this).attr("action");
	for (var i = 0; i < inputFields.length; i++) {
		submitData += "&" + $(inputFields[i]).attr("name") + "=" + $(inputFields[i]).attr("value");
	}
	$(this).append('<div class="wait" style="height: ' + $(this).parent().height() + 'px"><img src="/media/throbber.gif" /></div>');
	
	$.ajax({
		type: "POST",
		url: formAction,
		async: true,
		data: submitData,
		success: function(msg){
			$("#" + formId).replaceWith($("#" + formId, msg).submit(submitAjaxForm));
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			$("#" + formId).replaceWith('<form id="' + formId + '"><p class="fatal">' + messages.ajaxError(XMLHttpRequest, textStatus, errorThrown) + '</p></form>');
		}
	});
	
	return false;
}

function messages(){
	this.lang = null;
	var meta = document.getElementsByTagName("meta");
	for (i = 0; i < meta.length; i++) {
		if (meta[i].getAttribute("http-equiv") == "Content-Language") {
			this.lang = meta[i].getAttribute("content");
		}
	}
	
	this.ajaxError = function(XMLHttpRequest, textStatus, errorThrown){
		var ret = null
		
		switch (this.lang) {
			default:
			case "de":
				ret = "Leider ist ein Fehler bei der Übermittlung aufgetreten. Bitte versuchen Sie es später noch einmal.";
				break;
			case "en":
				ret = "Submit failed. Please try again later.";
				break;
		}
		return ret;
	}
}

var messages = new messages();

