$(document).ready(function() {
	var orderoptions = { 
	target:        '#outbox',   // target element(s) to be updated with server response 
	dataType:	"json",
	//url:		"/public/ajax/cart.ajax.php",
	beforeSubmit: OrderFormformValidate,
	//beforeSubmit:  showRequest,  // pre-submit callback 
	success:       OrderFormshowResponse  // post-submit callback 
	
	// other available options: 
	//url:       url         // override for form's 'action' attribute 
	//type:      type        // 'get' or 'post', override for form's 'method' attribute 
	//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
	//clearForm: true        // clear all form fields after successful submit 
	//resetForm: true        // reset the form after successful submit 
	
	// $.ajax options can be used here too, for example: 
	//timeout:   3000 
	}; 

	$('#ordersignupform').ajaxForm(orderoptions); 

	$("#cart-period-select").change(function() {
		
			var periode = $("#cart-period-select").attr("value");
			var session_id = $("#session_id").attr("value");
			var fingerprint = $("#fingerprint").attr("value");
	
			$.ajax({
			type: "POST",
			url: "/public/ajax/cart.ajax.php",
			data: "UpdatePeriode=" +periode + "&session_id=" + session_id +"&fingerprint=" + fingerprint,
			timeout:10000,
			dataType: "json",	
			success: function(data){
				if(data.status == "OK") {
					
					getCart(session_id,fingerprint,'frontend');
	
	
				}
			}
			});
	
		//console.log("Periode was changed, refresh cart");
	});


	$('#termsbox').click(function() {
		$('#termsbox').hide();
	});

	/*
	$('#order_submit').click(function() {

		if(!validateCart()) {
			return false;
		}
	});
	*/

	$('#OrderProductForm').submit(function() {

		$("#attentionbox").empty();

		if(validateCart()) {
			return true;
		} else {
			$("#attentionbox").addClass("fieldhightlight");
			return false;
		}

	});

	

}); 

function OrderFormformValidate(formData, jqForm, options) {
	var formerror = 0;

	$("#attentionbox").empty();


	for (var i=0; i < formData.length; i++) { 

		if (!formData[i].value) {
			
			/*console.log(formData[i]);*/
			$("#" + formData[i].name).addClass("fieldhightlight");
			var formerror = 1;
		} else {
			$("#" + formData[i].name).removeClass("fieldhightlight");
		}
	}

	var cvr_size = $("#cvr").attr("value").length;

	if(cvr_size != 8) {
		$("#attentionbox").append("<li>Angiv venligst gyldigt CVR nummer</li>");
		var formerror = 1;
	}

	var username = $("#username").attr("value");
	/*var usernameCheck = validateUsername(username);*/


	var session_id = $("#session_id").attr("value");
	var fingerprint = $("#fingerprint").attr("value");
	var terms_accept = $("#terms").attr("checked");


	if(terms_accept != true)
	{
		var formerror = 1;
		$("#attentionbox").append("<li>Bekræft venligst forretningsbetingelser</li>");
		$("#terms_outer").addClass("fieldhightlight");
	} else {
		$("#terms_outer").removeClass("fieldhightlight");
	}

	
	if(formerror == 0) {
		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.ajax.php",
		data: "validateUsername=" + username +"&session_id=" + session_id +"&fingerprint=" + fingerprint,
		async: false,
		timeout:10000,
		dataType: "json",	
		success: function(data){
			if(data.status == 'error') {
				alert("Username valdation error");
	
			}
	
			if(data.result == "Taken") {
				formerror = 1;
				$("#username").addClass("fieldhightlight");
				$("#attentionbox").append("<li>Brugernavn optaget, prøv igen</li>");
			} else {
				$("#username").removeClass("fieldhightlight");
			}
	
		
	
		}
		});
	}
	


	/* CHANGE ME TO TRUE WHEN DONE TESTING*/ 
	/*return false;*/

	
	if(formerror == 1) {
		return false;
	} else {
		return true;
	}



}
function OrderFormshowResponse(responseText, statusText, xhr, $form) {

	if(responseText.status == "OK") {

		var session_id = $("#session_id").attr("value");
		var fingerprint = $("#fingerprint").attr("value");

		// Load confirmation page
		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.confirmation.ajax.php",
		data: "LoadForm=1&session_id=" + session_id + "&fingerprint=" + fingerprint,
		timeout:10000,
		dataType: "json",	
		success: function(data){
				// Clear out the form
				$("#signupform").empty();
				//Insert the page
				$("#signupform").append(data.page);
		}
		});



	}

}

