/**************************/
/*                        */
/*  aendern von geodaten  */
/*                        */
/**************************/

function setResetSelect(id, deSelect) {	
	var idSize = document.getElementById(id).childNodes.length;

	for (var i = 0; i < idSize; i++) {
		var delId = document.getElementById(id).firstChild;

		document.getElementById(id).removeChild(delId);
	}

	var geoIdOption = document.createElement("option");

	geoIdOption.setAttribute("value", "all");
	geoIdOption.innerHTML = deSelect;

	document.getElementById(id).appendChild(geoIdOption);
}

// source = selectfeld aus dem heraus gehandelt wird. es liefert die id
// target = das li-element in welches die daten geschrieben werden sollen

function setGeoRegion(source, target, deSelect) {
	newTarget = target;

	// andere felder reseten

	setResetSelect("county", deSelect);
	setResetSelect("city", deSelect);
	setResetSelect("area", deSelect);

	hideElement("otherArea", 2);
	document.getElementById("otherArea").getElementsByTagName("input")[0].value = '';

	// request ausfuehren

	initRequest();

	httpRequest.onreadystatechange = doIt;

	landId = document.getElementById(source).value;

	// setzen der karte wenn keine auswahl, dann nichts hervorheben
	
	if (landId == 'error') {
		setClickMap(0);
	}

	httpRequest.open('GET', 'geo-region-'+landId+'.php');
	httpRequest.send(null);
}

// source = selectfeld aus dem heraus gehandelt wird. es liefert die id
// target = das li-element in welches die daten geschrieben werden sollen

function setGeoCounty(source, target, deSelect) {
	newTarget = target;

	// andere felder reseten

	setResetSelect("city", deSelect);
	setResetSelect("area", deSelect);

	hideElement("otherArea", 2);
	document.getElementById("otherArea").getElementsByTagName("input")[0].value = '';

	// request ausfuehren

	initRequest();

	httpRequest.onreadystatechange = doIt;

	landId = document.getElementById('land').value;

	// wenn aus den landkarten, dann die daten umschreiben
	// source = datensatzid
	// target = index im select

	if (document.getElementById(source) == null) {
		regionId  = source;
		newTarget = 'geoCounty';

		document.getElementById('region').selectedValue = regionId;
		document.getElementById('region').options[target].selected = true;
	}
	else {
		regionId = document.getElementById(source).value;
	}

	// karte hervorheben - karte reagiert auf die position und nicht die id
	// also die id in position umschreiben

	var id = 0;

	switch (regionId) {
		case '411':
			id = 1;
		break;
		case '1':
			id = 2;
		break;
		case '16':
			id = 3;
		break;
		case '29':
			id = 4;
		break;
		case '42':
			id = 5;
		break;
		case '61':
			id = 6;
		break;
		case '352':
			id = 7;
		break;
		case '107':
			id = 8;
		break;
		case '144':
			id = 9;
		break;
		case '179':
			id = 10;
		break;
		case '238':
			id = 11;
		break;
		case '413':
			id = 12;
		break;
		case '273':
			id = 13;
		break;
		case '321':
			id = 14;
		break;
		case '336':
			id = 15;
		break;
	}

	setClickMap(id);

	httpRequest.open('GET', 'geo-county-'+landId+'-'+regionId+'.php');
	httpRequest.send(null);
}

// source = selectfeld aus dem heraus gehandelt wird. es liefert die id
// target = das li-element in welches die daten geschrieben werden sollen

function setGeoCity(source, target, deSelect) {
	newTarget = target;

	// andere felder reseten

	setResetSelect("area", deSelect);

	hideElement("otherArea", 2);
	document.getElementById("otherArea").getElementsByTagName("input")[0].value = '';

	// request ausfuehren

	initRequest();

	httpRequest.onreadystatechange = doIt;

	landId   = document.getElementById('land').value;
	countyId = document.getElementById(source).value;

	httpRequest.open('GET', 'geo-city-'+landId+'-'+countyId+'.php');
	httpRequest.send(null);
}

// source = selectfeld aus dem heraus gehandelt wird. es liefert die id
// target = das li-element in welches die daten geschrieben werden sollen

function setGeoArea(source, target, deSelect) {
	newTarget = target;

	// andere felder reseten

	hideElement("otherArea", 2);
	document.getElementById("otherArea").getElementsByTagName("input")[0].value = '';

	// request ausfuehren

	initRequest();

	httpRequest.onreadystatechange = doIt;

	cityId = document.getElementById(source).value;

	httpRequest.open('GET', 'geo-area-'+cityId+'.php');
	httpRequest.send(null);
}

function setOtherArea(source, target, deSelect) {
	value = document.getElementById(source).value;

	if (value == 307) {
		showElement(target, 2);
	}
	else {
		hideElement(target, 2);
	}

	document.getElementById("otherArea").getElementsByTagName("input")[0].value = '';
}

var size   = 16;
var showId = 0;
var click  = new Array(size);
var imgOn  = new Array(size);
var imgOff = new Array(size);

for (i = 1; i < size; i++) {
	click[i] = 0; 

	imgOn[i]  = "http://www.suedamerika-immobilien.net/frontend/images/karten-chile/image"+i+".gif";
	imgOff[i] = "http://www.suedamerika-immobilien.net/frontend/images/karten-chile/default.gif";
}

function setOverMap(id) {
	if (click[id] == 0) {
		document.getElementById("bgmap").setAttribute("src", imgOn[id]);
	}
}

function setOutMap(id) {
	if (click[id] == 0) {
		document.getElementById("bgmap").setAttribute("src", imgOff[id]);
	}

	if (showId != 0) {
		document.getElementById("bgmap").setAttribute("src", imgOn[showId]);
	}	
}
	
function setClickMap(id) {
	for (i = 1; i < size; i++) {
		click[i] = 0;
		document.getElementById("bgmap").setAttribute("src", imgOff[id]);
	}

	click[id] = 1;
	showId    = id;

	if (id == 0) {
		document.getElementById("bgmap").setAttribute("src", imgOff[1]);
	}
	else {
		document.getElementById("bgmap").setAttribute("src", imgOn[id]);
	}
}

/**********************************************/
/*                                            */
/*  allgemein - daten in die seite schreiben  */
/*                                            */
/**********************************************/

function doIt() {
	if ((httpRequest.readyState == 4) && (httpRequest.status == 200)) {
		var value = httpRequest.responseText;

		if (newTarget != "") {
			document.getElementById(newTarget).innerHTML = value;
		}
	}
}

function doItPop() {
	if ((httpRequest.readyState == 4) && (httpRequest.status == 200)) {
		opener.document.getElementById(newTarget).innerHTML = httpRequest.responseText;
		top.close();
	}
}

function initRequest() {
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		httpRequest = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}
}