
function calculate(units,uprice,ivalue,valuetargetid,total){

    var tmpUnits=parseFloat(units);
    var tmpTotal = parseFloat(total);
    var tmpiChange = parseFloat(ivalue);
    var decimalNum = 2

    valueincrease=(tmpUnits*uprice);
    tmpValueincrease=valueincrease
    valueincrease=FormatNumber(valueincrease,2,true,false,true,true);
    
    if (valueincrease!='NaN'){
        document.getElementById('tempval'+valuetargetid+'').value=tmpValueincrease
        document.getElementById('txtValue'+valuetargetid+'').innerHTML=valueincrease      
    } else {
        document.getElementById('tempval'+valuetargetid+'').value=0
        document.getElementById('txtValue'+valuetargetid+'').innerHTML='0.00'      
    }

  
   
   
   
    
    // Change TOTAL

	if (!tmpValueincrease) {
	    tmpValueincrease=0
	}
		//alert(tmpiChange); //43000
		//alert(tmpValueincrease); //3600
	
	if (tmpTotal>0){
	    if (tmpiChange<tmpValueincrease) {
            tmpTotal=tmpTotal+(tmpValueincrease-tmpiChange)
        } else if (tmpiChange>tmpValueincrease) {
            if (tmpValueincrease==0 && tmpiChange>0){
                tmpTotal=tmpTotal-tmpiChange
            } else {
                tmpTotal=tmpTotal-(tmpiChange-tmpValueincrease)
            }
        } else {
            // when keys hit really fast this occurs
            //tmpTotal=tmpTotal+tmpValueincrease
        }
	} else {
	    tmpTotal=tmpValueincrease
	}

    document.getElementById('total').value=tmpTotal
    fTotal=FormatNumber(tmpTotal,2,true,false,true,true);
      
      
    if (fTotal!='NaN'){
        document.getElementById('txtValueTotal').innerHTML=fTotal+'&nbsp;'
    } else {
        document.getElementById('txtValueTotal').innerHTML='0.00&nbsp;'
    }   
    
    
    
//end function    
}








function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas,bolDubZero)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
		bolDubZero - true / false - add .00
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;
            
		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

    // See if we need to add ending zero
    if (bolDubZero && tmpNumStr.indexOf(".") != -1 && tmpNumStr.substring(tmpNumStr.length-(decimalNum+1),tmpNumStr.length-decimalNum) != '.')
        tmpNumStr = tmpNumStr + "0"
        
    // See if we need to add .00
    if (bolDubZero && tmpNumStr.indexOf(".") == -1)
        tmpNumStr = tmpNumStr + ".00"
        
	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
 
        
	return tmpNumStr;		// Return our formatted string!
}