
var throwErrors = true;

// action

function ajaxError(message) {
  if (throwErrors == true && message != null) alert(message);
}

function testForAjax() {
  try {
    if (window.XMLHttpRequest) {
      var tRequest = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
      var tRequest = new ActiveXObject("Msxml2.XMLHTTP");
      if (!tRequest) tRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (tRequest) {
      return true;
    }
	}
	catch (err) {}
	alert("Your browser does not support modern browser features, like Ajax.  Map generation is therefor unavailable.  Please update your browser.");
	return false;
}

function httpRequest(type,url,asynch,respHandle) {
  // moz
  if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
  }
  // ie
  else if (window.ActiveXObject) {
    request = new ActiveXObject("Msxml2.XMLHTTP");
    if (!request) request = new ActiveXObject("Microsoft.XMLHTTP");
  }
  // send request | error
  if (request) {
	  if (type.toLowerCase() != "post") {
      initRequest(type,url,asynch,respHandle);
    }
	  else {
	    var args = arguments[4];
	    if (args != null && args.length > 0) {
	      initRequest(type,url,asynch,respHandle,args);
	    }
		}
	}
  else {
    ajaxError("The item you clicked is unavailable.  Please update your browser.");
  }
}

function initRequest(type,url,asynch,respHandle) {
  try {
    request.onreadystatechange = respHandle;
  	request.open(type,url,asynch);
  	if (type.toLowerCase() == "post") {
  	  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  		request.send(arguments[4]);
  	}
  	else {
  	  request.send(null);
    }
	} catch (errv) {
	  ajaxError("AJAX can not contact the server at this moment.  Please try again.  (Error: "+errv.message+")");
	}
}

// 
// string functions
//

function createGetStringFromForm(formId) {
  var mystring = '';
	var form = document.getElementById(formId);
	var numElements = form.elements.length;
	for (var a = 0; a < numElements; a++) {
	  if (form.elements[a].name.length > 0) mystring += form.elements[a].name+"="+encodeURIComponent(form.elements[a].value);
	  if (a < numElements - 1) mystring += "&";
	}
	return mystring;
}
	
function returnXmlInfo(doc) {
  var root = doc.documentElement;

}

// xml functions
	      
function getDocInfo(doc) {
  var k = 0;
  var returnArray = new Array();
  var root = doc.documentElement;
	var nds = root.childNodes;
	for (var i = 0; i < nds.length; i++) {
	  var tagName = nds[i].nodeName;
		if (tagName != '#text') {
		  if (root.getElementsByTagName(tagName)[0].firstChild) {
  			var tagValue = root.getElementsByTagName(tagName)[0].firstChild.data;
  			returnArray[k] = tagName;
  			k++;
  			returnArray[k] = tagValue;
  			k++;
			} else {
			  returnArray[k] = tagName;
				k++;
				returnArray[k] = ' ';
				k++;
			}
	  }
	}	
  return returnArray;
}

function getXmlTagValue(xmlDoc, tagName) {
 var element = xmlDoc.getElementsByTagName(tagName);
 if (element != null) {
  if (element[0] != null && element[0].firstChild != null) {
   return element[0].firstChild.nodeValue;
  }
 }
}

function resetTable(mytable) {
for (a = 0; a < mytable.tbodies.length; a++) {
  for (b = 0; b < mytable.tbodies[a].rows.length; b++) {
	  for (c = 0; c < mytable.tbodies[a].rows[b].cells; c++) {
		  mytable.tbodies[a].rows[b].cells[c].innerHTML = '';
		}
	}
}
}