//alapadatok és változók
var changed_div = '';

var alapanyagok = new Array('gomb_cd', 'gomb_dvd', 'gomb_dvd9', 'gomb_blue_ray', 'gomb_mini_cd', 'gomb_mini_dvd');
var muveletek = new Array('gomb_nyomtatas', 'gomb_adatrogzites', 'gomb_vizallo_szitalakk', 'gomb_offset_nyomas');
var fedetseg = new Array('gomb_50_alatt', 'gomb_50_felett');
var tokok_cd = new Array('gomb_cd_normal', 'gomb_cd_slim', 'gomb_cd_dupla', 'gomb_cd_karton', 'gomb_cd_papirtasak', 'gomb_cd_pvc');
var tokok_dvd = new Array('gomb_dvd_normal', 'gomb_dvd_slim', 'gomb_dvd_normal_dupla', 'gomb_dvd_slim_dupla', 'gomb_dvd_papirtasak', 'gomb_dvd_pvc');
var tokok_cd_dvd = new Array('gomb_cd_normal', 'gomb_cd_slim', 'gomb_cd_dupla', 'gomb_cd_karton', 'gomb_cd_papirtasak', 'gomb_cd_pvc','gomb_dvd_normal', 'gomb_dvd_slim', 'gomb_dvd_normal_dupla', 'gomb_dvd_slim_dupla', 'gomb_dvd_papirtasak', 'gomb_dvd_pvc');
var tokok_mini = new Array('gomb_cd_dvd_mini_slim', 'gomb_cd_dvd_mini_pvc');
var tok_szin = new Array('gomb_tok_atlatszo', 'gomb_tok_fekete', 'gomb_tok_feher', 'gomb_tok_offset');
var borito = new Array('gomb_borito_cd_elolap_1', 'gomb_borito_cd_elolap_2', 'gomb_borito_cd_elolap_4', 'gomb_borito_cd_hatlap_1', 'gomb_borito_cd_hatlap_2', 'gomb_borito_dvd_elolap');
var csomagolas = new Array('gomb_zsugorfolia');
var gyartasi_ido = new Array('5_munkanap', '3_munkanap', '1_munkanap');

//interaktív függvények
function gombOnclick(gomb) {
    changed_div = gomb.id;
    
    if (document.getElementById(changed_div).className == 'gomb_disabled')
        return;
    //alert(document.getElementById(changed_div).className);
    if (gomb.className == 'gomb_off' || gomb.className == 'gomb_onMouse') {
        gomb.className = 'gomb_on';
    } else if (gomb.className == 'gomb_on'){
        gomb.className = 'gomb_off';        
    }
    state_setting();
}

function gombOnMouseOver(gomb) {
    if (!(gomb.className == 'gomb_on' || gomb.className == 'gomb_disabled')) {
        //alert("asdf");
        gomb.className = 'gomb_onMouse';
    }
}

function gombOnMouseOut(gomb) {
    if (!(gomb.className == 'gomb_on' || gomb.className == 'gomb_disabled')) {
        gomb.className = 'gomb_off';
    }
}

function checkSzamolas() {
    isRight = true;
    //A darabszámnak kötelezően ki kell lennie töltve
    if (document.getElementById('db').value == '' || document.getElementById('db').value<=0) {
        isRight = false;
        alert('A darabszám kötelezően kitöltendő mező!');
    }
    //ha offset ki van pipálva és 1000 alatt van a db szám akkor hibaüzi, kivéve ha blue ray, mert akkor 500 :)
    if (isRight == true && (isElementOnStateById('gomb_offset_nyomas') == true && isElementOnStateById('gomb_blue_ray') == false && document.getElementById('db').value<1000) || (isElementOnStateById('gomb_offset_nyomas') == true && isElementOnStateById('gomb_blue_ray') == true && document.getElementById('db').value<500) ) {
        isRight = false;
        if (isElementOnStateById('gomb_blue_ray') == false) {
            alert('Offset nyomtatás esetén a minimum darabszám 1000!');
        } else {
            alert('Blu Ray Offset nyomtatás esetén a minimum darabszám 500!');
        }
    }
    
    return isRight;
}

