﻿window.onload = initAll;

var xhr = false;
var xNews = false;
var xEvents = false;
var xFooter = false;
var xJobs = false;
var xCounties = false;
var allMenu;
var allImages = null;
var allNews;
var allEvents;
var allJobs;
var allCounties;
var jobDiv;
var jobApply;
var photoSet = [];
var photoNow = [];
var lastUpdated = -1;
var fadein = 5;
var fadeout = 5;
var prefix = new String("");
var currentMenu1;
var currentMenu2;
var fadeSpeed = 0;
var paramname = [];
var paramvalue = [];
var countySelected;

function initAll() {
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
		xNews = new XMLHttpRequest();
		xEvents = new XMLHttpRequest();
		xFooter = new XMLHttpRequest();
		xPhotos = new XMLHttpRequest();
		xJobs = new XMLHttpRequest();
		xCounties = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
				xNews = new ActiveXObject("Microsoft.XMLHTTP");
				xEvents = new ActiveXObject("Microsoft.XMLHTTP");
				xFooter = new ActiveXObject("Microsoft.XMLHTTP");
				xPhotos = new ActiveXObject("Microsoft.XMLHTTP");
				xJobs = new ActiveXObject("Microsoft.XMLHTTP");
				xCounties = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) { }
		}
	}
	currentMenu1 = getMenuItem(1);
	currentMenu2 = getMenuItem(2);
	fadeSpeed = getFadeSpeed();
	var menuLevel = 0;
	var loc = new String(window.location);
	var start = 0;
	var end = 0;
	var domain = true;
	if (loc.charAt(start) == "h") 
		start = 7;
	do {
		if (loc.charAt(start) == "/") {
			domain = false;
			if (start < (loc.length -1))
				menuLevel++;
		}
		if (loc.charAt(start) == ".") {
			if (!domain)
				menuLevel--;
		}
	} while (++start < loc.length);
	for (var p = 0; p < menuLevel; p++) {
		prefix = prefix + "../";
	}
	start = 0;
	var index = 0;
	while (loc.indexOf("?", start) != -1) {
		start = loc.indexOf("?", start) +1;
		end = loc.indexOf("=", start);
		paramname[index] = (loc.substring(start,end));
		start = end + 1;
		end = loc.indexOf("?",start);
		if (end == -1)
			end = loc.length;
		paramvalue[index] = (loc.substring(start,end));
		index++;
	}
	if (xhr) {
		xhr.onreadystatechange = fillMenu;
		xhr.open("GET", prefix + "scripts/menu.xml", true);
		xhr.setRequestHeader("Pragma", "no-cache"); 
		xhr.setRequestHeader("Expires", "0"); 
		xhr.setRequestHeader("Cache-Control", "no-store"); 
		xhr.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xNews) {
		xNews.onreadystatechange = fillNews;
		xNews.open("GET", prefix + "news/news_feed.xml", true);
		xNews.setRequestHeader("Pragma", "no-cache"); 
		xNews.setRequestHeader("Expires", "0"); 
		xNews.setRequestHeader("Cache-Control", "no-store"); 
		xNews.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xEvents) {
		xEvents.onreadystatechange = fillEvents;
		xEvents.open("GET", prefix + "diary/diary_feed.xml", true);
		xEvents.setRequestHeader("Pragma", "no-cache"); 
		xEvents.setRequestHeader("Expires", "0"); 
		xEvents.setRequestHeader("Cache-Control", "no-store"); 
		xEvents.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xFooter) {
		xFooter.onreadystatechange = fillFooter;
		xFooter.open("GET", prefix + "scripts/footer.xml", true);
		xFooter.setRequestHeader("Pragma", "no-cache"); 
		xFooter.setRequestHeader("Expires", "0"); 
		xFooter.setRequestHeader("Cache-Control", "no-store"); 
		xFooter.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xPhotos) {
		xPhotos.onreadystatechange = initFade;
		xPhotos.open("GET", prefix + "scripts/photos.xml", true);
		xPhotos.setRequestHeader("Pragma", "no-cache"); 
		xPhotos.setRequestHeader("Expires", "0"); 
		xPhotos.setRequestHeader("Cache-Control", "no-store"); 
		xPhotos.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xJobs) {
		xJobs.onreadystatechange = loadJobs;
		xJobs.open("GET", prefix + "jobs/jobs.xml", true);
		xJobs.setRequestHeader("Pragma", "no-cache"); 
		xJobs.setRequestHeader("Expires", "0"); 
		xJobs.setRequestHeader("Cache-Control", "no-store"); 
		xJobs.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (xCounties) {
		xCounties.onreadystatechange = loadCounties;
		xCounties.open("GET", prefix + "services/inyourarea.xml", true);
		xCounties.setRequestHeader("Pragma", "no-cache"); 
		xCounties.setRequestHeader("Expires", "0"); 
		xCounties.setRequestHeader("Cache-Control", "no-store"); 
		xCounties.send(null);
	} else {
		alert("Sorry, but I couldn't create an XML Http request");
	}
	if (!document.ELEMENT_NODE) {
		document.ELEMENT_NODE = 1;
		document.ATTRIBUTE_NODE = 2;
		document.TEXT_NODE = 3;
		document.CDATA_SECTION_NODE = 4;
		document.ENTITY_REFERENCE_NODE = 5;
		document.ENTITY_NODE = 6;
		document.PROCESSING_INSTRUCTION_NODE = 7;
		document.COMMENT_NODE = 8;
		document.DOCUMENT_NODE = 9;
		document.DOCUMENT_TYPE_NODE = 10;
		document.DOCUMENT_FRAGMENT_NODE = 11;
		document.NOTATION_NODE = 12;
	}
}

