var AJAXSESSION = 0;

function libLoginHelper(form) {
    var elemLogin = form.user;
    var elemLoginValue = "";
    var elemPass = form.pass;
    var elemPassValue = "";
    
    if (elemLogin && elemPass) {
        elemLoginValue = elemLogin.value;
        elemPassValue = elemPass.value;
        //console.debug("found login-field: " + elemLoginValue);
        //console.debug("login length: " + elemLoginValue.length);
        //console.debug("pass  length: " + elemPassValue.length);
        elemPassValue = Ext.util.MD5(m_session + elemPassValue);
        //console.debug("pass as salted md5: " + elemPassValue);
    }
    
    if (!elemLoginValue.length) {
        return false;
    }
    
    var postdata = {
        method : 'libLoginHelper',
		id : 0,
		params : {
            'userid': elemLoginValue,
            'pass': elemPassValue
        }
	};
    
    //console.debug(postdata);
    
    Ext.Ajax.request({
        url: myinterface_lib,
        success: function (trans) {
				var data; 
				try {
					data = eval('('+trans.responseText+')'); // JSON "parsen"
                    //debugger;
                    if (data['_data']['userid']) {
                        //console.debug("gültiges login: " + data['_data']['userid'] + ", src: " + data['_data']['info']);
                        elemLogin.value = data['_data']['userid'];
                    } else {
                        //console.debug("ungültiges login!!!");
                    }
                    form.submit();
                    return true;
				} catch(e) {
                    //console.debug("ERROR1!");
					return false;   
				} 
                
                //console.debug(data);
        },
        failure: function () {
            //console.debug("ERROR2!");
        },
        params: Ext.util.JSON.encode(postdata)
    });
    //console.debug("RETURN2");
    return false;
}

function libDlgChgCartPosition(script, sessionid, itemid, posidx, oldcount) {
    var newcount = oldcount;
    
    var dlg = new Ext.Window({
        //id: id,
        title: const_other_changecartcount_wndtitle,
        closeAction : 'close',
        cls:   'mydoformat',
        modal:true,
        layout: 'fit',
        plain:true,
        bodyStyle:'padding:5px;',
        buttonAlign:'right',
        resizable: false,
        id: 'wndChgCartPosition',
        
        items: [
            new Ext.form.NumberField({
                fieldLabel: '',
                allowBlank: false,
                disabled: false,
                decimalSeparator: ',',
                value: oldcount,
                id: 'wndChgCartPosition_count'
            })
        ],
        buttons: [
            {
                text     : 'OK',
                handler  : function(){
                    //console.debug(this.ownerCt.items.items[0].getValue());
                    Ext.Msg.wait(const_html_printingform_wait);
                    libChgCartPosition(script, sessionid, itemid, posidx, Ext.getCmp('wndChgCartPosition_count').getValue())
                }
            },{
                text     : 'Abbrechen',
                handler  : function(){
                    //console.debug(this);
                    //this.ownerCt.close();
                    Ext.getCmp('wndChgCartPosition');
                }
            }
        ]
    });
    dlg.show();
    return;
    
    /*
    Ext.Msg.prompt('Menge ändern', 'Bitte geben Sie die gewünschte Menge ein:', function(btn, text){
        if (btn == 'ok'){
            if (parseInt(text) != text) {
                alert("ungültig...");
                return;
            }
            alert(text);
            newcount = text;
        }
    }, this, false, oldcount);
    
    return;
    //Ext.Msg.wait(const_html_printingform_wait);
    var params = {
        'posidx': posidx
    };
    params[itemid] = newcount;
    
    Ext.Ajax.request({
        url: script + "?chgcart," + sessionid + "," + itemid,
        params: params,
        success: function (trans) {
                //window.location.reload();
                
        },
        failure: function () {
            console.log("ERROR2!");
        }
    });
    */
}

function libChgCartPosition(script, sessionid, itemid, posidx, newcount) {
    //Ext.Msg.wait(const_html_printingform_wait);
    var params = {
        'posidx': posidx
    };
    params[itemid] = newcount;
    
    Ext.Ajax.request({
        url: script + "?chgcart," + sessionid + "," + itemid,
        params: params,
        success: function (trans) {
                Ext.Msg.wait(const_html_printingform_wait);
                window.location.reload();
                /*console.debug(trans);
				var data; 
				try {
                    console.log("ok1");
					data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    console.log("ok2");
                    
                    window.location.reload();
                    
                    return true;
				} catch(e) {
                    //console.debug("ERROR1!");
                    console.debug(e);
					return false;   
				} 
                
                console.debug(data);*/
        },
        failure: function () {
            console.log("ERROR2!");
        }
    });
}

