$('document').ready(function(){
	
	$("#mainForm").submit(function() {
		var route = $("#mainForm .btn").attr("route");
		

		$(".fc-tbx").remove();

		$.ajax({
			url : route,
			type : 'POST',
			cache : false,
			async : false,
			data : $("#mainForm").serialize(),
			timeout : 30000,
			error : function() {
				$('#senden').removeAttr('disabled');
				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+ "[]']:first").parent();
					}
					errorPlace.prepend(getError(data.Messages));
				}
				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');})
					
					// newsletter uses emailvision redirect
					if ('http://tre.emv3.com/D2UTF8' === $("#mainForm").attr("action")) {
						$("#mainForm").unbind("submit");
						$("#mainForm").submit();
					}
					
					console.log()
					$.ajax({
						url : data.redirect,
						type : 'POST',
						cache : false,
						async : false,
						data : $("#mainForm").serialize(),
						success : function(data) {
							if (data.redirect) {
								$(location).attr('href', data.redirect);
							}
						}
					});
				}
			}
		});
	});
});

function getError(formErrors) {
    if (formErrors) {
        var o = '<div id="error" class="fc-tbx"><table height="100"><tr><td valign="bottom"><table 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="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;
    }
}

function closeError(item) {
	var elementToRemove = $('#error');
    elementToRemove.fadeOut('slow', function() {
        elementToRemove.remove();
    });
}
