// Only accept the decimal for 0 or 2
function Format(total, decimals)
{

	// set default value
	try {
	   if ( decimals == undefined || ( decimals != 0 && decimals != 2 ) )
    	  decimals = 2;
	} catch (ex) {
		decimals = 2;
	}


	// check for error
	if ( isNaN(total) && ( decimals == 0 ) ) {
		return "0";
	} else if ( isNaN(total) ) {
		return "0.00"
	}
	

	// if this is a integer request, simply return integer
	if ( decimals == 0 ) {
		return parseInt(Math.round(total));
	}
	

	var total = parseFloat(total);
	var strTotal = total.toString();
	
	if ( strTotal.indexOf('.') == -1 ) {
		return strTotal + ".00"
	}
	

	var suffer = strTotal.indexOf('.');
	var subInt = parseInt(strTotal.substring(0, suffer));
	if ( subInt == 0 && total < 0 ) {
		add_minus = "-";
	} else {
		add_minus = "";
	}
	
	var subDecimal = Math.round(parseFloat(strTotal.substring(suffer, strTotal.length)) * 100);
	
	
	if ( subDecimal == 100 ) {
		// if this is a position number
		if ( total < 0 ) {
			subInt = subInt - 1;
		} else {
			subInt = subInt + 1;
		}
		if ( subInt < 0 ) {
			add_minus = "";
		}
		return add_minus + subInt + ".00"
	} else if ( subDecimal < 10 && subDecimal > -1 ) {
		return add_minus + subInt + "." + "0" + subDecimal;
	} else {
		return add_minus + subInt + "." + subDecimal;
	}
	
}


// trim in javascript format
function trim(sString)
{
   sTrimmedString = "";
   if (sString != "")
   {
      var iStart = 0;
      var iEnd = sString.length - 1;
      var sWhitespace = " \t\f\n\r\v";
     
      while (sWhitespace.indexOf(sString.charAt(iStart)) != -1)
      {
         iStart++;
         if (iStart > iEnd)
            break;
      }
     
      // If the string not just whitespace
      if (iStart <= iEnd)
      {
         while (sWhitespace.indexOf(sString.charAt(iEnd)) != -1)
            iEnd--;
         sTrimmedString = sString.substring(iStart,++iEnd);
      }
   }
   return sTrimmedString;
}