function libPreprocessSearchterm() {
    var elem = document.getElementById('suchbegriff');
    if (elem) {
        elem.value = elem.value.replace(/\-/, " ");
        return true;
    }
    
    return false;
}


var win = 0;
function libShowZoomImg(title, file, small) {
    var width = 712;
    var height = 750;
    if (small) {
        width = 350 + 12;
        height = 350 + 50;
    }
    win = new Ext.Window({
        title: title,
        html: '<img onclick="win.close();" style="cursor:pointer;" src="'+file+'">',
        modal: true,
        x: 30,
        y: Ext.getBody().getScroll().top + 10,
        width: width,
        height: height,
        resizable: false,
        id: 'zoomwindow'
    });
    
    win.show();
}



function libAjaxShowcart() {
    var elem = document.getElementById('minicart');
    if (!elem) {
        return;
    }
    
    var postdata = {
        method: 'myajaxshowcart'
    };

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    elem.innerHTML = data['_output'];
                    
                    return true;
                } catch(e) {
                    //debugger;
                    return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
}

function libCheckItemCount(count, wkmin, wkpack) {
    var test = parseInt(count);
    if (isNaN(test)) {
        return 0;
    }
    
    if (wkmin) {
        if (test >= wkmin) {
            // nix
        } else {
            test = wkmin;
        }
    }
    
    if (wkpack) {
        var rest = test % wkpack;
        if (rest) {
            // Nächsthöhere Menge wählen
            test = test + (wkpack - rest);
        }
    }
    
    return test;
}

function libGuthaben_RedeemVoucher(voucherid, userid, login, sessionid) {
    /*var elem = document.getElementById(printtoid);
    if (!elem) {
        return;
    }*/
    
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);
    
    var postdata = {
        method: 'libGuthaben_RedeemVoucher',
        params: {
            voucherid: voucherid,
            userid: userid,
            login: login,
            sessionid: sessionid
        }
    };

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    var elem = document.getElementById('balance');
                    
                    var msg = data._data.msg;
                    var icon = Ext.MessageBox.INFO;
                    
                    if (data._data.status) {                        
                        //msg = "Der Gutschein wurde eingelöst und Ihrem Guthaben gutgeschrieben.";
                        window.location.reload();
                        return;
                    } else {
                        libCloseWaitingWnd();
                        msg = "Beim Einlösen des Gutscheins trat ein Fehler auf.<br>Bitte überprüfen Sie den Gutscheincode.";
                        icon = Ext.MessageBox.ERROR;
                    }
                    
                    Ext.Msg.show({
                       title: 'Gutschein einlösen',
                       msg: msg,
                       buttons: Ext.Msg.OK,
                       icon: icon,
                       fn: function () {
                            if (data._data.status) {
                                window.location.reload();
                            }
                       }
                    });
                    
                    
                    
                    //elem.innerHTML = data['_output'];
                    
                    return true;
                } catch(e) {
                    //debugger;
                    return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
}

var progressDlg = 0;
var LIB_WKAUTOCHANGED = 0;
function libCloseWaitingWnd() {
    if (document.getElementById('ajaxwaitinginwk')) {
        //document.getElementById('ajaxwaitinginwk').style.visibility = "hidden";
        document.getElementById('ajaxwaitinginwk').style.display = "none";
    }
    
    if (progressDlg) {
        progressDlg.hide();
    }
    
    if (LIB_WKAUTOCHANGED) {
        LIB_WKAUTOCHANGED = 0;
        Ext.Msg.show({
           title: const_html_placecart_info_title,
           msg: const_html_placecart_autowkpack1,
           buttons: Ext.Msg.OK,
           icon: Ext.MessageBox.INFO
        });
    }
}


