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);
		}
	});
}


ajax_submitPOST = function(URL, parameters, afterOnComplete)
{
	new Ajax.Request(URL, {
		method: 'post',
		parameters: parameters, 
		onComplete: function(ajax, afterOnComplete) {
			ajaxOnComplete(ajax, afterOnComplete);
		}
	});

}






forgotpwFormSubmit = function()
{
	$('forgotpwForm').request({
		onCreate: function()
		{
			$('responsebox').hide()
		},
		onComplete: function(ajax)
		{
			res = ajax.responseText.evalJSON();

			if (res.user.id)
			{
				$('forgotpwForm').hide();
				$('forgotpwForm_ok').show();
			}
			
			else
				$('responsebox').show()
		}
	})
}




userEditFormSubmit = function()
{
	$('userEditForm').request({
		onCreate: function()
		{
			$('responsebox').update()
		},
		onComplete: function(ajax)
		{
			$('maincolumn').scrollTo();
			res = ajax.responseText.evalJSON();
			$('responsebox').update(res.message)
		}
	})
}



ajax_sendEmailCode = function()
{
	new Ajax.Request(
		'/site/ajax.php?cmd=sendEmailCode&email=' + encodeURI($F('email')), 
		{
			onCreate: function()
			{
				$('responsebox').update()
			},
			onComplete: function(ajax) {
				$('maincolumn').scrollTo();
				response = ajax.responseText.evalJSON();
				$('responsebox').update(response.message);
			}
		}
	);
}



var ajaxpack = new Object();


ajaxpack.insertUser = function()
{
	new Ajax.Request(
		'/site/ajax.php?cmd=userreg', 
		{
			parameters: $('userregform').serialize(), 
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onComplete: function(ajax) {
				$('loadingmsg').hide();

				response = ajax.responseText.evalJSON();

				if (response.result)
				{
					window.scrollTo(0, 0);
					$('userregform').hide();
					$('userregform_ok').show();
				}
				else
				{
					$('maincolumn').scrollTo();
					$('responsebox').update(response.error);
				}
			}
		}
	);
}



ajaxpack.updateUser = function()
{
	new Ajax.Updater(
		'responsebox', 
		'/site/ajax.userreg.php', 
		{
			parameters: $('userregform').serialize(), 
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onComplete: function(ajax) {
				$('loadingmsg').hide();
				$('maincolumn').scrollTo();
			}
		}
	);
}



ajaxpack.login = function()
{
	new Ajax.Request(
		'/site/ajax.login.php', 
		{
			parameters: $('loginform').serialize(), 
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onComplete: function(ajax) {
				$('loadingmsg').hide();
				if (ajax.responseText)
				{
					$('responsebox').hide();
					location.reload();
				}
				else
					$('responsebox').show();
			}
		}
	);
}




ajaxpack.logout = function()
{
	new Ajax.Request(
		'/site/ajax.logout.php', 
		{
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onComplete: function() {
				location.reload();
			}
		}
	);
}



ajaxpack.intoCart = function(n)
{
	var quantity = $F('quantity_' + n);
	if ($('variantIndex'))
		var variantIndex = $F('variantIndex');
	else
		var variantIndex = '';
	
	new Ajax.Request(
		'/site/ajax.intoCart.php', 
		{
			parameters: 'productId=' + n + '&quantity=' + quantity + '&variantIndex=' + variantIndex, 
			onComplete: function(ajax) {
				//alert(ajax.responseText);
				ajaxpack.updateCartBox();
				$('quantity_' + n).value = 1;
			}
		}
	);
	alert('A termék a kosárba került.');
}



ajaxpack.updateCartBox = function(n)
{
	new Ajax.Updater(
		'cart-overview', 
		'/site/ajax.updateCartBox.php'
	);
}


ajaxpack.removeItemFromCart = function(n)
{
	new Ajax.Request(
		'/site/ajax.removeItemFromCart.php?itemId=' + n, 
		{
			onComplete: function(ajax) {
				location.reload();
			}
		}
	);
}


ajaxpack.emptyCart = function()
{
	new Ajax.Request(
		'/site/ajax.emptyCart.php', 
		{
			onComplete: function(ajax) {
				location.reload();
			}
		}
	);
}


ajaxpack.updateCartContent = function()
{
	new Ajax.Request(
		'/site/ajax.updateCartContent.php', 
		{
			parameters: $('cartform').serialize(), 
			onComplete: function(ajax) {
				location.reload();
			}
		}
	);
}


ajaxpack.submitOrder = function()
{
	new Ajax.Updater(
		'ajaxfeedback', 
		'/site/ajax.php?cmd=submitOrder', 
		{
			parameters: $('orderform').serialize(), 
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onComplete: function(ajax) {
				$('loadingmsg').hide();
				if (!ajax.responseText)
				{
					$('orderform').hide();
					$('orderform_ok').show();
					ajaxpack.updateCartBox();
				}
				$('maincolumn').scrollTo();
			}
		}
	);
}



ajaxpack.displayProducts = function(cid, query_string)
{
	new Ajax.Updater(
		'productlist', 
		'/site/ajax.displayProducts.php?cid=' + cid + '&' + query_string, 
		{
			onCreate: function() {
				$('loadingmsg').show();
			}, 
			onLoaded: function() {
				$('loadingmsg').hide();
			},
			onComplete: function() {
				window.scrollTo(0,0);
				initLightbox();
			}
		}
	);
}




