			function KillEvent(e)
			{
				if (e && e.stopPropogation) e.stopPropogation();
				if (window.event && window.event.cancelBubble) window.event.cancelBubble = true;
				if (e && e.preventDefault) e.preventDefault();
				if (window.event) window.event.returnValue = false;
			}
			
			function addEvent(element, eventType, lamdaFunction, useCapture) {
				if (element.addEventListener) {
					element.addEventListener(eventType, lamdaFunction, useCapture);
					return true;
				} else if (element.attachEvent) {
					var r = element.attachEvent('on' + eventType, lamdaFunction);
					return r;
				} else {
					return false;
				}
			}
			
			function getHTTPObject(){
				var xmlhttp;
				if (window.ActiveXObject)
					{
					xmlhttp = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null;
					return xmlhttp;
				}
				// code for Mozilla, etc.h
				else if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
					try {
						xmlhttp = new XMLHttpRequest();
					} catch (e) {
						xmlhttp = null;
					}
					return xmlhttp;
				} else {
					//alert('Your browser cannot handle this script');
					return null;
				}
			}
			
			function SubmitLink(e)
			{
				KillEvent(e);
				var target = (window.event?window.event.srcElement:(e?e.target:null));
				
				if (target.ajaxInProgress) return;
				
				// setup request
				var xmlhttp = getHTTPObject();
				xmlhttp.open('POST', '/siteindex/request_link.php', true);
				
				// callback function
				xmlhttp.onreadystatechange = function () {
					if (xmlhttp.readyState == 4) {
						var str = xmlhttp.responseText;
						
						if (str.indexOf("Redirect: ")==0) {
							window.location = str.substr(String("Redirect: ").length);
						} else {
							document.getElementById("LinkSubmissionStatus").innerHTML = xmlhttp.responseText;
						}
						target.ajaxInProgress = false;
					}
				}
				
				// send request
				xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				xmlhttp.send('LinkText='+target.elements['LinkText'].value);
				
				// invalidate form
				target.elements['LinkText'].disabled=true;
				target.elements['Submit'].disabled=true;
				target.ajaxInProgress=true;
				
				document.getElementById("LinkSubmissionStatus").innerHTML = "<img src='/siteindex/spinner.gif' />";
			}
			
			function AJAXList(mychr)
			{
				// setup request
				var xmlhttp = getHTTPObject();
				xmlhttp.open('GET', '/siteindex/az_list.php?MyChr='+mychr, true);
				
				// callback function
				xmlhttp.onreadystatechange = function () {
					if (xmlhttp.readyState == 4) {
						document.getElementById("AZListing").innerHTML = xmlhttp.responseText;
					}
				}
				
				// send request
				xmlhttp.send(null);
			}
			
			function AtoZinit() {
				if (!document.getElementById) return;
				
				/*
				var formElements = document.getElementById("LinkSubmission");
				formElements = document.getElementsByTagName("FORM");
				for (x=0;x<formElements.length;x++) {
					alert(formElements[x].id);
				}
				addEvent(formElements[0], 'submit', SubmitLink, false);
				*/
				var con = document.getElementById("LinkSubmission");
				var conlist = con.getElementsByTagName("INPUT");
				
				var MyForm = document.createElement("form");
				MyForm.setAttribute("action", "");
				MyForm.setAttribute("method", "POST");
				MyForm.setAttribute("id", "LinkSubmissionForm");
				addEvent(MyForm, 'submit', SubmitLink, false);
				
				while (conlist.length>0) {
					MyForm.appendChild(conlist[0]);
					conlist = con.getElementsByTagName("INPUT");
				}
				con.insertBefore(MyForm, con.firstChild);
				AJAXList('A');
			}