function libAjaxPlacecart(itemid, hashvariants, elForm, unit) {
    /*console.log("libAjaxPlacecart *** " + itemid + " - " + hashvariants);
    console.debug(elForm);
    console.log(elForm.elements["a__"+itemid]);
    console.log(parseInt(elForm.elements["a__"+itemid].value));*/
    
    var selectedItems = new Array();
    
    if (!hashvariants) {
        wktest(itemid);
        
        //selectedItems.push(itemid);
        
        var elCount = elForm.elements["a__"+itemid];
        var count = 1;
        
        if (elCount) {
            count = parseInt(elCount.value);
        }
        
        if (!count) {
            Ext.Msg.show({
               title: const_html_placecart_info_title,
               msg: const_ajaxplacecart_countinvalid1,
               buttons: Ext.Msg.OK,
               icon: Ext.MessageBox.ERROR
            });
            return;
        }
        
        var list1 = ""; 
        var list2 = ""; 
        if (elForm.elements["l1__" + itemid]) {
            var idx = elForm.elements["l1__" + itemid].selectedIndex;
            if (idx > 0) {
                list1 = elForm.elements["l1__" + itemid].options[idx].value;
            } else {
                Ext.Msg.show({
                   title: const_html_placecart_info_title,
                   msg: const_search_items_select_list,
                   buttons: Ext.Msg.OK,
                   icon: Ext.MessageBox.INFO
                });
                return;
            }
        }
        if (elForm.elements["l2__" + itemid]) {
            var idx = elForm.elements["l2__" + itemid].selectedIndex;
            if (idx > 0) {
                list2 = elForm.elements["l2__" + itemid].options[idx].value;
            } else {
                Ext.Msg.show({
                   title: const_html_placecart_info_title,
                   msg: const_search_items_select_list,
                   buttons: Ext.Msg.OK,
                   icon: Ext.MessageBox.INFO
                });
                return;
            }
        }
        
        //console.log("push i");
        selectedItems.push({ 
            itemid: itemid, 
            count: count,
            list1: list1,
            list2: list2
        });
        
    } else {
        wktest(itemid);
        
        // Einzelne Varianten eintragen!
        for (var i = 0; i < elForm.elements.length; i++) {
            var el = elForm.elements[i];
            if (el.name) {
                if (el.name.search(/^a__/) == 0) {
                    var id = el.name.substr(3);
                    var count = parseInt(el.value);
                    var list1 = ""; 
                    var list2 = ""; 
                    if (count > 0) {
                        //console.log("push v");
                        selectedItems.push({ 
                            itemid: id, 
                            count: count,
                            list1: list1,
                            list2: list2
                        });
                    }
                }
            }
        }
       
    }
    
    if (!selectedItems.length) {
        Ext.Msg.show({
           title: const_html_placecart_info_title,
           msg: const_ajaxplacecart_countinvalid2,
           buttons: Ext.Msg.OK,
           icon: Ext.MessageBox.WARNING
        });
        return;
    }
    
    if (0) {
        if (document.getElementById('ajaxwaitinginwk')) {
            //document.getElementById('ajaxwaitinginwk').style.visibility = "visible";
            document.getElementById('ajaxwaitinginwk').style.display = "block";
        }
        
    } else {
        progressDlg = Ext.Msg.wait(const_ajaxplacecart_waitmsg, const_html_printingform_wait);
    }
    window.setTimeout("libCloseWaitingWnd()",2000);
    
    /*var loadingDlg = Ext.Window.show({
           title: const_html_placecart_info_title,
           html: "Bitte bei mindestens einem Artikel eine gültige Menge eintragen!",
           icon: 'mycustomwaitgif'
        });
    */
    var postdata = {
        method: 'myajaxplacecart',
        params: {
            items: [
            ]
        }
    };
    
    
    var userinfo = "";
    if (unit == 'Stk.') {
        userinfo = "Stück";
    } else if (unit == 'Meter') {
        userinfo = "Gesamtlänge";
    }
    
    
    for (var i = 0; i < selectedItems.length; i++) {
        postdata['params']['items'].push(
            {
                'itemid': selectedItems[i]['itemid'],
                'count': selectedItems[i]['count'],
                'price': '', // Nicht unterstützt!!!
                'list1': selectedItems[i]['list1'],
                'list2': selectedItems[i]['list2'],
                'myajaxplacecartobj': '', // = normaler Artikel
                'orderfields': { // benutzerdef. Felder für Auftragspositionen
                    //'ORINGITEMID': ''
                    USERINFO: userinfo
                }
            }
        );
    }
    
    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    AJAXSESSION = data._session;
                    //console.log("sessionid: " + AJAXSESSION);
                    //console.log(document.cookie);
                    document.cookie = "SHOPPILOT_KEY="+AJAXSESSION+"; Path=/; ";
                    //console.log(document.cookie);
                    /*if (!document.cookie) {
                        Ext.Msg.show("Achtung!<br>Ihr Browser speichert keine Cookies.<br>Bitte ");
                    }
                    
                    {
                        console.log("alt");
                        console.log(myinterface);
                        console.log(myinterface_lib);
                        console.log(m_session);
                    }*/
                    
                    myinterface = myinterface.replace(/,\d+$/, ","+AJAXSESSION);
                    myinterface_lib = myinterface_lib.replace(/,\d+$/, ","+AJAXSESSION);
                    m_session = AJAXSESSION;

                    /*{    
                        console.log("neu");
                        console.log(myinterface);
                        console.log(myinterface_lib);
                        console.log(m_session);
                    }*/
                    
                    if (hashvariants) {
                        for (var i = 0; i < selectedItems.length; i++) {
                            var id = selectedItems[i].itemid;
                            var elems = document.getElementsByName('a__'+id);
                            if (elems.length) {
                                elems[0].value = "0";
                            }
                        }
                    }
                 
                    //var title = language::myget('html_placecart_info_title');
                    //var msg = language::myget('html_placecart_info_message');
                    var title = const_html_placecart_info_title;
                    var msg = const_html_placecart_info_message;
                    
                    var elemwk = document.getElementById('miniwk');
                    if (elemwk) {
                        elemwk.setAttribute("class", "box_miniwk_ne"); // FF
                        elemwk.setAttribute("className", "box_miniwk_ne"); // IE...
                    }

                    /*Ext.Msg.show({
                       title: title,
                       msg: msg,
                       buttons: Ext.Msg.OK,
                       icon: Ext.MessageBox.INFO
                    });*/
                    //var progressDlg = Ext.Msg.wait(const_html_printingform_wait);
                    libAjaxShowcart();
                    //progressDlg.hide();
                    
                    //return true;
                } catch(e) {
                    //debugger;
                    //return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
    
}

