//function showLoading(){
//	openModalWindow('loading');
//}

function loadCats(){
	engCats_Dash.load_categories(callback_loadCats);
}

function callback_loadCats(res){
var dt = res.value;
	
	
	var tbl = document.getElementById("moneyCategories"); 
	var rows = tbl.rows; 
    while(rows.length) // length=0 -> stop 
		{
		tbl.deleteRow(rows.length-1);
		}

		
		
	if (dt.Rows.length != 0)
		{
			//setSpanValue('BudgetCatPercent', 0);
			//document.getElementById("completeProgressBudCat").style.width = "100%";
			//var percent = (100 / dt.Rows.length);
			//setControlDisplay('budgetProgressContainer','block');
			//BudgetCatPercentInterval = window.setInterval("catProgress(" + percent + ")",100);
			//dtCatDataTable = dt;
			
			fillCatTable(dt);
			//j = 0;
			//BudgetCatPercentTableInterval = window.setInterval("showCatsTableRows(" + j + ")",100);
		}
	else
		{
		//var insertTable = tbl.insertRow(0);
								
		//var tblCell1 = insertTable.insertCell(0)
		//tblCell1.colSpan = "6";
		//tblCell1.innerHTML = "There are no categories for this period.";
		}
}

function catProgress(value){

	var curr = getSpanValue('BudgetCatPercent');
	if ((parseInt(curr) + parseInt(value)) >= 100)
		{
		setSpanValue('BudgetCatPercent', 100);
		document.getElementById("completeProgressBudCat").style.width = "0%";
		
		}
	else
		{
		setSpanValue('BudgetCatPercent', parseInt(curr) + parseInt(value));
		document.getElementById("completeProgressBudCat").style.width = 100 - (parseInt(curr) + parseInt(value)) + "%";
		}
	
	
	if (getSpanValue('BudgetCatPercent') == 100)
		{
		window.clearInterval(BudgetCatPercentInterval);
		
		//setControlDisplay('budgetProgressContainer','none');
		
		}
		
		//if ((getSpanValue('debtCredPercent') == 100)&&(getSpanValue('BudgetCatPercent') == 100))
		//{
		//closeModalWindow('loading')
		//}
}


