//                           +++++++++++++++++++++++++++++++++++
//                           (C) Copyright 2003 - 2008 Niro Solutions Pty Limited ABN 89 106 967 140
//			+++++++++++++++++++++++++++++++++++
//			Version: 3.0.0
//			+++++++++++++++++++++++++++++++++++
//			Original author: Miles Glisovic
//			Last update completed by: Robert Spackman
//			Modification date: 09/08/07
//			+++++++++++++++++++++++++++++++++++

function getCmbText(cmb1,u_l_p)
{
//u=>upper
//l=>lower
//p=>plain (as-is)
    var s = cmb1.options[cmb1.selectedIndex].text
    if(u_l_p.toUpperCase()=="U")
	    return s.toUpperCase();
    else if(u_l_p.toUpperCase()=="L")
	    return s.toLowerCase();
    else
	    return s;
}

function removeDecimalPart(ns)
{
    var li = ns.lastIndexOf(".")
    if(li<0)
	    return ns;
    else
	    return (ns.substring(0,li))
}

function isValidValue(field,value,vMin,vMax,sMin,sMax,sAll)
{
	var ret = false;
	if(isInt(field.value))
	{
		if(value < vMin)
		{
			select(field)
			alert(sMin)
		}
		else if(value > vMax)
		{
			select(field)
			alert(sMax)
		}
		else
			ret=true
	}
	else
	{
		select(field)
		alert(sAll)
	}
	return ret;
}

function isInt(v)
{
    var ret=false;
    var int1 = /^\d{1,8}$/;
    var reg=new RegExp(int1);
    var ret = reg.test(v);
    if(ret)
	    ret=true;
    return ret
}

function getCmbIndex(cmb1,firstLetter)
{
	for(i=0;i<cmb1.options.length;i++)
	{
		if(((cmb1.options[i].text).charAt(0)).toUpperCase()==firstLetter.toUpperCase())
			return i;
	}
	return --i;//just in case
}

function getSafeFieldValue(field)
{
	var x=0
	if(jsLRTrim(field.value)=="" || isNaN(jsLRTrim(field.value)))
		x=0
	else
		x = parseInt(field.value,10)
	return x;
}

function jsLRTrim(s)
{
	return s.replace(/(^\s+)|(\s+$)/g, "");
}

function isDecimal_MinMax(field,min1,max1,prompt0,prompt1)
{
var v=field.value
var int1 = /^\d{1,}(\.\d{1,})?$/;
var reg=new RegExp(int1);
var ret = reg.test(v);
if(ret && parseFloat(v) >= min1 && parseFloat(v) <= max1)
	return true;
else
{
	select(field)
	
	if(prompt1)
		alert(prompt0)
	return false;
}
}

function getSafeDecimalFieldValue(field)
{
	var x=0
	if(jsLRTrim(field.value)=="" || isNaN(jsLRTrim(field.value)))
		x=0
	else
		x = parseFloat(field.value)
	return x;
}

function adjustDecimalPoint(field)
{
	if((field.value).indexOf(".")==0)
		field.value="0"+(field.value)
}

function myRound(number,dp)
{
return Math.round(number*Math.pow(10,dp))/Math.pow(10,dp);
}

function myMathFloor(number,dp)
{
return myRound((Math.floor(number*Math.pow(10,dp)))/Math.pow(10,dp),dp)
}

function myMathCeil(number,dp)
{
return myRound((Math.ceil(number*Math.pow(10,dp)))/Math.pow(10,dp),dp)
}

function limitNoDecimalPlaces2(field, n)
{
// this new version will allow non-decimal number of any length
// find if '.' entered
var li = (field.value).indexOf(".")
if(li<0)
	;
else
{
	var s1 = (field.value).substring(0, li)
	var s2 = ((field.value).substring(li+1,(field.value).length))
	if(s2.length > n)
		field.value=s1+"."+s2.substring(0,n)
}
}

function getMaxPctAllowed(f, contMax50000, _sgc, salary)
{
	var contM = Math.max(myMathFloor(((contMax50000 - _sgc)/salary)*100,2),MIN_PCTG)
	if(salary*(contM/100.0+SGC_RATE) > contMax50000)
		contM=contM-0.01
	return contM
}

function getMaxDollarAllowed(f, contMax50000, _sgc, salary)
{
	var contM = myMathFloor((contMax50000 - _sgc)/f.cmbGrossIncomeFreq.value,2)
	if((contM*f.cmbGrossIncomeFreq.value+_sgc) > contMax50000)
		contM=contM-0.01
	return contM
}

function formatted_toFixed1(_value, np, _sign)
{
    // _value has to be a number;
    // use getSafeDecimalFieldValue(field) or getSafeFieldValue(field) to pass in _value parameter
    return formatCurrency(_value.toFixed(np), _sign)
    }
    
function formatCurrency(num, _sign)
    {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + _sign + num + '.' + cents);
}