function libAjaxPlacecart_Hose_Userinfo(itemid, hashvariants, elForm) {
    var unit = 'Stk.'; // 'Stk.' || 'Meter'
    
    //progressDlg = Ext.Msg.wait(const_ajaxplacecart_waitmsg, const_html_printingform_wait);
    //window.setTimeout("libCloseWaitingWnd()",2000);
    
    var win = new Ext.Window({
        title: const_html_printingform_select, // Bitte wählen
        width: 400,
        height:150,
        layout: 'fit',
        border: false,
        items: [
            new Ext.form.FormPanel({
                layout: 'form',
                frame: true,
                
                items: [
                    new Ext.BoxComponent({
                        html: const_hose_select_title + "<br><br>"
                    }),
                    new Ext.form.RadioGroup({
                        id: 'formHose_Userinfo',
                        columns: 1,
                        hideLabel: true,
                        //value: '1m',
                        items: [
                            new Ext.form.Radio({ boxLabel: const_hose_select_option1, name: 'unit', value: 'Meter'}),
                            new Ext.form.Radio({ boxLabel: const_hose_select_option2, name: 'unit', value: 'Stk.'})
                        ]
                    })
                ]
            })
        ], 
        buttons: [
            { 
                text: const_hose_select_continue, 
                handler: function() {
                    //var vals = Ext.getCmp('formSparAbo').getForm().getFieldValues();
                    //console.log(vals);
                    var unit = '';
                    var selected = Ext.getCmp('formHose_Userinfo').getValue();
                    if (selected) {
                        unit = selected.value;
                    }
                    
                    libAjaxPlacecart(itemid, hashvariants, elForm, unit);
                    
                    win.close();
                }
            },{ 
                text: const_abort, 
                handler: function() {
                    win.close();
                }
            }
        ]
    });
    win.show();
}

