﻿var mygetrequest;
function $(name)
{
	return document.getElementById(name);
}
function ajaxRequest()
{
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false;
}
function ajaxLoad(uri, accept, headers)
{
	enable(false);
	mygetrequest = ajaxRequest();
	mygetrequest.onreadystatechange=accept;
	mygetrequest.open("GET", uri, true);
	if (headers !== null) {
		for (var i in headers) {
			mygetrequest.setRequestHeader(headers[i].header, headers[i].value);
		}
	}
	mygetrequest.send(null)
}
function ajaxSubmit(uri, param, accept)
{
	enable(false);
	mygetrequest = ajaxRequest();
	mygetrequest.onreadystatechange=accept;
	mygetrequest.open("post", uri, true);
	mygetrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	mygetrequest.setRequestHeader("Content-length", param.length);
	mygetrequest.setRequestHeader("Connection", "close");
	mygetrequest.send(param);
}
function ajaxStatusCheck(name, headers)
{
	if (mygetrequest.readyState==4)
	{
		if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1) {
			if (headers !== null) {
				for (var i in headers) {
					headers[i] = mygetrequest.getResponseHeader(i);
				}
			}
		  	return 1;
		} else  if (mygetrequest.status==304 || window.location.href.indexOf("http")==-1) {
			return 304;
		} else {
			alert('An error (status='+mygetrequest.status+': '+mygetrequest.statusText+') has occured making the '+name+' request');
			enable(true);
			return -1;
		}
	}
	return 0;
}
function ajaxDonePost(headers)
{
	var status = ajaxStatusCheck('submit', headers);
	if (status == 304) return 304;
	if (status != 1) return null;
	var jsondata;
	try
	{
		jsondata = eval("("+mygetrequest.responseText+")");
	}
	catch (er)
	{
		alert('error parsing '+name+' json response"'
			+mygetrequest.responseText);
		enable(true);
		status = 0;
	}
	if (status != 1) {
		enable(true);
		return null;
	}
	enable(true);
	return jsondata;
}
function enable(yn)
{
	var inputs = document.getElementsByTagName("input");
	var i;
	for (i = 0; i < inputs.length; i++) {
		inputs.item(i).disabled = !yn;
	}
	inputs = document.getElementsByTagName("select");
	for (i = 0; i < inputs.length; i++) {
		inputs.item(i).disabled = !yn;
	}
	inputs = document.getElementsByTagName("button");
	for (i = 0; i < inputs.length; i++) {
		inputs.item(i).disabled = !yn;
	}
}
function setText(o, text)
{
	while(o.childNodes.length >= 1) {
    	o.removeChild(o.firstChild);
  }
  o.appendChild(o.ownerDocument.createTextNode(text));
}
function addslashes(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}


