// Was alles ausgeführt werden muss wenn die Seite geladen ist
/*************************************************************/
addLoadEvent(setSearch); // Letzte Suche wieder herstellen
/*************************************************************/

// Alle Variablen die Global zur verfügung stehen
/*************************************************************/
var KantonCount = 0;
var BezirkeCount = 0;
var intOneKantonBezCount = 0;
var anzKantone = 3;
var aryKantone = new Array();
var aryBezirke = new Array();
var lastKantone = '';
var lastBezirke = '';
var inter = "";
var interNews = "";
var interInfoBox = "";
var interKanton = "";
var interGemeinde = "";
var interUnterrubrik = "";
var interAllRubriken = "";
var interFilter = "";
var strLink = "/xml_1/internet/de/application/f3.cfm";
var idxFirstOneKanton = true;
/*************************************************************/

function showHideID(id){
	var el = document.getElementById(id);
	if(el.style.display == "none")
		el.style.display = "block";
	else
		el.style.display = "none";
}

// Selektiert oder Deselektiert einen Kanton und hollt per Ajax die Karte bzw. die Bezirke
function SelKanton (Kanton, lstBezirke){
	window.clearInterval(interKanton);
	
	var KantonFound = false;
	var ContentCheck = document.getElementById("map_content"); 
	var KantonCheck = ContentCheck.getElementsByTagName("div"); 
	var position = 0;
	
	// Bugfix, wenn über Google gesucht wird, kann es vorkommen, dass der Kantonsparame
	Kanton = Kanton.toLowerCase();
	
	// Überprüft ob der Kanton schon selektiert ist, wenn ja wird er deselktiert
	for (var i = 0; i < KantonCheck.length; i++) { 
		if (KantonCheck[i].name == Kanton) { 
			KantonFound = true;
			ContentCheck.removeChild(KantonCheck[i]);
			KantonCount--;
			
			for(var j=0;j<aryKantone.length;j++){
				if(aryKantone[j] == Kanton){
					position = j;
					break;
				}
			}
			
			for (var x=0;x<aryKantone.length;++x) {
				if (x >= position) {
					aryKantone[x] = aryKantone[x + 1];
				}
			} 
			
			aryKantone.pop();
			
			break;
		}
	}
	
	if(KantonFound == false && KantonCount < anzKantone){
		// Bild für selektion
		var bildname = '/pictures/map_active.png';
		
		// Position für die Selektion auslesen
		switch (Kanton){
			 case "tg":
						var left = 322;
						var top = 13;
			 break;
			 case "sh":
						var left = 266;
						var top = -8;
			 break;
			 case "zh":
						var left = 275;
						var top = 38;
			 break;
			 case "ai":
						var left = 342;
						var top = 53;
						var bildname = 'http://www.loogo.ch/pictures/map_active_double.png';
			 break;
			 case "sg":
						var left = 330;
						var top = 75;
			 break;
			 case "gr":
						var left = 377;
						var top = 156;
			 break;
			 case "gl":
						var left = 324;
						var top = 111;
			 break;
			 case "sz":
						var left = 287;
						var top = 101;
			 break;
			 case "zg":
						var left = 269;
						var top = 85;
			 break;
			 case "ag":
						var left = 225;
						var top = 40;
			 break;
			 case "bs":
						var left = 160;
						var top = 40;
						var bildname = 'http://www.loogo.ch/pictures/map_active_double.png';
			 break;
			 case "so":
						var left = 151;
						var top = 73;
			 break;
			 case "ju":
						var left = 113;
						var top = 55;
			 break;
			 case "lu":
						var left = 214;
						var top = 104;
			 break;
			 case "ow":
						var left = 225;
						var top = 130;
						var bildname = 'http://www.loogo.ch/pictures/map_active_double.png';
			 break;
			 case "ur":
						var left = 273;
						var top = 141;
			 break;
			 case "be":
						var left = 157;
						var top = 130;
			 break;
			 case "ne":
						var left = 77;
						var top = 102;
			 break;
			 case "fr":
						var left = 106;
						var top = 150;
			 break;
			 case "vs":
						var left = 157;
						var top = 242;
			 break;
			 case "vd":
						var left = 47;
						var top = 161;
			 break;
			 case "ge":
						var left = -10;
						var top = 240;
			 break;
			 case "ti":
						var left = 295;
						var top = 215;
			 break;
						
		}
		
		// Erstellt ein neues DIV
		var myDiv = document.createElement("div");
		myDiv.name = Kanton;
		myDiv.style.left = left + 'px';
		myDiv.style.top = top + 'px';
		myDiv.className = 'map_active';
		
		// Erstellt ein Bildelement
		var myImg = document.createElement("img");
		myImg.src = bildname;
		
		// Fügt das Bild dem DIV hinzu
		myDiv.appendChild(myImg);
		
		// Fügt das DIV der Schweizerkarte zu
		var Ausgabebereich = document.getElementById("map_content");
		Ausgabebereich.appendChild(myDiv);
		
		// Ein Kanton mehr selektiert
		KantonCount++;
	
		// Fügt den Kanton einem Array hinzu
		aryKantone.push(Kanton);
	}
	
	if(KantonCount){
		document.getElementById('rubriken_infotext').innerHTML = "<p>Wählen Sie <u>hier</u> eine Rubrik/Branche aus</p>";
		document.getElementById('link_wer-wo-was').style.display = 'block';
		document.getElementById('link_online-shops').style.display = 'none';
	}else{
		document.getElementById('rubriken_infotext').innerHTML = "";
		document.getElementById('link_wer-wo-was').style.display = 'none';
		document.getElementById('link_online-shops').style.display = 'block';
	}
	// Setzt die Bezirke wieder zurück
	aryBezirke = new Array();
	
	// Holt die Liste für die Bezirke
	getList(aryKantone, lstBezirke);
}