function libAjaxPlacecartDirectItem(itemid, count, price, pHashOrderfields) {
    /*console.log("libAjaxPlacecart *** " + itemid + " - " + hashvariants);
    console.debug(elForm);
    console.log(elForm.elements["a__"+itemid]);
    console.log(parseInt(elForm.elements["a__"+itemid].value));*/
    
    var selectedItems = new Array();
    
    /*console.log("itemid: " + itemid);
    console.log("count: " + count);
    console.log("price: " + price);
    console.log("pHashOrderfields");
    console.log(pHashOrderfields);*/
    //return;
    
    
    selectedItems.push({ 
        itemid: itemid, 
        count: count,
        list1: '',
        list2: ''
    });
    
if (0) {
    
    if (!hashvariants) {
        wktest(itemid);
        
        //selectedItems.push(itemid);
        
        var elCount = elForm.elements["a__"+itemid];
        var count = 1;
        
        if (elCount) {
            count = parseInt(elCount.value);
        }
        
        if (!count) {
            Ext.Msg.show({
               title: const_html_placecart_info_title,
               msg: const_ajaxplacecart_countinvalid1,
               buttons: Ext.Msg.OK,
               icon: Ext.MessageBox.ERROR
            });
            return;
        }
        
        var list1 = ""; 
        var list2 = ""; 
        if (elForm.elements["l1__" + itemid]) {
            var idx = elForm.elements["l1__" + itemid].selectedIndex;
            if (idx > 0) {
                list1 = elForm.elements["l1__" + itemid].options[idx].value;
            } else {
                Ext.Msg.show({
                   title: const_html_placecart_info_title,
                   msg: const_search_items_select_list,
                   buttons: Ext.Msg.OK,
                   icon: Ext.MessageBox.INFO
                });
                return;
            }
        }
        if (elForm.elements["l2__" + itemid]) {
            var idx = elForm.elements["l2__" + itemid].selectedIndex;
            if (idx > 0) {
                list2 = elForm.elements["l2__" + itemid].options[idx].value;
            } else {
                Ext.Msg.show({
                   title: const_html_placecart_info_title,
                   msg: const_search_items_select_list,
                   buttons: Ext.Msg.OK,
                   icon: Ext.MessageBox.INFO
                });
                return;
            }
        }
        
        //console.log("push i");
        selectedItems.push({ 
            itemid: itemid, 
            count: count,
            list1: list1,
            list2: list2
        });
        
    } else {
        wktest(itemid);
        
        // Einzelne Varianten eintragen!
        for (var i = 0; i < elForm.elements.length; i++) {
            var el = elForm.elements[i];
            if (el.name) {
                if (el.name.search(/^a__/) == 0) {
                    var id = el.name.substr(3);
                    var count = parseInt(el.value);
                    var list1 = ""; 
                    var list2 = ""; 
                    if (count > 0) {
                        //console.log("push v");
                        selectedItems.push({ 
                            itemid: id, 
                            count: count,
                            list1: list1,
                            list2: list2
                        });
                    }
                }
            }
        }
       
    }
}    
    if (!selectedItems.length) {
        Ext.Msg.show({
           title: const_html_placecart_info_title,
           msg: const_ajaxplacecart_countinvalid2,
           buttons: Ext.Msg.OK,
           icon: Ext.MessageBox.WARNING
        });
        return;
    }
    
    if (0) {
        if (document.getElementById('ajaxwaitinginwk')) {
            //document.getElementById('ajaxwaitinginwk').style.visibility = "visible";
            document.getElementById('ajaxwaitinginwk').style.display = "block";
        }
        
    } else {
        progressDlg = Ext.Msg.wait(const_ajaxplacecart_waitmsg, const_html_printingform_wait);
    }
    window.setTimeout("libCloseWaitingWnd()",2000);
    
    /*var loadingDlg = Ext.Window.show({
           title: const_html_placecart_info_title,
           html: "Bitte bei mindestens einem Artikel eine gültige Menge eintragen!",
           icon: 'mycustomwaitgif'
        });
    */
    var postdata = {
        method: 'myajaxplacecart',
        params: {
            items: [
            ]
        }
    };
    
    for (var i = 0; i < selectedItems.length; i++) {
        postdata['params']['items'].push(
            {
                'itemid': selectedItems[i]['itemid'],
                'count': selectedItems[i]['count'],
                'price': '', // Nicht unterstützt!!!
                'list1': selectedItems[i]['list1'],
                'list2': selectedItems[i]['list2'],
                'myajaxplacecartobj': 'reorder', // = normaler Artikel
                'orderfields': //{ // benutzerdef. Felder für Auftragspositionen
                    pHashOrderfields
                //}
            }
        );
    }
    
    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    AJAXSESSION = data._session;
                    //console.log("sessionid: " + AJAXSESSION);
                    //console.log(document.cookie);
                    document.cookie = "SHOPPILOT_KEY="+AJAXSESSION+"; Path=/; ";
                    //console.log(document.cookie);
                    /*if (!document.cookie) {
                        Ext.Msg.show("Achtung!<br>Ihr Browser speichert keine Cookies.<br>Bitte ");
                    }
                    
                    {
                        console.log("alt");
                        console.log(myinterface);
                        console.log(myinterface_lib);
                        console.log(m_session);
                    }*/
                    
                    myinterface = myinterface.replace(/,\d+$/, ","+AJAXSESSION);
                    myinterface_lib = myinterface_lib.replace(/,\d+$/, ","+AJAXSESSION);
                    m_session = AJAXSESSION;

                    /*{    
                        console.log("neu");
                        console.log(myinterface);
                        console.log(myinterface_lib);
                        console.log(m_session);
                    }*/
                    
                    /*if (hashvariants) {
                        for (var i = 0; i < selectedItems.length; i++) {
                            var id = selectedItems[i].itemid;
                            var elems = document.getElementsByName('a__'+id);
                            if (elems.length) {
                                elems[0].value = "0";
                            }
                        }
                    }*/
                 
                    //var title = language::myget('html_placecart_info_title');
                    //var msg = language::myget('html_placecart_info_message');
                    var title = const_html_placecart_info_title;
                    var msg = const_html_placecart_info_message;
                    
                    var elemwk = document.getElementById('miniwk');
                    if (elemwk) {
                        elemwk.setAttribute("class", "box_miniwk_ne"); // FF
                        elemwk.setAttribute("className", "box_miniwk_ne"); // IE...
                    }

                    /*Ext.Msg.show({
                       title: title,
                       msg: msg,
                       buttons: Ext.Msg.OK,
                       icon: Ext.MessageBox.INFO
                    });*/
                    //var progressDlg = Ext.Msg.wait(const_html_printingform_wait);
                    libAjaxShowcart();
                    //progressDlg.hide();
                    
                    //return true;
                } catch(e) {
                    //debugger;
                    //return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
    
}