function szamolClick() {
    //ellenőrzések
    isRight = checkSzamolas();
    
    if (isRight == true) {
        setSelectedElement();    
        document.getElementById('action').value='calc';
        document.forms[0].submit();
    }
}

function ajanlagKuldesMagamnak() {
    //ellenőrzések
    isRight = checkSzamolas();
    
    if (isRight == true) {
        setSelectedElement();    
        document.getElementById('action').value='ajanlat_magamnak';
        //alert(document.getElementById('e_mail_magamnak').value);
        
        document.getElementById('ajanlatMagamnak').style.display = 'block';
        //document.getElementById('szamol').style.display = 'none';
        document.getElementById('ajanlatNekunk').style.display = 'none';
    }
}

function ajanlagKuldesNekunk() {
    //ellenőrzések
    isRight = checkSzamolas();
    
    if (isRight == true) {
        setSelectedElement();    
        document.getElementById('action').value='ajanlat_nekunk';
        
        
        document.getElementById('szamol').style.display = 'none';
        document.getElementById('ajanlatMagamnak').style.display = 'none';
document.getElementById('ajanlatNekunk').style.display = 'block';
    }
}

//segédfüggvények
//a paraméterbe kapott változóról eldönti, hogy tömb-e
function isArray(obj) {
    return obj.constructor == Array;
}
//a paraméterben kapot értéket megkeresi a paraméterben kapott tömbben
function inTomb(aktElem, tomb) {
    for (i = 0;i<tomb.length;i++) {
        if (aktElem == tomb[i]) {//csak az legyen bejelölve, akit kiválasztottunk
            return true;
        }//if
    }//for
    return false;
}
//letilt egy egész tömböt vagy egy adott elemet, a paraméter típusától függően
function elemForbiden(tomb) {
    if (isArray(tomb) == true) {
        for (i = 0;i<tomb.length;i++) {
            document.getElementById(tomb[i]).className='gomb_disabled';
        }
    } else {
        document.getElementById(tomb).className='gomb_disabled';
    }    
}
//engedélyez egy egész tömböt vagy egy adott elemet, a paraméter típusától függően, csak a disabledeket oldja fel!
function elemPermit(tomb) {
    if (isArray(tomb) == true) {
        for (i = 0;i<tomb.length;i++) {
            if (document.getElementById(tomb[i]).className=='gomb_disabled') 
                document.getElementById(tomb[i]).className='gomb_off';
        }
    } else {
        if (document.getElementById(tomb).className=='gomb_disabled')
            document.getElementById(tomb).className='gomb_off';
    }    
}

//off státuszba rak egy egész tömböt vagy egy adott elemet, a paraméter típusától függően!
function setElemStateOff(tomb) {
    if (isArray(tomb) == true) {
        for (i = 0;i<tomb.length;i++) {
                document.getElementById(tomb[i]).className='gomb_off';
        }
    } else {
            document.getElementById(tomb).className='gomb_off';
    }    
}

//adott tömbben kezeli hogy egyszerre egy elem legyen bekapcsolva
function uniqueSelection(aktElem, tomb, kotelezo) {
    for (i = 0;i<tomb.length;i++) {
        if (aktElem != tomb[i]) {//csak az legyen bejelölve, akit kiválasztottunk
            if (document.getElementById(tomb[i]).className != 'gomb_disabled') 
                document.getElementById(tomb[i]).className='gomb_off';
        }//if
    }//for
    if (document.getElementById(aktElem).className != 'gomb_disabled' && kotelezo == true) 
        document.getElementById(aktElem).className='gomb_on';//ha véletlenül kikapcsolta volna az egyetlen bekapcsolt elemet, azt nem hagyjuk neki, kell lennie default értéknek
}

