// DHTML textbox character counter script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
function taLimit(taObj,maxL) {
	if (taObj.value.length==maxL) return false;
	return true;
}

function taCount(taObj,Cnt,maxL) { 
	objCnt=createObject(Cnt);
	objVal=taObj.value;
	if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
	if (objCnt) objCnt.innerText=maxL-objVal.length;
	return true;
}
function createObject(objId) {
	if (document.getElementById) return document.getElementById(objId);
	else if (document.layers) return eval("document." + objId);
	else if (document.all) return eval("document.all." + objId);
	else return eval("document." + objId);
}

// AJAX 'save progress' functions
function saveProgress(responseID){
	document.getElementById(responseID).innerHTML="Saving, please wait...";
	var url = 'save.php';
	var pars = $('appForm').serialize(true);
	var target = responseID;	
	var myAjax = new Ajax.Updater(target, url, { method:'post', parameters: pars });
}

function clearResponse(responseID){
	document.getElementById(responseID).innerHTML="&nbsp;";
}

// Allow only numeric characters or decimals to be input in a form field
function AllowOnlyNumeric()
{
    // Get the ASCII value of the key that the user entered
    var key = window.event.keyCode;

    // Verify if the key entered was a numeric character (0-9) or a decimal (.)
    if ( (key > 47 && key < 58) || key == 46 )
        // If it was, then allow the entry to continue
        return;
    else
        // If it was not, then dispose the key and continue with entry
        window.event.returnValue = null; 
		alert('You may only enter numeric values (no commas) in this field).');
}

// Checks for a matching value between two fields
function CheckContribTotals() {
	if (document.appForm.ProjContribSubtotalCalc.value != document.appForm.CashContribSubtotalCalc.value) {
		alert("Subtotal for Donations must match Total Cash Contributions. Please correct this and try again.");
		document.appForm.ProjContribAmtA.focus;
		return false;
	} else {
		return true;
	}
}

// Funds Requested calculator for calculators below
function CalculateFundsRequestedTotal() {
	if (Math.abs(document.appForm.ProjExpTotalCalc.value)) { 
		var ProjExpTotal = Math.abs(document.appForm.ProjExpTotalCalc.value); 
	} else {
		var ProjExpTotal = 0;
	}
	if (Math.abs(document.appForm.CashContribTotalCalc.value)) {
		var CashContribTotal = Math.abs(document.appForm.CashContribTotalCalc.value);
	} else {
		var CashContribTotal = 0;
	}
	document.appForm.FundsRequestedTotalCalc.value = ProjExpTotal-CashContribTotal;
}

// Project Expense calculator
function CalculateProjExp() {
	if (Math.abs(document.appForm.ProjExpAmtA.value)) {
		var ProjExpAmtA = Math.abs(document.appForm.ProjExpAmtA.value);
	} else {
		var ProjExpAmtA = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtB.value)) {
		var ProjExpAmtB = Math.abs(document.appForm.ProjExpAmtB.value);
	} else {
		var ProjExpAmtB = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtC.value)) {
		var ProjExpAmtC = Math.abs(document.appForm.ProjExpAmtC.value);
	} else {
		var ProjExpAmtC = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtD.value)) {
		var ProjExpAmtD = Math.abs(document.appForm.ProjExpAmtD.value);
	} else {
		var ProjExpAmtD = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtE.value)) {
		var ProjExpAmtE = Math.abs(document.appForm.ProjExpAmtE.value);
	} else {
		var ProjExpAmtE = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtF.value)) {
		var ProjExpAmtF = Math.abs(document.appForm.ProjExpAmtF.value);
	} else {
		var ProjExpAmtF = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtG.value)) {
		var ProjExpAmtG = Math.abs(document.appForm.ProjExpAmtG.value);
	} else {
		var ProjExpAmtG = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtH.value)) {
		var ProjExpAmtH = Math.abs(document.appForm.ProjExpAmtH.value);
	} else {
		var ProjExpAmtH = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtI.value)) {
		var ProjExpAmtI = Math.abs(document.appForm.ProjExpAmtI.value);
	} else {
		var ProjExpAmtI = 0;
	}
	if (Math.abs(document.appForm.ProjExpAmtJ.value)) {
		var ProjExpAmtJ = Math.abs(document.appForm.ProjExpAmtJ.value);
	} else {
		var ProjExpAmtJ = 0;
	}
	
	ProjExpTotal = Math.abs(ProjExpAmtA+ProjExpAmtB+ProjExpAmtC+ProjExpAmtD+ProjExpAmtE+ProjExpAmtF+ProjExpAmtG+ProjExpAmtH+ProjExpAmtI+ProjExpAmtJ);
	document.appForm.ProjExpSubtotalCalc.value = ProjExpTotal;
	document.appForm.ProjExpTotalCalc.value = ProjExpTotal;
	CalculateFundsRequestedTotal()
}