function fillMenu() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			if (xhr.responseXML) {
				// document.getElementById("menucell").removeChild(tempDiv);
				allMenu = xhr.responseXML.getElementsByTagName("mainmenu");
				for (var i = 0; i < allMenu.length; i++) {
					var tempDiv = document.createElement("div");
					var aTag = document.createElement("a");
					var current = allMenu[i].getElementsByTagName("a")[0];
					tempDiv.className = "menudiv";
					aTag.href = (prefix + (current.getElementsByTagName("href")[0].firstChild.nodeValue));
					aTag.id = (current.getElementsByTagName("id")[0].firstChild.nodeValue);
					aTag.innerHTML = (current.getElementsByTagName("label")[0].firstChild.nodeValue);
					tempDiv.id = "adiv" + ((current.getElementsByTagName("id")[0].firstChild.nodeValue).substring(4, 6));
					if (currentMenu1 == aTag.innerHTML) {
						aTag.className = "menulinkcurrent";
						aTag.innerHTML = ">  " + aTag.innerHTML;
					} else
						aTag.className = "menulink";
					tempDiv.onmouseover = showSubMenu;
					tempDiv.appendChild(aTag);
					document.getElementById("menucell").appendChild(tempDiv).cloneNode(true);
				}
			}
		} else {
			alert("There was a problem with the request" + xhr.status);
		}
	}
}

function showSubMenu(evt) {
	if (!evt) {
		evt = window.event;
	}
	if (evt.srcElement.id != "linkbox" && evt.srcElement.id != "submenu") {
		var k = this.id.length;
		var thisMenuNo = parseInt(this.id.substring(4, k));
		var subs = allMenu[thisMenuNo].getElementsByTagName("sub");
		var subdiv = document.getElementById("submenubox");
		hideMenu(subdiv);
		if (subs.length > 0) {
			for (var i = 0; i < subs.length; i++) {
				var tempDiv = document.createElement("div");
				var aTag = document.createElement("a");
				var current = subs[i].getElementsByTagName("a")[0];
				aTag.href = prefix + (current.getElementsByTagName("href")[0].firstChild.nodeValue);
				aTag.innerHTML = (current.getElementsByTagName("label")[0].firstChild.nodeValue).replace("&amp;","&");
				aTag.id = (current.getElementsByTagName("id")[0].firstChild.nodeValue);
				if (currentMenu2 == aTag.innerHTML) {
					aTag.className = "submenucurrent";
					aTag.innerHTML = ">  " + aTag.innerHTML;
				} else
					aTag.className = "submenu";
				tempDiv.appendChild(aTag);
				tempDiv.className = "linkbox";
				subdiv.appendChild(tempDiv).cloneNode(true);
			}
			var par = document.getElementById("adiv" + thisMenuNo);
			subdiv.style.top = (parseInt(getY(par, true))) + 3;
			subdiv.style.left = (parseInt(getX(par, true))) + 125;
			subdiv.style.height = (subs.length * 16) + 3;
			subdiv.style.width = 210;
			subdiv.style.visibility = "visible";
			subdiv.style.display = "block";
			// alert(subdiv.style.top + ", " + subdiv.style.left + ", " + subdiv.style.display + ", " + par.id);
			document.getElementById("menucell").onmouseout = hideSubMenu;
		}
	}
	return false;
}

function hideSubMenu (evt) {
	var box = document.getElementById("submenubox");
	if (box.style.visibility == "visible") {
		if (!evt) {
			evt = window.event;
		}
		var finished = false;
		var confirm = false;
		var p;
		try {
			if (evt.relatedTarget)
				p = evt.relatedTarget
			else
				p = evt.toElement;
			if (p.tagName == "BODY") {
				confirm = true;
			} else {
				do {
					p = p.parentNode;
					if (p.id == "menucell" || p.id == "linkbox" || p.id == "submenu") {
						finished = true;
						confirm = false;
					} else if (p.tagName == "BODY") {
						confirm = true;
						finished = true;
					}
				} while (!finished);
			}
		} catch (e) {
			confirm = true;
		}
		if (confirm) {
			hideMenu(box);
		}
	}
}

