fromCurrency = document.getElementById("ccfrom");
toCurrency = document.getElementById("ccto");
yourAmount = document.getElementById("ccamount");
yourAmountCode = document.getElementById("ccamountcode");
yourPromoCode = document.getElementById("promocode");
yourPromoCodeBtn = document.getElementById("promocodeapt");
youGet = document.getElementById("ccget");
youGetCode = document.getElementById("ccgetcode");
addToBaskBtn = document.getElementById("addtobasket");

bkDiv = document.getElementById("mybasket");
dtDiv = document.getElementById("mydelivery");

if(yourAmount) {
	window.addEventListener("load", ()=>{
		getExchangeRate();
		doBasketStuff('');
	});
}

if (addToBaskBtn) {
	addToBaskBtn.addEventListener("click", e =>{
		e.preventDefault();
		doBasketStuff('add');
		$('html, body').animate({
			scrollTop: ($('#mybasket').offset().top)
		}, 1000);
	});
}

/*
yourPromoCodeBtn.addEventListener("click", e =>{
    e.preventDefault();
    doBasketStuff('pcd');
});
*/
$('body').on('click', '#promocodeapt', function (){
    doBasketStuff('pcd');
});

$('body').on('change', '#deladdress', function (){
    doDeliveryStuff();
});

document.getElementById("deliverytype").addEventListener("change", function(e) {
    var dytype = document.getElementById('deliverytype');
    let jydo = dytype.options[dytype.selectedIndex].value;
	if (jydo == "home") {
		$('body #doptselect').hide();
	} else{
		$('body #doptselect').show();
	}
});

if(fromCurrency) {
	fromCurrency.addEventListener("change", e =>{
		var ccmin = fromCurrency.selectedOptions[0].getAttribute('data-min');
		var ccmax = fromCurrency.selectedOptions[0].getAttribute('data-max');
		document.getElementById("ccamount").setAttribute("min", ccmin);
		document.getElementById("ccamount").setAttribute("max", ccmax);
		document.getElementById("ccamount").value = ccmin;
		document.getElementById("spanccmin").innerHTML = ccmin;
		document.getElementById("spanccmax").innerHTML = ccmax;

		$.ajax({
			type: "POST",
			url: "ajax_cclimit.php",
			data: { ccmin: ccmin,ccmax: ccmax },
			success: function() {
				var minEx = ccmin;
				//console.log("Session limits set successfully");
			}
		});

		var selectedOption = this.value;
		if (selectedOption != defCU) {
			$('#ccto').selectpicker('val', defCU);
			document.querySelector("button[aria-owns='bs-select-2']").disabled = true;
		} else {
			$("#ccto").val(defCUto).change();
			$('#ccto').selectpicker('val', defCUto);
			$('#ccto option[value="'+defCUto+'"]').attr('selected','selected');
			document.querySelector("button[aria-owns='bs-select-2']").disabled = false;
			$('#ccto').selectpicker('render');
		}
		e.preventDefault();
		getExchangeRate();
	});
}


document.getElementById("ccfrom").addEventListener("change", function(e) {
	var ccmin = this.selectedOptions[0].getAttribute('data-min');
	var ccmax = this.selectedOptions[0].getAttribute('data-max');
	document.getElementById("ccamount").setAttribute("min", ccmin);
	document.getElementById("ccamount").setAttribute("max", ccmax);
	document.getElementById("ccamount").value = ccmin;

	document.getElementById("spanccmin").innerHTML = ccmin;
	document.getElementById("spanccmax").innerHTML = ccmax;

	$.ajax({
		type: "POST",
		url: "ajax_cclimit.php",
		data: { ccmin: ccmin,ccmax: ccmax },
		success: function() {
			var minEx = ccmin;
		}
	});

	var selectedOption = this.value;
	if (selectedOption != defCU) {
		$('#ccto').selectpicker('val', defCU);
		document.querySelector("button[aria-owns='bs-select-2']").disabled = true;
	} else {
		$("#ccto").val("EUR").change();
		$('#ccto').selectpicker('val', "EUR");
		$('#ccto option[value="EUR"]').attr('selected','selected');
		document.querySelector("button[aria-owns='bs-select-2']").disabled = false;
		$('#ccto').selectpicker('render');
	}
	e.preventDefault();
	getExchangeRate();
});


if(toCurrency) {
	toCurrency.addEventListener("change", e =>{
		e.preventDefault();
		getExchangeRate();
	});
}
if(yourAmount) {
	yourAmount.addEventListener("input", e =>{
		e.preventDefault();
		getExchangeRate();
	});
	yourAmount.addEventListener("change", e =>{
		e.preventDefault();
		getExchangeRate("y");
	});
}

function getExchangeRate(amdone=""){
    const amount = document.getElementById("ccamount");
	const exchangeRateTxt = document.getElementById("exchange-rate");
	let amountVal = amount.value;
	if(amountVal == "" || amountVal == "0"){
		//amount.value = "1";
		//amountVal = 1;
	}
	//if (yourAmount.value <= minEx) { yourAmount.value = minEx }
	if (yourAmount.value >= minEx) {
		exchangeRateTxt.innerText = apiGetting;
		let url = apiUl+"?f="+fromCurrency.value+"&t="+toCurrency.value+"&a="+yourAmount.value;
		fetch(url).then(response => response.text()).then(result =>{
			let exRate = result;
			const currArr = exRate.split("|");
			let exchangeRate = parseFloat(currArr[0]).toFixed(6);
			let exchangeRateDisplay = parseFloat(currArr[0]).toFixed(4);
			youGet.value = parseFloat(currArr[1]).toFixed(2);
			exchangeRateTxt.innerText = `1 ${fromCurrency.value} = ${exchangeRateDisplay.toLocaleString("en-US", { maximumFractionDigits: 6, minimumFractionDigits: 6 })} ${toCurrency.value}`;
			yourAmountCode.innerText = fromCurrency.value;
			youGetCode.innerText = toCurrency.value;
			if (amdone == "y") {
				yourAmount.value = parseFloat(currArr[3]).toFixed(2);
			}
			document.getElementById("spanccminmax").innerHTML = document.getElementById('ccamountcode').innerHTML;
		}).catch(() =>{
			exchangeRateTxt.innerText = apiError;
		});
	}
}

function doBasketStuff(jsdo="",bkid=""){
    let url = apiBK+"?do="+jsdo+"&bk="+bkid+"&pc="+$('body #promocode').val();
    fetch(url).then(response => response.text()).then(result =>{
        let bkText = result;
        bkDiv.innerHTML = bkText;
        yourPromoCode.value = "";
        if (bkText.indexOf('<!--hidedel-->') !== -1) {
			$('body #pickupbox .hide').slideUp('fast').find('select').val('');
			$('body #pickupbox').hide();
		} else{
			$('body #pickupbox').show();
		}
    }).catch(() =>{
        bkDiv.innerHTML = '<p class="riaerror">Error: JS1201290</p>';
    });
}

function doDeliveryStuff(lcid=""){
    var dttype = document.getElementById('deladdress');
    let jsdo = dttype.options[dttype.selectedIndex].value;
    let url = apiDT+"?do="+jsdo+"&tw="+lcid;
    fetch(url).then(response => response.text()).then(result =>{
        let dtText = result;
        dtDiv.innerHTML = dtText;
    }).catch(() =>{
        dtDiv.innerHTML = '<p class="riaerror">Error: JS345455</p>';
    });
}