var m_ids = new Array();
var m_cols = new Array();
var m_vals = new Array();
var m_forms = 0;
function search_items_init (itemid, searchitemskey) {
    m_forms = document.getElementById('_LF_FORMS_' + itemid).value;
    
    m_ids[itemid] = new Array();
    m_cols[itemid] = new Array();
    m_vals[itemid] = new Array();
    
    for (var i = 0; i < m_forms; i++) {
        m_vals[itemid].push(new Array());
        m_ids[itemid].push(document.getElementById('_LF_IDS'+String(i)+"_"+itemid).value.split(','));
        m_cols[itemid].push(document.getElementById('_LF_COLS'+String(i)+"_"+itemid).value.split(','));
        search_items(i,0, itemid, searchitemskey);
    }
}

function search_items (formid, selectindex, itemid, searchitemskey) {
    if (-1 != search_items_interface.search(/__xxpath__\?/)) {
        return;
    }
    
    document.getElementById('loading_icon'+ String(formid) + "_" + itemid).style.display = 'block';
    
    //_debug(cols);
    //console.debug(m_cols);
    
    //alert(selectindex);
    var queryfield = m_cols[itemid][formid][selectindex];
    if (selectindex == m_ids[itemid][formid].length) { queryfield = '_preis'; }
    var myparams = new Array('itemid', itemid, 'searchitemskey', searchitemskey, 'queryfield', queryfield);
    
    // Schon ausgewählte Werte holen
    for (var i = 0; i < selectindex; i++) {
        var sel = document.getElementById(m_ids[itemid][formid][i] + "_" + itemid);
        if (sel.selectedIndex > 0) {
            m_vals[itemid][formid][i] = sel.value;
        } else {
            m_vals[itemid][formid][i] = '';
        }
        //myparams.push( { m_cols[i] : m_vals[i] } );
        myparams.push(m_cols[itemid][formid][i]);
        myparams.push(m_vals[itemid][formid][i]);
    }
    
    var postdata = {
			method : 'searchDyn',
			id : 0,
			params : myparams
		};
	// Hier geht nochIE 6 Fehler
    
    ajaxRequest({
        url: search_items_interface,
        /*headers: {
            "Content-Type": "application/json; charset=utf-8"
            //"Content-Type": "application/json; charset=ISO-8859-1;" // Geht nicht, scheinbar wird nur utf8 unterstützt...
        },*/
        onSuccess: function (data) {
				((selectindex < m_ids[itemid][formid].length) ? search_items_handleSuccess(data, formid, selectindex, itemid) : _global_search_preis_handleSuccess(data, formid, itemid));
        },
        onFailure: function () {
            //alert("error...");
        },
        data: JSON.stringify(postdata)
    });
}