//visszatér egy tömb azon elemével vagy elemeivel amelyek bekapcsolt állapotban vannak. unique == true akkor egy elemmel tér vissza, ha false akkor az összessel ";"-el elválasztva
function selectedElementIndex(tomb, unique) {
    retVal = '-2';
    for (i = 0;i<tomb.length;i++) {
        if (document.getElementById(tomb[i]).className=='gomb_on')
            if (unique == true) {
                retVal = i;
                break;
            } else {
                if (retVal == '-2')
                    retVal = '';
                if (retVal.length>=1) {
                    retVal += ';';
                }
                retVal += i;
            }
    }

    return retVal;
}

//adott elemet vagy elemeket on státuszba helyez
function setGombSelectionByIndex(index, tomb) {

    if (index == -2)
        return;
    if (isArray(tomb) == true && index[0] != undefined && isArray(index) == true) {
        for (i = 0;i<index.length;i++)
            document.getElementById(tomb[index[i]]).className='gomb_on';
    } else {
        document.getElementById(tomb[index]).className='gomb_on';
    }
}

//összerakja a submitoláshoz szükséges stringet
function setSelectedElement() {
    var selectedElement = '';
    //alapanyag beállítás
    selectedElement = selectedElementIndex(alapanyagok,true) + '_';
    //műveletek beállítása
    selectedElement += selectedElementIndex(muveletek,false) + '_';
    //fedettség beállítás
    selectedElement += selectedElementIndex(fedetseg,true) + '_';
    //tok beállítás
    selectedElement += selectedElementIndex(getTokTomb(), true) + '_';
    /*if (document.getElementById('cd_tok').style.display != 'none') {
        selectedElement += selectedElementIndex(tokok_cd,true) + '_';
    } else if (document.getElementById('dvd_tok').style.display != 'none') {
        selectedElement += selectedElementIndex(tokok_dvd,true) + '_';            
    } else if (document.getElementById('mini_cd_dvd_tok').style.display != 'none') {
        selectedElement += selectedElementIndex(tokok_mini,true) + '_';
    }*/
    //tok szín beállítás
    selectedElement += selectedElementIndex(tok_szin,true) + '_';
    //borító
    selectedElement += selectedElementIndex(borito,false) + '_';
    //csomagolás
    selectedElement += selectedElementIndex(csomagolas,true) + '_';
    //gyártási idő
    selectedElement += selectedElementIndex(gyartasi_ido,true);
    
    
    document.getElementById('selected_element').value = selectedElement;
}
//tok beállítás
function setTok(elem) {
    setElemStateOff(tokok_cd);
    setElemStateOff(tokok_dvd);
    setElemStateOff(tokok_mini);
    
    if (elem == 'gomb_cd') {
        document.getElementById('dvd_tok').style.display = 'block';
        document.getElementById('mini_cd_dvd_tok').style.display = 'none';
        document.getElementById('cd_tok').style.display = 'block';
    } else if (elem == 'gomb_dvd' || elem == 'gomb_dvd9' || elem == 'gomb_blue_ray') {
        document.getElementById('dvd_tok').style.display = 'block';
        document.getElementById('mini_cd_dvd_tok').style.display = 'none';
        document.getElementById('cd_tok').style.display = 'block';
    } else if (elem == 'gomb_mini_cd' || elem == 'gomb_mini_dvd') {
        document.getElementById('dvd_tok').style.display = 'none';
        document.getElementById('mini_cd_dvd_tok').style.display = 'block';
        document.getElementById('cd_tok').style.display = 'none';                
    }     
    
    /*if (elem == 'gomb_cd') {
        document.getElementById('dvd_tok').style.display = 'none';
        document.getElementById('mini_cd_dvd_tok').style.display = 'none';
        document.getElementById('cd_tok').style.display = 'block';
    } else if (elem == 'gomb_dvd' || elem == 'gomb_dvd9' || elem == 'gomb_blue_ray') {
        document.getElementById('dvd_tok').style.display = 'block';
        document.getElementById('mini_cd_dvd_tok').style.display = 'none';
        document.getElementById('cd_tok').style.display = 'none';
    } else if (elem == 'gomb_mini_cd' || elem == 'gomb_mini_dvd') {
        document.getElementById('dvd_tok').style.display = 'none';
        document.getElementById('mini_cd_dvd_tok').style.display = 'block';
        document.getElementById('cd_tok').style.display = 'none';                
    } */
}
//adott elemet vagy elemeket vizsgál, hogy van-e közöttük on állapotú
function isElementOnStateById(divID) {
    if (isArray(divID) == true) {
        for (i = 0;i<divID.length;i++) {
            if (document.getElementById(divID[i]).className == 'gomb_on')
                return true;
        }
    } else {
        return document.getElementById(divID).className == 'gomb_on'
    }
    
    return null;
}

