var total_connection = null;

var show_gift_certificate_payment_instead = false;

function calculateTotal(update_payments) {
	var sms = null;
	var chosen_card = null;
	var chosen_payment = null;
	var chosen_shipping_vendor = null;
	
	
	// Find leveringsleverandør
	with (document.forms["order"]) {
		for (i = 0; i < elements.length; i++) {
			if (elements[i].type == 'radio' && elements[i].name == 'shipping_vendor' && elements[i].checked == true) {
				chosen_shipping_vendor = elements[i].value;
				break;
			}
		}
	}
	
	// Find betaling
	with (document.forms["order"]) {
		for (i = 0; i < elements.length; i++) {
			if (elements[i].type == 'radio' && elements[i].name == 'payment' && elements[i].checked == true) {
				chosen_payment = elements[i].value;
				break;
			}
		}
	}

	if (chosen_shipping_vendor != null && chosen_shipping_vendor == 0) { // Afhentning
		if (document.getElementById("sms") != undefined) {
			document.getElementById('sms').checked = false;
			document.getElementById('sms').disabled = true;
		}
	} else {
		if (document.getElementById("sms") != undefined) {
			if (document.getElementById('sms').disabled == true) {
				document.getElementById('sms').disabled = false;
			}
			if (document.getElementById('sms').checked == true) {
				sms = 1;	
			}
		}
	}
	
	// Find kort
	if (chosen_payment == 3) {
		with (document.forms["order"]) {
			for (i = 0; i < elements.length; i++) {
				if (elements[i].type == 'radio' && elements[i].name == 'card' && elements[i].checked == true) {
					chosen_card = elements[i].value;
					break;
				}
			}
		}
		
	}
	
	random_number = Math.random()*1000;
	url = '/functions/order/calculate_total.php?SMS='+sms+'&ShippingVendor='+chosen_shipping_vendor+'&Payment='+chosen_payment+'&Card='+chosen_card+'&UpdatePayments='+update_payments+'&Random='+random_number;

	if (window.XMLHttpRequest) {
		total_connection = new XMLHttpRequest();
	} else if (window.ActiveXObject) { 
		total_connection = new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (total_connection) {
		total_connection.onreadystatechange=updatePrices
		total_connection.open("GET",url,true);
		total_connection.send(null);
	}
}

function updatePrices() {
	if (total_connection.readyState == 4) {
		if (total_connection.status == 200){
			eval(total_connection.responseText);
		}
	}
}

// Adresse mv.

function toggleDeliveryAddress(btn1, btn2) {
	object = document.getElementById('delivery_address');
	if (object.style.visibility == 'hidden') {
		object.style.visibility = 'visible';
		object.style.position = 'relative';
		document.getElementById('button_delivery_address').innerHTML = btn2;
		document.getElementById('delivery').value = 1;
	} else {
		object.style.visibility = 'hidden';
		object.style.position = 'absolute';
		document.getElementById('button_delivery_address').innerHTML = btn1;
		document.getElementById('delivery').value = '';
	}
}

function changeCountry() {
	document.getElementById("perform_action").value = 'change_country';
	document.forms["order"].submit();
}

var city_connection;

function findCity(country_id, zipcode, fieldname) {
	ran = Math.round(Math.random()*100000); 
	url = "/functions/order/find_city.php?CountryId="+country_id+"&Zipcode="+zipcode+"&Fieldname="+fieldname+"&Ran="+ran.toString();

	if (window.XMLHttpRequest) {
		city_connection = new XMLHttpRequest();
	} else if (window.ActiveXObject) { 
		city_connection = new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (city_connection) {
		city_connection.onreadystatechange=showCity
		city_connection.open("GET",url,true);
		city_connection.send(null);
	}
}

function showCity() {
	if (city_connection.readyState==4) {
		if (city_connection.status==200) {
			eval(city_connection.responseText);
		}
	}
}

// Gave-valg

function changeGiftImage(gift_id, change_id) {
	document.getElementById("gift_"+gift_id+"_image").style.backgroundImage = "url('"+giftImages[change_id]+"')";
}

// Gavekort

function useGiftCertificate() {
	document.getElementById("perform_action").value = 'add_gift_certificate';
	document.forms["order"].submit();
}

function removeGiftCertificate(id) {
	document.getElementById("perform_action").value = 'remove_gift_certificate:'+id;
	document.forms["order"].submit();
}

// Leveringsleverandør

var selected_shipping_vendor = new Array();
function selectShippingVendor(shipping_vendor, allowed_payments) {
	if (selected_shipping_vendor['id']) {
		document.getElementById(selected_shipping_vendor['id']).className = selected_shipping_vendor['regular_class'];
	}
	selected_shipping_vendor['id'] = 'shipping_vendor_'+shipping_vendor+'_container';
	selected_shipping_vendor['regular_class'] = document.getElementById(selected_shipping_vendor['id']).className;
	
	document.getElementById(selected_shipping_vendor['id']).className = 'order_payment_option order_payment_background_selected';
	
	unselectPayment();
	
	calculateTotal(true);
}

// GLS

function showGLS() {
	document.getElementById('gls_package_shop').style.display = 'block';
	document.getElementById('gls_package_shop_enabled').value = '1';
}

function hideGLS() {
	if (document.getElementById('gls_package_shop') != undefined) {
		document.getElementById('gls_package_shop').style.display = 'none';
		document.getElementById('gls_package_shop_enabled').value = '';
	}
}

var gls_connection;

function searchGLSShops(zipcode) {
	random_number = Math.random()*1000;
	url = '/functions/order/gls_shops.php?Zipcode='+zipcode+'&Random='+random_number;
	
	if (window.XMLHttpRequest) {
		gls_connection = new XMLHttpRequest();
	} else if (window.ActiveXObject) { 
		gls_connection = new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (gls_connection) {
		gls_connection.onreadystatechange=showGLSShops
		gls_connection.open("GET",url,true);
		gls_connection.send(null);
	}	
}

function showGLSShops() {
	if (gls_connection.readyState == 4) {
		if (gls_connection.status == 200){
			eval(gls_connection.responseText);
		}
	}
}

// Betaling

function showCollectPayment() {
	document.getElementById("payment_1_container").style.display = "block";
	document.getElementById("payment_1").disabled = false;
}

function showGiftCertificatePayment() {
	document.getElementById("payment_8_container").style.display = "block";
	document.getElementById("payment_8").disabled = false;	
}

function hidePayments() {
	unselectPayment();
	
	document.getElementById("payment_1_container").style.display = "none";
	document.getElementById("payment_1").disabled = true;
	
	if (document.getElementById("payment_2_container") != undefined) {
		document.getElementById("payment_2_container").style.display = "none";
		document.getElementById("payment_2").disabled = true;
	}
	
	if (document.getElementById("payment_3_container") != undefined) {
		document.getElementById("payment_3_container").style.display = "none";
		document.getElementById("payment_3").disabled = true;
	}
	
	document.getElementById("payment_8_container").style.display = "none";
	document.getElementById("payment_8").disabled = true;
}

function showPayments(payments_allowed) {
	hidePayments();
	
	for (key in payments_allowed) {
		document.getElementById("payment_"+payments_allowed[key]).disabled = false;
		document.getElementById("payment_"+payments_allowed[key]+"_container").style.display = "block";
	}
}

function toggleCreditcards(action) {
	if (action == 'show') {
		document.getElementById("creditcards").style.display = 'block';
	} else {
		document.getElementById("creditcards").style.display = 'none';
		
		with (document.forms["order"]) {
			for (i = 0; i < elements.length; i++) {
				if (elements[i].type == "radio" && elements[i].name == "card" && elements[i].checked) {
					elements[i].checked = false;
					document.getElementById(selected_card['id']).className = selected_card['regular_class'];
					selected_card['id'] = null;
					selected_card['regular_class'] = null;
				}
			}
		}
	}
}

var selected_payment = new Array();
function selectPayment(payment) {
	if (selected_payment['id']) {
		document.getElementById(selected_payment['id']).className = selected_payment['regular_class'];	
	}
	selected_payment['id'] = 'payment_'+payment+'_container';
	selected_payment['regular_class'] = document.getElementById(selected_payment['id']).className;
	
	document.getElementById(selected_payment['id']).className = 'order_payment_option order_payment_background_selected';
	
	if (payment == 3) {
		toggleCreditcards('show');	
	} else {
		toggleCreditcards('hide');
	}
	
	calculateTotal(false);
}

function unselectPayment() {
	toggleCreditcards('hide');

	if (selected_payment['id']) {
		document.getElementById(selected_payment['id']).className = selected_payment['regular_class'];	
	}	
	selected_payment['id'] = null;
	selected_payment['regular_class'] = null;
	
	document.getElementById("payment_1").checked = false;
	
	if (document.getElementById("payment_2_container") != undefined) {
		document.getElementById("payment_2").checked = false;
	}

	if (document.getElementById("payment_3_container") != undefined) {
		document.getElementById("payment_3").checked = false;
	}

	document.getElementById("payment_8").checked = false;
}

var selected_card = new Array();
function selectCard(card) {
	if (selected_card['id']) {
		document.getElementById(selected_card['id']).className = selected_card['regular_class'];	
	}
	selected_card['id'] = 'card_'+card+'_container';
	selected_card['regular_class'] = document.getElementById(selected_card['id']).className;
	
	document.getElementById(selected_card['id']).className = 'order_sub_payment_option order_sub_payment_background_selected';
	
	calculateTotal(false);
}