function checkAllFilter(chk){
	var ab = document.getElementById("auswahlbox");
	var inpts = ab.getElementsByTagName("input");
	
	for(var i = 0;i< inpts.length;i++){
		inpts[i].checked = chk;
	}
	
	return false;
}

function searchWithFilter(lik){
	var ab = document.getElementById("auswahlbox");
	var inpts = ab.getElementsByTagName("input");
	var lstFilter = "";
	
	for(var i = 0;i< inpts.length;i++){
		if(inpts[i].checked && inpts[i].type == "checkbox"){
			if(lstFilter == "")
				lstFilter = inpts[i].value;
			else
				lstFilter = lstFilter + "," + inpts[i].value;
		}
	}
	
	window.location.href = lik + 'lstFilter=' + lstFilter;
}

// Zeigt die Filter an
function showFilter(){
	document.getElementById("filter").style.display = "block";
	window.clearInterval(interFilter);
}

// Schliesst die Filter wieder
function closeFilter(){
	document.getElementById("filter").style.display = "none";
	window.clearInterval(interFilter);
}

// Schliesst die Filter nach 1 Sekunde wieder
function disableFilter(){
	interFilter = window.setInterval("closeFilter()", 1000);
}

function selBezirk(id, aus, onlysel){
	var BezirkFound = false;
	
	if(id > 0){
		var ContentCheck = document.getElementById(aus); 
		var BezirkCheck = ContentCheck.getElementsByTagName("div"); 
		var position = 0;
		
		for (var i=0;i<BezirkCheck.length;i++) { 
			if(idxFirstOneKanton){
				// Wenn ein Kanton selektiert wurde sollen am anfang alle Bezirke "selektiert" sein, aber keine Sterne anzeigen
				deSelectAllBez(false, aus, BezirkCheck[i].name);
			}else{
				// Überprüfen ob der Bezirk schon selektiert wurde
				if (BezirkCheck[i].name == id) { 
					BezirkFound = true;
					
					if(onlysel == false){
						ContentCheck.removeChild(BezirkCheck[i]);
						BezirkeCount--;
						
						for(var j=0;j<aryBezirke.length;j++){
							if(aryBezirke[j] == id){
								position = j;
								break;
							}
						}
						
						for (var x=0;x<aryBezirke.length;++x) {
							if (x >= position) {
								aryBezirke[x] = aryBezirke[x + 1];
							}
						} 
						aryBezirke.pop();
					}
					break;
				}
			}
		}
		
		idxFirstOneKanton = false;
		
		if(BezirkFound == false){
			// Bild für die Selektion der Bezirke
			var bildname = '/pictures/bezirk_active.png';
	
			switch(parseInt(id)){
				// TG
				case 275: // Arbon
					var left = 180;
					var top = 100;
					break;
				case 279: // Kreuzlingen
					var left = 120;
					var top = 65;
					break;
				case 276: // Bischofszell
					var left = 145;
					var top = 110;
					break;
				case 277: // Diessenhofen
					var left = 5;
					var top = 50;
					break;
				case 278: // Frauenfeld
					var left = 62;
					var top = 97;
					break;
				case 280: // Münchwilen
					var left = 75;
					var top = 130;
					break;
				case 281: // Steckborn
					var left = 65;
					var top = 70;
					break;
				case 282: // Weinfelden
					var left = 112;
					var top = 95;
					break;
				// ZH
				case 162: // Affoltern
					var left = 15;
					var top = 150;
					break;
				case 163: // Andelfingen
					var left = 65;
					var top = 20;
					break;
				case 164: // Bülach
					var left = 47;
					var top = 65;
					break;
				case 165: // Dielsdorf
					var left = 8;
					var top = 65;
					break;
				case 166: // Dietikon
					var left = 5;
					var top = 103;
					break;
				case 167: // Hinwil
					var left = 110;
					var top = 135;
					break;
				case 168: // Meilen
					var left = 55;
					var top = 130;
					break;
				case 169: // Pfäffikon
					var left = 100;
					var top = 100;
					break;
				case 170: // Uster
					var left = 70;
					var top = 115;
					break;
				case 171: // Winterthur
					var left = 90;
					var top = 55;
					break;
				case 172: // Zürich
					var left = 33;
					var top = 105;
					break;
				case 324: // Horgen
					var left = 62;
					var top = 165;
					break;
				// SG
				case 245: // Rorschach
					var left = 140;
					var top = 7;
					break;
				case 246: // Reihntal
					var left = 145;
					var top = 40;
					break;
				case 247: // St. GAllen
					var left = 96;
					var top = 16;
					break;
				case 248: // Sarganserland
					var left = 105;
					var top = 145;
					break;
				case 249: // See-Gaster
					var left = 41;
					var top = 90;
					break;
				case 250: // Toggenburg
					var left = 60;
					var top = 70;
					break;
				case 251: // Werdenberg
					var left = 120;
					var top = 95;
					break;
				case 252: // Wil
					var left = 60;
					var top = 15;
					break;
				// SG
				case 244: // Ausserhoden
					var left = 35
					var top = 65;
					break;
				case 328: // Gonten
					var left = 60;
					var top = 88;
					break;
				case 329: // Schwenden
					var left = 75;
					var top = 115;
					break;
				case 330: // Rüte
					var left = 115;
					var top = 85;
					break;
				case 331: // Appenzell
					var left = 90;
					var top = 72;
					break;
				case 332: // Haslen
					var left = 76;
					var top = 58;
					break;
				case 333: // Oberegg
					var left = 145;
					var top = 30;
					break;
				// SH
				case 238: // Reiat
					var left = 125;
					var top = 25;
					break;
				case 237: // Oberklettgau
					var left = 60;
					var top = 73;
					break;
				case 239: // Schaffhausen
					var left = 95;
					var top = 45;
					break;
				case 240: // Schleitheim
					var left = 60;
					var top = 27;
					break;
				case 241: // Stein
					var left = 195;
					var top = 60;
					break;
				case 242: // Unterklettgau
					var left = 30;
					var top = 65;
					break;
				// gr
				case 253: // Albula
					var left = 135;
					var top = 80;
					break;
				case 254: // Bernina
					var left = 195;
					var top = 140;
					break;
				case 255: // Hinterrhein
					var left = 100;
					var top = 80;
					break;
				case 256: // Imboden
					var left = 95;
					var top = 35;
					break;
				case 257: // Inn
					var left = 220;
					var top = 50;
					break;
				case 258: // Landquart
					var left = 120;
					var top = 15;
					break;
				case 259: // Maloja
					var left = 170;
					var top = 110;
					break;
				case 260: // Moesa
					var left = 68;
					var top = 140;
					break;
				case 261: // Plessur
					var left = 130;
					var top = 43;
					break;
				case 262: // Prättigau Davos
					var left = 170;
					var top = 40;
					break;
				case 263: // Surselva
					var left = 60;
					var top = 65;
					break;
				// gr
				case 213: // Glarus
					var left = 60;
					var top = 90;
					break;
				// ti
				case 283: // Bellinzona
					var left = 135;
					var top = 135;
					break;
				case 284: // Blenio
					var left = 120;
					var top = 40;
					break;
				case 285: // Leventina
					var left = 80;
					var top = 45;
					break;
				case 286: // Locarno
					var left = 98;
					var top = 120;
					break;
				case 287: // Lugano
					var left = 115;
					var top = 180;
					break;
				case 288: // Mendrisio
					var left = 130;
					var top = 235;
					break;
				case 289: // Riviera
					var left = 130;
					var top = 90;
					break;
				case 290: // Vallemaggia
					var left = 37;
					var top = 80;
					break;
				// ur
				case 204: // Uri
					var left = 90;
					var top = 100;
					break;
				// sz
				case 205: // Einsiedeln
					var left = 150;
					var top = 115;
					break;
				case 206: // Gersau
					var left = 73;
					var top = 166;
					break;
				case 207: // Höfe
					var left = 140;
					var top = 80;
					break;
				case 208: // Küssnacht
					var left = 45;
					var top = 135;
					break;
				case 209: // March
					var left = 200;
					var top = 100;
					break;
				case 210: // Schwyz
					var left = 140;
					var top = 170;
					break;
				// zg
				case 214: // Zug
					var left = 55;
					var top = 50;
					break;
				// ownw
				case 211: // Obwalden
					var left = 60;
					var top = 105;
					break;
				case 212: // Nidwalden
					var left = 150;
					var top = 90;
					break;
				// lu
				case 199: // Entlebuch
					var left = 50;
					var top = 170;
					break;
				case 200: // Hochdorf
					var left = 150;
					var top = 60;
					break;
				case 201: // Luzern
					var left = 135;
					var top = 120;
					break;
				case 202: // Sursee
					var left = 90;
					var top = 80;
					break;
				case 203: // Willisau
					var left = 35;
					var top = 60;
					break;
				// ag
				case 264: // Aarau
					var left = 97;
					var top = 97;
					break;
				case 265: // Baden
					var left = 173;
					var top = 65;
					break;
				case 266: // Bremgarten
					var left = 180;
					var top = 110;
					break;
				case 267: // Brug
					var left = 130;
					var top = 50;
					break;
				case 268: // Kulm
					var left = 120;
					var top = 140;
					break;
				case 269: // Laufenburg
					var left = 85;
					var top = 40;
					break;
				case 270: // Lenzburg
					var left = 130;
					var top = 100;
					break;
				case 271: // Muri
					var left = 185;
					var top = 150;
					break;
				case 272: // Rheinfelden
					var left = 35;
					var top = 20;
					break;
				case 273: // Zofingen
					var left = 60;
					var top = 137;
					break;
				case 274: // Zurzach
					var left = 170;
					var top = 20;
					break;
				// bs
				case 233: // Arlesheim
					var left = 95;
					var top = 50;
					break;
				case 232: // Basel Stadt
					var left = 105;
					var top = 10;
					break;
				case 234: // Laufen
					var left = 60;
					var top = 100;
					break;
				case 235: // Liestal
					var left = 165;
					var top = 60;
					break;
				case 236: // Waldenburg
					var left = 170;
					var top = 120;
					break;
				case 326: // Waldenburg
					var left = 220;
					var top = 85;
					break;
				// so
				case 224: // Bucheggberg
					var left = 40;
					var top = 193;
					break;
				case 225: // Dorneck
					var left = 107;
					var top = 15;
					break;
				case 222: // Gäu
					var left = 150;
					var top = 103;
					break;
				case 226: // Gösgen
					var left = 215;
					var top = 55;
					break;
				case 228: // Lebern
					var left = 35;
					var top = 142;
					break;
				case 229: // Olten
					var left = 183;
					var top = 82;
					break;
				case 230: // Solothurn
					var left = 60;
					var top = 150;
					break;
				case 335: // Thal
					var left = 100;
					var top = 90;
					break;
				case 231: // Thierstein
					var left = 80;
					var top = 60;
					break;
				case 227: // Wasseramt
					var left = 85;
					var top = 161;
					break;
				// be
				case 173: // Aarberg
					var left = 72;
					var top = 68;
					break;
				case 174: // Aarwangen
					var left = 157;
					var top = 30;
					break;
				case 177: // Büren
					var left = 85;
					var top = 35;
					break;
				case 175: // Bern
					var left = 90;
					var top = 90;
					break;
				case 176: // Biel Bienne
					var left = 60;
					var top = 35;
					break;
				case 178: // Burgdorf
					var left = 125;
					var top = 60;
					break;
				case 179: // Courtelary
					var left = 35;
					var top = 30;
					break;
				case 180: // Erlach
					var left = 38;
					var top = 70;
					break;
				case 181: // Fraubrunnen
					var left = 103;
					var top = 60;
					break;
				case 182: // Frutigen
					var left = 138;
					var top = 200;
					break;
				case 183: // Interlaken
					var left = 183;
					var top = 174;
					break;
				case 184: // Konolfingen
					var left = 125;
					var top = 110;
					break;
				case 187: // La Neuveville
					var left = 35;
					var top = 50;
					break;
				case 185: // Laupen
					var left = 60;
					var top = 95;
					break;
				case 186: // Moutier
					var left = 70;
					var top = 12;
					break;
				case 188: // Nidau
					var left = 60;
					var top = 55;
					break;
				case 189: // Niedersimmental
					var left = 110;
					var top = 175;
					break;
				case 190: // Oberhasli
					var left = 240;
					var top = 170;
					break;
				case 191: // Obersimmental
					var left = 85;
					var top = 200;
					break;
				case 192: // Saanen
					var left = 67;
					var top = 225;
					break;
				case 193: // Schwarzburg
					var left = 78;
					var top = 140;
					break;
				case 194: // Seftigen
					var left = 100;
					var top = 125;
					break;
				case 195: // Signau
					var left = 155;
					var top = 105;
					break;
				case 196: // Thun
					var left = 140;
					var top = 140;
					break;
				case 197: // Trachselwald
					var left = 155;
					var top = 68;
					break;
				case 198: // Wangen
					var left = 135;
					var top = 20;
					break;
				// ju
				case 321: // Delemont
					var left = 150;
					var top = 60;
					break;
				case 322: // Les Franches-Montagnes
					var left = 60;
					var top = 100;
					break;
				case 323: // Porrentruy
					var left = 75;
					var top = 30;
					break;
				// fr
				case 215: // La Broye
					var left = 50;
					var top = 115;
					break;
				case 216: // La Glene
					var left = 72;
					var top = 168;
					break;
				case 217: // La Gruyere
					var left = 120;
					var top = 210;
					break;
				case 218: // La Sarine
					var left = 115;
					var top = 135;
					break;
				case 220: // La Veveyse
					var left = 73;
					var top = 220;
					break;
				case 221: // See-Lac
					var left = 138;
					var top = 70;
					break;
				case 219: // Sense
					var left = 160;
					var top = 130;
					break;
				// ne
				case 314: // Boudry
					var left = 115;
					var top = 95;
					break;
				case 315: // La Chauy-de-Fonds
					var left = 120;
					var top = 25;
					break;
				case 316: // Le Local
					var left = 80;
					var top = 70;
					break;
				case 317: // Neuchatel
					var left = 188;
					var top = 50;
					break;
				case 318: // Val-de-Ruz
					var left = 148;
					var top = 50;
					break;
				case 319: // Val-de-Travers
					var left = 40;
					var top = 115;
					break;
				// vd
				case 291: // Aigle
					var left = 230;
					var top = 230;
					break;
				case 292: // Broye-Vully
					var left = 185;
					var top = 90;
					break;
				case 293: // Gros-de-Vaud
					var left = 133;
					var top = 120;
					break;
				case 294: // Jura Nord
					var left = 110;
					var top = 80;
					break;
				case 295: // Lausanne
					var left = 133;
					var top = 153;
					break;
				case 296: // Lauvax-Oron
					var left = 160;
					var top = 160;
					break;
				case 297: // Morgens
					var left = 75;
					var top = 150;
					break;
				case 298: // Nyon
					var left = 25;
					var top = 185;
					break;
				case 299: // Quest lausannios
					var left = 113;
					var top = 153;
					break;
				case 334: // Pays-d'Enhaut
					var left = 252;
					var top = 190;
					break;
				case 325: // Château-d'Oex
					var left = 200;
					var top = 180;
					break;
				// ge
				case 320: // Genf
					var left = 30;
					var top = 120;
					break;
				// vs
				case 301: // Brig
					var left = 200;
					var top = 90;
					break;
				case 302: // Conthey
					var left = 65;
					var top = 90;
					break;
				case 303: // Entremont
					var left = 60;
					var top = 140;
					break;
				case 304: // Goms
					var left = 220;
					var top = 40;
					break;
				case 305: // Hérens
					var left = 100;
					var top = 125;
					break;
				case 306: // Leuk
					var left = 133;
					var top = 70;
					break;
				case 307: // Martigny
					var left = 50;
					var top = 105;
					break;
				case 308: // Monthey
					var left = 10;
					var top = 90;
					break;
				case 309: // Raron
					var left = 160;
					var top = 60;
					break;
				case 310: // Saint Maurice
					var left = 22;
					var top = 110;
					break;
				case 311: // Sierre
					var left = 120;
					var top = 95;
					break;
				case 312: // Sion
					var left = 82;
					var top = 80;
					break;
				case 313: // Visp
					var left = 165;
					var top = 120;
					break;
			}
			
			// Erstellt ein DIV
			var myDiv = document.createElement("div");
			myDiv.name = id;
			myDiv.style.left = left + 'px';
			myDiv.style.top = top + 'px';
			myDiv.className = 'map_active';
					
			// Erstellt ein Bildelement
			var myImg = document.createElement("img");
			myImg.src = bildname;
			
			// Fügt das Bild dem DIV hinzu
			myDiv.appendChild(myImg);
			
			// Fügt den DIV der Kantonskarte zu
			var Ausgabebereich = document.getElementById(aus);
			Ausgabebereich.appendChild(myDiv);
			
			BezirkeCount++;
		
			aryBezirke.push(id);
		}
	}
	
	// Checkbox richtig setzen
	if(BezirkeCount == intOneKantonBezCount){
		document.getElementById('kan_single').checked = true;
	}else if(BezirkeCount == 0){
		document.getElementById('kan_single').checked = true;
					
		var aryBez = getArrayFromList(document.getElementById('lstBez').value, ",");
		
		for(var i=0;i<aryBez.length;i++){
			BezirkeCount++;
			aryBezirke.push(aryBez[i]);
		}
		
		idxFirstOneKanton = true;
		intOneKantonBezCount = aryBezirke.length;
	}else{
		document.getElementById('kan_single').checked = false;
	}
}

