var allAreas = new Array ("all", "london","nhome","shome","west","central","north","ireland","overseas","sel");
var allMap = new Array ("london","nhome","shome","west","central","north","ireland","overseas");
var qareas = allMap;

function indexOfArea(as, a) {
	var i = as.length;
	while (--i>=0) if (as[i]==a) break;
	return i;
	}

function remove(x, a) {
	if (a.length==0) return;
	var e= a.pop();
	if (x!=e) {
		remove(x, a);
		a.push(e);
		}
	}
	
function insert(x, a) {
	remove(x, a);
	a.push(x);
	}

function correctPopup() {
	document.jquery.areaPopup.selectedIndex = 
	(qareas.length==allMap.length ? 0 :
		( qareas.length==1 ? indexOfArea(allAreas, qareas[0]) :
		allAreas.length - 1));
	}
function setByVal(p, v) {
	var i = p.options.length;
	while (p.options[--i].value!=v) if (i==0) return;
	p.selectedIndex = i;
}

function correctMap() {
	for (var a in allAreas) {
		var d =  document.getElementById(allAreas[a]);
		if (d) d.className = ((indexOfArea(qareas, allAreas[a])>=0) ? "show" : "hide");
		}
	}

function userPopup(p) {
	if (p.selectedIndex==indexOfArea(allAreas, "sel")) correctPopup();
	else if (p.selectedIndex==0) 
		{ qareas = allMap;
			correctMap();
			}
	else {
		qareas = new Array (p.options[p.selectedIndex].value);
		correctMap();
		};
	}

function areaReset(all) {
	if (all) qareas = allMap;
	correctMap();
	correctPopup();
	}	


function jtoggle(s) {
	if (qareas.length == allMap.length) {qareas = new Array()};
	if (indexOfArea(qareas, s) < 0) insert(s, qareas)
	else remove(s, qareas);
	areaReset(qareas.length == allMap.length);
		}
	
function jnorth() { jtoggle("north");
}
function jwest() { jtoggle("west");
}
function jireland() { jtoggle("ireland");
}
function jcentral() { jtoggle("central");
}
function joseas() { jtoggle("overseas");
}
function jlondon() { jtoggle("london");
}
function jnhome() { jtoggle("nhome");
}
function jshome() { jtoggle("shome");
}