var j;
var tblCatRows;
function fillCatTable(table){

	var tbl = document.getElementById("moneyCategories"); 
	var rows = tbl.rows; 
    while(rows.length) // length=0 -> stop 
		{
		tbl.deleteRow(rows.length-1);
		}
		

	var dt = table;
	
	//var tblRows = Math.round(dt.Rows.length / 5);
	tblCatRows = dt.Rows.length;
	for (var i=0; i<dt.Rows.length;i++)
				{
					var insertTable = document.createElement("tr");
					tbl.tBodies[0].appendChild(insertTable);
					
					var tblCell1 = insertTable.insertCell(0)
					tblCell1.id = "td_" + i;
					
					
					switch (dt.Rows[i].Colour)
					{
						case "GREEN":
						tblCell1.className = "first green"
						break
						case "RED":
						tblCell1.className = "first red"
						break
						case "ORANGE":
						tblCell1.className = "first amber"
						break
						case "GREY":
						tblCell1.className = "first grey"
						break
					}
					
					var aTD1 = document.createElement("a");
					
					var iTD1 = document.createElement("i");
					iTD1.innerHTML = dt.Rows[i].Category_Name;
					
					aTD1.appendChild(iTD1);
					
					// updated by Ben 20071204
					//var spanTD1 = document.createElement("span");
					var divTD1 = document.createElement("div");
					
					var budget = addDecimalPlaces(dt.Rows[i].Budget);
					
					var spent = addDecimalPlaces(dt.Rows[i].Spent);
					
					var leftover = addDecimalPlaces(dt.Rows[i].Leftover);
						
					//spanTD1.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover + "</em>";
					divTD1.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover + "</em>";
					
					//aTD1.appendChild(spanTD1);
					aTD1.appendChild(divTD1);
					
					aTD1.href = "javascript:showCatTrans(" + dt.Rows[i].Bud_Cat_ID + ")";	
					
					
					tblCell1.appendChild(aTD1);
					
					if (i == (dt.Rows.length - 1))
						{
						break
						}
					else
						{
						i = i + 1;
						}
				
						
					var tblCell2 = insertTable.insertCell(1)
					tblCell2.id = "td_" + i;
				
					
					switch (dt.Rows[i].Colour)
					{
						case "GREEN":
						tblCell2.className = "green"
						break
						case "RED":
						tblCell2.className = "red"
						break
						case "ORANGE":
						tblCell2.className = "amber"
						break
						case "GREY":
						tblCell2.className = "grey"
						break
					}
					
					var aTD2 = document.createElement("a");
					
					var iTD2 = document.createElement("i");
					iTD2.innerHTML = dt.Rows[i].Category_Name;
					
					aTD2.appendChild(iTD2);
					
					// updated by Ben 20071204
					//var spanTD2 = document.createElement("span");
					var divTD2 = document.createElement("div");
					
					var budget2 = addDecimalPlaces(dt.Rows[i].Budget);
					
					var spent2 = addDecimalPlaces(dt.Rows[i].Spent);
					
					var leftover2 = addDecimalPlaces(dt.Rows[i].Leftover);
					
					//spanTD2.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget2 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent2 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover2 + "</em>";
					divTD2.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget2 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent2 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover2 + "</em>";

					//aTD2.appendChild(spanTD2);
					aTD2.appendChild(divTD2);
					
					aTD2.href = "javascript:showCatTrans(" + dt.Rows[i].Bud_Cat_ID + ")";

					tblCell2.appendChild(aTD2);
					
					if (i == (dt.Rows.length - 1))
						{
						break
						}
					else
						{
						i = i + 1;
						}
					
					var tblCell3 = insertTable.insertCell(2)
					tblCell3.id = "td_" + i;
					
					switch (dt.Rows[i].Colour)
					{
						case "GREEN":
						tblCell3.className = "green"
						break
						case "RED":
						tblCell3.className = "red"
						break
						case "ORANGE":
						tblCell3.className = "amber"
						break
						case "GREY":
						tblCell3.className = "grey"
						break
					}
					
					var aTD3 = document.createElement("a");
					
					var iTD3 = document.createElement("i");
					iTD3.innerHTML = dt.Rows[i].Category_Name;
					
					aTD3.appendChild(iTD3);
					
					// updated by Ben 20071204
					//var spanTD3 = document.createElement("span");
					var divTD3 = document.createElement("div");
					
					var budget3 = addDecimalPlaces(dt.Rows[i].Budget);
					
					var spent3 = addDecimalPlaces(dt.Rows[i].Spent);
					
					var leftover3 = addDecimalPlaces(dt.Rows[i].Leftover);
						
					//spanTD3.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget3 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent3 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover3 + "</em>";
					divTD3.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget3 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent3 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover3 + "</em>";

					//aTD3.appendChild(spanTD3);
					aTD3.appendChild(divTD3);
					
					aTD3.href = "javascript:showCatTrans(" + dt.Rows[i].Bud_Cat_ID + ")";
					
					
					tblCell3.appendChild(aTD3);
					
					if (i == (dt.Rows.length - 1))
						{
						break
						}
					else
						{
						i = i + 1;
						}
					
					var tblCell4 = insertTable.insertCell(3)
					tblCell4.id = "td_" + i;
					
					
					switch (dt.Rows[i].Colour)
					{
						case "GREEN":
						tblCell4.className = "green"
						break
						case "RED":
						tblCell4.className = "red"
						break
						case "ORANGE":
						tblCell4.className = "amber"
						break
						case "GREY":
						tblCell4.className = "green"
						break
					}
					
					var aTD4 = document.createElement("a");
					
					var iTD4 = document.createElement("i");
					iTD4.innerHTML = dt.Rows[i].Category_Name;
					
					aTD4.appendChild(iTD4);
					
					// updated by Ben 20071204
					//var spanTD4 = document.createElement("span");
					var divTD4 = document.createElement("div");
					
					var budget4 = addDecimalPlaces(dt.Rows[i].Budget);
					
					var spent4 = addDecimalPlaces(dt.Rows[i].Spent);
					
					var leftover4 = addDecimalPlaces(dt.Rows[i].Leftover);
						
					//spanTD4.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget4 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent4 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover4 + "</em>";
					divTD4.innerHTML = "Budget: <em>" + dt.Rows[i].Currency + budget4 + "</em><br />Spent: <em>" + dt.Rows[i].Currency + spent4 + "</em><br />Leftover: <em>" + dt.Rows[i].Currency + leftover4 + "</em>";

					//aTD4.appendChild(spanTD4);
					aTD4.appendChild(divTD4);
					
					aTD4.href = "javascript:showCatTrans(" + dt.Rows[i].Bud_Cat_ID + ")";
					
					
					tblCell4.appendChild(aTD4);
					

					
					}
				
					
					
					
					
		
}