/*************************************************************************************************/

function removeAllSelectedBezirke(aus){
	var Content = document.getElementById(aus);
	var lstDiv = Content.getElementsByTagName("div");
	var l = lstDiv.length;
	
	for(var i=(l-1);i>=0;i--){
		if(lstDiv[i].name)
			Content.removeChild(lstDiv[i]);
	}
	
	BezirkeCount = 0;
	aryBezirke = new Array();
}

// Selektiert oder Deselektiert die Bezirke
function deSelectAllBez(checked, aus, lstBez){
	idxFirstOneKanton = false;
	
	if(checked){
		var aryBez = getArrayFromList(lstBez, ",");
		
		/*for(var i=0;i<aryBez.length;i++){
			selBezirk(aryBez[i], aus, true);
		}*/
		
		removeAllSelectedBezirke(aus);
		
		for(var i=0;i<aryBez.length;i++){
			BezirkeCount++;
		
			aryBezirke.push(aryBez[i]);
		}	
		
		idxFirstOneKanton = true;
		intOneKantonBezCount = aryBezirke.length;
	}else{
		removeAllSelectedBezirke(aus);
	}
}

// Zeige die volle RSS Info
function showFullInfo(id){
	document.getElementById('info_' + id + '_preview').style.display = "none";
	document.getElementById('info_' + id + '_full').style.display = "block";
	
	// Sendet eine Ajax anfrage um zu zählen wie viel mal die Meldung aufgerufen wurde
	req.open("GET", '/custom/firmen/online/ajax/setInfoCount.cfm?fid=' + id, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);	
}

