function increment(textBoxId, incrementValue, decimals) {
	var textBoxControl = getTextbox( textBoxId );
	if( textBoxControl != null ) {	
	    var result = parseFloat(textBoxControl.value) + incrementValue;	
	    textBoxControl.value = roundValue(result, decimals);
	}
}

function decrement(textBoxId, decrementValue, decimals, allowNegatives) {
	var textBoxControl = getTextbox( textBoxId );
	if( textBoxControl != null ) {
	    var result = parseFloat(textBoxControl.value) - decrementValue;
	    
	    if (result >= 0)
	        textBoxControl.value = roundValue(result, decimals);
	    else if (result < 0 && allowNegatives)
	        textBoxControl.value = roundValue(result, decimals);
	}
}

function roundValue(value, decimals) {
    var result1 = value * Math.pow(10, decimals);
    var result2 = Math.round(result1) / Math.pow(10, decimals);
    return padZeros(result2, decimals);
}

function padZeros(value, decimals) {

// Gareth: Commented out becuase there is no need for the extra zeros!
//    var value = value.toString();
//    var decimalLocation = value.indexOf(".");
//    
//    if (decimalLocation == -1) {
//        decimalLength = 0;
//        value += decimals > 0 ? "." : "";
//    } else {
//        decimalLength = value.length - decimalLocation - 1;
//    }
//    
//    var pad = decimals - decimalLength;
//    
//    if (pad > 0) {
//        for (var counter = 1; counter <= pad; counter++) 
//            value += "0";
//    }
    
    return value
}

function getTextbox(textBoxId) {	
	for( var i=0; i<document.forms.length; i++ ) {
		var theForm = document.forms[i];		
		if( typeof(theForm[textBoxId]) != "undefined" ) {
			var textBoxControl = theForm[textBoxId];
			
			if ( isNaN( parseInt(textBoxControl.value) ) ) 
			    textBoxControl.value = 0;
			
			return textBoxControl;
		}
	}
	return null;
}

function checkForNumbersOnly(myfield, allowNegatives, buttonId, e) 
{
    if (buttonId != 'none')
    {
        var entered = _buttonToUse(buttonId, e);        
        if (!entered) return false;
    }

    var key;
    var keychar;

    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
       
    keychar = String.fromCharCode(key);
    
    if ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) )
       return true;
    else if (!allowNegatives && (("0123456789.").indexOf(keychar) > -1))
       return true;
    else if (allowNegatives && (("0123456789.-").indexOf(keychar) > -1))
       return true;
    else
       return false;
}


function _buttonToUse(buttonId, e) {   
    var key;

    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
       
    if (key == 13) {
        document.getElementById(buttonId).click();
        return false;
    }       

    return true;
}