new Event.observe(window,"load",initCart);

function initCart() {
	$$("input.fcm_shop_add_num").each(function(o) {
		
	});
	$$("input.fcm_shop_cart_quantity").each(function(o) {
		new Event.observe(o,"change",updateCartRow);
	});
	$$("button.fcm_shop_cart_delete").each(function(o) {
		new Event.observe(o,"click",deleteCartRow);
	});
	$$("button.shop_order_button").each(function(o) {
		new Event.observe(o,"click",sendOrder);
	});
}
function addToCart(what) {
	var id = what.adjacent("input.fcm_shop_add_id")[0];
	var quantity = what.adjacent("input.fcm_shop_add_quantity")[0];
	if(quantity.value<0) return false;
	new Ajax.Request("/?ma=add_cart_row",{
		method: "post",
		postBody: "pid="+id.value+"&quantity="+quantity.value,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else {
				reloadCart();
				quantity.value="1";
			}
		}
	});
}
function reloadCart(callback) {
	if($$(".fcm_shop_cart_container")) {
		$$(".fcm_shop_cart_container").each(function(o) {
			if(o.id) {
				new Ajax.Updater(o.id,"/?l=cart&container="+o.id,{
					method: "get",
					onComplete: function(response) {
						initCart();
						initShop();
						document.fire("fcm:cart_reloaded");
						if(callback) callback();
					}
				});
			}
		});
	}
}
function updateCartRow(e) {
	what = e.findElement();
	if(!what) return false;
	var id = what.adjacent("input.fcm_shop_cart_id")[0];
	var quantity = what.value;
	what.value = what.value.replace(".",",");
	new Ajax.Request("/?ma=edit_cart_row",{
		method: "post",
		postBody: "id="+id.value+"&quantity="+quantity,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else {
				reloadCart();
			}
		}
	});
}
function deleteCartRow(e) {
	var what = e.findElement();
	if(!what) return false;
	var id = what.adjacent("input.fcm_shop_cart_id")[0];
	if(!id) return false;
	if(confirm("Är du säker på att du vill ta bort raden?")) {
		new Ajax.Request("/?ma=delete_cart_row&id="+id.value,{
			method: "post",
			onComplete: function(response) {
				if(response.responseText.length>0) alert(response.responseText);
				else reloadCart();
			}
		});
	}
}
function changeDeliveryMethod(id,callback) {
	new Ajax.Request("/?ma=change_cart_delivery_method",{
		method: "post",
		postBody: "deliverymethodid="+id,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else reloadCart(callback);
		}
	});
}
function changePaymentMethod(id,callback) {
	new Ajax.Request("/?ma=change_cart_payment_method",{
		method: "post",
		postBody: "paymentmethodid="+id,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else reloadCart(callback);
		}
	});
}
function sendOrder(e) {
	var d = "";
	if($("fcm_shop_order_d_form")&&$("fcm_shop_order_d_active").checked) d = $("fcm_shop_order_d_form").serialize();
	
	for(var i=1; i<=5; i++) {
		if($("fcm_shop_order_field"+i)) {
			d += (d.length>0? "&":"")+$("fcm_shop_order_field"+i).serialize();
			setCookie("fcm_shop_order_field"+i,"");
		}
	}
	
	new Ajax.Request("?ma=send_shop_order",{
		method: "post",
		postBody: d,
		onComplete: function(response) {
            var arr = response.responseText.split(";");
            if(arr[0]=="0") alert(arr[1]); 
			else document.location.href=arr[1];
		}
	});
}
function cancelOrder(e) {
	if(!confirm("Är du säker på att du vill avbryta beställningen?")) return false;
	new Ajax.Request("?ma=cancel_shop_order",{
		method: "post",
		onComplete: function(response) {
            if(response.responseText.length>0) alert(response.responseText);
            else history.back(-1);
		}
	});
}
function clearCart() {
	new Ajax.Request("?ma=clear_cart",{
		method: "post",
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else reloadCart();
		}
	});
}

function setCookie(c_name,value,expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}

function getCookie(c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
		if (c_start!=-1) {
			c_start=c_start + c_name.length+1;
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end==-1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}
function populateDeliveryField() {
	$("fcm_shop_order_field2").innerHTML = getCookie('fcm_shop_order_field2');
	
	if($("cart_missing") && $("fcm_shop_order_field3_1")) {
		$("fcm_shop_order_field3").value = getCookie("fcm_shop_order_field3");
		
		if(getCookie("fcm_shop_order_field3") == "Delleverans") {
			$("fcm_shop_order_field3_1").checked = "checked";		
		} else if(getCookie("fcm_shop_order_field3") == "Samleverans") {
			$("fcm_shop_order_field3_2").checked = "checked";
		}
	}
	
	if(getCookie('fcm_shop_order_d_active') == "true") {
		$('d_placeholder').hide();
		$('d_container').show();
		$('fcm_shop_order_d_active').checked = true;
		$('fcm_shop_order_d_name').value = getCookie('fcm_shop_order_d_name');
		$('fcm_shop_order_d_address1').value = getCookie('fcm_shop_order_d_address1');
		$('fcm_shop_order_d_address2').value = getCookie('fcm_shop_order_d_address2');
		$('leveransadress_postal_code').value = getCookie('fcm_shop_order_d_postal_code');
		$('fcm_shop_order_d_city').value = getCookie('fcm_shop_order_d_city');
	} else {
		$('d_placeholder').show();
		$('d_container').hide();
		$('fcm_shop_order_d_active').checked = false;
	}
}
function cartAddRebate(code) {
	new Ajax.Request("?ma=cart_add_code",{
		method: "post",
		postBody: "code="+code,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else reloadCart();
		}
	});
}
function cartDeleteRebate(code) {
	new Ajax.Request("?ma=cart_delete_code",{
		method: "post",
		postBody: "code="+code,
		onComplete: function(response) {
			if(response.responseText.length>0) alert(response.responseText);
			else reloadCart();
		}
	});
}

function checkOrderForm() {
	if(!$('villkor_box').checked) { 
		alert('Du måste acceptera villkoren för att handla av Svalander Audio!'); 
		return false;
	}

	if($("cart_missing")) {
		if(!$F("fcm_shop_order_field3")){
			alert("Du måste välja hur du vill ha dina varor levererade!");
			return false;		
		}
	}
	
	return true;
}