// Gibt Kontakt zurück
function getKontakt(fid) {
	req.open("GET", '/custom/firmen/online/ajax/getKontakt.cfm?fid=' + fid, true);
	req.onreadystatechange = getKontaktHandle;
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);
	return false;
}

// Wenn die Antwort mit dem Kontakt kommt
function getKontaktHandle(){
	switch(req.readyState) {
		case 4:
			if(req.status==200) {
				if(req.responseText.substr(0, 6) == "mailto")
					window.location.href = req.responseText;
				else{
					var popu = window.open(req.responseText);
					if(!popu)
						window.location.href = req.responseText;
				}
			}
		break;	
	default:
		return false;
		break;     
	}
}

// Gibt das Menu zurück
function getMenu(ary){
	var lstKantone = "";
	
	for(var i=0;i<ary.length;i++){
		if(lstKantone == "")
			lstKantone = ary[i];
		else
			lstKantone = lstKantone + "," + ary[i];
	}
	
	document.getElementById("rubriken").innerHTML = '<img src="/custom/firmen/online/ajax/loader_big.gif" alt="Loading" style="margin-left:400px;margin-top:50px;">';
	
	req.open("GET", '/custom/firmen/online/ajax/getMenu.cfm?lstKantone=' + lstKantone, true);
	req.onreadystatechange = getMenuHandle;
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);
}

