function number_format(nStr,decimals,outD, sep)
{
	nStr = String(nStr);
	//nStr += '';
	var isEmpty = parseInt(nStr);
    if ( isNaN( isEmpty ) )
	{
		return 0;
	}

	var dpos = nStr.indexOf('.');
	var nStrEnd = '';
	if (dpos != -1)
	{
		if (decimals > 0 )
		{
			nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
			nStrEnd = nStrEnd.substring(0,decimals+1);
		}
		nStr = nStr.substring(0, dpos);
	}
	else if ( decimals > 0 )
	{
		nStrEnd += outD;
	}
    decimals++;
	if ( decimals > nStrEnd.length && decimals > 1 )
	{
		var difference = decimals  - nStrEnd.length;
		for (var i = 0; i < difference; i++)
		{
			nStrEnd += '0';
		}
	}

	var newStr = '';
	var rest = nStr.length % 3;
	if (rest > 0 && nStr.length > 3)
	{
		newStr = nStr.substr(0,rest) + sep;
	}
	else
	{
		newStr = nStr.substr(0,rest);
	}
	for(var i = rest; i< nStr.length ; i+=3)
	{
		if ( (i + 3) == nStr.length )
			newStr += nStr.substring(i,i+3);
		else
			newStr += nStr.substring(i,i+3)+sep;
	}
	return newStr + nStrEnd;
}

