﻿// JScript File

//This function only allows numbers for dataentry
function keyCheck(eventObj, obj)
{
	var keyCode

	// Check For Browser Type
	if (document.all) 
		keyCode=eventObj.keyCode
	else
	    keyCode=eventObj.which

	var str=obj.value

	if(keyCode==46){ 
		if (str.indexOf(".")>0)
			return false		
	}
    // Allow only integers and decimal points
	if((keyCode<48 || keyCode >58)   &&   (keyCode != 46))
		return false
	
	return true
}

//return a decimal to 2 places
function formatDecimal(element)
{
    var num = parseFloat(element.value);
    if (isNaN(num) || num == 0)
        {element.value ="";}
    else
        {element.value = num.toFixed(2);}
}


function sumColumn(element)
{
    //get the parent table
    var tblParent = climbTo(element,"table");
    //get all elements with a matching date attribute
    var arrElements = getElementsByAttribute(tblParent,"input","Date",element.getAttribute("Date"));
    var total=0;
    for (var i=0; i < arrElements.length; i++){
        oCurrent = arrElements[i];
        total = total + (isNaN(parseFloat(oCurrent.value))? 0 : parseFloat(oCurrent.value));
    }
    
    var ttlTextbox = getElementsByAttribute(tblParent,"input","Total",element.getAttribute("Date"));
    ttlTextbox[0].value = total.toFixed(2);
}

/*
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "ftp://ftp.")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

function $find() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function climbTo(element,tagname){
    var pa=element.parentNode;
    while(pa.tagName.toLowerCase()!=tagname.toLowerCase()){
        pa=pa.parentNode;
    }
    return pa;
}

function trimTrailingSlash(input){
	var pos = input.lastIndexOf("/");
	if (pos + 1 == input.length)
	    return input.substring(0,pos);
	else 
	    return input;
}

