// initialisieren, damit dieses array dann auch in der main_js datei verfügbar ist
var bestseller_array;

/**
* initiates the XMLHttpRequest object as found here: http://www.webpasties.com/xmlHttpRequest
*
* @return Object XMLHttpRequest
*/
function getHTTPObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (E) {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
    
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

/**
 * Verarbeitet die reinkommen daten.
 *
 * Die Datensätze müssen im String mit "$" getrennt sein, und die Array spalten mit "|"
 *
 * @param string data
 * @return array
 */
function requestStringToArray(data) {
    var dataArray = new Array();
    var returnData = new Array();
    
    // Datensätze teilen
    dataArray = data.split('$');
    for (var i = 0; i < (dataArray.length); i++) {
        returnData[i] = new Array();
        returnData[i] = dataArray[i].split('|');
    }
    
    return returnData;
}

var httpReceive = function(){};

/**
 * Sendet eine anfrage per http request.
 *
 * @param ObjectName className
 * @param String myGet          (Hier können weitere GET Parameter übergeben werden, fürend mit einem & Zeichen)
 * @param String myAdress       (Hier die php datei angeben wie "ajax.php")
 */
function getAjaxData (myAction, myBackFunction) {
    if(myBackFunction == '')
    {
        myBackFunction = 'default';
    }
    if (typeof httpReceive[myBackFunction] == 'undefined') { 
        httpReceive[myBackFunction] = getHTTPObject(); 
    }     
    
    if (httpReceive[myBackFunction].readyState == 4 || httpReceive[myBackFunction].readyState == 0) {
        var timestamp = new Date().getTime();
        httpReceive[myBackFunction].open('GET', 'ajax.php?action=' + myAction + '&' + timestamp, true);
        httpReceive[myBackFunction].send(null);
        httpReceive[myBackFunction].onreadystatechange = function() {handleHttpReceive(myBackFunction);};
    }
}

/**
 * Verarbeitet den zurückkommenden Request von reciveConnect.
 *
 * 0	UNINITIALIZED Das Objekt wurde noch nicht initialisiert, d. h., es erfolgte noch kein Aufruf der Funktion open.
 * 1	LOADING 	  Das Request-Objekt wurde initialisiert, aber der Request noch nicht abgesetzt (mittels send).
 * 2	LOADED 	      Der Request wurde mittels der Funktion send -abgesetzt.
 * 3	INTERACTIVE   Teile der Antwort sind bereits verfügbar.
 *                    Über das Feld responseText kann auf die empfangenen Daten zugegriffen werden.
 * 4	COMPLETED 	  Die Bearbeitung des Requests ist beendet.
 *
 * @param ObjectName className
 */
function handleHttpReceive(myBackFunction) {

    switch (httpReceive[myBackFunction].readyState) {
        case 0 : // UNINITIALIZED
            break;
        case 1 : // LOADING
            httpReceive.send();
            break;
        case 2 : // LOADED
            break;
        case 3 : // INTERACTIVE
            break;
        case 4 : // COMPLETED
            if (httpReceive[myBackFunction].responseText != 'error' && httpReceive[myBackFunction].responseText != '') {
                var data = new Array();
                data = requestStringToArray(httpReceive[myBackFunction].responseText);
                if(myBackFunction != 'default')
                {
                    self[myBackFunction](data);
                }
                //eval(myBackFunction + '(data)');
            }
            break;
        default :  // fehlerhafter Status
    }
}

/**
 * Schreibt die Warenkorb Box rechts oben neu
 *
 * @param array data
 */
function setWarenkorb (data) {
    if (data['0']['0']) {
        // ist der Warenkorb noch blau, dann mach ihn Orange
        if (document.getElementById('cardhead').className == 'head') {
            document.getElementById('cardhead').className = 'orangehead';
            document.getElementById('cardproduct').style.backgroundColor = '#ffe9d7';
            document.getElementById('cardleft').className = 'lefthorange';
            document.getElementById('cardbottom').className = 'orange2';
            
            // neue elemente müssen erstellt werden
            // die Totale summer schreiben
            total = document.createElement('div');
            total.style.backgroundColor = '#ffd3b0';
            total.style.borderBottom = '2px solid #ffffff';
            total.style.borderTop = '2px solid #ffffff';
            total.style.padding = '4px';
            total.style.textAlign = 'center';
            total.id = 'cardtotal';
            total.innerHTML = '<strong>Total:</strong>&nbsp;' + data['0']['0'] + data['0']['1'];
            document.getElementById('cardproduct').appendChild(total);
            
            // Links erstellen
            links = document.createElement('div');
            links.className = 'body';
            links.style.backgroundColor = '#ffa660';
            links.style.padding = '4px 4px 2px 4px';
            links.style.border = 'none';
            links.style.borderBottom = '2px solid #fff;';
            
            linksdiv = document.createElement('div');
            linksdiv.style.cssFloat = 'right';
            
            linksdiva = document.createElement('a');
            linksdiva.setAttribute('href', 'checkout_step0.php');
            linksdiva.setAttribute('rel', 'nofollow');
            linksdiva.style.color = '#202020';
            linksdiva.style.paddingLeft = '10px';
            linksdiva.style.background = 'url(/images/gfx/buttons/pfeil_grau.gif) 0px 3px no-repeat';
            linksdiva.innerHTML = 'Kasse';
            
            linksdiv.appendChild(linksdiva);
            
            linksa = document.createElement('a');
            linksa.setAttribute('href', 'shopping_cart.php');
            linksa.setAttribute('rel', 'nofollow');
            linksa.style.color = '#ffffff';
            linksa.style.paddingLeft = '10px';
            linksa.style.background = 'url(/images/gfx/buttons/pfeil_weiss.gif) 0px 3px no-repeat';
            linksa.innerHTML = 'Warenkorb';
            
            links.appendChild(linksa);
            links.appendChild(linksdiv);
            document.getElementById('cardproduct').appendChild(links);
        }
        
        document.getElementById('cardproducts').innerHTML = '';
        document.getElementById('cardproducts').style.textAlign = 'left';
        
        document.getElementById('cardtotal').innerHTML = '<strong>Total:</strong>&nbsp;' + data['0']['0'] + data['0']['1'];
        
        // die Produkte die im warenkorb liegen erstellen
        for (var i = 1; i < (data.length - 1); i++) {
            product = document.createElement("div");
            product.style.height = '13px';
            product.style.overflow = 'hidden';
            
            strong = document.createElement('strong');
            strong.innerHTML = data[i]['0'] + '&nbsp;x&nbsp;&nbsp;';
            product.appendChild(strong);
            
            link = document.createElement('a');
            link.setAttribute('href', data[i]['2']);
            link.setAttribute('title', data[i]['1']);
            link.innerHTML = data[i]['1'];
            product.appendChild(link);
            
            document.getElementById('cardproducts').appendChild(product);
        }
    }
}


/**
 * Schreibt den Warenkorb Layer nachdem ein Produkt in den Warenkorb gepuscht wurde
 *
 * @param array data
 */
function setWarenkorbLayer (data) {
    document.getElementById('wait1').style.zIndex = 89;
    simpleDisplay('wait1');
    
    if (document.getElementById('dyncard')) {
        simpleDisplay('dyncard');
    } else {
        // Layer neu schreiben
        layer = document.createElement('div');
        layer.id = 'dyncard';
        layer.style.background = '#e4e4e4';
        layer.style.padding = '30px 20px';
        layer.style.textAlign = 'center';
        layer.style.font = 'normal 11px Tahoma';
        layer.style.color = '#000';
        layer.style.position = 'absolute';
        layer.style.top = '120px';
        layer.style.marginLeft = '295px';
        layer.style.zIndex = '99';
        layer.style.width = '430px';
        layer.style.display = 'block';
        
        // close button oben rechts erstellen
        divclose = document.createElement('div');
        divclose.className = 'warenkorb_close';
        
        divclosea = document.createElement('a');
        divclosea.setAttribute('href', '#');
        divclosea.setAttribute('rel', 'nofollow');
        divclosea.setAttribute('onClick', "simpleDisplay('wait1');simpleDisplay('dyncard');return false;");//disable_selects();
        divclosea.setAttribute('title', 'Schlie&szlig;en');
        
        divcloseaimg = document.createElement('img');
        divcloseaimg.setAttribute('src', '/images/gfx/buttons/close_x.gif');
        divcloseaimg.setAttribute('alt', 'Schlie&szlig;en');
        divcloseaimg.style.border = 'none';
        
        divclosea.appendChild(divcloseaimg);
        divclose.appendChild(divclosea);
        layer.appendChild(divclose);
        
        // text elemente erstellen
        layertext1 = document.createElement('div');
        layertext1.style.background = '#fff';
        layertext1.style.padding = '10px';
        
        layertext2 = document.createElement('div');
        layertext2.style.background = 'url(/images/gfx/detail/warenkorb_icon_grau.gif) no-repeat center right';
        
        layertext3 = document.createElement('span');
        layertext3.style.fontSize = '12px';
        layertext3.id = 'dyncard_product';
        layertext2.appendChild(layertext3);
        
        layerbr = document.createElement('br');
        layertext2.appendChild(layerbr);
        
        layertext4 = document.createElement('span');
        layertext4.style.fontWeight = 'bold';
        layertext4.innerHTML = 'wurde in Ihren <a href="shopping_cart.php" style="color:#000;font:bold 11px Tahoma;">Warenkorb</a> gelegt.';
        layertext2.appendChild(layertext4);
        layertext1.appendChild(layertext2);
        layer.appendChild(layertext1);
        
        layertext5 = document.createElement('div');
        layertext5.style.color = '#606060';
        layertext5.style.padding = '20px';
        layertext5.style.textAlign = 'left';
        layertext5.innerHTML = 'Eine &Uuml;bersicht &uuml;ber die Produkte in Ihrem Warenkorb finden Sie rechts oben auf der Website.';
        layerbr2 = document.createElement('br');
        layertext5.appendChild(layerbr2);
        layerbr3 = document.createElement('br');
        layertext5.appendChild(layerbr3);
        
        layertext6 = document.createElement('span');
        layertext6.style.color = '#000';
        layertext6 = document.createElement('strong');
        layertext6.innerHTML = 'Was m&ouml;chten Sie jetzt tun?';
        
        layerbr4 = document.createElement('br');
        layertext6.appendChild(layerbr4);
        
        // zubehör link
        layertext7 = document.createTextNode(' >> ');
        layertext6.appendChild(layertext7);
        
        layertext8 = document.createElement('a');
        layertext8.setAttribute('href', '#');
        layertext8.setAttribute('rel', 'nofollow');
        layertext8.style.color = '#000';
        layertext8.innerHTML = 'Passendes Zubeh&ouml;r kaufen';
        layertext6.appendChild(layertext8);
        layertext9 = document.createTextNode('.');
        layertext6.appendChild(layertext9);
        layerbr5 = document.createElement('br');
        layertext6.appendChild(layerbr5);
        
        // einkauf fortsetzen link
        layertext14 = document.createTextNode(' >> ');
        layertext6.appendChild(layertext14);
        layertext10 = document.createElement('a');
        layertext10.setAttribute('href', '#');
        layertext10.setAttribute('rel', 'nofollow');
        layertext10.setAttribute('onclick', "simpleDisplay('wait1');simpleDisplay('dyncard');return false;"); // disable_selects();
        layertext10.style.color = '#000';
        layertext10.innerHTML = 'Einkauf fortsetzen';
        layertext6.appendChild(layertext10);
        layertext11 = document.createTextNode('.');
        layertext6.appendChild(layertext11);
        layerbr6 = document.createElement('br');
        layertext6.appendChild(layerbr6);
        
        // zur kasse link
        layertext12 = document.createTextNode(' >> ');
        layertext6.appendChild(layertext12);
        
        layertext13 = document.createElement('a');
        layertext13.setAttribute('href', 'checkout_step0.php');
        layertext13.setAttribute('onclick', "simpleDisplay('wait1');simpleDisplay('dyncard');return false;"); // disable_selects();
        layertext13.setAttribute('rel', 'nofollow');
        layertext13.style.color = '#000';
        layertext13.innerHTML = 'Direkt zur Kasse gehen';
        layertext6.appendChild(layertext13);
        layertext14 = document.createTextNode('.');
        layertext6.appendChild(layertext14);
        layerbr7 = document.createElement('br');
        layertext6.appendChild(layerbr7);
        
        layertext5.appendChild(layertext6);
        layer.appendChild(layertext5);
        
        // banner muss hier noch rein
        
        // close button
        layerclose = document.createElement('a');
        layerclose.setAttribute('href', '#');
        layerclose.setAttribute('onClick', "simpleDisplay('wait1');simpleDisplay('dyncard');return false;"); // disable_selects();
        layerclose.setAttribute('title', 'Schlie&szlig;en');
        
        layercloseime = document.createElement('img');
        layercloseime.setAttribute('src', '/images/gfx/buttons/schliessen2.gif');
        layercloseime.setAttribute('alt', '');
        layercloseime.style.border = 'none';
        layerclose.appendChild(layercloseime);
        layer.appendChild(layerclose);
        
        divlayer = document.createElement('div');
        divlayer.style.textAlign = 'center';
        divlayer.style.position = 'absolute';
        divlayer.style.top = '0px';
        divlayer.style.left = '0px';
        divlayer.appendChild(layer);
        document.body.appendChild(divlayer);
    }

    document.getElementById('dyncard_product').innerHTML = data['0']['1'];
    
}

/**
  * Schreibt die Bestselleransicht, nachdem KD auf "weitere Bestseller anzeigen" button gedrückt hat
  * anfügen der Daten an das einzige schon vorhandene element
  *
  * @param array data
  * data[0] -> alle Allgemeinen Informationen =>[property_count], [property_style],
  *                                             [template_names -> 0-4 Elemente, Eigenschafs-/Produktgruppennamen]
  *                                             [property_unit -> 0-4 Element, Verschachtelt mit template_names -> 
  *                                              data[0][2] = 1.Name, data[0][3] = 1.Unit
  *                                              data[0][4] = 2.Name, data[0][5] = 2.Unit
  * data[1 - end] alle Produkt Daten          =>[product_link], [processor_logo], [displayed_price], [availability],
  *												[shopping_cart_link], [notepad], [image_path], [reviews_image],
  *												[free_delivery], [id], [short_desc], [name], 
  * 											[template_properties -> eigenes array, kann aus 0 bis 4 elementen bestehen]
  *												
  */
function setBestseller (data)
{    
    // letzte element entfernen, da php als letztes noch ein leeres Element mitliefert
    data.pop();
    
    // array mit products_ids für das erneute ein und ausklappen
    bestseller_array = new Array();
    bestseller_index = 0;
    
    if (data[1] && data[1][9]) {
        bestseller_array[bestseller_index] = data[1][9];
        bestseller_index++;
    }
    
    for (var i = 1; i < data.length; i++)
    {
        
		// linie und parent-div für die Artikel der Listenansicht erstellen
		if (!document.getElementById('line_' + data[i][9])) {
    		var line = document.createElement('div');
			line.className = 'line';
			line.id = 'line_'+data[i][9];
			line.innerHTML = '&nbsp;';
		} else {
		    document.getElementById('line_' + data[i][9]).style.display = 'block';
		}
		
		if (document.getElementById('mouseover_' + data[i][9])) {
		    continue;
		}
		
		var mouseover = document.createElement('div');
			mouseover.className = 'mouseover';
			mouseover.id = 'mouseover_'+data[i][9];
						
		// linke spalte
		var left = document.createElement('div');
			left.className = 'left';
			left.setAttribute('align', 'center');
			
		var leftinp = document.createElement('input');
			leftinp.className = 'check';
			
		// checkbox für verschiedene Browser positionieren
		if (window.sidebar)         // nur für Firefox
		{
		    leftinp.style.marginLeft = '-77px';
		}
		else if (window.toolbar)          // da Firefox schon behandelt wurde, nur für Safari
		{
		    leftinp.style.marginLeft = '-25px';
		}
		else if (window.opera)            // Browserweiche Opera
		{
		    leftinp.style.marginLeft = '-28px';
		}
		else if (window.postMessage)      // da Firefox, Safari und Opera schon behandelt wurden, nur IE 8 Browserweiche
		{
		    leftinp.style.marginLeft = '-29px';
		}
		else if (document.uniqueID)       // letzte Weiche für IE 6/7
		{
		    leftinp.style.marginLeft = '-40px';
		}
		
			leftinp.setAttribute('type', 'checkbox');
			leftinp.setAttribute('id', 'check_product_'+data[i][9]);
			leftinp.setAttribute('name', data[i][9]);
			leftinp.setAttribute('value', data[i][9]);
			leftinp.setAttribute('onclick', 'changeCheckForMatchProducts("'+data[i][9]+'")');
			
		var lefta = document.createElement('a');
			lefta.setAttribute('href', data[i][0]);
			lefta.setAttribute('title', data[i][11]);
			
		var leftadiv = document.createElement('div');
			leftadiv.className = 'product_image';
			leftadiv.style.background = 'url('+data[i][6]+') no-repeat center';
		
		if (data[i][1] != 'false')
		{	
        	var leftadivimg = document.createElement('div');
        		leftadivimg.style.background = 'url('+data[i][1]+') no-repeat bottom right';
        		leftadivimg.style.height = '79px';
        		leftadivimg.style.width = '78px';
        		leftadivimg.innerHTML = '&nbsp;';
        		
        	// an Produktbild hängen
        	leftadiv.appendChild(leftadivimg);
		}
			
		var leftrev = document.createElement('div');
		    leftrev.className = 'reviews';
			leftrev.style.height = '33px';
			
		// Kundenbewertung
		if (data[i][7] != 'false')
		{
		        leftrev.innerHTML = 'Kundenbewertung:';
            var leftrevimg = document.createElement('img');
			    leftrevimg.setAttribute('src', data[i][7]);
			    leftrevimg.className = 'review_images';
			    leftrevimg.style.marginTop = '1px';
			    
			// an leftrev anhängen
			leftrev.appendChild(leftrevimg);
		}
		else
		{
		    leftrev.innerHTML = '&nbsp;';
		}
			
		// DOM Baum linke spalte erstellen
		left.appendChild(leftinp);
		lefta.appendChild(leftadiv);
		left.appendChild(lefta);
		left.appendChild(leftrev);
		
		// nur wenn freedelivery möglich, wird es an erzeugt
		if (data[i][8] == 1)
		{
			var leftfree = document.createElement('a');
				leftfree.setAttribute('href', '/popup.php/section/freedelivery');
				leftfree.setAttribute('onclick', 'popupWindow("/popup.php/section/freedelivery", "versandkostenfrei", "width=400, height=280"); return false;');
				
			var leftfreeimg = document.createElement('img');
				leftfreeimg.setAttribute('src', '/images/gfx/listing/btn_freedelivery_20090428.gif');
				leftfreeimg.setAttribute('alt', 'versandkostenfrei');
				leftfreeimg.style.border = 'none';
				
			leftfree.appendChild(leftfreeimg);
			left.appendChild(leftfree);
		} else {
			var leftfree = document.createElement('div');
				leftfree.style.height = '15px';
				
			left.appendChild(leftfree);
		}
		
		// mittlere spalte 
		var middle = document.createElement('div');
			middle.className = 'middle';
			
		var middlename = document.createElement('div');
			middlename.className = 'product_name';
			
		var middlenamea = document.createElement('a');
			middlenamea.setAttribute('href', data[i][0]);
			middlenamea.setAttribute('title', data[i][11]);
			middlenamea.innerHTML = data[i][11];
			
		var middledesc = document.createElement('div');
			middledesc.className = 'short_description';
			middledesc.innerHTML = data[i][10];
		
		// DOM Baum mittlere spalte erstellen
		middlename.appendChild(middlenamea);
		middle.appendChild(middlename);
		middle.appendChild(middledesc);
		
		// Artikeleigenschaften, falls vorhanden anzeigen und an DOM Baum hängen
		if (data[0][0] != 'false')
		{
			var middleprop = document.createElement('div');
				middleprop.className = 'properties';
				
			var property = 12;
			// Eigenschafts-/Produktgruppennamen gerade, Einheiten ungerade Zahlen
			var property_names = 2;
			var property_units = 3;
			
				
			for (var j = 1; j <= data[0][0]; j++)
			{
				var middlepropele = document.createElement('div');
					middlepropele.className = 'passive';
					middlepropele.id = 'property_'+data[i][9]+'_'+j;
					
				if (property == 12)
				{
					middlepropele.style.border = 'none';
				}
					middlepropele.style.width = data[0][1]+'px';
				
			    if (data[0][property_units].indexOf('ANSI') != -1)
			    {
					middlepropele.setAttribute('title', data[0][property_names]+' in ANSI-Lumen')
					middlepropele.innerHTML = data[i][property]+' lm';
			    }
			    else
			    {
			        middlepropele.setAttribute('title', data[0][property_names])
			        middlepropele.innerHTML = data[i][property]+' '+data[0][property_units];
			    }
					// anhängen der Propertys ans paren div properties
					middleprop.appendChild(middlepropele);
					
					property++;
					property_names = property_names + 2;
					property_units = property_units + 2;
			}
			
			// 
			middle.appendChild(middleprop);
		}
		
		// rechte spalte einfügen
		var right = document.createElement('div');
			right.className = 'right';
			
		var rightprice = document.createElement('div');
			rightprice.className = 'price';
			rightprice.innerHTML = data[i][2];
			
		var rightdet = document.createElement('div');
			rightdet.className = 'avai';
			
		var rightdeta = document.createElement('a');
			rightdeta.setAttribute('href', data[i][0]);
			rightdeta.setAttribute('title', '');
			
		var rightdetaimg = document.createElement('img');
			rightdetaimg.setAttribute('src', '/images/gfx/buttons/btn_details.gif');
			rightdetaimg.setAttribute('alt', 'Produktdetails');
			rightdetaimg.setAttribute('title', 'Produktdetails');
			rightdetaimg.style.border = 'none';
			
		var rightavai = document.createElement('div');
			rightavai.className = 'avai';
			
		var rightavaia = document.createElement('a');
			rightavaia.setAttribute('href', '/popup.php/section/availability');
			rightavaia.setAttribute('target', '_blank');
			rightavaia.setAttribute('onclick', 'popupWindow("/popup.php/section/availability", "Verf&uuml;gbarkeit", "width=400, height=300");return false;');
			rightavaia.setAttribute('title', '');
			
		// sofort ab Lager als grüne Schrift darstellen
		var helpVar_sofort 	= 'sofort ab Lager';
		var helpVar_rest	= '24h-Service möglich';
		
		if (data[i][3].indexOf(helpVar_sofort) != -1)
		{
			var rightavaiasof = document.createElement('div');
				rightavaiasof.style.color = '#008000';
				rightavaiasof.innerHTML = helpVar_sofort;
				
			var rightavaiares = document.createTextNode(helpVar_rest);
			
				// Text an rightavaia hängen
				rightavaia.appendChild(rightavaiasof);
				rightavaia.appendChild(rightavaiares);
			
		} else {
			rightavaia.innerHTML = data[i][3];
		}
			
		var rightcard = document.createElement('div');
			rightcard.className = 'list';
			
		var rightcardform = document.createElement('form');
			rightcardform.setAttribute('action', data[i][4]);
			rightcardform.setAttribute('method', 'POST');
			rightcardform.style.margin = '0px';
			rightcardform.style.padding = '0px';
			
		var rightcardformprodhid = document.createElement('input');
			rightcardformprodhid.setAttribute('name', 'products_id');
			rightcardformprodhid.setAttribute('value', data[i][9]);
			rightcardformprodhid.setAttribute('type', 'hidden');
			
		var rightcardformprodinp = document.createElement('input');
			rightcardformprodinp.setAttribute('type', 'submit');
			rightcardformprodinp.setAttribute('value', 'In den Warenkorb');
			rightcardformprodinp.className = 'add_cart';
			
		var rightnote = document.createElement('div');
			rightnote.className = 'list';
			
		var rightnotea = document.createElement('a');
			rightnotea.setAttribute('href', data[i][5]);
			rightnotea.innerHTML = 'Auf den Merkzettel';
			
		// dom - baum mittlere spalte erstellen
		// 1. preis
		right.appendChild(rightprice);
		// 2. detailbutton
		rightdeta.appendChild(rightdetaimg);
		rightdet.appendChild(rightdeta);
		right.appendChild(rightdet);
		// 3. availability
		rightavai.appendChild(rightavaia);
		right.appendChild(rightavai);
		// 4. warenkorb
		rightcardform.appendChild(rightcardformprodhid);
		rightcardform.appendChild(rightcardformprodinp);
		rightcard.appendChild(rightcardform);
		right.appendChild(rightcard);
		// 5. merkzettel
		rightnote.appendChild(rightnotea);
		right.appendChild(rightnote);
		
		// dom - baum für das ganze produkt
		mouseover.appendChild(left);
		mouseover.appendChild(middle);
		mouseover.appendChild(right);
		
		// an die listenansicht hängen
		document.getElementById('listing_main').appendChild(mouseover);
		document.getElementById('listing_main').appendChild(line);
		
		// quick hack FF
        if (window.sidebar) {
            document.getElementById('check_product_'+data[i][9]).style.display = 'block';
            document.getElementById('check_product_'+data[i][9]).style.marginLeft = '-27px';
        }
        
		bestseller_array[bestseller_index] = data[i][9];
		bestseller_index++;
    }
    
    // alle deaktivierten Elemente für 1 Bestseller aktivieren
    document.getElementById('property_head').style.display = 'block';
    document.getElementById('ecke_oben').style.display = 'block';
    document.getElementById('listing_main').style.marginTop = '0px';
    document.getElementById('listing_main').style.borderLeft = '1px solid #F0EFEF';
    document.getElementById('line_0').style.display = 'block';
    if (data[1] && document.getElementById('line_'+data[1][9])) {
        document.getElementById('line_'+data[1][9]).style.display = 'block';
        document.getElementById('check_product_'+data[1][9]).style.display = 'block';
    }		
    document.getElementById('vergleich').style.display = 'block';
    
    // no_1 bild nicht anzeigen und richtig anzeigen
    if (document.getElementById('bestseller_number')) {
        document.getElementById('bestseller_number').style.visibility = 'hidden';
    }
	
	// "mehr Bestseller" ausblenden und "weniger Bestseller" sichtbar machen und für "mehr Bestseller" die JS - Funktion ändern
	document.getElementById('bestseller_slider').style.display      = 'none';
	document.getElementById('bestseller_slider_less').style.display = 'block';
	
	
	simpleDisplay('wait1');
    simpleDisplay('wait3');
}

/**
  * Sortiert die Bestseller Ansicht
  * neu Strukturierung der Bestseller
  *
  * @param array data
  *
  * data[0] -> alle Allgemeinen Informationen =>[sort_property -> stelle 1-4] [sortierung -> ASC/DESC] [category_id] 
  *                                             [shopType] [property -> ausgewählte Artikeleigenschaft (name/price/porperty_id] 
  *                                             [property_count -> anzahl property (zusätzlich zu name und price]
  *                                             [possible_propertys -> zusätzlich zu name/price, nur wenn property_count != 0]
  * data[1 - end] alle Produkt Daten          =>[products_id], [products_name]
  *												
  */
function setSortBestseller(data)
{
    // letzte Element entfernen, da PPH als letztes noch ein leeres Element mitliefert
	data.pop();
	
	// Hilfs Variablen
    var parent_element   = document.getElementById('listing_main');
    var help_element     = 0;
    
    for (var i = 1; i < data.length; i++)
    {
        // extrahieren des Produkts aus dem DOM Baum
        deleted_products = parent_element.removeChild(document.getElementById('mouseover_'+data[i][0]));
        deleted_lines    = parent_element.removeChild(document.getElementById('line_'+data[i][0]));
        
        // Element an den DOM Baum anhängen
        parent_element.appendChild(deleted_products);
        parent_element.appendChild(deleted_lines);
        
        // wenn Artikeleigenschaften vorhanden und ausgewählt -> blau färben
        if (data[0][5] != 'false')
        {
            for (var help_property_select = 1; help_property_select <= data[0][5]; help_property_select++)
            {
                // erstmal alle zurücksetzen
                if (document.getElementById('property_'+data[i][0]+'_'+help_property_select) == null)
                {
                    continue;
                }
                
                document.getElementById('property_'+data[i][0]+'_'+help_property_select).className = 'passive';
            }
            
            if (document.getElementById('property_'+data[i][0]+'_'+data[0][0]) != null)
            {
                document.getElementById('property_'+data[i][0]+'_'+data[0][0]).className = 'active';
            }
        }
        
        bestseller_array[help_element] = data[i][0];
        help_element++;
    }
    
    // Property Head anpassen
    var property_head;
    var property_head_link;
    var property_head_image;
    
    if (data[0][5] != 'false')
    {
        help_properties = 6;
        for (var k = 1; k <= data[0][5]; k++)
        {
            property_head       = document.getElementById('property_sort_'+k+'_verlauf');
            property_head_link  = document.getElementById('property_sort_'+k+'_link');
            property_head_image = document.getElementById('property_sort_'+k+'_image');
            
            // wenn zu Sortierende Produkteigenschaft -> blau einfärben, schware Schriftfarbe und Sortierungspfeil anpassen
            // wenn nicht -> grau einfärben, weiße Schriftfarbe und weiße Sortierungspfeile
            if (k == data[0][0])
            {
                property_head.className        = 'verlauf_blau';
                property_head_link.style.color = '#000';
                
                if (data[0][1] == 'ASC')
                {
                    property_head_image.setAttribute('src', '/images/gfx/listing_arrow_up.gif');
                } 
                else if (data[0][1] == 'DESC') 
                {
                    property_head_image.setAttribute('src', '/images/gfx/listing_arrow_down.gif');
                }
            }
            else
            {
                property_head.className = 'verlauf_grau';
                property_head_link.style.color = '#FFF';
                
                // alle anderen propertys zurücksetzen
                property_head_image.setAttribute('src', '/images/gfx/listing_arrow.gif');
            }
            
            help_properties++;
        }
    }
    
    // überprüfen ob nach Name oder Preis sortiert werden soll -> wenn nein, dann Namens- und Preissortierung zurücksetzen
    if (data[0][4] == 'name')
    {
        property_head       = document.getElementById('property_sort_name_verlauf');
        property_head_link  = document.getElementById('property_sort_name_link');
        property_head_image = document.getElementById('property_sort_name_image');
        
        property_head.className        = 'verlauf_blau';
        property_head_link.style.color = '#000';
        
        if (data[0][1] == 'ASC')
        {
            property_head_image.setAttribute('src', '/images/gfx/listing_arrow_up.gif');
        } 
        else if (data[0][1] == 'DESC') 
        {
            property_head_image.setAttribute('src', '/images/gfx/listing_arrow_down.gif');
        }
        
        // Preissortierung zurücksetzen
        document.getElementById('property_sort_price_verlauf').className = 'verlauf_grau';
        document.getElementById('property_sort_price_link').style.color = '#FFF';
        document.getElementById('property_sort_price_image').setAttribute('src', '/images/gfx/listing_arrow.gif')
    }
    else if (data[0][4] == 'price')
    {
        property_head       = document.getElementById('property_sort_price_verlauf');
        property_head_link  = document.getElementById('property_sort_price_link');
        property_head_image = document.getElementById('property_sort_price_image');
        
        property_head.className        = 'verlauf_blau';
        property_head_link.style.color = '#000';
        
        if (data[0][1] == 'ASC')
        {
            property_head_image.setAttribute('src', '/images/gfx/listing_arrow_up.gif');
        } 
        else if (data[0][1] == 'DESC') 
        {
            property_head_image.setAttribute('src', '/images/gfx/listing_arrow_down.gif');
        }
        
        // Namenssortierung zurücksetzen
        document.getElementById('property_sort_name_verlauf').className = 'verlauf_grau';
        document.getElementById('property_sort_name_link').style.color = '#FFF';
        document.getElementById('property_sort_name_image').setAttribute('src', '/images/gfx/listing_arrow.gif')
    }
    else 
    {
        // Namenssortierung zurücksetzen
        document.getElementById('property_sort_name_verlauf').className = 'verlauf_grau';
        document.getElementById('property_sort_name_link').style.color = '#FFF';
        document.getElementById('property_sort_name_image').setAttribute('src', '/images/gfx/listing_arrow.gif')
        
        // Preissortierung zurücksetzen
        document.getElementById('property_sort_price_verlauf').className = 'verlauf_grau';
        document.getElementById('property_sort_price_link').style.color = '#FFF';
        document.getElementById('property_sort_price_image').setAttribute('src', '/images/gfx/listing_arrow.gif')
    }
    

    // Wartescreen ausblenden
    simpleDisplay('wait1');
    simpleDisplay('wait3');
}
