protected void Page_Load(object sender, EventArgs e)
		{
			//try
			//{	
				var redirectAfterHandle = new BasketRequestHandler().HandleBasketRequest(Request.Form, HttpContext.Current.Request.Url);
				if (redirectAfterHandle == null || !redirectAfterHandle.Any())
				{
					return;
				}

				string redirectUrl;
				var url = redirectAfterHandle.Last().Url;
				if (url == HttpContext.Current.Request.Url)
				{
					redirectUrl = HttpContext.Current.Request.RawUrl;
				}
				else
				{
					redirectUrl = url.AbsoluteUri;	
				}
				
				if ((Request.Form.AllKeys.Any() && (Request.Form.AllKeys.Any(x => x == "disableReload") || Request.Form.AllKeys.Any(x => x == "disableRedirect"))))
				{
					return;
				}

				var validateOrderReffererKey = Request.Form.AllKeys.FirstOrDefault(x => x.ToLower() == "backtoreferreronerror");
				if (validateOrderReffererKey != null && redirectAfterHandle.Any(x => x.Validated == false))
				{
					var validateOrderRefferer = Request.Form[validateOrderReffererKey];

					if ((validateOrderRefferer.ToLower() == "true" || validateOrderRefferer.ToLower() == "backtoreferreronerror" || validateOrderRefferer.ToLower() == "on" || validateOrderRefferer == "1") && HttpContext.Current.Request.UrlReferrer != null)
					{
						redirectUrl = redirectUrl.Replace(HttpContext.Current.Request.Url.AbsolutePath, HttpContext.Current.Request.UrlReferrer.AbsolutePath);
					}
				}

				Response.Redirect(redirectUrl, false);
				
			//}
			//catch (ThreadAbortException)
			//{
			//}
			////catch (Exception ex)
			//{
			//	//throw;
			//	//Log.Instance.LogError(ex, "Unhandled exception during execution of uWebshop basket handler");
			//}
		}
		public ActionResult Handle()
		{
			var refferer = HttpContext.Request.UrlReferrer;

			var redirectAfterHandle = new BasketRequestHandler().HandleBasketRequest(Request.Form, refferer);

			if (Request.UrlReferrer == null)
			{
				return CurrentUmbracoPage();
			}

			foreach (var result in redirectAfterHandle)
			{
				Log.Instance.LogDebug("Handle Result: " + result.Action + "result.Success: " + result.Success + "result.Validated: " + result.Validated + "result.PostConfirmUrl: " + result.PostConfirmUrl);
			}
			
			var redirectUrl = HttpContext.Request.RawUrl;

			var postConfirmUrlHandler = redirectAfterHandle.LastOrDefault(x => x.PostConfirmUrl != null);

			if (postConfirmUrlHandler != null)
			{
				var postConfirmUrl = postConfirmUrlHandler.PostConfirmUrl;

				if (postConfirmUrl != null)
				{
					redirectUrl = postConfirmUrl.AbsoluteUri;
				}
			}

			var validateOrderReffererKey = Request.Form.AllKeys.FirstOrDefault(x => x.ToLower() == "backtoreferreronerror");
			if (validateOrderReffererKey != null && redirectAfterHandle.Any(x => x.Validated == false))
			{
				var validateOrderRefferer = Request.Form[validateOrderReffererKey];

				if ((validateOrderRefferer.ToLower() == "true" || validateOrderRefferer.ToLower() == "backtoreferreronerror" || validateOrderRefferer.ToLower() == "on" || validateOrderRefferer == "1") && HttpContext.Request.UrlReferrer != null)
				{
					redirectUrl = HttpContext.Request.UrlReferrer.AbsolutePath;
				}
			}

			Log.Instance.LogDebug("Handle Result redirectUrl: " + redirectUrl);

			return Redirect(redirectUrl);

		}