function GetDecimalDelimiter(nCountryCode)
{
       var sRet='';
       switch (nCountryCode)
       {
            case 2:        sRet = ',';
                           break;
            default:       sRet = '.';
                           break;
       }
      return sRet;
}

function GetCommaDelimiter(nCountryCode)
{
      var sRet='';
      switch (nCountryCode)
      {
            case 2:        sRet = ',';
                           break;
            default:       sRet = ',';
                           break;
      }
      return sRet;
}

function FormatClean(num)
{
      var sVal='';
      var nVal = num.length;
      var sChar='';
      try
      {
       	    for(i=0;i<nVal;i++)
            {
          	sChar = num.charAt(i);
         	nChar = sChar.charCodeAt(0);
         	if ((nChar >=48) && (nChar <=57))  { sVal += num.charAt(i);   }
      	    }
      }
      catch (exception) { AlertError("Format Clean",e); }
      return sVal;
}
 

function FormatCurrency(num,nCountryCode)
{       
      var sVal='';
      var minus='';
      var Decimal='';
      Decimal = GetDecimalDelimiter(nCountryCode);
      if (num.lastIndexOf("-") == 0) { minus='-'; }
      if (num.lastIndexOf(Decimal) < 0) { num = num + '00'; }
      num = FormatClean(num);
      sVal = minus + FormatDollar(num,GetCommaDelimiter(nCountryCode)) + GetDecimalDelimiter(nCountryCode) + FormatCents(num); 
      return sVal;
}

function FormatNumber(num,nCountryCode)
{       
      var sVal='';
      var minus='';
      var CommaDelimiter='';
      try 
      {

           CommaDelimiter = GetCommaDelimiter(nCountryCode);
           if (num.lastIndexOf("-") == 0) { minus='-'; }
           if(num!="")
           {
           	num = FormatClean(num);
	   	num = parseInt(num);
	   }	
	   else num = "0";
	   var samount = new String(num);
           for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++)
           {
                samount = samount.substring(0,samount.length-(4*i+3)) + CommaDelimiter + samount.substring(samount.length-(4*i+3));
           }
        }
        catch (exception) { AlertError("Format Number",e); }
        return minus + samount;
}

function FormatCents(amount)
{
      var cents = '';
      try
      {
           amount = parseInt(amount);
           var samount = new String(amount);

           if (samount.length == 0) { return '00'; }
           if (samount.length == 1) { return '0' + samount; }
           if (samount.length == 2) { return samount; }
         
           cents =  samount.substring(samount.length -2,samount.length);
      }
      catch (exception) { AlertError("Format Cents",e); }
      return cents;
}

function FormatDollar(amount,CommaDelimiter)
{
      try 
      {
          amount = parseInt(amount);
          var samount = new String(amount);
          if (samount.length < 3) { return 0; }  
          samount =  samount.substring(0,samount.length -2);
          for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++)
          {
               samount = samount.substring(0,samount.length-(4*i+3)) + CommaDelimiter + samount.substring(samount.length-(4*i+3));
          }
      }
      catch (exception) { AlertError("Format Comma",e); }
      return samount;
}

function AlertError(MethodName,e)
{
      if (e.description == null) { alert(MethodName + " Exception: " + e.message); }
      else {  alert(MethodName + " Exception: " + e.description); }
}