function OrderProductFormReponse(responseText, statusText, xhr, $form) {

	alert("lol");

}

function addProductToCart(product_id,session,fingerprint,webend) {

		// Add the domain to the cart (shopping session)
		
		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.ajax.php",
		data: "AddProductToCart=1&product_id=" + product_id + "&session_id=" + session + "&fingerprint=" + fingerprint,
		timeout:10000,
		dataType: "json",	
		success: function(data){
			getCart(session,fingerprint,webend);
			//Display/refresh the cart windows..

		}
		});





}

function RemoveFromCart(id,session,fingerprint,webend) {
		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.ajax.php",
		data: "RemoveFromCart=" + id + "&cart_session_id=" + session + "&fingerprint=" + fingerprint,
		timeout:10000,
		dataType: "json",	
		success: function(data){
			getCart(session,fingerprint,webend);
		}
		});
		

}

function getCart(cart_session,fingerprint,webend) {

		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.ajax.php",
		data: "getCart=1&cart_session_id=" + cart_session + "&fingerprint=" + fingerprint+ "&webend=" + webend,
		dataType: "json",
		timeout:10000,	
		success: function(data){

				if(webend == 'client') {

					state = $("#CartState").attr("value");

					if(state == 'Max') {
						$("#cartbox").empty();
						$("#cartbox").append(data.cart).show();
						$("#minicartbox").append(data.minicart)
						$("#cart-button-area").show();

					}
					if(state == 'Mini') {
						$("#cartbox").empty();
						$("#cartbox").append(data.cart)
						$("#minicartbox").empty();
						$("#minicartbox").append(data.minicart).show();	
					}



				}

				if(webend == 'frontend') {
					$("#cart-container").empty();
					$("#cart-container").append(data.cart);

					if(data.totalprice != 0) {
						$("#cart-button-area").show();
					} else {
						$("#cart-button-area").hide();
					}

				}

		}
		});


}

function ConfirmOrder(session_id,fingerprint) {

		$.ajax({
		type: "POST",
		url: "/public/ajax/cart.ajax.php",
		data: "ConfirmOrder=1&session_id=" + session_id + "&fingerprint=" + fingerprint,
		dataType: "json",
		timeout:10000,
		success: function(data){

				if(data.status == "OK") {

					$("#signupform").empty();
					$("#signupform").append(data.finishpage);
				}
		

		}
		});

}

function hideCart(session,fingerprint,webend) {

	$("#CartState").val("Mini");

	$.ajax({
	type: "POST",
	url: "/public/ajax/cart.ajax.php",
	data: "MaxiMiniMizeCart=1&session_id=" + session + "&fingerprint=" + fingerprint + "&CartState=Mini",
	dataType: "json",
	timeout:10000,	
	success: function(data){
		if(data.status == "OK") {
			$('#cartbox').hide();
			$('#minicartbox').empty().show();
			getCart(session,fingerprint,webend);
		}
	}
	});
	
}
function showCart(session,fingerprint,webend) {

	$("#CartState").val("Max");

	$.ajax({
	type: "POST",
	url: "/public/ajax/cart.ajax.php",
	data: "MaxiMiniMizeCart=1&session_id=" + session + "&fingerprint=" + fingerprint + "&CartState=Max",
	dataType: "json",
	timeout:10000,
	success: function(data){
		if(data.status == "OK") {
			$('#minicartbox').hide();
			$('#cartbox').empty().show();
			getCart(session,fingerprint,webend);

		}
	
	}
	});
}

function validateCart() {

	var session_id = $("#session_id").attr("value");
	var fingerprint = $("#fingerprint").attr("value");
	var returnVal = false;

	$.ajax({
	type: "POST",
	url: "/public/ajax/cart.ajax.php",
	data: "validateCart=1&session_id=" + session_id + "&fingerprint=" + fingerprint,
	async: false,
	dataType: "json",
	timeout:10000,
	success: function(data){


		if(data.error == 1) {
			// Say bad stuff happend
			$("#attentionbox").append(data.message);
			returnVal = false;
		}

		if(data.status == "OK") {
			returnVal = true
		} else {
			// Say cart is invalid
			$("#attentionbox").append(data.message);
			returnVal = false;

		}
		
	}
	});

	return returnVal;

}

function displayTerms() {

	$('#termsbox').empty().show();
	$('#termsbox').load('/terms_plain.phtml');


}

function showOrderButton() {
	$("#cart-button-area").show();
}
function HideOrderButton() {
	$("#cart-button-area").hide();
}