function libRegister_CheckLogin(login, pass1, pass2, submittingform) {
    var postdata = {
        method: 'libRegister_CheckLogin',
        params: {
            login: login,
            pass1: (pass1.length ? Ext.util.MD5(m_session + pass1) : "" ),
            pass2: (pass2.length ? Ext.util.MD5(m_session + pass2) : "" )
        }
    };
    
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);
    //window.setTimeout("libCloseWaitingWnd()",2000);

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    //console.debug(data);
                    
                    if (data._data.status) {
                        if (submittingform) {
                            submittingform.submit();
                        }
                    } else {
                        libCloseWaitingWnd();
                        Ext.Msg.show({
                            title: 'Fehler',
                            msg: data._data.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.MessageBox.ERROR
                        });
                    }
                    
                    return true;
                } catch(e) {
                    libCloseWaitingWnd();
                    //debugger;
                    return false;   
                } 
            },
            failure: function () {
                libCloseWaitingWnd();
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
}

function libRegister_CheckEmail(email) {
    var postdata = {
        method: 'libRegister_CheckEmail',
        params: {
            email: email
        }
    };
    
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    //console.debug(data);
                    
                    if (data._data.status) {
                        var form = document.getElementById('userdataform');
                        if (form) {
                            form.submit();
                        }
                    } else {
                        libCloseWaitingWnd();
                        Ext.Msg.show({
                            title: 'Fehler',
                            msg: data._data.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.MessageBox.ERROR
                        });
                    }
                    
                    return true;
                } catch(e) {
                    libCloseWaitingWnd();
                    //debugger;
                    return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
}

function libRegister_CheckStep2() {
    var elemEmail = document.getElementById('eMail');
    var elemGEWORBEN = document.getElementById('GEWORBEN');
    
    var email = (elemEmail ? elemEmail.value : '');
    var GEWORBEN = (elemGEWORBEN ? elemGEWORBEN.value : '');

    var postdata = {
        method: 'libRegister_CheckStep2',
        params: {
            email: email,
            geworben: GEWORBEN
        }
    };
    
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    
                    //console.debug(data);
                    
                    if (data._data.status) {
                        var form = document.getElementById('userdataform');
                        if (form) {
                            form.submit();
                        }
                    } else {
                        libCloseWaitingWnd();
                        Ext.Msg.show({
                            title: 'Fehler',
                            msg: data._data.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.MessageBox.ERROR
                        });
                    }
                    
                    return true;
                } catch(e) {
                    libCloseWaitingWnd();
                    //debugger;
                    return false;   
                } 
            },
            failure: function () {
                //debugger;
            },
            params: Ext.util.JSON.encode(postdata)
        });
    } catch(e) {
        //debugger;
    } 
}