function search_items_handleSuccess(data, formid, selectindex, itemid){
    var call = data['_call'];
    var result = data['_data'];
    
    while (BULKITEMPRICES.length) { BULKITEMPRICES.pop(); }
    
    document.getElementById('loading_icon'+ String(formid) + "_" + itemid).style.display = 'none';
    
    //alert("result for "+selectindex);
    
    // Alle noch auszuwählenden Felder löschen
    //alert(m_ids[itemid][formid]);
    for (var i = selectindex; i < m_ids[itemid][formid].length; i++) {
        var sel = document.getElementById(m_ids[itemid][formid][i] + "_" + itemid);
        sel.options.length = 0;
    }
    
    var sel = document.getElementById(m_ids[itemid][formid][selectindex] + "_" + itemid);
    
    _clear(itemid);
    
    if (result) {
        if (result.length > 0) {
            sel.options[0] = new Option(TEXTS.item_select_list_first, '');
            for (var i = 0; i < result.length; i++) {
                var val = result[i];
                val = String(val).replace(/'/g, '');
                var title = val;
                
				// Übersetzungen von Artikeleigenschaften
				if (TEXTS.lang == 'en') {
                	title = title.replace(/^offen$/g, "open");
                	title = title.replace(/^mit Dichtscheiben$/g, "with platesealing");
                	title = title.replace(/^mit Dichtungen$/g, "with sealings");
                	title = title.replace(/^Edelstahl A2$/g, "stainless A2");
                	title = title.replace(/^Stahl 8.8 verzinkt$/g, "Steel 8.8 plated");
                	title = title.replace(/^Stahl geh.rtet + verzinkt$/g, "Steel hardened + plated");
				} else if (TEXTS.lang == 'it') {
					title = title.replace(/^offen$/g, "open");
	                title = title.replace(/^mit Dichtscheiben$/g, "with platesealing");
	                title = title.replace(/^mit Dichtungen$/g, "with sealings");
	                title = title.replace(/^Edelstahl A2$/g, "stainless A2");
	                title = title.replace(/^Stahl 8.8 verzinkt$/g, "Steel 8.8 plated");
	                title = title.replace(/^Stahl geh.rtet + verzinkt$/g, "Steel hardened + plated");
				} else if (TEXTS.lang == 'se') {
					title = title.replace(/^offen$/g, "öppen");
	                title = title.replace(/^mit Dichtscheiben$/g, "med tätningsskivor");
	                title = title.replace(/^mit Dichtungen$/g, "med tätning");
	                title = title.replace(/^Edelstahl A2$/g, "rostfritt A2");
	                title = title.replace(/^Stahl 8.8 verzinkt$/g, "Stål 8.8 förzinkad");
	                title = title.replace(/^Stahl 6\/8 verzinkt$/g, "Stål 6/8 förzinkad");
	                title = title.replace(/^2Z mit Dichtscheiben$/g, "2Z med tätningsskivor");
	                title = title.replace(/^2RS mit Dichtungen$/g, "2RS med tätning");
	                title = title.replace(/^Stahl geh.rtet + verzinkt$/g, "Härdad + förzinkad stål");
	                title = title.replace(/^Stahl verzinkt$/g, "Stål förzinkad");
	                title = title.replace(/^Temperguss verzinkt$/g, "gjutgods förzinkad");
				}

                var neuer = new Option(title, val, false, true);
                sel.options[i+1] = neuer;
            }
            sel.selectedIndex = 0;
        }
    }
}

function _global_search_preis_handleSuccess(data, formid, itemid) {
    var call = data['_call'];
    var result = data['_data'];
    
    var pfaktor = 1;//TEXTS.search_items_pf1;
    
    while (BULKITEMPRICES.length) { BULKITEMPRICES.pop(); }
	
	/*if (itemid == "oringe") { pfaktor = TEXTS.search_items_pf2; }
	if ((itemid == "la_1200") ||
		(itemid == "la_625") ||
		(itemid == "la_22205") ||
		(itemid == "la_3200") ||
		(itemid == "la_7200B") ||
		(itemid == "la_N204ET")
		) {
			pfaktor = TEXTS.search_items_pf3;
	}
    if (itemid.match(/^pl_dummy_/i)) { // Alle Planam-Artikel
        pfaktor = TEXTS.search_items_pf4;
    }
    
    pfaktor = pfaktor * TEXTS.search_items_pfc; // Währungsumrechnung*/
    
    if (m_forms) {
        document.getElementById('loading_icon' + String(formid) + "_" + itemid).style.display = 'none';
    } else {
        document.getElementById('loading_icon').style.display = 'none';
    }
    
    var elem = document.getElementById('search_items_price_'+itemid);
    var out = "";
    
    _clear(itemid);
    
    //console.log("getting prices");
    //console.debug(result);
    if (result) {
        if (result.length) {
            var e = document.getElementById('search_items_lfitemid_'+itemid);
            if (e) {
                e.value = result[0][2];
            }
            
            out += "<div style=\"border:1px solid #cdcdcd; padding:10px;\">"+TEXTS.search_items_staffelinfo+"</div><br>";
            out += "<table class=\"variantenliste\" style=\"width:45%;\">";
            out += "<tr><th>"+TEXTS.search_items_staffelamount+"</th><th style=\"text-align:right;\">"+TEXTS.search_items_staffelprice+"</th></tr>";
            for (var i = 0; i < result.length; i++) {
                var css="";
                if ((i % 2)) {
                    css="class=\"highlighted\"";
                }
                out += "<tr><td "+css+">&nbsp;&nbsp;"+TEXTS.search_items_staffelfrom+" " + result[i][0] + " "+TEXTS.search_items_staffelpieces1+".</td><td align=\"right\" "+css+">" + (result[i][1] * pfaktor).toFixed(2) + "&nbsp;"+TEXTS.search_items_staffelcurrency+" / "+TEXTS.search_items_staffelpieces2+"&nbsp;&nbsp;</td></tr>";
                
                // Für Versandkostenvorschau global speichern
                BULKITEMPRICES.push({ pricefrom: result[i][0], price: result[i][1] * pfaktor });
            }
            out += "</table>";
            
            // Diese Funktion existiert nur, wenn die Versandkostenvorschau auf der Detailseite aktiviert wurde!
            if( typeof detailPage_UpdateShipping == 'function') { 
                detailPage_UpdateShipping();
            } 
            jQuery('#search_items_inwk_' + itemid).css('display', 'block');
            jQuery('#boxShippingInfo').css('display', 'block');
        } else {
            // keine Daten bekommen / ungültige Auswahl
            jQuery('#search_items_inwk_' + itemid).css('display', 'none');
            //jQuery('#boxShippingInfo').css('display', 'none');
        }
    }
    
    jQuery('#search_items_price_'+itemid).html(out);
}


function _clear(itemid) {
    //document.getElementById('search_items_price_'+itemid).innerHTML = "";
    //document.getElementById('search_items_inwk_'+itemid).style.display = 'none';
    jQuery('#search_items_price_'+itemid).html('');
    jQuery('#search_items_inwk_'+itemid).css('display', 'none');
    //jQuery('#boxShippingInfo').css('display', 'none');
    
    var e = document.getElementById('search_items_lfitemid_'+itemid);
    if (e) { e.value = ""; }
}

