if (document.all)
	var IE = true
else
	var IE = false;

var aElements = new Array;

function checkKeysNum(e) {
/* e		: Netscape Event Object (ignored by Internet Explorer */
	if (IE) {	
		if ((event.keyCode < 1 || event.keyCode > 32) && (event.keyCode != 42) && (event.keyCode != 46) && (event.keyCode < 48 || event.keyCode > 57)) {
			event.returnValue = false;
			return false;
		}
	}
	else {
		if ((e.which < 1 || e.which > 32) && (e.which != 42) && (e.which != 46) && (e.which < 48 || e.which > 57) && (e.which != 0)) {
			e.cancelBubble = true;
			return false;
		}
	}			
}

function populateElements() {
	var i;
	var x = new Array;
	x = document.getElementsByTagName('*');
	for (i = 0; i < x.length; i++) {
		if (x[i].id != '') {
			aElements[aElements.length] = x[i];
		}
	}
}

function initPage() {
	populateElements();
	if (window.additionalInit)
		additionalInit();
}

function locateElement(pString) {
	var i;
	if (aElements.length > 0) {
		for (i = 0; i < aElements.length; i++) {
			if (aElements[i].id == pString)
				return aElements[i];
		}
	}
	return false;
}

function locateElements(pString) {
	var i;
	var aMatches = new Array;
	
	if (aElements.length > 0) {
		for (i = 0; i < aElements.length; i++) {
			if (aElements[i].id.substr(0, pString.length) == pString)
				aMatches[aMatches.length] = aElements[i];
		}
	}
	return aMatches;
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {
    var value_string = rounded_value.toString()  
    var decimal_location = value_string.indexOf(".")
    if (decimal_location == -1) {
        decimal_part_length = 0
        value_string += decimal_places > 0 ? "." : ""
    }
    else {
        decimal_part_length = value_string.length - decimal_location - 1
    }
    var pad_total = decimal_places - decimal_part_length
    if (pad_total > 0) {
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

function calcExVat(pNon, pVat, vat) {

	var tempValue = 0;
	
	tempValue = (parseFloat(locateElement(pVat).value) / (100 + vat)) * (100);
	
	tempValue=Math.round(tempValue*1000)/1000
	if (isNaN(tempValue)) {
		tempValue = 0;
	}
	locateElement(pNon).value = tempValue
}

function calcWithVat(pNon, pVat, vat) {

	var tempValue = 0;
	
	tempValue = (parseFloat(locateElement(pNon).value) / (100)) * (100 + vat);
	
	tempValue=Math.round(tempValue*1000)/1000
	if (isNaN(tempValue)) {
		tempValue = 0;
	}
	locateElement(pVat).value = tempValue
}