//---------------------------- Initialisierung -> Abfrage Sprungmarken ---------------*/
function initializeView() {
	
	var detail = location.hash;
	if (detail != "") {
		detail = decodeURIComponent(detail.substr(1));
		
		var parts = detail.split("/");
		var count = parts.length;
		
		if (count == 5) 			
			getProduct(parts[0], parts[1], parts[2], parts[3], parts[4]);
	}
}


/*---------------------------- Suche und Produktauflistung ----------------------------*/
var showLastProduct = false; //letztes produkt der Liste wird angezeigt

//Zusammenstellen der Abfrage
function startSearch(page, topic) {

	var request = "?wg=" + wg;
	if (wg == "waregroup_1") {
	
		//Kueche - Stiltrichtung
		if (document.getElementById("field[stilrichtung]") && document.getElementById("field[stilrichtung]").value != "") 
			request += "&stilrichtung=" + document.getElementById("field[stilrichtung]").value;
		
		//Kuechentyp
		if (document.getElementById("field[kuechentyp]") && document.getElementById("field[kuechentyp]").value != "")
			request += "&kuechentyp=" + document.getElementById("field[kuechentyp]").value;
		
		//Kuechenform
		if (document.getElementById("field[kuechenform]") && document.getElementById("field[kuechenform]").value != "")
			request += "&kuechenform=" + document.getElementById("field[kuechenform]").value;
			
	} else {
		
		//Kategorie 1
		if (document.getElementById("field[category_1]").value != "")
			request += "&category_1=" + document.getElementById("field[category_1]").value;
		
		//Kategorie 2
		if (document.getElementById("field[category_2]").value != "")
			request += "&category_2=" + document.getElementById("field[category_2]").value;
			
		//Kategorie 3
		if (document.getElementById("field[category_3]").value != "")
			request += "&category_3=" + document.getElementById("field[category_3]").value;
	}
	
	//Hersteller
	if (document.getElementById("field[manufacturer]").value != "")
		request += "&manufacturer=" + document.getElementById("field[manufacturer]").value;
	
	//Preisspanne
	if (document.getElementById("field[price]").value != "")
		request += "&price=" + document.getElementById("field[price]").value;
	
	//PLZ
	if (document.getElementById("field[plz]").value != "" && document.getElementById("field[plz]").value != "PLZ")
		request += "&plz=" + document.getElementById("field[plz]").value;
	
	//Umkreis
	if (document.getElementById("field[rad]").value != "")
		request += "&rad=" + document.getElementById("field[rad]").value;
	
	//Seitenzahl
	if (page != "") request += "&page=" + page;
		
	//Seite
	if (topic != "") request += "&type=" + topic;	
	
	//Layer fuer Produktliste
	document.getElementById("productLayer").style['display'] = "block";
	
	//ansicht leeren und ajax-loader rein
	//document.getElementById("productDetail").innerHTML = '<div style="text-align:center; padding-top:150px;"><img src="/templates_Boerse/img/ajax-loader.gif" align="middle" /><br /><br />Daten werden geladen</div>';
	document.getElementById("details_loader").style.display = "";
	
	//radl im header anzeigen
	document.getElementById("axjaxLoaderImg").style['display'] = "inline";
	
	var link = "http://www.musterboerse.de/templates_Boerse/includes/ajax/suche.php" + request;
	
	httpReq(link , processSearchBig);
	
}

