var oSELECT_COUNTRIES = null;
var intLAST_DIV_FOR_ROW = null;
var intITEM_BEING_SAVED = null;
var intITEM_BEING_SAVED_PARENT = null;

// Klasa JavaScript zawieraj±ca metody zwrotne **********************************************
function hwCallback_items_manage() {}
hwCallback_items_manage.prototype = {
    save_this_item: function(article_array) {
        var picked_item_img = document.getElementById(intITEM_BEING_SAVED_PARENT + "gif_save_as_picked_" + intITEM_BEING_SAVED);
        if(typeof(article_array) == "string") {
            picked_item_img.src = './image/check_off.gif';
            alert(article_array);
            return false;
        }

        if( window.opener != null) {
             window.opener.location.reload();
        }
        
        var short_saved_list = new Object();
        short_saved_list.oDiv       = document.getElementById("div-short-savedList");
        short_saved_list.quantity   = article_array.taczkiInfoTotal.quantity;
        short_saved_list.totalVal   = article_array.taczkiInfoTotal.totalVal;
        
        var quantity = document.getElementById("short_saved_list_quantity");
        var totalVal = document.getElementById("short_saved_list_wartoscZam");
        if(quantity != null && totalVal != null) {
            quantity.innerHTML = short_saved_list.quantity;
            totalVal.innerHTML = short_saved_list.totalVal;
            short_saved_list.oDiv.style.display = "block";
        }

        var picked_item_a = document.getElementById(article_array.id_parent+"a_save_as_picked_"+article_array.id_article);
        var picked_item_input = document.identical_listTable_form.elements[article_array.id_parent+"order_pallets_"+article_array.id_article];

        if(article_array.removed) {
            picked_item_input.value = "";
            picked_item_a.innerHTML = article_array.lang_saved + ' <img class="save-image" id="'+article_array.id_parent+'gif_save_as_picked_'+article_array.id_article+'" src="./image/check_off.gif" alt="" border="0" />';
            picked_item_a.className = "normal";
        }else{
            picked_item_a.innerHTML = article_array.lang_saved + ' <img class="save-image" id="'+article_array.id_parent+'gif_save_as_picked_'+article_array.id_article+'" src="./image/check_on.gif" alt="" border="0" />';
            picked_item_a.className = "orange";
        }
        
        return true;
    },
    
    update_save_list: function(return_array) {
        var update_img_up = document.getElementById("gif_update_up");
        var update_img_down = document.getElementById("gif_update_down");
        update_img_up.innerHTML = update_img_down.innerHTML = '';

        if(typeof(return_array) == "string") {
            alert(return_array);
            return false;
        }
        for(prop in return_array.ss_Taczki) {
            if(prop == '______array') { continue; }
            var item_value_total    = document.getElementById("item-value-total-"+ prop);
            var chItem_value_unit   = document.getElementById("span"+ prop +"-price-for-each + freight-rate");
            var chItem_value_selling= document.getElementById("span"+ prop +"-price-for-selling + freight-rate");
            var chItem_value_total  = document.getElementById("item-value-total-"+ prop +" + freight-rate");
            
            item_value_total.innerHTML      = return_array.ss_Taczki[prop]["dsp_cenaOpakowanProdNETTO"];

            if (return_array.ss_Taczki[prop]["wartJedn_plusOplaty"] != undefined && 
                return_array.ss_Taczki[prop]["wartJedn_plusOplaty"]["dsp_netto"] != '') {

                chItem_value_unit.innerHTML     = return_array.ss_Taczki[prop]["wartJedn_plusOplaty"]["dsp_netto"];
                chItem_value_selling.innerHTML  = return_array.ss_Taczki[prop]["wartSelling_plusOplaty"]["dsp_netto"];
                chItem_value_total.innerHTML    = return_array.ss_Taczki[prop]["wartPalet_plusOplaty"]["dsp_netto"];
            }
        }
        var td_articles_subTotal    = document.getElementById("articles-picked-subTotal");
        
        var td_articles_entranceDuty= document.getElementById("articles-picked-entranceDuty");
        var td_articles_disc_perc   = document.getElementById("articles-picked-discount-rate-percent");
        var td_articles_disc_rate   = document.getElementById("articles-picked-discount-rate-value");
        var td_articles_disc_ovfl   = document.getElementById("articles-picked-discount-rate-overflow");
        
        var td_articles_vat__rate   = document.getElementById("articles-picked-vat-rate");
        var span_articles_vat__perc = document.getElementById("articles-picked-vat-perc");
        
        var td_articles_Total       = document.getElementById("articles-picked-Total");
        var span_tr_charges_Total   = document.getElementById("span-transport-charges-total");
        var short_saved_list_wartoscZam   = document.getElementById("short_saved_list_wartoscZam");
        
        td_articles_subTotal.innerHTML  = return_array.taczki_value.subtotal;
        td_articles_entranceDuty.innerHTML  = return_array.taczki_value.entranceDuty;
        
        td_articles_disc_perc.innerHTML = return_array.taczki_value.discount_rate_percent + '%';
        td_articles_disc_rate.innerHTML = return_array.taczki_value.discount_rate_value;
        if(return_array.taczki_value.discount_rate_overflow) {
            td_articles_disc_ovfl.innerHTML = '+';
        }else{
            td_articles_disc_ovfl.innerHTML = '';
        }
        
        td_articles_vat__rate.innerHTML = return_array.taczki_value.vat_rate;
        span_articles_vat__perc.innerHTML = return_array.taczki_value.vat_perc+'%';
        
        td_articles_Total.innerHTML     = '<span class="orange-text">'+return_array.taczki_value.total+'</span>';
        short_saved_list_wartoscZam.innerHTML = return_array.taczki_value.total;
        span_tr_charges_Total.innerHTML = return_array.taczki_value.trChrg_total;
        alert(return_array.info);
        return true;
    },
    
    change_payment_terms: function(return_array) {
        var gif_change_payment_terms = document.getElementById("gif_change_payment_terms");
        gif_change_payment_terms.innerHTML = '';

        if(typeof(return_array) == "string") {
            alert(return_array);
            return false;
        }
        var td_articles_cash_rate_prc   = document.getElementById("cash-discount-rate-prc");
        var td_articles_cash_rate_val   = document.getElementById("articles-picked-cash-rate");
        var td_articles_Total           = document.getElementById("articles-picked-Total");

        td_articles_cash_rate_prc.innerHTML = return_array.cash_rate_prc + '%';
        td_articles_cash_rate_val.innerHTML = return_array.cash_rate_val;
        td_articles_Total.innerHTML         = '<span class="orange-text">'+return_array.total_brutto_with_cash_rate+'</span>';
    },
    
    get_productsFromIdenticalGroup: function(return_array) {
        if(typeof(return_array) == "string") {
            alert(return_array);
            return false;
        }
        
        var identicalsTable = '<table class="articles-list-table">';
        var arrayOfIdenticals = return_array.identicalsTable;
        var showing_div = document.getElementById("show-products-from-identical-group-"+return_array.id);
        
        if(typeof(return_array.articles_table_headers) == "string") {
            identicalsTable = '<b>'+return_array.articles_table_headers+'</b>';
        }else{
            identicalsTable += "<tr>";
                identicalsTable += "<th>"+return_array.articles_table_headers[0]+"</th>";   // col_header_code
                identicalsTable += "<th>"+return_array.articles_table_headers[1]+"</th>";   // col_header_name
                //identicalsTable += "<th>"+return_array.articles_table_headers[2]+"</th>"; // col_header_availability
                identicalsTable += "<th>"+return_array.articles_table_headers[3]+"</th>";   // col_header_price_unit
                //identicalsTable += "<th>"+return_array.articles_table_headers[4]+"</th>"; // col_header_units_in_pack
                //identicalsTable += "<th>"+return_array.articles_table_headers[5]+"</th>"; // col_header_price_selling
                identicalsTable += "<th>"+return_array.articles_table_headers[6]+"</th>"; // col_header_price_selling
            identicalsTable += "</tr>";
            
            for(prop in arrayOfIdenticals) {
                if(prop == '______array') { continue; }
                
                identicalsTable += "<tr>";
                    identicalsTable += '<td>'+arrayOfIdenticals[prop].code_number+"</td>";  // rowspan="2"
                    identicalsTable += '<td>';  //  style="border-bottom-style: dotted;"
                        identicalsTable += '<a class="normal" href="javascript: void f_js_noweOkno(\'article_'+prop+'\', \'./PCT_Popup.php?pageDisp=art_desc&amp;id_art='+prop+'\', 420, 710, \'no\', 100, 100);">'+arrayOfIdenticals[prop].materialName+'</a>';
                    identicalsTable += "</td>";
                    //identicalsTable += '<td style="text-align:center;"><b>n</b></td>';
                    identicalsTable += '<td style="border-bottom-style: solid;white-space:nowrap;text-align:right;"><b>'+arrayOfIdenticals[prop].unitPrice+"</b> / ["+arrayOfIdenticals[prop].itemPerUnit+"]</td>";
                    //identicalsTable += '<td style="white-space:nowrap;text-align:right;"><b>'+arrayOfIdenticals[prop].sellingPrice+"</b> / [pallet]</td>";
                    identicalsTable += '<td style="text-align:center;">'+arrayOfIdenticals[prop].manufName+"\n["+arrayOfIdenticals[prop].krajProdukcji+"]</td>";
                identicalsTable += "</tr>";

                /*identicalsTable += "<tr>";
                    identicalsTable += '<td colspan="2">';
                    identicalsTable += '<b>'+return_array.articles_table_headers[6]+'</b>: '+arrayOfIdenticals[prop].manufName+'&nbsp;&nbsp;&nbsp;&nbsp;';
                    identicalsTable += '<b>'+return_array.articles_table_headers[7]+'</b>: '+arrayOfIdenticals[prop].krajProdukcji+'</td>';
                identicalsTable += "</tr>";*/
            }identicalsTable += "</table>";
        }
        
        showing_div.innerHTML = identicalsTable;

        if(showing_div.style.display == 'block') {
            showing_div.style.display = 'none';
        }else{
            showing_div.style.display = 'block';
        }
        
        return true;
    },
    
    set_destinationCountryForTransport: function(id_article) {
        if(typeof(id_article) == "string") {
            alert(id_article);
            return false;
        }
        var quantity_of_ordered_packs = document.identical_listTable_form.elements['order_pallets_'+id_article].value;
        var cheaperForAmountSellingUnits = document.identical_listTable_form.elements['hidden'+id_article+'_cheaperForAmountSellingUnits'].value;
        if(cheaperForAmountSellingUnits == 'null') {
            cheaperForAmountSellingUnits = null;
        }
        //alert('quantity_of_ordered_packs: '+quantity_of_ordered_packs+"\ncheaperForAmountSellingUnits: " + cheaperForAmountSellingUnits);
        remoteHW_itemsManage.get_pricesWithTrasport(id_article, cheaperForAmountSellingUnits, quantity_of_ordered_packs);
        return true;
    },
    
    get_pricesWithTrasport: function(resutl_array) {
        if(typeof(resutl_array) == "string") {
            alert(resutl_array);
            return false;
        }
        
        if(intLAST_DIV_FOR_ROW != null) {
            var oLastDiv = document.getElementById("div"+intLAST_DIV_FOR_ROW+"-for-unit-price");
            oLastDiv.style.display = 'none';
            oLastDiv.innerHTML = '';
        }
        intLAST_DIV_FOR_ROW = resutl_array.id_article;
        
        var oDiv = document.getElementById("div"+resutl_array.id_article+"-for-unit-price");
        
        if(oSELECT_COUNTRIES == null) {
            oSELECT_COUNTRIES = document.createElement("select");
            for(prop in resutl_array.countries) {
                if(prop == '______array') { continue; }
                
                var oOption = document.createElement("option");
                oOption.appendChild(document.createTextNode(resutl_array.countries[prop]));
                oOption.setAttribute("value", prop);
                oSELECT_COUNTRIES.appendChild(oOption);
            }
        }
        if(resutl_array.transport_gdzie_ref != null && resutl_array.transport_gdzie_ref != 0) {
            for(var ii = 0; ii < oSELECT_COUNTRIES.options.length; ii++) {
                if(resutl_array.transport_gdzie_ref == oSELECT_COUNTRIES.options[ii].value) {
                    oSELECT_COUNTRIES.options[ii].selected = true;
                    oSELECT_COUNTRIES.options[ii].setAttribute("selected", "selected");
                }else{
                    oSELECT_COUNTRIES.options[ii].selected = false;
                    oSELECT_COUNTRIES.options[ii].removeAttribute("selected");
                }
            }
        }
        //alert(oSELECT_COUNTRIES.innerHTML); document.createDocumentFragment(
        var divInside = resutl_array.lang_array.country_selection+': '+
            '<select style="vertical-align: middle;padding: 1px; height: 18px;" name="destinationCountryForTransport" onchange="remoteHW_itemsManage.set_destinationCountryForTransport(this.options[this.selectedIndex].value,'+resutl_array.id_article+');">'+
                oSELECT_COUNTRIES.innerHTML+
            '</select><br />'+resutl_array.lang_array.example_prices+':';
            
        var costForQty = '';
        var userQtyOfPacks = '';
        if(resutl_array.not_login != undefined) {
            divInside += '<b class="miniWarning">'+resutl_array.not_login+'</b><br />';
        }else{
            divInside += '<table cellspacing="1" cellpadding="2" style="width:100%;margin:0;">';
            divInside += '<tr>';
            divInside += '<th>'+resutl_array.pricesWithTransport_headers[0]+'</th>';
            divInside += '<th>'+resutl_array.pricesWithTransport_headers[1]+'</th>';
            divInside += '<th>'+resutl_array.pricesWithTransport_headers[2]+'</th>';
            divInside += '<th>'+resutl_array.pricesWithTransport_headers[3]+'</th>';
            divInside += '</tr>';
            for(prop in resutl_array.arrayPricesWithTransport) {
                if(prop == '______array' || prop == "consumption_price_unit") { continue; }
                
                var bClass = '';
                var trClass = '';
                var aTmp = resutl_array.arrayPricesWithTransport[prop];
                if(aTmp["forValueFromTextBox"]) {
                    bClass = 'class="popup-packs-for-value-from-text-box"';
                    trClass = 'class="popup-row-for-value-from-text-box"';
                    userQtyOfPacks = '<b '+bClass+'>'+((aTmp["matGroup"] == 68 && !aTmp["TRANSPORT_BY_20FCL_CONTAINER"]) ? (prop * aTmp["unitsInPack"]) : prop)+' '+((aTmp["matGroup"] == 68 && !aTmp["TRANSPORT_BY_20FCL_CONTAINER"]) ? aTmp["largeUnit"] : aTmp["sellingUnitName"])+'</b>';
                    costForQty = '<b class="orange-text">'+aTmp["sellingPriceForQty"]+' '+aTmp["currency_symbol"]+'</b>';
                }
                
                if(aTmp["matGroup"] == 68 && !aTmp["TRANSPORT_BY_20FCL_CONTAINER"]) {
                    var forPacks = prop * aTmp["unitsInPack"];
                    forPacks = forPacks + ' ' + aTmp["largeUnit"];
                }else{
                    var forPacks = prop+' '+aTmp["sellingUnitName"];
                }
                
                divInside += '<tr '+trClass+'>';
                divInside += '<td style="text-align:right;white-space:nowrap;"><b '+bClass+'>'+forPacks+'</b>:</td><td style="text-align:right;white-space:nowrap;"><b class="orange-text">'+aTmp["unitPrice"]+'</b> '+aTmp["currency_symbol"]+' / '+aTmp["itemPerUnit"]+'</td>';
                divInside += '<td style="text-align:right;white-space:nowrap;"><b class="orange-text">'+aTmp["consumption_price"]+'</b> '+resutl_array.arrayPricesWithTransport["consumption_price_unit"]+'</td>';
                divInside += '<td style="text-align:right;white-space:nowrap;text-align:center;"><b class="orange-text">'+aTmp["percent_diffrence"]+' %</b>&nbsp;</td>';
                divInside += '</tr>';
            }
            divInside += '</table>';
        }
        if(userQtyOfPacks != '') {
            divInside += '<p style="font-size:10pt;margin:0;margin-top:0.4em;text-align:center;">';
            divInside += resutl_array.lang_array.costs_for_user_qty + '<br />' + userQtyOfPacks + ' ' + resutl_array.lang_array.costs_for_user_qty_is + ' ' + costForQty + '<br />';
            divInside += '</p>'
        }
        divInside += '<p style="margin:0;margin-top:4px;text-align:right;border-top: #DDD 1px dotted;">';
        divInside += '<a class="normal" href="javascript: void showHide_page_element(\'div'+resutl_array.id_article+'-for-unit-price\', \'none\');">'+resutl_array.lang_array.close_link+'</a>'
        divInside += '</p>'
        oDiv.innerHTML = divInside;
        //oDiv.appendChild(textNode);

        var oDivContainer = document.getElementById("divContainer"+resutl_array.id_article+"-for-unit-price");
        var aBase_divXY = YAHOO.util.Dom.getXY(oDivContainer);
        YAHOO.util.Dom.setX(oDiv,parseInt(aBase_divXY[0] - 160));
        YAHOO.util.Dom.setY(oDiv,parseInt(aBase_divXY[1] + 26));
        oDiv.style.display = 'block';
    },
    
    check_sstaczki_count: function(resutl_array) {
        if(typeof(resutl_array) == "string") {
            alert(resutl_array);
            return false;
        }

        var oLogForm = document.loginForm;
        
        if(resutl_array.ssTaczkiCount > 0) {
            if(confirm(" "+resutl_array.confText+" ")) {
                oLogForm.use_saved_list.value = 'yes';
            }else{
                oLogForm.use_saved_list.value = 'no';
            }
        }
        oLogForm.submit();
    }
}

