var chs2 = '';
var metas = document.getElementsByTagName("meta");
for( var i=0; i<metas.length; i++) {
	if(metas[i].getAttribute) {
		if (metas[i].getAttribute('content').search(/utf-8/i) != -1) {
			chs2 = 'utf8';
			break;
		}
	}
}
function JSONscriptRequest(fullUrl) {
	this.fullUrl = fullUrl;
	this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
	this.headLoc = document.getElementsByTagName("head").item(0);
	this.scriptId = 'YJscriptId' + JSONscriptRequest.scriptCounter++;
}
JSONscriptRequest.scriptCounter = 1;
JSONscriptRequest.prototype.buildScriptTag = function () {
	this.scriptObj = document.createElement("script");
	this.scriptObj.setAttribute("type", "text/javascript");
	this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
	this.scriptObj.setAttribute("id", this.scriptId);
}
JSONscriptRequest.prototype.removeScriptTag = function () {
	this.headLoc.removeChild(this.scriptObj);
}
JSONscriptRequest.prototype.addScriptTag = function () {
	this.headLoc.appendChild(this.scriptObj);
}
// Geonames.org
// Author: geonames.org
var postalcodes;
var postalurl1;
var postalurl2;
var cnt = 0;
var nf;
/*
if (window.location.protocol == 'file:') {
	postalurl1 = "http://web1.localhost/geodata/";
	postalurl2 = "http://www.dw-formmailer.de/geodata/";
} else {
	postalurl1 = "//web1.localhost/geodata/";
	postalurl2 = "//www.dw-formmailer.de/geodata/";
}
*/

if (window.location.protocol == 'file:') {
	postalurl1 = "http://www.dw-formmailer.de/geodata/";
	postalurl2 = "http://www.dw-formmailer.de/geodata/";
} else {
	postalurl1 = "//www.dw-formmailer.de/geodata/";
	postalurl2 = "//www.dw-formmailer.de/geodata/";
}


function getLocation(jData) {
	if (jData == null) {
		return;
	}
	if (n_feld) {
		nf='_'+n_feld;	
	} else {
		nf='';
	}
	postalcodes = jData.postalcodes;
	//closeMapBox(n_feld);
	closeSuggestBox();
	if (postalcodes.length > 1) {
		document.getElementById('suggestBoxElement'+nf).style.visibility = 'visible';
		var suggestBoxHTML  = '';
		for (i=0;i< jData.postalcodes.length;i++) {
			suggestBoxHTML += "<div class='suggestions' id=pcId" + i + " onmousedown='suggestBoxMouseDown(" + i +")' onmouseover='suggestBoxMouseOver(" +  i +")' onmouseout='suggestBoxMouseOut(" + i +")'> " + postalcodes[i].countrycode + ' ' + postalcodes[i].postalcode + '    ' + postalcodes[i].placename  +'</div>';
		}
		document.getElementById('suggestBoxElement'+nf).innerHTML = suggestBoxHTML;
	} else {
		if (postalcodes.length == 1) {
			if (document.getElementById("postalInput"+nf)) {
				var postalInput = document.getElementById("postalInput"+nf);
				postalInput.value = postalcodes[0].postalcode;
			}
			if (document.getElementById("placeInput"+nf)) {
				var placeInput = document.getElementById("placeInput"+nf);
				placeInput.value = postalcodes[0].placename;
			}
			if (document.getElementById("landInput"+nf)) {
				var landInput = document.getElementById("landInput"+nf);
				landInput.value = postalcodes[0].landname;
				landInput.focus();
			}
			if (document.getElementById("land2Input"+nf)) {
				var land2Input = document.getElementById("land2Input"+nf);
				land2Input.value = postalcodes[0].landname2;
				land2Input.focus();
			}
			if (document.getElementById("telInput"+nf)) {
				var telInput = document.getElementById("telInput"+nf);
				telInput.value = postalcodes[0].telcode;
				telInput.focus();
			}
			if (document.getElementById("telInput2"+nf)) {
				var telInput2 = document.getElementById("telInput2"+nf);
				telInput2.value = postalcodes[0].vorwahl;
				telInput2.focus();
			}
			if (document.getElementById("telInput3"+nf)) {
				var telInput3 = document.getElementById("telInput3"+nf);
				telInput3.value = postalcodes[0].telcode + postalcodes[0].vorwahl;
				telInput3.focus();
			}
			if (document.getElementById("faxInput"+nf)) {
				var faxInput = document.getElementById("faxInput"+nf);
				faxInput.value = postalcodes[0].telcode;
				faxInput.focus();
			}
			if (document.getElementById("faxInput2"+nf)) {
				var faxInput2 = document.getElementById("faxInput2"+nf);
				faxInput2.value = postalcodes[0].vorwahl;
				faxInput2.focus();
			}
			if (document.getElementById("faxInput3"+nf)) {
				var faxInput3 = document.getElementById("faxInput3"+nf);
				faxInput3.value = postalcodes[0].telcode + postalcodes[0].vorwahl;
				faxInput3.focus();
			}
			//document.getElementById('map').style.visibility = 'visible';
			//document.getElementById('map').innerHTML = '<a target="_blank" href="' + postalurl2 + 'map.php?lat=' + postalcodes[0].lat  +'&lng=' + postalcodes[0].lng +'">satellite preview</a>';
		}
		closeSuggestBox();
	}
}
//function closeMapBox() {
	//document.getElementById('map'+nf).innerHTML = '';
	//document.getElementById('map'+nf).style.visibility = 'hidden';