function libDlgAbo_Create(pParams, login) {
    //console.log(pParams);
    pParams = decodeURIComponent(pParams);
    //console.log(pParams);
    pParams = Ext.util.JSON.decode(pParams);
    //console.log(pParams);
    
    var contents = [];
    var buttons  = [];
    
    if (login != "") {
        contents = [
            new Ext.BoxComponent({
                html: "<div>"+const_abo_info1+"</div><br>"
            }),
    
            new Ext.form.RadioGroup({
                fieldLabel: const_abo_summary_interval,
                id: 'formSparAbo_lieferintervall',
                columns: 1,
                //value: '1m',
                items: [
                    new Ext.form.Radio({ boxLabel: const_abo_summary_interval1, name: 'interval', value: '1m', checked: true}),
                    new Ext.form.Radio({ boxLabel: const_abo_summary_interval2, name: 'interval', value: '2m'}),
                    new Ext.form.Radio({ boxLabel: const_abo_summary_interval3, name: 'interval', value: '3m'}),
                    new Ext.form.Radio({ boxLabel: const_abo_summary_interval6, name: 'interval', value: '6m'})
                ]
            }),
            
            new Ext.BoxComponent({
                html: "<br><div>"+const_abo_useraccount9+"</div>"
            })
        ];
        
        buttons = [
            { 
                text: 'Abo speichern', 
                handler: function() {
                    //var vals = Ext.getCmp('formSparAbo').getForm().getFieldValues();
                    //console.log(vals);
                    var interval = '';
                    var selected = Ext.getCmp('formSparAbo_lieferintervall').getValue();
                    if (selected) {
                        interval = selected.value;
                    }
                    
                    // Hier erfolgt die Anlage sowie ein anschliessender Reload des WKs bzw. der aktuellen Seite.
                    libAjaxAboCreate(interval, 'pending', pParams);
                    
                    //win.close();
                }
            },{ 
                text: 'Abbrechen', 
                handler: function() {
                    win.close();
                }
            }
        ];
    } else {
        contents = [
            new Ext.BoxComponent({
                html: "<div>"+const_abo_info1+"</div><br>"
            }),
            
            new Ext.BoxComponent({
                html: "<div>"+const_abo_info2+"</div><br>"
            })
        ];
        
        buttons = [
            { 
                text: 'Abbrechen', 
                handler: function() {
                    win.close();
                }
            }
        ];
    }
    
    var win = new Ext.Window({
        title: 'Spar-Abo anlegen',
        width: 300,
        height: 300,
        layout: 'fit',
        border: false,
        items: [
            new Ext.form.FormPanel({
                id: 'formSparAbo',
                layout: 'form',
                frame: true,
                //labelWidth: 50,
                items: [
                    contents
                ]
            })
        ],
        buttons: buttons
    });
    win.show();
    
    return;
}

function libAjaxAboDelete(userid, login, itemid, bulkitemid, returnto) {
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);
    window.setTimeout("libCloseWaitingWnd()",2000);

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            params: Ext.util.JSON.encode({
                method: 'libSparAbo_DeleteAbo',
                params: {
                    userid: userid,
                    login: login,
                    itemid: itemid,
                    bulkitemid: bulkitemid
                }
            }),
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    //console.log(data);
                    
                    AJAXSESSION = data._session;
                    document.cookie = "SHOPPILOT_KEY="+AJAXSESSION+"; Path=/; ";
                    
                    myinterface = myinterface.replace(/,\d+$/, ","+AJAXSESSION);
                    myinterface_lib = myinterface_lib.replace(/,\d+$/, ","+AJAXSESSION);
                    m_session = AJAXSESSION;

                    if (returnto == 'cart') {
                        window.location.href = m_scripturl + "?showwk," + m_session;
                    } else {
                        window.location.reload();
                    }
                    
                    
                } catch(e) {
                    //debugger;
                    //return false;   
                } 
            },
            failure: function () {
                //debugger;
            }
        });
    } catch(e) {
        //debugger;
    } 
    
    return;
    
}

function libAjaxAboCreate(interval, status, pParams) {
    //console.log(interval);
    //console.log(pParams);
    
    pParams.order_interval = interval;
    pParams.status = status;
    
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);
    window.setTimeout("libCloseWaitingWnd()",2000);

    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            params: Ext.util.JSON.encode({
                method: 'libSparAbo_CreateAbo',
                params: pParams
            }),
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    //console.log(data);
                    
                    AJAXSESSION = data._session;
                    document.cookie = "SHOPPILOT_KEY="+AJAXSESSION+"; Path=/; ";
                    
                    myinterface = myinterface.replace(/,\d+$/, ","+AJAXSESSION);
                    myinterface_lib = myinterface_lib.replace(/,\d+$/, ","+AJAXSESSION);
                    m_session = AJAXSESSION;

                    window.location.href = m_scripturl + "?showwk," + m_session;
                    
                } catch(e) {
                    //debugger;
                    //return false;   
                } 
            },
            failure: function () {
                //debugger;
            }
        });
    } catch(e) {
        //debugger;
    } 
    
    return;
    
}