function isCD() {
    return document.getElementById('cd_tok').style.display != 'none'
}

function isDVD() {
    return document.getElementById('dvd_tok').style.display != 'none'    
}

function isMini() {
    return document.getElementById('mini_cd_dvd_tok').style.display != 'none'    
}

function getTokTomb() {
    if (isCD()) {
        return tokok_cd_dvd;
    } else if (isDVD()) {
        return tokok_cd_dvd;
    } else if (isMini()) {
        return tokok_mini;        
    }
    return null;
}

//alkalmazás logika
/*
 Beállítja a tiltott elemeket
*/
function setForbiddenElement() {
    elemPermit(muveletek);
    elemPermit(getTokTomb());
    elemPermit(tok_szin);
    elemPermit(fedetseg);
    elemPermit(borito);
    elemPermit(csomagolas);
    elemPermit(gyartasi_ido);
    
    //ha blue ray aktív => csak offset nyomás és adatrögzítés aktív
    if (isElementOnStateById('gomb_blue_ray') == true) {
        elemForbiden(new Array('gomb_nyomtatas','gomb_vizallo_szitalakk'));
        document.getElementById('gomb_adatrogzites').className = 'gomb_on'
        document.getElementById('gomb_offset_nyomas').className = 'gomb_on'
    }
    
    //ha cd akkor elem beállítás
    if (isCD()) {
        if (isElementOnStateById(new Array('gomb_cd_normal','gomb_cd_slim','gomb_cd_dupla')) == true) {
            elemForbiden(new Array('gomb_tok_feher','gomb_tok_offset'));            
        }
        if (isElementOnStateById(new Array('gomb_cd_papirtasak')) == true) {
            elemForbiden(new Array('gomb_tok_fekete'));            
        }
        if (isElementOnStateById(new Array('gomb_cd_karton')) == true) {
            elemForbiden(new Array('gomb_tok_atlatszo','gomb_tok_fekete'));            
        }
        if (isElementOnStateById('gomb_cd_pvc') == true) {
            elemForbiden(new Array('gomb_tok_fekete','gomb_tok_feher','gomb_tok_offset'));            
        }
        
        if (isElementOnStateById(new Array('gomb_cd_papirtasak','gomb_cd_karton','gomb_cd_pvc')) == true) {
            elemForbiden(borito);            
        }
    }
    if (isDVD()) {
        if (isElementOnStateById(new Array('gomb_dvd_normal','gomb_dvd_slim','gomb_dvd_normal_dupla')) == true) {
            elemForbiden(new Array('gomb_tok_feher','gomb_tok_offset'));            
        }
        if (isElementOnStateById('gomb_dvd_slim_dupla') == true) {
            elemForbiden(new Array('gomb_tok_atlatszo','gomb_tok_feher','gomb_tok_offset'));            
        }
        
        if (isElementOnStateById('gomb_dvd_papirtasak') == true) {
            elemForbiden(new Array('gomb_tok_fekete'));            
        }
        
        if (isElementOnStateById('gomb_dvd_pvc') == true) {
            elemForbiden(new Array('gomb_tok_fekete','gomb_tok_feher','gomb_tok_offset'));
        }
    }
    
    if (isMini()) {
        elemForbiden(new Array('gomb_tok_fekete','gomb_tok_feher','gomb_tok_offset'));
        elemForbiden(borito);
    }
    
    if (isElementOnStateById('gomb_offset_nyomas') == true) {
        elemForbiden(new Array('gomb_vizallo_szitalakk','gomb_nyomtatas','gomb_50_alatt', 'gomb_50_felett'));
    }
    
    if (isElementOnStateById(tokok_cd) == true) {
        elemForbiden('gomb_borito_dvd_elolap');
    }
    
    if (isElementOnStateById(tokok_dvd) == true) {
        elemForbiden(new Array('gomb_borito_cd_elolap_1', 'gomb_borito_cd_elolap_2', 'gomb_borito_cd_elolap_4', 'gomb_borito_cd_hatlap_1', 'gomb_borito_cd_hatlap_2'));    
    }

            
    //alert(isElementOnStateById(getTokTomb()));
    //if (isElementOnStateById)
    /*
        - nyomtatás és fedetség kell
    */
    //amíg nincs müvelet minden tiltva van!
    if (isElementOnStateById(muveletek) == null) {
        elemForbiden(fedetseg);
        elemForbiden(getTokTomb());
        elemForbiden(tok_szin);
        elemForbiden(borito);
        elemForbiden(csomagolas);
        elemForbiden(gyartasi_ido);
    }
    //ha nyomtatás aktív, de fedettség nincs bepippantva => letiltani minden mást
    if (isElementOnStateById('gomb_nyomtatas') == true && isElementOnStateById(fedetseg) == null) {
        elemForbiden(getTokTomb());
        elemForbiden(tok_szin);
        elemForbiden(borito);
        elemForbiden(csomagolas);
        elemForbiden(gyartasi_ido);
    } else if (isElementOnStateById('gomb_nyomtatas') == false) {
        elemForbiden(fedetseg);
        elemForbiden('gomb_vizallo_szitalakk');
    }
    
    if (isElementOnStateById(getTokTomb()) == null) {
        elemForbiden(tok_szin);
        elemForbiden(borito);
    } else if (isElementOnStateById(tok_szin) == null) {
        //alert(isElementOnStateById(getTokTomb(tok_szin)));
        //az első tok szin-t aktíválni
        for (i = 0;i<tok_szin.length;i++) {
            if (document.getElementById(tok_szin[i]).className != 'gomb_disabled') {
                document.getElementById(tok_szin[i]).className = 'gomb_on';
                break;
            }
        }
    }
    //gyártási idő default érték beállítása
    if (document.getElementById(gyartasi_ido[0]).className != 'gomb_disabled' && isElementOnStateById(gyartasi_ido) == null) {
        document.getElementById(gyartasi_ido[0]).className = 'gomb_on';
    }
}
//reseteli az alapállapotra az adott oszlopot vagy oszlopokat
function reset(tomb) {
   for (i = 0; i<tomb.length;i++) {
        if (document.getElementById(tomb[i]).className != 'gomb_disabled') {
            document.getElementById(tomb[i]).className = 'gomb_off';
        }
   }
}