function showCatsTableRows(index){
	//Effect.Appear("td_a_" + j);
	//setControlDisplay("tr_" + j, 'block');
	j = j + 1;
	//var tbl = document.getElementById("cat_summary");
	if (j == tblCatRows)
		{
		window.clearInterval(BudgetCatPercentTableInterval);
		}
}

function showCatTrans(itemID){
//openModalWindow('catDetails')
	engCats_Dash.getCatTrans(itemID, callback_showCatTrans);
}

function callback_showCatTrans(res){
	if (res.error!=null){alert(res.error);};
	var dt = res.value;
	
	document.getElementById("catSlide").style.display = "block";
	document.getElementById("addTranSlide").style.display = "none";
	document.getElementById("editTranSlide").style.display = "none";
	document.getElementById("removeTranSlide").style.display = "none";
	
	setSpanValue('periodNumberCatSummary', getSpanValue('periodDesc'));
	setSpanValue('periodStartCatSummary', getSpanValue('periodStart'));
	setSpanValue('periodEndCatSummary', getSpanValue('periodEnd'));
	
	var amt = addDecimalPlaces(dt.Rows[0].Cat_Amount);
	
	var spnt = addDecimalPlaces(dt.Rows[0].Cat_Spent);
	
	var rem = addDecimalPlaces(dt.Rows[0].Cat_Remain);
	
	setSpanValue('catName', dt.Rows[0].Category_Name);
	setSpanValue('catIncome', dt.Rows[0].Currency + amt);
	setSpanValue('catSpent', dt.Rows[0].Currency + spnt);
	setSpanValue('catLeftover', dt.Rows[0].Currency + rem);
	setSpanValue('currentCatID',dt.Rows[0].Bud_Cat_ID);
	setSpanValue('currentMainCatID',dt.Rows[0].Category_ID);
	
	if (document.getElementById("aCatReminders") != null)
		{
		var a = document.getElementById("aCatReminders");
		a.href = "javascript:showReminders(" + dt.Rows[0].Bud_Cat_ID + ")";
		}
	var tbl = document.getElementById("tabularCatTrans"); 
	var rows = tbl.rows; 
    while(rows.length) // length=0 -> stop 
		{
		tbl.deleteRow(rows.length-1);
		}
		
	//var tr = document.createElement("tr");
	
	//tbl.tBodies[0].appendChild(tr);
	//var td1 = tr.insertCell(0);
	//var td2 = tr.insertCell(1);
	//var td3 = tr.insertCell(2);
	//var td4 = tr.insertCell(3);
	//var td5 = tr.insertCell(4);
	//var td6 = tr.insertCell(5);
	//var td7 = tr.insertCell(6);
	
	//td1.innerHTML = "Date";
	//td2.innerHTML = "Amount";
//	td3.innerHTML = "To/From";
//	td4.innerHTML = "Description";
//	td5.innerHTML = "Comment";
//	td6.innerHTML = "Links";
	
//	var aAdd = document.createElement("a");
//	aAdd.href = "javascript:showAddTransaction('false');";
//	aAdd.innerHTML = "add";
	
//	td7.appendChild(aAdd);
	var odd = false;
	
	if ((dt.Rows.length!=0)&&(dt.Rows[0].Tran_Date_Short!=null))
		{
			for (var i=0; i<dt.Rows.length; i++)
				{
				
					var insertTable = document.createElement("tr");
					if (odd == false)
						{
						insertTable.className = "odd";
						odd = true;
						}
					else
						{
						odd = false;
						}
					tbl.appendChild(insertTable);
								
					var tblCell1 = insertTable.insertCell(0)
					var tblCell2 = insertTable.insertCell(1)
					var tblCell3 = insertTable.insertCell(2)
					var tblCell4 = insertTable.insertCell(3)
					var tblCell5 = insertTable.insertCell(4)
					var tblCell6 = insertTable.insertCell(5)
					var tblCell7 = insertTable.insertCell(6)
				
					tblCell1.innerHTML = dt.Rows[i].Tran_Date_Short;
					tblCell1.className = "date";
					
					var font = document.createElement("span");
					var tAmt = addDecimalPlaces(dt.Rows[i].Tran_Amount);
					
					font.innerHTML = dt.Rows[0].Currency + tAmt;
		
					switch (dt.Rows[i].Tran_InOut)
					{
						case "In":
						font.style.color = "#00cc00";
						break
						case "Out":
						font.style.color = "#ff3300";
						break
						
					}
					
					tblCell2.appendChild(font);
					tblCell2.className = "amount";
					
					tblCell4.innerHTML = dt.Rows[i].Tran_Description;
					tblCell4.className = "description";
					
					tblCell3.innerHTML = dt.Rows[i].Tran_ToFrom;
					tblCell3.className = "toFrom";
					
					var comments = String(dt.Rows[i].Tran_Comments).substring(0, 50);
					tblCell5.innerHTML = comments;
					tblCell5.className = "comment";
					
					tblCell6.innerHTML = "&nbsp;";
					tblCell6.className = "links";
					
					var imgEdit = document.createElement("img");
					imgEdit.src = "/images/buttons/general/edit.gif";
					imgEdit.alt= "Edit"; 
					imgEdit.style.width = "36px";
					
					var aEdit = document.createElement("a");
					aEdit.appendChild(imgEdit);
					aEdit.href = "javascript:showEditTransaction(" + dt.Rows[i].Tran_ID + ")";
					aEdit.className = "imageButton";
					
					var spanSpace = document.createElement("span")
					spanSpace.innerHTML = "&nbsp;"
					
					var aDelete = document.createElement("a");
					aDelete.innerHTML = "remove";
					aDelete.href = "javascript:showDeleteTran(" + dt.Rows[i].Tran_ID + ")";
							
					tblCell7.appendChild(aEdit);
					tblCell7.appendChild(spanSpace);
					tblCell7.appendChild(aDelete);
					tblCell7.className = "options";
				}
				
		}
	else
		{
		var insertTable = document.createElement("tr");
		tbl.appendChild(insertTable);
								
		var tblCell1 = insertTable.insertCell(0)
		tblCell1.colSpan = "6";
		tblCell1.innerHTML = "There are no transactions for this category.";
		
		}
		
		
		if (document.getElementById("catDetails").style.display == "none")
			{
			openModalWindow('catDetails');	
			}
		
		//window.setTimeout("stripetableBody();alert('striped');", 2000);
}

