var state = false;
$(document).ready(

	function() {
		$("#mainForm").not($(".noAjax")).submit(function() {
			$(".fc-tbx").remove();
			//var url = $("#mainForm").attr('action');
			var url = $("#mainForm .btn").attr("route");
			
			$.ajax({
				url : url,
				type : 'POST',
				cache : false,
				async : false,
				data : $("#mainForm").serialize(),
				timeout : 30000,
				error : function() {
					return true;
				},
				success : function(data) {
					if (data.Key) {
						var errorId = $("#mainForm [name='"+ data.Key+ "["+data.FirstError+"]']:first"),errorPlace;
															
						if (errorId.length > 0) {
							errorPlace = errorId.parent();
						}
						else {
							errorPlace = $("#mainForm [name='"+ data.Key+ "["+data.FirstError+"]']:first").parent();
						}
						formError.scrollToError(errorPlace);

						errorPlace.prepend(formError.getError(data.Messages[data.FirstError]));
					}
					else {
						jQuery.each(jQuery('input[name^="Newsletter"]'), function(k,v) {jQuery(this).attr('name', jQuery(this).attr('id'))});
						jQuery.each(jQuery('input[name^="TITLE_FIELD"]'), function(k,v){jQuery(this).attr('name', 'TITLE_FIELD');});
						
						if (globalSwf !== undefined) {
							$(window).bind("beforeunload", function() {
							    return confirm('Es werden noch Daten hochgeladen! Möchten Sie wirklich diesen Vorgang abbrechen?');
							});
							generateUploadFolder(globalSwf); // start swf-Uploads, swf will submit the form afterwards
						}
						else {
							$('#mainForm').unbind("submit");
							$('#mainForm').submit();
						}
					}
				}
			});
			return false;
		});
	}
);

formError = {

	scrollToError : function(target){
		$('html,body').animate(
			{ scrollTop: ($(target).offset().top)-50 },
			1000,
			function (){
				//location.hash = target;
			});
	},
	
	getError : function(formErrors) {
		if (formErrors) {
			var o = '<div id="error" class="fc-tbx"><table height="100"><tr><td valign="bottom"><table width="300" border="0" cellpadding="0" cellspacing="0"><tr><td class="tl"></td><td class="t"></td><td class="tr"></td></tr><tr><td class="l"></td><td class="c"><div class="err"><p><ul>';
			for (errorKey in formErrors) {
				o += '<li>' + formErrors[errorKey] + '</li>';
			}
			o += '</ul></p></div><span onclick="formError.closeError(this)" class="close"></span></td><td class="r"></td></tr><tr><td class="bl"></td><td class="b"></td><td class="br"></td></tr></table></td></tr></table></div>';
			return o;
		}
	},
	
	closeError : function (item) {
		var elementToRemove = $('#error');
		elementToRemove.fadeOut('slow', function() {
			elementToRemove.remove();
		});
	}
};
