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
    
    Ext.Ajax.request({
        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...
        },
        success: function (trans) {
				var data; 
				try {
					data = eval('('+trans.responseText+')'); // JSON "parsen"
				} catch(e) {
					return;   
				} 
                
                ((selectindex < m_ids[itemid][formid].length) ? search_items_handleSuccess(data, formid, selectindex, itemid) : _global_search_preis_handleSuccess(data, formid, itemid));
        },
        failure: function () {
            //alert("error...");
        },
        params: Ext.util.JSON.encode(postdata)
    });
}

function search_items_handleSuccess(data, formid, selectindex, itemid){
    var call = data['_call'];
    var result = data['_data'];
    
    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(const_search_items_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 (const_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 (const_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 (const_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;//const_search_items_pf1;
	
	/*if (itemid == "oringe") { pfaktor = const_search_items_pf2; }
	if ((itemid == "la_1200") ||
		(itemid == "la_625") ||
		(itemid == "la_22205") ||
		(itemid == "la_3200") ||
		(itemid == "la_7200B") ||
		(itemid == "la_N204ET")
		) {
			pfaktor = const_search_items_pf3;
	}
    if (itemid.match(/^pl_dummy_/i)) { // Alle Planam-Artikel
        pfaktor = const_search_items_pf4;
    }
    
    pfaktor = pfaktor * const_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=\"float:right; width:45%; display:block; border:1px solid blue; padding:10px;\">"+const_search_items_staffelinfo+"</div>";
            out += "<table class=\"variantenliste\" style=\"width:45%;\">";
            out += "<tr><th>"+const_search_items_staffelamount+"</th><th align=\"right\">"+const_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;"+const_search_items_staffelfrom+" " + result[i][0] + " "+const_search_items_staffelpieces1+".</td><td align=\"right\" "+css+">" + (result[i][1] * pfaktor).toFixed(2) + "&nbsp;"+const_search_items_staffelcurrency+" / "+const_search_items_staffelpieces2+"&nbsp;&nbsp;</td></tr>";
            }
            out += "</table>";
            
            document.getElementById('search_items_inwk_' + itemid).style.display = 'block';
        } else {
            // keine Daten bekommen / ungültige Auswahl
            document.getElementById('search_items_inwk_' + itemid).style.display = 'none';
        }
    }
    
    elem.innerHTML = out;
}


function _clear(itemid) {
    document.getElementById('search_items_price_'+itemid).innerHTML = "";
    document.getElementById('search_items_inwk_'+itemid).style.display = 'none';
    
    var e = document.getElementById('search_items_lfitemid_'+itemid);
    if (e) { e.value = ""; }
}