function hideMenu(box) {
	var links = box.getElementsByTagName("a");
	if (links.length > 0) {
		do {
			links[0].parentNode.removeChild(links[0]);
		} while (links[0] != null);
	}
	box.style.visibility = "hidden";
	box.style.display = "none";
}

function getMenuItem(level) {
	var metas = document.getElementsByTagName("meta");
	for (var i = 0; i < metas.length; i++) {
		if (metas[i].name == "aa-menu" + level)
			return metas[i].content;
	}
}

function getFadeSpeed() {
	var metas = document.getElementsByTagName("meta");
	var speed = 0;
	for (var i = 0; i < metas.length; i++) {
		if (metas[i].name == "fade")
			speed = metas[i].content;
	}
	if (speed == 0)
		speed = 5000;
	return speed;
}

function getY(obj, scroll) {
	var value = 0;
	while (obj != null) {
		value += obj.offsetTop;
		obj = obj.offsetParent;
	}
	if (scroll) {
		if (typeof (window.pageYOffset) == 'number')
			value -= window.pageYOffset
		else if (document.body && document.body.scrollTop)
			value -= document.body.scrollTop;
		else if (document.documentElement && document.documentElement.scrollTop)
			value -= document.documentElement.scrollTop;
	}
	return (value);
}

function getX(obj, scroll) {
	var value = 0;
	while (obj != null) {
		value += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	if (scroll) {
		if (typeof (window.pageXOffset) == 'number')
			value -= window.pageXOffset
		else if (document.body && document.body.scrollLeft)
			value -= document.body.scrollLeft;
		else if (document.documentElement && document.documentElement.scrollLeft)
			value -= document.documentElement.scrollLeft;
	}

	return (value);
}

function initFade() {
	if (xPhotos.readyState == 4) {
		if (xPhotos.status == 200) {
			if (xPhotos.responseXML) {
				var allPhotos = xPhotos.responseXML.getElementsByTagName("entries");
				allImages = getElementsByClass("rotatephotos", "img", "-1");
				if (allImages.length > 0) {
					for (var i = 0; i < allImages.length; i++) {
						photoSet[i] = getXMLElementById(allPhotos[0], allImages[i].id);
						photoNow[i] = 0;
						var image = document.getElementById(allImages[i].id);
						var photo = photoSet[i].getElementsByTagName("img")[photoNow[i]];
						image.src = prefix + photo.getAttribute("src");
						image.alt = photo.getAttribute("alt");
						if ((photo.getAttribute("href")) && (photo.getAttribute("href").length > 0)) {
							var a = image.parentNode;
							a.href = prefix + photo.getAttribute("href");
						}
					}
					t = setTimeout("startFade()", fadeSpeed);
				}
			}
		} else {
			alert("there was a problem with the request" + xNews.status);
		}
	}
}

function startFade() {
	if (++lastUpdated >= allImages.length)
		lastUpdated = 0;
	var image = document.getElementById(allImages[lastUpdated].id);
	var a = image.parentNode;
	var p;
	if (a.tagName == "A")
		p = a.parentNode;
	else {
		p = a;
		a = null;
	}
	p.style.backgroundImage = "url('"+ image.getAttribute("src") + "')";
	setOpacity(image.id, 0);
	if (++photoNow[lastUpdated] >= photoSet[lastUpdated].getElementsByTagName("img").length)
		photoNow[lastUpdated] = 0;
	var photo = photoSet[lastUpdated].getElementsByTagName("img")[photoNow[lastUpdated]];
	image.alt = photo.getAttribute("alt");
	image.src = prefix + photo.getAttribute("src");
	if ((photo.getAttribute("href")) && (photo.getAttribute("href").length > 0) && (a != null))
		a.href = prefix + photo.getAttribute("href");
	doFade(image.id, 0, 100, fadein);
	var t = setTimeout("startFade()", parseInt(fadeSpeed) + 1000);
}

function doFade(id, start, end, dir) {
	if (dir == fadein) {
		start += 5;
	} else {
		start -= 5;
	}
	setOpacity(id, start);
	if (((dir == fadein) && (start < end)) || ((dir == fadeout) && (start > end)))
		var s = setTimeout("doFade('" + id + "'," + start + "," + end + "," + dir + ")", 5);
}

function setOpacity(id, level) {
	var object = document.getElementById(id); 
	object.style.opacity = (level / 100);
	object.style.KhtmlOpacity = (level / 100); 
	object.style.filter = "alpha(opacity=" + level + ")"; 
	if (level == 100)
		level = 99.999;
	object.style.MozOpacity = (level / 100); 
}

function fillNews() {
	if (xNews.readyState == 4) {
		if (xNews.status == 200) {
			if (xNews.responseXML) {
				allNews = xNews.responseXML.getElementsByTagName("entry");
				for (var i = 0; (i < allNews.length) && (i < 5); i++) {
					var tempDiv = document.createElement("div");
					var aTag = document.createElement("a");
					tempDiv.className = "newsdiv";
					aTag.href = (prefix + (allNews[i].getElementsByTagName("link")[0].firstChild.nodeValue));
					aTag.innerHTML = (allNews[i].getElementsByTagName("date")[0].firstChild.nodeValue) + ' : ';
					aTag.innerHTML = aTag.innerHTML + allNews[i].getElementsByTagName("event")[0].firstChild.nodeValue;
					aTag.className = "newslink";
					tempDiv.appendChild(aTag);
					document.getElementById("newscell").appendChild(tempDiv).cloneNode(true);
				}
				if (document.getElementById("newsdiv"))
					fillNewsPage();
			}
		} else {
			alert("there was a problem with the request" + xNews.status);
		}
	}
}

function fillNewsPage() {
	var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var lastMonth = -1;
	var now = new Date();
	var today = now.getDate();
	var thisMonth = now.getMonth();
	var thisYear = now.getFullYear();
	var newsDiv = document.getElementById("newsdiv");
	for (var i = 0; i < allNews.length; i++) {
		var start = allNews[i].getElementsByTagName("date")[0].firstChild.nodeValue;
		var pos = 0;
		var end = start.indexOf("/", pos);
		var d1 = start.substring(pos,end);
		pos = end + 1;
		end = start.indexOf("/", pos);
		var m1 = start.substring(pos,end);
		pos = end + 1;
		end = start.length + 1;
		var y1 = '20' + start.substring(pos,end);
		var lm = false;
		if ((m1 + '' + y1) != lastMonth) {
			lm = true;
			var pTag = document.createElement("p");
			pTag.className = "eventMonth";
			pTag.innerHTML = months[m1-1] + " " + y1;
			newsDiv.appendChild(pTag);
		}
		lastMonth = m1 + '' + y1;
		var pTag = document.createElement("p");
		if (lm)
			pTag.className = "diaryNextEntry";
		else
			pTag.className = "diaryEntry";
		pTag.innerHTML = getTHdate(d1) + ":  ";
		var aTag = document.createElement("a");
		aTag.href = prefix + (allNews[i].getElementsByTagName("link")[0].firstChild.nodeValue);
		aTag.innerHTML = allNews[i].getElementsByTagName("event")[0].firstChild.nodeValue;
		pTag.appendChild(aTag);
		newsDiv.appendChild(pTag);
	}
}

function fillEvents() {
	if (xEvents.readyState == 4) {
		if (xEvents.status == 200) {
			if (xEvents.responseXML) {
				allEvents = xEvents.responseXML.getElementsByTagName("entry");
				for (var i = 0; i < allEvents.length; i++) {
					if (checkCurrentEvent(allEvents[i])) {
						if (allEvents[i].getElementsByTagName("showonfeed")[0].firstChild.nodeValue == "yes") {
							var tempDiv = document.createElement("div");
							var aTag = document.createElement("a");
							tempDiv.className = "diarydiv";
							if (allEvents[i].getElementsByTagName("link")[0].firstChild)
								aTag.href = (prefix + (allEvents[i].getElementsByTagName("link")[0].firstChild.nodeValue));
							aTag.innerHTML = (allEvents[i].getElementsByTagName("startdate")[0].firstChild.nodeValue);
							if (allEvents[i].getElementsByTagName("enddate")[0].firstChild)
								aTag.innerHTML = aTag.innerHTML + ' - ' + allEvents[i].getElementsByTagName("enddate")[0].firstChild.nodeValue;
							aTag.innerHTML = aTag.innerHTML + '<br>' + allEvents[i].getElementsByTagName("event")[0].firstChild.nodeValue;
							aTag.className = "diarylink";
							tempDiv.appendChild(aTag);
							document.getElementById("diarycell").appendChild(tempDiv).cloneNode(true);
						}
					}
				}
				if (document.getElementById("eventscalendar"))
					fillEventsPage();
			}
		} else {
			alert("there was a problem with the request" + xEvents.status);
		}
	}
}

function fillEventsPage() {
	var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var lastMonth = -1;
	var now = new Date();
	var today = now.getDate();
	var thisMonth = now.getMonth();
	var thisYear = now.getFullYear();
	var diarydiv = document.getElementById("eventscalendar");
	for (var i = 0; i < allEvents.length; i++) {
		if (checkCurrentEvent(allEvents[i])) {
			var start = allEvents[i].getElementsByTagName("startdate")[0].firstChild.nodeValue;
			var finish = "-1";
			var endDate = false;
			var pos = 0;
			var end = start.indexOf("/", pos);
			var d1 = start.substring(pos,end);
			pos = end + 1;
			end = start.indexOf("/", pos);
			var m1 = start.substring(pos,end);
			pos = end + 1;
			end = start.length + 1;
			var y1 = '20' + start.substring(pos,end);
			if (allEvents[i].getElementsByTagName("enddate")[0].firstChild) {
				finish = allEvents[i].getElementsByTagName("enddate")[0].firstChild.nodeValue;
				pos = 0;
				end = finish.indexOf("/", pos);
				var d2 = finish.substring(pos,end);
				pos = end + 1;
				end = finish.indexOf("/", pos);
				var m2 = finish.substring(pos,end);
				pos = end + 1;
				end = finish.length + 1;
				var y2 = '20' + finish.substring(pos,end);
				endDate = true;
			}
			var lm = false;
			if ((m1 + '' + y1) != lastMonth) {
				lm = true;
				var pTag = document.createElement("p");
				pTag.className = "eventMonth";
				pTag.innerHTML = months[m1-1] + " " + y1;
				diarydiv.appendChild(pTag);
			}
			lastMonth = m1 + '' + y1;
			var pTag = document.createElement("p");
			if (lm)
				pTag.className = "diaryNextEntry";
			else
				pTag.className = "diaryEntry";
			pTag.innerHTML = getTHdate(d1);
			if (endDate) {
				if ((m1 == m2) && (y1 == y2))
					pTag.innerHTML = pTag.innerHTML + " - " + getTHdate(d2);
				if ((m1 != m2) && (y1 == y2))
					pTag.innerHTML = pTag.innerHTML + " - " + getTHdate(d2) + " " + months[m2-1];
				if (y1 != y2)
					pTag.innerHTML = pTag.innerHTML + " - " + getTHdate(d2) + " " + months[m2-1] + " " + y2;
			}
			pTag.innerHTML = pTag.innerHTML + ":  "
			var aTag = document.createElement("a");
			if (allEvents[i].getElementsByTagName("link")[0].firstChild)
				aTag.href = prefix + (allEvents[i].getElementsByTagName("link")[0].firstChild.nodeValue);
			aTag.innerHTML = allEvents[i].getElementsByTagName("event")[0].firstChild.nodeValue;
			pTag.appendChild(aTag);
			diarydiv.appendChild(pTag);
		}	
	}
}

function checkCurrentEvent(evt) {
	var check;
	if (evt.getElementsByTagName("enddate")[0].firstChild)
		check = evt.getElementsByTagName("enddate")[0].firstChild.nodeValue;
	else
		check = evt.getElementsByTagName("startdate")[0].firstChild.nodeValue;
	var pos = 0;
	var end = check.indexOf("/", pos);
	var d = check.substring(pos,end);
	pos = end + 1;
	end = check.indexOf("/", pos);
	var m = check.substring(pos,end);
	pos = end + 1;
	end = check.length + 1;
	var y = '20' + check.substring(pos,end);
	var now = new Date();
	var today = now.getDate();
	var thisMonth = now.getMonth();
	var thisYear = now.getFullYear();
	var ok = false;
	if (y > thisYear)
		ok = true;
	else {
		if (y == thisYear) {
			if ((m - 1) > thisMonth)
				ok = true;
			else {
				if (((m - 1) == thisMonth) && (d >= today))
					ok = true;
			}
		}
	}
	return ok;
}

function getTHdate(d) {
	var dt = "0th";
	switch(d) {
		case "1":
		case "21":
		case "31":
			dt = d + "st";
			break;
		case "2":
		case "22":
			dt = d + "nd";
			break;
		case "3":
		case "23":
			dt = d + "rd";
			break;
		default:
			dt = d + "th";
			break;
	}
	return dt;
}

function fillFooter() {
	if (xFooter.readyState == 4) {
		if (xFooter.status == 200) {
			if (xFooter.responseXML) {
				var importedNode = null;
				var tables = xFooter.responseXML.getElementsByTagName("tr");
				for (var i = 0; i < tables.length; i++) {
					if (tables[i].nodeType == 1) {
						document.getElementById("termscell").appendChild(importXMLNode(tables[i], true));
					}
				}
				document.recalc();
			}
		} else {
			alert("there was a problem with the request" + xFooter.status);
		}
	}
}

function loadJobs() {
	if (xJobs.readyState == 4) {
		if (xJobs.status == 200) {
			if (xJobs.responseXML) {
				allJobs = xJobs.responseXML.getElementsByTagName("job");
				jobDiv = document.getElementById("jobdiv");
				if (allJobs.length > 0)
					showAllJobs();
				else {
					noJobs();
				}
			}
		} else {
			alert("There was a problem with the request" + xJobs.status);
		}
	}
}

function showAllJobs() {
	if (jobDiv != null) {
		var jobsListed = false;
		for (var i = 0; i < allJobs.length; i++) {
			var current = allJobs[i];
			if (current.getElementsByTagName("active")[0].firstChild.nodeValue == "yes") {
				jobsListed = true;
				var pTag = document.createElement("p");
				var aTag = document.createElement("a");
				var id = current.getAttribute("id");
				aTag.href = id;
				aTag.id = id;
				aTag.onclick = showJob;
				aTag.innerHTML = current.getElementsByTagName("title")[0].firstChild.nodeValue;
				pTag.appendChild(aTag);
				pTag.appendChild(document.createElement("br"));
				pTag.appendChild(document.createTextNode("Closing Date: " + current.getElementsByTagName("date")[0].firstChild.nodeValue));
				jobDiv.appendChild(pTag);
			}
		}
		if (!jobsListed)
			noJobs();
	} else
		jobApply();
}

function showJob() {
	var found = false;
	var thisJob;
	for (var i = 0; (i < allJobs.length) && (!found); i++) {
		if (allJobs[i].getAttribute("id") == this.id) {
			found = true;
			thisJob = allJobs[i];
		}
	}
	if (found) {
		emptyJobBox();
		
		//add return link
		var pTag = document.createElement("p");
		var aTag = document.createElement("a");
		aTag.href = "back";
		aTag.id = "back";
		aTag.onclick = hideJob;
		aTag.innerHTML = "Back to All Vacancies";
		pTag.appendChild(aTag);
		jobDiv.appendChild(pTag);	
		
		// add job heading
		pTag = document.createElement("p");
		var spanTag = document.createElement("span");
		spanTag.className = "minorhead";
		spanTag.appendChild(document.createTextNode(thisJob.getElementsByTagName("title")[0].firstChild.nodeValue));
		pTag.appendChild(spanTag);
		jobDiv.appendChild(pTag);
		
		// add closing date
		pTag = document.createElement("p");
		spanTag = document.createElement("span");
		spanTag.className = "minorhead";
		spanTag.appendChild(document.createTextNode("Closing Date: "));
		pTag.appendChild(spanTag);
		pTag.appendChild(document.createTextNode(thisJob.getElementsByTagName("date")[0].firstChild.nodeValue));
		jobDiv.appendChild(pTag);
		
		// add salary
		if (thisJob.getElementsByTagName("salary")[0].firstChild) {
			pTag = document.createElement("p");
			spanTag = document.createElement("span");
			spanTag.className = "minorhead";
			spanTag.appendChild(document.createTextNode("Salary: "));
			pTag.appendChild(spanTag);
			pTag.appendChild(document.createTextNode(thisJob.getElementsByTagName("salary")[0].firstChild.nodeValue));
			jobDiv.appendChild(pTag);
		}
		
		// add criteria
		if (thisJob.getElementsByTagName("criteria")[0].firstChild) {
			pTag = document.createElement("p");
			spanTag = document.createElement("span");
			spanTag.className = "minorhead";
			spanTag.appendChild(document.createTextNode("Criteria: "));
			pTag.appendChild(spanTag);
			pTag.appendChild(document.createTextNode(thisJob.getElementsByTagName("criteria")[0].firstChild.nodeValue));
			jobDiv.appendChild(pTag);
		}
		
		// add explanation
		if (thisJob.getElementsByTagName("explanation")[0].firstChild) {
			pTag = document.createElement("p");
			spanTag = document.createElement("span");
			spanTag.className = "minorhead";
			spanTag.appendChild(document.createTextNode("Explanation: "));
			pTag.appendChild(spanTag);
			pTag.appendChild(document.createTextNode(thisJob.getElementsByTagName("explanation")[0].firstChild.nodeValue));
			jobDiv.appendChild(pTag);
		}
		if ((thisJob.getElementsByTagName("jobdesc")[0].firstChild) && (thisJob.getElementsByTagName("jobdesc")[0].firstChild.nodeValue.length > 0)) {
			pTag = document.createElement("p");
			aTag = document.createElement("a");
			aTag.href = "apply.htm?jobid=" + this.id;
			aTag.innerHTML = "Click here to apply for this job.";
			pTag.appendChild(aTag);
			jobDiv.appendChild(pTag);
		}
	}
	

	return false;
}

function hideJob() {
	emptyJobBox();
	showAllJobs();
	return false;
}

function emptyJobBox() {
	var contents = jobDiv.getElementsByTagName("p");
	if (contents.length > 0) {
		do {
			contents[0].parentNode.removeChild(contents[0]);
		} while (contents[0] != null);
	}
	contents = jobDiv.getElementsByTagName("div");
	if (contents.length > 0) {
		do {
			contents[0].parentNode.removeChild(contents[0]);
		} while (contents[0] != null);
	}
}

function noJobs() {
	var pTag = document.createElement("p");
	pTag.appendChild(document.createTextNode("We do not have any job vacancies at the moment."));
	pTag.appendChild(document.createElement("br"));
	pTag.appendChild(document.createTextNode("Please check again soon as this page is updated regularly."));
	pTag.className = "minorhead";
	jobDiv.appendChild(pTag);
}

function jobApply() {
	jobApply = document.getElementById("jobapply");
	var jobId;
	var thisJob;
	if (jobApply) {
		for (i = 0; i < paramname.length; i++) {
			if (paramname[i] == "jobid")
				jobId = paramvalue[i];
		}
		if (jobId) {
			var found = false;
			for (var i = 0; (i < allJobs.length) && (!found); i++) {
				if (allJobs[i].getAttribute("id") == jobId) {
					found = true;
					thisJob = allJobs[i];
				}
			}
			if (found) {
				document.getElementById("position").value = thisJob.getElementsByTagName("title")[0].firstChild.nodeValue;
				document.getElementById("jobid").value = jobId;
				document.getElementById("nexturl").value = "forms/forms.htm?jobid=" + jobId;
				var d = new Date();
				var day = d.getDate();
				var month = d.getMonth() + 1;
				var year = d.getFullYear();
				document.getElementById("date").value = day + "-" + month + "-" + year;
				if (thisJob.getElementsByTagName("checkdriver")[0].firstChild.nodeValue == "no") {
					var row = document.getElementById("driverrow");
					row.parentNode.removeChild(row);
				}
			}
		}		
	} else
		jobForms();
}

function jobSubmit() {
	var formOk = true;
	var fullName = document.getElementById("name");
	if (fullName.value.length < 5) {
		fullName.style.background = "ff9999";
		formOk = false;
	} else {
		if (fullName.value.indexOf(" ") < 2) {
			fullName.style.background = "ff9999";
			formOk = false;
		} else {
			if (fullName.value.length - fullName.value.indexOf(" ") < 3) {
				fullName.style.background = "ff9999";
				formOk = false;
			} else
				fullName.style.background = "ffffff";
		}
	}
	var address1 = document.getElementById("address1");
	if (address1.value.length < 1) {
		address1.style.background = "ff9999";
		formOk = false;
	} else
		address1.style.background = "ffffff";
	var town = document.getElementById("town");
	if (town.value.length < 1) {
		town.style.background = "ff9999";
		formOk = false;
	} else
		town.style.background = "ffffff";
	var county = document.getElementById("county");
	if (county.value.length < 1) {
		county.style.background = "ff9999";
		formOk = false;
	} else
		county.style.background = "ffffff";
	var postcode = document.getElementById("postcode");
	if (postcode.value.length < 1) {
		postcode.style.background = "ff9999";
		formOk = false;
	} else
		postcode.style.background = "ffffff";
	var phone = document.getElementById("phone");
	if (phone.value.length < 6) {
		phone.style.background = "ff9999";
		formOk = false;
	} else
		phone.style.background = "ffffff";
	var isDriver = "no";
	if (document.getElementById("driverrow")) {
		for (i = 0; i < document.jobapply.driver.length; i++) {
			if (document.jobapply.driver[i].checked) {
				isDriver = document.jobapply.driver[i].value;
			}
		}
		if (isDriver == "no") {
			document.getElementById("drivermessage").innerHTML = "You must have a current driving licence to apply for this job.";
			document.getElementById("drivertable").style.background = "ff9999";
			formOk = false;
		} else
			document.getElementById("drivertable").style.background = "ffffff";
	}
	if (formOk)
		return true;
	else {
		document.getElementById("errormessage").innerHTML = "Please complete all fields marked in red.";
		return false;
	}
}

function jobForms() {
	jobApply = document.getElementById("jobforms");
	var jobId;
	var thisJob;
	if (jobApply) {
		for (i = 0; i < paramname.length; i++) {
			if (paramname[i] == "jobid")
				jobId = paramvalue[i];
		}
		if (jobId) {
			var found = false;
			for (var i = 0; (i < allJobs.length) && (!found); i++) {
				if (allJobs[i].getAttribute("id") == jobId) {
					found = true;
					thisJob = allJobs[i];
				}
			}
			if (found) {
				document.getElementById("jobdesc").setAttribute("href", "descriptions/" + thisJob.getElementsByTagName("jobdesc")[0].firstChild.nodeValue);
				document.getElementById("appform").setAttribute("href", thisJob.getElementsByTagName("appform")[0].firstChild.nodeValue);
				document.getElementById("medical").setAttribute("href", thisJob.getElementsByTagName("medical")[0].firstChild.nodeValue);
				document.getElementById("equalopps").setAttribute("href", thisJob.getElementsByTagName("equalopps")[0].firstChild.nodeValue);
				document.getElementById("convictions").setAttribute("href", thisJob.getElementsByTagName("convictions")[0].firstChild.nodeValue);
			}
		}
	}
}

function loadCounties() {
	if (xCounties.readyState == 4) {
		if (xCounties.status == 200) {
			if (xCounties.responseXML)
				allCounties = xCounties.responseXML.getElementsByTagName("county");
		} else
			alert("There was a problem with the request" + xJobs.status);
	}
}

function showCounty(suffix) {
	var image = document.getElementById("map");
	image.src = prefix + "images/maps/counties-" + suffix + ".gif";
}

function showNoCounty() {
	var image = document.getElementById("map");
	image.src = prefix + "images/maps/counties.gif";
}

function selectCounty(suffix) {
	countySelected = suffix;
	showCounty(suffix);
	displayCountyInfo(suffix);
}

function showSelected() {
	if (countySelected)
		showCounty(countySelected)
	else
		showNoCounty()
}

function displayCountyInfo(suffix) {
	var k = -1;
	var thisCounty;
	for (var i = 0; (i < allCounties.length) && (k < 0); i++) {
		if (allCounties[i].getAttribute("id") == suffix) {
			k = i;
		}
	}
	var doc1 = document.getElementById("select1");
//	var doc2 = document.getElementById("select2");
	var select1 = allCounties[k].childNodes[0].cloneNode(true);
//	var select2 = allCounties[k].childNodes[1].cloneNode(true);
	while ((doc1.childNodes) && (doc1.childNodes.length > 0)) {
		doc1.removeChild(doc1.childNodes[0]);
	}
/*	while ((doc2.childNodes) && (doc2.childNodes.length > 0)) {
		doc2.removeChild(doc2.childNodes[0]);
	} */
	if ((select1.childNodes) && (select1.childNodes.length > 0)) {
		for (var i = 0; i < select1.childNodes.length; i++) {
			if (select1.childNodes[i].nodeType == 1) {
				doc1.appendChild(importXMLNode(select1.childNodes[i], true));
			}
		}
	}
/*	if ((select2.childNodes) && (select2.childNodes.length > 0)) {
		for (var i = 0; i < select2.childNodes.length; i++) {
			if (select2.childNodes[i].nodeType == 1) {
				doc2.appendChild(importXMLNode(select2.childNodes[i], true));
			}
		}
	} */
}

function importXMLNode(node, allChildren) {
	switch (node.nodeType) {
		case 1:
			var newNode = document.createElement(node.nodeName);
      /* does the node have any attributes to add? */
			if (node.attributes && node.attributes.length > 0) {
        		for (var i = 0; i < node.attributes.length; i++) {
        			if (node.attributes[i].nodeName == "href") {
        				newNode.setAttribute("href", prefix + node.getAttribute("href"));
        			} else if (node.attributes[i].nodeName == "src") {
        				newNode.setAttribute("src", prefix + node.getAttribute("src"));
        			} else {
        				newNode.setAttribute(node.attributes[i].nodeName, node.getAttribute(node.attributes[i].nodeName));
        			}
          		}
           	}
      /* are we going after children too, and does the node have any? */
			if (allChildren && node.childNodes && node.childNodes.length > 0) {
				for (var i = 0; i < node.childNodes.length; i++) {
					newNode.appendChild(importXMLNode(node.childNodes[i], true));
				}
			}
      		return newNode;
			break;
		case 3:
			return document.createTextNode(node.nodeValue);
			break;
		case 4:
		case 8:
			return document.createTextNode(node.nodeValue);
			break;
  	}
}

function getElementsByClass(className, tagName, source) {
	var allElements;
	if (source == "-1")
		allElements = document.getElementsByTagName(tagName);
	else
		allElements = source.getElementsByTagName(tagName);
	var store = [];
	for (var i = 0; i < allElements.length; i++) {
		if (allElements[i].className == className)
			store[store.length] = importXMLNode(allElements[i],true);
	}
	return store;
}

function getXMLElementById(node, id) {
	var found = null;
	if (node.attributes && node.attributes.length > 0) {
   		for (var i = 0; i < node.attributes.length; i++) {
        	if (node.attributes[i].nodeName == "id") {
				if (node.getAttribute("id").indexOf(id) == 0)
					found = node;
			}
		}
	}
	for (var i = 0; (node.childNodes) && (i < node.childNodes.length) && (found==null); i++)
		found = getXMLElementById(node.childNodes[i], id);
	return found;
}