// Wenn die Antwort mit dem Menu kommt
function getMenuHandle(){
	switch(req.readyState) {
		case 4:
			if(req.status!=200) {
				// alert("Fehler: " + req.status); 
			}else{
				lastID = 0;
				window.clearInterval(inter);
				document.getElementById("rubriken").innerHTML = req.responseText;
				setRubrikCount();
				
				if(KantonCount == 0){
					document.getElementById("showSubRubriken").style.display = "none";
				}else{
					document.getElementById("showSubRubriken").style.display = "block";
				}
				
				// Lädt vorgängig die Suchresultate
				loadAllUnterrubriken(getSelKantonAsList(), getSelBezirkeAsList());
			}
		break;	
	default:
		return false;
		break;     
	}
}


function getSelKantonAsList(){
	var lstKantone = "";
	
	for(var i=0;i<aryKantone.length;i++){
		if(lstKantone == "")
			lstKantone = aryKantone[i];
		else
			lstKantone = lstKantone + "," + aryKantone[i];
	}
	
	return lstKantone;
}


function getSelBezirkeAsList(){
	var lstBezirke = '';
	
	if(aryKantone.length > 1){
		lstBezirke = getBezirke();
	}else{
		lstBezirke = "";
		
		for(var i=0;i<aryBezirke.length;i++){
			if(lstBezirke == "")
				lstBezirke = aryBezirke[i];	
			else
				lstBezirke = lstBezirke + "," + aryBezirke[i];
		}
	}
	
	return lstBezirke;
}


function loadAllUnterrubriken(lstKantone, lstBezirke){
	// UnterrubrikenRequestObject
	uro = createAjaxObject();
	
	document.getElementById("allUnterrubriken").innerHTML = '<img src="/custom/firmen/online/ajax/loader_big.gif" alt="Loading">';
	
	uro.open("GET", '/custom/firmen/online/ajax/getUnterrubriken.cfm?lstKantone=' + lstKantone + "&lstBezirke=" + lstBezirke, true);
	uro.onreadystatechange = getUnterrubrikenHandle;
	uro.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	uro.send(null);
	
	lastKantone	= lstKantone;
	lastBezirke	= lstBezirke;
}


