apikeycorrect = false;

var cookies = {};

function getCookies() {
	cookiestrings = decodeURIComponent(document.cookie).split(';');
	for(var i = 0; i <cookiestrings.length; i++) {
		cookiestrings[i] = cookiestrings[i].trim();
		[key,value] = cookiestrings[i].split("=");
		cookies[key] = value;
	}
}

// always on document load, but call specifically when needed early
document.addEventListener("load",getCookies);

function setCookie(key,val) {
	cookies[key] = val;
	document.cookie = encodeURIComponent(key) + "=" + encodeURIComponent(val);
}
function saveCookies() {
	for (var c in cookies) {
		document.cookie = encodeURIComponent(c) + "=" + encodeURIComponent(cookies[c]);
	}
}



/// RANGE SELECTORS

// in rangeselect.js


/// API KEY



function insertAPIKeyFromCookie() {
	element = document.getElementById("apikey")
	if (element != null && element != undefined) {
		getCookies();
		key = cookies["apikey"];
		if (key != null && key != undefined) {
			element.value = key;
			checkAPIkey();
		}
	}


}

window.addEventListener("load",insertAPIKeyFromCookie);


function saveAPIkey() {
	key = APIkey();
	setCookie("apikey",key);
}



function checkAPIkey() {

	url = "/api/test?key=" + APIkey()
	var xhttp = new XMLHttpRequest();
	xhttp.onreadystatechange = function() {
		if (this.readyState == 4 && (this.status == 204 || this.status == 205)) {
			document.getElementById("apikey").style.backgroundColor = "lawngreen"
			apikeycorrect = true
			saveAPIkey();
		}
		else {
			document.getElementById("apikey").style.backgroundColor = "red"
			apikeycorrect = false
		}
	};
	try {
		xhttp.open("GET",url,true);
		xhttp.send();
	}
	catch (e) {
		document.getElementById("apikey").style.backgroundColor = "red"
		apikeycorrect = false
	}
}

function APIkey() {
	return document.getElementById("apikey").value;
}