/*---------------------------- Produktliste wird erstellt ----------------------------*/
function processSearchBig() {
	if (http_request.readyState == 4) {
        		if (http_request.status == 200) {
        			
        			var xml = http_request.responseXML;
        			var list = xml.getElementsByTagName("products")[0];
        			
        			var items = list.getElementsByTagName("item"); //NodeListe mit den jeweiligen Produkten
			var count = items.length; //Anzahl der Produkte, fuer diese Seite maximal 3
            		
			pages = (list.attributes[0].nodeValue)*1; //gesamtanzahl an Seiten
			total = (list.attributes[1].nodeValue)*1; //Anzahl der Produkte
			page = (list.attributes[2].nodeValue)*1; //aktuelle Seite
			
			document.getElementById("titleNr").innerHTML = "(" + total + ")";
			
			item_array.splice(0, 10); //array fuer vorgaenger und nachfolger loeschen
			var content = '';
			var first = [];
			var last = [];
			var startID = 0;
			
			//keine Suchergebnisse - es werden zufaellig neun produkte ausgegeben
			if (total == 0) {
				content += '<a href="#" class="productListItem productListItem" style="text-align:center; cursor:default;">';
				
					content += '<br /><br />';
					content += 'Ihre Suche brachte keine Ergebnisse. Daher werden Ihnen die zuletzt eingestellten Produkte angezeigt.';
					content += '<br clear="all" />';
					
				content += '</a>';
				startID = 1;
			}
			
			for (var i = 0; i < count; i++) {
				
				var product = items[i];
				
				var id = product.attributes[0].nodeValue;
				var wg = product.attributes[1].nodeValue;
				var pos = product.attributes[2].nodeValue;
				var posStart = product.attributes[2].nodeValue;
				
				var imagesrc = product.getElementsByTagName("image")[0].firstChild.data;
				
				var distributor = product.getElementsByTagName("distributor")[0].childNodes[0].nodeValue;
				var img_title = distributor;
				if (distributor.length > 17) distributor = distributor.substr(0, 15) + "...";
				
				var name = product.getElementsByTagName("name")[0].childNodes[0].nodeValue;
				img_title += " " + name;
				if (name.length > 18) name = name.substr(0, 16) + "...";
				
				var plz = product.getElementsByTagName("plz")[0].childNodes[0].nodeValue;
				var location = product.getElementsByTagName("location")[0].childNodes[0].nodeValue;
				var price = product.getElementsByTagName("price")[0].childNodes[0].nodeValue;
				var oldprice = product.getElementsByTagName("oldprice")[0].childNodes[0].nodeValue;
				var reduced = product.getElementsByTagName("reduced")[0].childNodes[0].nodeValue;
				
				if (product.getElementsByTagName("distance")[0]) var distance = product.getElementsByTagName("distance")[0].childNodes[0].nodeValue;
				else var distance = "";
				
				var prev = [];
				if (product.getElementsByTagName("prev")[0])  {
					prev['id'] = product.getElementsByTagName("prev")[0].attributes[0].nodeValue;
					prev['wg'] = product.getElementsByTagName("prev")[0].attributes[1].nodeValue;
					prev['pos'] = product.getElementsByTagName("prev")[0].attributes[2].nodeValue;
					prev['posStart'] = product.getElementsByTagName("prev")[0].attributes[3].nodeValue;
					prev['name'] = product.getElementsByTagName("prev")[0].childNodes[0].nodeValue;
				}
				
				var next = [];
				if (product.getElementsByTagName("next")[0])  {
					next['id'] = product.getElementsByTagName("next")[0].attributes[0].nodeValue;
					next['wg'] = product.getElementsByTagName("next")[0].attributes[1].nodeValue;
					next['pos'] = product.getElementsByTagName("next")[0].attributes[2].nodeValue;
					next['posStart'] = product.getElementsByTagName("next")[0].attributes[3].nodeValue;
					next['name'] = product.getElementsByTagName("next")[0].childNodes[0].nodeValue;
				}
				
				var prods = [];
				prods.push(prev);
				prods.push(next);
				item_array.push(prods);
				
				//beim letzten Produkt wird keine Border angezeigt
				if (i == (count-1)) var addclass = " lastProduct";
				else var addclass = "";
				
				if (i == 0) {
					//erstes produkt merken zum Annzeigen
					first['id'] = id;
					first['wg'] = "waregroup_" + wg;
					first['pos'] = pos;
					first['item'] = startID+1;
					first['name'] = img_title;
					first['posStart'] = posStart;
				} 
				
				if (i == (count-1)) {
					//letztes produkt merken zum Anzeigen
					last['id'] = id;
					last['wg'] = "waregroup_" + wg;
					last['pos'] = pos;
					last['item'] = startID+1;
					last['name'] = img_title;
					last['posStart'] = posStart;
				}
				
				//Klickevent fuer Produktdetails
				var onclick = 'getProduct(\''+ id +'\', \'waregroup_'+ wg +'\', \''+ img_title +'\', \''+ pos +'\', \''+ (startID+1) +'\', \'' + posStart + '\');';
				
				content += '<a id="item_' + (startID+1) + '" class="productListItem productListItem_inactive ' + addclass + '" onclick="' + onclick + '">';
				
					content += '<table cellpadding="0" cellspacing="0">';
					content += '<tr><td align="center" valign="middle">';
					content += '<img src="/tycon/pic.php?topic=mb_waregroup_' + wg + '&' + imagesrc + '" border="0" alt="' + img_title + '" />';
					content += '</td></tr></table>';
					
					content += '<div class="productListItemText_left">';
						content += '<strong>' + distributor + '</strong><br />' + name + '<br />';
						if (distance != "") content += 'Entfernung: ' + distance + ' km';
						content += '<br /><strong>Standort:</strong><br />' + plz + ' ' + location;
					content += '</div>';
					
					var diff = oldprice - price;
					content += '<div class="productListItemText_right">';
						content += '<strong>Preis &amp; Ersparnis:</strong><br />' + oldprice + ' &euro;<br />';
						content += '<span class="save_price">' + diff.toFixed(0) + ' &euro; (ca. ' + reduced + ' %)</span><br />';
						content += '<strong>Abverkaufspreis:</strong><br /><span class="new_price">nur ' + price + ' &euro;</span>';
					content += '</div>';
					
					content += '<br clear="all" />';
					
				content += '</a>';
				startID++;
			}
			
			if (count > 0) {
			
				//ProductListe ersetzten
				document.getElementById("productList").innerHTML = content;
				
				//Pager Anpassen
				if (page < 5)
					var start = 1;
				else
					var start = page - 4;
					
				var end = start + 7;
				if (end > pages) end = pages;
				
				var pager = "";
				if (start > 1) pager += "... ";
				for(i = start; i <= end; i++) {
					
					if (i == page) pager += '<strong>' + i + '</strong>';
					else pager += '<span class="page" onclick="startSearch(' + i + ');">' + i + '</span>';
					if (i!=end) pager += " | ";
				}
				if (end < pages) pager += " ...";
				
				document.getElementById("scriptPagerTop").innerHTML = pager;
				document.getElementById("scriptPagerBottom").innerHTML = pager;
				
				var prev = page*1 - 1;
				var next = page*1 + 1;
				
				if (total > 0) {
					document.getElementById("link_prev_top").style['display'] = "inline";
					document.getElementById("link_prev_bottom").style['display'] = "inline";
					document.getElementById("link_next_top").style['display'] = "inline";
					document.getElementById("link_next_bottom").style['display'] = "inline";
					
					//vor und zurueckpfeile anpassen
					if (page > 1) document.getElementById("link_prev_top").onclick = function () { startSearch(prev, topic); };
					else document.getElementById("link_prev_top").onclick = null;
					
					if (page > 1) document.getElementById("link_prev_bottom").onclick = function () { startSearch(prev, topic); };
					else document.getElementById("link_prev_bottom").onclick = null;
					
					if (page < pages) document.getElementById("link_next_top").onclick = function () { startSearch(next, topic); };
					else document.getElementById("link_next_top").onclick = null;
					
					if (page < pages) document.getElementById("link_next_bottom").onclick = function () { startSearch(next, topic); };
					else document.getElementById("link_next_bottom").onclick = null;
				} else {
					document.getElementById("link_prev_top").style['display'] = "none";
					document.getElementById("link_prev_bottom").style['display'] = "none";
					document.getElementById("link_next_top").style['display'] = "none";
					document.getElementById("link_next_bottom").style['display'] = "none";
				}
		
				//erstes Produkt laden (produkt wird aktiv gesetzt udn pfeil wird angepasst)
				if (showLastProduct == true) {
					showLastProduct = false;
					getProduct(last['id'], last['wg'], last['name'], last['pos'], last['item'], last['posStart']);
				} else {
					getProduct(first['id'], first['wg'], first['name'], first['pos'], first['item'], first['posStart']);
				}
				
			}
			
			document.getElementById("productLayer").style['display'] = "none";
			//radl im header verbergen
			document.getElementById("axjaxLoaderImg").style['display'] = "none";
        		} else {
            		alert("Bei der Abfrage ist ein Problem aufgetreten. Bitte probieren Sie es sp\xE4ter nochmal. Danke");
        		}
    	}
}

