
//Create a boolean variable to check for a valid IE instance.
var xmlhttp = false;

//Check if we are using IE.
try 
{
	//If the javascript version is greater than 5.
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e) 
	{
	//If not, then use the older active x object.
	try {
		//If we are using IE.
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} 
	catch (E) 
	{
		//Else we must be using a non-IE browser.
		xmlhttp = false;
	}
}

//If we are using a non-IE browser, create a JavaScript instance of the object.
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
{
	xmlhttp = new XMLHttpRequest();
}


// **********FUNCTIONS FOR ALL PAGES**********

function showLoadMsg (msg,obj)
	{
		hidden = document.getElementById(obj);
		hidden.innerHTML = '<img src="images/indicator.gif" alt="" /> ' + msg;
	}
	

// **********FUNCTIONS FOR INDEX/NAVIGATION**********

function makerequest(serverPage, objID)
{	
	showLoadMsg ('Loading...', objID);
	
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj.innerHTML = xmlhttp.responseText;
		}
	}

	xmlhttp.send(null);
}

// **********FUNCTIONS FOR SYKES PICTURE GALLERY****************

function getPrev(curID)
{
getPrevDate(curID)
}

function getPrevDate(curID)
{
	var serverPage = "getPrevDate.php?curID=" + curID;
	var objID = "DIVDATE";
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj.innerHTML = xmlhttp.responseText;
			getPrevTitle(curID);
		}
	}
	xmlhttp.send(null);
}

function getPrevTitle(curID)
{
	var serverPage2 = "getPrevTitle.php?curID=" + curID;
	var objID2 = "DIVTITLE";
	var obj2 = document.getElementById(objID2);
	xmlhttp.open("GET", serverPage2);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj2.innerHTML = xmlhttp.responseText;
			getPrevImage(curID);
		}
	}
	xmlhttp.send(null);
}

function getPrevImage(curID)
{
	var serverPage3 = "getPrevImage.php?curID=" + curID;
	var objID3 = "DIVIMAGE";
	var obj3 = document.getElementById(objID3);
	
	xmlhttp.open("GET", serverPage3);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj3.innerHTML = xmlhttp.responseText;
			getPrevText(curID)
		}
	}
	xmlhttp.send(null);
}
	
function getPrevText(curID)
{
	var serverPage4 = "getPrevText.php?curID=" + curID;
	var objID4 = "DIVTEXT";
	var obj4 = document.getElementById(objID4);
	xmlhttp.open("GET", serverPage4);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj4.innerHTML = xmlhttp.responseText;
			getPrevPLink(curID)
		}
	}
	xmlhttp.send(null);
}

function getPrevPLink(curID)
{
	var serverPage5 = "getPrevPLink.php?curID=" + curID;
	var objID5 = "DIVPREV";
	var obj5 = document.getElementById(objID5);
	xmlhttp.open("GET", serverPage5);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj5.innerHTML = xmlhttp.responseText;
			getPrevNLink(curID)
		}
	}
	xmlhttp.send(null);
}

function getPrevNLink(curID)
{
	var serverPage6 = "getPrevNLink.php?curID=" + curID;
	var objID6 = "DIVNEXT";
	var obj6 = document.getElementById(objID6);
	xmlhttp.open("GET", serverPage6);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj6.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}


function getNext(curID)
{
getNextDate(curID)
}

function getNextDate(curID)
{
	var serverPage = "getNextDate.php?curID=" + curID;
	var objID = "DIVDATE";
	var obj = document.getElementById(objID);
	
	xmlhttp.open("GET", serverPage);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj.innerHTML = xmlhttp.responseText;
			getNextTitle(curID);
		}
	}
	xmlhttp.send(null);
}

function getNextTitle(curID)
{
	var serverPage2 = "getNextTitle.php?curID=" + curID;
	var objID2 = "DIVTITLE";
	var obj2 = document.getElementById(objID2);
	
	xmlhttp.open("GET", serverPage2);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj2.innerHTML = xmlhttp.responseText;
			getNextImage(curID);
		}
	}
	xmlhttp.send(null);
}

function getNextImage(curID)
{
	var serverPage3 = "getNextImage.php?curID=" + curID;
	var objID3 = "DIVIMAGE";
	var obj3 = document.getElementById(objID3);
	
	xmlhttp.open("GET", serverPage3);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj3.innerHTML = xmlhttp.responseText;
			getNextText(curID)
		}
	}
	xmlhttp.send(null);
}

