function isEmpty(str) 
{
    if (str==null || str=="")
        return true;
    return false;
}

function trim(str) 
{
    while (str.charAt(str.length - 1)==" ")
        str = str.substring(0, str.length - 1);
    while (str.charAt(0)==" ")
        str = str.substring(1, str.length);
    return str;
}

function trimAll(str) 
{
    if (str!=null) 
    {
        while (str.length > 0 && "\n\r\t ".indexOf(str.charAt(str.length - 1)) != -1)
            str = str.substring(0, str.length - 1);
        while (str.length > 0 && "\n\r\t ".indexOf(str.charAt(0)) != -1)
            str = str.substring(1, str.length);
    }
    return str;
}

function isPositiveInteger(str) 
{
    var pattern = "0123456789";
    var i = 0;
    do 
    {
        var pos = 0;
        for (var j=0; j<pattern.length; j++)
            if (str.charAt(i)==pattern.charAt(j)) 
            {
                pos = 1;
                break;
            }
            i++;
    } while (pos==1 && i<str.length)  
    if (pos==0) 
        return false;
    return true;
} 

function isValidPhoneNumber(str) 
{
    var pattern = "0123456789( )-";
    var i = 0;
    var pos = 0;
    do 
    {
        pos = 0;
        for (var j=0; j < pattern.length; j++)
        {
            if (str.charAt(i) == pattern.charAt(j)) 
            {
                pos = 1;
                break;
            }
        }
        i++;
    } while ((pos==1) && i < (str.length))  
    if (pos == 0) 
        return false;
    return true;
}

function isRealNumber(str)
{
    var pattern = "0123456789.- ";
    var i = 0;
    var pos = 0;
    var fsCount = 0;
    var minusCount = 0;
    do 
    {
        pos = 0;
        for (var j=0; j < pattern.length; j++)
        {
            if (str.charAt(i) == pattern.charAt(j)) 
            {
                pos = 1;
                if (str.charAt(i) == '.')
					fsCount++;
				else if (str.charAt(i) == '-')
					minusCount++;
                break;
            }
        }
        i++;
    } while ((pos==1) && i < (str.length))  
    if ((pos == 0) || (fsCount > 1) || (minusCount > 1))
        return false;
    return true;
}

function isMoney(str) 
{
    var pattern = "0123456789,.";
    var i = 0;
    do {
        var pos = 0;
        for (var j=0; j<pattern.length; j++)
            if (str.charAt(i)==pattern.charAt(j)) 
            {
                pos = 1;
                break;
            }
        i++;
    } while (pos==1 && i<str.length)  
    if (pos==0) 
        return false;

    // now make sure that the decimal point, if any,
    // only appears one and at the (str.length-3) 
    // position, so that the valid format is xxx.yy
    // the following statement also returns 
    // false if there are 2 or more decimal points
    pos = str.indexOf(".");
    if (pos!=-1 && pos!=str.length-3)
        return false 

    // now check that if comma exists, the 
    // format must be xxx,xxx,xxx,...,xxx
    if (pos==-1)
        pos = str.length;


    while (str.lastIndexOf(",", pos-1) != -1) 
    {
        if (str.lastIndexOf(",", pos-1) != pos-4) 
            return false;
        else
            pos -= 4;
    }
    return true;
} 

function isOZDate(str)
{
    if (str.length!=10 || str.charAt(2)!="/" || str.charAt(5)!="/" || !isPositiveInteger(str.substring(0,2) + 
        str.substring(3,5) + str.substring(6,10)))
        return false;

        var d = str.substring(0,2) - 0;
        var m = str.substring(3,5) - 0;
        var y = str.substring(6,10) - 0;
        if (d==0 || m==0 || y==0)
            return false;

        if (m>12) 
            return false;
        if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) 
            var dmax = 31;
        else 
            if (m==4 || m==6 || m==9 || m==11) dmax = 30;
        else 
            if ((y%400==0) || (y%4==0 && y%100!=0)) dmax = 29;
        else dmax = 28;
            if (d>dmax) return false;
    return true;
}

function truncateDecimals(decimalPlaces, word)
{
	var decimalPosition = word.indexOf("."); //find array position of the decimal in a float
	var endIndexPosition = decimalPosition + decimalPlaces;
	
	if (decimalPlaces == 0)//if no decimals required, do not print decimal point at the end
	{
		var truncateString = word;
	}
	else 
	{
		var truncateString = word.substring(0, endIndexPosition + 1);
	}
	return truncateString;
}