// Project Contribution calculator
function CalculateProjContrib() {
	if (Math.abs(document.appForm.ProjContribAmtA.value)) {
		var ProjContribAmtA = Math.abs(document.appForm.ProjContribAmtA.value);
	} else {
		var ProjContribAmtA = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtB.value)) {
		var ProjContribAmtB = Math.abs(document.appForm.ProjContribAmtB.value);
	} else {
		var ProjContribAmtB = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtC.value)) {
		var ProjContribAmtC = Math.abs(document.appForm.ProjContribAmtC.value);
	} else {
		var ProjContribAmtC = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtD.value)) {
		var ProjContribAmtD = Math.abs(document.appForm.ProjContribAmtD.value);
	} else {
		var ProjContribAmtD = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtE.value)) {
		var ProjContribAmtE = Math.abs(document.appForm.ProjContribAmtE.value);
	} else {
		var ProjContribAmtE = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtF.value)) {
		var ProjContribAmtF = Math.abs(document.appForm.ProjContribAmtF.value);
	} else {
		var ProjContribAmtF = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtG.value)) {
		var ProjContribAmtG = Math.abs(document.appForm.ProjContribAmtG.value);
	} else {
		var ProjContribAmtG = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtH.value)) {
		var ProjContribAmtH = Math.abs(document.appForm.ProjContribAmtH.value);
	} else {
		var ProjContribAmtH = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtI.value)) {
		var ProjContribAmtI = Math.abs(document.appForm.ProjContribAmtI.value);
	} else {
		var ProjContribAmtI = 0;
	}
	if (Math.abs(document.appForm.ProjContribAmtJ.value)) {
		var ProjContribAmtJ = Math.abs(document.appForm.ProjContribAmtJ.value);
	} else {
		var ProjContribAmtJ = 0;
	}
	
	ProjContribTotal = Math.abs(ProjContribAmtA+ProjContribAmtB+ProjContribAmtC+ProjContribAmtD+ProjContribAmtE+ProjContribAmtF+ProjContribAmtG+ProjContribAmtH+ProjContribAmtI+ProjContribAmtJ);
	document.appForm.ProjContribSubtotalCalc.value = ProjContribTotal;
}

// Budget Contribution calculator
function CalculateCashContrib() {
	if (Math.abs(document.appForm.CashContribAmtK.value)) {
		var CashContribAmtK = Math.abs(document.appForm.CashContribAmtK.value);
	} else {
		var CashContribAmtK = 0;
	}
	if (Math.abs(document.appForm.CashContribAmtL.value)) {
		var CashContribAmtL = Math.abs(document.appForm.CashContribAmtL.value);
	} else {
		var CashContribAmtL = 0;
	}
	if (Math.abs(document.appForm.CashContribAmtM.value)) {
		var CashContribAmtM = Math.abs(document.appForm.CashContribAmtM.value);
	} else {
		var CashContribAmtM = 0;
	}
	if (Math.abs(document.appForm.CashContribAmtN.value)) {
		var CashContribAmtN = Math.abs(document.appForm.CashContribAmtN.value);
	} else {
		var CashContribAmtN = 0;
	}
	
	CashContribTotal = Math.abs(CashContribAmtK+CashContribAmtL+CashContribAmtM+CashContribAmtN);
	document.appForm.CashContribTotalCalc.value = CashContribTotal;
	document.appForm.CashContribSubtotalCalc.value = CashContribTotal;
	CalculateFundsRequestedTotal()
}

// Alert for fields that cannot be modified
function LockedField() {
	this.blur();
	alert('This field auto-calculates and cannot be modified.');
}