// Hollt alle Unterrubriken ab
function showAllUnterrubriken(){
	var lstKantone	= getSelKantonAsList();
	var lstBezirke	= getSelBezirkeAsList();

	// Imm wieder neu laden wenn der Kanton gewechselt hat
	if(lastKantone != lstKantone || lastBezirke != lstBezirke){
		document.getElementById("allUnterrubriken").style.display = "block";	
	
		loadAllUnterrubriken(lstKantone, lstBezirke);
	}else{
		document.getElementById("allUnterrubriken").style.display = "block";	
	}
	
	window.clearInterval(interUnterrubrik);
}

/********************************************************************************************/

// Schliesst die Gemeindeliste wieder
function closeUnterrubriklist(){
	document.getElementById("allUnterrubriken").style.display = "none";
	window.clearInterval(interUnterrubrik);
}

// Schliesst die Gemeindeliste in 1.5 Sekunden
function disableUnterrubrikList(){
	interUnterrubrik = window.setInterval("closeUnterrubriklist()", 1500);
}

/********************************************************************************************/

// Zeigt alle Unterrubriken wieder an
function getUnterrubrikenHandle(){
	switch(uro.readyState) {
		case 4:
			if(uro.status!=200) {
				// alert("Fehler: " + req.status); 
			}else{
				document.getElementById("allUnterrubriken").innerHTML = uro.responseText;
			}
		break;	
	default:
		return false;
		break;     
	}
}

// Gibt die Liste mit den Bezirken zurück
function getList(ary, lstBezirke){
	var lstKantone = "";
	
	for(var i=0;i<ary.length;i++){
		if(lstKantone == "")
			lstKantone = ary[i];
		else
			lstKantone = lstKantone + "," + ary[i];
	}
	
	// Überblendet die Rubriken wieder, wenn kein Kanton angewählt ist
	if(lstKantone == ""){
		document.getElementById("grau").style.display = "block";
		document.getElementById("helptext").style.display = "block";
	}else{
		document.getElementById("grau").style.display = "none";
		document.getElementById("helptext").style.display = "none";
	}
	
	// Bringt einen Loader, damit man sieht das etwas geladen wird
	document.getElementById("auswahl_detail").innerHTML = '<img src="/custom/firmen/online/ajax/loader.gif" alt="Loading">';
	
	// Werden die Bezirke nicht übergeben wird einfach "" erstellt.
	if(!lstBezirke)
		lstBezirke = "";
	
	req.open("GET", '/custom/firmen/online/ajax/getList.cfm?lstKantone=' + lstKantone + "&lstBezirke=" + lstBezirke, true);
	req.onreadystatechange = getListHandle;
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);	
}

// Wenn die Antwort mit den Bezirken kommt
function getListHandle(){
	switch(req.readyState) {
		case 4:
			if(req.status!=200) {
				// alert("Fehler: " + req.status); 
			}else{
				document.getElementById("auswahl_detail").innerHTML = req.responseText;
				
				if(aryKantone.length == 1){					
					var aryBez = getArrayFromList(document.getElementById('lstBez').value, ",");
					var lstBezir = document.getElementById('lstBezir').value;
					var aryBezir = getArrayFromList(lstBezir, ",");
					
					if(lstBezir == "" || (aryBez.length == aryBezir.length)){
						for(var i=0;i<aryBez.length;i++){
							BezirkeCount++;
							aryBezirke.push(aryBez[i]);
						}
						
						idxFirstOneKanton = true;
						intOneKantonBezCount = aryBezirke.length;
					}else{
						aryBezir = getArrayFromList(lstBezir, ",");
						intOneKantonBezCount = aryBez.length;
						
						for(var i=0;i<aryBezir.length;i++){
							selBezirk(aryBezir[i], 'map_content_' + aryKantone[0], true);
						}
						
						idxFirstOneKanton = false;
					}
				}
	
				// Holt das Menu mit den Rubriken
				getMenu(aryKantone);
			}
		break;	
	default:
		return false;
		break;     
	}
}

// Check Bezirk
function checkBezirk(id, kid, idname, idlist){
	var chk = document.getElementById("bez_" + id);
	var aryIdList = getArrayFromList(idlist, ",");
	var count = 0;

	for(var i=0;i<aryIdList.length;i++){
		var chk = document.getElementById(idname + aryIdList[i]);
		if(chk.checked){
			count++;
		}
	}
	
	if(count == aryIdList.length){
		for(var i=0;i<aryIdList.length;i++){
			var chk = document.getElementById(idname + aryIdList[i]);
			if(aryIdList[i] != id){
				chk.checked = false;
			}
		}
	}
	
	chk = document.getElementById("bez_" + id);
	if(!chk.checked)
		chk.checked = true;
	
	checkBox(kid, idname, idlist);
}

// Markiert den Kanton
function checkBox(cbid, idname, idlist){
	var checked = false;
	var aryIdList = getArrayFromList(idlist, ",");
	var count = 0;

	for(var i=0;i<aryIdList.length;i++){
		var chk = document.getElementById(idname + aryIdList[i]);
		if(chk.checked){
			count++;
		}
	}
	
	chk = document.getElementById(cbid);
		
	if(count == aryIdList.length)
		chk.checked = true;
	else
		chk.checked = false;
}

// Markiert alle Bezirke
function checkAllSub(idname, idlist, checked){	
	var aryIdList = getArrayFromList(idlist, ",");
		
	for(i=0;i<aryIdList.length;i++){
		chk = document.getElementById(idname + aryIdList[i]);
		chk.checked = checked;
	}
}

// Gibt einen Array von einer Liste zurück
function getArrayFromList(list, delimiter){
	return list.split(delimiter);
}

