var AjaxForm = Class.create({

	initialize: function(formId, onComplete, onSubmit) {
		var form = $(formId);
		
		if (!onComplete)
			onComplete = function(){};

		form.onsubmit = function(){return false};
		
		if (!form.action)
			form.action = location.href;
		
		form.observe('submit', function() {
			if (onSubmit)
				onSubmit();
			ajax_submitForm(this, onComplete);
		});

	}

});


ajaxOnComplete = function(ajax, afterOnComplete)
{
	//Dialog.closeInfo();
	try {
		response = ajax.responseText.evalJSON();
	}
	catch(e)
	{
	}

	if (typeof response == 'object') 
	{
		if (response.errors && response.errors.length)
			showErrorMessage(response.errors);
		else if (response.message)
//			new Message(response.message);
			showMessage(response);
		else if (response.redirect)
			location.href = response.redirect;
		else if (response.reload)
			location.reload();

		if (afterOnComplete)
			afterOnComplete(response);
	}
	else
		Modalbox.show(ajax.responseText);
}


ajax_submitForm = function(formId, afterOnComplete)
{
	//Dialog.info("Kis türelmet...", {width:200, showProgress: true, className: 'alphacube'});
	$(formId).request({ onComplete: function(ajax){
		ajaxOnComplete(ajax, afterOnComplete);
	}})
}



ajax_submitURL = function(URL, afterOnComplete)
{
	new Ajax.Request(URL, {
		method: 'get',
		onComplete: function(ajax) {
			ajaxOnComplete(ajax, afterOnComplete);
		}
	});
}


ajax_submitPostURL = function(URL, parameters, afterOnComplete)
{
	new Ajax.Request(URL, {
		method: 'post', 
		parameters: parameters, 
		onComplete: function(ajax) {
			ajaxOnComplete(ajax, afterOnComplete);
		}
	});
}


ajax_submitPost = function(parameters, afterOnComplete)
{
	new Ajax.Request(location.href, {
		method: 'post', 
		parameters: parameters, 
		onComplete: function(ajax) {
			ajaxOnComplete(ajax, afterOnComplete);
		}
	});
}

