﻿/****************************** Grunt ******************************/
function Emulsja(id, pow, rabat, gr_ws) {
    //atrybuty
    var base = new Material(id)
    base.init()
    var _id         = base.dajId()
    var _nazwa      = base.dajNazwe()
    var _pow        = pow
    var _zuzycie    = 0
    var opakowania  = new Array()
    var ceny        = new Array()
    var _pak        = new Array()          //tab asoc: masa => liczba paczek
    var _gr_ws      = gr_ws
    var _cena       = 0
    var _cena_r     = 0
    var _rabat      = rabat
          
    //metody
    this.dajId      = base.dajId
    this.dajNazwe   = base.dajNazwe

    var liczZuzycie = function() {
        if(_id == "CC 81") {
            if(_gr_ws == 0) 
                pom2 = 0
            else if(_gr_ws <= 5)
                pom2 = 0.06
            else if((_gr_ws > 5) && (_gr_ws <= 15))
                pom2 = 0.04
            else if((_gr_ws > 15) && (_gr_ws <= 30))
                pom2 = 0.03
            else
                pom2 = 0.02
            pom = 0.125 * _pow + _pow * (_gr_ws / 100) * pom2
        }
        if(_id == "CC 83") {
            pom = _pow * _gr_ws * 0.12
        }
        _zuzycie = pom.toFixed(1)
    }  
    var inicjujOpakowania = function() {
        if(_id == "CC 81") {
            opakowania[0] = 10
            opakowania[1] = 5
            opakowania[2] = 2
        }
        if(_id == "CC 83") {
            opakowania[0] = 10
            opakowania[1] = 5
            opakowania[2] = 1
        }
    }
    var koncowka = function(i) {
        if(opakowania[i] == 1)
            return ""
        else if(opakowania[i] == 2)
            return "y"
        else
            return "ów"
    }
    var pakuj = function() {
        var k;
        for(k = 0; k < opakowania.length; k++)
            _pak[k] = 0
        //jezeli zuzycie jest male pakujemy do mniejszych paczek
        if(_id == "CC 81") {
            if(_zuzycie <= 2) {
                _pak[2] = 1
                return
            }
            else if(_zuzycie <= 5) {
                _pak[1] = 1
                return
            }
        }
        else if(_id == "CC 83") {
            if(_zuzycie <= 1) {
                _pak[2] = 1
                return
            }
            else if(_zuzycie <= 2) {
                _pak[2] = 2
                return
            }
            else if(_zuzycie <= 3) {
                _pak[3] = 3
                return
            }
            else if(_zuzycie <= 5) {
                _pak[1] = 1
                return
            }
        }
        //jezeli > 10, pakujemy do wiekszych
        //pakujemy zaczynajac od najwiekszej paczki
        var masa = _zuzycie
        var reszta
        var i = 0;
        var ile_paczek = 0;
        //opakowania.reverse()
        while(i < opakowania.length) {
            if(masa > 0){
                ile_paczek = Math.floor(masa / opakowania[i])
                if(ile_paczek == 0) {
                    _pak[i] = _pak[i] + 1;
                    return;
                }
                else {
                    _pak[i] = ile_paczek
                    reszta = masa - ile_paczek * opakowania[i]
                    masa = masa - (masa - reszta)
                    i++
                }
            }
            else
                i++
        }
        if(masa > 0)
            _pak[i - 1]++;
    }
    //Inicjacja tablicy cen
    var inicjujCeny = function() {
       if(_id == "CC 81") {
            ceny[0] = 239.2
            ceny[1] = 126.2
            ceny[2] = 36.1            
        }
        else if(_id == "CC 83") {
            ceny[0] = 362.2
            ceny[1] = 188.5
            ceny[2] = 43.2         
        }
    }
    this.dajCene = function() {
        var pom = _cena.toFixed(2)
        return pom
    }
    this.dajCeneR = function() {
        var pom = _cena_r.toFixed(2)
        return pom
    }    
    this.dajLiczbePaczkek = function(i) {
        var pom =  _pak[i]
        return pom
    }
    this.dajPaczke = function(i) {
        var pom =  opakowania[i]
        return pom
    }
    this.dajZuzycie = function() {
        return _zuzycie
    }
    this.dajNazwe = function() {
        return _nazwa
    }
    //ta metoda realizuje obliczenia dla materialu
    this.obliczenia = function() {
        liczZuzycie()
        inicjujOpakowania()
        inicjujCeny()
        pakuj()
    }
    this.pisz = function() {
        var kontrolka = document.getElementById("wyniki");
        kontrolka.innerHTML += "<div class='out_mat'>"
        +_id+" ("+_nazwa+")</div>"
        
        var i
        for(i = 0; i < opakowania.length; i++) {
            if(_pak[i] > 0) {
                var c_netto = ceny[i]
                _cena += c_netto*1.22*_pak[i]
                kontrolka.innerHTML += "<div class='out_ile'>"
                    +"("+_pak[i]+" x "+opakowania[i]+" litr"+koncowka(i)+") x "
                    +floatToCurr(c_netto*1.22)+"</div>" 
                if(_rabat == 0) {
                    _cena_r = 0
                    kontrolka.innerHTML += "<div class='out_cn_bez_r'>"
                        +floatToCurr(c_netto*1.22*_pak[i])+"</div>";
                }
                else {
                    _cena_r += c_netto * (1 - (_rabat/100)) * _pak[i] * 1.22
                    kontrolka.innerHTML += "<div class='out_cn_minus_r'>"
                        +floatToCurr(c_netto * (1 - (_rabat/100)) * _pak[i] * 1.22)+"</div>"
                    kontrolka.innerHTML += "<div class='out_cn'>"
                        +floatToCurr(c_netto*1.22*_pak[i])+"</div>"                   
                }    
            }
        }
    }
}  

