function FormatDollar(amount,groupSymbol, decimalDigits)
{
	var samount;
	try 
	{
	    amount = parseInt(amount);
		samount = new String(amount);

		if (samount.length <= decimalDigits) 
		{ 
			return 0;
		}  

		samount =  samount.substring(0,samount.length - decimalDigits);
           
		for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++)
		{
			samount = samount.substring(0,samount.length-(4*i+3)) + groupSymbol + samount.substring(samount.length-(4*i+3));
		}

	}
	catch (exception) 
	{  
	}
    
	return samount;
}

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)
	{ 
	}
  
	return sVal;
}

function FormatCents(amount, decimalDigits)
{
	var cents = '';

	try
	{
		amount = parseInt(amount);
		var samount = new String(amount);
		if (samount.length <= decimalDigits)
		{
			cents = padding(decimalDigits - samount.length, samount, '0');
		}
		else
		{
			cents =  samount.substring(samount.length -decimalDigits,samount.length);
		}
	}	
	catch (exception) 
	{
	}

	return cents;
}

function padding(num, str, pad)
{
	var opString = str;
	var idx = 0;

	for (idx = 0; idx < num; idx++)
	{
		opString = pad + opString;
	}
    
    return opString;
}

function FormatCurrency(num, groupSymbol, decimalSymbol, currencySymbol, patternIdx, decimalDigits)
{
	var sVal='';
	var minus='';
	if (num.lastIndexOf("-") == 0) 
	{
		minus='-';
	}
	
	num = FormatClean(num);
	if (decimalDigits > 0)
	{
		sVal = minus + FormatDollar(num, groupSymbol, decimalDigits) + decimalSymbol + FormatCents(num, decimalDigits); 
	}
	else
	{
		sVal = minus + FormatDollar(num, groupSymbol, decimalDigits); 
	}		

	sVal = FormatSymbol(patternIdx, currencySymbol, sVal);
	
	return sVal;
}

function FormatSymbol(patternIdx, currencySymbol, sCurrency)
{
	var sRet = "";
	
	switch (patternIdx)
    {
		case 0:
			sRet = currencySymbol + sCurrency;
			break;
        case 1:   
			sRet = sCurrency + currencySymbol;
			break;
		case 2:   
			sRet = currencySymbol + ' ' + sCurrency;
			break;
        case 3:
			sRet = sCurrency + ' ' + currencySymbol;
			break;
		default:
			sRet = currencySymbol + sCurrency;
			break;
        }
			
	return sRet;
}

