function checkBounds(field, minNumber, maxNumber) {
	if (field.value.length == 0) {
		return true;
	}
	
	if (parseFloat(field.value) < minNumber) {
		alert("The minimum valued allowed for this field is " + minNumber + ".");
		field.focus();
		field.select();
		return false;
	}
	if (parseFloat(field.value) > maxNumber) {
		alert("The maximum valued allowed for this field is " + maxNumber + ".");
		field.focus();
		field.select();
		return false;
	}

	return true;
}

function formatCurrency(field, dp) {
	var start = 0;
	
	if (field.lastvalue != field.value && field.value.length > 0) {
	
		if (field.value.substr(0, 1) == "-") {
			start = 1;
		}
			
		if (dp > 0 && field.value.indexOf(".") == -1) {
			field.value += ".";
		}
		
		if (field.value.substr(start, 1) == ".") {
			field.value = field.value.substr(0, start) + "0" + field.value.substr(start, field.value.length - start);
		}
		
		while (field.value.length - field.value.indexOf(".") - 1 < dp) {
			field.value += "0";
		}
		
		field.lastvalue = field.value;
	}
}

function decimalPlaces(field, dp){
	var endRange;

	if (dp == 0 && window.event.keyCode == 46){
		window.event.returnValue = false;
		return;
	}
	
	// CATCH INVALID CHARACTERS
	if ((window.event.keyCode < 47 || window.event.keyCode > 57) && window.event.keyCode != 45 && window.event.keyCode != 46) {
		window.event.returnValue = false;
		return;
	}	
	
	if (document.selection.type == "None") {
		// WHEN TEXT NOT SELECTED
		
		endRange = document.selection.createRange();
		endRange.moveEnd("textedit");

		// CATCH MULTIPLE -'S
		if (window.event.keyCode == 45 && (field.value.indexOf("-") != -1 || (field.value.length - endRange.text.length) != 0)) {
			window.event.returnValue = false;
			return;
		}
		
		if (dp != 0) {	
		
			// CATCH DECIMAL POINTS 
			if (window.event.keyCode == 46 && (field.value.indexOf(".") != -1 || endRange.text.length > dp)) {
				window.event.returnValue = false;
				return;
			}	

			// CATCH DECIMAL PLACES 
			if (window.event.keyCode != 45 && window.event.keyCode != 46 && endRange.text.indexOf(".") == -1 && getDecimalPlaces(field.value) >= dp) {
				window.event.returnValue = false;
				return;
			}
		}
		
	} else if (document.selection.type == "Text"){
		// WHEN TEXT SELECTED
	
		endRange = document.selection.createRange();	

		// CATCH MULTIPLE -'S
		if (window.event.keyCode == 45 && (field.value.indexOf(endRange.text) > 0) || (endRange.text.indexOf("-") == -1 && field.value.indexOf("-") != -1)) {
			window.event.returnValue = false;
			return;
		}
		
		if (dp != 0) {
		
			// CATCH DECIMAL POINTS 
			if (window.event.keyCode == 46 && endRange.text.indexOf(".") == -1 && field.value.indexOf(".") != -1) {
				window.event.returnValue = false;
				return;
			}	
					
		}
	}
}

function getDecimalPlaces(num) {
	if (num.indexOf(".") == -1) {
		return 0;
	} else {
		return num.length - num.indexOf(".") - 1;
	}
}

function isDecimal(s, allowDecimal)
{   
	var i;
	var foundDecimal = false;
	if (!allowDecimal) foundDecimal = true;
	
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) {
			if (c == ".") {
				if (foundDecimal) {
					return false;
				} else {
					foundDecimal = true;
				}
			} else {
				return false;
			}
		}
		
    }
    // All characters are numbers.
    return true;
}

function show(elementID){
    var element = document.getElementById(elementID);
	element.style.display = "block";
}