﻿/****************************** Spoina ******************************/
function Spoina(id, pow, rabat, gr, wym_pl, szer_sp) {
    //atrybuty
    var base = new Material(id)
    base.init()
    var _id = base.dajId()
    var _nazwa = base.dajNazwe()
    var _pow        = pow
    var _zuzycie
    var opakowania  = new Array()
    var ceny        = new Array()
    var _pak        = new Array()          //tab asoc: masa => liczba paczek
    var _gr       = gr
    var _wym_pl     = wym_pl
    var _szer_sp    = szer_sp
    var _cena       = 0
    var _cena_r     = 0
    var _rabat = rabat
          
    //metody
    this.dajId = base.dajId
    this.dajNazwe = base.dajNazwe
    var przeliczSpoine = function(zuzycie, szer_kat, szer_uz) {
        var pom = szer_uz / szer_kat
        return zuzycie * pom * _pow
    }       
    var liczZuzycie = function() {
        if((_id == 'CE 33') || (_id == 'CE 40')) {    
            if(_wym_pl == 5) {                
                if(_szer_sp == 2) 
                    pom = 0.5 * _pow
                else if(_szer_sp == 3) 
                    pom = 0.7 * _pow
                else
                    pom = przeliczSpoine(0.7, 3, _szer_sp)
            }
            else if(_wym_pl == 10) {
                if(_szer_sp == 2)
                    pom = 0.4 * _pow
                else
                    pom = przeliczSpoine(0.4, 2, _szer_sp)
            }
            else if(_wym_pl == 15) {
                if(_szer_sp == 3)
                    pom = 0.4 * _pow
                else
                    pom = przeliczSpoine(0.4, 3, _szer_sp)
            }
            else if(_wym_pl == 20) {
                if(_szer_sp == 3)
                    pom = 0.4 * _pow
                else
                    pom = przeliczSpoine(0.4, 3, _szer_sp)
            }
            else
                pom = przeliczSpoine(0.4, 3, _szer_sp)
        }
        else if((_id == 'CE 35') || (_id == 'CE 43')) {    
            if(_wym_pl <= 10) {
                if(_szer_sp == 5)
                    pom = 1.2 * _pow
                else
                    pom = przeliczSpoine(1.2, 5, _szer_sp)
            }
            else if(_wym_pl <= 20) {
                if(_szer_sp == 5)
                    pom = 0.6 * _pow
                else if(_szer_sp == 8)
                    pom = 0.9 * _pow
                else
                    pom = przeliczSpoine(0.9, 8, _szer_sp)
            }
            else if(_wym_pl <= 30) {
                if(_szer_sp == 10)
                    pom = 0.8 * _pow
                else
                    pom = przeliczSpoine(0.8, 10, _szer_sp)
            }
            else {
                    pom = przeliczSpoine(0.8, 10, _szer_sp)
            }
        }
        else if(_id == 'CE 44') {
            if(_wym_pl == 5) {
                if(_szer_sp == 4) 
                    pom = 1.6 * _pow
                else
                    pom = przeliczSpoine(1.6, 4, _szer_sp)
            }
            else if(_wym_pl == 10) {
                if(_szer_sp == 4) 
                    pom = 1.2 * _pow
                else
                    pom = przeliczSpoine(1.2, 4, _szer_sp)
            }
            else if(_wym_pl == 15) {
                if(_szer_sp == 6) 
                    pom = 1.0 * _pow
                else
                    pom = przeliczSpoine(1.0, 6, _szer_sp)
            }
            else if(_wym_pl == 20) {
                if(_szer_sp == 6) 
                    pom = 1.1 * _pow
                else if(_szer_sp == 8) 
                    pom = 2.3 * _pow
                else
                    pom = przeliczSpoine(2.3, 8, _szer_sp)
            }
            else if(_wym_pl <= 30) {
                if(_szer_sp == 10) 
                    pom = 1.3 * _pow
                else
                    pom = przeliczSpoine(1.3, 10, _szer_sp)
            }
        }
        else if((_id == 'CE 47') || (_id == 'CE 48')) {
            if(_wym_pl == 5) {
                if(_szer_sp == 4) 
                    pom = 1.3 * _pow
                else
                    pom = przeliczSpoine(1.3, 4, _szer_sp)
            }
            else if(_wym_pl == 10) {
                if(_szer_sp == 4) 
                    pom = 1.0 * _pow
                else
                    pom = przeliczSpoine(1.0, 4, _szer_sp)
            }
            else if(_wym_pl == 15) {
                if(_szer_sp == 6) 
                    pom = 0.8 * _pow
                else
                    pom = przeliczSpoine(0.8, 6, _szer_sp)
            }
            else if(_wym_pl >= 20) {
                if(_szer_sp == 6) 
                    pom = 0.9 * _pow
                else if(_szer_sp == 8) 
                    pom = 1.9 * _pow
                else
                    pom = przeliczSpoine(1.9, 8, _szer_sp)
            }
        }
        else if(_id == 'CE 42')
            pom = 0.4 * _pow
        _zuzycie = pom.toFixed(1)
    }  
    var inicjujOpakowania = function() {
        if(_id == "CE 33") {
            if(_gr == 1) {
                opakowania[0] = 25
                opakowania[1] = 5
                opakowania[2] = 2
            }
            else {
                opakowania[0] = 5
                opakowania[1] = 2
            }
        }
        else if((_id == 'CE 35') || (_id == "CE 43")) {
            opakowania[0] = 25
            opakowania[1] = 5
        }
        else if(_id == "CE 40") {
            opakowania[0] = 5
            opakowania[1] = 2
        }
        else if(_id == "CE 44") {
            opakowania[0] = 10
        }
        else if((_id == 'CE 47') || (_id == "CE 48") || (_id == "CE 42")) {
            opakowania[0] = 5
        }
    }
    var pakuj = function() {
        var k;
        for(k = 0; k < opakowania.length; k++)
            _pak[k] = 0
        if((_id == "CE 35") || (_id == "CE 43")) {
            if(_zuzycie < 5) {
                _pak[1] = 1
                return
            }
            else if(_zuzycie <= 10) {
                _pak[1] = 2
                return
            }
        }
        //pakujemy zaczynajac od najwiekszej paczki
        var masa = _zuzycie
        var reszta
        var i = 0;
        var ile_paczek = 0;
        //opakowania.reverse()
        if(opakowania.length > 1) {
            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]++;
        }
        else 
            _pak[0] = Math.ceil(_zuzycie / opakowania[0])
    }
    //Inicjacja tablicy cen
    var inicjujCeny = function() {
        if(_id == "CE 33") {
            if(_gr == 1){
                ceny[0] = 63.5
                ceny[1] = 15.8
                ceny[2] = 7.9
            }
            else if(_gr == 2) {
                ceny[0] = 27.2
                ceny[1] = 13.8
            }
            else if(_gr == 3) {
                ceny[0] = 41.8
                ceny[1] = 20.9            
            }
        }
        else if(_id == "CE 35") {
            if(_gr == 1){
                ceny[0] = 49.9
                ceny[1] = 15.1
            }
            else if(_gr == 2) {
                ceny[0] = 77.9
                ceny[1] = 23.5
            }
        }
        else if(_id == "CE 40") {
            if(_gr == 1){
                ceny[0] = 25.7
                ceny[1] = 14.1
            }
            else if(_gr == 2) {
                ceny[0] = 35.2
                ceny[1] = 19.1
            }
            else if(_gr == 3) {
                ceny[0] = 55.0
                ceny[1] = 29.9            
            }
        }
        else if(_id == "CE 43") {
            if(_gr == 1){
                ceny[0] = 79.3
                ceny[1] = 28.1
            }
            else if(_gr == 2) {
                ceny[0] = 107.7
                ceny[1] = 38.6
            }
            else if(_gr == 3) {
                ceny[0] = 141.7
                ceny[1] = 49.9            
            }
        }
        else if(_id == "CE 44") {
                ceny[0] = 248.6
        }
        else if((_id == 'CE 47') || (_id == "CE 48")) {
                ceny[0] = 213.4
        }
        else if(_id == "CE 42") {
                ceny[0] = 1.0
        }
    }
    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.dajPlytki = function() {
        return _wym_pl
    }
    this.dajSzerSpoiny = function() {
        return _szer_sp
    }
    this.dajZuzycie = function() {
        return _zuzycie
    }
    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]+" 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>"                   
                }    
            }
        }
    }
} 