//inicializál post után
function init(selected_element) {
    //alert(selected_element);
    if (selected_element != "alapbeallitas") {
    //ha itt vagyunk akkor le kell vennünk a gomb_on-t az első elemről
        document.getElementById('gomb_cd').className='gomb_off';

        elements = selected_element.split('_');

        setGombSelectionByIndex(elements[0],alapanyagok);
        //műveletek beállítás

        index = elements[1].split(';');
        setGombSelectionByIndex(index,muveletek);
    
        setGombSelectionByIndex(elements[2],fedetseg);
    
        //tok beállítások
        setTok(alapanyagok[elements[0]]);
        //alert(elements[0]);
        v = getTokTomb();
        //alert(v[10]);
        //alert(isArray(elements[3]));
        setGombSelectionByIndex(elements[3],getTokTomb());

        setGombSelectionByIndex(elements[4],tok_szin);
        index = elements[5].split(';');
        setGombSelectionByIndex(index,borito);
        //alert(elements[6]);
        setGombSelectionByIndex(elements[6],csomagolas);    
        setGombSelectionByIndex(elements[7],gyartasi_ido);
    
        setForbiddenElement();
              
    } else {
        setForbiddenElement();        
    }
}

//gombnyomásra beállítja a szűkséges dolgokat (elemek tiltása stb.)
function state_setting() {
    changed_column = '';
    //alapanyag vizsgálat
    if (changed_column == '' && inTomb(changed_div, alapanyagok) == true) {
        changed_column = 'alapanyagok';
    }
    //műveletek
    if (changed_column == '' && inTomb(changed_div, muveletek) == true) {
        changed_column = 'muveletek';
    }    
    //fedettség vizsgálat
    if (changed_column == '' && inTomb(changed_div, fedetseg) == true) {
        changed_column = 'fedettseg';
    }
    //tok vizsgálat
    if (changed_column == '' && inTomb(changed_div, getTokTomb()) == true) {
        changed_column = 'tok';
    }
    //tok szín vizsgálat
    if (changed_column == '' && inTomb(changed_div, tok_szin) == true) {
        changed_column = 'tok_szin';
    }
    //borító vizsgálat
    if (changed_column == '' && inTomb(changed_div, borito) == true) {
        changed_column = 'borito';
    }
    //gyártási idő vizsgálat
    if (changed_column == '' && inTomb(changed_div, gyartasi_ido) == true) {
        changed_column = 'gyartasi_ido';
    }    
    switch(changed_column) {
        case 'alapanyagok': {
            uniqueSelection(changed_div, alapanyagok, true);
            setTok(changed_div);
            
            reset(muveletek);
            reset(fedetseg);
            reset(getTokTomb());
            reset(tok_szin);
            reset(csomagolas);
            reset(borito);
            break;
        }//case alapanyagok
        case 'muveletek': {
            if (changed_div == 'gomb_nyomtatas' && isElementOnStateById('gomb_nyomtatas') == true)//az 50% fölötti rész lesz kiemelve
            {
                document.getElementById('gomb_50_felett').className = 'gomb_on';
            }
            break;
        }
        case 'fedettseg': {
            uniqueSelection(changed_div, fedetseg, true);
            break;
        }//case fedettség
        case 'tok': {
            uniqueSelection(changed_div, getTokTomb(), false);
            break;            
        }
        case 'tok_szin': {
            uniqueSelection(changed_div, tok_szin, true);
            break;
        }//case tok szín
        case 'borito': {
            if (changed_div == borito[0] || changed_div == borito[1] || changed_div == borito[2] || changed_div == borito[5])
                uniqueSelection(changed_div, new Array(borito[0], borito[1], borito[2], borito[5]), false);
            if (changed_div == borito[3] || changed_div == borito[4])                
                uniqueSelection(changed_div, new Array(borito[3], borito[4]), false);
            break;
        }//case borító
        case 'gyartasi_ido': {
            uniqueSelection(changed_div, gyartasi_ido, true);
            break;
        }//case gyártási idő
    }//switch

    setForbiddenElement();
    //ha offset be van nyomva akkor a minimum rendelés 1000 db.
    /*if (isElementOnStateById('gomb_offset_nyomas')) {
        db = document.getElementById('db').value;
        /*if (!(db>=1000)) {
            document.getElementById('db').value = '1000';
            document.getElementById('offset_warning').style.display = 'block';
        } else {
            document.getElementById('offset_warning').style.display = 'none';
        }
    } else {
        document.getElementById('offset_warning').style.display = 'none';
    }*/
}

