window.onload = loadIndex;


function loadIndex() { // load indexfile

b64arrays();

// most current browsers support document.implementation
	if (document.implementation && document.implementation.createDocument) {
		xmlDoc = document.implementation.createDocument("", "", null);
	}
// MSIE uses ActiveX
	else if (window.ActiveXObject) {
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = "false";
	}
	xmlDoc.load("/upload/BGM/images/Suche/xyz.xml");
	//xmlDoc.load("xyz.xml");
}

/*function specialCharacterRemoval(s) { 
	var returnString = s;
	
	returnString = Replace(str, "&", "&amp;")
    returnString = Replace(str, "'", "&apos;")
    returnString = Replace(str, "<", "&lt;")
    returnString = Replace(str, ">", "&gt;")
    returnString = Replace(str, Chr(34), "&quot;")
    
    returnString = Replace(str, "Ä", "&#196;", , , vbBinaryCompare)
    returnString = Replace(str, "Ö", "&#214;", , , vbBinaryCompare)
    returnString = Replace(str, "Ü", "&#220;", , , vbBinaryCompare)
    returnString = Replace(str, "ä", "&#228;", , , vbBinaryCompare)
    returnString = Replace(str, "ö", "&#246;", , , vbBinaryCompare)
    returnString = Replace(str, "ü", "&#252;", , , vbBinaryCompare)
    returnString = Replace(str, "ß", "&#223;", , , vbBinaryCompare)
    
    returnString = Replace(str, "é", "&#233;", , , vbBinaryCompare)
    returnString = Replace(str, "ê", "&#234;", , , vbBinaryCompare)
    returnString = Replace(str, "à", "&#224;", , , vbBinaryCompare)
    returnString = Replace(str, "ë", "&#235;", , , vbBinaryCompare)
}*/


function searchIndex() { 
	document.getElementById("rs").innerHTML = "";
	insgTreffer=0;
	
	var alleAnbieter = xmlDoc.getElementsByTagName("Anbieter");
	results = new Array;
	
	/* Produktsuche */
	if (document.getElementById("produktsuche").style.display=="block") {
		var searchterm = document.getElementById("searchprod").value;
		var exp = new RegExp(searchterm,"i");
		
		
		/* Alle anbieter durchlaufen */
		for (var i=0; i<alleAnbieter.length; i++) {
			var treffer = 0;
			/* und jedes Produkt prüfen  */
			var alleProdukte = alleAnbieter[i].getElementsByTagName("Produkt");
			for (var ap=0; ap<alleProdukte.length; ap++) {
				/* per regExp */
				if ((alleProdukte[ap].lastChild.nodeValue.match(exp) != null) && (searchterm.length!=0)) {
					/* wenn Suchbegriff und Produkt übereinstimmen, dann zwei Punkte - ansonsten einen */
					if (alleProdukte[ap].lastChild.nodeValue.toLowerCase()==searchterm.toLowerCase()) {
						treffer+=2;
					} else {
						treffer+=1;
					}
				}
			}
			/* wenn treffer erzielt wurden,  */
			if (treffer>0) {
				/* den Anbieter in die Ergebnissliste einfügen */
				results.push(new Array (treffer,alleAnbieter[i], true));
				insgTreffer++;
			}
		}
	} 
	
	
	/* Anbietersuche */	
	if (document.getElementById("anbietersuche").style.display=="block") {
		var searchterm = document.getElementById("searchme").value;
		var exp = new RegExp(searchterm,"i");
		
		
		/* Alle anbieter durchlaufen */
		for (var i=0; i<alleAnbieter.length; i++) {
			var treffer = 0;
			
			
			/* Namen prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Name")[0];
			if (field) {
				if ((field.lastChild.nodeValue.match(exp) != null) && (searchterm.length!=0)) {
						/* wenn Suchbegriff und Name übereinstimmen, dann zwei Punkte - ansonsten einen */
						if (field.lastChild.nodeValue.toLowerCase()==searchterm.toLowerCase()) {
							treffer+=3;
						} else {
							treffer+=2;
						}
				}
			}
			
			
			/* Firma prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Firma")[0];
			if (field) {
				if ((field.lastChild.nodeValue.match(exp) != null) && (searchterm.length!=0)) {
						/* wenn Suchbegriff und Name übereinstimmen, dann zwei Punkte - ansonsten einen */
						if (field.lastChild.nodeValue.toLowerCase()==searchterm.toLowerCase()) {
							treffer+=3;
						} else {
							treffer+=2;
						}
				}
			}


			
			/* Warengruppen prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Warengruppe");
			
			
			for (var w=0; w<warengruppen.length; w++) 
				{
				if (warengruppen[w] != "") 
					{
					var exp_w = new RegExp(warengruppen[w],"i");
					for (var aW=0; aW<field.length; aW++) 
						{
						if (field[aW].lastChild.nodeValue.match(exp_w)) 
							{
							if (warengruppen[w].toLowerCase() == field[aW].lastChild.nodeValue.toLowerCase()) {
								treffer+=2;
							} else 
							{
								treffer+=1;
							}
							
						}
					}
				}
			
			}
			
			
		
			
			
			
			
			
			/* Sparten prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Sparte");
			for (var s=0; s<sparten.length; s++) 
			{
				for (var aS=0; aS<field.length; aS++) {
					if (sparten[s].toLowerCase()==field[aS].lastChild.nodeValue.toLowerCase()) {
						treffer+=1;
					}
				}
			}
			
			
			
			/* Serviceleistungen prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Serviceleistung");
			for (var l=0; l<serviceleistungen.length; l++) 
			{
				for (var aL=0; aL<field.length; aL++) {
					if (serviceleistungen[l].toLowerCase()==field[aL].lastChild.nodeValue.toLowerCase()) {
						treffer+=1;
					}
				}
			}

			
					/* Zertifikate prüfen */
			var field = alleAnbieter[i].getElementsByTagName("Zertifikat");
			for (var z=0; z<zertifikate.length; z++) 
			{
				for (var aZ=0; aZ<field.length; aZ++) {
					if (zertifikate[z].toLowerCase()==field[aZ].lastChild.nodeValue.toLowerCase()) {
						treffer+=1;
					}
				}
			}

			
			
			
			
			
			if (treffer>0) 
			{
				/* den Anbieter in die Ergebnisliste einfügen */
				results.push(new Array (treffer,alleAnbieter[i], false));
				insgTreffer++;
			}
			
			



			
			
			
			
			
			
		}
}
	
	writeStat(searchterm, results.length);
	showResults(results, searchterm);

	
	
}


