function number_format(number, decimals, point, separator)
{
	if(!isNaN(number))
	{
		point = point ? point : '.';
		number = number.split('.');
		if(separator)
		{
			var tmp_number = new Array();
			for(var i = number[0].length, j = 0; i > 0; i -= 3)
			{
				var pos = i > 0 ? i - 3 : i;
				tmp_number[j++] = number[0].substring(i, pos);
			}
			number[0] = tmp_number.reverse().join(separator);
		}
		if(decimals && number[1]) 
			number[1] = Math.round(parseFloat(number[1].substr(0, decimals) + '.' + number[1].substr(decimals, number[1].length), 10));
		return(number.join(point));
	}
	else return(null);
}

function currChange()
{
    $("#d_perc").html($("#d_curr").val());
}

function dopChange()
{
    if($("#d_dop").val() == '4')
    {
        $("#d_dop_summ").attr("disabled","disabled");
    }
    else
    {
        $("#d_dop_summ").removeAttr("disabled");
    }
}

$(document).ready(function(){

    function Calc(step,sum,add_sum,percent)
    {
        var period = 12;
        
        sum = parseInt(sum);
        add_sum = parseInt(add_sum);
        percent = parseInt(percent);
        percent = percent/100;
        
        var result = 0;
        var res = 0;
        var res_percent = 0;
        switch (step)
        {
            case '1':
                for(var i=1;i<=period;i++)
                {
                    res = sum * (1 + percent / 12);
                    res_percent = res_percent + res - sum;
                    sum = res + add_sum;
                }
            break;
            case '2':
                while(period>=3)
                {
                    res = sum * Math.pow((1 + percent / 12),3);
                    res_percent = res_percent + res - sum;
                    sum = res + add_sum;
                    period = period-3;
                }
                if(period>0)
                {
                    res = sum * Math.pow((1 + percent / 12),period);
                    res_percent = res_percent + res - sum;
                }
            break;
            case '3':
                while(period>=12)
                {
                    res = sum * Math.pow((1 + percent / 12),12);
                    res_percent = res_percent + res - sum;
                    sum = res + add_sum;
                    period = period-12;
                }
                if(period>0)
                {
                    res = sum * (1 + percent / 12) ^ period;
                    res_percent = res_percent + res - sum;
                }
            break;
            case '4':
                res = sum * Math.pow((1 + percent / 12),period);
                res_percent = res - sum;
            break;
        }
        
        if(!isNaN(res_percent))
        {
            var convert = Math.round(res_percent);
            result = number_format(convert+"",0,"."," ");
        }
        return result;
    }
    
    $("#calc_dep").live('click',function(){
        var sum = $.trim($("#d_summ").val());
        var add_sum = $.trim($("#d_dop_summ").val());
        var percent = $.trim($("#d_perc").html());
        var step = $("#d_dop").val();
        
        var result=0;
        var err = 0;
        if(sum =='' || sum =='0')
        {
            err = 1;
            alert('Ââåäèòå ñóììó âêëàäà');
        }
        if(step != '4' && add_sum=='')
        {
            err = 1;
            alert('Ââåäèòå ñóììó äîïîëíèòåëüíûõ âëîæåíèé');
        }
        
        if(err==0)
        {
            result = Calc(step,sum,add_sum,percent);
            $("#d_result").html(result);
        }
        return false;
    });
    
    if($("#d_curr").length>0)
    {
        var params = {
            changedEl: "#d_curr"
        }
        cuSel(params);
    }
    if($("#d_dop").length>0)
    {
        var params = {
            changedEl: "#d_dop"
        }
        cuSel(params);
    }
    if($("#d_prod").length>0)
    {
        var params = {
            changedEl: "#d_prod"
        }
        cuSel(params);
    }
    
    $("#d_summ, #d_dop_summ").keypress(function(e)
	{
		 //Enter keycode
		var code = (e.keyCode ? e.keyCode : e.which);
		if((code < 58 && code>47) || (code==8) || (code==13) || (code==46))
		{
			return true;
		}
		return false;
	});
    
});
