﻿/****************************** Grunt ******************************/
function Grunt(id, pow, rabat, rodz_podl) {
    //atrybuty
    var base = new Material(id)
    base.init()
    var _id         = base.dajId()
    var _nazwa      = base.dajNazwe()
    var _pow        = pow
    var _rodz_podl  = rodz_podl
    var _zuzycie
    var opakowania  = new Array()
    var ceny        = new Array()
    var _pak        = new Array()          //tab asoc: masa => liczba paczek
    var _cena       = 0
    var _cena_r     = 0
    var _rabat = rabat
          
    //metody
    this.dajId      = base.dajId
    this.dajNazwe   = base.dajNazwe

    var liczZuzycie = function() {
        if(_id == 'BT 26')
            pom = 0.25 * _pow
        else if(_id == "CT 17")
            pom = 0.35 * _pow
        //dla CN 94 zaleznie od typu podloza
        else if(_id == "CN 94") {
            if(_rodz_podl == "plyty wiorowe")
                pom = 0.08 * _pow
            else if(_rodz_podl == "deski podlogowe")
                pom = 0.12 * _pow
            else if(_rodz_podl == "plytki ceramiczne i kamienne wew")
                pom = 0.03 * _pow
            else if(_rodz_podl == "beton")
                pom = 0.04 * _pow
            else if(_rodz_podl == "beton komorkowy")
                pom = 0.05 * _pow
            else if(_rodz_podl == "plyty gipsowo-kartonowe")
                pom = 0.03 * _pow
            else if(_rodz_podl == "tynki gipsowe")
                pom = 0.05 * _pow
            else if(_rodz_podl == "jastrychy asfaltowe")
                pom = 0.1 * _pow
            else if(_rodz_podl == "jastrychy z resztkami klejów")
                pom = 0.03 * _pow
            else if(_rodz_podl == "tynki wapienne")
                pom = 0.05 * _pow
            else
                pom = 0
        }
        else if(_id == "CF 42")
            pom = 0.25 * _pow
        else if(_id == "CD 31")
            pom = 0.4 * _pow

        _zuzycie = pom.toFixed(1)
    }  
    var koncowka = function(i) {
        if(opakowania[i] == 1)
            return ""
        else if(opakowania[i] == 2)
            return "y"
        else
            return "ów"
    }
    var inicjujOpakowania = function() {
        if(_id == "BT 26") {
            opakowania[0] = 5
        }
        else if(_id == "CF 42") {
            opakowania[0] = 15
        }
        else if(_id == "CN 94") {
            opakowania[0] = 10
            opakowania[1] = 5
            opakowania[2] = 1
        }
        else if(_id == "CT 17") {
            opakowania[0] = 10
            opakowania[1] = 5
            opakowania[2] = 2
        }
        else if(_id == "CD 31") {
            opakowania[0] = 1
        }
    }
    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 == "CN 94") {
            if(_zuzycie <= 1) {
                _pak[2] = 1
                return
            }
            else if(_zuzycie <= 2) {
                _pak[2] = 2
                return
            }
            else if(_zuzycie <= 3) {
                _pak[2] = 3
                return
            }
            else if(_zuzycie <= 5) {
                _pak[1] = 1
                return
            }
        }
        else if(_id == "CT 17") {
            if(_zuzycie <= 2) {
                _pak[2] = 1
                return
            }
            else if(_zuzycie <= 5) {
                _pak[1] = 1
                return
            }
        }
        else if(_id == "CD 31") {
            _pak[0] = Math.ceil(masa / opakowania[0])
        }
        //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 == "BT 26") {
            ceny[0] = 134.9
        }
        else if(_id == "CN 94") {
            ceny[0] = 153.2
            ceny[1] = 80.5
            ceny[2] = 19.9            
        }
        else if(_id == "CT 17") {
            ceny[0] = 79.2
            ceny[1] = 42.8
            ceny[2] = 19.3         
        }
        else if(_id == "CF 42") {
            ceny[0] = 499.0
        }
        else if(_id == "CD 31") {
            ceny[0] = 160.3
        }

    }
    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]
                if(_id != "CD 31") 
                    kontrolka.innerHTML += "<div class='out_ile'>"
                        +"("+_pak[i]+" x "+opakowania[i]+" litr"+koncowka(i)+") x "
                        +floatToCurr(c_netto*1.22)+"</div>" 
                else 
                    kontrolka.innerHTML += "<div class='out_ile'>"
                        +"("+_pak[i]+" x "+opakowania[i]+" kg) 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>"                   
                }    
            }
        }
    }
}  