//}
function closeSuggestBox() {
	document.getElementById('suggestBoxElement'+nf).innerHTML = '';
	document.getElementById('suggestBoxElement'+nf).style.visibility = 'hidden';
}
function suggestBoxMouseOut(obj) {
	document.getElementById('pcId'+ obj).className = 'suggestions';
}
function suggestBoxMouseDown(obj) {
	closeSuggestBox();
	if (document.getElementById("postalInput"+nf)) {
		var postalInput = document.getElementById("postalInput"+nf);
		postalInput.value = postalcodes[obj].postalcode;
	}
	if (document.getElementById("placeInput"+nf)) {
		var placeInput = document.getElementById("placeInput"+nf);
		placeInput.value = postalcodes[obj].placename;
	}
	if (document.getElementById("landInput"+nf)) {
		var landInput = document.getElementById("landInput"+nf);
		landInput.value = postalcodes[obj].landname;
		landInput.focus();
	}
	if (document.getElementById("land2Input"+nf)) {
		var land2Input = document.getElementById("land2Input"+nf);
		land2Input.value = postalcodes[obj].landname2;
		land2Input.focus();
	}
	if (document.getElementById("telInput"+nf)) {
		var telInput = document.getElementById("telInput"+nf);
		telInput.value = postalcodes[obj].telcode;
		telInput.focus();
	}
	if (document.getElementById("telInput2"+nf)) {
		var telInput2 = document.getElementById("telInput2"+nf);
		telInput2.value = postalcodes[obj].vorwahl;
		telInput2.focus();
	}
	if (document.getElementById("telInput3"+nf)) {
		var telInput3 = document.getElementById("telInput3"+nf);
		telInput3.value = postalcodes[obj].telcode + postalcodes[obj].vorwahl;
		telInput3.focus();
	}
	if (document.getElementById("faxInput"+nf)) {
		var faxInput = document.getElementById("faxInput"+nf);
		faxInput.value = postalcodes[obj].telcode;
		faxInput.focus();
	}
	if (document.getElementById("faxInput2"+nf)) {
		var faxInput2 = document.getElementById("faxInput2"+nf);
		faxInput2.value = postalcodes[obj].vorwahl;
		faxInput2.focus();
	}
	if (document.getElementById("faxInput3"+nf)) {
		var faxInput3 = document.getElementById("faxInput3"+nf);
		faxInput3.value = postalcodes[obj].telcode + postalcodes[obj].vorwahl;
		faxInput3.focus();
	}
	//if (postalcodes[obj].lat != 0) {
		//document.getElementById('map').style.visibility = 'visible';
		//document.getElementById('map').innerHTML = '<a target="_blank" href="' + postalurl2 + 'map.php?lat=' + postalcodes[obj].lat  +'&lng=' + postalcodes[obj].lng +'">satellite preview</a>';
	//} else {
		//document.getElementById('map'+nf).innerHTML = '';
		//document.getElementById('map'+nf).style.visibility = 'hidden';
	//}
}
function suggestBoxMouseOver(obj) {
	document.getElementById('pcId'+ obj).className = 'suggestionMouseOver';
}
function postalLookup(n) {
	cnt++;
	if(n) {
		var country = document.getElementById("countrySelect_"+n).value;
		if (geonamesPostalCodeCountries.toString().search(country) == -1) {
			return;
		}
		var postalcode = escape(document.getElementById("postalInput_"+n).value);
		if (postalcode.length<3){return;}
		document.getElementById("suggestBoxElement_"+n).style.visibility = 'visible';
		document.getElementById("suggestBoxElement_"+n).innerHTML = '<small><i>one moment please ...</i></small>';
		request = postalurl1 + '?postalcode=' + postalcode  + '&country=' + country + '&key=' + key + '&chs=' + chs + '&chs2=' + chs2 + '&n=' + n;
		aObj = new JSONscriptRequest(request);
		aObj.buildScriptTag();
		aObj.addScriptTag();
	} else {
		var country = document.getElementById("countrySelect").value;
		if (geonamesPostalCodeCountries.toString().search(country) == -1) {
			return;
		}
		var postalcode = escape(document.getElementById("postalInput").value);
		if (postalcode.length<3){return;}
		document.getElementById('suggestBoxElement').style.visibility = 'visible';
		document.getElementById('suggestBoxElement').innerHTML = '<small><i>one moment please ...</i></small>';
		request = postalurl1 + '?postalcode=' + postalcode  + '&country=' + country + '&key=' + key + '&chs=' + chs + '&chs2=' + chs2;
		aObj = new JSONscriptRequest(request);
		aObj.buildScriptTag();
		aObj.addScriptTag();
	}
}
function placeLookup(n) {
	if (cnt>0) {cnt=0;return;}
	if(n) {
		var country = document.getElementById("countrySelect_"+n).value;
		if (geonamesPostalCodeCountries.toString().search(country) == -1) {
			return;
		}
		var place = escape(document.getElementById("placeInput_"+n).value);
		if (place.length<3){return;}
		document.getElementById('suggestBoxElement_'+n).style.visibility = 'visible';
		document.getElementById('suggestBoxElement_'+n).innerHTML = '<small><i>one moment please ...</i></small>';
		request = postalurl1 + '?place=' + place  + '&country=' + country + '&key=' + key + '&chs=' + chs + '&chs2=' + chs2 + '&n=' + n;
		aObj = new JSONscriptRequest(request);
		aObj.buildScriptTag();
		aObj.addScriptTag();
	} else {
		var country = document.getElementById("countrySelect").value;
		if (geonamesPostalCodeCountries.toString().search(country) == -1) {
			return;
		}
		var place = escape(document.getElementById("placeInput").value);
		if (place.length<3){return;}
		document.getElementById('suggestBoxElement').style.visibility = 'visible';
		document.getElementById('suggestBoxElement').innerHTML = '<small><i>one moment please ...</i></small>';
		request = postalurl1 + '?place=' + place  + '&country=' + country + '&key=' + key + '&chs=' + chs + '&chs2=' + chs2;
		aObj = new JSONscriptRequest(request);
		aObj.buildScriptTag();
		aObj.addScriptTag();
	}
}
function setDefaultCountry(n) {
	if(n) {
		for (z=1;z<=n;z++) {
			if(z>1) {
				var a = document.getElementById("countrySelect_"+z);
			} else {
				var a = document.getElementById("countrySelect");
			}
			var x=0;
			for (i=0;i< a.length;i++) {
				if (a[i].value == geonamesUserIpCountryCode) {
					a.selectedIndex = i;
					x=i;
				}
			}
			if(z>1) {
				if (document.getElementById("countrySelect2_"+z)) {
					document.getElementById("countrySelect2_"+z).selectedIndex = x;
				}
			} else {
				if (document.getElementById("countrySelect2")) {
					document.getElementById("countrySelect2").selectedIndex = x;
				}	
			}
		}
	} else {
		var a = document.getElementById("countrySelect");
		var x=0;
		for (i=0;i< a.length;i++) {
			if (a[i].value == geonamesUserIpCountryCode) {
				a.selectedIndex = i;
				x=i;
			}
		}
		if (document.getElementById("countrySelect2")) {
			document.getElementById("countrySelect2").selectedIndex = x;
		}
	}
}
function setDefaultCountry2(n) {
	if(n) {
		for (z=1;z<=n;z++) {
			if(z>1) {
				var a = document.getElementById("countrySelect_"+z);
			} else {
				var a = document.getElementById("countrySelect");
			}
			var b = a.value;
			var c = 0;
			for (i=0;i< a.length;i++) {
				if (a[i].value == b) {
					c=i;
				}
			}
			if(z>1) {
				if (document.getElementById("countrySelect2_"+z)) {
					document.getElementById("countrySelect2_"+z).selectedIndex = c;
				}
			} else {
				if (document.getElementById("countrySelect2")) {
					document.getElementById("countrySelect2").selectedIndex = c;
				}	
			}
		}
	} else {
		var a = document.getElementById("countrySelect");
		var b = a.value;
		var c = 0;
		for (i=0;i< a.length;i++) {
			if (a[i].value == b) {
				c=i;
			}
		}
		if (document.getElementById("countrySelect2")) {
			document.getElementById("countrySelect2").selectedIndex = c;
		}
	}
}
function setCountries() {
	//document.write("<select id=\"countrySelect\" name=\"Land\">");
	for (var i=0;i<geonamesPostalCodeCountries.length;i++) {
		document.write("<option value=\"" + geonamesPostalCodeCountries[i] + "\">" + geonamesPostalCodeCountries[i] + "<\/option>");
	}
	//document.write("<\/select>");
}