// Utworzenie obiektu zdalnego ***************************
var remoteHW_itemsManage = new documentcallback_items_manage(new hwCallback_items_manage());

function do_get_pricesWithTrasport(id_article, cheaperForAmount, valueFromTextBox, oEvent) {
    if(oEvent != null && oEvent.keyCode != 8 && oEvent.keyCode != 46 && !(oEvent.keyCode >= 48 && oEvent.keyCode <= 57) && !(oEvent.keyCode >= 96 && oEvent.keyCode <= 105)) {
        //alert(oEvent.keyCode);
        return false;
    }
    
    var oDiv = document.getElementById("div"+id_article+"-for-unit-price");
    if(oDiv != null) {
        oDiv.innerHTML = '<img src="./image/indicator.gif" style="vertical-align:middle;" alt="Loading..." />';
        oDiv.style.display = 'block';
    }
    
    remoteHW_itemsManage.get_pricesWithTrasport(id_article, cheaperForAmount, valueFromTextBox);
    return true;
}
               

function do_save_this_item(unique_id, amount_of_pallPack) {

    var res = check_AJAX_State(remoteHW_itemsManage,"do_save_this_item("+id_article+","+amount_of_pallPack+")");
    if(!res) {
        return false;
    }
    
    var oIdNumbers  = get_id_parentChild(unique_id)
    var id_parent   = oIdNumbers.id_parent;
    var id_article  = oIdNumbers.id_article;
    
    intITEM_BEING_SAVED = id_article;
    intITEM_BEING_SAVED_PARENT = id_parent;
    var picked_item_img = document.getElementById(id_parent+"gif_save_as_picked_"+id_article);
    picked_item_img.src = './image/indicator.gif';
    
    remoteHW_itemsManage.save_this_item(unique_id, amount_of_pallPack);
    return true;
}

