/*
|
|simulation.js
|
|
|現金化サイトのシミュレーションを提供。
|
|
|
|
*/

var simulation=
{
    rate:'',
    back:'',
    get:'',
    count:'',
    interest:[],
    total:0,
    
    get_count:function(args)
    {
        
        this.rate=parseFloat(document.getElementById(args.rate).value/100);
        this.get=parseInt(document.getElementById(args.get).value*10000);
        this.back=parseInt(document.getElementById(args.back).value*1000);
        
        if(isNaN(this.rate)||isNaN(this.get)||isNaN(this.back))
            document.getElementById(args.set).value="";
        
        var interest=0;
        
        interest+=Math.ceil((this.get*this.rate/365)*30);
        var counter=0;
        
        while(this.get>this.back)
        {
            interest+=Math.ceil((this.get*this.rate/365)*30);
            counter+=1;
            this.get-=this.back;
        }
        
        this.get+=interest;
        
        while(this.get>0)
        {
            counter+=1;
            this.get-=this.back;
        }
        
        this.counter=counter;
        
        if(this.counter==0)
            document.getElementById(args.set).value="";
        else
            document.getElementById(args.set).value=this.counter;
        
    },
    
    get_back:function(args)
    {
        this.rate=parseFloat(document.getElementById(args.rate).value/100);
        this.get=parseInt(document.getElementById(args.get).value*10000);
        this.count=parseInt(document.getElementById(args.count).value);
        
        if(isNaN(this.rate)||isNaN(this.get)||isNaN(this.count))
            document.getElementById(args.set).value="";
        
        var interest=0;
        var gets=this.get;
        var back=Math.ceil(this.get/this.count);
        
        
        interest+=(this.get*this.rate/365)*30;
        this.get=this.get-back;
        var c=1;
        
        while(this.get>0)
        {
            interest+=((this.get*this.rate)/365)*30;
            this.get=this.get-back;
            c+=1;
        }
        
        var result=Math.ceil(back+(interest/c));
        
        
        if(isNaN(result))
            document.getElementById(args.set).value="";
        else
            document.getElementById(args.set).value=result;
    },
    
    get_interest:function(args)
    {
        this.rate=parseFloat(document.getElementById(args.rate).value/100);
        this.get=parseInt(document.getElementById(args.get).value*10000);
        this.span=parseInt(document.getElementById(args.span).value);
        
        if(isNaN(this.rate)||isNaN(this.get)||isNaN(this.span))
            document.getElementById(args.set).value="";
            
        var result=this.get_int_month(this.rate,this.get,this.span);
        
        if(isNaN(result))
            document.getElementById(args.set).value="";
        else
            document.getElementById(args.set).value=result;
    },
    
    //その一月分の利息を計算
    get_int_month:function(nenritu,ganpon,span)
    {
        return Math.ceil(ganpon*nenritu/365*span);
    }
}