/*---------------------------- Funktionen fuer Detailansicht ----------------------------*/
var path = "";
function getProduct(id, wg, name, pos, item, posStart) {
	
	//Titel setzten
	document.getElementById("productTitle").innerHTML = name;
	
	//link
	var link = "http://www.musterboerse.de/templates_Boerse/includes/ajax/productDetailXML.php?pos=" + pos + "&wg=" + wg + "&itemid=" + id;
	
	//AjaxLoader anzeigen
	//document.getElementById("productDetail").innerHTML = '<div style="text-align:center; padding-top:150px;"><img src="/templates_Boerse/img/ajax-loader.gif" align="middle" /><br /><br />Daten werden geladen</div>';
	document.getElementById("details_loader").style.display = "";
	
	//pruefen auf letztes/erstes Produkt in Liste
	if (item == 0) {
		if (page*1 > 1) {
			showLastProduct = true;
			startSearch(page*1-1, topic);
		}
	} else if (item == 11 && page*1 < pages*1) {
		startSearch((page*1+1), topic);
	} else {
		httpReq(link, processDetail);
	
		//alle Produkte inaktive setzten
		for (var i = 1; i <= 10; i++) {
			if (document.getElementById("item_" + i))
				document.getElementById("item_" + i).className = "productListItem productListItem_inactive";
		}
		
		var index = item - 1;
		
		//pfeile in produktansicht anpassen
		if (item > 0 && item <= 10) {
			
			//vorgaenger
			if (item_array[index][0] != null && item_array[index][0]['id'] != null && item_array[index][0]['name'] != null) {
				document.getElementById("prev_prod").style['display'] = "inline";
				var name_prev = item_array[index][0]['name'].replace(/_/, " ");
				document.getElementById("prev_prod").onclick = function () { getProduct(item_array[index][0]['id'], "waregroup_" + item_array[index][0]['wg'], name_prev, item_array[index][0]['pos'], item*1-1, page, pages); };
			} else {
				//kein vorgaenger vorhanden -> pfeil ausblenden
				document.getElementById("prev_prod").style['display'] = "none";
			}
			
			//nachfolger
			if (item_array[index][1] != null && item_array[index][1]['id'] != null && item_array[index][1]['name'] != null) {
				document.getElementById("next_prod").style['display'] = "inline";
				var name_next = item_array[index][1]['name'].replace(/_/, " ");
				document.getElementById("next_prod").onclick = function () { getProduct(item_array[index][1]['id'], "waregroup_" + item_array[index][1]['wg'], name_next, item_array[index][1]['pos'], item*1+1, page, pages); };
			} else {
				//kein nachfolger vorhanden -> pfeil ausblenden
				document.getElementById("next_prod").style['display'] = "none";
			}
		}
		
		//links updaten (drucken, kontakt freund/haendler, haendlerdetails)
		var site = "http://" + document.domain;
		
		//print
		document.getElementById("link1").href = site + "/print_productdetails.html?id=" + id + "&wg=" + wg;
		//contact friend
		document.getElementById("link2").href = site + "/contactFriendBoerse.html?pos=" + pos +"&wg=" + wg + "&itemid=" + id +"&srcTopic=mb_" + wg;
		//contact dealer
		document.getElementById("link3").href = site + "/contactDealerBoerse.html?pos=" + pos + "&wg=" + wg + "&itemid=" + id + "&srcTopic=mb_" + wg;
		//dealer data
		document.getElementById("link4").href = site + "/dealerDataMB.html?wg=" + wg + "&itemid=" + id;
		document.getElementById("link5").href = site + "/dealerDataMB.html?wg=" + wg + "&itemid=" + id;

		//Position des Pfeiles anpassen
		var newpos = 250 + item*102;
		document.getElementById("productArrow").style['top'] = newpos + "px";
		document.getElementById("item_" + item).className = "productListItem productListItem_active";
	}
	
	//Sprunkmarke setzten
	location.hash = "#top";
	path = id + "/" + wg + "/" + name + "/" + posStart + "/" + item;
	
}

