var mpi = 3.14159265358979;

telefon = new Array();
telefon[5] = "0800-1014241"		// Carglass
// telefon[3] = "0800-7766800"		// Wintec
//telefon[4] = "0221-50295-333"	// Junited

// sortierung = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
sortierung = gp_liste;

mandant_ergebnis_liste_laengen = new Array();
mandant_ergebnis_liste_laengen['allianz'] = 15;
mandant_ergebnis_liste_laengen['allsecur'] = 6;
mandant_ergebnis_liste_laengen['deteassekuranz'] = 6;

ergebnis_liste_laenge = mandant_ergebnis_liste_laengen[gp_mandant];

// Zunächst alle Junited-Betriebe (falls einer oder mehrere),
// dann alle Pit Stop-Betriebe (falls einer oder mehrere),
// dann alle Wintec-Betriebe (falls einer oder mehrere),
// dann alle A.T.U-Betriebe (falls einer oder mehrere),
// dann alle Carglass-Betriebe (falls einer oder mehrere),
// dann alle sonstigen Betriebe (falls einer oder mehrere – Reihenfolge beliebig
// – grundsätzlich dürften nicht mehrere „sonstige“ in einem PLZ-Bereich
// auftauchen).

suchepartner = function() {
	var plz_suche = document.getElementById("plz_eingabe").value;
	var partnerid = new Array(null, null, null, null, null, null);
	var entf = new Array();

	for(var i = 0; i < ergebnis_liste_laenge; ++i) {
		entf[i] = 99999;
	}

	if (geo[plz_suche] == null) {
		var found = false;
		for (var i=0; i<p.length; i++) {
			if (p[i][3] === plz_suche) {
				plz_suche = p[i][3];
				found = true;
				break;
			}
		}
	} else {
		var found = true;
	}
	if (found == true) {
		// nächstgelegenen 6 partner heraussuchen
		var abgefragt = new Array();
		var start = geo[plz_suche];
		for (var i=0; i<p.length; i++) {
			if (abgefragt[p[i][3]+" "+p[i][0]] == null) {
				if (plz_suche == p[i][3]) {
					var dist = 0;
				} else {
					var dist = getDistance(start, geo[p[i][3]], p[i][2]);
				}
				if (dist <= entf[0]) {
					entf.splice(0, 0, dist);
					partnerid.splice(0, 0, i);
				} else if (dist <= entf[1]) {
					entf.splice(1, 0, dist);
					partnerid.splice(1, 0, i);
				} else if (dist <= entf[2]) {
					entf.splice(2, 0, dist);
					partnerid.splice(2, 0, i);
				} else if (dist <= entf[3]) {
					entf.splice(3, 0, dist);
					partnerid.splice(3, 0, i);
				} else if (dist <= entf[4]) {
					entf.splice(4, 0, dist);
					partnerid.splice(4, 0, i);
				} else if (dist <= entf[5]) {
					entf.splice(5, 0, dist);
					partnerid.splice(5, 0, i);
				}
				if (entf.length > ergebnis_liste_laenge) {
					entf.splice(ergebnis_liste_laenge, 1);
					partnerid.splice(ergebnis_liste_laenge, 1);
				}
				abgefragt[p[i][3]+" "+p[i][0]] = true;
			}
		}
	}
	if (partnerid[0] != null && found == true) {
		// partner sortieren
		partnersortiert = new Array();
		for (var i=0; i<sortierung.length; i++) {
			sortid = sortierung[i];
			for (var j=0; j < ergebnis_liste_laenge; j++) {
				if (p[partnerid[j]][0] == sortid) {
					partnersortiert.push(partnerid[j]);
				}
			}
		}
		//
		var liste = '';
		for (var i=0; i < ergebnis_liste_laenge; i++) {
			if (partnersortiert[i] != null) {
				var partner	= p[partnersortiert[i]][0];
				var name	= p[partnersortiert[i]][1]+"<br>";
				var strasse	= p[partnersortiert[i]][2]+"<br>";
				var plz		= p[partnersortiert[i]][3];
				var ort		= p[partnersortiert[i]][4]+"<br>";
				var tel		= (telefon[partner]) != null ? telefon[partner] : (p[partnersortiert[i]][5] == null) ? '' : p[partnersortiert[i]][5];
				var fax		= (p[partnersortiert[i]][6] == null) ? '' : p[partnersortiert[i]][6];
				var km		= "ca. "+Math.round(entf[i])+" km";
				tel = tel.split("/").join("-");
				tel = tel.split(" ").join("");
				fax = fax.split("/").join("-");
				fax = fax.split(" ").join("");
				if (fax != "") {
					fax = "<b>Fax:</b> "+fax;
				}
				partnerlogo = '&nbsp;';
				if (logos[partner] != null) {
					partnerlogo = '<img src="'+logos[partner]+'">';
				}
				liste += '<div class="trenner"><img src="imgs/blank.gif" alt="" width="1" height="1"></div>';
				liste += '<table border="0" cellpadding="0" cellspacing="0" style="line-height: 16px; margin-left: 54px;">';
				liste += "<tr height='50'>";
				liste += "<td valign='top' width='130' align='center'>"+partnerlogo+"</td>";
				liste += "<td valign='top' width='260' style=\"padding-left: 3px\">"+name+strasse+plz+" "+ort+"</td>";
				liste += "<td valign='top' width='160'><b>Tel.:</b> "+tel+"<br>"+fax+"</td>";
				liste += "</tr>";
				liste += "</table>";
			}
		}
		document.getElementById("ergebnis").style.display = "block";
		document.getElementById("liste").innerHTML = liste;
		document.getElementById("glass_slot_fehlermeldung").innerHTML = "";
	} else {
		document.getElementById("ergebnis").style.display = "none";
		document.getElementById("glass_slot_fehlermeldung").innerHTML = fehlertext;
	}
}

getDistance = function(start, ende, plz) {
	if (ende == undefined) {
		return 99999999;
	}
	erd_radius = 6380.0;

	x_start = start[0] / 180 * mpi;
	y_start = start[1] / 180 * mpi;
	x_ende = ende[0] / 180 * mpi;
	y_ende = ende[1] / 180 * mpi;

	e = Math.acos(Math.sin(x_start) * Math.sin(x_ende) + Math.cos(x_start) * Math.cos(x_ende) * Math.cos(y_start - y_ende) );
	
	return e * erd_radius;
}


