function FormatNumber(Expression, NumDigitsAfterDecimal)
{
        var iNumDecimals = NumDigitsAfterDecimal;
        var dbInVal = Expression;
        var bNegative = false;
        var iInVal = 0;
        var strInVal
        var strWhole = "", strDec = "";
        var strTemp = "", strOut = "";
        var iLen = 0;

        if (dbInVal < 0)
        {
                bNegative = true;
                dbInVal *= -1;
        }

        dbInVal = dbInVal * Math.pow(10, iNumDecimals)
        iInVal = parseInt(dbInVal);
        if ((dbInVal - iInVal) >= .5)
        {
                iInVal++;
        }
        strInVal = iInVal + "";
        strWhole = strInVal.substring(0, (strInVal.length - iNumDecimals));
        strDec = strInVal.substring((strInVal.length - iNumDecimals), strInVal.length);
        while (strDec.length < iNumDecimals)
        {
                strDec = "0" + strDec;
        }
        iLen = strWhole.length;
        if (iLen >= 3)
        {
                while (iLen > 0)
                {
                        strTemp = strWhole.substring(iLen - 3, iLen);
                        if (strTemp.length == 3)
                        {
                                strOut = "" + strTemp + strOut;
                                iLen -= 3;
                        }
                        else
                        {
                                strOut = strTemp + strOut;
                                iLen = 0;
                        }
                }
                if (strOut.substring(0, 1) == "")
                {
                        strWhole = strOut.substring(1, strOut.length);
                }
                else
                {
                        strWhole = strOut;
                }
        }
        if (bNegative)
        {
                return "-" + strWhole + "." + strDec;
        }
        else
        {
                return strWhole + "." + strDec;
        }
}

function UniCalc(strSlip)
{
	var slipDetail = strSlip.split("|");
	var slip = new Slip(1);
	for (iSD = 0;iSD<slipDetail.length;iSD++)
	{
		var slipLine = slipDetail[iSD].split(":");
		
		var isB = parseInt(slipLine[0]); 
		var odds = parseFloat(slipLine[3]);
		if(isB == 0)
		{
			var fn =parseInt(slipLine[1]);
			var blk = parseInt(slipLine[2]);
			slip.addLine(isB,fn,blk,odds,0);
		} 
		else
		{
			slip.addLine(isB,odds);
		}
	}
	var bCount=slip.Formulas[0].Blocks.length;
	var sReturn="";
	for (iMinus=0;iMinus < bCount;iMinus++)
	{
		slip.changeM(0,iMinus);
		var iK = slip.slipK();
		var mK = slip.MaxVarK();
		var V = slip.Formulas[0].v;
		// N - M : Variants : MaxVarK : AvgK : MinAmount : MaxAmount | 
		sReturn += bCount +"-"+iMinus+":"+V+":"+ roundNumber(mK)+":"+ roundNumber(iK*1.00/V)+":"+ roundNumber(0.1*Math.sqrt(V))+":"+ roundNumber(5000.00*V/iK)+"|";
	}
	return sReturn;
}