var submit = function(name){
	//alert(name);
	if($("#response_" + name).length <= 0)
	{
		alert("no respone-div found for '" + name + "'");
		return false;
	}
	$("#form_" + name).submit(function(e)
	{
		//alert(name);
		form = $("#form_" + name);
		response = $("#response_" + name);
		
		disableSubmitButtons();
		removeFieldErrorClass(form);
		
		$.ajax({
			type: "POST",
			url: form.attr("action"),
			data: form.serialize(),
			success: function(res){
				if(res.substr(0, 5) == "ajax:"){
					ajax_commands = res.substr(5, res.length).split(":c-split:");
					jQuery.each(ajax_commands,function(i, command){
						code = command.substr(0, 2);
						content = command.substring(3, command.length);
						switch(code){
							case "01":// redirect to content
								window.location = content;
								return false;
							break;
							
							case "02":// set response div with content
								response.hide();
								response.html(content);
								response.slideDown();
							break;
							
							case "03":// slide the form up, up and away!!!!
								form.slideUp();
							break;
							
							case "04"://set the src attr
								var split = content.split(":split:");
								var myid = split[0];
								var mysrc = split[1];
								$('#'+myid).attr("src", mysrc);
							break;
							
							case "05"://make red borders
								var fields = content.split(":");
								$.each(fields,function(i, field){
									var input = field.split(".");
									if(input[1])
										$("#" + input[1], form).addClass('field_error');
								});
							break;
							
							default:
								alert("unknown ajax-response code!");
								alert(command);
						}
						enableSubmitButtons();
					});
				}else{
					alert("the response from the application do not seem to be a valid ajax-response!");
					alert(res);
				}
			}
		});
		return false;
	});
};

var removeFieldErrorClass = function(form){
	$("input, textarea", form).each(function(){
		$(this).removeClass('field_error');
	});
}

var disableSubmitButtons = function(){
	$("input[type=submit], button[type=submit]").each(function(){
		$(this).attr("disabled", true);
		$('.spinner').each(function(){
			$(this).html(' <img src="/public/images/spinner.gif" alt="spinner">');
			$(this).show();
		});
	});
}

var enableSubmitButtons = function(){
	$("input[type=submit], button[type=submit]").each(function(){
		$(this).attr("disabled", false);
		$('.spinner').each(function(){
			$(this).hide();
		});
	});
}