function postForm(module,submodule,action,formname) {
 if (document.getElementById(formname)) {
  //Form found
  fetchPage(module,submodule,action,getFormValues(formname));
  return false;
 } else {
  //Unable to submit, allow form to POST
  return true;
 }
}

function getFormValues(formname) {
 var ajaxsend = '';
 var xy = '';
 var formobjects = document.getElementById(formname).elements;
 for (var i = 0; i < formobjects.length; i++) {
  if (formobjects[i].getAttribute('type') == 'checkbox') {
   if (formobjects[i].checked == true) {
    xy = 'js_on';
   } else {
    xy = 'js_off';
   }
   ajaxsend += formobjects[i].name + "=" + xy + "&";
  } else if (formobjects[i].getAttribute('type') == 'radio') {
   if (formobjects[i].checked == true) {
    xy = formobjects[i].value;
    ajaxsend += formobjects[i].name + "=" + xy + "&";
   }
  } else {
   xy = formobjects[i].value;
   xy = encodeURIComponent(xy);
   ajaxsend += formobjects[i].name + "=" + xy + "&";
  }
  
 }
 return ajaxsend;
}

function toggleVisibility(div_id) {
 if (document.getElementById(div_id).style.display == 'none') {
  document.getElementById(div_id).style.display = 'inline';
 } else {
  document.getElementById(div_id).style.display = 'none';
 }
}