function processDetail(){
	
	if (http_request.readyState == 4) {
		
        		if (http_request.status == 200) {
        	
		        	//Text der Detailansicht uebergegeben
		        	location.hash = "#" + encodeURIComponent(path);
		            //document.getElementById("productDetail").innerHTML = http_request.responseText;
		            
		            var details = http_request.responseXML;
		            
		            //Allgemeine Infos
		            var allg = details.getElementsByTagName("general")[0].childNodes[0].nodeValue;
		            document.getElementById("allg").innerHTML = allg;
		            
		            //Dimension
		            var dim = details.getElementsByTagName("dim")[0].childNodes[0].nodeValue;
		            document.getElementById("dim").innerHTML = dim;
		            
		            //Spuele
			var spuele = details.getElementsByTagName("spuele")[0].childNodes[0].nodeValue;
			document.getElementById("spuele").innerHTML = spuele;
		            
		            //Geraete
		            var geraete = details.getElementsByTagName("geraete")[0].childNodes[0].nodeValue;
		            document.getElementById("geraete").innerHTML = geraete;
		            
		             //zusatz
		            var zusatz = details.getElementsByTagName("info")[0].childNodes[0].nodeValue;
		            document.getElementById("zusaetzl_optionen").innerHTML = zusatz;
		            
		            //bilder aktualisieren
		            var images = details.getElementsByTagName("images")[0];
		       	
		            var thumbnailBox = "";
		            var i=1;
		            document.getElementById("thumbnailBox").innerHTML = "";
		            while (i<=5) {
		            	
		            	var img = images.getElementsByTagName("image"+i);
		            	if (img.length > 0) {
		            
			        		var link = img[0].getElementsByTagName("link")[0].childNodes[0].nodeValue;
			        		var imgPath = img[0].getElementsByTagName("img")[0].childNodes[0].nodeValue;
			        		var imgPathSmall = img[0].getElementsByTagName("imgSmall")[0].childNodes[0].nodeValue;
			        		var imgSrc = img[0].getElementsByTagName("imgSrc")[0].childNodes[0].nodeValue;
			        		var title = img[0].getElementsByTagName("title")[0].childNodes[0].nodeValue;
			        		var w = img[0].getElementsByTagName("width")[0].childNodes[0].nodeValue;
			        		var h = img[0].getElementsByTagName("height")[0].childNodes[0].nodeValue;
			        		
			        		//src des grossen bildes anpassen
			        		if (i==1) {
			        			document.getElementById("bigImage").src = imgPath;
			        		}
		
			        		//thumbnailsbox erstellen
			        		document.getElementById("thumbnailBox").innerHTML += '<div class="productImageBox" onclick="switchImage(\'bigImage\', \'' + imgPath + '\',\'' + w + '\',\'' +h + '\',\'' + imgSrc + '\', \'' + link + '\')">'
			        			+ '<table cellpadding="1" cellspacing="0" height="100%" align="center"><tr><td valign="middle">'
						+ '<img src="' + imgPathSmall + '" alt="Bild' + i + '" />'
						+ '</td></tr></table>'
					+ '</div>';
					if (i != 1) {
						document.getElementById("thumbnailBox").innerHTML += '<a href="/templates_Boerse/lightbox/lightbox.php?type=img&imgurl=' + imgPath + '" rel="width:600,height:600" id="mb' + i +'" class="mb_pic" title="' + title + '" style="display:none;">&nbsp;</a>';
					}
					
					//link anpassen fuer lighhtbox des grossen bildes
			        		document.getElementById("mb" + i).href = link;
			        		document.getElementById("mb" + i).title = title;
			        		document.getElementById("mb" + i).className = "mb_pic";
			        		document.getElementById("mb" + i).setAttribute('rel', 'width:600,height:600');
			        		
		            	} else {
		            		//entfernen des links fuer lightbox
			        		document.getElementById("thumbnailBox").innerHTML += '<a href="" id="mb' + i +'" title="Bild' + i + '" style="display:none;">&nbsp;</a>';
			        		
			        		document.getElementById("mb" + i).title = "";
			        		document.getElementById("mb" + i).className = "";
			        		document.getElementById("mb" + i).removeAttribute('rel');
		            	}
		            	
		            	i++;
		           }
		           
		           picBox.initialize('mb_pic', {
						useOverlay: true,
						fixedTop: 50,
						onOpen: hideScrollbars,
						onClose: showScrollbars});
						
		            //thumbnailbox zuweisen
		            //document.getElementById("thumbnailBox").innerHTML = thumbnailBox;
		
		            document.getElementById("details_loader").style.display = "none";
		            
	        } else {
	            alert("Bei der Abfrage ist ein Problem aufgetreten. Bitte probieren Sie es sp\xE4ter nochmal. Danke");
	        }
    	}
}