function closeCategoryDetails(){
	closeAllChildModals('catSlide');
	closeModalWindow('catDetails');
	
}

function loadCatDropDown(){
	engCats_Dash.load_categories(callback_loadCatDropDown);
}

function callback_loadCatDropDown(res){
	var dt = res.value;
	
	var ddAdd = document.getElementById("ddAddAccCats"); 
	ddAdd.innerHTML = "";
	var defAdd = document.createElement("option");
	defAdd.innerHTML = "Select Category";
	defAdd.value = "0";
	
	ddAdd.appendChild(defAdd);
	
	for (var i=0; i<dt.Rows.length; i++)
		{
			
			var opt = document.createElement("option");
			
			opt.innerHTML = dt.Rows[i].Category_Name;
			opt.value = dt.Rows[i].Bud_Cat_ID + "_" + dt.Rows[i].Category_ID;
			
			
			ddAdd.appendChild(opt);
			
			
		}
		
	var ddEdit = document.getElementById("ddEditAccCats"); 
	ddEdit.innerHTML = "";
	var defEdit = document.createElement("option");
	defEdit.innerHTML = "Select Category";
	defEdit.value = "0";
	
	ddEdit.appendChild(defEdit);
	
	for (var i=0; i<dt.Rows.length; i++)
		{
			
			var opt = document.createElement("option");
			
			opt.innerHTML = dt.Rows[i].Category_Name;
			opt.value = dt.Rows[i].Bud_Cat_ID + "_" + dt.Rows[i].Category_ID;
			
			
			ddEdit.appendChild(opt);
			
			
		}

	
}