function libDlgAbo_Change(itemid, bulkitemid, currentInterval, currentItemCount, userid, wkpack) {
    //console.log("itemid: " + itemid);
    //console.log("bulkitemid: " + bulkitemid);
    
    if (Ext.getCmp('formSparAbo')) {
        return; // Fenster schon offen
    }
    

    var win = new Ext.Window({
        title: const_abo_useraccount10,
        width: 300,
        height: 300,
        layout: 'fit',
        border: false,
        items: [
            new Ext.form.FormPanel({
                id: 'formSparAbo',
                layout: 'form',
                frame: true,
                //labelWidth: 50,
                items: [
                    new Ext.BoxComponent({
                        html: const_abo_useraccount6 + "<br>"
                    }),
            
                    new Ext.form.RadioGroup({
                        fieldLabel: const_abo_summary_interval,
                        id: 'formSparAbo_lieferintervall',
                        columns: 1,
                        //value: '1m',
                        items: [
                            new Ext.form.Radio({ boxLabel: const_abo_summary_interval1, name: 'interval', value: '1m', checked: (currentInterval == 1 ? true : false)}),
                            new Ext.form.Radio({ boxLabel: const_abo_summary_interval2, name: 'interval', value: '2m', checked: (currentInterval == 2 ? true : false)}),
                            new Ext.form.Radio({ boxLabel: const_abo_summary_interval3, name: 'interval', value: '3m', checked: (currentInterval == 3 ? true : false)}),
                            new Ext.form.Radio({ boxLabel: const_abo_summary_interval6, name: 'interval', value: '6m', checked: (currentInterval == 6 ? true : false)})
                        ]
                    }),
                    new Ext.form.NumberField({
                        //currentItemCount
                        id: 'formSparAbo_itemcount',
                        fieldLabel: const_abo_summary_amount,
                        value: currentItemCount,
                        allowDecimals: false,
                        minValue: 1,
                        validator: function(val) {
                            if (val >= 1) {
                                if ((val % wkpack)) {
                                    return const_abo_useraccount7 + " " + wkpack;
                                }
                            } else {
                                return const_abo_useraccount8;
                            }
                            return true;
                        }
                    }),
                    new Ext.BoxComponent({
                        html: "<br><div>"+const_abo_useraccount9+"</div>"
                    }),
                ]
            })
        ],
        buttons: [
            { 
                text: const_abo_useraccount11, 
                handler: function() {
                    //var vals = Ext.getCmp('formSparAbo').getForm().getFieldValues();
                    //console.log(vals);
                    var interval = '';
                    var selected = Ext.getCmp('formSparAbo_lieferintervall').getValue();
                    if (selected) {
                        interval = selected.value;
                    }
                    var itemcount = Ext.getCmp('formSparAbo_itemcount').getValue();
                    
                    // Hier erfolgt die Anlage sowie ein anschliessender Reload des WKs bzw. der aktuellen Seite.
                    libAjaxAboChange(interval, itemcount, itemid, bulkitemid, userid);
                    
                    //win.close();
                }
            },{ 
                text: const_abort, 
                handler: function() {
                    win.close();
                }
            }
        ]
    });
    win.show();
    
    return;
}


function libAjaxAboChange(interval, itemcount, itemid, bulkitemid, userid) {
    progressDlg = Ext.Msg.wait(const_ajax_waiting_default, const_html_printingform_wait);
    window.setTimeout("libCloseWaitingWnd()",2000);
    
    try {
        Ext.Ajax.request({
            url: myinterface_lib,
            params: Ext.util.JSON.encode({
                method: 'libSparAbo_Change',
                params: {
                    userid: userid,
                    itemid: itemid, 
                    bulkitemid: bulkitemid,
                    order_interval: interval,
                    order_intervalunit: 'm', // momentan gibts noch nichts anderes
                    itemcount: itemcount
                }
            }),
            success: function (trans) {
                var data; 
                try {
                    data = eval('('+trans.responseText+')'); // JSON "parsen"
                    //console.log(data);
                    
                    AJAXSESSION = data._session;
                    document.cookie = "SHOPPILOT_KEY="+AJAXSESSION+"; Path=/; ";
                    
                    myinterface = myinterface.replace(/,\d+$/, ","+AJAXSESSION);
                    myinterface_lib = myinterface_lib.replace(/,\d+$/, ","+AJAXSESSION);
                    m_session = AJAXSESSION;

                    window.location.reload();
                } catch(e) {
                    //debugger;
                    //return false;   
                } 
            },
            failure: function () {
                //debugger;
            }
        });
    } catch(e) {
        //debugger;
    } 
    
    return;
    
}

//function libDlgAbo_Create_handleOK(pParams)