function fetchPage(module,submodule,action,params) {
 var request;
 document.getElementById('content').innerHTML = "Loading...";
 url = './index.php?module=' + module + '&submodule=' + submodule;

 request = false;
 // branch for native XMLHttpRequest object
 if(window.XMLHttpRequest && !(window.ActiveXObject)) {
  try {
   request = new XMLHttpRequest();
  } catch(e) {
   request = false;
  }
  // branch for IE/Windows ActiveX version
 } else if(window.ActiveXObject) {
  try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e) {
   try {
    request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(e) {
    request = false;
   }
  }
 }
 if(request) {
  
  request.onreadystatechange = function () {
   if (request.readyState == 4) {
    //Next if "OK"
    if (request.status == 200) {
     ///Test: alert(req.responseText);
     if (request.responseText == "0x00") {
      document.getElementById('content').innerHTML = "Unable to process request";
     } else {
      document.getElementById('content').innerHTML = request.responseText;
     }
    } else {
     //Failed
    }
   }
  }
  
  request.open("POST", url, true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  request.send("fetch=yes&action=" + action + "&" + params);
 }

}

var req;

function loadXMLDoc(url) {
 req = false;
 // branch for native XMLHttpRequest object
 if (window.XMLHttpRequest && !(window.ActiveXObject)) {
  try {
   req = new XMLHttpRequest();
  } catch(e) {
   req = false;
  }
 // branch for IE/Windows ActiveX version
 } else if(window.ActiveXObject) {
  try {
   req = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e) {
   try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(e) {
    req = false;
   }
  }
 }
 if(req) {
  req.onreadystatechange = processReqChange;
  req.open("POST", url, true);
  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  req.send("auth_username=" + document.login.login_username.value + "&auth_password=" + document.login.login_password.value);
 }
}

function resetForm() {
 document.login.login_username.style.backgroundColor = '#FFFFFF';
 document.login.login_password.style.backgroundColor = '#FFFFFF';
 document.login.login_username.style.color = '#000000';
 document.login.login_password.style.color = '#000000';
 document.getElementById('login_message').innerHTML = '';
}

function highlightField(fieldName) {
 document.getElementsByName[fieldName][0].style.backgroundColor = '#FFFF00';
}

function processReqChange() {
 // only if req shows "loaded"
 if (req.readyState == 4) {
 // only if "OK"
  if (req.status == 200) {
   ///alert(req.responseText);
   if (req.responseText == "0a") {
    document.login.login_username.style.backgroundColor = '#FFFF00';
    document.login.login_password.style.backgroundColor = '#FFFF00';
    document.login.login_username.style.color = '#000000';
    document.login.login_password.style.color = '#000000';
    document.login.login_username.value = '';
    document.login.login_password.value = '';
    document.getElementById('login_message').innerHTML = 'Try Again';
    document.login.login_username.focus();
    setTimeout(resetForm, 5000);
   } else {
    document.login.session_id.value = req.responseText;
    document.login.submit();
   }
  } else {
   //alert("There was a problem retrieving the XML data:\n" +
   //req.statusText);
  }
 }
}

function checkForm(reqFields,msgBox) {
 var i;
 var x;
 var m;
 for (i in reqFields) {
  if (document.getElementsByName(reqFields[i])[0].value == "") {
   x = 1;
   if (m == null) {
    m = reqFields[i];
   }
   document.getElementsByName(reqFields[i])[0].style.backgroundColor = "#FFFF00";
  } else {
   document.getElementsByName(reqFields[i])[0].style.backgroundColor = "#FFFFFF";
  }
 }
 if (x == 1) {
  document.getElementsByName(m)[0].focus();
  if (msgBox == null) {
   alert("Please fill in the highlighted fields");
  } else {
   document.getElementById(msgBox).innerHTML = 'Please fill in the highlighted fields';
  }
  return false;
 }
}

function checknewpass () {
 if (document.newpass.newpass1.value == document.newpass.newpass2.value) {
  return true;
 } else {
  document.getElementById('changepassmsg').innerHTML = "Passwords do not match, try again.";
  document.newpass.newpass1.value = '';
  document.newpass.newpass2.value = '';
  document.newpass.newpass1.focus();
  document.newpass.newpass1.style.backgroundColor = '#FFFF00';
  document.newpass.newpass2.style.backgroundColor = '#FFFF00';
  document.newpass.newpass1.style.color = '#000000';
  document.newpass.newpass2.style.color = '#000000';
  setTimeout(resetNewPass, 5000);
  return false;
 }
}

function loginz() {
 document.getElementById('login_message').innerHTML = '<img style="display: block; background-color: #cccccc; padding: 3px; border: 2px solid #000000;" src=\'./themes/main/images/loading.gif\' alt=\'Loading\' />';
 loadXMLDoc("./ajax.php?action=login");
}

var oldid;
function makeform(id) {
 var j = document.getElementById(id).innerHTML;
 if (oldid) { document.getElementById(oldid).innerHTML = document.form.name.value; }
 document.getElementById(id).innerHTML = '<form name="form" onsubmit="javascript:document.getElementById(oldid).innerHTML = document.form.name.value; oldid = false; return false;"><input name="name" type="text" size="10"  onblur="javascript:document.getElementById(oldid).innerHTML = document.form.name.value; oldid = false; return true;" /></form>';
 document.form.name.value = j;
 document.form.name.focus();
 document.form.name.select();
 oldid = id;
}
var request;

function sendAJAX(module,submodule,action,params) {
 url = './ajax.php?module=' + module + '&submodule=' + submodule;

 request = false;
 // branch for native XMLHttpRequest object
 if(window.XMLHttpRequest && !(window.ActiveXObject)) {
  try {
   request = new XMLHttpRequest();
  } catch(e) {
   request = false;
  }
  // branch for IE/Windows ActiveX version
 } else if(window.ActiveXObject) {
  try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch(e) {
   try {
    request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch(e) {
    request = false;
   }
  }
 }
 if(request) {
  request.onreadystatechange = returnResult;
  request.open("POST", url, true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  request.send("action=" + action + "&" + params);
 }
}

function returnResult() {
 if (request.readyState == 4) {
  //Next if "OK"
  if (request.status == 200) {
   ///Test: alert(req.responseText);
   if (request.responseText == "0x00") {
    document.getElementById('status').innerHTML = "Unable to process request";
   } else {
    document.getElementById('status').innerHTML = request.responseText;
   }
  } else {
   //Failed
  }
 }
}

var oldid;
function makeform(id) {
 var j = document.getElementById(id).innerHTML;
 if (oldid) { document.getElementById(oldid).innerHTML = document.form.name.value; }
 document.getElementById(id).innerHTML = '<form name="form" onsubmit="javascript:document.getElementById(oldid).innerHTML = document.form.name.value; oldid = false; return false;"><input name="name" type="text" size="10"  onblur="javascript:document.getElementById(oldid).innerHTML = document.form.name.value; oldid = false; return true;" /></form>';
 document.form.name.value = j;
 document.form.name.focus();
 document.form.name.select();
 oldid = id;
}

function liveForm(module,submodule,formname,container,mode) {
 var values = getFormValues(formname);
 var formobjects = document.getElementById(formname).elements;
 for (var i = 0; i < formobjects.length; i++) {
  if (formobjects[i].getAttribute('type') == 'checkbox') {
   formobjects[i].value = '';
  } else if (formobjects[i].getAttribute('type') == 'radio') {
   formobjects[i].value = '';
  } else if (formobjects[i].getAttribute('type') == 'text') {
   formobjects[i].value = '';
  } else if (formobjects[i].getAttribute('type') == 'password') {
   formobjects[i].value = '';
  } else {
  }
 }
 goAjaxContent(module,submodule,values,container,mode);
}

function goAjaxContent(module,submodule,post_data,requestContainer,mode) {
	if (mode == 'append') {
		var mode = 'append';
	} else {
		var mode = 'rewrite';
	}
	var url = '/ajax.php?module=' + module + '\&submodule=' + submodule;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			requestContent = new XMLHttpRequest();
		} catch(e) {
			requestContent = false;
		}
		// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			requestContent = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				requestContent = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				requestContent = false;
			}
		}
	}
	
	if(requestContent) {
		requestContent.onreadystatechange = function callbackContent () {
			if (requestContent.readyState == 4) {
				//Next if "OK"
				if (requestContent.status == 200) {
					///Test: alert(req.responseText);
					if (requestContent.responseText == "0x00") {
						if (mode == 'append') {
							document.getElementById(requestContainer).innerHTML = document.getElementById(requestContainer).innerHTML + "<br />Unable to process request";
						} else {
							document.getElementById(requestContainer).innerHTML = "Unable to process request";
						}
					} else {
						if (mode == 'append') {
							document.getElementById(requestContainer).innerHTML = document.getElementById(requestContainer).innerHTML + "<br />" + requestContent.responseText;
						} else {
							document.getElementById(requestContainer).innerHTML = requestContent.responseText;
						}
					}
				} else {
					//Failed
				}
			}
			////
		}
	}
	requestContent.open("POST", url, true);
	requestContent.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	requestContent.send(post_data);
}



function ajaxJSexec(module,submodule,post_data) {
	if (mode == 'append') {
		var mode = 'append';
	} else {
		var mode = 'rewrite';
	}
	var url = '/ajax.php?module=' + module + '\&submodule=' + submodule;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			requestContent = new XMLHttpRequest();
		} catch(e) {
			requestContent = false;
		}
		// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			requestContent = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				requestContent = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				requestContent = false;
			}
		}
	}
	
	if(requestContent) {
		requestContent.onreadystatechange = function callbackContent () {
			if (requestContent.readyState == 4) {
				//Next if "OK"
				if (requestContent.status == 200) {
					///Test: alert(req.responseText);
					eval(req.responseText);
				} else {
					//Failed
				}
			}
			////
		}
	}
	requestContent.open("POST", url, true);
	requestContent.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	requestContent.send(post_data);
}