function writeStat(searchterm, count) {

    var xmlHttpObject = false;
    // Überprüfen ob XMLHttpRequest-Klasse vorhanden und erzeugen von Objekte für IE7, Firefox, etc.
    if (typeof XMLHttpRequest != 'undefined') {
        xmlHttpObject = new XMLHttpRequest();
    }
    // Wenn im oberen Block noch kein Objekt erzeugt, dann versuche XMLHTTP-Objekt zu erzeugen
    // Notwendig für IE6 oder IE5
    if (!xmlHttpObject) {
        try {
            xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                xmlHttpObject = null;
            }
        }
    }

    var art = "";

    if (document.getElementById("produktsuche").style.display == "block") {
        art = "p";
    }

    if (document.getElementById("anbietersuche").style.display == "block") {
        art = "a";
    }

    xmlHttpObject.open('GET', '/action/stat.aspx?q=' + searchterm + '&s=' + art + '&count=' + count);
    xmlHttpObject.send(null);

    

}



function showResults(results, searchterm) {

	if (results.length > 0) {
		var rs = document.getElementById("rs");
		var head = document.createElement("h5");

		if (insgTreffer==1) {
			var searchedfor = "Ihre Suche hat 1 Ergebnis erzielt!";
		} else {
			var searchedfor = "Ihre Suche hat "+insgTreffer+" Ergebnisse erzielt!";
		}
		searchedfor += "<br/><a href=\"javascript:self.print()\">Suchergebnis drucken</a>";
		var txtStr = "";
		results.sort(sorting);
		var bgcolor = "#d4eed3";
		var allNr = "";
		for (var i=0;i<results.length;i++) {
		
			if ((i % 2) == 0) {
				bgcolor = "#FFFFFF";
			} else {
				bgcolor = "#d4eed3"
			}
			
			
			txtStr += "<tr style='background-color:" + bgcolor + ";'><td>";
					if (results[i][1].getElementsByTagName("Firma")[0]) {
							txtStr += results[i][1].getElementsByTagName("Firma")[0].lastChild.nodeValue+"<br>";
						}
						
						if (results[i][1].getElementsByTagName("Name")[0]) {
							txtStr += results[i][1].getElementsByTagName("Name")[0].lastChild.nodeValue+"<br>";
						}
												
						/*if (results[i][1].getElementsByTagName("Strasse")[0]) {
							txtStr += decode_base64(d(results[i][1].getElementsByTagName("Strasse")[0].lastChild.nodeValue))+"<br>";
						}
						
						if (results[i][1].getElementsByTagName("PLZ")[0]) {
							txtStr += decode_base64(d(results[i][1].getElementsByTagName("PLZ")[0].lastChild.nodeValue))+" ";
						}
						
						if (results[i][1].getElementsByTagName("Ort")[0]) {
							txtStr += decode_base64(d(results[i][1].getElementsByTagName("Ort")[0].lastChild.nodeValue))+"<br>";
						}*/

						// Standnummern ausgeben 
						var field = results[i][1].getElementsByTagName("Stand")
						var standStr = "";
						var l = false;
						if (field) {
							for (var s=0; s<field.length; s++) {
								if (standStr!="")
									standStr+=", ";
									
								standStr += field[s].lastChild.nodeValue;
								
								if (field[s].attributes.getNamedItem("x") && field[s].attributes.getNamedItem("y")) {
									l = true;
								}
								
								if (allNr!="")
									allNr+=",";
									
								allNr += results[i][1].getElementsByTagName("Nr")[0].lastChild.nodeValue;
								
							}
							if (standStr.length>0)
								if (l) {
									txtStr += "<br><a target='_blank' href='planzoom.html?m="+ results[i][1].getElementsByTagName("Nr")[0].lastChild.nodeValue +"'>Stand-Nr.: " + standStr + "<img src='plan.gif' border='0'></a><br>";
								} else {
									txtStr += "<br>Stand-Nr.: " + standStr + "<img src='plan.gif' border='0'><br>";
								}
								
						}
												
						if (results[i][1].getElementsByTagName("Telefon1")[0]) {
							txtStr += "Tel.: " + decode_base64(d(results[i][1].getElementsByTagName("Telefon1")[0].lastChild.nodeValue))+"<br>";
						}
						
						/*if (results[i][1].getElementsByTagName("Telefon2")[0]) {
							txtStr += "Tel. 2: " + decode_base64(d(results[i][1].getElementsByTagName("Telefon2")[0].lastChild.nodeValue))+"<br>";
						}*/
						
						if (results[i][1].getElementsByTagName("Email")[0]) {
							txtStr += "<a href='mailto:"+decode_base64(d(results[i][1].getElementsByTagName("Email")[0].lastChild.nodeValue))+"'>" + decode_base64(d(results[i][1].getElementsByTagName("Email")[0].lastChild.nodeValue))+"</a>"+"<br>";
						}
						
							if (results[i][1].getElementsByTagName("Website")[0]) {
							txtStr += "<a href="+decode_base64(d(results[i][1].getElementsByTagName("Website")[0].lastChild.nodeValue))+" target='_blank'>" + decode_base64(d(results[i][1].getElementsByTagName("Website")[0].lastChild.nodeValue))+"</a>";
						}
			
			//txtStr += "(" + results[i][0] +")</td>";
			txtStr += "</td>";

			var rSparten = results[i][1].getElementsByTagName("Sparte");
			var spartenAusgabe = "";
			
			
			var rWarengruppen = results[i][1].getElementsByTagName("Warengruppe");
			var warengruppenAusgabe = "";

			for (var x=0;x<rSparten.length;x++) {
				if (spartenAusgabe!="") {
					spartenAusgabe+=", ";
				}
				spartenAusgabe+=rSparten[x].lastChild.nodeValue;
			}

			txtStr += "<td>" + spartenAusgabe + "</td>";
			
			
			
			//pp;
			txtStr += "</td>";

			var rServiceleistungen = results[i][1].getElementsByTagName("Serviceleistung");
			var ServiceleistungenAusgabe = "";
			
			for (var x=0;x<rServiceleistungen.length;x++) {
				if (ServiceleistungenAusgabe!="") {
					ServiceleistungenAusgabe+=", ";
				}
				ServiceleistungenAusgabe+=rServiceleistungen[x].lastChild.nodeValue;
			}

			txtStr += "<td>" + ServiceleistungenAusgabe + "</td>";
			
			
			
			
			
			
			//pp2;
				txtStr += "</td>";

			var rProdukte = results[i][1].getElementsByTagName("Produkt");
			var ProdukteAusgabe = "";
			
		

			for (var x=0;x<rProdukte.length;x++) {
				if (ProdukteAusgabe!="") {
					ProdukteAusgabe+=", ";
				}
				ProdukteAusgabe+=rProdukte[x].lastChild.nodeValue;
			}

			txtStr += "<td>" + ProdukteAusgabe + "</td>";
			
			
			
			
			
			if (results[i][2]==true) {
				
				//var produkte = results[i][1].getElementsByTagName("produkt");
				//var searchterm = document.getElementById("searchprod").value;
				
							/*searchterm = searchterm.replace(/ß/g, "ss");
							searchterm = searchterm.replace(/ä/g, "ae");
							searchterm = searchterm.replace(/ü/g, "ue");
							searchterm = searchterm.replace(/ö/g, "oe");*/
			
				//var exp = new RegExp(searchterm,"i");
				//var produkteStr = "";
				//var ArtikelPrev="";
				
				//for (var p=0;p<produkte.length;p++) {
					
					//var produkt = produkte[p].lastChild.nodeValue;
					
					//if (produkt.match(exp) != null) {
						//if (ArtikelPrev.length>0)
							//ArtikelPrev+=", ";
						//ArtikelPrev+=produkt;
					//} else {
						//produkteStr += ", " + produkt;
					//}
				//}
				//var weitere = "";
				//weitere=" <div id=\"more_" + i + "\" style=\"float:left;\">&nbsp;<a style=\"color:#000000\" href=\"javascript:void(0);\" onclick=\"document.getElementById('result_" + i + "').style.display='block'; document.getElementById('more_" + i + "').style.display='none'; document.getElementById('prev_" + i + "').style.display='none'\">...</a></div><div id=\"result_" + i +"\" style='float:left;display:none;margin:0 0 10px 0'>" + ArtikelPrev + produkteStr + "</div>";

				//lastCol="Produkte";
				//txtStr+="<td><div id=\"prev_" +  i +"\" style=\"float:left;\">" + ArtikelPrev + "</div>" + weitere + "</td></tr><tr><td colspan='5'><hr></td></tr>";
			} 
			//else 
			{
				for (var x=0;x<rWarengruppen.length;x++) {
					if (warengruppenAusgabe!="") {
						warengruppenAusgabe+=", ";
					}
					warengruppenAusgabe+=rWarengruppen[x].lastChild.nodeValue;
				}
				txtStr += "<td>" + warengruppenAusgabe + "</td></tr><tr><td colspan='5'><hr></td></tr>";
				var lastCol = "Sortimentsgruppen";
			}
		}
		rs.innerHTML = "<b>" + searchedfor + "<br><a href='planzoom.html?m=" + allNr +"' target='_blank'>Plan mit Zoomfunktion</a></b><table><tr style='background-color:#d4eed3;'><td width='250px'><b>Name</b></td><td width='150px'><b>Sparten</b></td><td width='250px'><b>Service</b></td><td width='400px'><b>Produkte</b></td><td width='250px'><b>" +lastCol +"</b></td></tr>"+ txtStr +"</table>";
		
		document.getElementById("mapIFrame").src="plan.html?m=" + allNr;
		document.getElementById("mapIFrame").style.display="block";
		
	} else {
		var rs = document.getElementById("rs");
		var para = document.createElement("p");
		var notfound = document.createTextNode("Ihre Suche erzielte keine Ergebnisse!");
		rs.appendChild(para);
		para.appendChild(notfound);
		rs.innerHTML +=  "<a href='javascript:window.location.reload(false)'>Neue Suche</a>";
		
	}
}

function sorting(a, b)	{
	return(b[0]==a[0])?0:(b[0]>a[0])?1:-1;
}
