// JavaScript Document
<!-- javascript for mouseover menu tr -->
function rollIn(thisItem) { 
	thisItem.style.background="#f0f0f0";
} 

function rollOut(thisItem) { 
	thisItem.style.background=""; 
} 

<!-- admin logout -->
function jfunc_member_logout ()
{
    var message = "Are you sure you want to Logout?";
    var return_value = confirm(message);
    if ( return_value == true )
        {
        document.location='index.php?var_action_member_logout=true';
        }
}

<!-- javascript to check all check boxes -->
function jfunc_check_checkbox_all(checkobj, value)
{
	formobj = checkobj.form;
	for (var i = 0; i < formobj.elements.length; i++)
	{
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value)
		{
			elm.checked = checkobj.checked;
		}
	}
	jfunc_check_checkbox_checked(checkobj, value)
}

<!-- javascript to check if check boxes are checked -->
function jfunc_check_checkbox_checked(checkobj, value){
	formobj = checkobj.form;
	var box_checked = 0;
	for( var i = 0; i < formobj.elements.length; i++){
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}else if(elm.type == "radio" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}
	}

	if(box_checked > 0){
		formobj.boxchecked.value = 1;	
	}else{
		formobj.boxchecked.value = 0;	
	}
}

<!-- javascript to set next action -->
function jfunc_set_next_action(var_form, next_action){
	var thispagefrm = document.forms[var_form];
	thispagefrm.var_next_action.value = next_action;
	
	if(next_action == "delete"){
		var message = "Are you sure you want to delete the selected item(s)?\n\nTHIS ACTION IS NOT REVERSEABLE.\n\nAre you sure you want to continue?";
		var return_value = confirm(message);
		if ( return_value == true ){
			thispagefrm.submit();
		}else{
			return false;	
		}
	}else{
		thispagefrm.submit();	
	}
}

<!-- function to validate form fields -->
function jfunc_validate_fields(){
	error_message = '';
	var argv = jfunc_validate_fields.arguments;
	var argv_count = argv.length;
	var thispagefrm = document.forms[argv[0]];
	var thisbutton = document.forms[argv[0]][argv[1]];
	for(var i = 2; i < argv_count; i+=3){
		
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		
	}else{
		thisbutton.disabled = true; 
		thisbutton.value = "Processing..."; 
		thispagefrm.submit();	
	}
}


<!-- delete stuff -->
function jfunc_delete_stuff_link(var_url)
{
    var message = "Are you sure you want to permanently delete the selected items?\n\nTHIS ACTION IS NOT REVERSEABLE.\n\nAre you sure you want to continue?";
    var return_value = confirm(message);
    if ( return_value == true )
        {
        document.location=var_url;
        }
}

<!-- show 2 decimal points -->
function jfunc_format_decimals(var_text){
	var result=Math.round(var_text*100)/100;
	
	return parseFloat(result).toFixed(2);
}

<!-- javascript to add more fields -->
function jfunc_more_fields(var_field, var_write)
{
	var counter = 0;
	counter++;
	var newFields = document.getElementById(var_field).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++)
	{
		var theName = newField[i].name
		if (theName)
			newField[i].name = theName + counter;
	}
	var insertHere = document.getElementById(var_write);
	insertHere.parentNode.insertBefore(newFields,insertHere);
}

function addEvent(elm, evType, fn, useCapture)
{
if(elm.addEventListener)
  {
  elm.addEventListener(evType, fn, useCapture);
  return true;
  }
else if (elm.attachEvent)
  {
  var r = elm.attachEvent('on' + evType, fn);
  return r;
  }
else
  {
  elm['on' + evType] = fn;
  }
}

// removes the square border that IE
// insists on adding to checkboxes and radio
function removeCheckBoxBorders()
{
var el = document.getElementsByTagName("input");
for (i=0;i<el.length;i++)
  {
  var type = el[i].getAttribute("type");
  if((type=="checkbox")||(type=="radio"))
    {
   el[i].style.border = "none";
    }
  }
}

addEvent(window, 'load', removeCheckBoxBorders, false);


//AJAX
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function jfunc_showpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}