/**
 * Вспомогательные методы
 */
CalcClass.Helper = {

    /**
     * Склонение существительного, в зависимости от количества
     *
     * @param int count
     *        количество
     * @param string[] forms
     *        словоформы (1, 2-4, 5-)
     * @return string
     */
    'ending': (function(count, forms) {
        count = count % 100;
        if ((count >= 5) && (count <= 20)) {
            return forms[2];
        }
        count = count % 10;
        if (count == 1) {
            return forms[0];
        }
        if (count == 0) {
            return forms[2];
        }
        if (count < 5) {
            return forms[1];
        }
        return forms[2];
    }),
    
    numberFormat: function(number, decimals, dec_point, thousands_sep) {

	    var i, j, kw, kd, km;

	    // input sanitation & defaults
	    if( isNaN(decimals = Math.abs(decimals)) ){
		    decimals = 0;
	    }
	    if( dec_point == undefined ){
		    dec_point = ",";
	    }
	    if( thousands_sep == undefined ){
		    thousands_sep = " ";
	    }

	    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

	    if( (j = i.length) > 3 ){
		    j = j % 3;
	    } else{
		    j = 0;
	    }

	    km = (j ? i.substr(0, j) + thousands_sep : "");
	    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
	    //kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
	    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");


	    return km + kw + kd;
    },


    'eoc': null
};