function getNextText(curID)
{
	var serverPage4 = "getNextText.php?curID=" + curID;
	var objID4 = "DIVTEXT";
	var obj4 = document.getElementById(objID4);
	
	xmlhttp.open("GET", serverPage4);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj4.innerHTML = xmlhttp.responseText;
			getNextNLink(curID)
		}
	}
	xmlhttp.send(null);
}

function getNextNLink(curID)
{
	var serverPage5 = "getNextNLink.php?curID=" + curID;
	var objID5 = "DIVNEXT";
	var obj5 = document.getElementById(objID5);

	xmlhttp.open("GET", serverPage5);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj5.innerHTML = xmlhttp.responseText;
			getNextPLink(curID)
		}
	}
	xmlhttp.send(null);
}

function getNextPLink(curID)
{
	var serverPage7 = "getNextPLink.php?curID=" + curID;
	var objID7 = "DIVPREV";
	var obj7 = document.getElementById(objID7);
	
	xmlhttp.open("GET", serverPage7);

	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			obj7.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}

// **********FUNCTIONS FOR EXPENSE/BANK ACCOUNT SHEETS**********

	var showGroup = true;
	function showHideGroup(Exp_ID) 
	{
		//The location (div) loading
		var objID = "expand";
		
		showLoadMsg ('Loading...','expand');
		document.getElementById(objID).style.visibility = "visible";

		if (showGroup == true)
		{	
			//SHOW
			document.getElementById("opencloseimg").src = "images/mins.gif";

			//Page loading
			var serverPage = "Expenses/totals.php?ID=" + Exp_ID;

			showGroup = false;

			var obj = document.getElementById(objID);
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() 
			{
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
				{
					obj.innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(null);
		} 
		else 
		{
			//HIDE
			document.getElementById("opencloseimg").src = "images/plus.gif";
			showGroup = true;
			closeForm();

			document.getElementById(objID).innerHTML = "";
		}
	
	}
	
	function additionalExpenseTotals(Year,Exp_ID) 
	{
		
		//The location (div) loading
		var objID = "expand";
		
		showLoadMsg ('Loading...','expand');
		document.getElementById(objID).style.visibility = "visible";

		//Page loading
		var serverPage = "Expenses/additionalTotals.php?YearP=" + Year + "&ExpID=" + Exp_ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}
	
	function hideExpenseDetail()
	{
		menuObject = document.getElementById("expenseDetail");

		menuObject.style.visibility = "hidden";
		menuObject.style.height = "0px";
		menuObject.style.width = "0px";	
	}

	function hideAccountDetail()
	{
		menuObject = document.getElementById("accountDetail");

		menuObject.style.visibility = "hidden";
		menuObject.style.height = "0px";
		menuObject.style.width = "0px";
	
	}
	
	var showGroup = true;
	function showHideAccounts(Act_ID) 
	{
		//The location (div) loading
		var objID = "expand";

		showLoadMsg ('Loading...','expand');
		document.getElementById(objID).style.visibility = "visible";

		if (showGroup == true)
		{	
			//SHOW
			document.getElementById("opencloseimg").src = "images/mins.gif";

			//Page loading
			var serverPage = "Accounts/totalsAccounts.php?ID=" + Act_ID;

			showGroup = false;

			var obj = document.getElementById(objID);
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() 
			{
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
				{
					obj.innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(null);
		} 
		else 
		{
			//HIDE
			document.getElementById("opencloseimg").src = "images/plus.gif";
			showGroup = true;
			closeForm();

			document.getElementById(objID).innerHTML = "";
		}

	}

	function additionalAccountTotals(Year,Act_ID) 
	{		
		//The location (div) loading
		var objID = "expand";
		
		showLoadMsg ('Loading...','expand');
		document.getElementById(objID).style.visibility = "visible";

		//Page loading
		var serverPage = "Accounts/additionalAccountTotals.php?YearP=" + Year + "&ActID=" + Act_ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}
	
	function createForm (e,ID)
	{
		menuObject = document.getElementById("creditDebitForm");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "300px";
		menuObject.style.width = "210px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "creditDebitForm";

		//Script loading
		var serverPage = "Expenses/form.php?ExpID=" + ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}

	function createAccountForm (e,ID)
	{
		menuObject = document.getElementById("creditDebitForm");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "300px";
		menuObject.style.width = "210px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "creditDebitForm";

		//Script loading
		var serverPage = "Accounts/formAccount.php?ActID=" + ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}
	
	function editForm (e,ID)
	{
		menuObject = document.getElementById("creditDebitForm");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "300px";
		menuObject.style.width = "210px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "creditDebitForm";

		//Script loading
		var serverPage = "Expenses/editForm.php?Trans_ID=" + ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}

	function editActForm (e,ID)
	{
		menuObject = document.getElementById("creditDebitForm");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "300px";
		menuObject.style.width = "210px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "creditDebitForm";

		//Script loading
		var serverPage = "Accounts/editActForm.php?ActTrans_ID=" + ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);	
	}
	
	function closeForm ()
	{
		formObject = document.getElementById("creditDebitForm");

		formObject.style.visibility = "hidden";
		formObject.style.height = "0px";
		formObject.style.width = "0px";
	}
	
	function validateform (value1,value2,value3,value4,ID)
	{			
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";
		
		serverPage = "Expenses/validator.php?amount=" + value1 + "&type=" + value2 + "&note=" + value3 + "&date=" + value4 + "&ExpID=" + ID;
		objID = "messagebox";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function validateAccountForm (value1,value2,value3,value4,ID)
	{			
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";

		serverPage = "Accounts/validatorAccount.php?amount=" + value1 + "&type=" + value2 + "&note=" + value3 + "&date=" + value4 + "&ActID=" + ID;
		objID = "messagebox";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function newExpense (value1,value2,value3)
	{			
		objID = "messagebox";
		
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";
		
		serverPage = "Expenses/newExpenseSubmit.php?Exp_Name=" + value1 + "&Exp_Allocation=" + value2 + "&Exp_Type=" + value3;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function newAccount (value1, value2)
	{			
		objID = "messagebox";
		
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";
		
		serverPage = "Accounts/newAccountSubmit.php?Act_Name=" + value1 + "&Act_Type=" + value2;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function editExpense (value1,value2,value3)
	{			
		objID = "messagebox";
		
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";
		
		serverPage = "Expenses/editExpenseSubmit.php?Exp_ID=" + value1 + "&Exp_Allocation=" + value2 + "&Exp_Type=" + value3;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function deleteExpense (value1)
	{			
		objID = "messagebox";
		
		showLoadMsg ('Loading...','messagebox');
		document.getElementById(objID).style.visibility = "visible";
		
		serverPage = "Expenses/deleteExpenseSubmit.php?Exp_ID=" + value1;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function editTransaction (value1,value2,value3,value4,Exp_ID,Trans_ID,origTransAmount,origType)
	{					
		serverPage = "Expenses/editTransaction.php?amount=" + value1 + "&type=" + value2 + "&note=" + value3 + "&date=" + value4 + "&ExpID=" + Exp_ID + "&Trans_ID=" + Trans_ID  + "&origTransAmount=" + origTransAmount + "&origType=" + origType;
		objID = "messagebox";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function editActTransaction (value1,value2,value3,value4,Act_ID,ActTrans_ID,origTransAmount,origType)
	{			
		serverPage = "Accounts/editActTransaction.php?amount=" + value1 + "&type=" + value2 + "&note=" + value3 + "&date=" + value4 + "&ActID=" + Act_ID + "&ActTrans_ID=" + ActTrans_ID + "&origTransAmount=" + origTransAmount + "&origType=" + origType;
		objID = "messagebox";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function showMenu (e,Trans_ID,Exp_ID)
	{
		menuObject = document.getElementById("menu");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "30px";
		menuObject.style.width = "100px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "menu";

		//Script loading
		var serverPage = "Expenses/menu.php?Trans_ID=" + Trans_ID + "&Exp_ID=" + Exp_ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function showActMenu(e,ActTrans_ID,Act_ID)
	{
		menuObject = document.getElementById("menu");

		menuObject.style.visibility = "visible";
		menuObject.style.height = "30px";
		menuObject.style.width = "100px";

		var posx = 0;
		var posy = 0;

		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;

		menuObject.style.left = posx + "px";
		menuObject.style.top = posy + "px";

		//The location (div) loading
		var objID = "menu";

		//Script loading
		var serverPage = "Accounts/menuAct.php?ActTrans_ID=" + ActTrans_ID + "&Act_ID=" + Act_ID;

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function closeMenu(ID)
	{
		menuObject = document.getElementById("menu");

		menuObject.style.visibility = "hidden";
		menuObject.style.height = "0px";
		menuObject.style.width = "0px";
		
		var objID = "menu";
		var serverPage = "Expenses/menu.php";
		
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
				expense_refresh(ID);
			}
		}
		xmlhttp.send(null);
		
	}

	function closeActMenu(ID)
	{
		menuObject = document.getElementById("menu");

		menuObject.style.visibility = "hidden";
		menuObject.style.height = "0px";
		menuObject.style.width = "0px";
		
		var objID = "menu";
		var serverPage = "Accounts/menuAct.php";
		
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
				account_refresh(ID);
			}
		}
		xmlhttp.send(null);
		
	}
	
	function hideMenu()
	{
		menuObject = document.getElementById("menu");

		menuObject.style.visibility = "hidden";
		menuObject.style.height = "0px";
		menuObject.style.width = "0px";

	}
	
	function comboselect_onchange(Select) 
	{   
		serverPage = "Expenses/expDetail.php?ID=" + Select;
		objID="expenseDetail";
		
		showLoadMsg ('Loading...','expenseDetail');
		document.getElementById(objID).style.visibility = "visible";
		
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function act_onchange(Select) 
	{   
		serverPage = "Accounts/actDetail.php?ID=" + Select;
		objID="accountDetail";

		showLoadMsg ('Loading...','accountDetail');
		document.getElementById(objID).style.visibility = "visible";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function expense_refresh(ID) 
	{  	
		serverPage = "Expenses/expDetail.php?ID=" + ID;
		objID="expenseDetail";

		showLoadMsg ('Loading...','expenseDetail');
		document.getElementById(objID).style.visibility = "visible";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}

	function account_refresh(ID) 
	{  	
		serverPage = "Accounts/actDetail.php?ID=" + ID;
		objID="accountDetail";

		showLoadMsg ('Loading...','accountDetail');
		document.getElementById(objID).style.visibility = "visible";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
	}
	
	function deleteTransaction(Trans_ID,Exp_ID)
	{
		serverPage = "Expenses/deleteTrans.php?Trans_ID=" + Trans_ID  + "&Exp_ID=" + Exp_ID;
		objID="menu";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
				closeMenu(Exp_ID);
			}
		}
		xmlhttp.send(null);
	}
	
	function deleteActTransaction(ActTrans_ID,Act_ID)
	{
		serverPage = "Accounts/deleteActTrans.php?ActTrans_ID=" + ActTrans_ID + "&Act_ID=" + Act_ID;
		objID="menu";

		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
				closeActMenu(Act_ID);
			}
		}
		xmlhttp.send(null);
	}


//**********FUNCTIONS FOR CHECK ALLOCATIONS**********

	function calcGross(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,SavExp,CheckExp,Submit,Date)
	{
		if (Submit > 0)
		{
			showLoadMsg ('Please Wait, Submitting Check...','messages');
			document.getElementById('messages').style.visibility = "visible";

			var num = (NWS_Gross * 1) + (CWS_Gross * 1) + (MISC_Gross * 1);
			var Gross = num.toFixed(2);

			amount = document.getElementById('totalGross');
			amount.innerHTML = '$' + Gross;

			calcNet(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Gross,SavExp,CheckExp,Submit,Date);

		}
		else
		{
			showLoadMsg ('Loading...','messages');
			document.getElementById('messages').style.visibility = "visible";

			var num = (NWS_Gross * 1) + (CWS_Gross * 1) + (MISC_Gross * 1);
			var Gross = num.toFixed(2);

			amount = document.getElementById('totalGross');
			amount.innerHTML = '$' + Gross;

			calcNet(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Gross,SavExp,CheckExp,Submit,Date);
		}
		

	}

	function calcNet(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Gross,SavExp,CheckExp,Submit,Date)
	{
		var num = (NWS_Net * 1) + (CWS_Net * 1) + (MISC_Net * 1);
		var Net = num.toFixed(2);
		
		amount = document.getElementById('totalNet');
		amount.innerHTML = '$' + Net;
		
		calcTithing(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Net,Gross,SavExp,CheckExp,Submit,Date);
	}

	function calcTithing(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Net,Gross,SavExp,CheckExp,Submit,Date)
	{
		var num = (Gross * 1) / 10;
		var Tithing = num.toFixed(2);
	
		amount = document.getElementById('tithing');
		amount.innerHTML = Tithing;
		
		calcFinalTotals(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Net,Gross,Tithing,SavExp,CheckExp,Submit,Date);
	}
	
	function calcFinalTotals(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,Net,Gross,Tithing,SavExp,CheckExp,Submit,Date)
	{	
			var CheckTithing = (CheckExp * 1) + (Tithing * 1);
			var TotalCheck = CheckTithing.toFixed(2);
				
			CheckAmount = document.getElementById('totalChecking');
			CheckAmount.innerHTML = '$' + TotalCheck;
			
			var TotalExp = (CheckTithing * 1) + (SavExp * 1);
			var TotalMkt = (Net * 1) - (TotalExp * 1);
			
			if (TotalMkt < 0)
			{
				TotalMkt = 0;
				var TotalMktFormatted = TotalMkt.toFixed(2);
							
				MarketAmount = document.getElementById('totalMarket');
				MarketAmount.innerHTML = '<span style="color: #FF0000;">$' + TotalMktFormatted + '</span>';
			}
			else
			{
				var TotalMktFormatted = TotalMkt.toFixed(2);
			
				MarketAmount = document.getElementById('totalMarket');
				MarketAmount.innerHTML = '$' + TotalMktFormatted;
			}
			
			if (Submit > 0)
			{
				submitCheck(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,TotalCheck,TotalMktFormatted,SavExp,Tithing,Date);
			}
			else
			{
				hideCalcLoad();
			}
	}
	
	function submitCheck(NWS_Gross,NWS_Net,CWS_Gross,CWS_Net,MISC_Gross,MISC_Net,TotalCheck,TotalMktFormatted,SavExp,Tithing,Date)
	{
		serverPage = "submitCheck.php?TotalCheck=" + TotalCheck + "&TotalMktFormatted=" + TotalMktFormatted + "&SavExp=" + SavExp + "&Tithing=" + Tithing + "&Date=" + Date + "&NWS_Gross=" + NWS_Gross + "&NWS_Net=" + NWS_Net + "&CWS_Gross=" + CWS_Gross + "&CWS_Net=" + CWS_Net + "&MISC_Gross=" + MISC_Gross + "&MISC_Net=" + MISC_Net;
		objID = "messages";

		
		var obj = document.getElementById(objID);
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() 
		{
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{
				obj.innerHTML = xmlhttp.responseText;
			}
		}
		xmlhttp.send(null);
		
	}
	
	function hideCalcLoad()
	{
		document.getElementById('messages').style.visibility = "hidden";
	}








// Title: Tigra Calendar
// URL: http://www.softcomplex.com/products/tigra_calendar/
// Version: 3.3 (American date format)
// Date: 09/01/2005 (mm/dd/yyyy)
// Note: Permission given to use this script in ANY kind of applications if
//    header lines are left unchanged.
// Note: Script consists of two files: calendar?.js and calendar.html

// if two digit year input dates after this year considered 20 century.
var NUM_CENTYEAR = 30;
// is time input control required by default
var BUL_TIMECOMPONENT = false;
// are year scrolling buttons required by default
var BUL_YEARSCROLL = true;

var calendars = [];
var RE_NUM = /^\-?\d+$/;

function calendar2(obj_target) {

	// assigning methods
	this.gen_date = cal_gen_date2;
	this.gen_time = cal_gen_time2;
	this.gen_tsmp = cal_gen_tsmp2;
	this.prs_date = cal_prs_date2;
	this.prs_time = cal_prs_time2;
	this.prs_tsmp = cal_prs_tsmp2;
	this.popup    = cal_popup2;

	// validate input parameters
	if (!obj_target)
		return cal_error("Error calling the calendar: no target control specified");
	if (obj_target.value == null)
		return cal_error("Error calling the calendar: parameter specified is not valid target control");
	this.target = obj_target;
	this.time_comp = BUL_TIMECOMPONENT;
	this.year_scroll = BUL_YEARSCROLL;
	
	// register in global collections
	this.id = calendars.length;
	calendars[this.id] = this;
}

function cal_popup2 (str_datetime) {
	if (str_datetime) {
		this.dt_current = this.prs_tsmp(str_datetime);
	}
	else {
		this.dt_current = this.prs_tsmp(this.target.value);
		this.dt_selected = this.dt_current;
	}
	if (!this.dt_current) return;

	var obj_calwindow = window.open(
		'calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,
		'Calendar', 'width=200,height='+(this.time_comp ? 215 : 190)+
		',status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'
	);
	obj_calwindow.opener = window;
	obj_calwindow.focus();
}

// timestamp generating function
function cal_gen_tsmp2 (dt_datetime) {
	return(this.gen_date(dt_datetime) + ' ' + this.gen_time(dt_datetime));
}

// date generating function
function cal_gen_date2 (dt_datetime) {
	return (
		(dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "/"
		+ (dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "/"
		+ dt_datetime.getFullYear()
	);
}
// time generating function
function cal_gen_time2 (dt_datetime) {
	return (
		(dt_datetime.getHours() < 10 ? '0' : '') + dt_datetime.getHours() + ":"
		+ (dt_datetime.getMinutes() < 10 ? '0' : '') + (dt_datetime.getMinutes()) + ":"
		+ (dt_datetime.getSeconds() < 10 ? '0' : '') + (dt_datetime.getSeconds())
	);
}

// timestamp parsing function
function cal_prs_tsmp2 (str_datetime) {
	// if no parameter specified return current timestamp
	if (!str_datetime)
		return (new Date());

	// if positive integer treat as milliseconds from epoch
	if (RE_NUM.exec(str_datetime))
		return new Date(str_datetime);
		
	// else treat as date in string format
	var arr_datetime = str_datetime.split(' ');
	return this.prs_time(arr_datetime[1], this.prs_date(arr_datetime[0]));
}

// date parsing function
function cal_prs_date2 (str_date) {

	var arr_date = str_date.split('/');

	if (arr_date.length != 3) return alert ("Invalid date format: '" + str_date + "'.\nFormat accepted is dd-mm-yyyy.");
	if (!arr_date[1]) return alert ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
	if (!RE_NUM.exec(arr_date[1])) return alert ("Invalid day of month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[0]) return alert ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
	if (!RE_NUM.exec(arr_date[0])) return alert ("Invalid month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
	if (!arr_date[2]) return alert ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
	if (!RE_NUM.exec(arr_date[2])) return alert ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");

	var dt_date = new Date();
	dt_date.setDate(1);

	if (arr_date[0] < 1 || arr_date[0] > 12) return alert ("Invalid month value: '" + arr_date[0] + "'.\nAllowed range is 01-12.");
	dt_date.setMonth(arr_date[0]-1);
	 
	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
	dt_date.setFullYear(arr_date[2]);

	var dt_numdays = new Date(arr_date[2], arr_date[0], 0);
	dt_date.setDate(arr_date[1]);
	if (dt_date.getMonth() != (arr_date[0]-1)) return alert ("Invalid day of month value: '" + arr_date[1] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");

	return (dt_date)
}

// time parsing function
function cal_prs_time2 (str_time, dt_date) {

	if (!dt_date) return null;
	var arr_time = String(str_time ? str_time : '').split(':');

	if (!arr_time[0]) dt_date.setHours(0);
	else if (RE_NUM.exec(arr_time[0])) 
		if (arr_time[0] < 24) dt_date.setHours(arr_time[0]);
		else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed range is 00-23.");
	else return cal_error ("Invalid hours value: '" + arr_time[0] + "'.\nAllowed values are unsigned integers.");
	
	if (!arr_time[1]) dt_date.setMinutes(0);
	else if (RE_NUM.exec(arr_time[1]))
		if (arr_time[1] < 60) dt_date.setMinutes(arr_time[1]);
		else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid minutes value: '" + arr_time[1] + "'.\nAllowed values are unsigned integers.");

	if (!arr_time[2]) dt_date.setSeconds(0);
	else if (RE_NUM.exec(arr_time[2]))
		if (arr_time[2] < 60) dt_date.setSeconds(arr_time[2]);
		else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed range is 00-59.");
	else return cal_error ("Invalid seconds value: '" + arr_time[2] + "'.\nAllowed values are unsigned integers.");

	dt_date.setMilliseconds(0);
	return dt_date;
}

function cal_error (str_message) {
	alert (str_message);
	return null;
}