// Gibt alle selektierten Bezirke zurück
function getBezirke(){
	var lst = "";
	
	var lstCheckbox = document.getElementsByTagName("input");
	
	for(i=0;i<lstCheckbox.length;i++){
		if(lstCheckbox[i].type == "checkbox" && lstCheckbox[i].checked == true){
			if(lstCheckbox[i].name.substr(0,3) == "bez"){
				if(lst == "")
					lst = lstCheckbox[i].name.substr(4, lstCheckbox[i].name.length - 4);	
				else
					lst = lst + "," + lstCheckbox[i].name.substr(4, lstCheckbox[i].name.length - 4);
			}
		}
	}
	
	return lst;
}

// Suchresultat aufrufen
function rubrik(rid){
	var aryIdList = getArrayFromList(document.getElementById("lstKantone").value, ",");
		
	if(aryIdList.length > 1){
		var lstBezirke = getBezirke();
		
		if(lstBezirke == "")
			alert("Es muss mindestens ein Bezirk ausgewählt werden");
		else
			window.location.href = strLink + "?view=result&type=multi&intRubrik=" + rid + "&lstBezirke=" + lstBezirke + "&lstKantone=" + document.getElementById("lstKantone").value;
	}else{
		var lstBezirke = "";
		
		for(var i=0;i<aryBezirke.length;i++){
			if(lstBezirke == "")
				lstBezirke = aryBezirke[i];	
			else
				lstBezirke = lstBezirke + "," + aryBezirke[i];
		}
		
		if(lstBezirke == "")
			alert("Es muss mindestens ein Bezirk ausgewählt werden");
		else
			window.location.href = strLink + "?view=result&type=single&intRubrik=" + rid + "&lstBezirke=" + lstBezirke + "&lstKantone=" + document.getElementById("lstKantone").value;
	}
}

/********************************************************************************************/

// Zeigt die Gemeindeliste an
function showGemeindeliste(){
	document.getElementById("gemeindelisteBox").style.display = "block";
	window.clearInterval(interGemeinde);
}

// Schliesst die Gemeindeliste wieder
function closeGemeindeliste(){
	document.getElementById("gemeindelisteBox").style.display = "none";
	window.clearInterval(interGemeinde);
}

// Schliesst die Gemeindeliste in 1.5 Sekunden
function disableGemeindeliste(){
	interGemeinde = window.setInterval("closeGemeindeliste()", 1500);
}

/********************************************************************************************/

// Zeigt die Newsmeldung an
function showNews(){
	document.getElementById("news").style.display = "none";
	document.getElementById("newsmeldungen").style.display = "block";
	window.clearInterval(interNews);
}

// Schliesst die Newsmeldung wieder
function closeNews(){
	document.getElementById("news").style.display = "block";
	document.getElementById("newsmeldungen").style.display = "none";
	window.clearInterval(interNews);
}

// Schliesst die Newsmeldung nach 1 Sekunde wieder
function disableNews(){
	interNews = window.setInterval("closeNews()", 1000);
}

/********************************************************************************************/

// Zeigt die RSS-Infobox an
function showInfoBox(id, l, t){	
	window.clearInterval(interInfoBox);
	
	var lstDiv = document.getElementsByTagName("div");
	for(i=0;i<lstDiv.length;i++){
		if(lstDiv[i].id.substr(0,5) == "info_"){
			lstDiv[i].style.display = 'none';
		}
	}
	
	// Höhe wird berechnet
	document.getElementById('info_' + id).style.display = 'block';
	document.getElementById('info_' + id).style.marginLeft = (l - 171) + 'px';
	document.getElementById('info_' + id).style.top = t + 225 + 'px';
}

// Schliesst die Infobox wieder
function disableInfoBoxInterval(id){
	document.getElementById("info_" + id).style.display = "none";
	window.clearInterval(interInfoBox);
}

// Schliesst die Infobox nach 1.5 Sekunden wieder
function disableInfoBox(id){
	interInfoBox = window.setInterval("disableInfoBoxInterval('" + id + "')", 1500);
}

/********************************************************************************************/

// Zeigt die Bezirke von einem Kanton
function showBezirke(id){
	window.clearInterval(interKanton);
	
	var lstDiv = document.getElementsByTagName("div");
	for(i=0;i<lstDiv.length;i++){
		if(lstDiv[i].id.substr(0,7) == "kanbez_"){
			lstDiv[i].style.display = 'none';
		}
	}
	
	document.getElementById('kanbez_' + id).style.display = 'block';
}

// Schliesst die Bezirke wieder
function disableKantonInterval(id){
	document.getElementById("kanbez_" + id).style.display = "none";
	window.clearInterval(interKanton);
}

// Schliesst die Bezirke nach 1.5 Sekunden wieder
function disableKanton(id){
	interKanton = window.setInterval("disableKantonInterval('" + id + "')", 1500);
}

/********************************************************************************************/

// Zeigt das Menu mit allen Rubriken
function ShowAllRubriken(id){
	document.getElementById(id).style.display = 'block';
	window.clearInterval(interAllRubriken);
}

// Schliesst das Menu mit allen Rubriken
function CloseAllRubriken(id){
	document.getElementById(id).style.display = 'none';
	
	var lstDiv = document.getElementsByTagName("div");
	for(i=0;i<lstDiv.length;i++){
		if(lstDiv[i].id.substr(0,13) == "AllSubRubrik_"){
			lstDiv[i].style.display = 'none';
		}
	}
	
	window.clearInterval(interAllRubriken);
}

// Schliesst das Menu mit allen Rubriken nach 1.5 Sekunden
function disableAllRubriken(id){
	interAllRubriken = window.setInterval("CloseAllRubriken('" + id + "')", 1500);
}

