var t;

function sec(id,event,str) {
	keyCode=event.which;
	if (keyCode==undefined) {
		keyCode=event.keyCode;
	}
	if (keyCode!=40 && keyCode!=38 && keyCode!=37 && keyCode!=39 && keyCode!=27) {
		clearTimeout(t);
		t=setTimeout(
			function() {
				autosuggest(id,str);
			},
			500
		);
	}
}

function autosuggest(id,str) {
	position=0;
	str     =str.replace(/%/g,"%25");
	str     =str.replace(/#/g,"%23");
	str     =str.replace(/&/g,"%26");
	str     =str.replace(/\+/g,"%2B");
	str     =str.replace(/ /g,"+");
	if (id=="what") {
		var box="xrefs";
		document.getElementById("burbs").innerHTML="";
	} else {
		var box="burbs";
		document.getElementById("xrefs").innerHTML="";
	}
	if (str.length==0) {
		document.getElementById(box).innerHTML="";
		if (document.getElementById("regions_i")) {
			document.getElementById("regions_i").className="orig";
		}
		return;
	}
	if (window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	} else {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4 && xmlhttp.status==200) {
			document.getElementById(box).innerHTML=xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET","/files/globals/"+box+".php?"+id+"="+str+"&rnd="+Math.random(),true);
	xmlhttp.send();
	if (id=="what") {
		document.getElementById("error").style.display="none";
		if (document.getElementById("step2_i_img")) {
			document.getElementById("step2_i_img").src="/files/images/step2_i.gif";
		} else {
			document.getElementById("step2_img").src="/files/images/step2.gif";
		}
	} else {
		if (document.getElementById("regions_i")) {
			document.getElementById("regions_i").className="orig";
		}
	}
}

function scroll(id,event) {
	if (id=="what") {
		var box="xrefs";
		ext="";
	} else {
		var box="burbs";
		ext="_b";
	}
	keyCode=event.which;
	if (keyCode==undefined) {
		keyCode=event.keyCode;
	}
	if (keyCode==40 || keyCode==38) {
		arr=document.getElementById("list"+ext).getElementsByTagName("li");
		for (i=1;i<=arr.length;i++) {
			if (document.getElementById("item"+i+ext).className=="hand highlight") {
				position=i;
			}
		}
		if (keyCode==40) {
			if (position<arr.length) {
				position=position+1;
			} else {
				position=1;
			}
		} else {
			if (position>1) {
				position=position-1;
			} else {
				position=arr.length;
			}
		}
		for (j=1;j<=arr.length;j++) {
			if (j==position) {
				document.getElementById("item"+j+ext).className="hand highlight";
				if (id=="where") {
					document.getElementById("region"+j).className="region highlight";
					if (document.getElementById("regions_i")) {
						region     =document.getElementById("region"+j).innerHTML;
						region_abbr=region.substring(0,1);
						region_abbr=region_abbr.toLowerCase();
						document.getElementById("regions_i").className=region_abbr;
					}
				}
			} else {
				document.getElementById("item"+j+ext).className="hand";
				if (id=="where") {
					document.getElementById("region"+j).className="region default";
				}
			}
		}
	}
	if (keyCode==13) {
		if (id=="what") {
			clearTimeout(t);
			if (document.getElementById("what").value!="") {
				if (document.getElementById("list")) {
					arr=document.getElementById("list").getElementsByTagName("li");
					for (i=1;i<=arr.length;i++) {
						if (document.getElementById("item"+i).className=="hand highlight") {
							document.getElementById("what").value=document.getElementById("xref"+i).className;
						}
					}
				}
				document.getElementById("what").blur();
				document.getElementById("xrefs").innerHTML="";
				if (document.getElementById("typein").style.display=="none") {
					if (document.getElementById("step2_i_img")) {
						document.getElementById("step2_i_img").src="/files/images/step2_i2.gif";
					} else {
						document.getElementById("step2_img").src="/files/images/step2b.gif";
					}
				} else {
					document.getElementById("where").focus();
				}
			}
		} else {
			if (document.getElementById("list_b")) {
				arr=document.getElementById("list_b").getElementsByTagName("li");
				for (i=1;i<=arr.length;i++) {
					if (document.getElementById("item"+i+"_b").className=="hand highlight") {
						region     =document.getElementById("region"+i).innerHTML;
						region_abbr=region.substring(0,1);
						region_abbr=region_abbr.toLowerCase();
						burb       =document.getElementById("burb"+i).innerHTML;
						performSearch(region_abbr,burb);
					}
				}
			}
		}
	}
	if (keyCode==27 && document.getElementById("list")) {
		document.getElementById("xrefs").innerHTML="";
	}
	if (this.addEventListener) {
		ignoreKey=false;
		handler  =function(e) {
			if (ignoreKey) {
				e.preventDefault();
				return;
			}
			if (e.keyCode==40) {
				pos                =this.selectionStart;
				this.value         =(e.keyCode==40?1:-1)+parseInt(this.value,10);
				this.selectionStart=pos;
				this.selectionEnd  =pos;
				ignoreKey          =true;
				setTimeout(function(){ignoreKey=false},1);
				e.preventDefault();
			}
			if (e.keyCode==38) {
				pos                =this.selectionStart;
				this.value         =(e.keyCode==38?1:-1)+parseInt(this.value,10);
				this.selectionStart=pos;
				this.selectionEnd  =pos;
				ignoreKey          =true;
				setTimeout(function(){ignoreKey=false},1);
				e.preventDefault();
			}
		};
		this.addEventListener("keydown",handler,false);
	}
}

overXrefs=0;
overBurbs=0;

function highlightXref(item) {
	arr      =document.getElementById("list").getElementsByTagName("li");
	overXrefs=1;
	document.getElementById(item).className="hand highlight";
	for (i=1;i<=arr.length;i++) {
		if ("item"+i!=item) {
			document.getElementById("item"+i).className="hand";
		}
	}
}

function highlightBurb(item,region_id,region) {
	arr      =document.getElementById("list_b").getElementsByTagName("li");
	overBurbs=1;
	document.getElementById(item).className="hand highlight";
	document.getElementById(region_id).className="region highlight";
	for (i=1;i<=arr.length;i++) {
		if ("item"+i+"_b"!=item) {
			document.getElementById("item"+i+"_b").className="hand";
			document.getElementById("region"+i).className="region default";
		}
	}
	if (document.getElementById("regions_i")) {
		document.getElementById("regions_i").className=region;
	}
}

function overItems(items,num) {
	if (items=="xrefs") {
		overXrefs=num;
	} else {
		overBurbs=num;
	}
}

function update(xref) {
	document.getElementById("what").value=xref;
	document.getElementById("xrefs").innerHTML="";
	if (document.getElementById("typein").style.display=="none") {
		if (document.getElementById("step2_i_img")) {
			document.getElementById("step2_i_img").src="/files/images/step2_i2.gif";
		} else {
			document.getElementById("step2_img").src="/files/images/step2b.gif";
		}
	} else {
		document.getElementById("where").focus();
	}
}

function performSearch(where,suburb) {
	var what=document.getElementById("what").value;
	if (suburb!=undefined) {
		document.getElementById("where").value=suburb;
	}
	document.getElementById("burbs").innerHTML="";
	if (document.getElementById("regions_i")) {
		document.getElementById("regions_i").className="orig";
	}
	if (what!="") {
		what=what.replace(/%/g,"%25");
		what=what.replace(/#/g,"%23");
		what=what.replace(/&/g,"%26");
		what=what.replace(/\+/g,"%2B");
		what=what.replace(/ /g,"+");
		if (suburb==undefined) {
			window.location="/results/?what="+what+"&where="+where;
		} else {
			suburb=suburb.replace(/ /g,"+");
			window.location="/results/?what="+what+"&where="+where+"&suburb="+suburb;
		}
	} else {
		setFocus("what");
		document.getElementById("error").style.display="block";
	}
}

function hideAlert() {
	document.getElementById("burbs").innerHTML="";
}

function hideBox(id,unsure) {
	if (id=="what") {
		if (overXrefs==0) {
			document.getElementById("xrefs").innerHTML="";
		}
		if (document.getElementById("error")) {
			document.getElementById("error").style.display="none";
		}
	} else {
		if (overBurbs==0) {
			src     =document.getElementById(unsure+"_img").src;
			fileName=src.substring(src.lastIndexOf("/")+1);
			if (fileName==unsure+".gif") {
				document.getElementById("burbs").innerHTML="";
			}
			if (document.getElementById("regions_i")) {
				document.getElementById("regions_i").className="orig";
			}
		}
	}
}
