
function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
function ajax_get(url, params, update_area) {
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		  {
		  alert ("Your browser does not support AJAX!");
		  return;
		  } 
		  url = url + "?" + params;
		xmlHttp.onreadystatechange=function()
			{
			if (xmlHttp.readyState==4) {
			if (update_area != "none") {
				document.getElementById(update_area).innerHTML=xmlHttp.responseText;
				}
				}
			}
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		return(false);
	}
function ajax_post(url, params, update_area) {
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		  {
		  alert ("Your browser does not support AJAX!");
		  return;
		  } 
		xmlHttp.onreadystatechange=function()
			{
			if (xmlHttp.readyState==4) {
			if (update_area != "none") {
				document.getElementById(update_area).innerHTML=xmlHttp.responseText;
				}
				}
			}
		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
		return(false);
	}

function test_function(val) {
document.write(val);
}
function getY( oElement ){
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}
function getX( oElement ){
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

var the_timeout;

function SetTheTime(divName) {
	the_timeout = setTimeout("HideDropDiv('"+divName+"');", 1000);
}
function ClearTheTime() {
	clearTimeout(the_timeout);
}

function ShowDropDiv(theField, theArray, divName) {
	var theDrop = document.getElementById(divName);
	var theList;
	
	theList = "<table cellpadding=0 cellspacing=0 border=0>";
	if (theField.value.length == 0 && theArray.length < 5) {
		for (i=0; i<theArray.length; i++) {
			theList += "<tr><td><a href='#' onclick='return(SelectFromDropDiv(\""+theArray[i]+"\",document.getElementById(\""+theField.id+"\"), \""+divName+"\"));' style='text-decoration: none;'>";
			theList += theArray[i]
			theList += "</a></td></tr>";
		}
	} else {
		for (i=0; i<theArray.length; i++) {
			if (theArray[i].toUpperCase() == theField.value.toUpperCase()) {
				HideDropDiv(divName);
			} else if (theArray[i].toUpperCase().indexOf(theField.value.toUpperCase())>-1) {
			theList += "<tr><td><a href='#' onclick='return(SelectFromDropDiv(\""+theArray[i]+"\",document.getElementById(\""+theField.id+"\"), \""+divName+"\"));' style='text-decoration: none;'>";
			theList += theArray[i]
			theList += "</a></td></tr>";
			}
		}
	}
	theList += "</table>";
	theDrop.innerHTML = theList;
	theDrop.style.display = 'block';
	theDrop.style.top = parseInt(getY(theField)+theField.offsetHeight)+ 'px';
	theDrop.style.left = parseInt(getX(theField))+ 'px';
}


/* This script is Copyright (c) Paul McFedries and 
Logophilia Limited (http://www.mcfedries.com/).
Permission is granted to use this script as long as 
this Copyright notice remains in place.*/

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

function noAnds(str)
{
return(str.replace(/&/gi,"-n-"));
}
function backAnds(str)
{
return(str.replace(/-n-/gi,"&"));
}
function backRets(str)
{
return(str.replace(/\n/gi,"<br />"));
}
function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return(newnumber);
}