// Zeigt noch das Menu mit den Unterrubriken an
function ShowAllSubRubrik(id){
	
	var divAllRub = document.getElementById('allRubriken');
	var lstDiv = document.getElementsByTagName("div");
	for(i=0;i<lstDiv.length;i++){
		if(lstDiv[i].id.substr(0,13) == "AllSubRubrik_"){
			lstDiv[i].style.display = 'none';
		}
	}
	document.getElementById('AllSubRubrik_' + id).style.display = 'block';
}

/********************************************************************************************/

// Macht die Seite mit den Servicenummern auf
function showServicenummer(){
	var lstKantone = "";
	var lstBezirke = "";
	
	for(i=0;i<aryKantone.length;i++){
		if(lstKantone == "")
			lstKantone = aryKantone[i];
		else
			lstKantone = lstKantone + "," + aryKantone[i];
	}
	
	for(i=0;i<aryBezirke.length;i++){
		if(lstBezirke == "")
			lstBezirke = aryBezirke[i];
		else
			lstBezirke = lstBezirke + "," + aryBezirke[i];
	}
	
	if(lstKantone == "")
		lstKantone = "CH";
	
	// Abhängig von den Kantonen
	window.location.href = strLink + "?view=service&lstKantone=" + lstKantone + "&lstBezirke=" + lstBezirke;
}

// Zeigt die Servicenummern einer Bestimmen Rubrik an
function showServicenummern(id,sid){
	
	var lstDiv = document.getElementsByTagName("div");
	for(i=0;i<lstDiv.length;i++){
		if(lstDiv[i].id.substr(0,14) == "servicenummer_"){
			lstDiv[i].style.display = 'none';
		}
	}
	document.getElementById('servicenummer_' + id).style.display = 'block';
	
	// Sendet eine Ajax anfrage um zu zählen wie viel mal die Meldung aufgerufen wurde
	req.open("GET", '/custom/firmen/online/ajax/setServicenummer.cfm?sid=' + sid, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(null);	
}

/********************************************************************************************/

// Zeigt die Meldung wenn man über die deaktivierten Rubriken fährt 
function ShowRubrikMessage(){
	document.getElementById("grau_message").style.display = "block";
}

// Schliesst die Meldung wenn man über die deaktivierten Rubriken fährt 
function CloseRubrikMessage(){
	document.getElementById("grau_message").style.display = "none";
}

/********************************************************************************************/

// Setzt das Suchresultat wieder wenn man auf die Startseite switscht.
function setSearch(){
	var aryParams = window.location.search.substr(1,window.location.search.length).split("&");
	
	for(i=0;i<aryParams.length;i++){
		var aryParam = aryParams[i].split("=");
		
		switch(aryParam[0]){
			case "lstkantone":
				var lstKantone = aryParam[1];
				break;
			case "lstbezirke":
				var lstBezirke = aryParam[1];
				break;
		}
	}
	
	if(lstBezirke && lstKantone){
		var aryKant = getArrayFromList(lstKantone, ",");
		var count = 0;
		
		for(var i=0;i<aryKant.length;i++){
			SelKanton(aryKant[i],lstBezirke);
			
			count++;
			if(count == anzKantone)
				break;
		}
	}
	
	
}

/**********************************************************************************************/
/********************************* Restliche Funktionen****************************************/
/**********************************************************************************************/

function isValueInArray(ary,val){
	for(var i=0;i<ary.length;i++){
		if(ary[i] == val){
			return true;
		}
	}
	
	return false;
}

/**********************************************************************************************/

var scrollBoxStep = 5;
var timerUp = ""
var timerDown = ""

// Scroll Up
function scrollup(id, step){
	if(!step)
		scrollBoxStep = 5;
	else
		scrollBoxStep = step;
		
	clearTimeout(timerUp) 
	document.getElementById(id).scrollTop -= scrollBoxStep;
	timerUp = setTimeout("scrollup('"+id+"', " + scrollBoxStep + ")",5)
	
	return false;
	
}

// Scroll Down
function scrolldown(id, step){
	if(!step)
		scrollBoxStep = 5;
	else
		scrollBoxStep = step;
	
	clearTimeout(timerDown) 
	document.getElementById(id).scrollTop += scrollBoxStep;
	timerDown = setTimeout("scrolldown('"+id+"', " + scrollBoxStep + ")",5)
	
	return false;
}

// Stop Scroll
function stopBox(){
  clearTimeout(timerUp) 
  clearTimeout(timerDown)
}

// Erstellt das Ajaxobjekt
function createAjaxObject(){
	var reqObject = null;
	
	try{
		reqObject = new XMLHttpRequest();
	}
	catch (ms){
		try{
			reqObject = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (nonms){
			try{
				reqObject = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (failed){
				reqObject = null;
			}
		}  
	}
	
	if (reqObject == null)
		alert("Ein benötigtes JavaScript-Objekt konnte nicht erstellt werden. Bitte aktivieren Sie bei Ihrem Browser JavaScript um die Seite vollständig anzuzeigen.");
		
	return reqObject;
}


/** This is high-level function.
 * It must react to delta being more/less than zero.
 */
function handleWheel(delta) {
        if (delta < 0)
			document.getElementById("allUnterrubrikenContent").scrollTop += 50;
        else
			document.getElementById("allUnterrubrikenContent").scrollTop -= 50;
}

/** Event handler for mouse wheel event.
 */
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handleWheel(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}


function initEvent(){
	/** Initialization code. 
	 * If you use your own event management code, change it as required.
	 */
	if(document.getElementById("allUnterrubriken")){
		if (document.getElementById("allUnterrubriken").addEventListener)
				/** DOMMouseScroll is for mozilla. */
				document.getElementById("allUnterrubriken").addEventListener('DOMMouseScroll', wheel, false);
		/** IE/Opera. */
		document.getElementById("allUnterrubriken").onmousewheel = wheel;
	}
}


addLoadEvent(initEvent);

var req = createAjaxObject(); 
