function jBoxShow() {
if (navigator.appName.indexOf("Microsoft")!=-1) {
  var w_width = document.body.offsetWidth;
  var w_height = document.body.offsetHeight;
} else {
  var w_width = window.innerWidth;
  var w_height = window.innerHeight;
}
document.getElementById('jbox').style.width=w_width;
document.getElementById('jbox').style.height=w_height;
document.getElementById('jbox').style.display='block';
}
function jBoxClose() {
document.getElementById('jbox').style.display='none';
}

//most people forget to pass in the callback/handler
function GetXmlHttpObject(handler) { 
	var objXmlHttp=null;
	if (navigator.userAgent.indexOf("MSIE")>=0) { 
		var strName="Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
			strName="Microsoft.XMLHTTP";
		} 
		try { 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler;
			return objXmlHttp;
		} catch(e) { 
			alert("Error. Scripting for ActiveX might be disabled");
			return;
		} 
	} else {
		objXmlHttp=new XMLHttpRequest();
		objXmlHttp.onload=handler;
		objXmlHttp.onerror=handler;
		return objXmlHttp;
	}
} 

//stores the id we're ajaxing
var lastDIV="";

function ajax_photo(nurl,ndiv) {
	document.getElementById('photo').innerHTML="<div><br /><img src='images/indicator.gif' border='0'></div>";
	lastDIV = ndiv; 
	var url="" + nurl + "";
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
}

//fill an id with a url, any object that supports innerHTML
function ajax(nurl,ndiv) {
	lastDIV = ndiv; 
	var url="" + nurl + "";
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
}

//ajax callback function
function stateChanged() {
	var divname=""+lastDIV;
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
        	document.getElementById(divname).innerHTML=xmlHttp.responseText;
	}
}

//stores the form data we're submitting
var formData="";

//send form via post with output directed to an id, usually div
function sendFormPost(nurl,ndiv) {
	lastDIV = ndiv;
	var url=""+nurl;
	var mode=true;
	var data=""+formData;
	var method="post";
	var header="Content-Type:application/x-www-form-urlencoded; charset=UTF-8";
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open(method,url,mode);
	xmlHttp.setRequestHeader(header.split(':')[0],header.split(':')[1]);
	xmlHttp.send(data);
}

//send form via get
function sendFormGet(nurl,ndiv) {
	lastDIV = ndiv;
	var url=""+nurl;
	var mode=true;
	var data=""+formData;
	var method="get";
	var header="Content-Type:application/x-www-form-urlencoded; charset=UTF-8";
	xmlHttp=GetXmlHttpObject(stateChanged);
	xmlHttp.open(method,url+'?'+formData,mode);
	xmlHttp.setRequestHeader(header.split(':')[0],header.split(':')[1]);
	xmlHttp.send(data);
}

//no validation function yet
function getFormValues(fobj) {
	var str = "";
	for(var i = 0;i < fobj.elements.length;i++) {		

		if (fobj.elements[i].type == "checkbox") {
			if (fobj.elements[i].checked) {
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
			} else {
				str += fobj.elements[i].name + "=&";
			}
		} else {
			str += fobj.elements[i].name +"=" + escape(fobj.elements[i].value) + "&";
		}
	}
	str = str.substr(0,(str.length - 1));
	formData=""+str;
	return str;
}

//2 forms at a time
function getFormValues2(fobj1,fobj2) {
	var str = "";
	for(var i = 0;i < fobj1.elements.length;i++) {		

		if (fobj1.elements[i].type == "checkbox") {
			if (fobj1.elements[i].checked) {
				str += fobj1.elements[i].name + "=" + escape(fobj1.elements[i].value) + "&";
			} else {
				str += fobj1.elements[i].name + "=&";
			}
		} else {
			str += fobj1.elements[i].name +"=" + escape(fobj1.elements[i].value) + "&";
		}
	}
	for(var i = 0;i < fobj2.elements.length;i++) {		

		if (fobj2.elements[i].type == "checkbox") {
			if (fobj2.elements[i].checked) {
				str += fobj2.elements[i].name + "=" + escape(fobj2.elements[i].value) + "&";
			} else {
				str += fobj2.elements[i].name + "=&";
			}
		} else {
			str += fobj2.elements[i].name +"=" + escape(fobj2.elements[i].value) + "&";
		}
	}

	str = str.substr(0,(str.length - 1));
	formData=""+str;
	return str;
}

//blocks old-school form submission via enter key
function noenter(event) {
	
	if (event.keyCode==13 || event.keyCode==3) {
		return false;
	} else {
		return true;
	}
}

//works with block, inline, and the the others, try shToggle(ntype,ndiv)
function shToggle(content) {
	if (document.getElementById(content).style.display == "none") {
		document.getElementById(content).style.display = "block";
	} else {
		document.getElementById(content).style.display = "none";
	}
}

//inverse all checkboxes in a form object
function check_all_inverse(fobj) {
	for(i=0;i<fobj.elements.length;i++) {
		if (fobj.elements[i].type=="checkbox") {
			if (fobj.elements[i].checked==true) {
				fobj.elements[i].checked=false;
			} else {
				fobj.elements[i].checked=true;
			}
		}
	}
}

//check all checkboxes in a form object
function check_all(fobj) {
        for(i=0;i<fobj.elements.length;i++) {
                if (fobj.elements[i].type=="checkbox") {
                        fobj.elements[i].checked=true;
                }
        }
}