window.addEvent('domready', function(){
	
		$('jsonform_submit').addEvent('click', function() {
			
			$('jsonform_ok').setStyle('display','none');
			
			var form = $('jsonform');
				var req = new Request.JSON({
					url: form.get('action'),
					onSuccess: function(jsonObj,txt) {
						if(!jsonObj) alert(txt);
						startjsonform(jsonObj);
					},
					onFailure: function() {
						alert('error');
					}
				}).send(form);
		});
	
		function startjsonform(data)
		{
			var haveError;
			var haveClose;
			var haveReload;
			
			data.each(function(row) {
				if(row.status) {
					$(row.id).addClass('inputerror');
					if(!haveError) haveError = row.error;
				}
				else $(row.id).removeClass('inputerror');
				
				if(row.close) {
					haveClose = true;
				}
				
				if(row.reload) {
					haveReload = true;
				}
			});
			
			if(haveError) alert(haveError);
			else if(haveClose) {
				
				$$('.jsonform').fade('out');
				(function() { 
					$$('.jsonform').setStyle('display', 'none'); 
					
					$('jsonform_ok').setStyle('display','block');
					$('jsonform_ok').fade('hide');
					$('jsonform_ok').fade('in'); 
				}).delay(500);

			}
			else if(haveReload) window.location.reload();
			else $('jsonform_ok').setStyle('display','block');
		}
	
});