function do_update_save_list(taczki_keys) {
    if(taczki_keys == '') {
        return false;
    }
    
    var res = check_AJAX_State(remoteHW_itemsManage,"do_update_save_list('"+taczki_keys+"')");
    if(!res) {
        return false;
    }

    var update_img_up = document.getElementById("gif_update_up");
    var update_img_down = document.getElementById("gif_update_down");
    update_img_up.innerHTML = update_img_down.innerHTML = '<img src="./image/indicator.gif" style="vertical-align:middle;" alt="->" />';
    
    var taczki_for_send = new Array();
    var taczki_array = taczki_keys.split(',');
    for(var ii = 0; ii < taczki_array.length; ii++) {
        var quantity_value = document.forms["identical_listTable_form"].elements["order_pallets_"+taczki_array[ii]];
        taczki_for_send.push(new Array(taczki_array[ii],quantity_value.value));
    }
    remoteHW_itemsManage.update_save_list(taczki_for_send);
    return true;
}


function do_change_payment_terms() {
    var res = check_AJAX_State(remoteHW_itemsManage,"do_change_payment_terms()");
    if(!res) {
        return false;
    }

    var s_payment_terms = document.create_order_form.elements["payment_terms"];
    var gif_change_payment_terms = document.getElementById("gif_change_payment_terms");
    gif_change_payment_terms.innerHTML = '<img src="./image/indicator.gif" style="vertical-align:middle;" alt="->" />';
    remoteHW_itemsManage.change_payment_terms(s_payment_terms.options[s_payment_terms.selectedIndex].value);
    return true;
}

function get_id_parentChild(unique_id) {
    unique_id = unique_id.toString();
    var oIdNumbers = new Object();
    var sepPos = unique_id.search('_');
    if(sepPos == -1) {
        oIdNumbers.id_parent   = '';
        oIdNumbers.id_article  = unique_id;
    }else{
        oIdNumbers.id_parent   = "p"+unique_id.substr(0,sepPos)+"_";
        oIdNumbers.id_article  = unique_id.substr((sepPos + 1));
    }
    return oIdNumbers;
}

function hide_divPricesWithTransport(id_row,e) {
    var showing_div = document.getElementById("div"+id_row+"-for-unit-price");
    if(checkMouseLeave(showing_div,e)) {
        showing_div.style.display = 'none';
    }
    return 1;
}

// Sprawdzamy czy AJAX jest zająty ściąganiem czegoś z serwera
function check_AJAX_State(oAJAX, strFunction) {
    if(oAJAX.__client != null) {
        var xmlHttp = oAJAX.__client.xmlhttp;
        
        if (xmlHttp.readyState != 4 && xmlHttp.status != 200) {
            var timer = setTimeout(strFunction,60);
            return false;
        }
    }
    return true;
}
