
    var basket   = new Array();
    var products = new Array();
    
    
    // Produkte: Zubeh&ouml;r-Sortiment f&uuml;r: Bodenverankerungen & Fu&szlig;platten
    add_product('1-1', 'Gewindestange', 0.00, 'ZP5212G', 'M12 verzinkt, 1m lang', './images/z27.jpg');
    add_product('1-2', 'Spezial Bolzenanker', 0.00, 'ZP5212165', 'B12, L&auml;nge: 165mm', './images/z28.jpg');
    add_product('1-3', 'Spezial Bolzenanker', 0.00, 'ZP5208 / ZP5210 / ZP5212', 'B8, B10 oder B12', './images/z29.jpg');
    add_product('1-4', 'Bodenh&uuml;lse', 0.00, 'ZP55', 'f&uuml;r Zaunpfosten zum Einbetonieren mit Erdanker', './images/z30.jpg');
    add_product('1-5', 'Fu&szlig;platte mit Rohrstutzen', 0.00, 'ZP50', 'verzinkt, f&uuml;r Typ U + P', './images/z31.jpg');
    add_product('1-6', 'Fu&szlig;plattenwinkel mit Rohrstutzen', 0.00, 'ZP51', 'verzinkt, f&uuml;r Typ U + P', './images/z32.jpg');
    add_product('1-7', 'Fu&szlig;platte mit Rohrstutzen', 0.00, 'ZP50A', 'verzinkt, f&uuml;r Typ A + PM', './images/z33.jpg');
    add_product('1-8', 'Fu&szlig;plattenwinkel mit Rohrstutzen', 0.00, 'ZP51A', 'verzinkt, f&uuml;r Typ A + PM', './images/z34.jpg');
    
    // Produkte: Zubeh&ouml;r-Sortiment f&uuml;r: Bodenverankerungen & Fu&szlig;platten
    add_product('2-1', 'Punktbefestigungsset', 0.00, 'ZPP6005 / ZPP7016 / ZPP9010 / ZPP9005 / ZPP9006', 'inkl. V2ASchraube, in versch. RAL-T&ouml;nen', './images/z1.jpg');
    add_product('2-2', 'Gitterzaunklammer', 0.00, 'ZPGE6005 / ZPGE7016 / ZPGE9010 / ZPGE9006 / ZPGE9005 / ZPGE7030 / ZPGE8017', 'Doppelsteg, diverse RAL-T&ouml;ne, als Eckprofil f&uuml;r Eck-, Torpfostenzaunanschl.', './images/z2.jpg');
    add_product('2-3', 'Abdeckleiste', 0.00, 'ZPL / ZPLB', '40x5mm, verzinkt / beschichtet, L&auml;ngen v. 0,63m bis 2,43m in 20cm Abstufung', './images/z3.jpg');
    add_product('2-4', 'Halteplatte f&uuml;r Gitterzaunklemme', 0.00, 'ZPVAP', 'Edelstahl', './images/z4.jpg');
    add_product('2-5', 'Wandanschlusswinkel', 0.00, 'ZDW / ZDWB', 'verzinkt, verzinkt und beschichtet', './images/z5.jpg');
    add_product('2-6', 'Niro Gittermattenverbinder', 0.00, 'ZDVN6 / ZDVN8', 'Edelst., f. Moritz / Max Doppelstabgitter, Quetschverbindung', './images/z6.jpg');
    add_product('2-7', 'Gittermattenverbinder', 0.00, 'ZDV2 / ZDV2B', 'flache Form verzinkt oder verz. und beschichtet, inkl. Schraube', './images/z7.jpg');
    add_product('2-8', 'Gittermattenverbinder', 0.00, 'ZDVU2 / ZDVU2B', 'U-Form, verz. oder verz. und besch., 2-teilig', './images/z8.jpg');
    add_product('2-9', 'Blindeinnietmutter', 0.00, 'ZP83 / ZP84', 'Durchm. 11mm Zaunbauschraube M8 x 40 / 5,5mm Innensechskant', './images/z9.jpg');
    add_product('2-10', 'V2A Abreissmutter M8 / V2A Hutmutter M8', 0.00, 'ZZ32 / ZZ31', '', './images/z10.jpg');
    add_product('2-11', 'Edelstahl-Hakenschraube', 0.00, 'ZPEH11 / ZPEH80 / ZPEH40', 'M8 inkl. V2A Mutter L&auml;ngen: 40mm, 80mm, 110mm', './images/z11.jpg');
    add_product('2-12', 'V2A U-B&uuml;gelbefestigungsset', 0.00, 'ZPUBK / ZPUBKB', 'Flansch verzinkt oder verz. und beschichtet', './images/z12.jpg');
    add_product('2-13', 'B&uuml;gel f&uuml;r Rundpfosten 50mm / B&uuml;gel f&uuml;r Rundpfosten 60mm', 0.00, 'ZPRU50 / ZPRU60', '(Komplettset)', './images/z13.jpg');
    
    add_product('3-1', 'Hackenschraube M8', 0.00, '', 'Edelstahl<br />L&auml;nge: 40 mm, 90mm, 110mm<br />passende Sechskantmuttern<br />Abri&szlig;mutter', './images/10_zubehoer_hackenschraube.jpg');
    add_product('3-2', 'D&uuml;belbodenplatte', 0.00, '', 'Feuerverzinkt<br />f&uuml;r Rechteckpfosten 60x40mm zum Aufstecken<br />zur Befestigung von Zaunpfosten auf Mauerwerk<br />Gr&ouml;&szlig;e: 150 x 100 x 8 mm', './images/10_zubehoer_duebelbodenplatte.jpg');
    add_product('3-3', 'Gittermatten - Verbinder Kurz', 0.00, '', '2-teilig passend f&uuml;r alle Matten<br />verzinkt ober beschichtet<br />Vierkantloch f&uuml;r M6<br />L&auml;nge  : 90 mm<br />Breite : 15 mm', './images/10_zubehoer_gittermatten_verbinder_kurz.jpg');
    add_product('3-4', 'Gittermatten - Verbinder Lang', 0.00, '', '2-teilig passend f&uuml;r alle Matten<br />verzinkt ober beschichtet<br />Vierkantloch f&uuml;r M8<br />L&auml;nge  : 205 mm<br />Breite :  18 mm', './images/10_zubehoer_gittermatten_verbinder_lang.jpg');
    add_product('3-5', 'Universalmattenhalter', 0.00, '', 'zur Befestigung von Gittermatten<br />an Pfosten und Mauern<br />Feuerverzinkt<br />Langloch   : 7 x 11 mm<br />Tiefe      : 18 mm<br />Breite     : 20 mm<br />L&auml;nge      : 65 mm', './images/10_zubehoer_universalmattenhalter.jpg');
    add_product('3-6', 'Gittermattenklemme', 0.00, '', 'Edelstahl<br />zur Befestigung von Gittermatten<br />L&auml;nge   : 35 mm<br />Breite  : 25 mm<br />Lochma&szlig; : 9 x 15 mm', './images/10_zubehoer_gittermattenklemme.jpg');
    add_product('3-7', 'Kunststoffkappe', 0.00, '', 'f&uuml;r Rechteckrohr 60 x 40 mm<br />Schwarz', './images/10_zubehoer_kunststoffkappe.jpg');

    add_product('4-1', 'Kunststoff Kappe Rund', 0.00, '', 'mit &Ouml;se f&uuml;r Spanndraht<br />Farbe  : Schwarz<br />in den Gr&ouml;&szlig;en : 34 , 42 , 48 , 60 mm', './images/10_zubehoer_kunststoff_kappe_rund.jpg');
    add_product('4-2', 'Drahtspanner', 0.00, '', 'L&auml;nge     : 100 mm<br />Materialst&auml;rke  : 2,0 mm<br />Ausf&uuml;hrungen : feuerverzinkt ober Gr&uuml;n beschichtet', './images/10_zubehoer_drahtspanner.jpg');
    add_product('4-3', 'Spanndrahthalter', 0.00, '', 'aus PVC mit Hacken<br />aus Edelstahl 4 mm<br />Farbe : Schwarz', './images/10_zubehoer_spanndrahthalter.jpg');
    add_product('4-4', 'Aluminium Kappe', 0.00, '', 'mit &Uuml;berstand<br />f&uuml;r Pfosten 60 x 40 mm<br />in allen RAL T&ouml;ne lieferbar', './images/10_zubehoer_aluminium_kappe.jpg');
    add_product('4-5', 'D&uuml;belplatte', 0.00, '', 'f&uuml;r L-Steine<br />zur Befestigung f&uuml;r Pfosten 60 x 40 mm<br />aufs Mauerwerk zum Aufstecken mit Einnietmuttern<br />feuerverzinkt', './images/10_zubehoer_duebelplatte.jpg');
    add_product('4-6', 'Zaunbauschraube', 0.00, '', 'aus Edelstahl<br />mit Innensechskant 5,5 mm<br />Abmessung 8 x 40 mm', './images/10_zubehoer_zaunbauschraube.jpg');
    add_product('4-7', 'Torfeststeller', 0.00, '', 'zum Einbetonieren', './images/10_zubehoer_torfeststeller.jpg');
    add_product('4-8', 'T&uuml;r - Scharnier', 0.00, '', 'Gr&ouml;&szlig;e I<br />Gewindeteil verzinkt mit Schraube<br />und Muttern<br />T&uuml;rteil roh zum anschwei&szlig;en<br />Pfostenteil zum anschrauben<br />Schraube, Stoppmutter und Messingscheibe', './images/10_zubehoer_tuer_scharnier.jpg');
    add_product('4-9', 'Tor - Scharnier', 0.00, '', 'Gr&ouml;&szlig;e II<br />Gewindeteil verzinkt mit Schraube<br />und Muttern<br />T&uuml;rteil roh zum anschwei&szlig;en<br />Pfostenteil zum anschrauben<br />Schraube, Stoppmutter und Messingscheibe', './images/10_zubehoer_tor_scharnier.jpg');
    add_product('4-10', 'Zaunklammer aus Kunststoff', 0.00, '', 'mit Doppelsteg<br />lieferbare Farben : Gr&uuml;n, Schwarz, Silber, Wei&szlig;, Grau<br />L&auml;nge  : 40 mm<br />Breite : 26 mm<br />H&ouml;he   : 30 mm', './images/10_zubehoer_zaunklammer_aus_kunststoff.jpg');
    add_product('4-11', 'Einnietmutter', 0.00, '', 'aus Stahl<br />Gesamtl&auml;nge : 21 mm<br />Breite   : 11 mm<br />Gewinde  : M 8', './images/10_zubehoer_einnietmutter.jpg');
    add_product('4-12', 'Schlie&szlig;blech', 0.00, '', 'anschraubbar<br />feuerverzinkt<br />L&auml;nge :  230 mm<br />Breite   :   35 mm', './images/10_zubehoer_schliessblech.jpg');
    add_product('4-13', 'Anfangs Schelle f&uuml;r Rechteckpfosten', 0.00, '', '60 x 40 mm<br />feuerverzinkt ober<br />beschichtet Gr&uuml;n<br />Breite : 40 mm<br />St&auml;rke :  3 mm', './images/10_zubehoer_anfangsschelle_fuer_rechteckpfosten.jpg');
    add_product('4-14', 'Schelle f&uuml;r Rechteckpfosten', 0.00, '', '60 x 40 mm<br />2 - teilig<br />feuerverzinkt ober<br />beschichtet Gr&uuml;n<br />Breite : 40 mm<br />St&auml;rke :  3 mm', './images/10_zubehoer_schelle_fuer_rechteckpfosten.jpg');
    add_product('4-15', 'Sechskantschraube mit D&uuml;bel', 0.00, '', '', './images/10_zubehoer_sechskantschraube_mit_duebel.jpg');
    add_product('4-16', 'Bolzenanker', 0.00, '', 'verzinkt<br />B 8 , B 10 , B 12', './images/10_zubehoer_bolzenanker.jpg');
    add_product('4-17', 'Profilzylinder', 0.00, '', 'mit drei Sch&uuml;ssel und Schraube<br />L&auml;nge : 30/30 mm', './images/10_zubehoer_profilzylinder.jpg');
    add_product('4-18', 'Profil Halbzylinder', 0.00, '', 'mit Dreikant SW 17 mm und Schraube<br />mit Dreikantsch&uuml;ssel', './images/10_zubehoer_profil_halbzylinder.jpg');
    add_product('4-19', 'Inbus-Sicherheitsch&uuml;ssel', 0.00, '', 'f&uuml;r Zaunbauschraube 5,5 mm', './images/10_zubehoer_inbus_sicherheitschuessel.jpg');
    
    add_product('5-1', 'Alu-Stacheldrahtabweiser zum Aufstecken', 0.00, '', 'f&uuml;r Rundrohr 48 mm, 60 mm<br />Ausleger 500 mm<br />Gerade oder Schr&auml;g 45°', './images/Zubehoer-Alu-Stacheldrahtabweiser-zum-Aufstecken.jpg');
    add_product('5-2', 'Drahtverankerungen', 0.00, '', 'verzinkt<br />L&auml;nge: 400 mm<br />Durchmesser: 12 mm', './images/Zubehoer-Drahtverankerungen.jpg');
    add_product('5-3', 'Eckverbinder 2-teilig - Gabel und L&ouml;ffel', 0.00, '', 'verzinkt<br />L&auml;nge: 70 mm<br />Breite: 16 mm<br />Loch f&uuml;r M6', './images/Zubehoer-Eckverbinder-2-teilig-Gabel-und-Loeffel.jpg');
    add_product('5-4', 'Eckverbinder 2-teilig - Ober- und Unterteil', 0.00, '', 'verzinkt ober beschichtet<br />L&auml;nge: 62 mm<br />Breite: 40 mm<br />Vierkantloch f&uuml;r M8', './images/Zubehoer-Eckverbinder-2-teilig-Ober-und-Unterteil.jpg');
    add_product('5-5', 'Gittermattenanschluß f&uuml;r an die Wand', 0.00, '', 'verzinkt<br />L&auml;nge: 125 mm<br />Breite: 35 mm<br />Schloßschraube M6', './images/Zubehoer-Gittermattenanschluss-fuer-an-die-Wand.jpg');
    add_product('5-6', 'Schwind-Klammer', 0.00, '', 'B&uuml;gel und Verbindungslasche<br />f&uuml;r Rechteckpfosten 60 x 40 mm<br />Mit zwei Muttern M6<br />Edelstahl', './images/Zubehoer-Schwind-Klammer-Buegel-und-Verbindungslasche.jpg');
    add_product('5-7', 'Wandschelle f&uuml;r Rechteckpfosten 60x40 mm', 0.00, '', 'verzinkt', './images/Zubehoer-Wandschelle-fuer-Rechteckpfosten-60x40-mm.jpg');

    function add_product(id, name, preis, artikelnummer, beschreibung, bild_url) {
        var index = products.length;
        products[index]
        products[index]          = new Object();
        products[index]['id']    = id;
        products[index]['name']  = name;
        products[index]['preis'] = preis;
        products[index]['preis'] = preis;
        products[index]['artikelnummer'] = artikelnummer;
        products[index]['beschreibung']  = beschreibung;
        products[index]['bild_url']      = bild_url;
    }
    
    function get_product_by_id(id) {
        var result = false;
        for (var i = 0; i < products.length; i++) {
            if (products[i]['id'] == id) {
                result = products[i];
            }
        }
        return result;
    }

    function put_product_to_basket(id, quantity) {
        var index    = basket.length;
        var gefunden = false;
        if ('' != quantity && true != isNaN(parseInt(quantity))) {
            for (var i = 0; i < basket.length; i++) {
                if (basket[i]['id'] == id) {
                    gefunden = true;
                    basket[i]['quantity'] = parseInt(basket[i]['quantity']) + parseInt(quantity);
                }
            }
            
            if (gefunden == false) {
                basket[index] = new Object();
                basket[index]['id']       = id;
                basket[index]['quantity'] = parseInt(quantity);
            }
            
            write_basket_entrys()
            save_basket_to_cookie();
        }
    }

    function save_basket_to_cookie() {
        var basket_string = '';
        var jetzt = new Date();
        var Auszeit = new Date((jetzt.getTime() + 3600000));
        
        if (basket.length > 0) {
            for (var i = 0; i < basket.length; i++) {
                if ('' != basket_string) {
                    basket_string = basket_string + ',';
                }
                basket_string = basket_string + basket[i]['id'] + '|' + basket[i]['quantity'];            
            }
            setCookie('basket', basket_string, Auszeit);
        }
        //alert( basket_string);
    }
    
    function load_basket_from_cookie() {
        var basket_string   = getCookie('basket');
        var basket_products = basket_string.split(',');
        var basket_product  = new Array();
        var basket_index    = basket.length;
        var product         = new Array();        
        
        for (var i = 0; i < basket_products.length; i++) {
            basket_product  = new Array();
            product         = new Array();
            basket_product = basket_products[i].split('|');
            if (basket_product[0] != '') {
                product = get_product_by_id(basket_product[0]);
                if (false != product) {
                    put_product_to_basket(product['id'], basket_product[1]);
                }
            }
        }
        write_basket_entrys();
    }
    
    function setCookie(cookieName, cookieValue, expires) {
        document.cookie = escape(cookieName) + '=' + escape(cookieValue) + (expires ? '; expires=' + expires.toGMTString() : '');
    };

    function getCookie(cookieName) {
        var cookieValue = '';
        var posName = document.cookie.indexOf(escape(cookieName) + '=');
        if (posName != -1) {
            var posValue = posName + (escape(cookieName) + '=').length;
            var endPos = document.cookie.indexOf(';', posValue);
            if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos));
            else cookieValue = unescape(document.cookie.substring(posValue));
        }
        return (cookieValue);
    };

    function write_basket_entrys() {
        var div = document.getElementById('basket_entrys');
        var basket_string = '';
        var product      = new Array();     
        if (basket.length > 0) {
            for (var i = 0; i < basket.length; i++) {
                if ('' != basket_string) {
                    basket_string = basket_string + '<br />';
                }
                basket[i]['id']
                product = get_product_by_id(basket[i]['id']);
                if (false != product) {
                    basket_string = basket_string + basket[i]['quantity'] + ' x ' + product['name'];
                } else {
                    basket_string = basket_string + 'Produkt wurde nicht gefunden.';
                }
            }
            
            div.innerHTML = basket_string;
        } else {
            div.innerHTML = 'Es wurden noch keine Produkte ausgew&auml;hlt.';
        }
    }
    
    function refresh_basket() {
        var input    = null;
        var checkbox = null;
        var items_to_delete = new Array();
        if (basket.length > 0) {
            for (var i = 0; i < basket.length; i++) {
                input    = document.getElementById('product_quantity_' + basket[i]['id']);
                checkbox = document.getElementById('product_delete_' + basket[i]['id']);
                if (input) {
                    if (input.value == '' || input.value == '0') {
                        items_to_delete[items_to_delete.length] = basket[i]['id'];
                    } else {
                        basket[i]['quantity'] = input.value;
                    }
                    if (checkbox) {
                        if (checkbox.checked == true) {
                            items_to_delete[items_to_delete.length] = basket[i]['id'];                        
                        }
                    }
                }
            }
        }
        delete_items_from_basket(items_to_delete);
        write_basket_entrys();
        create_offer();
    }
    
    function delete_items_from_basket(item_ids) {
        if (item_ids.length > 0) {
            for (var i = 0; i < item_ids.length; i++) {
                delete_item_from_basket(item_ids[i]);
            }
        }        
        save_basket_to_cookie();
    }
    
    function delete_item_from_basket(item_id) {
        var tmp_basket = basket;
        var item_found = false;
        if (basket.length > 0) {
            for (var i = 0; i < basket.length; i++) {
                if (item_found == true) {
                    tmp_basket[i-1] = basket[i];
                }
                if (basket[i]['id'] == item_id) {
                    item_found = true;
                }
            }
        }
        tmp_basket.pop();
        if (tmp_basket.length == 0) {
            clear_basket();
        }
        basket = tmp_basket;
    }
    
    function create_offer() {
        var div = document.getElementById('angebot_produkte');
        var input_string = '';
        var html_string = '';
        if (div) {
            if (basket.length > 0) {
                html_string = '<table  width="650" cellspacing="10" cellpadding="10">';
                html_string = html_string + '<tr>';
                html_string = html_string + '<th style="border-bottom: 1px solid black; border-collapse: collapse;">Bild</th>';
                html_string = html_string + '<th style="border-bottom: 1px solid black; border-collapse: collapse;">Menge</th>';
                html_string = html_string + '<th style="border-bottom: 1px solid black; border-collapse: collapse;">Artikel</th>';
                html_string = html_string + '<th style="border-bottom: 1px solid black; border-collapse: collapse;">Artikelnummer</th>';
                html_string = html_string + '<th style="border-bottom: 1px solid black; border-collapse: collapse;">l&ouml;schen</th>';
                html_string = html_string + '</tr>';
                for (var i = 0; i < basket.length; i++) {
                    if ('' != input_string) {
                        input_string = input_string + '\n';
                    }
                    basket[i]['id']
                    product = get_product_by_id(basket[i]['id']);
                    if (false != product) {
                        input_string = input_string + basket[i]['quantity'] + ' x ' + product['name'];
                        
                        html_string = html_string + '<tr>';
                        html_string = html_string + '<td width="120" style="text-align: center;">';
                        if ('' != product['bild_url']) {
                            html_string = html_string + '<img src="'+ product['bild_url'] +'" />';
                        }
                        html_string = html_string + '</td>';
                        html_string = html_string + '<td width="70" style="text-align: center;"><input class="quantity" type="text" id="product_quantity_'+ basket[i]['id'] +'" value="'+ basket[i]['quantity'] +'" /></td>';
                        html_string = html_string + '<td width="300"><strong>'+ product['name'] +'</strong><br>'+ product['beschreibung'] +'</td>';
                        html_string = html_string + '<td width="120" style="text-align: center;">'+ product['artikelnummer'] +'</td>';
                        html_string = html_string + '<td width="120" style="text-align: center;"><input type="checkbox" id="product_delete_'+ product['id'] +'" value="ja" /></td>';
                        html_string = html_string + '</tr>';
                    } else {
                        input_string = input_string + 'Produkt wurde nicht gefunden.';
                    }                
                }
                html_string = html_string + '<tr>';
                html_string = html_string + '<td style="border-top: 1px solid black; border-collapse: collapse;">&nbsp;</td>';
                html_string = html_string + '<td style="border-top: 1px solid black; border-collapse: collapse;">&nbsp;</td>';
                html_string = html_string + '<td style="border-top: 1px solid black; border-collapse: collapse;">&nbsp;</td>';
                html_string = html_string + '<td style="border-top: 1px solid black; border-collapse: collapse;">&nbsp;</td>';
                html_string = html_string + '<td style="border-top: 1px solid black; border-collapse: collapse;">&nbsp;</td>';
                html_string = html_string + '</tr>';
                div.innerHTML = html_string + '</table><button onclick="refresh_basket();return false;">Angebotskorb aktualisieren</button>';
                div.innerHTML = div.innerHTML + '<input type="hidden" name="mail[Produkte]" value="'+ input_string +'" />';
            } else {
                div.innerHTML = 'Es wurden keine Produkte ausgew&auml;hlt.';
                div.innerHTML = div.innerHTML + '<input type="hidden" name="mail[Produkte]" value="Es wurden keine Produkte ausgew&auml;hlt." />';
            }    
        }        
    }
    
    function clear_basket() {
        basket = new Array();
        var jetzt = new Date();
        var Auszeit = new Date((jetzt.getTime() + 3600000));
        setCookie('basket', '', Auszeit);
    }