
var map;
var fs = [];	
var as = [];
as[0]=false;
var notams = [];
var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(20, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
var fl = 55; //Default flight level

var sitesLoaded = false;

var classAloaded = false;
var classDloaded = false;
var classEloaded = false;
var classGloaded = false;
var classQloaded = false;
var classPloaded = false;
var classRloaded = false;
var classMloaded = false;
var classXloaded = false;
var classSloaded = false;
var classWloaded = false;

function setFL() {
	fl = document.getElementById("fl").value;
	setNOTAMs();
	setAirspace();
}
function setSites() { //fs[x] = [object,type,off/on(0/1)]
	hill = document.getElementById("sethill").checked;
	winch = document.getElementById("setwinch").checked;
	aerotow = document.getElementById("setaerotow").checked;
	pg = document.getElementById("setpg").checked;
	hg = document.getElementById("sethg").checked;
	mo = document.getElementById("hidemembersonly").checked;

	if ((hill || winch || aerotow) && (!sitesLoaded)) loadSites();

	for (i=0; i < fs.length; i++) {
		if ((fs[i][1] & 1) && mo) {
			turnoffSite(i);
			continue;
		}
		if ((fs[i][1] & 4) && pg) { //pg-only (= not hg only)
			turnoffSite(i);
			continue;
		}
		if ((fs[i][1] & 2) && hg) { //hg-only (= not pg-only)
			turnoffSite(i);
			continue;
		}
		if (!(fs[i][1] & 16) && !(fs[i][1] & 8) && !hill) {
			turnoffSite(i);
			continue;
		}
		if ((fs[i][1] & 8) && !winch) { 
			if (fs[i][1] & 16) {
				if (!aerotow) {
					turnoffSite(i);
					continue;
				}
			}
			else {
				turnoffSite(i);
				continue;
			}
		}
		if ((fs[i][1] & 16) && !aerotow) { 
			if (fs[i][1] & 8) {
				if (!winch) {
					turnoffSite(i);
					continue;
				}
			}
			else {
				turnoffSite(i);
				continue;
			}
		}
		if (fs[i][2] == 0) {
			map.addOverlay(fs[i][0]);
			fs[i][2] = 1;
		}
	}
}
function turnoffSite(i) {
	if (fs[i][2] == 1) {
		map.removeOverlay(fs[i][0]);
		fs[i][2] = 0;
	}
}
function setSitesOn() {
	for (i=0; i < fs.length; i++) {
		map.addOverlay(fs[i][0]);
		fs[i][2] = 1;
	}
}

function setNOTAMs() {
	restrictions = document.getElementById("restrictions").checked;
	navwarnings = document.getElementById("navwarnings").checked;
	today = document.getElementById("today").checked;
	night = document.getElementById("night").checked;
	fl = document.getElementById("fl").value;

	for (i=0; i < notams.length; i++) {
		if (fl < notams[i][6]) {
			turnOffNOTAM(i);
			continue;
		}
		if (today && (notams[i][2] == 0)) {
			turnOffNOTAM(i);
			continue;
		}
		if (!night && (notams[i][3] == 1)) {
			turnOffNOTAM(i);
			continue;
		}
		if ((notams[i][1] == "R") && !restrictions) {
			turnOffNOTAM(i);
			continue;
		}
		if ((notams[i][1] == "W") && !navwarnings) {
			turnOffNOTAM(i);
			continue;
		}
		if (notams[i][5] == 0) {
			map.addOverlay(notams[i][0]);
			map.addOverlay(notams[i][4]);
			notams[i][5] = 1;
		}
	}
}
function turnOffNOTAM(id) {
	if (notams[i][5] == 1) {
		map.removeOverlay(notams[i][0]);
		map.removeOverlay(notams[i][4]);
		notams[i][5] = 0;
	}
}
function setRestrictionsAndWarningsOn() {
	for (i=0; i < notams.length; i++) {
		if (((notams[i][1] == "R") || (notams[i][1] == "W")) && (notams[i][3] == 0) && (notams[i][6] <= fl)) {
			map.addOverlay(notams[i][0]);
			map.addOverlay(notams[i][4]);
			notams[i][5] = 1;
		}
	}
}


function showStdAirspace() {
	if (document.getElementById("defaultAirspace").checked)
	{
		document.getElementById("clA").checked = true;
		document.getElementById("clD").checked = true;
		document.getElementById("clE").checked = true;
		document.getElementById("clG").checked = true;
		document.getElementById("clQ").checked = true;
		document.getElementById("clR").checked = true;
		document.getElementById("clP").checked = true;
		document.getElementById("clM").checked = true;
		document.getElementById("clX").checked = false;
		document.getElementById("clS").checked = false;
		document.getElementById("clW").checked = false;
		setAirspace();
	}
}


// 'as' aray has object, class, flight level, on/off indicator


function setAirspace() {
	cla =	document.getElementById("clA").checked;
	cld =	document.getElementById("clD").checked;
	cle =	document.getElementById("clE").checked;
	clg =	document.getElementById("clG").checked;
	clq =	document.getElementById("clQ").checked;
	clr =	document.getElementById("clR").checked;
	clp =	document.getElementById("clP").checked;
	clm =	document.getElementById("clM").checked;
	clx =	document.getElementById("clX").checked;
	cls =	document.getElementById("clS").checked;
	clw =	document.getElementById("clW").checked;

	if (cla && (!classAloaded)) loadA();
	if (cld && (!classDloaded)) loadD();
	if (cle && (!classEloaded)) loadE();
	if (clg && (!classGloaded)) loadG();
	if (clq && (!classQloaded)) loadQ();
	if (clr && (!classRloaded)) loadR();
	if (clp && (!classPloaded)) loadP();
	if (clm && (!classMloaded)) loadM();
	if (clx && (!classXloaded)) loadX();
	if (cls && (!classSloaded)) loadS();
	if (clw && (!classWloaded)) loadW();

	document.getElementById("defaultAirspace").checked = cla && cld && cle && clg && clq && clr &&clp && clm && !(clx || clw || cls);

	for (i=0; i < as.length; i++) {
		if (as[i][2] > fl) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "A") && !cla) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "D") && !cld) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "E") && !cle) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "G") && !clg) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "Q") && !clq) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "R") && !clr) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "P") && !clp) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "M") && !clm) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "X") && !clx) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "S") && !cls) {
			turnoffAirspace(i);
			continue;
		}
		if ((as[i][1] == "W") && !clw) {
			turnoffAirspace(i);
			continue;
		}
		if (as[i][3] == 0) {
			map.addOverlay(as[i][0]);
			as[i][3] = 1;
		}
	}
}
function turnoffAirspace(i) {
	if (as[i][3] == 1) {
		map.removeOverlay(as[i][0]);
		as[i][3] = 0;
	}
}



