/* HELPER.js */
function setConsole(){
	if(global.FIREBUG_ENABLE == 0){
								window.console = {};
								//console.log("====================== console ist off ====================");
								var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupCollapsed", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
								for (var i = 0; i <names.length; ++i) {		window.console[names[i]] = function() {};	}
						} else { 
								if (window['loadFirebugConsole']) {
										console.log(" ====================== console sollte gehen ==================== "); 
								} else {
									window.console = {}; 
									var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupCollapsed", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
									for (var i = 0; i <names.length; ++i) {		window.console[names[i]] = function() {};	}
								}
		}
}

function urlReplace(string){	
	var ret = string.replace(/ /g, "_"); 	ret = ret.replace(/,/g, "");	ret = ret.replace(/ä/g, "ae");	ret = ret.replace(/ü/g, "ue");
	ret = ret.replace(/ö/g, "oe");	ret = ret.replace(/\./g, "-");	ret = ret.replace(/\//g, "_");	return ret;
}
function createEarthfaveURL(obj){	
	var urlCName = obj.catName0;	var urlCity  = obj.city; 	var urlName  = obj.name;	var url = "";
	if( urlCName ) { urlCName = urlReplace( urlCName ); } 
	if( urlName) 		 { urlName  = urlReplace( urlName ); } 
	if( urlCity ) 		 { urlCity  = urlReplace( urlCity ); } 
 	urlCity = urlCity.replace(/\./g, "");
	if(urlCity == ''){ urlCity = "unknown";}
	if(urlCName){
		if(urlCName != ""){	url = global.URL + urlName +  '/' + urlCity + '/' +  obj.id + '/' + urlCName + '/';}
	}
	if(url == ""){ 	url = global.URL + urlName +  '/' + urlCity + '/' +  obj.id + '/no_category/';}
	return url;
}

function createUserUrl(uId,uName){	return global.URL + 'user/' + uId + '/' + uName + '/'; }
function trim(str, chars) {    return ltrim(rtrim(str, chars), chars);}
function ltrim(str, chars) {    chars = chars || "\\s";    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");}
function rtrim(str, chars) {    chars = chars || "\\s";    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");}  
function addslashes(str) {
	str=str.replace(/\'/g,'\'');	str=str.replace(/\"/g,'\"');	return str;
}
function encodeForRequest(text){	return escape(encode_utf8(text));	}

// Danke an selfhtml, siehe http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8.htm
function encode_utf8(rohtext) {
	if (! rohtext) {	return rohtext;	}
	// Dient der Normalisierung des Zeilenumbruchs
	rohtext = rohtext.replace(/\r\n/g,"\n");
	var utftext = "";
	for(var n=0; n<rohtext.length; n++)	{
		var c=rohtext.charCodeAt(n);
		if (c<128)
		utftext += String.fromCharCode(c);

		else if((c>127) && (c<2048)) 	{
			utftext += String.fromCharCode((c>>6)|192);
			utftext += String.fromCharCode((c&63)|128);}
			// alle Zeichen von 2048 bis 66536 => 3byte
			else 	{
				utftext += String.fromCharCode((c>>12)|224);
				utftext += String.fromCharCode(((c>>6)&63)|128);
				utftext += String.fromCharCode((c&63)|128);
			}
	}
	return utftext;
}

function decode_utf8(utftext) {
  var plaintext = ""; var i=0; var c=c1=c2=0;
         while(i<utftext.length){
                 c = utftext.charCodeAt(i);
                 if (c<128) {  plaintext += String.fromCharCode(c); i++;}
                 else if((c>191) && (c<224)) { c2 = utftext.charCodeAt(i+1); plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));  i+=2;}
                 else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63)); i+=3;}
                 }
         return plaintext;
  }

//function info(text, level, module){}

function getWindowHeight() {
  if (typeof(window.innerHeight) == 'number')  {  return window.innerHeight; }
	else if (document.documentElement && document.documentElement.clientHeight) {   return document.documentElement.clientHeight; } 
  else if (document.body && document.body.clientHeight)  {   return document.body.clientHeight; }
}

function getWindowWidth() {
  if (typeof(window.innerWidth) == 'number') {   return window.innerWidth; } 
  else if (document.documentElement && document.documentElement.clientWidth)  {    return document.documentElement.clientWidth; } 
  else if( document.body && document.body.clientWidth )  {    return document.body.clientWidth; }
}

function getArrayIdByEfIdOfActiveMap(activeMap,efid){
		var i =0;	for(i; i < activeMap.earthfaves.length ; i++){			if(activeMap.earthfaves[i].id == efid){ return i; }	}
		return false;			
}
Array.prototype.unique =
  function() {
		var a = [];
    var l = this.length;
		for(i=0; i<l; i=i+1) {
			for(var j=i+1; j<l; j=j+1) {
        // If this[i] is found later in the array
        if (this[i] === this[j]){
				 i = i + 1;
				 j = i;
				}
      }
      a.push(this[i]);
			
    }
    return a;
		
  };
	
function isUrl(s) {
	var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}
	
/*HELPER ENDE ................*/	
	

/* AJAX POOL */
var alerts = false;
_Ajax = function(){
	this.XMLHttpRequestContainers = new Array();	
	this.freeContainer = -1;	// index of a free container
	this.request_id = 0;
}
_Ajax.prototype.send = function(serverFile, parameter, callback, callbackOnError, callbackOnTimeout, timeout){
	var requestContainer = this.getFreeContainer();
  var xmlHttpRequest = requestContainer.XMLHttpRequest;
  requestContainer.callback = callback;
  if (typeof(callbackOnTimeout) !== "undefined" && typeof(timeout) !== "undefined"){
		requestContainer.callbackOnTimeout = callbackOnTimeout;
		requestContainer.timer = setTimeout("Ajax.stop(" + this.request_id + ")", timeout);
		console.log("Timeout for request #" + this.request_id + " set to " + timeout);
  }

  if (callbackOnError !== undefined)  {requestContainer.callbackOnError = callbackOnError; }
  xmlHttpRequest.open( "POST", serverFile, true );
  xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	var pid = get.page_id;
	if(typeof(pid) == "undefined"){pid = '';}
	xmlHttpRequest.send("rid=" + this.request_id + "&pid=" + pid + "&" + parameter);
  console.log("Sent #" + this.request_id + " / " + (typeof(callbackOnTimeout) == "undefined" ? "no timeout" : (timeout + "ms")) + " (" + serverFile + ")");
}
_Ajax.prototype.createRequest = function (){
  var xmlHttp;
  if (window.ActiveXObject){
    try{   xmlHttp = new ActiveXObject("Msxml12.XMLHTTP");  }
    catch (e) {
      try {     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }  
			catch (e) {		console.log("Could not create the ActiveXObject object"); }
    }
  } else if (window.XMLHttpRequest){
    try {   xmlHttp = new XMLHttpRequest();  }
    catch (e) {	console.log("Could not create the XMLHttpRequest object");  }
  }
  return xmlHttp;
}
_Ajax.prototype.stop = function(id){
	for (var i = 0; i < this.XMLHttpRequestContainers.length; i++){
		if (this.XMLHttpRequestContainers[i].request_id == id){
			clearTimeout(this.XMLHttpRequestContainers[i].timer);
			this.XMLHttpRequestContainers[i].XMLHttpRequest.abort();
			this.XMLHttpRequestContainers[i].request_id = -1;
			// Save this container as free (so we get instantly an free container with the next request without iterating over the whole container array)
			this.freeContainer = i;
			this.XMLHttpRequestContainers[i].callbackOnTimeout("timeout");
		}
	}
}
_Ajax.prototype.getFreeContainer = function (){
	var freeContainer = null;
	// First case: the freeContainer which points to a free container has a valid index
	if (this.freeContainer > -1){
		freeContainer = this.XMLHttpRequestContainers[this.freeContainer];
		console.log (this.XMLHttpRequestContainers.length + " request object(s) are in pool, using free container #" + this.freeContainer);
		this.freeContainer = -1;
	}	else	{
		for (var i = 0; i < this.XMLHttpRequestContainers.length; i++){
			if (this.XMLHttpRequestContainers[i].request_id < 0){
				// Currently no request is using this XMLHttpRequest object, object is idle
				freeContainer = this.XMLHttpRequestContainers[i];
//				console.log (this.XMLHttpRequestContainers.length + " request object(s) are in pool, using object #" + i, "ajax", 3);
				break;
			}
		}
	}
	if (freeContainer == null){
		freeContainer = new XMLHttpRequestContainer();
		freeContainer.XMLHttpRequest = this.createRequest();
		this.XMLHttpRequestContainers.push(freeContainer);
	}
	// Now we have a free container: freeContainer
	// ATTENTION: to avoid problems use the abort() function.
	// NOTE: Even when abort()is not used the callback function has to be set in every of the three cases, because when an ajax request returns its onreadystatechange property is set to null
	freeContainer.XMLHttpRequest.abort();
	freeContainer.XMLHttpRequest.onreadystatechange = _Ajax_callback;
	freeContainer.request_id = ++this.request_id;
	freeContainer.callbackOnTimeout = defaultCallbackOnTimeout;
	freeContainer.callbackOnError = defaultCallbackOnError;
	freeContainer.timer = null;
	freeContainer.timeout = 0;
	return freeContainer;
}

XMLHttpRequestContainer = function (){
	this.request_id = -1;		this.XMLHttpRequest = null;	this.callback = null;	this.callbackOnTimeout = null;	this.timer = null;
}
XMLHttpRequestContainer.prototype.toString = function (){	return "request #" + this.request_id + ", callback: " + this.callback;}
Ajax = new _Ajax();
_Ajax_callback = function(){
	// Check all request containers whether they are running and have finished their request
	if(alerts) alert("ajaxPool CALLBACK...");	
	for (var i = 0; i < Ajax.XMLHttpRequestContainers.length; i++){
		if (Ajax.XMLHttpRequestContainers[i].request_id > -1){
		//	console.log('::::::::::::: AJAXPOOL :::::::: request_id ' + Ajax.XMLHttpRequestContainers[i].request_id + ' :::::::::::::::::');
			var xmlHttpRequest = Ajax.XMLHttpRequestContainers[i].XMLHttpRequest;
			try{
				if (xmlHttpRequest.readyState == 4){	
								if(alerts) alert("ajaxPool xmlHttpRequest.readyState == 4 ...");	
								if (typeof(xmlHttpRequest.status) !== "undefined" && xmlHttpRequest.status == 200){
								if(alerts) alert("ajaxPool...bekomme status 200");	
									clearTimeout(Ajax.XMLHttpRequestContainers[i].timer);
									var container_request_id = Ajax.XMLHttpRequestContainers[i].request_id;
									// It's very important to set the request_id already here (before the callback is executed)
									Ajax.XMLHttpRequestContainers[i].request_id = -1;
									//	müssen mögliche Leerzeichen hier entfernt werden
									var r = trim(xmlHttpRequest.responseText);
		//							console.log("r: " + r, "ajax", 5);
									var rp = r.split('</rid>');
		//							console.log("rp: " + rp, "ajax", 5);
									var request_id = parseInt(rp[0].substring(5));
		//				      console.log("rid: " + request_id, "ajax", 5);
									if (request_id == container_request_id){
										if(alerts) alert("ok rid:" + request_id);
		//								console.log("Callback #" + request_id + ": " + rp[1] + ", callback=" + Ajax.XMLHttpRequestContainers[i].callback, "ajax", 5);
										Ajax.XMLHttpRequestContainers[i].callback(rp[1]);
									}	else {
										if(alerts) alert("error rid:" + request_id);
										console.log("Callback failed: id #" + Ajax.XMLHttpRequestContainers[i].request_id + " of finished container don't match #" + request_id + " of returned script", "ajax", 2);
										Ajax.XMLHttpRequestContainers[i].callbackOnTimeout(rp[1]);
									}
									// Request gefunden und Callback ausgeführt, also verlassen wir nun die Schleife
									break;
						}
						else {
									if(alerts) alert("ajaxPool...bekomme fehler");	
									console.log("Callback failed for request #: " + request_id + " [HTTP error " + xmlHttpRequest.status + "]  response text: " + xmlHttpRequest.responseText);
									try 	{	Ajax.XMLHttpRequestContainers[i].callbackOnError(rp[1]);	}
									catch (e){			Ajax.XMLHttpRequestContainers[i].callbackOnError(1);	}
						}
				} else {
					if(alerts) alert("ERROR ajaxPool xmlHttpRequest.readyState != 4 ...");	
				}
			}
			catch (e)		{			continue;		}
		}
	}
}
function defaultCallbackOnTimeout(response){	console.log("Default timeout callback (no own timeout callback defined): " + response);}
function defaultCallbackOnError(response){	console.log("Got error from server (this message is generated by the default error callback; you can define an own error callback function): " + response);}
/* AJAX POOL ENDE */


/* DANIEL Globals */
Global = function (){	this.paginationStep = 10;	this.action = "";}
Languages = function (){}
LanguagesExt = function (){}
/*daniel gloabls ende */

/* DANIEL APPLICATION  */
	Application = function(){	this.entities = new Array();	this.index = 0;	this.activeMap = null;	this.activeList = null; }
	Application.prototype.register = function(entity, type){	this.entities[this.index] = entity;	entity.id = this.index++;	entity.type = type;}
	Application.prototype.get = function(id){	return this.entities[id];}
	Application.prototype.setActiveMap = function(map){	this.activeMap = map;}
	Application.prototype.getActiveMap = function(){	return this.activeMap;}
	Application.prototype.setActiveList = function(list){	this.activeList = list;}
	Application.prototype.getActiveList = function(){	return this.activeList;}
/* :.................................. */

var isVisible = false;
var docEl;
if( typeof(document.compatMode) != "undefined" && document.compatMode != "BackCompat" ){ docEl = "documentElement"; } else { docEl = "body"; }
var mausX = 0; var mausY = 0;

var TYPE_EARTHFAVE	 = "EARTHFAVE";
var TYPE_GOOGLEPLACE = "GOOGLE";
//var TYPE_GOOGLEPLACE = "GOOGLEPLACE";
var TYPE_GEONAME	 = "GEONAME";
var TYPE_WIKI		 = "WIKI";
//var TYPE_PEOPLE		 = "PEOPLE";

var forgottenIdPrefix = 'forgotten_';
//JOSE for facebook signup


var signupIdPrefix = 'signup_';
var signupTDIdPrefix = 'signup_td_';
var signupTRIdPrefix = 'signup_tr_';

var newEntityIdPrefix = 'newentity_';
var newEntityTDIdPrefix = 'newentity_td_';
var joinEntityIdPrefix = 'joinentity_';
var joinEntityTDIdPrefix = 'joinentity_td_';
var newBusinessIdPrefix = 'newbusiness_';
var newBusinessTDIdPrefix = 'newbusiness_td_';
var editAccountPrefix = 'editaccount_';

var editaccountIdPrefix = 'editaccount_';
var changePasswordFormIdPrefix = 'changepasswordform_';
var changeEMailFormIdPrefix = 'changeemailform_';
var addWizardIdPrefix = 'addwizard_';
var bookmarkWizardIdPrefix = 'bookmarkwizard_';
var editProfileWizardIdPrefix = 'editprofilewizard_';

var editAddressFormIdPrefix = 'editaddressform_';
var editContactFormIdPrefix = 'editcontactform_';
var editTopicsFormIdPrefix = 'edittopicsform_';
var editOverviewFormIdPrefix = 'editoverviewform_';
var editCategoriesFormIdPrefix = 'editcategoriesform_'; //Oli 22.10.2009
var editCommentFormIdPrefix = 'editcommentform_';

// Die Seiten des Bookmark-Dialogs
//var bookmarkSteps = new Array('description', 'media');
// Die Seiten des Add-Dialogs
//var addSteps = new Array('address', 'topics', 'description', 'media');
// Zwischenspeicher, der von den Inline-Editierfeldern auf der efhome verwendet wird
var editBuffer = new Array();
// manuell gesetzte zoollevel fuer bestimmte objekte auf der erde

var mapZoomer = new Array();

var mapMoveTimer = 	setTimeout("",0);
 
 var werte = new Array("Alegranza",13);
 mapZoomer.push(werte);
 werte = new Array("Alicudi",13); 
 mapZoomer.push(werte);
 werte = new Array("Bali",9); 
 mapZoomer.push(werte);
 werte = new Array("Barbados",10);
 mapZoomer.push(werte);
 werte = new Array("Borneo",5); 
 mapZoomer.push(werte);
 werte = new Array("Bahamas",11); 
 mapZoomer.push(werte);
 werte = new Array("Baffin Island",4); 
 mapZoomer.push(werte);
 werte = new Array("Capri",13); 
 mapZoomer.push(werte);
 werte = new Array("Crete",8); 
 mapZoomer.push(werte);
 werte = new Array("Cyprus",8); 
 mapZoomer.push(werte);
 werte = new Array("Cephallenia",9); 
 mapZoomer.push(werte);
 werte = new Array("Cephallonia",9); 
 mapZoomer.push(werte);
 werte = new Array("Corsica",8); 
 mapZoomer.push(werte);
 werte = new Array("Corsega",8); 
 mapZoomer.push(werte);
 werte = new Array("Canaria",10); 
 mapZoomer.push(werte);
 werte = new Array("Cuba",6); 
 mapZoomer.push(werte);
 werte = new Array("Djerba",11); 
 mapZoomer.push(werte);
 werte = new Array("Elba",11); 
 mapZoomer.push(werte);
 werte = new Array("Elbo",11); 
 mapZoomer.push(werte);
 werte = new Array("Eivissa",9); 
 mapZoomer.push(werte);
 werte = new Array("El Hierro",11); 
 mapZoomer.push(werte);
 werte = new Array("Fuerteventura",9); 
 mapZoomer.push(werte);
 werte = new Array("Filicudi",13); 
 mapZoomer.push(werte);
 werte = new Array("Graciosa",11); 
 mapZoomer.push(werte);
 werte = new Array("Great Britain",5); 
 mapZoomer.push(werte);
 werte = new Array("Helgoland",14); 
 mapZoomer.push(werte);
 werte = new Array("Haiti",7); 
 mapZoomer.push(werte);
 werte = new Array("Hawaii",7); 
 mapZoomer.push(werte);
 werte = new Array("Honshu",5); 
 mapZoomer.push(werte);
 werte = new Array("Hispaniola",7); 
 mapZoomer.push(werte);
 werte = new Array("Hokkaido",6); 
 mapZoomer.push(werte);
 werte = new Array("Ibiza",9); 
 mapZoomer.push(werte);
 werte = new Array("Isle of Man",10); 
 mapZoomer.push(werte);
 werte = new Array("Ireland",6); 
 mapZoomer.push(werte);
 werte = new Array("Iceland",5); 
 mapZoomer.push(werte);
 werte = new Array("Java",6); 
 mapZoomer.push(werte);
 werte = new Array("Jamaica",8); 
 mapZoomer.push(werte);
 werte = new Array("Korfu",10); 
 mapZoomer.push(werte);
 werte = new Array("Kefalonia",9); 
 mapZoomer.push(werte);
 werte = new Array("Kefalionia",9); 
 mapZoomer.push(werte);
 werte = new Array("Kreta",8); 
 mapZoomer.push(werte);
 werte = new Array("Korsika",8); 
 mapZoomer.push(werte);
 werte = new Array("Kanaren",7); 
 mapZoomer.push(werte);
 werte = new Array("Komoren",8); 
 mapZoomer.push(werte);
 werte = new Array("Kyushu",7); 
 mapZoomer.push(werte); 
 werte = new Array("Lanzarote",10); 
 mapZoomer.push(werte);
 werte = new Array("Los Lobos",14); 
 mapZoomer.push(werte);
 werte = new Array("Lipari",10); 
 mapZoomer.push(werte);
 werte = new Array("Luzon",6); 
 mapZoomer.push(werte);
 werte = new Array("La Gomera",11); 
 mapZoomer.push(werte);
 werte = new Array("Long Island",11); 
 mapZoomer.push(werte);
 werte = new Array("Menorca",10); 
 mapZoomer.push(werte); 
 werte = new Array("Mauritius",9); 
 mapZoomer.push(werte);
 werte = new Array("Mayotte",10); 
 mapZoomer.push(werte);
 werte = new Array("Mallorca",9); 
 mapZoomer.push(werte);
 werte = new Array("Majorca",9); 
 mapZoomer.push(werte);
 werte = new Array("Madeira",10); 
 mapZoomer.push(werte);
 werte = new Array("Madagascar",5); 
 mapZoomer.push(werte);
 werte = new Array("Mindanao",7); 
 mapZoomer.push(werte);
 werte = new Array("Madura",6); 
 mapZoomer.push(werte);
 werte = new Array("Martinique",10); 
 mapZoomer.push(werte); 
 werte = new Array("Malta",10); 
 mapZoomer.push(werte); 
 werte = new Array("New Guinea",11); 
 mapZoomer.push(werte);
 werte = new Array("Palma",9); 
 mapZoomer.push(werte);
 werte = new Array("Panarea",14); 
 mapZoomer.push(werte);
 werte = new Array("Puerto Rico",8); 
 mapZoomer.push(werte);
 werte = new Array("Papua New Guinea",5); 
 mapZoomer.push(werte);
 werte = new Array("Philippines",5); 
 mapZoomer.push(werte);
 werte = new Array("Reunion",9); 
 mapZoomer.push(werte);
 werte = new Array("Roque del Este",10); 
 mapZoomer.push(werte);
 werte = new Array("Roque del Oeste",11); 
 mapZoomer.push(werte);
 werte = new Array("Rhodos",9); 
 mapZoomer.push(werte);
 werte = new Array("Sardinien",7); 
 mapZoomer.push(werte);
 werte = new Array("Sardegna",7); 
 mapZoomer.push(werte);
 werte = new Array("Sardigna",7); 
 mapZoomer.push(werte);
 werte = new Array("Sardiinia",7); 
 mapZoomer.push(werte);
 werte = new Array("Sardegne",7); 
 mapZoomer.push(werte);
 werte = new Array("Stromboli",13); 
 mapZoomer.push(werte);
 werte = new Array("Shikoku",7);
 mapZoomer.push(werte);
 werte = new Array("Sylt",9);
 mapZoomer.push(werte);
 werte = new Array("Sizilien",8); 
 mapZoomer.push(werte);
 werte = new Array("Sizilia",8); 
 mapZoomer.push(werte);
 werte = new Array("Sicily",8); 
 mapZoomer.push(werte);
 werte = new Array("Sardinien",7); 
 mapZoomer.push(werte);
 werte = new Array("Sardinia",7); 
 mapZoomer.push(werte);
 werte = new Array("Sansibar",9); 
 mapZoomer.push(werte);
 werte = new Array("Sanzibar",9); 
 mapZoomer.push(werte);
 werte = new Array("Salina",11); 
 mapZoomer.push(werte);
 werte = new Array("Sumatra",5); 
 mapZoomer.push(werte); 
 werte = new Array("Salsette",10); 
 mapZoomer.push(werte); 
 werte = new Array("Seychellen",11); 
 mapZoomer.push(werte);
 werte = new Array("Sri Lanka",7); 
 mapZoomer.push(werte);
 werte = new Array("Sulawesi",7); 
 mapZoomer.push(werte);
 werte = new Array("Singapore",11); 
 mapZoomer.push(werte);
 werte = new Array("Sao Miguel",10); 
 mapZoomer.push(werte);
 werte = new Array("Teneriffa",9); 
 mapZoomer.push(werte);
 werte = new Array("Taiwan",7); 
 mapZoomer.push(werte);
 werte = new Array("Tasmania",6); 
 mapZoomer.push(werte);
 werte = new Array("Trinidad and Tobago",8); 
 mapZoomer.push(werte);
 werte = new Array("Tahiti",10); 
 mapZoomer.push(werte);
 werte = new Array("Vulcano",12); 
 mapZoomer.push(werte); 
 werte = new Array("Vancouver Island",7); 
 mapZoomer.push(werte);
 werte = new Array("Zakynthos",10); 
 mapZoomer.push(werte);
 werte = new Array("Zanzibar",9); 
 mapZoomer.push(werte);
 werte = new Array("Zypern",8); 
 mapZoomer.push(werte);
 
 // Continente
 werte = new Array("europa",4); 
 mapZoomer.push(werte);
 werte = new Array("europe",4); 
 mapZoomer.push(werte);
 werte = new Array("africa",3); 
 mapZoomer.push(werte);
 werte = new Array("afrika",3); 
 mapZoomer.push(werte);
 werte = new Array("america",3); 
 mapZoomer.push(werte);
 werte = new Array("amerika",3); 
 mapZoomer.push(werte);
 werte = new Array("asia",3); 
 mapZoomer.push(werte);
 werte = new Array("asien",3); 
 mapZoomer.push(werte);
 werte = new Array("australia",4); 
 mapZoomer.push(werte);
 werte = new Array("australien",4); 
 mapZoomer.push(werte);
 
 werte = new Array("south america",4); 
 mapZoomer.push(werte);
 werte = new Array("south amerika",4); 
 mapZoomer.push(werte);
 
 werte = new Array("north america",3); 
 mapZoomer.push(werte);
 werte = new Array("nord amerika",3); 
 mapZoomer.push(werte);

 werte = new Array("Ägypten",6);
 mapZoomer.push(werte);
 werte = new Array("Äquatorialguinea",9);
 mapZoomer.push(werte);

 werte = new Array("Äthopien",6);
 mapZoomer.push(werte);
 werte = new Array("Afghanistan",6);
 mapZoomer.push(werte);
 werte = new Array("Albanien",8); 
 mapZoomer.push(werte);
 werte = new Array("Algerien",5);
 mapZoomer.push(werte);
 werte = new Array("Andorra",11); 
 mapZoomer.push(werte);
 werte = new Array("Angola",5); 
 mapZoomer.push(werte);
 werte = new Array("Antigua",11);
 mapZoomer.push(werte);
 werte = new Array("Argentinien",4); 
 mapZoomer.push(werte);
 werte = new Array("Armenien",7); 
 mapZoomer.push(werte);
 werte = new Array("Aserbeidschan",7);
 mapZoomer.push(werte);

 werte = new Array("Bahamas",11);
 mapZoomer.push(werte);
 werte = new Array("Bahrain",10);
 mapZoomer.push(werte);
 werte = new Array("Bangladesch",7);
 mapZoomer.push(werte);
 werte = new Array("Barbados",11);
 mapZoomer.push(werte);
 werte = new Array("Barbuda",11);
 mapZoomer.push(werte);
 werte = new Array("Belgien",7); 
 mapZoomer.push(werte);
 werte = new Array("Belize",8);
 mapZoomer.push(werte);
 werte = new Array("Benin",7);
 mapZoomer.push(werte);
 werte = new Array("Bhutan",8);
 mapZoomer.push(werte);
 werte = new Array("Bolivien",5);
 mapZoomer.push(werte);
 werte = new Array("Bosnien und Herzegowina",7);
 mapZoomer.push(werte);
 werte = new Array("Botsuana",6);
 mapZoomer.push(werte);
 werte = new Array("Brasilien",4);
 mapZoomer.push(werte);
 werte = new Array("Brunei",9);
 mapZoomer.push(werte);
 werte = new Array("Bulgarien",7);
 mapZoomer.push(werte);

 werte = new Array("Burkina Faso",7);
 mapZoomer.push(werte);
 werte = new Array("Burundi",8);
 mapZoomer.push(werte);
 werte = new Array("Chile",3);
 mapZoomer.push(werte);
 werte = new Array("China",4);
 mapZoomer.push(werte);
 werte = new Array("Costa Rica",7);
 mapZoomer.push(werte);
 werte = new Array("Dänemark",7);
 mapZoomer.push(werte);
 werte = new Array("Deutschland",6);
 mapZoomer.push(werte);
 werte = new Array("Saarland",8); 
 mapZoomer.push(werte);
 werte = new Array("Rügen",9); 
 mapZoomer.push(werte);
 
 
 werte = new Array("Dominica",10);
 mapZoomer.push(werte);
 werte = new Array("Dominikanische Republik",8);
 mapZoomer.push(werte);
 werte = new Array("Dschibuti",8);
 mapZoomer.push(werte);
 werte = new Array("Ecuador",6);
 mapZoomer.push(werte);
 werte = new Array ("El Salvador",8);
 mapZoomer.push(werte);
 werte = new Array("Elfenbeinküste",6);
 mapZoomer.push(werte);
 werte = new Array("Eritrea",6);
 mapZoomer.push(werte);
 werte = new Array("Estland",7);
 mapZoomer.push(werte);
 werte = new Array("Fidschi",9);
 mapZoomer.push(werte);
 werte = new Array("Finnland",3);
 mapZoomer.push(werte);
 werte = new Array("Frankreich",5);
 mapZoomer.push(werte);
 werte = new Array("Gabun",6);
 mapZoomer.push(werte);
 werte = new Array("Gambia",8);
 mapZoomer.push(werte);
 werte = new Array("Georgien",7);
 mapZoomer.push(werte);
 werte = new Array("Ghana",6);
 mapZoomer.push(werte);
 werte = new Array("Grenada",10);
 mapZoomer.push(werte);
 werte = new Array("Griechenland",6);
 mapZoomer.push(werte);
 werte = new Array("Großbritanien",5);
 mapZoomer.push(werte);
 werte = new Array("Guatemala",7);
 mapZoomer.push(werte);
 werte = new Array("Guinea",6);
 mapZoomer.push(werte);
 werte = new Array("Guinea-Bissau",8);
 mapZoomer.push(werte);
 werte = new Array("Guyana",6);
 mapZoomer.push(werte);
 werte = new Array("Haiti",7);
 mapZoomer.push(werte);
 werte = new Array("Honduras",7);
 mapZoomer.push(werte);

 werte = new Array("Indien",4);
 mapZoomer.push(werte);
 werte = new Array("Indonesien",5);
 mapZoomer.push(werte);
 werte = new Array("Irak",6);
 mapZoomer.push(werte);
 werte = new Array("Iran",5);
 mapZoomer.push(werte);
 werte = new Array("Irland",6);
 mapZoomer.push(werte);
 werte = new Array("Island",6);
 mapZoomer.push(werte);
 werte = new Array("Israel",6);
 mapZoomer.push(werte);
 werte = new Array("Italien",5);
 mapZoomer.push(werte);
 werte = new Array("Jamaika",8);
 mapZoomer.push(werte); 
 werte = new Array("Japan",5);
 mapZoomer.push(werte);
 werte = new Array("Jemen",6);
 mapZoomer.push(werte);
 werte = new Array("Jordanien",7);
 mapZoomer.push(werte);
 werte = new Array("Kambodscha",7);
 mapZoomer.push(werte);
 werte = new Array("Kamerun",6);
 mapZoomer.push(werte);
 werte = new Array("Kanada",3);
 mapZoomer.push(werte);
 werte = new Array("Kap Verde",7);
 mapZoomer.push(werte);
 werte = new Array("Kasachstan",4);
 mapZoomer.push(werte);
 werte = new Array("Katar",8); 
 mapZoomer.push(werte);
 werte = new Array("Kenia",6);
 mapZoomer.push(werte);
 werte = new Array("Kirgistan",6);
 mapZoomer.push(werte);
 werte = new Array("Kiribati",5);
 mapZoomer.push(werte);
 werte = new Array("Kolumbien",5);
 mapZoomer.push(werte);
 werte = new Array("Komoren",9);
 mapZoomer.push(werte);
 werte = new Array("Republik Kongo",6);
 mapZoomer.push(werte);
 werte = new Array("Demokratische Republik Kongo",5);          
 mapZoomer.push(werte);
 werte = new Array("Kroatien",7);
 mapZoomer.push(werte);
 werte = new Array("Kuba",6);
 mapZoomer.push(werte);
 werte = new Array("Kuwait",8);
 mapZoomer.push(werte);
 werte = new Array("Laos",6);
 mapZoomer.push(werte);
 werte = new Array("Lesotho",8);
 mapZoomer.push(werte);
 werte = new Array("Lettland",7);
 mapZoomer.push(werte);
 werte = new Array("Libanon",8);
 mapZoomer.push(werte);
 werte = new Array("Liberia",9);
 mapZoomer.push(werte);
 werte = new Array("Libyen",5);
 mapZoomer.push(werte);
 werte = new Array("Liechtenstein",10);
 mapZoomer.push(werte);
 werte = new Array("Litauen",7);
 mapZoomer.push(werte);
 werte = new Array("Luxemburg",9);
 mapZoomer.push(werte);
 werte = new Array("Madagaskar",5);
 mapZoomer.push(werte);
 werte = new Array("Malawi",7);
 mapZoomer.push(werte);
 werte = new Array("Malaysia",7);
 mapZoomer.push(werte);
 werte = new Array("Malediven",6);
 mapZoomer.push(werte);
 werte = new Array("Mali",5);
 mapZoomer.push(werte);
 werte = new Array("Malta",10);
 mapZoomer.push(werte);
 werte = new Array("Marokko",5);
 mapZoomer.push(werte);
 werte = new Array("Marshallinseln",11);
 mapZoomer.push(werte);
 werte = new Array("Mauretanien",5);
 mapZoomer.push(werte);
 werte = new Array("Mauritius",9);
 mapZoomer.push(werte);
 werte = new Array("Mazedonien",8);
 mapZoomer.push(werte);
 werte = new Array("Mexiko",5);
 mapZoomer.push(werte);
 werte = new Array("Mikronesien",5);
 mapZoomer.push(werte);
 werte = new Array("Moldavien",7);
 mapZoomer.push(werte);
 werte = new Array("Monaco",12);
 mapZoomer.push(werte);
 werte = new Array("Mongolei",5);
 mapZoomer.push(werte);
 werte = new Array("Montenegro",8);
 mapZoomer.push(werte);
 werte = new Array("Mosambik",5);
 mapZoomer.push(werte);
 werte = new Array("Myanmar",6);
 mapZoomer.push(werte);
 werte = new Array("Namibia",5);
 mapZoomer.push(werte);
 werte = new Array("Nauru",12);
 mapZoomer.push(werte);
 werte = new Array("Nepal",7);
 mapZoomer.push(werte);
 werte = new Array("Neuseeland",5);
 mapZoomer.push(werte);
 werte = new Array("Nicaragua",7);
 mapZoomer.push(werte);
 werte = new Array("Niederlande",7);
 mapZoomer.push(werte);

 werte = new Array("Niger",6); 
 mapZoomer.push(werte);
 werte = new Array("Nigeria",6);
 mapZoomer.push(werte);
 werte = new Array("Niue",11);
 mapZoomer.push(werte);
 werte = new Array("Nordkorea",6);
 mapZoomer.push(werte);
 werte = new Array("Norwegen",5);
 mapZoomer.push(werte);
 werte = new Array("Österreich",7);
 mapZoomer.push(werte);
 werte = new Array("Oman",6);
 mapZoomer.push(werte);
 werte = new Array("Pakistan",6);
 mapZoomer.push(werte);
 werte = new Array("Palau",11);
 mapZoomer.push(werte);
 werte = new Array("Panama",7);
 mapZoomer.push(werte);
 werte = new Array("Papua-Neuguinea",6);
 mapZoomer.push(werte);
 werte = new Array("Paraguay",6);
 mapZoomer.push(werte);
 werte = new Array("Peru",5);
 mapZoomer.push(werte);
 werte = new Array("Philippinen",5);
 mapZoomer.push(werte);
 werte = new Array("Polen",6);
 mapZoomer.push(werte);
 werte = new Array("Portugal",6);
 mapZoomer.push(werte);
 werte = new Array("Ruanda",7);
 mapZoomer.push(werte);
 werte = new Array("Rumänien",6);
 mapZoomer.push(werte);
 werte = new Array("Russland",3);
 mapZoomer.push(werte);
 werte = new Array("Salomonen",9);
 mapZoomer.push(werte);
 werte = new Array("Sambia",6);
 mapZoomer.push(werte);
 werte = new Array("Samoa",9);
 mapZoomer.push(werte);
 werte = new Array("San Marino",12);
 mapZoomer.push(werte);
 werte = new Array("São Tomé und Príncipe",10);
 mapZoomer.push(werte);
 werte = new Array("Saudi-Arabien",5);
 mapZoomer.push(werte);
 werte = new Array("Schweden",4);
 mapZoomer.push(werte);
 werte = new Array("Schweiz",8);
 mapZoomer.push(werte);
 werte = new Array("Senegal",7);
 mapZoomer.push(werte);
 werte = new Array("Serbien",7);
 mapZoomer.push(werte);
 werte = new Array("Seychellen",11);
 mapZoomer.push(werte);
 werte = new Array("Sierra Leone",8);
 mapZoomer.push(werte);

 werte = new Array("Simbabwe",6);
 mapZoomer.push(werte);
 werte = new Array("Singapur",10);
 mapZoomer.push(werte);
 werte = new Array("Slowakei",7);
 mapZoomer.push(werte);
 werte = new Array("Slowenien",8);
 mapZoomer.push(werte);
 werte = new Array("Somalia",5);
 mapZoomer.push(werte);
 werte = new Array("Spanien",6);
 mapZoomer.push(werte);
 werte = new Array("Sri Lanka",7);
 mapZoomer.push(werte);
 werte = new Array("St. Kitts und Nevis",11);
 mapZoomer.push(werte);
 werte = new Array("St. Lucia",10);
 mapZoomer.push(werte);
 werte = new Array("St. Vincent und die Grenadinen",11);    
 mapZoomer.push(werte);
 werte = new Array("Sudan",5);
 mapZoomer.push(werte);
 werte = new Array("Südafrika",5);
 mapZoomer.push(werte);
 
 werte = new Array("usa",4);
 mapZoomer.push(werte);
 
 werte = new Array("Südkorea",6);
 mapZoomer.push(werte);
 werte = new Array("Suriname",7);
 mapZoomer.push(werte);
 werte = new Array("Swasiland",8);
 mapZoomer.push(werte);
 werte = new Array("Syrien",7);
 mapZoomer.push(werte);
 werte = new Array("Tadschikistan",7);
 mapZoomer.push(werte);
 werte = new Array("Taiwan",7);
 mapZoomer.push(werte);
 werte = new Array("Tansania",6);
 mapZoomer.push(werte);
 werte = new Array("Thailand",6);
 mapZoomer.push(werte);
 werte = new Array("Timor-Leste",8);
 mapZoomer.push(werte);
 werte = new Array("Togo",7);
 mapZoomer.push(werte);
 werte = new Array("Tonga",11);
 mapZoomer.push(werte);
 werte = new Array("Trinidad und Tobago",8);
 mapZoomer.push(werte);
 werte = new Array("Tschad",5);
 mapZoomer.push(werte);
 werte = new Array("Tschechien",7);
 mapZoomer.push(werte);
 werte = new Array("Tunesien",6);
 mapZoomer.push(werte);
 werte = new Array("Turkmenistan",6);
 mapZoomer.push(werte);
 werte = new Array("Turks- und Caicosinseln",10);
 mapZoomer.push(werte);
 werte = new Array("Tuvalu",11);
 mapZoomer.push(werte);
 werte = new Array("Türkei",6);
 mapZoomer.push(werte);

 werte = new Array("Uganda",7);
 mapZoomer.push(werte);
 werte = new Array("Ukraine",6);
 mapZoomer.push(werte);
 werte = new Array("Ungarn",7);
 mapZoomer.push(werte);
 werte = new Array("Uruguay",7);
 mapZoomer.push(werte);

 werte = new Array("Usbekistan",6);
 mapZoomer.push(werte);
 werte = new Array("Vanuatu",9);
 mapZoomer.push(werte);
 werte = new Array("Venezuela",6);
 mapZoomer.push(werte);
 werte = new Array("Vereinigte Arabische Emirate",7);  
 mapZoomer.push(werte);
 werte = new Array("Vietnam",5);
 mapZoomer.push(werte);
 werte = new Array("Weißrussland",6);
 mapZoomer.push(werte);
 werte = new Array("Zentralafrikanische Republik",6);      
 mapZoomer.push(werte);
 werte = new Array("Zypern",8);
 mapZoomer.push(werte);

 werte = new Array("Egypt",6);
 mapZoomer.push(werte);
 werte = new Array("Equatorial Guinea",9);
 mapZoomer.push(werte);
 werte = new Array("Ethiopia",6);
 mapZoomer.push(werte);
 werte = new Array("Afghanistan",6);
 mapZoomer.push(werte);
 werte = new Array("Albania",8);
 mapZoomer.push(werte);
 werte = new Array("Algeria",5);
 mapZoomer.push(werte);
 werte = new Array("Andorra",11);
 mapZoomer.push(werte);
 werte = new Array("Angola",5);
 mapZoomer.push(werte);
 werte = new Array("Antigua",11);
 mapZoomer.push(werte);
 werte = new Array("Argentina",4);
 mapZoomer.push(werte);
 werte = new Array("Armenia",7);
 mapZoomer.push(werte);
 werte = new Array("Azerbaijan",7);
 mapZoomer.push(werte);

 werte = new Array("Bahamas",11);
 mapZoomer.push(werte);
 werte = new Array("Bahrain",10);
 mapZoomer.push(werte);
 werte = new Array("Bangladesh",7);
 mapZoomer.push(werte);
 werte = new Array("Barbados",11);
 mapZoomer.push(werte);
 werte = new Array("Barbuda",11); 
 mapZoomer.push(werte);
 werte = new Array("Belgium",7);
 mapZoomer.push(werte);
 werte = new Array("Belize",8);
 mapZoomer.push(werte);
 werte = new Array("Benin",7);
 mapZoomer.push(werte);
 werte = new Array("Bhutan",8);
 mapZoomer.push(werte);
 werte = new Array("Bolivia",5);
 mapZoomer.push(werte);
 werte = new Array("Bosnia and Herzegovina",7);
 mapZoomer.push(werte);
 werte = new Array("Botswana",6);
 mapZoomer.push(werte);
 werte = new Array("Brasil",4);
 mapZoomer.push(werte);
 werte = new Array("Brunei",9);
 mapZoomer.push(werte);
 werte = new Array("Bulgaria",7); 
 mapZoomer.push(werte);
 werte = new Array("Burkina Faso",7);
 mapZoomer.push(werte);
 werte = new Array("Burundi",8);
 mapZoomer.push(werte)
 werte = new Array("Chile",3);
 mapZoomer.push(werte);
 werte = new Array("China",4);
 mapZoomer.push(werte);
 werte = new Array("Costa Rica",7);
 mapZoomer.push(werte);
 werte = new Array("Denmark",7);
 mapZoomer.push(werte);
 werte = new Array("Germany",6);
 mapZoomer.push(werte);
 werte = new Array("Dominica",10);
 mapZoomer.push(werte);
 werte = new Array("Dominican Republic",8);
 mapZoomer.push(werte);
 werte = new Array("Djibouti",8);
 mapZoomer.push(werte);
 werte = new Array("Ecuador",6);
 mapZoomer.push(werte);
 werte = new Array("El Salvador",8);
 mapZoomer.push(werte);
 werte = new Array("The Ivory Coast",6); 
 mapZoomer.push(werte);
 werte = new Array("Eritrea",6);
 mapZoomer.push(werte);
 werte = new Array("Estonia",7);
 mapZoomer.push(werte);
 werte = new Array("Fiji",9);
 mapZoomer.push(werte);
 werte = new Array("Finland",3);
 mapZoomer.push(werte);
 werte = new Array("France",5);
 mapZoomer.push(werte);
 werte = new Array("Gabon",6);
 mapZoomer.push(werte);
 werte = new Array("The Gambia",8); 
 mapZoomer.push(werte);
 werte = new Array("Georgia",7);
 mapZoomer.push(werte);
 werte = new Array("Ghana",6);
 mapZoomer.push(werte);
 werte = new Array("Grenada",10);
 mapZoomer.push(werte);
 werte = new Array("Greece",6);
 mapZoomer.push(werte);
 werte = new Array("United Kingdom",5);
 mapZoomer.push(werte);
 werte = new Array("Guatemala",7);
 mapZoomer.push(werte);
 werte = new Array("Guinea",6); 
 mapZoomer.push(werte);
 werte = new Array("Guinea-Bissau",8); 
 mapZoomer.push(werte);
 werte = new Array("Guyana",6);
 mapZoomer.push(werte);
 werte = new Array("Haiti",7);
 mapZoomer.push(werte);
 werte = new Array("Honduras",7);
 mapZoomer.push(werte);
 werte = new Array("India",4); 
 mapZoomer.push(werte);
 werte = new Array("Indonesia",5);
 mapZoomer.push(werte);
 werte = new Array("Iraq",6);
 mapZoomer.push(werte);
 werte = new Array("Iran",5); 
 mapZoomer.push(werte);
 werte = new Array("Ireland",6);
 mapZoomer.push(werte);
 werte = new Array("Iceland",6);
 mapZoomer.push(werte);
 werte = new Array("Israel",6);
 mapZoomer.push(werte);
 werte = new Array("Italy",5);
 mapZoomer.push(werte);
 werte = new Array("Jamaica",8);
 mapZoomer.push(werte);
 werte = new Array("Japan",5);
 mapZoomer.push(werte);
 werte = new Array("Yemen",6);
 mapZoomer.push(werte);
 werte = new Array("Jordan",7);
 mapZoomer.push(werte);
 werte = new Array("Cambodia",7);
 mapZoomer.push(werte);
 werte = new Array("Cameroon",6);
 mapZoomer.push(werte);
 werte = new Array("Canada",3);
 mapZoomer.push(werte);
 werte = new Array("Cape Verde",7);
 mapZoomer.push(werte);
 werte = new Array("Kazakhstan",4);
 mapZoomer.push(werte);
 werte = new Array("Qatar",8);
 mapZoomer.push(werte);
 werte = new Array("Kenya",6);
 mapZoomer.push(werte);
 werte = new Array("Kyrgyzstan",6);
 mapZoomer.push(werte);
 werte = new Array("Kiribati",5);
 mapZoomer.push(werte);
 werte = new Array("Colombia",5);
 mapZoomer.push(werte);
 werte = new Array("Comoros",9);
 mapZoomer.push(werte);
 werte = new Array("Congo",6);
 mapZoomer.push(werte);
 werte = new Array("Democratic Republic of Congo",5);
 mapZoomer.push(werte);
 werte = new Array("Croatia",7);
 mapZoomer.push(werte);
 werte = new Array("Cuba",6);
 mapZoomer.push(werte);
 werte = new Array("Kuwait",8);
 mapZoomer.push(werte);
 werte = new Array("Laos",6);
 mapZoomer.push(werte);
 werte = new Array("Lesotho",8);
 mapZoomer.push(werte);
 werte = new Array("Latvia",7);
 mapZoomer.push(werte);
 werte = new Array("Lebanon",8);
 mapZoomer.push(werte);
 werte = new Array("Liberia",9);
 mapZoomer.push(werte);
 werte = new Array("Libya",5);
 mapZoomer.push(werte);
 werte = new Array("Liechtenstein",10);
 mapZoomer.push(werte);
 werte = new Array("Lithuania",7);
 mapZoomer.push(werte);
 werte = new Array("Luxembourg",9);
 mapZoomer.push(werte);
 werte = new Array("Madagascar",5);
 mapZoomer.push(werte);
 werte = new Array("Malawi",7);
 mapZoomer.push(werte);
 werte = new Array("Malaysia",7);
 mapZoomer.push(werte);
 werte = new Array("Maldives",6);
 mapZoomer.push(werte);
 werte = new Array("Mali",5);
 mapZoomer.push(werte);
 werte = new Array("Malta",10);
 mapZoomer.push(werte);
 werte = new Array("Marocco",5);
 mapZoomer.push(werte);
 werte = new Array("Marshall Islands",11);
 mapZoomer.push(werte);
 werte = new Array("Mauritania",5);
 mapZoomer.push(werte);
 werte = new Array("Mauritius",9);
 mapZoomer.push(werte);
 werte = new Array("Macedonia",8);
 mapZoomer.push(werte);
 werte = new Array("Mexiko",5);
 mapZoomer.push(werte);
 werte = new Array("Micronesia",5);
 mapZoomer.push(werte);
 werte = new Array("Moldova",7);
 mapZoomer.push(werte);
 werte = new Array("Monaco",12);
 mapZoomer.push(werte);
 werte = new Array("Mongolia",5);
 mapZoomer.push(werte);
 werte = new Array("Montenegro",8);
 mapZoomer.push(werte);
 werte = new Array("Mosambique",5);
 mapZoomer.push(werte);
 werte = new Array("Myanmar",6);
 mapZoomer.push(werte);
 werte = new Array("Namibia",5);
 mapZoomer.push(werte);
 werte = new Array("Nauru",12);
 mapZoomer.push(werte);
 werte = new Array("Nepal",7);
 mapZoomer.push(werte);
 werte = new Array("New Zealand",5);
 mapZoomer.push(werte);
 werte = new Array("Nicaragua",7);
 mapZoomer.push(werte);
 werte = new Array("Netherlands",7);
 mapZoomer.push(werte);
 werte = new Array("Niger",6);
 mapZoomer.push(werte);
 werte = new Array("Nigeria",6);
 mapZoomer.push(werte);
 werte = new Array("Niue",6);
 mapZoomer.push(werte);
 werte = new Array("North Korea",6);
 mapZoomer.push(werte);
 werte = new Array("Norway",5);
 mapZoomer.push(werte);
 werte = new Array("Austria",7);
 mapZoomer.push(werte);
 werte = new Array("Oman",6);
 mapZoomer.push(werte);
 werte = new Array("Pakistan",6);
 mapZoomer.push(werte);
 werte = new Array("Palau",11);
 mapZoomer.push(werte);
 werte = new Array("Panama",7);
 mapZoomer.push(werte);
 werte = new Array("Papua New Guinea",6);
 mapZoomer.push(werte);
 werte = new Array("Paraguay",6);
 mapZoomer.push(werte);
 werte = new Array("Peru",5);
 mapZoomer.push(werte);
 werte = new Array("Philippines",5);
 mapZoomer.push(werte);
 werte = new Array("Poland",6);
 mapZoomer.push(werte);
 werte = new Array("Portugal",6);
 mapZoomer.push(werte);
 werte = new Array("Rwanda",7);
 mapZoomer.push(werte);
 werte = new Array("Romania",6);
 mapZoomer.push(werte);
 werte = new Array("Russia",3);
 mapZoomer.push(werte);
 werte = new Array("Solomon Islands",9);
 mapZoomer.push(werte);
 werte = new Array("Zambia",6);
 mapZoomer.push(werte);
 werte = new Array("Samoa",9);
 mapZoomer.push(werte);
 werte = new Array("San Marino",12);
 mapZoomer.push(werte);
 werte = new Array("Sao Tome and Principe",10);
 mapZoomer.push(werte);
 werte = new Array("Saudi Arabia",5);
 mapZoomer.push(werte);
 werte = new Array("Sweden",4);
 mapZoomer.push(werte);
 werte = new Array("Switzerland",8);
 mapZoomer.push(werte);
 werte = new Array("Senegal",7);
 mapZoomer.push(werte);
 werte = new Array("Serbia",7);
 mapZoomer.push(werte);
 werte = new Array("Seychelles",11);
 mapZoomer.push(werte);
 werte = new Array("Sierra Leone",8);
 mapZoomer.push(werte);
 werte = new Array("Zimbabwe",6);
 mapZoomer.push(werte);
 werte = new Array("Singapore",10);
 mapZoomer.push(werte);
 werte = new Array("Slovakia",7);
 mapZoomer.push(werte);
 werte = new Array("Slovenia",8);
 mapZoomer.push(werte);
 werte = new Array("Somalia",5);
 mapZoomer.push(werte);
 werte = new Array("Spain",6);
 mapZoomer.push(werte); 
 werte = new Array("Sri Lanka",7);
 mapZoomer.push(werte);
 werte = new Array("Saint Kitts and Nevis",11);
 mapZoomer.push(werte);
 werte = new Array("Saint Lucia",10);
 mapZoomer.push(werte);
 werte = new Array("Saint Vincent and the Grenadines",11);   
 mapZoomer.push(werte);
 werte = new Array("Sudan",5);
 mapZoomer.push(werte);
 werte = new Array("South Africa",5);
 mapZoomer.push(werte);
 werte = new Array("South Korea",6);
 mapZoomer.push(werte);
 werte = new Array("Suriname",7);
 mapZoomer.push(werte);
 werte = new Array("Swaziland",8);
 mapZoomer.push(werte);
 werte = new Array("Syria",7);
 mapZoomer.push(werte);
 werte = new Array("Tajikistan",7);
 mapZoomer.push(werte);
 werte = new Array("Taiwan",7);
 mapZoomer.push(werte);
 werte = new Array("Tanzania",6);
 mapZoomer.push(werte);
 werte = new Array("Thailand",6);
 mapZoomer.push(werte);
 werte = new Array("Timor-Leste",8);
 mapZoomer.push(werte);
 werte = new Array("Togo",7);
 mapZoomer.push(werte);
 werte = new Array("Tonga",11);
 mapZoomer.push(werte);

 werte = new Array("Trinidad and Tobago",8);
 mapZoomer.push(werte);
 werte = new Array("Chad",5);
 mapZoomer.push(werte);
 werte = new Array("Czech Republic",7);
 mapZoomer.push(werte);
 werte = new Array("Tunisia",6);
 mapZoomer.push(werte);
 werte = new Array("Turkmenistan",6);
 mapZoomer.push(werte);
 werte = new Array("Turks and Caicos Islands",10);
 mapZoomer.push(werte);
 werte = new Array("Tuvalu",11);
 mapZoomer.push(werte);
 werte = new Array("Turkey",6);
 mapZoomer.push(werte);
 werte = new Array("Uganda",7);
 mapZoomer.push(werte);
 werte = new Array("Ukraine",6);
 mapZoomer.push(werte);
 werte = new Array("Hungary",7);
 mapZoomer.push(werte);
 werte = new Array("Uruguay",7);
 mapZoomer.push(werte);
 werte = new Array("North America",4);
 mapZoomer.push(werte);
 werte = new Array("Uzbekistan",6);
 mapZoomer.push(werte);
 werte = new Array("Vanuatu",9);
 mapZoomer.push(werte);
 werte = new Array("Venezuela",6);
 mapZoomer.push(werte);
 werte = new Array("United Arab Emirates",7);
 mapZoomer.push(werte);
 werte = new Array("Vietnam",5);
 mapZoomer.push(werte);
 werte = new Array("Belarus",6);
 mapZoomer.push(werte);
 werte = new Array("Central African Republic",6);
 mapZoomer.push(werte);
 werte = new Array("Cyprus",8); 
 
 //stadt city

 werte = new Array("Tokio",14); 
 mapZoomer.push(werte);
  werte = new Array("Mexiko-Stadt",15); 
 mapZoomer.push(werte);
  werte = new Array("new york",13); 
 mapZoomer.push(werte);
  werte = new Array("sudogwon",14); 
 mapZoomer.push(werte);
  werte = new Array("mumbai",13); 
 mapZoomer.push(werte);
 werte = new Array("sao paulo",14); 
 mapZoomer.push(werte);
  werte = new Array("metro manila",14); 
 mapZoomer.push(werte);
  werte = new Array("delhi",14); 
 mapZoomer.push(werte);
  werte = new Array("kairo",16); 
 mapZoomer.push(werte);
  werte = new Array("berlin",12); 
 mapZoomer.push(werte);
 
   werte = new Array("shanghai",12); 
 mapZoomer.push(werte);
   werte = new Array("karotchi",12); 
 mapZoomer.push(werte);
   werte = new Array("mumbai",12); 
 mapZoomer.push(werte);
   werte = new Array("paris",12); 
 mapZoomer.push(werte);
 
 
 //Daniel
function showDiv(div){if(getDiv(div)){getDiv(div).style.display = "block";}}
function hideDiv(div){if(getDiv(div)){getDiv(div).style.display = "none";}}
function checkDiv(array){for(a=0;a<array.length;a++){	if(!document.getElementById(array[a])) return false; }	return true;}
function getDiv(name){	return document.getElementById(name);}//gibt mir einen div als object zurueck


// Aufruf:
//BrowserDetect.init();
//Browser name: BrowserDetect.browser
//Browser version: BrowserDetect.version
//OS name: BrowserDetect.OS

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {	if (dataString.indexOf(data[i].subString) != -1)	return data[i].identity;	}
			else if (dataProp)	return data[i].identity;	}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{	string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{ prop: window.opera,
			identity: "Opera"
		},
		{ string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{ string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{	string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{	string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};


function addHistoryBack(wert){
	//haengt an die 	history variable etwas an.
	global.HISTORY_BACK += "#" + wert;
	//alert("global.HISTORY_BACK = " + global.HISTORY_BACK);
}

function zoomToCreateNewEarthfave(){
	var activeMap = Application.getActiveMap();
	if(activeMap){	
	//	var en =document.getElementById("createNewEarthfaveEnable");
	//	var dis =document.getElementById("createNewEarthfaveDisable");
		var en2 =document.getElementById("nirvana-button-enable");
		var dis2 =document.getElementById("nirvana-button-unable");
		var zoom = activeMap.realMap.getZoom();
		if(zoom < global.ZOOMLEVEL_ALLOWING_CREATING_EF){
			activeMap.realMap.setZoom(zoom + 1);
		//	en.style.display = "none";
		//	dis.style.display = "block";
			en2.style.display = "none";
			dis2.style.display = "block";
		}
		zoom = activeMap.realMap.getZoom();
		if(zoom >= global.zoomlevelAllowingCreatingEf){
		//	en.style.display = "block";
		//	dis.style.display = "none";	
			en2.style.display = "block";
			dis2.style.display = "none";
			if(global.user_id <= 1){showLogin();}	
		}
	}
}
//Oli
function zoomInToCreateNewEarthfave(zoomLevel){
	var activeMap = Application.getActiveMap();
	var newZoom = zoomLevel + 2;
	activeMap.manualyCreatedPlace = true;
	Map.ignoreMove =true;
	activeMap.realMap.setZoom(newZoom);
	lookupEarthfaves('', 1,global.paginationStepEarthfaves,false,true,true,true,false);
	createNirvanaEarthfave();
}
															

function showInvite(){	showForm(global.INVITE_ID_PREFIX, 'modal');}
function showPasswordForgotten(){
//	hideLoginForm();
	//$('#showLoginRequest-pop-up').hide();
	//$('#forgotten').hide();
	slideInOutLogin();
	//hideForm("forgotten");
	if($('#forgotten-pop-up').html() == ""){	createForgottenForm();}
	else {showForm('forgotten','modal');}
	
}
function getStyle(element, style){
  // Computing padding needs distinguihing between IE and Firefox (Safari < 3 is not supported)
  if (element.currentStyle != undefined){    var p = parseInt(element.currentStyle[style]);  }
  else if (window.getComputedStyle != undefined)  {    var p = parseInt(window.getComputedStyle(element,null)[style]);  }
  else  {    var p = 0;  }
  return p;
}


/**
 *	Zeigt und positioniert ein Popup mit ID id. Die Position wird entweder aus dem uebergebenen Event-Objekt event (Firefox/Opera) uebergeben
 * 	oder aus dem window.event-Objekt (IE) ermittelt.
 */
function showPopup(event, id){
	var dx = 0;
	var dy = -16;
 	var popup = document.getElementById(id + "-pop-up");
	var frame = document.getElementById("frame");
	// Breite des Browserfensters
	var width = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
	if (frame) {
		dx = Math.floor((width - frame.offsetWidth) / 2);
		if (dx < 0) dx = 0;
	}
	dx =- 16;
	
//info (width/2 + " / " + (parseInt(event.pageX)+parseInt(dx)))
	// Firefox get the event object by parameter <event>, internet explorer by the window.event object
	if (!event) {		event = window.event;	}
	// Firefox get the mouse x-position by <pageX>, internet explorer by the <clientX>
	if (event.pageX) {
		posX = event.pageX - dx;
		posY = event.pageY - dy;
	}
	else {
		posX = event.clientX - dx;
		posY = event.clientY - dy;
	}
	
//	info (posX + " " + posY + ", b="+popup.offsetWidth)
	if (posX + dx < width / 2) {		popup.style.left = posX + "px";	}
	else {		popup.style.left = posX - parseInt(global.IMAGE_WIDTH) - 100 + "px";	}

	if (posY < parseInt(global.IMAGE_HEIGHT) + 100) {		popup.style.top = posY + "px";	}
	else {		popup.style.top = posY - parseInt(global.IMAGE_HEIGHT) + "px";	}
	popup.style.display = "block";
}

function hidePopup(id){	document.getElementById(id + '-pop-up').style.display = 'none';}

function showForm(name, modal){
	if (popup = getDiv(name + "-pop-up")){
			if ( note = getDiv(name + 'note')){ note.style.display = "none";}
			a = document.body.clientWidth;
			b = document.body.clientHeight;
		
			if (self.innerHeight)	{	x = self.innerWidth;	c = self.innerHeight;	}
			else if (document.documentElement && document.documentElement.clientHeight)	{		c = document.documentElement.clientHeight;	}
			else if (document.body)	{		c = document.body.clientHeight;	}
		
			$('#' + name + '-pop-up').fadeIn(300);
			x = popup.clientWidth;
			y = popup.clientHeight;
			var neuLeft = (a - x) / 2;
			
			var vater = popup.parentNode; // der div mit margin 12px ist in den page-files im page folder
			var opa = vater.parentNode; // ist ggf der div mit der id page
			console.log("opa id : " + opa.id );
			if(opa.id == "page"){
				var abzug = (a - opa.clientWidth) / 2;
				neuLeft = neuLeft - abzug;
			}
			console.log('ext.js showForm ...a: ' + a + ' x: ' + x + ' a-x: ' + (a-x) + ' a-x/2 : ' + neuLeft);
			
			var neuTop = (c - y) / 2;
			if(neuTop < 0){ neuTop = 10;}
			popup.style.left = neuLeft  + "px" ;
			popup.style.top = neuTop  +"px" ;
		
			if (modal == "modal")  	{
				if (	modal = getDiv('modal-1')) 		{
					$('#modal-1').fadeIn(300);
				}
			}
			// Set focus on first input tag
			var input = popup.getElementsByTagName('input')[0];
			if (input != undefined){ input.focus();}
	} else {  alert ("Popup cannot be shown: " + name + "-pop-up"); }
}

/* --------- empfohlen zu mittigen ausgabe von Images --------- */
/* ------------------------ DDD ------------------------------- */
function showFormSize(name, modal, x, y){
 	var popup = document.getElementById(name + "-pop-up");
	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	var note = document.getElementById(name + 'note');
	if (note) note.style.display = "none";
 	a = document.body.clientWidth;
 	b = document.body.clientHeight;

 	if (self.innerHeight)	{		c = self.innerHeight;	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{c = document.documentElement.clientHeight;}
	else if (document.body) // other Explorers
	{c = document.body.clientHeight;}
 	popup.style.display = "block";
	var neuLeft = (a - x) / 2;
	var neuTop = (c - y) / 2;
	if(neuTop<0){neuTop = 10;} //daniel 20101124
	//alert("left: " + neuLeft + " top " + neuTop + " popup.clientWidth = " + x + "popup.clientheight=" + y + "bodyW" + a + " bodyH" + b);

 	popup.style.left = neuLeft + "px" ;
 	popup.style.top = neuTop + "px" ;

	if (modal == "modal") {		var modal = document.getElementById('modal-1');
		if (modal){
			modal.style.display = "block";
			modal.style.height = b + "px";
		}
  }
	var input = popup.getElementsByTagName('input')[0];
	if (input != undefined) input.focus();
}

function movNirvanaOverlay(name,task){
	var popup = getDiv(name);
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	if(task == "none"){
		console.log("movNirvanaOverlay setze NiOv zum NiM");
		var popBreite = popup.offsetWidth;	var x = mausX;	var y = mausY;
		b = document.body.clientHeight;	
		var xpos = findPosX(getDiv("divMap"));
		var ypos = findPosY(getDiv("divMap"));
		var mapMiddleX = xpos + 355;	var mapMiddleY = ypos + 210;
		if(x < mapMiddleX) {
			if(y < mapMiddleY) {
				popup.style.top = (y + 15) + "px";
				popup.style.left = (x + 20) + "px";
			}
			else {
				popup.style.top = (y - 130) + "px"; // ich glaube die 130 ist die hoehe des NirvanaOverlays
				popup.style.left =(x + 20) + "px";
			}
		}
		else {
			if(y < mapMiddleY) {
				popup.style.top = (y + 15) + "px";
				popup.style.left = (x - popBreite - 20) + "px";
			}
			else {
				popup.style.top = (y - 130) + "px";
				popup.style.left = (x - popBreite - 20) + "px";
			}
		}
	} else if(task == "default"){
			console.log("movNirvanaOverlay setze NiOv nach unten");
			var map = getDiv("divMap");
			var posMapX = findPosX(map);
			var posMapY = findPosY(map);
			var breiteMap = parseInt(map.style.width); // karte
			var hoeheMap = parseInt(map.style.height);// karte
			var breiteDoc = parseInt(popup.style.width);// nirvana div				
			var hoeheDoc = parseInt(popup.style.height);// nirvana div								
			var neuePosX = posMapX + ( ( breiteMap / 2 ) - (breiteDoc / 2) );
			console.log("createNirvanaEarthfave hoeheDoc " + hoeheDoc);
			console.log("createNirvanaEarthfave hoeheMap " + hoeheMap);
			var neuePosY = posMapY + hoeheMap - hoeheDoc -5;
			popup.style.left = neuePosX  + "px";
			popup.style.top =  neuePosY  + "px";
	}
	//daniel: Einblenden der koordinaten
	
	
}

function showForm2(name, modal){
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	var x = mausX;
	var y = mausY;
	b = document.body.clientHeight;
	
	var xpos = findPosX(document.getElementById("divMap"));
	var ypos = findPosY(document.getElementById("divMap"));
	var mapMiddleX = xpos + 355;
	var mapMiddleY = ypos + 210;

	if(x < mapMiddleX) {
		if(y < mapMiddleY) {
		//Arno: OverlayPosition: untenrechts
			popup.style.top = (y + 15) + "px";
			popup.style.left = (x + 15) + "px";
		}
		else {
		//Arno: OverlayPosition: obenrechts
			popup.style.top = (y - 192) + "px";
			popup.style.left =(x + 15) + "px";
		}
	}
	else {
		if(y < mapMiddleY) {
		//Arno: OverlayPosition: untenlinks
			popup.style.top = (y + 15) + "px";
			popup.style.left = (x - 380) + "px";
		}
		else {
		//Arno: OverlayPosition: obenlinks
			popup.style.top = (y - 192) + "px";
			popup.style.left = (x - 380) + "px";
		}
	}
	
	if (modal == "modal") 	{	var modal = document.getElementById('modal-1');
		if (modal) 	{
			modal.style.display = "block";
			modal.style.height = b + "px";
		}
  }
 	popup.style.display = "block";
}

function showForm3(name, modal){
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	var x = mausX;
	var y = mausY;
	popup.style.top = (y + 15) + "px";
	popup.style.left = (x + 15) + "px";
	popup.style.display = "block";
}

function showForm4(name, modal){
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	var x = mausX;
	var y = mausY;
	var xpos = findPosX(document.getElementById("divMap"));
	var ypos = findPosY(document.getElementById("divMap"));
	var mapMiddleX = xpos + 355;
	var mapMiddleY = ypos + 210;
	
	if(x < mapMiddleX) {
		if(y < mapMiddleY) {
		//Arno: OverlayPosition: untenrechts
			popup.style.top = (y + 15) + "px";
			popup.style.left = (x + 15) + "px";
		}
		else {
		//Arno: OverlayPosition: obenrechts
			popup.style.top = (y - 122) + "px";
			popup.style.left =(x + 15) + "px";
		}
	}
	else {
		if(y < mapMiddleY) {
		//Arno: OverlayPosition: untenlinks
			popup.style.top = (y + 15) + "px";
			popup.style.left = (x - 380) + "px";
		}
		else {
		//Arno: OverlayPosition: obenlinks
			popup.style.top = (y - 122) + "px";
			popup.style.left = (x - 380) + "px";
		}
	}
	 	popup.style.display = "block";
}



//Arno Anfang
function setEarthfaveOverlayInvisibleTimer(time){setTimeout('setEarthfaveOverlayInvisible(isVisible)',time);}
function setEarthfaveOverlayInvisible(i) {
	if (i == false){document.getElementById('earthfaveInformation-pop-up').style.display = "none";}
}
function setEarthfaveOverlayVisible(i) {isVisible = i;}
function setPlaceOverlayInvisibleTimer(time) {setTimeout('setPlaceOverlayInvisible(isVisible)',time);}
function setPlaceOverlayInvisible(i) {
	if (i == false){document.getElementById('placeInformation-pop-up').style.display = "none";}
}
function setPlaceOverlayVisible(i) {isVisible = i;}
//Arno Ende

function hideForm(formName){
	if ($('#' + formName + '-pop-up')) { 		
		$('#' + formName + '-pop-up').fadeOut(300);
		//e.style.display = 'none';	
	}
	//e = document.getElementById('modal-1');
	if ($('#modal-1')) { 		
		//e.style.display = 'none';	
		$('#modal-1').fadeOut(300);
		}
}

function changeColor(name){
	if(document.getElementById("show-" + name)){
		document.getElementById("show-" + name).style.display = "none";
	}
}

/* Melanie 2010/11/19 */
function showInlineWithoutSave(name){
	editBuffer[name] = document.getElementById("edit-" + name).innerHTML;
	if(document.getElementById("show-" + name)){
		document.getElementById("show-" + name).style.display = "none";
	}
	document.getElementById("edit-" + name).style.display = "block";
	document.getElementById("button-edit-" + name).style.display = "none";
	document.getElementById("button-cancel-" + name).style.display = "inline";
//	if( name != "download" )	{		document.getElementById("button-save-" + name).style.display = "inline";	}
}

function showInline(name){
	// Den Zustand des Elements im Edit-Buffer zwischenspeichern (um ihn im Falle eines Abbruchs wiederherzustellen)
	editBuffer[name] = document.getElementById("edit-" + name).innerHTML;
	// Bild ausblenden
//	document.getElementById("overview-image").style.display = "none";
	if(document.getElementById("show-" + name)){
		document.getElementById("show-" + name).style.display = "none";
	}
	document.getElementById("edit-" + name).style.display = "block";
	document.getElementById("button-edit-" + name).style.display = "none";
	document.getElementById("button-cancel-" + name).style.display = "inline";
	if( name != "download" )	{		document.getElementById("button-save-" + name).style.display = "inline";	}
}
// Oli 20.10.2009
function showInlineCategories(name){	
	//alert("showInline name="+ name);
	// Den Zustand des Elements im Edit-Buffer zwischenspeichern (um ihn im Falle eines Abbruchs wiederherzustellen)
	editBuffer[name] = document.getElementById("edit-" + name).innerHTML;
	// Bild ausblenden
//	document.getElementById("overview-image").style.display = "none";
	document.getElementById("edit-" + name).style.display = "block";
	document.getElementById("button-edit-" + name).style.display = "none";
	document.getElementById("button-save-" + name).style.display = "inline";
	document.getElementById("button-cancel-" + name).style.display = "inline";
	for (i = 0; i < document.getElementsByName("img_delete_category").length; i++){
		document.getElementsByName("img_delete_category")[i].style.display = "block";
	}
}
function hideInlineCategories(name, restore){
	document.getElementById("edit-" + name).style.display = "none";
	document.getElementById("button-edit-" + name).style.display = "inline";
	document.getElementById("button-save-" + name).style.display = "none";
	document.getElementById("button-cancel-" + name).style.display = "none";
	for (i = 0; i < document.getElementsByName("img_delete_category").length; i++){
		document.getElementsByName("img_delete_category")[i].style.display = "none";
	}
	// Bild ausblenden
//	document.getElementById("overview-image").style.display = "block";
	// Den Zustand des Elements aus dem Edit-Buffer wiederherstellen (im Falle eines Abbruchs)
	if (restore) {	document.getElementById("edit-" + name).innerHTML = editBuffer[name];	}
}
//Oli Ende

function showComInline(name){
	editBuffer[name] = document.getElementById("edit-" + name).innerHTML;
	if(document.getElementById("show-" + name)){
		   //info("showComInline div why i like gebts");
			 document.getElementById("show-" + name).style.display = "none";
	} else {//info("showComInline div why i like helft");
	}
	document.getElementById("edit-" + name).style.display = "block";
	document.getElementById("button-edit-" + name).style.display = "none";
	document.getElementById("button-save-" + name).style.display = "inline";
	document.getElementById("button-cancel-" + name).style.display = "inline";
}

function hideInline(name, restore){
	if(getDiv("edit-" + name)){hideDiv("edit-" + name);}
	if(getDiv("show-" + name)){ showDiv("show-" + name);}
	if(getDiv("button-edit-" + name)){ getDiv("button-edit-" + name).style.display = "inline";}
	if( name != "download" ){
		if(getDiv("button-save-" + name)){hideDiv("button-save-" + name);}
	}

	if(getDiv("button-cancel-" + name)){hideDiv("button-cancel-" + name);}
	// Bild ausblenden
	// document.getElementById("overview-image").style.display = "block";
	// Den Zustand des Elements aus dem Edit-Buffer wiederherstellen (im Falle eines Abbruchs)
	if (restore) {	
		if(getDiv("edit-" + name)){ getDiv("edit-" + name).innerHTML = editBuffer[name]; }
	}
}

// Melanie 2010/11/16 neue Funktion für Edit Gender im Profil
function hideInlineProfil(name, restore){
	document.getElementById("edit-" + name).style.display = "none";
	document.getElementById("show-" + name).style.display = "inline";
	document.getElementById("button-edit-" + name).style.display = "inline";
	if( name != "download" )	{		document.getElementById("button-save-" + name).style.display = "none";	}
	document.getElementById("button-cancel-" + name).style.display = "none";
	
	// Den Zustand des Elements aus dem Edit-Buffer wiederherstellen (im Falle eines Abbruchs)
	if (restore) {		document.getElementById("edit-" + name).innerHTML = editBuffer[name];	}
}

/* Melanie 2010/11/19 */
function hideInlineTwitterWithoutSave(name){
	document.getElementById("edit-" + name).style.display = "none"; 
	if(document.getElementById("show-" + name)){		document.getElementById("show-" + name).style.display = "block";	}
	document.getElementById("button-edit-" + name).style.display = "inline";
	document.getElementById("button-cancel-" + name).style.display = "none";
}

function hideInlineTwitter(name){
	document.getElementById("edit-" + name).style.display = "none"; 
	if(document.getElementById("show-" + name)){		document.getElementById("show-" + name).style.display = "block";	}
	document.getElementById("button-edit-" + name).style.display = "inline";
	document.getElementById("button-save-" + name).style.display = "none";
	document.getElementById("button-cancel-" + name).style.display = "none";
}

function hideComInline(name, restore){
	document.getElementById("edit-" + name).style.display = "none";
	document.getElementById("show-" + name).style.display = "block";
	document.getElementById("button-edit-" + name).style.display = "inline";
	document.getElementById("button-save-" + name).style.display = "none";
	document.getElementById("button-cancel-" + name).style.display = "none";
	if (restore) {		document.getElementById("edit-" + name).innerHTML = editBuffer[name];	}
}

function verifyLogin(){
	console.log(":::::::::::::::::::: ext.js -> verifyLogin ::::::::::::::::::::");

	var username = ''
	if(getDiv(global.LOGIN_ID_PREFIX + 'username')){username = getDiv(global.LOGIN_ID_PREFIX + 'username').value; }
	var useremail = getDiv(global.LOGIN_ID_PREFIX + 'useremail').value;
  var password = getDiv(global.LOGIN_ID_PREFIX + 'password').value;
 

  if (global.LOGIN_WITH_NICKNAME) {
    var nickname = getDiv(global.LOGIN_ID_PREFIX + 'username').value;   
    if( (nickname.length <= 0 && useremail.length <= 0 ) || password.length <=0 ){
    loginHelp("username", "login","Please insert your username or mail - and your password");
    hideDiv('login_animation'); showDiv('login_content');	return false;
    }  
  }
  else  {
    if(useremail.length <= 0  || password.length <=0 ){
    loginHelp("username", "login","Please insert your mail and your password");
    hideDiv('login_animation'); showDiv('login_content');	return false;
    }
  }
  

	//var cookielogin = document.getElementById('selectLoginTime').value; frueher eine selectbox
	var cookielogin = getDiv('selectLoginTime').checked;
	if( cookielogin ) {cookielogin = "oneyear" ;} else {cookielogin = "no";}
 	console.log("ext.js -> verifyLogin cookielogin: " + cookielogin);
 	showDiv('login_animation'); hideDiv('login_content');	
 loginRequest(username, password, cookielogin, useremail);
}
//JOSE
function showFacebookHideCompanyInfos(){
  if (document.getElementById('userFacebookSignUp_userType').value == 'individual') {   state = 'hidden';  }
  else {  	state = 'visible';  }
  document.getElementById("userFacebookSignUp_tr_jobTitle").style.visibility = state;
  document.getElementById("userFacebookSignUp_tr_companyName").style.visibility = state;
  document.getElementById("userFacebookSignUp_tr_companyWebsite").style.visibility = state;
// Das klappt nur im Firefox, da wohl ein name-Attribute im TR nicht erlaubt ist 
//  tags = document.getElementsByName(signupIdPrefix + "companyInfos");
//  for (var i = 0; i < tags.length; i++) {
//  	alert(i)
//    tags[i].style.visibility = state;
//  }
}

function showExpertAdvise(){
  if (document.getElementById('userFacebookSignUp_userType').value == 'individual')  {   state = 'hidden'; }
  else { 	state = 'visible'; }
  document.getElementById("userFacebookSignUp_tr_expertAdvise").style.visibility = state;
}

function showExpertAdviseSignUp(){
  if (document.getElementById('signup_userType').value == 'individual')   {    state = 'hidden';  }
  else {  	state = 'visible';  }
  document.getElementById("signup_tr_expertAdvise").style.visibility = state;
}

function signUpFacebookHelp(fieldId, noteTitle, noteBody){
	if (! noteTitle) 	{
		noteTitle = "An error occurred:";
		var title = document.getElementById('userFacebookSignUp_td_'+fieldId).innerHTML;
		if (title.substring(title.length-1, title.length) == ':') {			title = title.substring(0, title.length-1);		}
		if (noteBody) {				noteBody += title;		} 
		else {			noteBody = "You must provide a correct value for " + title;		}
	}
  // Markiere das entsprechende Feld als Fehler
  document.getElementById('userFacebookSignUp_td_'+fieldId).className = 'error-field';
  document.getElementById('userFacebookSignUp_'+fieldId).focus();
  // Merke dieses Feld im hidden INPUT-Feld 'errorField', damit es sp‰ter wieder zur¸ckgesetzt werden kann
  document.getElementById('userFacebookSignUp_errorField').value = fieldId;
  document.getElementById('userFacebookSignUp_note').style.display = 'block';
  document.getElementById('userFacebookSignUp_note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
}


//Asis Twitter-Signin
function signUpTwitterHelp(fieldId, noteTitle, noteBody){
	if (! noteTitle) 	{
		noteTitle = "An error occurred:";
		var title = document.getElementById('userTwitterSignUp_td_'+fieldId).innerHTML;
		if (title.substring(title.length-1, title.length) == ':') {
			title = title.substring(0, title.length-1);
		}
		if (noteBody) {				noteBody += title;		} 
		else {			noteBody = "You must provide a correct value for " + title;		}
	}
  // Markiere das entsprechende Feld als Fehler
  document.getElementById('userTwitterSignUp_td_'+fieldId).className = 'error-field';
  document.getElementById('userTwitterSignUp_'+fieldId).focus();
  // Merke dieses Feld im hidden INPUT-Feld 'errorField', damit es sp‰ter wieder zur¸ckgesetzt werden kann
  document.getElementById('userTwitterSignUp_errorField').value = fieldId;
  document.getElementById('userTwitterSignUp_note').style.display = 'block';
  document.getElementById('userTwitterSignUp_note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
}

function verifyFacebookSignUp(){
 	// Fehlermarkierungen ausblenden
	// Das hidden INPUT-Feld enthaelt den letzten Fehler (falls einer vorlag)
	if(document.getElementById('userFacebookSignUp_errorField')){
		var errorField = document.getElementById('userFacebookSignUp_errorField').value;
	if (errorField != "") {
  	document.getElementById('userFacebookSignUp_td_' + errorField).className = "";
	}
  var username = document.getElementById('userFacebookSignUp_loginname').value;
  var password = document.getElementById('userFacebookSignUp_password').value;
  var facebook = document.getElementById('userFacebookSignUp_Facebookid').value;
  var email = document.getElementById('userFacebookSignUp_email').value;
  var user = document.getElementById('userFacebookSignUp_username').value;
  var userType = document.getElementById('userFacebookSignUp_userType').value;
  var accepted = document.getElementById('userFacebookSignUp_termsOfServicesAccepted').checked;
  var facebookImport = document.getElementById('userFacebookSignUp_facebookProfile').checked;
  if (facebookImport)  {	facebookImport = "true";  }
  else  {	facebookImport = "false";  }
  if (email == "") {signUpFacebookHelp("email", null, "Please insert correct ");return;}
  else {
		var reg = new RegExp("([a-zA-Z-\.]*[a-zA-Z-0-9]+)+@[a-zA-Z-0-9]{2,}[a-zA-Z-]+");
		if (!reg.test(email)){signUpFacebookHelp("email",null,"You must provide a correct value for your ");return;}
  }
  if (user == "") {signUpFacebookHelp("username");return;}
	else {
		if(user.length < 3){signUpFacebookHelp("username", null, "Your nickname must have a minimum of 3 characters");return;}
		else{		
			var reg = new RegExp("^[a-zA-Z0-9-_]+$");
			if (!reg.test(user)){signUpFacebookHelp("username", null, "Special characters are not allowed in ");return;}
		}
	}
  if (userType == "") {signUpFacebookHelp("userType");return;}
  if (!accepted) {signUpFacebookHelp("termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");return;};
  if (userType == "business")
  {
	  var job = document.getElementById('userFacebookSignUp_jobTitle').value;
	  var companyName = document.getElementById('userFacebookSignUp_companyName').value;
	  var companyWebsite = document.getElementById('userFacebookSignUp_companyWebsite').value;
    if (job == "") {signUpFacebookHelp("jobTitle");return;}
    if (companyName == "") {signUpFacebookHelp("companyName");return;}
    if (companyWebsite == "") {signUpFacebookHelp("companyWebsite");return;}
  }  else   {
	var job = "";
	var conpanyName = "";
	var companyWebsite = "";
	if (document.getElementById('userFacebookSignUp_jobTitle')){	  job = document.getElementById('userFacebookSignUp_jobTitle').value;	  }
	  if (document.getElementById('userFacebookSignUp_companyName')){	  companyName = document.getElementById('userFacebookSignUp_companyName').value;	  }
	  if (document.getElementById('userFacebookSignUp_companyName')){	  companyWebsite = document.getElementById('userFacebookSignUp_companyWebsite').value;	  }
  }
  if (username=="" && password=="")  {	  signUpFacebookRequest(user,facebook, email, userType, job, companyName, companyWebsite,"","",facebookImport);  }
	else{	  signUpFacebookRequest("",facebook, "", "", "", "", "",username,password);	   }
	}
}
//END JOSE's CODE

// //-> UIProvider Asis Twitter 08.03.2010 Anfang //MarkusF 27.07.11 nicht mehr in Verwendung
// function verifyTwitterSignUp(){
 	// // Fehlermarkierungen ausblenden
	// // Das hidden INPUT-Feld enthaelt den letzten Fehler (falls einer vorlag)
	// if(document.getElementById('userTwitterSignUp_errorField')){
		// var errorField = document.getElementById('userTwitterSignUp_errorField').value;
	// if (errorField != "") {
		// document.getElementById('userTwitterSignUp_td_' + errorField).className = "";
	// }
  // var username = document.getElementById('userTwitterSignUp_loginname').value;
  // var password = document.getElementById('userTwitterSignUp_password').value;
  // var twitter = document.getElementById('userTwitterSignUp_TwitterUserId').value;
  // var email = document.getElementById('userTwitterSignUp_email').value;
  // var user = document.getElementById('userTwitterSignUp_username').value;
  // var userType = document.getElementById('userTwitterSignUp_userType').value;
  // var accepted = document.getElementById('userTwitterSignUp_termsOfServicesAccepted').checked;
  // var twitterImport = document.getElementById('userTwitterSignUp_twitterProfile').checked;
  // if (twitterImport)  {	twitterImport = "true";  }
  // else  {	twitterImport = "false";  }
  // if (email == "") {signUpTwitterHelp("email", null, "Please insert correct ");return;}
  // else {
		// var reg = new RegExp("([a-zA-Z-\.]*[a-zA-Z-0-9]+)+@[a-zA-Z-0-9]{2,}[a-zA-Z-]+");
		// if (!reg.test(email)){signUpTwitterHelp("email",null,"You must provide a correct value for your ");return;}
  // }
  // if (user == "") {signUpTwitterHelp("username");return;}
	// else {
		// if(user.length < 3){signUpTwitterHelp("username", null, "Your nickname must have a minimum of 3 characters");return;}
		// else{		
			// var reg = new RegExp("^[a-zA-Z0-9-_]+$");
			// if (!reg.test(user)){signUpTwitterHelp("username", null, "Special characters are not allowed in ");return;}
		// }
	// }
  // if (userType == "") {signUpTwitterHelp("userType");return;}
  // if (!accepted) {signUpTwitterHelp("termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");return;};
  // if (userType == "business"){
	  // var job = document.getElementById('userTwitterSignUp_jobTitle').value;
	  // var companyName = document.getElementById('userTwitterSignUp_companyName').value;
	  // var companyWebsite = document.getElementById('userTwitterSignUp_companyWebsite').value;
    // if (job == "") {signUpTwitterHelp("jobTitle");return;}
    // if (companyName == "") {signUpTwitterHelp("companyName");return;}
    // if (companyWebsite == "") {signUpTwitterHelp("companyWebsite");return;}
  // }
  // else{
	  // var job = document.getElementById('userTwitterSignUp_jobTitle').value;
	  // var companyName = document.getElementById('userTwitterSignUp_companyName').value;
	  // var companyWebsite = document.getElementById('userTwitterSignUp_companyWebsite').value;
  // }
  // if (username=="" && password==""){ signUpTwitterRequest(user,twitter, email, userType, job, companyName, companyWebsite,"","",twitterImport);}
	// else{  signUpTwitterRequest("",twitter, "", "", "", "", "",username,password); }
	// }
// }//Asis Twitter 08.2010 Ende


function verifySignUpHomePage(praefix,userType,page){
	// page ist 1 oder 2 aber nur beim business !!!
	// 2011.03.14 daniel. hab hier einen parameter praefix eingef. da ich unterschiedliche Faelle abdecken muss
	// die anmeldung normer user, aber auch free BU und BU. Die inputfelder haben unterschiedliche Ids
	// userTyp ist string und normal,freebusiness oder business
 	var cLog = true;// show console logs !
	console.log("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
	console.log("::::::::::::::: ext.js -> verifySignUpHomePage praefix: " + praefix + " ... usertyp: " + userType + " ::::::::::::::");
	var city = "";  var country = "";  var gender = ""; var fax = ""; var telefon = ""; var companyPLZ = ""; var companyStreet = "";
	var obj = new Array();
	var initArray = new Array('companyName','companyStreet','companyPLZ','country','telefon','fax','siteName','siteUrl',
														'country','city','gender','efNewsAccepted','offerNewsAccepted','offerDiscAccepted','friendsOfferDiscAccepted');
	
	for (var a=0;a<initArray.length;a++){obj[initArray[a]] = '';}
	if(userType == "freebusiness" || userType == "business" ){
			var regsite = /^[\d\w ]+$/; 
			if(userType == "business"){
					var companyName = getDiv(praefix + 'companyName').value;
					if (companyName  == "") {signUpHelp(praefix, praefix + "td_", "companyName");return;}
					if (!regsite.test(companyName)){signUpHelp(praefix, praefix + "td_", "companyName",null,"Special characters are not allowed in ");return;}
					getDiv(praefix + "td_" + "companyName").className = '';
					obj["companyName"] = companyName ;
					if(cLog){console.log("........ companyName: " + companyName);}
				 if(page == 2){// on page 2 of the signup BU
					 	companyStreet = getDiv(praefix + 'companyStreet').value;
						if (companyStreet  == "") {signUpHelp(praefix, praefix + "td_", "companyStreet");return;}
						getDiv(praefix + "td_" + "companyStreet").className = '';
						obj["companyStreet"] = companyStreet ;
						if(cLog){console.log("........ companyStreet: " + companyStreet);}
						
						companyPLZ = getDiv(praefix + 'companyPLZ').value;
						if (companyPLZ  == "") {signUpHelp(praefix, praefix + "td_", "companyPLZ");return;}
						getDiv(praefix + "td_" + "companyPLZ").className = '';
						obj["companyPLZ"] = companyPLZ ;		
						if(cLog){console.log("........ countryPLZ: " + companyPLZ);}
						
						city = getDiv(praefix + 'city').value;
						if (city  == "") {signUpHelp(praefix, praefix + "td_", "city");return;}
						getDiv(praefix + "td_" + "city").className = '';
					 	obj["city"] = city ;		
					 	if(cLog){console.log("........ city: " + city);}
					 
				 		var country = getDiv(praefix + 'country');
						var cId = country.options[country.selectedIndex].value;
						if (cId < 0) {signUpHelp(praefix, praefix + "td_", "country");return;}
						getDiv(praefix + "td_" + "country").className = '';
						obj["country"] = cId ;
					 	if(cLog){console.log("........ country: " + cId);}
						
						telefon = getDiv(praefix + 'telefon').value;
						if (telefon  == "") {signUpHelp(praefix, praefix + "td_", "telefon");return;}
						getDiv(praefix + "td_" + "telefon").className = '';
						obj["telefon"] = telefon ;		
						if(cLog){console.log("........ telefon: " + telefon);}
						
						fax = getDiv(praefix + 'fax').value;
						obj["fax"] = fax ;
						if(cLog){console.log("........ fax: " + fax);}
				 
				 }
			
			}
		
			var siteName =         getDiv(praefix + 'siteName').value; 
			if (siteName == "") {signUpHelp(praefix, praefix + "td_", "siteName");return;}
			if (!regsite.test(siteName)){signUpHelp(praefix, praefix + "td_", "siteName",null,"Special characters are not allowed in ");return;}
			getDiv(praefix + "td_" + "siteName").className = '';
			obj["siteName"] = siteName;
				 
			var regurl = /^[\/:a-zA-Z0-9-_]+$/; 
			var siteUrl = getDiv(praefix + 'siteUrl').value;
			if (siteUrl  == "") {signUpHelp(praefix, praefix + "td_", "siteUrl");return;}
			if(!isUrl(siteUrl)){signUpHelp(praefix, praefix + "td_", "siteUrl");return;}
			//if (!regurl.test(siteUrl)){signUpHelp(praefix, praefix + "td_", "siteUrl",null,"Special characters are not allowed in ");return;}
			getDiv(praefix + "td_" + "siteUrl").className = '';
			obj["siteUrl"] = siteUrl; 
	}
	
  var email =         getDiv(praefix + 'email').value; // daniel
	var userFirstName = getDiv(praefix + 'userFirstName').value;
	var userLastName =  getDiv(praefix + 'userLastName').value;
  //var user =        getDiv(signupIdPrefix + 'username').value;
  var password =      getDiv(praefix + 'password').value;
  var password2 =     getDiv(praefix + 'password2').value;
  
  var accepted = getDiv(praefix + 'termsOfServicesAccepted').checked;
  var offers = true;
  
  if( offers )  {
	var efNewsAccepted = true;
  	var offerNewsAccepted = true;
  	var offerDiscAccepted = true;
  	var friendsOfferDiscAccepted = true;
  }  else  {
		var efNewsAccepted = false;
  	var offerNewsAccepted = false;
  	var offerDiscAccepted = false;
  	var friendsOfferDiscAccepted = false;
  }
	
	var reg =/[^\W+$]/;
	//2011.02.28 daniel pflicht ist nun Vor und zunahme
  if (userFirstName == "") {signUpHelp(praefix, praefix + "td_", "userFirstName");return;}
	if (userFirstName.length < 2){signUpHelp(praefix, praefix + "td_", "userFirstName", null, "Your userFirstName must have a minimum of 3 characters");return;}
	if (!reg.test(userFirstName)){signUpHelp(praefix, praefix + "td_", "userFirstName", null, "Special characters are not allowed in ");return;}
  getDiv(praefix + "td_userFirstName").className = '';
	
	if (userLastName == "") {signUpHelp(praefix, praefix + "td_", "userLastName");return;}
	if (userLastName.length < 2){signUpHelp(praefix, praefix + "td_", "userLastName", null, "Your userLastName must have a minimum of 3 characters");return;}
	if (!reg.test(userLastName)){signUpHelp(praefix, praefix + "td_", "userLastName", null, "Special characters are not allowed in ");return;}
  getDiv(praefix + "td_userLastName").className = '';

	
	if (email == "") {signUpHelp(praefix, praefix + "td_", "email", null, "Please insert correct ");return;}
  else {
		var reg = new RegExp("([a-zA-Z-\.]*[a-zA-Z-0-9]+)+@[a-zA-Z-0-9]{2,}[\.][a-zA-Z-]+");
		if (!reg.test(email)){signUpHelp(praefix, praefix + "td_", "email",null,"You must provide a correct value for your ");return;}
  }
	 getDiv(praefix + "td_email").className = '';
	
  if (password == "") {signUpHelp(praefix, praefix + "td_", "password");return;}
  else {
	  if(password.length < 5){signUpHelp(praefix, praefix + "td_", "password",null,"Insert a minimum of 5 characters for your ");return;}
  }
   getDiv(praefix + "td_password").className = '';
	
	if (password != password2) {signUpHelp(praefix,praefix + "td_", "password2", "An error occurred:", "the re-typed password differs from first one");return;}
	else {
		var reg = new RegExp("^[a-zA-Z-_0-9]+$");
		if (!reg.test(password)){signUpHelp(praefix, praefix + "td_", "password2", null, "These (a-z A-Z 0-9) characters are allowed in ");return;}
	}
	 getDiv(praefix + "td_password2").className = '';
  //if (city == "") {signUpHelp(signupIdPrefix, signupTDIdPrefix, "city");return;}
  //if (country == "-1") {signUpHelp(signupIdPrefix, signupTDIdPrefix, "country");return;}
  //if (userType == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "userType"); return; }
  if(userType != "business"){
		if (!accepted) {signUpHelp(praefix, praefix + "td_", "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");return;}
	} else {
		if(page == 2){	
				if (!accepted) {signUpHelp(praefix, praefix + "td_", "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");return;}
		}
	}
				
	
	//ever set data
	obj["userType"] = userType;
	obj["userNick"] = "";//user; wird ja nicht mehr abgefragt
	obj["userFirstName"] = userFirstName;
	obj["userLastName"] = userLastName;
	obj["password"] = password;
	obj["email"] = email;
	
	if(userType == "normale"){
		obj["gender"] = gender;
		obj["efNewsAccepted"] = efNewsAccepted;
		obj["offerNewsAccepted"] = offerNewsAccepted;
		obj["offerDiscAccepted"] = offerDiscAccepted;
		obj["friendsOfferDiscAccepted"] = friendsOfferDiscAccepted;
		if( 1 ){	signUpRequest(obj);	}	else { return true; }
	}	else if (userType == "business" ){
			if(page == 1){ hideDiv('busiSignUp_page_1'); showDiv('busiSignUp_page_2');}
			else { // hier ajax senden und daten in db schreiben
				alert("one moment please, we will send you a mail for you recogizion");				
				signUpRequest(obj);
			}
	}
	else {
			if( 1 ){	signUpRequest(obj);	}	else { return true; }
	}
}

function loginHelp(fieldId, noteTitle, noteBody){
	if (noteTitle) {
		console.log('showDivinhelp');
	
		showDiv(global.LOGIN_ID_PREFIX + 'note');  	getDiv(global.LOGIN_ID_PREFIX + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
  } else {console.log('else showDivinhelp');  noteTitle = "An error occurred:";}	
}

function forgottenHelp(fieldId, noteTitle, noteBody){	
if (noteTitle != "") {
	  document.getElementById(forgottenIdPrefix + 'note').style.display = 'block';
	  document.getElementById(forgottenIdPrefix + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
  }
	else {   noteTitle = "An error occurred:";}	
}

function signUpHelp(IdPrefix, TDIdPrefix, fieldId, noteTitle, noteBody){
	console.log('ext.js->signUpHelp IdPrefix ' + IdPrefix + ' TDIdPrefix ' + TDIdPrefix + ' fieldId ' + fieldId);
	if (! noteTitle){
		noteTitle = "An error occurred:";
		console.log('TDIdPrefix=',TDIdPrefix);
		console.log('fieldId=',fieldId);
		var title = getDiv(TDIdPrefix + fieldId).innerHTML;
		if (title.substring(title.length-1, title.length) == ':') {		title = title.substring(0, title.length-1);	}
		if (noteBody) {		noteBody += title;	} 
		else {	noteBody = "You must provide a correct value for " + title;	}
	}
   alert(noteBody);
  // Markiere das entsprechende Feld als Fehler
  getDiv(TDIdPrefix + fieldId).className = 'error-field';
  getDiv(IdPrefix + fieldId).focus();
  // Merke dieses Feld im hidden INPUT-Feld 'errorField', damit es später wieder zurückgesetzt werden kann
  if( getDiv(IdPrefix + 'errorField') &&  getDiv(IdPrefix + 'note')){  getDiv(IdPrefix + 'errorField').value = fieldId;}
  if(getDiv(IdPrefix + 'note')){
		 getDiv(IdPrefix + 'note').style.display = 'block';
   	 getDiv(IdPrefix + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
	 }
}
function wizardHelp(fieldId, noteTitle, noteBody){
  if (noteTitle) {
	  document.getElementById(addWizardIdPrefix + 'note').style.display = 'block';
	  document.getElementById(addWizardIdPrefix + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
  }else {   noteTitle = "An error occurred:";}	
}
function bookingHelp(fieldId, noteTitle, noteBody){
  if (noteTitle) { document.getElementById(bookmarkWizardIdPrefix + 'note').style.display = 'block';
	  document.getElementById(bookmarkWizardIdPrefix + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
  }else {  noteTitle = "An error occurred:";}	
}
function showHideCompanyInfos(){
  var select = document.getElementById(signupIdPrefix + "gender");
  var tr_select = document.getElementById(signupTRIdPrefix + "gender");
  var option; var state1; var state2;
  if (document.getElementById(signupIdPrefix + 'userType').value == 'professional'){
      // Fuege fuer Business-User eine dritte Option "keine Angabe" ein
	  option = document.getElementById(signupIdPrefix + "noGender");
      if (!option) {
					option = document.createElement("option");
          option.id = signupIdPrefix + "noGender";
          option.value = "2";
          option.innerHTML = "None of both";
          select.appendChild(option);
      }
      state1 = "visible";
      state2 = "visible";
  }
  else
  if (document.getElementById(signupIdPrefix + 'userType').value == 'business'){
      state1 = "hidden";
      state2 = "hidden";
  }
  else{
  	  // Fuer private Benutzer nehmen wir "keine Angabe" raus
  	  option = document.getElementById(signupIdPrefix + "noGender");
  	  if(option)
          select.removeChild(option);
      state1 = "visible";
      state2 = "hidden";
  }
  
  tr_select.style.visibility = state1;
  document.getElementById(signupTRIdPrefix + "offerNewsAccepted").style.visibility = state1;
  document.getElementById(signupTRIdPrefix + "offerDiscAccepted").style.visibility = state1;
  document.getElementById(signupTRIdPrefix + "jobTitle").style.visibility = state2;
  document.getElementById(signupTRIdPrefix + "companyName").style.visibility = state2;
  document.getElementById(signupTRIdPrefix + "companyWebsite").style.visibility = state2;
}
function logout(){  logoutRequest();}
//Asis, 04.05.2010, diese Funktion prüft, ob die ein div bereits existiert oder nicht.
function checkLookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId,friendsString,what){
	var cLog = true;
	console.log("ex.js-> checkLookupPeopleShareWithFriends:");
	console.log("param:"+param);
	console.log("from:"+from);
	console.log("to:"+to);
	console.log("order:"+order);
	console.log("task:"+paginationStep);
	console.log("objektId:"+objektId);
	console.log("friendsString:"+friendsString);
	console.log("what:"+what);
	
	var array = param.split('---');
	var userId = array[2].split(':');
	//Share to Twitter
	var divElementTwitter = getDiv("tellMessageTwitter");
	var divElementTwitterFormular = getDiv("twitterFormular");
	var divElementTwitterTextarea = getDiv("shareToTwitterTextarea");
	//share to Facebook
	var divElementFacebookFormular = getDiv("facebookFormular");
	var divElementFacebookTextarea = getDiv("shareToFacebookTextarea");
	
	var divElementEmailAddress = getDiv("mailAddressField");
	var divElementEmailMessage = getDiv("mailTellMessage");
	var divElementEmailMessageNotLoggedIn = getDiv("viaMailNotLoggedIn");
	var divElementFriendsAddress = getDiv("address-field");
	var divElementChoseFriends = getDiv("savedChoseFriend");
	var divElementOtherNetzworks = getDiv("otherNetworks");

	var checkboxArray = new Array();
	checkboxArray[0] = getDiv("onEarthfaves");
	checkboxArray[1] = getDiv("viaEmail");
	checkboxArray[2] = getDiv("onFacebook");
	if(getDiv("onTwitter")){checkboxArray[3] = getDiv("onTwitter");}
	
	console.log("checkLookupPeapleShareWithFriends");

	var exist = true;

	for(var i = 0; i<checkboxArray.length; i++){	if(!checkboxArray[i])	{	    exist = false;	}}	
	console.log("checkLookupPeapleShareWithFriends exist" + exist);
	
	if(exist){
					if(cLog){console.log("checkLookupPeapleShareWithFriends pos 0");}
					if(checkboxArray[0].checked){	
							var friendsId
							if(!typeof(friendsString)=='undefined'){friendsId = friendsString.split('|');	}
							if(!divElementChoseFriends){
								//prüfen, ob der div existiert
								getDiv('contentTellDiv').style.display = 'block';
								getDiv('share_button10').style.display = 'none';
								lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId,what);
							}
							else{
								getDiv('selectFriendsLink').style.display = 'block';
								getDiv('Ueberschrift').style.display = 'block';
								if(from != 1){//NUr wenn User kein Guest-User ist
									getDiv('contentTellDiv').style.display = 'block';
									getDiv('share_button10').style.display = 'block';
								}
								getDiv('message').style.display = 'block';
								getDiv('share_button1').style.display = 'none';
							}
						}//if checkboxArray[0]
						else{
							getDiv('selectFriendsLink').style.display = 'none';
							getDiv('Ueberschrift').style.display = 'none';
							if(userId[1] != 1){
								//NUr wenn User kein Guest-User ist, sonst gibt es Fehler: getElementById(contentTellDiv) is Null. Grund ist, dass dieser Div nicht existiert, da es nicht angezeigt wird, weil der User ein Guest-User ist 
								getDiv('contentTellDiv').style.display = 'none';				
								getDiv('share_button1').style.display = 'block';
								getDiv('share_button10').style.display = 'none';
							}		
						}//else checkboxArray[0]
						
						if(checkboxArray[1].checked){
							if(!divElementEmailAddress || !divElementEmailMessage || !divElementEmailMessageNotLoggedIn){
								//Wenn das div-Element nicht existiert(weil es ausgeblendet ist), 
								getDiv('contentTellViaMail').style.display = 'block';
								lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId);//darf das div-Element mit ajax-funktion neu geladen werden
							}
							else{
								if(userId[1] == 1){
									if(divElementEmailMessageNotLoggedIn){		hideDivs('viaMailNotLoggedIn|userInfo|subject|message|btnTellFriend',1);	}
								}
								else{
									getDiv('contentTellViaMail').style.display = 'block';
									getDiv('btnTellFriend').style.display = 'block';
									if(userId[1] != 1){
										//NUr wenn User eingeloggt ist
										getDiv('contentTellDiv').style.display = 'none';
									}
								}
								getDiv('share_button20').style.display = 'block';
								getDiv('share_button2').style.display = 'none';
							}
						}//if checkboxArray[1]
						else{
							if(userId[1] == 1){
								getDiv('subject').style.display = 'none';
								getDiv('userInfo').style.display = 'none';
							}
							getDiv('contentTellViaMail').style.display = 'none';
							getDiv('share_button20').style.display = 'none';
							getDiv('share_button2').style.display = 'block';
						}//else checkboxArray[1]
						if(checkboxArray[2].checked){
							if(!divElementFacebookTextarea){
								getDiv('contentTellFacebook').style.display = 'block';
								getDiv('contentTellFacebook').innerHTML = '<div style="margin-left: 270px; margin-top:45px;"><img src="' + global.IMG_URL_NONTEXT + 'teaser/progress-white.gif"/></div>';
								lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId);
							}
							else if(userId[1] == 1)	{
								getDiv('contentTellFacebook').style.display = 'block';
								getDiv('contentTellFacebook').innerHTML = '<div style="margin-left: 270px; margin-top:45px;"><img src="' + global.IMG_URL_NONTEXT + 'teaser/progress-white.gif"/></div>';
								lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId);
							}
							else if(divElementFacebookFormular){
								console.log('divElementFacebookFormular');
								getDiv('contentTellFacebook').style.display = 'block';
								getDiv('btnTellFriend').style.display = 'block';
								getDiv('share_button30').style.display = 'block';
								getDiv('share_button3').style.display = 'none';
							}	else if(divElementFacebookTextarea){
								console.log('divElementFacebookTextarea');
								getDiv('contentTellFacebook').style.display = 'block';
								getDiv('btnTellFriend').style.display = 'block';
								getDiv('share_button30').style.display = 'none';
								getDiv('share_button3').style.display = 'none';
							}
							else{
								getDiv('contentTellFacebook').style.display = 'none';
								getDiv('message').style.display = 'none';
								getDiv('share_button30').style.display = 'block';
								getDiv('btnTellFriend').style.display = 'block';
								getDiv('share_button3').style.display = 'none';
							}
						}//if checkboxArray[2]
						else{
							getDiv('share_button30').style.display = 'none';
							getDiv('share_button3').style.display = 'block';
							getDiv('contentTellFacebook').style.display = 'none';
						}//else checkboxArray[2]
						if(cLog){console.log("checkLookupPeapleShareWithFriends pos 10");}
						if(getDiv("onTwitter") && checkboxArray[3].checked){	
										if(cLog){console.log("checkLookupPeapleShareWithFriends pos 11");}
										if(!divElementTwitter || !divElementTwitterFormular || !divElementTwitterTextarea){
											//Wenn das div-Element nicht existiert, darf das div-Element mit ajax neu geladen werden
											getDiv('contentTellTwitter').style.display = 'block';
											getDiv('contentTellTwitter').innerHTML = '<div style="margin-left: 270px; margin-top:45px;"><img src="' + global.IMG_URL_NONTEXT + 'teaser/progress-white.gif"/></div>';
											lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId);
										}
										else if(userId[1] == 1){
											getDiv('contentTellTwitter').style.display = 'block';
											getDiv('contentTellTwitter').innerHTML = '<div style="margin-left: 270px; margin-top:45px;"><img src="' + global.IMG_URL_NONTEXT + 'teaser/progress-white.gif"/></div>';
											lookupPeopleShareWithFriends(param,from,to,paginationStep,order,task,objektId);
										}
										else if(divElementTwitterFormular){
											getDiv('contentTellTwitter').style.display = 'block';
											getDiv('btnTellFriend').style.display = 'block';
											getDiv('share_button40').style.display = 'block';
											getDiv('share_button4').style.display = 'none';
										}
										else if(divElementTwitterTextarea){
											getDiv('contentTellTwitter').style.display = 'block';
											getDiv('btnTellFriend').style.display = 'block';
											getDiv('share_button40').style.display = 'block';
											getDiv('share_button4').style.display = 'none';
										}
										else{
											getDiv('contentTellTwitter').style.display = 'block';
											getDiv('message').style.display = 'none';
											getDiv('share_button40').style.display = 'block';
											getDiv('share_button4').style.display = 'none';
										}
						}	else{
										if(getDiv('contentTellTwitter')){hideDiv('contentTellTwitter');}
										if(getDiv('share_button40'))    {hideDiv('share_button40');}
										if(getDiv('share_button4'))     {showDiv('share_button4');}

						}//else checkboxArray[3]
	}//if exist
	if(cLog){console.log("checkLookupPeapleShareWithFriends ende .....................");}
}

// rick
function earthfaveResultListOverlay(id, lat, lng, name, overview, continentName, continentId, countryName, countryId, adm1Name, 
    adm1Id , inselName, city, address1, woLink, discovererInfo, discovererId, hasBookedDisc, counterBookmarker, 
    catLink, media, allCount,status, i)
{
	var overviewBegin = overview.substr(0, 55);
	if (overviewBegin.length == 55)
		overviewBegin += '...';
	
	var arrayKatName =  new Array();
	arrayKatName["0"] = "no_category";
	arrayKatName["1"] = "hotel";
	arrayKatName["17"] = "restaurant";
	arrayKatName["96"] = "nature";
	arrayKatName["136"] = "culture";
	arrayKatName["185"] = "shopping";
	arrayKatName["257"] = "nightlife";
	arrayKatName["207"] = "sports";	
	
	var target = "_self";
	
	var cat0Beginn = catLink.indexOf("cat0=");
	var cat1Beginn = catLink.indexOf("&cat1=");	
	var divC = cat1Beginn - cat0Beginn - 5;	
	var cat0 = catLink.substr( (cat0Beginn + 5) , divC );	
	if(cat0 == 18)
		cat0 = 17;
	if(!cat0)
		cat0 = 0;
	
	
	var result = '<tr style="height:55px;">';
	result += '<td style="width:13%;" align="center"> <img src="img_sort/img-nontext/icons/efToLoveEf.jpg" alt="Earthfave" /> </td>';
	result += '<td style="width:12%;" align="center"> <a href="' + global.URL + arrayKatName[cat0] + '/' + city + '/' +  id + '/' + name + '" target="' + target + '"><img src="' + media + '" alt="' + name + '" style="height:50px;" /></a> </td>';
	result += '<td style="width:52%;"> <h1><a href="' + global.URL + arrayKatName[cat0] + '/' + city + '/' +  id + '/' + name + '" target="' + target + '">' + name + '</a></h1>';
	result += '<span style="font-size:10px; color:#B0A9A7"> ' + countryName + ' > ' + city + ' > ' + address1 + ' &nbsp;</span> <br/>';
	result += '<span style="font-size:11px; color:#B0A9A7"> ' + overviewBegin + ' </span> </td>';
	
	if ( hasBookedDisc==1 )
		result += '<td style="width:23%;" align="center"> <img src="img_sort/img-text/en/buttons/addToYourEf.jpg" alt="Add to your earthfaces" onmouseover="this.style.cursor=\'pointer\'; myTip(\'Add to your earthfaces\');" onmouseout="this.style.cursor=\'auto\'; UnTip();" onClick="changePageinOverlay(1, 3, \'Index\', '+i+', \'no\', \'no\');" /> </td>';
	else
	if ( hasBookedDisc==2 ) // earthfaved
		result += '<td style="width:23%;" align="center"> <img src="img_sort/img-nontext/menue_icons/earthfaved-by-me_active.gif" alt="Earthfaved" /> </td>';
	else
	if ( hasBookedDisc==3 ) // discovered
		result += '<td style="width:23%;" align="center"> <img src="img_sort/img-nontext/menue_icons/discovered-by-me_active.gif" alt="Discovered" /> </td>';
	else
		result += '<td style="width:23%;" align="center"></td>';
	result += '</tr>';
	return result;
}

function EfObject() {
	this.type = "";
	this.id = "";
	this.lat = "";
	this.lng = "";
	this.name = "";
	this.countryName = "";
	this.city = "";
	this.address1 = "";
	this.overview = "";
	this.continentId = "";
	this.countryId = "";
	this.adm1Name = "";
	this.inselName = "";
	this.woLink = "";
	this.discovererName = "";
	this.discovererId = "";
	this.relation = "";
	this.counterBookmarker = "";
	this.catLink = "";
	this.media = "";
	this.allCount = ""; 
	this.status = "";
	this.internName = "";
	this.experience = "";
	this.tags = "";
	this.whyilikeit = "";
	this.whatitis = "";
	this.topics = "";
	this.properties = "";
}

var merke_id = null;
var merke_typ = null;

//full == true, wenn großer AddWizard; 
// 4Fälle: kleiner Wizard + bookmark; kleiner wizard + discover; großer wizard + bookmark; großer wizard + discover
function quitOverlay(aktuelleSeite, action, full){
	var cLog = true; merke_id = null;//daniel 20100823 init mit null, damit nicht ausversehen allte Werte drin stehen.
	merke_typ = null;
	if(cLog){console.log("************** **** quitOverlay aktuelleSeite " + aktuelleSeite + " action " + action + " full : " + full + " **** *********************");}
	// Auf die Hauptkarte umschalten
	// 2011 daniel veralteter Code
	//Application.setActiveMap(Map);
	//Application.setActiveList("result-list");
	if(action=="save"){
	
//	if(global.EfObj.type == TYPE_EARTHFAVE)
		if(!AddWizardMap){if(cLog){console.log("...ext.js->quitOverlay AddWizardMap gibt es NICHT !!!");}}
		else {if(cLog){console.log("...ext.js->quitOverlay AddWizardMap gibt es !!!");}}
		
		if (AddWizardMap.tempEarthfave){
						if(cLog){console.log("...ext.js->quitOverlay BOOKEN bereich");}
					//info("quitOverlay aktuelleSeite if " + aktuelleSeite + " action " + action );
					//var busiNewsletter = document.getElementById("showBusinessInformationNewsletter").value;
					//var busiDiscounts = document.getElementById("showBusinessInformationDiscounts").value;
					//earthfave.prototype.busiNewsletter = busiNewsletter;
					//earthfave.prototype.busiDiscounts = busiDiscounts;
					var earthfave = new Earthfave(AddWizardMap.tempEarthfave);
					merke_id = earthfave.id;
					merke_typ = "ef";
					var whyilikeit = getDiv("whyilikeit").value;                 
					var whatcouldbeimproved = getDiv("whatcouldbeimproved").value;
					earthfave.relationship = "2";
					
					if(whyilikeit.length<=5){
						alert('"'+global.WHY_I_LIKE_IT+'" '+global.SHOULD_BE_LONGER+' !');
						hideDiv("SaveProgress"); //animation unsichtbar
						if (full == "true"){	if(getDiv("SaveAndFinish")){showDiv("SaveAndFinish");	}
						}	else{			if(getDiv("quick_SaveAndFinish")){	showDiv("quick_SaveAndFinish");}}
						return false;
					}
					else if (whyilikeit == Languages.DEFAULT_WHY_I_LIKE_IT){
						alert(Languages.DEFAULT_WHY_I_LIKE_IT);
						hideDiv("SaveProgress");// anim unsichtbar machen
						if (full == "true"){if(getDiv("SaveAndFinish")){showDiv("SaveAndFinish");	}
						}	else {	if(getDiv("quick_SaveAndFinish")){showDiv("quick_SaveAndFinish");}}
						return false;
					}	
						
					if (full == "true"){	var whatitis = getDiv("whatitis").value;	earthfave.overview = whatitis;}
					else {earthfave.overview = "";}
					if (!earthfave) { console.log ("Error: earthfave wurde nicht korrekt an 'quitOverlay' uebergeben");	return;	}
					//DATEN CHECK ENDE::::::::::::::
					//bei den Tags sind nur Buchstaben erlaubt :::::::::::::::::
					earthfave.tags = "";
					earthfave.type = 'EARTHFAVE';
					earthfave.comment = whyilikeit;
					if(whatcouldbeimproved == Languages.DEFAULT_IMPROVEMENTS){earthfave.suggestions = '';} // wenn man nichts eingab leer machen
					else {earthfave.suggestions = whatcouldbeimproved;}
					earthfave.levelOfExpertise = getDiv("experience").value;
					//earthfave.bookmark(global.user_id);
					if(cLog){console.log("...ext.js->quitOverlay kopiere earthfave in global.EfObj");}
					
					global.EfObj = earthfave;
					if(cLog){
						console.log("..ext.js quitOverlay: id " + global.EfObj.id);
						console.log("..ext.js quitOverlay: disc_id " + global.EfObj.discovererId);
						console.log("..ext.js quitOverlay: lat " + global.EfObj.lat);
						console.log("..ext.js quitOverlay: lng " + global.EfObj.lng);
						console.log("..ext.js quitOverlay: name " + global.EfObj.name);
						console.log("..ext.js quitOverlay: intern_name " + global.EfObj.internName);
						console.log("..ext.js quitOverlay: overview " + global.EfObj.overview);
						console.log("..ext.js quitOverlay: city " + global.EfObj.city);
						console.log("..ext.js quitOverlay: country " + global.EfObj.country);
						console.log("..ext.js quitOverlay: region " + global.EfObj.region);
						console.log("..ext.js quitOverlay: why_i_like_it " + global.EfObj.comment);
						console.log("..ext.js quitOverlay: what_could_be_improved " + global.EfObj.suggestions);
						console.log("..ext.js quitOverlay: type" + global.EfObj.type);
					}
					AddWizardMap.tempEarthfave = null;
			}	else {
					console.log("quitOverlay DISCOVERN......"); //discover place an dieser Stelle
					merke_typ = "place";
					console.log("quitOverlay aktuelleSeite else " + aktuelleSeite + " action " + action );
					var name = getDiv("name").value;            
					//console.log('...country 1 ' + AddWizardMap.tempPlace.country);
					var earthfave = new Earthfave(AddWizardMap.tempPlace);
					earthfave.countryName = AddWizardMap.tempPlace.country
					//console.log('...country  2' + earthfave.countryName);
					//alert ("blub"+AddWizardMap.tempPlace.id);
					//console.log("blub", AddWizardMap.tempPlace);
					earthfave.internName = "";
					earthfave.overview = "";
					if (AddWizardMap.tempPlace.type){earthfave.type = AddWizardMap.tempPlace.type;}
					if(cLog){console.log("..ext.js -> quitOverlay type " + earthfave.type );}
					//info(AddWizardMap.tempPlace)
					
					if( global.EfObj.type == 'MARKER' ) { // Marker
						if( name.length<=5 ) {
							alert('"'+global.NAME+'" '+global.SHOULD_BE_LONGER+' !');
							hideDiv("SaveProgress");showDiv("SaveAndFinish");
							return false;
						}
						else {
							global.EfObj.internName = name;
							global.EfObj.name = name;
						}
					}
					else { // Place
						console.log("ext.js -> quitOverlay im else. Anlegen eines ex Place");
						earthfave.internalName = earthfave.name;
						if( name.length>3 ) {		earthfave.name = name;	} // sonst wird den Name von Place gesreichert - ohne irgendeine Meldung
						if(name == global.GIVE_A_NAME){
							alert("please enter a name for your earthfave");
							hideDiv("SaveProgress");showDiv("SaveAndFinish");
							if(full == "false"){
								if(getDiv("quick_SaveAndFinish")){showDiv("quick_SaveAndFinish");	}
							}
							return false;
						}
					console.log("ext.js -> quitOverlay der place heisst: " + earthfave.name + "...");
					}
					
					earthfave.relationship = "1"; //Discoverer 1; Bookmarker 2
					//earthfave.type = 'MARKER'; 2011.02.01
					earthfave.levelOfExpertise = getDiv("experience").value;
					//bei den Tags sind nur Buchstaben erlahubt :::::::::::::::::
					var reg = new RegExp("^[a-zA-Z-]+$");
					earthfave.tags = "";
					/*for(var a = 1; a < 5 ; a++ ){
						if(document.getElementById("tag" + a).value != "") {
							if (!reg.test(document.getElementById("tag" + a).value)){
								alert("Only these (a-z A-Z) characters are allowed in the tag-fields");
								document.getElementById("SaveProgress").style.display="none";
								document.getElementById("SaveAndFinish").style.display="block";
								return false;
							}	
							if( a == 1 ) {		global.EfObj.tags = document.getElementById("tag" + a ).value; }
							else { global.EfObj.tags += ',' + document.getElementById("tag" + a ).value; }
						}
					} /// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
					if (full == "true"){
						var whatitis = getDiv("whatitis").value;
						earthfave.overview = whatitis;
					}else {earthfave.overview = "";}
					
					var whyilikeit = getDiv("whyilikeit").value;
					if(whyilikeit.length<=5){
						console.log("ext.js  - quitOverlay : vor dem alert");
						alert('"'+global.WHY_I_LIKE_IT+'" '+global.SHOULD_BE_LONGER+' !');
						//alert(document.getElementById("SaveProgress").style.display);
						console.log("ext.js  - quitOverlay : mache die animation un-sichjtbar");
						hideDiv("SaveProgress"); //animation unsichtbar
						
						if (full == "true"){
							if(getDiv("SaveAndFinish")){showDiv("SaveAndFinish");}
						}	else {
							console.log("ext.js  - quitOverlay : mache den button sichjtbar");
							if(getDiv("quick_SaveAndFinish")){showDiv("quick_SaveAndFinish");}
					
							//if(document.getElementById("SaveAndFinish")){
							//	document.getElementById("SaveAndFinish").style.display="block";
							//}
							//					
						}
						return false;
					}
					else if (whyilikeit == Languages.DEFAULT_WHY_I_LIKE_IT){
								alert(Languages.DEFAULT_WHY_I_LIKE_IT);
								hideDiv("SaveProgress");// anim unsichtbar machen
								if (full == "true"){
									if(getDiv("SaveAndFinish")){showDiv("SaveAndFinish");}
								}else{
									console.log("ext.js  - quitOverlay : mache den button sichjtbar");
									if(getDiv("quick_SaveAndFinish")){showDiv("quick_SaveAndFinish");	}
								}
								return false;
					}				
					earthfave.comment = whyilikeit;			
					var whatcouldbeimproved = getDiv("whatcouldbeimproved").value;
					if(whatcouldbeimproved == Languages.DEFAULT_IMPROVEMENTS){earthfave.suggestions = '';} // wenn man nichts eingab leer machen
					else {earthfave.suggestions = whatcouldbeimproved;}
									
					if(global.ADDWIZARD_EXTENDET){// erweiterte daten nehme ich nur, wenn die ef daten leer sind.
								if(earthfave.city == ''){   earthfave.city = getDiv('addW_ext_inputCity').value;   }
								if(earthfave.countryName == '' || earthfave.countryName == 'undefined' ){
											var selCountry = getDiv('addW_ext_country');
											if (selCountry.value != "-1"){
													earthfave.countryName = selCountry.options[selCountry.selectedIndex].innerHTML;
													earthfave.countryId = selCountry.options[selCountry.selectedIndex].value;
													console.log('quitSave ..country setze neu ');
											}
								}
								var mainC = getDiv('addWMainCat');
								var subC = getDiv('ditcategoriesform_subTopic');
								var cVal = mainC.options[mainC.selectedIndex].value;
								var sVal = subC.options[subC.selectedIndex].value;
								if(cVal != "-1" && sVal != "-1"){earthfave.subCatId = sVal;}
								else {earthfave.subCatId = -1; }
							console.log('quitSave ..subcat id     auf : ' + earthfave.subCatId );	
							console.log('quitSave ..country setze auf : ' + earthfave.countryName);
					}
				
					
					// categories und properties anlegen ist aus dem großen AddWizard gestrichen 05.11.2009
					//if(full == "true"){
					//	var listOfTopics = document.getElementById("addWizardOverlaycategoryIds").value;
					//	if(listOfTopics.length<=0){
					//		alert(global.SELECT_TOPIC+' !');
					//		document.getElementById("SaveProgress").style.display="none";
					//		document.getElementById("SaveAndFinish").style.display="block";
					//		return false;
					//	}			
					//global.EfObj.topics = listOfTopics; // ids von topics mit "|" getrennt 
								
					//	var listOfProperties = document.getElementById("addWizardOverlaypropertyIds").value;
					// global.EfObj.properties = listOfProperties; // ids von properties mit "|" getrennt 
					// bild kommt noch dazu
					// earthfave als Entdecker speichern
					//	earthfave.discover(global.user_id, listOfTopics, listOfProperties);
					//}
					
					AddWizardMap.tempPlace = null;
					// Die aktive ResultList zurücksetzen, so dass wieder die "normale" benutzt wird  
		//			Application.setActiveList("result-list");
					Application.setActiveList(null);
					//earthfave.discovererId = global.user_id; 
					global.EfObj = earthfave; 
					//daniel 2010 08 23 merke mir die id des places.
					merke_id = global.EfObj.id;
					// daniel ende
					
					console.log("ext.js quitOverlay: ef_id " + global.EfObj.id);
					console.log("ext.js quitOverlay: disc_id " + global.EfObj.discovererId);
					console.log("ext.js quitOverlay: ef_lat " + global.EfObj.lat);
					console.log("ext.js quitOverlay: ef_lng " + global.EfObj.lng);
					console.log("ext.js quitOverlay: ef_name " + global.EfObj.name);
					console.log("ext.js quitOverlay: ef_intern_name " + global.EfObj.internName);
					console.log("ext.js quitOverlay: ef_overview " + global.EfObj.overview);
					console.log("ext.js quitOverlay: ef_city " + global.EfObj.city);
					console.log("ext.js quitOverlay: ef_country " + global.EfObj.countryName);
					console.log("ext.js quitOverlay: ef_subCatId " + global.EfObj.subCatId);
					console.log("ext.js quitOverlay: ef_id " + global.EfObj.countryId);
					console.log("ext.js quitOverlay: ef_region " + global.EfObj.region);
					console.log("ext.js quitOverlay: ef_why_i_like_it " + global.EfObj.comment);
					console.log("ext.js quitOverlay: ef_what_could_be_improved " + global.EfObj.suggestions);
					console.log("ext.js quitOverlay: ef_type " + global.EfObj.type);
			}
			// WICHTIG !!!!
			if(cLog){console.log("...ext.js->quitOverlay rufe ajax.js->addWizardSave zum speichern auf !!");}
			addWizardSave(full); // hier werden die daten mit einer ajax-funktion weggesendet und gespeichert
			
			//daniel verschoben von ganz oben
			if(cLog){console.log("...ext.js->quitOverlay machen buttons unsichtbar und animation sichtbar");}
			if( getDiv("SaveAndFinish")){hideDiv("SaveAndFinish");}
			if( getDiv("quick_SaveAndFinish")) {hideDiv("quick_SaveAndFinish");}
			hideDiv("SaveProgress");

			if(cLog){console.log("...ect.js->quitOverlay teste den user. Userid: " + global.user_id);}
			if(global.user_id<2) {
					alert(global.AUTHENTIFICATION_PROBLEM+' !');
					hideDiv("SaveProgress");showDiv("SaveAndFinish");
					if( global.DISCOVER_EF_HOME_JUMP ){document.location.href(global.URL);}
					return false;
			}
	
	
	}	else { // action cancel or continue
			if(cLog){console.log("...ext.js->quitOverlay schliesen");}
			EfImages = new Images("ef", "upload_form", "earthfaveImagesTable", "vorschau", "info", "imagesList", "add", "image-uploader-i-frame", global.IMG_PATH_NONTEXT+"teaser/progress-blue.gif", "modal-1", "upload", "imageUpload");
			//re-initialization
			hideForm('addNewEarthfave');
			if(getDiv("categoryField")){ getDiv("categoryField").value=''; }
			if(getDiv("stateField")){ getDiv("stateField").value=''; }
			if(getDiv("page" + aktuelleSeite )){ getDiv("page" + aktuelleSeite).value=''; }
			//if(getDiv("page1")){ getDiv("page1").value=''; getDiv("page1").style.display='block';}
			if(getDiv("result-list-overlay")){getDiv("result-list-overlay").innerHTML="";}
	
			global.addearthfaveoverlay=false;
			console.log("global.addearthfaveoverlay :" + global.addearthfaveoverlay);
			global.EfObj = new EfObject(); 
			global.Gewunchte = new EfObject();
			global.addWizardArrayResult = new Array();
			//global.addWizardArrayMap = new Array();
			global.numberOfCategory = 0;
			global.picture = false;
			global.crop = false;
			//2011.02.01 Daniel. Falls der Nirvana Overlay sichtbar war diesen schliesen.
			var activeMap = Application.getActiveMap();
			if(activeMap){if(activeMap.manualyCreatedPlace){closeNirvanaOverlay();}}
		
	}  
}

//Oli 30.10.2009
function showFullAddWizard(){
	getDiv('full_wizard').style.display = "block";
	getDiv('showquitmore').innerHTML = "<span onmouseover=\"this.style.cursor='pointer';\" onmouseout=\"this.style.cursor='auto';\" onclick = \"hideFullAddWizard()\" style=\"text-decoration:none; color:#666666;\"><img style=\"float:left;padding-top: 5px;\" src=\"img_sort/img-nontext/icons/greyarrowdown.jpg\">less details</span>"; 
	getDiv('cancel_quickWizard').style.display = "none";
	getDiv('quick_SaveAndFinish').style.display = "none";
	getDiv('SaveAndFinish').style.display = "block";
	getDiv('quickLink').style.display = "none";
	getDiv('page3_nav').style.display = "block";
	//getDiv('back_quickWizard').style.display = "none";
	getDiv('cancel_quickWizard').style.display = "none";
	getDiv('quick_SaveAndFinish').style.display = "none";
	//getDiv('more_data').style.display = "none";
	var doc = getDiv("imagesListInAddWizard"); //Aus irgendeinem Grund hat der Div schon ein child. Das muss erst gelöscht werden
	if(doc.hasChildNodes()){
		var child = doc.lastChild;
		doc.removeChild(child);
	}
	showForm('addNewEarthfave','modal');
}

function hideFullAddWizard(){
	getDiv('showquitmore').innerHTML = "<span onmouseover=\"this.style.cursor='pointer';\" onmouseout=\"this.style.cursor='auto';\" onclick = \"showFullAddWizard()\" style=\"text-decoration:none; color:#666666;\"><img style=\"float:left;padding-top: 2px;\" src=\"img_sort/img-nontext/icons/greyarrow.jpg\">more details</span>";
	getDiv('cancel_quickWizard').style.display = "block";
	getDiv('quick_SaveAndFinish').style.display = "block";
	getDiv('full_wizard').style.display = "none";
	getDiv('quickLink').style.display = "none";
	getDiv('page3_nav').style.display = "none";
	//getDiv('back_quickWizard').style.display = "block";
	getDiv('cancel_quickWizard').style.display = "block";
	getDiv('quick_SaveAndFinish').style.display = "block";
	//getDiv('more_data').style.display = "block";
	var doc = getDiv('overlayCrop'); //crop verstecken 
	doc.style.width = "1px";
	doc.style.height = "1px";		
	doc.style.left = "0px";
	doc.style.top = "0px";
	document.onmousemove = null;
	getDiv("divInfotabs-1").innerHTML = "";
	showForm('addNewEarthfave','modal');
}

function jumpAnchor(){
	window.scrollTo( 0, 0 ); //self.location.href = "#topPosition";
}

function hideCrop(){
	var doc = getDiv('overlayCrop'); //crop verstecken 
	doc.style.width = "1px";doc.style.height = "1px";		doc.style.left = "0px";doc.style.top = "0px";	document.onmousemove = null;
}

// Oli Ende

function changePageinOverlay(aktuelleSeite, gewunschteSeite, aktion, iOrId, lat, lng, type){
  console.log("========================  == changePageinOverlay == ========================");
  console.log("die steuerung im adWizard aktuelleSeite:",aktuelleSeite," gewuenschte Seite: " , gewunschteSeite , " aktion: ",aktion," iOrId: ",iOrId," lat: ",lat," lng: ",lng," type: ",type);
  var cLog = true;
	if(getDiv("page"+aktuelleSeite)){hideDiv("page"+aktuelleSeite);}
	if(getDiv("page"+gewunschteSeite)){showDiv("page"+gewunschteSeite);}
	
	if (aktuelleSeite == 1 && gewunschteSeite == 3){	
					if(type) {
						console.log ("if bedingung changePaginOverlay. rufe checkXxX_HasImagesRequest")
						checkXxX_HasImagesRequest("ef", iOrId); //setzt global.crop Variable für den AddWizard
					}
					else {
						console.log ("else bedingung changePaginOverlay. rufe checkXxX_HasImagesRequest")
						checkXxX_HasImagesRequest("ef", -12312312412412412412412412415125); //setzt global.crop Variable für den AddWizard
					}
	}
	
	if(aktion=="Marker" || aktion=="Place"){
					AddWizardGoogle = new GoogleProvider("overlayMap");
					AddWizardMap = new MapProvider(AddWizardGoogle.map, AddWizardGoogle.domElement);
					Application.register(AddWizardMap);
					console.log("ext.js changePageinOverlay aktion marker oder place");
					var id = iOrId;
					global.addWizardArrayResult = new Array();
				
					if(aktion=="Marker"){	// beim manuellen anlegen von efs gehts hier rein
									console.log("ext.js changePageinOverlay manuel Marker");
									var activeMap = Application.getActiveMap();	id = 0;
									var place = new Place(id,lat,lng,global.YOUR_MARKER,"","","","","","");//daniel: global.YOUR_MARKER ist nur ein text "Your Marker"
									activeMap.placesGoogle.push(place);
					}	else{	//beim place discovern gehts hier rein
									console.log("ext.js changePageinOverlay place aber nicht Marker"); 
									var activeMap = Application.getActiveMap();
									if(activeMap){
												if(cLog){console.log("ext.js changePageinOverlay activeMap found"); }
												if(activeMap.placesGoogle[id]){
													if(cLog){
														console.log(" -- place id "+activeMap.placesGoogle[id].id);
														console.log(" -- place name "+activeMap.placesGoogle[id].name);
														console.log(" -- place lat "+activeMap.placesGoogle[id].lat);
														console.log(" -- place lng "+activeMap.placesGoogle[id].lng);
														console.log(" -- place city "+activeMap.placesGoogle[id].city);
														console.log(" -- place country " +activeMap.placesGoogle[id].country);
														console.log(" -- place region " +activeMap.placesGoogle[id].region);
													}
												}  else { if(cLog){	console.log("ext.js changePageinOverlay keine placeGoogle[i] in activeMap gefunden"); }}
									} else { if(cLog){	console.log("ext.js changePageinOverlay keine Active Map gefunden"); }}
					}
						global.addWizardArrayResult.push(global.Gewunchte);
						lookupForNearEarthfavesAddWizard(id, lng, lat, '-5'); //callback in ajax.js
	}	else	if( aktion == "EfIt" ){
					// bookmarke einen ef aus der RListe von unten. ALSO NICHT AUS DEM adW !!!!
					//siehe ajax.js showAddEarthFaveOverlayCallback
					console.log("ext.js changePageinOverlay aktion im if bei EfIt bookmarke einen ef: " + iOrId + " von unten -nicht adW");
					var activeMap = Application.getActiveMap();
					if(activeMap){	
										console.log("changePageinOverlay FINDE active map",activeMap);
										if(activeMap.earthfaves){
														console.log("ext.js changePageinOverlay finde earthfave array gibt es");
														var arrayId = getArrayIdByEfIdOfActiveMap(activeMap,iOrId);
														var entity = activeMap.earthfaves[arrayId];
														if(entity){
																		console.log("ext.js changePageinOverlay finde entity beim booken eines ef aus der Rlist - nicht adW");
																		AddWizardGoogle = new GoogleProvider("overlayMap");
																		AddWizardMap = new MapProvider(AddWizardGoogle.map, AddWizardGoogle.domElement);
																		Application.register(AddWizardMap);
																		AddWizardMap.tempEarthfave = entity;
																		console.log("changePageinOverlay ef  gefunden ");
																		console.log("..type: " + entity.type);
																		console.log("..id: " + entity.id);
																		console.log("..name: " + entity.name);
																		console.log("..country: " + entity.country);
																		console.log("..city: " + entity.city);
																		console.log("..street: " + entity.street);
																		console.log("..region: " + entity.region);
																		console.log("..tel: " + entity.phoneNumbers);		
																		showBookmarkScreen(entity);
																		showLinksInAddWizard(entity);
														} else {console.log("ext.js changePageinOverlay  finde keine entity");}
										}	else {if(cLog){console.log("ext.js changePageinOverlay finde KEINE activeMap.earthfaves");}}
					}	else {console.log("changePageinOverlay finde keine active map");}
	}	else	if (aktion=="Index"){
					// bookmarke einen ef aus dem adW . ALSO NICHT AUS DER RLISTE von UNten !!!!
						if (type == "ef") { 
										console.log("changePageinOverlay bookmarke einen ef aus dem adW suche active map und ef mit id " + iOrId ); 
										if(AddWizardMap){
															console.log("ext.js changePageinOverlay AddWizardMap array gibt es");
															ef_id_AddWizard = iOrId;
															if(AddWizardMap.earthfaves){
																			console.log("ext.js changePageinOverlay finde in AddWizardMap earthfave array");
																			var entity = AddWizardMap.earthfaves[iOrId];
																			if (entity) {
																								console.log("changePageinOverlay entity  gefunden ");
																								console.log("..type: " + entity.type);
																								console.log("..id: " + entity.id);
																								console.log("..name: " + entity.name);
																								console.log("..country: " + entity.country);
																								console.log("..city: " + entity.city);
																								console.log("..street: " + entity.street);
																								console.log("..region: " + entity.region);
																								console.log("..tel: " + entity.phoneNumbers);		
																								AddWizardMap.tempEarthfave = entity;
																								console.log("changePageinOverlay........" + entity.name);
																								showBookmarkScreen(entity);
																			} else {console.log("changePageinOverla keine entity ef nicht gefunden, id: " + iOrId);return;}
															} else {console.log("ext.js changePageinOverlay finde in AddWizardMap kein earthfave array");}
										} else {console.log("ext.js changePageinOverlay AddWizardMap array gibt es nicht");}
						}	else { // Einen PLace ?
									console.log("........................... im else am ende der changePageinOverlay fuer einen Place in einen ef zu wandeln........");
									var nirv = false; // 2011.02.02 Daniel soll ein Nirvana Marker in einen ef gewandelt werden ?
									if(lat&&lng&&iOrId==999999){nirv = true;} // Index=-1 + gesetztem lat und lng sind nur im falle Nirvana
									if(!nirv){				
																if(!AddWizardMap){ console.log("...ext.js ->changePageinOverview AddWizardMap gibt es nicht !!!!!!!!!!!!!!!!!!!!111");}
																else {
																			console.log("...ext.js ->changePageinOverview AddWizardMap gibt es. -- iOrId: " + iOrId); 
																			var entity = AddWizardMap.placesGoogle[iOrId];
																			ef_id_AddWizard = iOrId;
																			if (entity) {
																						entity.type = 'GOOGLE';
																						console.log("ext.js changePageinOverview Place gefunden...");
																						console.log("..type: " + entity.type);
																						console.log("..id: " + entity.id);
																						console.log("..name: " + entity.name);
																						console.log("..country: " + entity.country);
																						console.log("..city: " + entity.city);
																						console.log("..street: " + entity.street);
																						console.log("..region: " + entity.region);
																						console.log("..tel: " + entity.phoneNumbers);		
																						AddWizardMap.tempPlace = entity;
																			}		
																}
									}
									if(cLog){console.log("ext.js changePageinOverlay ...weiter unten ...");}
									if(!entity ){
													console.log("ext.js changePageinOverview entity nicht gefunden.Muss daher erstellt werden zum anlegen des Nirvana-Earthfave ! ");
													//AddWizardGoogle = new GoogleProvider("overlayMap");
													//AddWizardMap = new MapProvider(AddWizardGoogle.map, AddWizardGoogle.domElement);
													//Application.register(AddWizardMap);
													//2011.02.01 Daniel ab hier versuche ich den anlegeprocess zu starten, wenn jemand mit nirvana Marker einen Ef anlegen will
													if(global.NIRVANA_CREATE_EF_JUMP_P3_IN_ADW){
																console.log("...ext.js changePageinOverlay NIRVANA_CREATE_EF_JUMP_P3_IN_ADW ist true..");
																AddWizardGoogle = new GoogleProvider("overlayMap");
																if(cLog){console.log("...ext.js changePageinOverlay pos A1");}
																AddWizardMap = new MapProvider(AddWizardGoogle.map, AddWizardGoogle.domElement);
																if(cLog){console.log("...ext.js changePageinOverlay pos A2");}
																Application.register(AddWizardMap);
																console.log("ext.js changePageinOverlay erzeuge adWMap");
																var id = iOrId;
																global.addWizardArrayResult = new Array();
																var place = new Place(id,lat,lng,global.YOUR_MARKER,"","","","","","");
																//AddWizardMap.placesGoogle.push(place); warum in dieses Array pushen ??
																AddWizardMap.tempPlace = place; //AddWizardMap.placesGoogle[id]; // was soll dieses tempPlace -> mir nicht klar :(
																AddWizardMap.tempPlace.type="MARKER"; // 2011.02.01 test
																entity = AddWizardMap.tempPlace; // beim nirvana ist es discovern und nicht booken. Daher den tempPLace nutzen
																//AddWizardMap.tempEarthfave = entity;  // ich denke nur beim booken
																if(cLog){
																			console.log("ext.js changePageinOverview Place von hand...");
																			console.log("..id: " + entity.id);
																			console.log("..name: " + entity.name);
																			console.log("..country: " + entity.country);
																			console.log("..city: " + entity.city);
																			console.log("..street: " + entity.street);
																			console.log("..region: " + entity.region);
																			console.log("..tel: " + entity.phoneNumbers);		
																			console.log("ext.js changePageinOverlay erzeuge adWMap fertig");
																}
													}
									} else {		if(cLog){console.log("ext.js changePageinOverlay ...es gibt eine entity ...");	} }
								
									if(getDiv("addNewEarthfave-pop-up")){
												console.log("...ext.js changePageinOverlay fuelle adW");
												var strDiv;
												var headL = getDiv("headline");
												var headLString = '<h1 style="color:#F05A22;">  Discover this earthfave ';
												if(entity.city.length>0)   { headLString += 'in ' + entity.city; }
												if(entity.country.length>0){ headLString += ' in ' + entity.country; }
												headLString += '</h1>';
												headL.innerHTML = headLString;
												
												if(entity){console.log("ext.js changePageinOverlay entity existiert gut. Name: " + entity.name);} else { console.log("ext.js changePageinOverlay entity existiert NICHT! "); }
																							 
												if(entity.name == global.YOUR_MARKER){
													strDiv = global.NAME + '<br/> <input onClick="addWizClick(this);"';
													strDiv+= ' type="text" size="41" maxlength="100" id="name" value="'+ global.GIVE_A_NAME +'" />';
													getDiv("showName").innerHTML = strDiv;
												}
												else{
													getDiv("showName").innerHTML = global.NAME + '<br/> <input type="text" size="41" maxlength="100" id="name" value="' + entity.name + '" />';
												}
												
												if(global.ADDWIZARD_EXTENDET){//vorbelegen city feld 
														if(entity.city != ''){  	hideDiv('addW_ext_divCity'); }
														if(entity.country != ''){	hideDiv('addW_ext_divCountry'); }
														console.log('extendet adW country : ' + entity.country);
												}
												
												if(cLog){console.log("ext.js changePageinOverlay fuelle adW Pos 2");}
												if(entity.street!= ""){
													getDiv("showName").onmouseover = function(){myTip(entity.street);}
													getDiv("showName").onmouseout = function(){UnTip();}
												}
												if(cLog){console.log("ext.js changePageinOverlay fuelle adW Pos 3");}
												//document.getElementById("discovererName").innerHTML = "";
												//document.getElementById("showDiscovererName").innerHTML = "";
												//document.getElementById("showTag").innerHTML = global.TAG + ' <br/> <input type="text" id="tag1" size="9" maxlength="20" /> <input type="text" id="tag2" size="9" maxlength="20" /> <input type="text" id="tag3" size="9" maxlength="20" /> <input type="text" id="tag4" size="9" maxlength="20" /> ';
												//daniel 2010 02 04 
												var whyText = Languages.DEFAULT_WHY_I_LIKE_IT;
												var whyFeld = '<br/><textarea onClick="changeTextareaPretext';
												whyFeld+=' (\'whyilikeit\',\'' + whyText + '\');" id="whyilikeit" rows="1" cols="38" class="input">' + whyText + '</textarea>';
												
												if(cLog){console.log("ext.js changePageinOverlay fuelle adW Pos 4");}
												
												var impText = Languages.DEFAULT_IMPROVEMENTS;
												var impFeld = '<br/> <textarea onClick="changeTextareaPretext';
												impFeld +=    '(\'whatcouldbeimproved\',\'' + impText + '\');" id="whatcouldbeimproved" rows="1" cols="38" class="input">' + impText + '</textarea> ';
											
												if(cLog){console.log("ext.js changePageinOverlay fuelle adW Pos 5");}
												getDiv("showDescription").innerHTML = global.WHAT_IT_IS + '<br/><textarea id="whatitis" rows="2" cols="38" class="input"></textarea>';
												getDiv("showWhyILikeIt").innerHTML = global.WHY_I_LIKE_IT + whyFeld;
												getDiv("showWhatCouldBeImproved").innerHTML = global.WHAT_COULD_BE_IMPROVED + impFeld;
												//document.getElementById("showCategory1").style.display = 'table-row'; // 'table-row' ist wie 'block', aber fuer ein <td>
												//document.getElementById("showCategory2").style.display = 'table-row'; // 'table-row' ist wie 'block', aber fuer ein <td>
											//} else { console.log("ext.js -> changePageinOverlay den div addNewEarthfave-pop-up gibt es nicht !"); }
								} else {
											if(cLog){console.log("ext.js changePageinOverlay ..kein addNewEarthfave-pop-up - div gefunden ...");}
								}
					}//place
					if(cLog){console.log("..........................fuege inhalte in adWizard template ein und zeige es an .......");}
					
					var name_city = (trim(entity.name + ' ' + entity.city)).replace("'", "\'");
					var cseLink = global.URL + 'index.php' + '?q='+ name_city + '&cref=http%3A%2F%2Fwww.earthfaves.com%2Fcse%2Fcontextefs6.xml&cof=FORID%3A' + '11' + '&page_id=cse&x=0&y=0#1504'; // 11 ist CSE_QUICKLINK_FORID in PHP
					var links = global.MORE_INFO+' <br/>';
					links += '<img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/earthfaves_icon.jpg"> <a id="link1" name="link1" href="javascript:openSearchWindow(\'' +cseLink + '\');">Information - earthfaves\' Travel Search Engine</a>';
					links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/google_icon.jpg"> <a id="link2" name="link2" href="javascript:openSearchWindow(\'http://images.google.com/images?hl=en&q=' + name_city + '\');">Images - Google</a>';
					links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/flickr_icon.jpg"> <a id="link3" name="link3" href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q=' + name_city + '\');">Images - Flickr</a>';
					links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/flickr_icon.jpg"><a id="link4" name="link4" href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q=' + name_city + '&l=comm\');">Only royality-free images - Flickr</a>';				
					document.getElementById("quickLink").innerHTML = links;	
					
					EfImages = new Images("ef", "upload_formInAddWizard", "earthfaveImagesTable", "vorschau", "info", "imagesListInAddWizard", "add", "image-uploader-i-frame", global.IMG_PATH_NONTEXT+"teaser/progress-blue.gif", "modal-1", "upload", "imageUploadInAddWizard");
					blibblob = new Images("ef", "upload_form", "earthfaveImagesTable", "vorschau", "info", "imagesListInAddWizard", "add", "image-uploader-i-frame", global.IMG_PATH_NONTEXT+"teaser/progress-blue.gif", "modal-1", "upload", "imageUploadInAddWizard");
					if(cLog){console.log("..........................fuege inhalte in adWizard template ein und zeige es an .......");}

		}
}


function changeTextareaPretext(divName,text){
	if(getDiv(divName)){
		var doc = getDiv(divName);
		if(doc.innerHTML == text ) {doc.innerHTML = "";}
	}
}

function showLinksInAddWizard(ef){ //Damit die Links auch für den case Efit in der Funktion changePangeInOverlay angezeigt werden
		console.group("function showLinksInAddWizard");
		console.info("Baue die Inhalte in das adW template");
		var name_city = (trim(ef.name + ' ' + ef.city)).replace("'", "\'");
		var cseLink = global.URL + 'index.php' + '?q='+ name_city + '&cref=http%3A%2F%2Fwww.earthfaves.com%2Fcse%2Fcontextefs6.xml&cof=FORID%3A' + '11' + '&page_id=cse&x=0&y=0#1504'; // 11 ist CSE_QUICKLINK_FORID in PHP
		var links = global.MORE_INFO+' <br/>';
		links += '<img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/earthfaves_icon.jpg"> <a id="link1" name="link1" href="javascript:openSearchWindow(\'' +cseLink + '\');">Information - earthfaves\' Travel Search Engine</a>';
		links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/google_icon.jpg"> <a id="link2" name="link2" href="javascript:openSearchWindow(\'http://images.google.com/images?hl=en&q=' + name_city + '\');">Images - Google</a>';
		links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/flickr_icon.jpg"> <a id="link3" name="link3" href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q=' + name_city + '\');">Images - Flickr</a>';
		links += '&nbsp;&nbsp;&nbsp; <img src="' + global.URL + 'img_sort/img-nontext/' + 'icons/flickr_icon.jpg"><a id="link4" name="link4" href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q=' + name_city + '&l=comm\');">Only royality-free images - Flickr</a>';				
		document.getElementById("quickLink").innerHTML = links;
		
		EfImages = new Images("ef", "upload_formInAddWizard", "earthfaveImagesTable", "vorschau", "info", "imagesListInAddWizard", "add", "image-uploader-i-frame", global.IMG_PATH_NONTEXT+"teaser/progress-blue.gif", "modal-1", "upload", "imageUploadInAddWizard");
		blibblob = new Images("ef", "upload_form", "earthfaveImagesTable", "vorschau", "info", "imagesListInAddWizard", "add", "image-uploader-i-frame", global.IMG_PATH_NONTEXT+"teaser/progress-blue.gif", "modal-1", "upload", "imageUploadInAddWizard");
		console.groupEnd();
}

function showBookmarkScreen(obj){
	console.group("ext.js showBookmarkScreen name");
	console.info("bookmark layout erzeugen");
	console.log("ext.js showBookmarkScreen name: " + obj.name + " over: " + obj.overview + " id: " + obj.id);
	if(obj.name.length > "50"){
		var efName = obj.name.substring(0, 50);
		efName += "...";
	}
	else{
		var efName = obj.name;
	}
	var shortEn = efName;
	if(shortEn.length>25){shortEn = shortEn.substr(0,25) + '...'; }
	document.getElementById("headline").innerHTML = '<h1 style="color:#F05A22;"> Add \'' + shortEn + '\' to your earthfaves </h1>';
	document.getElementById("showName").onmouseover = function(){myTip(obj.name);}
	document.getElementById("showName").onmouseout = function(){UnTip();}
	document.getElementById("showName").innerHTML = global.NAME + '<br/> <span id="name" style="color:#B0A9A7;">' + efName + '</span>';
	document.getElementById("showDescription").innerHTML = global.WHAT_IT_IS + '<br/> <textarea id="whatitis" rows="1" cols="38" class="input">' + obj.overview + '</textarea> ';
	//alter code markus aber das what it is soll editierbar sein WIKI
	//	+ ' <br/> <span id="whatitis" style="width:360px; color:#B0A9A7;">'
	//	+ obj.overview + '</span>';
	//document.getElementById("discovererName").innerHTML = global.DISCOVERER_NAME;
	//document.getElementById("showDiscovererName").innerHTML = '<span id="discovererName" style="color:#B0A9A7;">' + obj.discovererName + '</span>';
	//document.getElementById("showTag").innerHTML = global.TAG + ' <br/> <input type="text" id="tag1" size="9" maxlength="20" /> <input type="text" id="tag2" size="9" maxlength="20" /> <input type="text" id="tag3" size="9" maxlength="20" /> <input type="text" id="tag4" size="9" maxlength="20" /> ';
	//daniel 20100803
	var whyText = Languages.DEFAULT_WHY_I_LIKE_IT;
	var whyFeld = '<br/><textarea onClick="changeTextareaPretext(\'whyilikeit\',\'' + whyText + '\');" id="whyilikeit" rows="1" cols="38" class="input">' + whyText + '</textarea>';
	
	var impText = Languages.DEFAULT_IMPROVEMENTS;
	var impFeld = '<br/> <textarea onClick="changeTextareaPretext(\'whatcouldbeimproved\',\'' + impText + '\');" id="whatcouldbeimproved" rows="1" cols="38" class="input">' + impText + '</textarea> ';
			
	
	document.getElementById("showWhyILikeIt").innerHTML = global.WHY_I_LIKE_IT +  whyFeld;
	document.getElementById("showWhatCouldBeImproved").innerHTML = global.WHAT_COULD_BE_IMPROVED + impFeld;
	//document.getElementById("showCategory1").style.display = 'none';
	//document.getElementById("showCategory2").style.display = 'none';
	
	console.groupEnd();
}



function placeResultListOverlay(id, lat, lng, description, street, city, country, i, fcode){
	var result = '<tr style="height:50px; background-color: white;">';
	if(id=="no") // ist ein Marker
		result += '<td style="width:13%;" align="center"> <img src="img_sort/img-nontext/icons/markerToDisEf.jpg" alt="Place" /> </td>';
	else  // ist ein Place
	result += '<td style="width:13%;" align="center"> <img src="img_sort/img-nontext/icons/placeToDisEf.jpg" alt="Place" /> </td>';
	result += '<td style="width:12%;" align="center"> &nbsp; </td>';
	result += '<td style="width:52%;"> <h1 style="color:#6DC067;">' + description + '</h1>';
	result += '<span style="font-size:10px; color:#B0A9A7"> ' + country + ' > ' + city + ' > ' + street + ' &nbsp;</span> </td>';
	result += '<td style="width:23%;" align="center"> <img src="img_sort/img-text/en/buttons/addef.jpg" alt="Be the Discoverer" onmouseover="this.style.cursor=\'pointer\'; myTip(\'Be the Discoverer\');" onmouseout="this.style.cursor=\'auto\'; UnTip();" onClick="changePageinOverlay(1, 3,\'Index\', '+i+', \'no\',\'no\');" /> </td>';		
	result += '</tr><tr style="display:block; height:2px;"> </tr>';
	
	return result;
}
// fin rick


function markDiv(id){
	//alert("id " + id);
	//daniel
	//markiert den ef in der result liste der geklickt wurde
	return; // last_clicked ist unbekannt
	if(last_clicked_ef != 0) {
			if(last_clicked_ef > 0){
				if(document.getElementById('divRS_' + last_clicked_ef)){
					doc1 = document.getElementById('divRS_' + last_clicked_ef);
					doc1.className = 'result-status';
					doc2 = document.getElementById('trRLE_' + last_clicked_ef);
					doc2.className = 'result-list-entry';
				}
			}
			else{
				if(document.getElementById('divPRS_' + last_clicked_ef)){
					doc1 = document.getElementById('divPRS_' + last_clicked_ef);
					doc1.className = 'result-status';
					doc2 = document.getElementById('trPRLE_' + last_clicked_ef);
					doc2.className = 'result-list-entry';
				}
			}
		}
	if(id > 0){
		last_clicked_ef = id;
		if(document.getElementById('divRS_' + id)){document.getElementById('divRS_' + id).className = 'result-status map-selected';}
		if(document.getElementById('trRLE_' + id)){document.getElementById('trRLE_' + id).className = 'result-list-entry map-selected';}
	}
	else if (id < 0){
		last_clicked_ef = id;
		if(document.getElementById('divPRS_' + id)){document.getElementById('divPRS_' + id).className = 'result-status map-selected';}
		if(document.getElementById('trPRLE_' + id)){document.getElementById('trPRLE_' + id).className = 'result-list-entry map-selected';}
	}
	else{
		if(document.getElementById('divRS_' + last_clicked_ef)){
				doc1 = document.getElementById('divRS_' + last_clicked_ef);
				doc1.className = 'result-status';
				doc2 = document.getElementById('trRLE_' + last_clicked_ef);
				doc2.className = 'result-list-entry';
			}
		if(document.getElementById('divPRS_' + last_clicked_ef)){
				doc1 = document.getElementById('divPRS_' + last_clicked_ef);
				doc1.className = 'result-status';
				doc2 = document.getElementById('trPRLE_' + last_clicked_ef);
				doc2.className = 'result-list-entry';
			}
	}
}

function showMapExtern(){
	var map = document.getElementById("divMap");
	var list =  document.getElementById("resultList");
	var btnM =  document.getElementById("showMapLink");
	var btnL =  document.getElementById("showListLink");
	map.style.display = "block";
	list.style.display = "none";
	btnL.style.display = "block";
	btnM.style.display = "none";
}

function showListExtern(){
	var map = document.getElementById("divMap");
	var list =  document.getElementById("resultList");
	var btnM =  document.getElementById("showMapLink");
	var btnL =  document.getElementById("showListLink");
	map.style.display = "none";
	list.style.display = "block";
	btnL.style.display = "none";
	btnM.style.display = "block";
}

function findPosX(obj){
  if (! obj) return;
  var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}


function findPosY(obj){
  if (! obj) return;
  var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function showFilter(){
		var filterButton = document.getElementById("filter-button");
		var x = findPosX(filterButton);
		var y =  findPosY(filterButton);
		var mapOver = document.getElementById("map-overlay");
		mapOver.style.display = "block";
		
		if(document.getElementById("divMap").style.display == "block"){
			mapOver.style.top = y - mapOver.offsetHeight + "px";
			//mapOver.style.left =  x + "px";
			mapOver.style.left =  100 + "px";
			//mapOver.style.position = 'relative';
		}
		else {
			mapOver.style.top = filterButton.offsetHeight +  y +  "px" ; //mapOver.offsetHeight + "px";
			mapOver.style.left =  x + "px";
			//cont = document.getElementById("toolbarContainer");
			//cont.style.height = "300px";
			//mapOver.style.top = y - mapOver.offsetHeight + "px";
			//mapOver.style.left =  0 + "px";
			//mapOver.style.position = 'relative';
		}		
}


function closeFilter(){
	if(document.getElementById("map-overlay")){	document.getElementById("map-overlay").style.display = "none";}
}

function showSubNav(){
	var mainNavDiv = document.getElementById("main-nav");
	var navPoints = mainNavDiv.getElementsByTagName("li");
	var selectedNavPoint = null;
	for( var i=0; i<navPoints.length; i++) {
		var navPoint = navPoints[i];
		if (navPoint.className == "selected")
			selectedNavPoint = navPoint;
	}
	var x = findPosX(selectedNavPoint);
	var y =  findPosY(selectedNavPoint);
	var menu = document.getElementById("sub-nav");
	menu.style.position = "absolute";
	menu.style.top = 29+y + "px";
	menu.style.left =  x + "px";
	menu.style.display = "block";
}

function showSpacer(){
	var mainNavDiv = document.getElementById("main-nav");
	var navPoints = mainNavDiv.getElementsByTagName("li");
	var selectedNavPoint = null;
	for( var i=0; i<navPoints.length; i++) {
		var navPoint = navPoints[i];
		if (navPoint.className == "selected")
			selectedNavPoint = navPoint;
	}
	var x = findPosX(selectedNavPoint);
	var y =  findPosY(selectedNavPoint);
	var spacer = document.getElementById("sub-nav-spacer");
	spacer.style.position = "absolute";
	spacer.style.top = 29+y + "px";
	spacer.style.width =  x + "px";
}

function unselectTabs(string){
	var  array = string.split(',');
	for ( a = 0; a <array.length; a++){
		//alert("raider " + array[a]);
		doc = document.getElementById(array[a]);
		if(doc){doc.className = "";}
	}
}

function switchTabs(){
  var tabDiv = document.getElementById("tabs-1");
  var tabPoints = tabDiv.getElementsByTagName("a");
  for (var i=0; i<tabPoints.length; i++) {
    if (tabPoints[i].className == "selected") {
		  tabPoints[i].className = "x";
    	break;
    }
  }

  var tabPanes = document.getElementsByClassName("tab-pane");
  for (var i=0; i<tabPanes.length; i++) {
    if (tabPanes[i].style.display != "none") {
		  tabPanes[i].style.display = "none";
    }
  }
}

//function getElementsByClassName(cl)
document.getElementsByClassName = function(cl){
  var retnode = [];
  var myclass = new RegExp('\\b'+cl+'\\b');
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++)  { 
	var classes = elem[i].className;
    if (myclass.test(classes)) retnode.push(elem[i]);
  }
  return retnode;
}


function addNode(id, name, table, prefix, clearFunction, clearButton){
  // Erzeuge neuen TR-Knoten mit Attribut id
  var newTR = document.createElement("tr");
  var attribute = document.createAttribute("id");
  attribute.nodeValue = prefix + table + id;
  newTR.setAttributeNode(attribute);

  // Erzeuge neuen TD-Knoten mit der Kategorien-Bezeichnung und haenge ihn unter den TR-Knoten
  var newTD = document.createElement("td");
  // Non-breaking Space in JS erzeugen mit: String.fromCharCode(160)
  var newTDText = document.createTextNode(name);
  newTD.appendChild(newTDText);
  newTR.appendChild(newTD);

  // Erzeuge neuen TD-Knoten mit untergeordnetem IMG-Knoten fuer das "Loeschen"-Symbol und haenge ihn unter den TR-Knoten
  var newTD = document.createElement("td");
  var newIMG = document.createElement("img");
  // Hinweis: Die auskommentierte Variante funktioniert nicht im IE
  newIMG.onclick = clearFunction;
  newIMG.setAttribute("src", global.URL+"img_sort/img-nontext/buttons_new2/" + clearButton);
  newTD.appendChild(newIMG);
  newTR.appendChild(newTD);

  // Fuege den neuen TR-Knoten in die Tabelle ein
  // Wichtig: das TR muï¿½ in TBODY eingehaengt werden, damit's im IE funktioniert (was ja auch korrekt ist)
	// alert (">>>" + prefix + table);
	document.getElementById(prefix + table).getElementsByTagName("tbody")[0].appendChild(newTR);
}

//	Fuegt einem Element, bei dem der Benutzer ueber eine Selectbox mehrere Eintraege auswaehlen kann,
//	eine neue Auswahl hinzu; zum Beispiel die Laender-Auswahl im EditProfile.

function selectListAdd(select_id, table, idList, clearButton, dialogPrefix){
	var select = document.getElementById(dialogPrefix + select_id);
	 // Vermerke die neue Eigenschaft im hidden input fuer die Property-ID's
  var id = select.value;
  
  if (id == -1) {  	return;  }
  
  // NEU NEU 07.09.2009 RICK
  var IDs = document.getElementById(dialogPrefix + idList).value.split("|");
  for( var i=0 ; i<IDs.length ; i++ )
	if( IDs[i] == id )
		return;
  

  document.getElementById(dialogPrefix + idList).value += '|' + id;
	// Die Eigenschaft als String
	var name = html_entity_decode(select.options[select.selectedIndex].innerHTML);
	// Die Funktion zum Loeschen des Eintrags
	var f = function(){selectListRemove(id, idList, table, dialogPrefix)};

	addNode(id, name, table, dialogPrefix, f, clearButton);
}



 //  Gegenstueck zu selectListAdd()
 //	Entfernt aus einem Element, bei dem der Benutzer ueber eine Selectbox mehrere Eintraege auswaehlen kann,
 //	eine Auswahl; zum Beispiel die Laender-Auswahl im EditProfile.

function selectListRemove(id, idList, table, dialogPrefix){
  // Entferne die ID der Kategorie aus der Liste der ausgewaehlten Kategorien
  var exp = new RegExp('\\|' + id);
  var v = document.getElementById(dialogPrefix + idList).value.replace(exp, '');
  document.getElementById(dialogPrefix + idList).value = v;

  // Der Knoten, der geloescht werden soll
  var removeTR = document.getElementById(dialogPrefix + table + id);
  removeTR.parentNode.removeChild(removeTR);
  
	// rick
	if( document.getElementById('addTopicInAddWizard') ) {
		global.numberOfCategory--;
		document.getElementById('addTopicInAddWizard').style.display = "table-cell";
	}
  
  return false;
}


function addProperty(table, idList, clearButton, dialogPrefix){
	var select = document.getElementById(dialogPrefix + 'property');
	 // Vermerke die neue Eigenschaft im hidden input fuer die Property-ID's
  var id = select.value;
   if (id == -1) return;
  if (document.getElementById(dialogPrefix + idList).value.indexOf("|" + id) >= 0) return;

  document.getElementById(dialogPrefix + idList).value += '|' + id;
	var name = html_entity_decode(select.options[select.selectedIndex].innerHTML);
	var f = function(){selectListRemove(id, idList, table, dialogPrefix)};
	
	addNode(id, name, table, dialogPrefix, f, clearButton);
  
  return false;
}

// Dies ist der spezielle Fall mit mehr als einer Select-Box
function addCategory(table, idList, clearButton, dialogPrefix)
{
	var select1 = document.getElementById(dialogPrefix + 'mainTopic');
	var select2 = document.getElementById(dialogPrefix + 'subTopic');
	var select3 = document.getElementById(dialogPrefix + 'subSubTopic');
	
	// The ID of the category to add
	var id = select3.value;
	if (id == -1)
	{
		// Keine Kategorie der Ebene 3 vergeben
		// Also muessen wir stattdessen die ID der zweiten Ebene betrachten
		var id = select2.value;
		var cat1 = select1.options[select1.selectedIndex].innerHTML;
		var cat2 = select2.options[select2.selectedIndex].innerHTML;
		var name = cat1 + String.fromCharCode(160) + ' > ' + String.fromCharCode(160) + cat2;
	}	
	else {
		var cat1 = select1.options[select1.selectedIndex].innerHTML;
		var cat2 = select2.options[select2.selectedIndex].innerHTML;
		var cat3 = select3.options[select3.selectedIndex].innerHTML;
		var name = cat1 + String.fromCharCode(160) + ' > ' + String.fromCharCode(160) + cat2 + ' > ' + String.fromCharCode(160) + cat3;
	}
  
	// NEU 06-05-08 (Markus): Falls die Kategorie (mit der ID id) schon eingetragen ist, verlassen wir die Funktion sofort
	if (document.getElementById(dialogPrefix + idList).value.indexOf("|" + id) >= 0) {
		//alert(id + "  " + document.getElementById(dialogPrefix + idList).value);
		return;
	}
	// Die Kategorie ist also neu, tragen wir sie als neue Zeile ein
	//
	// HTML entities ersetzen
	name = html_entity_decode(name);

	// Vermerke die neue Kategorie im hidden input fuer die Kategorie-ID's
	document.getElementById(dialogPrefix + idList).value += '|' + id;

	// Die Funktion zum Loeschen des Eintrags
	var f = function(){selectListRemove(id, idList, table, dialogPrefix)};

	addNode(id, name, table, dialogPrefix, f, clearButton);

	// rick
	global.numberOfCategory++;
	if(global.numberOfCategory==5)
		document.getElementById('addTopicInAddWizard').style.display = "none";
	return false;
}




//  Schaltet bei den Wizards im Upload-Schritt die Bild-Auswahl zwischen Angabe einer URL oder dem Datei-Upload um
  
function toggleInputType(wizard, id){
  switch (wizard) {
    case 'add':prefix = addWizardIdPrefix;break;
    case 'bookmark':prefix = bookmarkWizardIdPrefix;break;
    case 'editProfile':prefix = editProfileWizardIdPrefix;break;
  }
  // TODO Das umsetzen des Typs klappt bei IE nicht (seztzt nur DOM Level 1 um
  if (document.getElementById(prefix + 'uploadType-' + id).value == '1') {    document.getElementById(prefix + 'upload-' + id).setAttribute('type', "file");  }
  else {    document.getElementById(prefix + 'upload-' + id).setAttribute('type', "text");  }
}

// Die Suchbox oben zuruecksetzen
function resetSearch(){
  var select = document.getElementById("search-type");
  var field1 = document.getElementById("category-field");
  var field2 = document.getElementById("state-field");
  if (select) {    select.options.selectedIndex = 0;  }
  if (field1) {    field1.value = (get.page_id == "earthfaves" ? global.SEARCH1_DEFAULT : global.SEARCH1_PEOPLE);  }
  if (field2) {    field2.value = (get.page_id == "earthfaves" ? global.SEARCH2_DEFAULT : global.SEARCH2_PEOPLE);  }
}

function inLocationArray(suche){
	 //info("anzahl inseln " + mapZoomer.length );	 
	for (var a = 0 ; a < mapZoomer.length; a++ ){
			//info("inLocationArray vergleiche a:" + a + ":" + suche + " und " + mapZoomer[a][0]);
			if (suche.toLowerCase() == mapZoomer[a][0].toLowerCase()) {return mapZoomer[a][1];}
	 }
	return false; 
}


function getPointCallbackV3(results, status) { 
		console.log(".......getPointCallbackV3 ...........");	
		 if (status == google.maps.GeocoderStatus.OK) {
         var zoom = 13;
				 console.log("ext.js->getPointCallbackV3 ----- search 2 " + global.search2);
				 if(global.search2 != global.SEARCH1_DEFAULT){
					 var x = inLocationArray(global.search2); //ich suche nach manual fest zugeordneten zoomlevels. zb fuer inseln
					 if( x ) {zoom = x;}											 
				 }
				console.log(".......getPointCallbackV3 zoom ist " + zoom);	
				var xRand = Math.random();
				var yRand = Math.random();
				//var lat = results[0].geometry.location.lat() + (yRand/100);
				//var lng = results[0].geometry.location.lng() + (xRand/100);
				//var center =  new google.maps.LatLng(lat,lng);
				var center = results[0].geometry.location;	
				Map.zoomlevelMerker = zoom ;
				Map.setCenter(center,zoom);
				console.log(".......getPointCallbackV3 ende");	
		 } else {		  console.log("ext.js->getPointCallbackV3 ----- google.maps.GeocoderStatus nicht OK"); }
			 
		 /*
		
		
		if (status == 'OK' && results.length > 0) {
      Map.realMap.fitBounds(results[0].geometry.viewport);
				console.log(".......getPointCallbackV3 ...........");	
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
		*/
 }
 
 
function getPointCallback(point){
  // mit getPoint wird eine Google anfrage gemacht nach einer location.
	// hier wird dann die Karte auf diesen punkt zentriert und gezoomt. Dadurch entsteht ein move-event fuer die map
	// und in der ext wird die mapMove funktion ausgefuehrt
	var mapi = Application.getActiveMap();
	var zoom = global.ZOOMLEVEL_CENTER_ON_MAP;
	var x = inLocationArray(global.search2); //ich suche nach manual fest zugeordneten zoomlevels. zb fuer inseln
	if( x ) {zoom = x;}											 
	console.log(".......getPointCallback ..... " + global.search2 + " defaultzoom:13 set zoom to " + zoom + " .......");	
	
	if(mapi.fixZoom){	
		zoom = mapi.fixZoom;
		mapi.fixZoom = null;
	}

	var name = getDiv("category-field").value ;
	mapi.zoomlevelMerker = zoom ;
	mapi.setCenter(point,zoom);

	if( global.RESULTLIST_CLEAR_ENABLE ) {
		if (resultList = getDiv("result-list")) {	
			resultList.style.opacity = "0.2";	
		}
	}
	// ???? Fuer die Infobox alle earthfaves zaehlen
	//var bounds = Map.getBounds();

}


 // Das Pendant von 'getPointCallback' fï¿½r den AddWizard
 // @param point
 /*
function addWizardGetPointCallback(point)
{
	console.log("ext.js addWizardGetPointCallback. AddWizard hat Koordinate gefunden: " + point, 3, "googleProvider");
	AddWizardMap.setCenter(point, 13);

	// Trefferliste leeren
	//document.getElementById("result-list-overlay").innerHTML = "";
	
	// Fuer die Infobox alle earthfaves zaehlen
	var bounds = AddWizardMap.getBounds();
	var lat1 = bounds.getSouthWest().lat();
	var lng1 = bounds.getSouthWest().lng();
	var lat2 = bounds.getNorthEast().lat();
	var lng2 = bounds.getNorthEast().lng();
	
	var ignoreSearch1 = false; // beruecksichtige die Eingabe in feld 1
	var ignoreSearch2 = false; // beruecksichtige die Eingabe in feld 1
	var ignoreMove = false;
	var quadrantsearch = true;
	
	console.log("ext.js addWizardGetPointCallback  suche1 " + global.search1 + " suche 2 "+  global.search2);
	info ("ext.js addWizardGetPointCallback  suche1 " + global.search1 + " suche 2 "+  global.search2);
		//EarthfavesProvider.prototype.lookup = function(name, address, lat1, lng1, lat2, lng2, filter, from, max, mapId, listId, autoZoom, ignoreMove,ignoreSearch1,ignoreSearch2, quadrantsearch, callback, callbackOnError, callbackOnTimeout)
	AddWizardMap.search1 = global.search1;
	AddWizardMap.search2 = global.search2;
	AddWizardMap.searchLat1 = lat1;
	AddWizardMap.searchLat2 = lat2;
	AddWizardMap.searchLng1 = lng1;
	AddWizardMap.searchLng2 = lng2;
	//info(AddWizardMap.searchLat1+' '+AddWizardMap.searchLat2+' '+AddWizardMap.searchLng1+' '+AddWizardMap.searchLng2);
	AddWizardMap.searchFilter = "";
	AddWizardMap.searchFrom = 0;
	AddWizardMap.searchMax = 0;
	AddWizardMap.searchListId = "result-list-overlay";
	AddWizardMap.searchAutoZoom = false;
	AddWizardMap.searchZoom = 0;
	AddWizardMap.searchIgnoreSearch1 = false;
	AddWizardMap.searchIgnoreSearch2 = false;
	AddWizardMap.searchQuadrantSearch = true;
	
	Earthfaves.lookup(AddWizardMap,addWizardEarthfavesLookupCallback);
		
	// Starte die earthfaves-Suche im AdW alter code:
	// Earthfaves.lookup('',global.search1, global.search2, lat1, lng1, lat2, lng2, "", 0, 0,
	//		AddWizardMap.id, "result-list-overlay", false, 0,0, ignoreMove, ignoreSearch1, ignoreSearch2, quadrantsearch, addWizardEarthfavesLookupCallback);


	// Wir muessen uns hier merken, dass die Google-Suche fï¿½r den AddWizard ist, da es keine Moeglichkeit gibt,
	// diese Info der Google-Suche mitzugeben
	Application.setActiveMap(AddWizardMap);
	Application.setActiveList("result-list-overlay");
	
	// Starte lokale Google-Suche ("stateField" ist das Feld im AddWizard "Where is it?")
	var categoryField  = document.getElementById("categoryField").value; // zb hotel
	if (categoryField == global.SEARCH1_DEFAULT || categoryField == global.SEARCH1_PEOPLE ) categoryField = "";
	lookupGoogle(categoryField, AddWizardMap,false); // false = create objekts
}
*/

function lookupGoogle(name, par_map){
	//countOnly = true = only count the results
	console.log("lookupGoogle time: "+ getNow());
	point = par_map.getCenter();
  var searchString = name;
	if( point ){
		console.log("point = ", point);
		if(name == "") { searchString = global.search2; }
		Google.search(point, searchString, googleCallback); 
	}
	else {
		var x = Application.getActiveMap();
		Google.getPoint("saarbrÃ¼cken", addWizardGetPointCallback);
	}
	console.groupEnd();
}

//Daneil ignoreMove habe ich dazugemacht, da ich, wenn ich von der earthfaves.inc.php
//die lookupForMyEarthfaves aufrufe DENOCH danach ein mapMove ereigniss haben will
/*
function lookupForMyEarthfaves(filter,ignoreMove){
	info ("lookup for my earthfaves, filter: " + filter);
	Map.showMapLoaderAnimation(); // daniel : to show th loader animation
	if( global.RESULTLIST_CLEAR_ENABLE ) {
		// Trefferliste leeren
		var resultList = document.getElementById("result-list");
		if (resultList) {		document.getElementById("result-list").innerHTML = "";}
	}
	Map.placesGoogle = new Array();

	// Starte die earthfaves-Suche
	Map.ignoreNextMove = true;
	if( ignoreMove ){Map.ignoreMove = true;}// dont load enviroment-efs }
	else {Map.ignoreMove = false;}
	
	Earthfaves.lookup('', '', '', '', '', '', filter, 1, global.paginationStep, Map.id, "result-list", true, earthfavesLookupCallback);
}
*/

//Daniel 2009 07 09 umstellung fuer das loeschen der lookupForMyEarthfave
// filter = enthaelt daten welche efs angezeigt werden sollen. zb nur meine discoverten. STRING
// from ist fuer die pagination. INT
// maximum ist fuer die pagination. INT
// ignoreMove legt fest, ob zur Zeit ein mapMov Event bearbeitet wird. BOOLWERT
// quadrantSearch gibt an, ob eine quadrantsuche gemacht wird , also nur in diesen koordinaten gesucht werden soll. BOOLWERT
// autozoom==true bedaudet berechnet selber die Zoomstufe
		
function lookupEarthfaves(filter, from, maximum, ignoreMove, ignoreSearch1, ignoreSearch2, quadrantsearch, autozoom){
	showDiv('mapLoader'); var cLog= true;
	
	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js TIME::::::::" + zeitJetzt() + "::::::::::::::::");}
  if(typeof(myEarthfavesLeftMenu) !='undefined'){	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  myEarthfavesLeftMenu " + myEarthfavesLeftMenu);	}}

	var bounds;var lat1 = '';var lng1 = '' ;var lat2 = '' ;var lng2 = '';
	Map.showMapLoaderAnimation(); 
	Map.tempMarker = null;
	Map.overlaysCleared = false; // daniel 2010 09 15 kann sein, dass das hier falsch ist 
	Map.searchRedundanceData = 0; // es sollen zb alle friends-efs gezeigt werden und meine rausgerechnet werden !!!
	var doc = false;
	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 1");	}
	if(getDiv('result-info-container')){doc = getDiv('result-info-container'); }
	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 1.0");	}
	if(filter != ""){
		if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 1.1");	}
		if (doc){
			if(Map.trustLevelClick == "none"){ //daniel 2011.01.16 vorher if(!Map.trustLevelClick)...
					//daniel 2010.08.19 variable init in der earthfave.inc.php dort erstmal true
					if(cLog){console.log("ext.js lookupEarthfaves filter not empty...setze auch searchRedundanceData auf 1 weil ich ueber myaerthfaves Browse");}
					Map.searchRedundanceData = 1; // wenn jemand links im Menu zb "friends" klickt, sollen alle friends-efs gezeigt werden und meine NICHT rausgerechnet werden !!!
					if(myEarthfavesLeftMenu){doc.style.display = "none";}	
					if(cLog){console.log("lookupEarthfaves make result-info-container unvisible and set the resulttext");}
					var spF = filter.split(':');
					var txt = "";
					if(cLog){console.log("lext.js -> lookupEarthfaves Filter: " + filter + " after split " + spF[0]);}
					if(spF){
									switch (spF[0]){
										case "DISCOVERED": txt = "Faved first";break;
										case "BOOKMARKED": txt = "Faved";break;
										case "FRIENDS": txt = "Friends";break;
										case "FRIENDS_FRIENDS": txt = "Friends' friends";break;
										case "MINE": txt= "Faved first and faved";break;
										case "FRIENDS_AND_FRIENDS_FRIENDS": txt=" Friends and friends' friends";break;
										case "DISCOVERED_AND_FRIENDS": txt="Faved first and friends";break;
										case "DISCOVERED_AND_FRIENDS_FRIENDS": txt="Faved first and friends' friends";break;
										case "BOOKMARKED_AND_FRIENDS": txt="Faved and friends'";break;
										case "BOOKMARKED_AND_FRIENDS_FRIENDS": txt="Faved and friends' friends";break;
										case "MINE_AND_FRIENDS": txt="Faved first, faved and friends";break;
										case "MINE_AND_FRIENDS_FRIENDS": txt="Faved first, faved and friends' friends";break;
										case "DISCOVERED_AND_FRIENDS_AND_FRIENDS_FRIENDS": txt="Faved first, friends and friends' friends";break;
										case "BOOKMARKED_AND_FRIENDS_AND_FRIENDS_FRIENDS": txt="Faved, friends and friends' friends";break;
										case "DISCOVERED_AND_BOOKMARKED_AND_FRIENDS_AND_FRIENDS_FRIENDS": txt="Faved first, faved, friends and friends' friends"; break;
										case "FOLLOW": txt ="Follow";break;
										case "DISCOVERED_AND_FOLLOW": txt = "Faved first and follow";break;
										case "BOOKMARKED_AND_FOLLOW": txt = "Faved and follow";break;
										case "FRIENDS_AND_FOLLOW": txt = "Friends and follow";break;
										case "FRIENDS_FRIENDS_AND_FOLLOW": txt = "Friends' friends and follow";break;
										case "MINE_AND_FOLLOW": txt= "Faved first, faved and follow";break;
										case "FRIENDS_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt=" Friends, friends' friends and follow";break;
										case "DISCOVERED_AND_FRIENDS_AND_FOLLOW": txt="Faved first, friends and follow";break;
										case "DISCOVERED_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved first, friends' friends and follow";break;
										case "BOOKMARKED_AND_FRIENDS_AND_FOLLOW": txt="Faved, friends and follow'";break;
										case "BOOKMARKED_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved, friends' friends and follow";break;
										case "MINE_AND_FRIENDS_AND_FOLLOW": txt="Faved first, faved, friends and follow";break;
										case "MINE_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved first, faved, friends' friends and follow";break;
										case "DISCOVERED_AND_FRIENDS_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved first, friends, friends' friends and follow";break;
										case "BOOKMARKED_AND_FRIENDS_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved, friends, friends' friends and follow";break;
										case "DISCOVERED_AND_BOOKMARKED_AND_FRIENDS_AND_FRIENDS_FRIENDS_AND_FOLLOW": txt="Faved first, faved, friends, friends' friends and follow"; break;
									}
									if( getDiv('search-field-city') ){ getDiv('search-field-city').innerHTML = txt; }
					} else { if(cLog){console.log( ":: ext.js lookupEarthfaves keine filter beim split ::::::"); }}
			} else {
				 // daniel 2011.01.16 warum wird es wieder auf false gesetzt an dieser Stelle ?
				if(cLog){console.log(":: ext.js lookupEarthfaves trustLevelClick = " + Map.trustLevelClick); }
				//Map.trustLevelClick = false;	
			}
		} else {if(cLog){console.log( ':: ext.js lookupEarthfaves kein result-info-container div ::::::::'); }}
	}else {
		if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 2");	}
		if(typeof(myEarthfavesLeftMenu) !='undefined'){
			if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 2.1");	}
			if(typeof(Map.manualyCreatedPlace)!='undefined' ){
				if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 2.2");	}
				if(!myEarthfavesLeftMenu && !Map.manualyCreatedPlace){
					if(doc){doc.style.display = "block";}
				} // mache TLL sichtbar wenn kein "my ef" und nicht nirvana ef anlegen
			}
		}
		if(cLog){console.log( ':: ext.js lookupEarthfaves filter = "" :::::::: '); }
	}
	
	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  pos 3");	}
	
		
	if( global.RESULTLIST_CLEAR_ENABLE ) {	if (resultList = getDiv("result-list")) {	resultList.style.opacity="0.2";	}}
	// mt-18-01-10
	//Map.places = new Array();
	//Map.clearOverlays();
	Map.clusterCallback  = true;
	
	Map.lastSearchOverall = 0;
	Map.globalCallerOfMapMove = "lookupEarthfaves";
	
	if( ignoreMove ){Map.ignoreMove = true;}// dont load enviroment-efs }
	else {Map.ignoreMove = false;}
	// 12.11.09 ausdokumentiert
	//Map.ignoreNextMove = true; info ("lookupForMyEarthfaves ignoreMove = " + ignoreMove + " filter " + filter);
	
	if ( quadrantsearch == true ) {
		var bounds = Map.getBounds();
		lat1 = bounds.getSouthWest().lat();
		lng1 = bounds.getSouthWest().lng();
		lat2 = bounds.getNorthEast().lat();
		lng2 = bounds.getNorthEast().lng();
		var center = Map.getCenter();
	}

	// das wird wohl nur in der submitSerach gesetzt :(
	var suche1 = global.search1;
	var suche2 = global.search2;
	// daher loese ich das Problem erstmal so:
	if ( typeof(suche1)!='undefined' && typeof(suche2)!='undefined'){
		if( suche1 == "" && suche2 == ""){
			if ( getDiv('category-field') ){
				var field1 = getDiv('category-field').value;
				var field2 = getDiv('state-field').value;
				
				if (field1 == global.SEARCH1_DEFAULT || field1 == global.SEARCH1_PEOPLE ) field1 = "";
				if (field2 == global.SEARCH2_DEFAULT || field2 == global.SEARCH2_PEOPLE ) field2 = "";
				if( field1 != "" || field2 != ""){
					suche1 = field1;suche2 = field2;
				}
			}
		}
	}
	else { suche1 = ""; suche2 = ""; }
	
	if(cLog){console.log(":: ext.js lookupEarthfaves vor suche 1 " + suche1 + " suche 2 " + suche2 );}
	if(cLog){console.log(":: ext.js lookupEarthfaves ignoreSearch1 " + ignoreSearch1 +  " ignoreSearch2 " + ignoreSearch2);}
	//console.log(":: ext.js lookupEarthfaves myEarthfavesLeftMenu " + myEarthfavesLeftMenu); anna : bringt fehler bei page_id=ContentWidget
	if(cLog){console.log(":: ext.js lookupEarthfaves trustLevelClick " + Map.trustLevelClick);}
	if(ignoreSearch1){suche1 = "";}
	if(ignoreSearch2){suche2 = "";}

	//var autozoom = true;
	
	Map.search1 = suche1;
	if(Map.searchCountry != "") {
		Map.search2 = Map.searchCountry;
		Map.searchCountry = "";
	}
	else {Map.search2 = suche2;}	 
		
	Map.searchLat1 = lat1;
	Map.searchLat2 = lat2;
	Map.searchLng1 = lng1;
	Map.searchLng2 = lng2;
	Map.searchFilter = filter;
	Map.searchFrom = from;
	
	if (get.page_id == "extern_map")	{		Map.searchMax = 999999999 ;	}
	else	{		Map.searchMax = global.PAGINATION_STEP_EARTHFAVES;	}
	
	Map.searchListId = "result-list";
	Map.searchAutoZoom = autozoom;
	Map.searchZoom = Map.realMap.getZoom();
	Map.searchIgnoreSearch1 = ignoreSearch1;
	Map.searchIgnoreSearch2 = ignoreSearch2;
	Map.searchQuadrantSearch = quadrantsearch;
	Earthfaves.lookup(Map,earthfavesLookupCallback);
	disableAllMapFilter();
	if(cLog){console.log("ext.js -> lookupEarthfaves ext.js  funktion ende ...mapMove " + Map.ignoreMove);	}
	// die checkbox kategoriefilter alle disablen solange die suche laeuft
}

function getDistToOldBottomLeftOfMap(lt1,lng1,lt2,lng2){
	var katX = Math.abs( lng1 - lng2 );
	var katY = Math.abs( lt1 - lt2 );
	var kats = (katX * katX + katY * katY );
	var hyp;
	if ( kats > 0 ){ 
		hyp = Math.sqrt(kats);
		return hyp.toFixed(6); // auf 3 kommastellen kuerzen
	} else {return 1000;}
}
		
function checkMapMoveInZoomAndDistanz () {
	var bounds = Map.getBounds();
	var lt = bounds.getSouthWest().lat();
	var lng = bounds.getSouthWest().lng();
	var dist = getDistToOldBottomLeftOfMap(lt,lng,Map.bottomLeftLong,Map.bottomLeftLat);
	var zoom = Map.realMap.getZoom();
	if(zoom < 4 && dist < 3  ){Map.ignoreNextMove = true;}
	else if(zoom == 4 &&  dist < 2  ){Map.ignoreNextMove = true;}
	else if(zoom == 5 &&  dist < 1  ){Map.ignoreNextMove = true;}
	else if(zoom == 6 &&  dist < 0.3  ){Map.ignoreNextMove = true;}
	else if(zoom == 7 &&  dist < 0.15  ){Map.ignoreNextMove = true;}
	else if(zoom == 8 &&  dist < 0.05  ){Map.ignoreNextMove = true;}
	else if(zoom == 9 &&  dist < 0.04  ){Map.ignoreNextMove = true;}
	else if(zoom == 10 &&  dist < 0.02  ){Map.ignoreNextMove = true;}
	else if(zoom == 11 &&  dist < 0.01  ){Map.ignoreNextMove = true;}
	else if(zoom == 12 &&  dist < 0.009  ){Map.ignoreNextMove = true;}
	else if(zoom == 13 &&  dist < 0.0025  ){Map.ignoreNextMove = true;}
	else if(zoom == 14 &&  dist < 0.0015  ){Map.ignoreNextMove = true;}
	else if(zoom == 15 &&  dist < 0.0005  ){Map.ignoreNextMove = true;}
	else if(zoom == 16 &&  dist < 0.0002  ){Map.ignoreNextMove = true;}
	else if(zoom == 17 &&  dist < 0.0001  ){Map.ignoreNextMove = true;}
	else if(zoom == 18 &&  dist < 0.00006  ){Map.ignoreNextMove = true;}
	else if(zoom == 19 &&  dist < 0.00003  ){Map.ignoreNextMove = true;}
	else if(zoom == 20 &&  dist < 0.00002  ){Map.ignoreNextMove = true;}
	else if(zoom > 20 && dist < 0.000008  ){Map.ignoreNextMove = true;}
	//if(zoom > 17 &&  dist < 0.0001  ){ Map.ignoreNextMove = true; }
	Map.bottomLeftLong = lt;
	Map.bottomLeftLat = lng;
	//info("Map moved, re-calculate earthfaves and places ...topLeft: " + lt + " " + lng + " abstand : " + dist + " ZOOM: " + zoom);
}

function showNirwanaButton(nowZoom){
		if(document.getElementById("nirvana-button-enable")){//wenn gast dann gibt es dann nict
			if(nowZoom < global.zoomlevelAllowingCreatingEf){
				document.getElementById("nirvana-button-enable").style.display='none';document.getElementById("nirvana-button-unable").style.display='block';
				//document.getElementById("NewEarthfaveEnable").style.display='none';
				//document.getElementById("createNewEarthfaveDisable").style.display='block';
				//document.getElementById("createNewEarthfaveEnable").style.display='none';
				//document.getElementById("createNewEarthfaveDisable").style.display='block';
	
			}
			else
			{
			//	alert("größer gleich "+ global.zoomlevelAllowingCreatingEf);
				document.getElementById('nirvana-button-unable').style.display='none';
				document.getElementById('nirvana-button-enable').style.display='block';
				//document.getElementById("createNewEarthfaveEnable").style.display='block';
				//document.getElementById("createNewEarthfaveDisable").style.display='none';
				//document.getElementById("createNewEarthfaveEnable").style.display='block';
				//document.getElementById("createNewEarthfaveDisable").style.display='none';
			}
		}
}

	
function mapMovedDelay(caller){
		console.log("......................... mapMovedDelay ....................... caller: " + caller);
		if(Map.globalCallerOfMapMove != "submitSearch"){
			//clearTimeout(mapMoveTimer);
	  	//mapMoveTimer = setTimeout("mapMoved('not submit search')",1100);
			mapMoved('not submit search');
		} else {mapMoved("sumbit search");}		
}

//daniel: Es gibt einen Unterschied ob ein submitSearch oder ein lookupEarthfaves ausgefuehrt wird.
// bei submitSearch wird ein Google.getPoint gemacht, die Karte verschoben und das mapMove-Event ausgefuert. Dort wird ERST das lookup gemacht !!!
// bei lookupEarthfaves wird ERST gesucht.

	
function mapMoved(caller){
	var cLog = true;
	if(cLog){console.log("::::::::::::::::::::::: mapMoved ::::::::::::::::::::::::: caller: " + caller);}
	var zoom = Map.realMap.getZoom();

	if( Map.globalCallerOfMapMove == "" ) {Map.globalCallerOfMapMove = "dragMap" ;} // wenn der wert leer, wurde als letztes KEINE submit Serach ausgef
	if(!Map.shiftPress ){	checkMapMoveInZoomAndDistanz(); }// wenn man shift drueckt beim kartenbewegen wird nicht nachgeladen
	else { 	Map.ignoreNextMove = true; 	}

	if (Map.ignoreNextMove) {
		Map.ignoreNextMove = false;
		console.log("Map.ignoreNextMove true");
		return;
	}
	
	var cm = global.ZOOMLEVEL_CHANGE_MARKER;
	var zm = Map.zoomlevelMerker;
	
	if (Map.globalIgnoreMove) {
	console.log("MapMoved............: " + Map.manualyCreatedPlace);
		if(Map.globalCallerOfMapMove != "lookupEarthfaves" && Map.globalCallerOfMapMove != "submitSearch"){
		 //console.log("Map.globalIgnoreMove true . Map.zoomlevelMerker 111 " + Map.zoomlevelMerker + " aktueller Zoom : " + zoom);
			//hui...wenn der gemerkte zoom anders ist wieder der aktulle zoom und 
			//hierbei ueber die zoomschwelle gezoomt wird, aendern sich die marker und muessen neu gezeichnet werden
			// es gibt ja kleine und grosse ef-marker
			if( zm != zoom && ( zm <  zoom && zoom > cm || zm > zoom && zoom < cm) ) {
				Map.zoomlevelMerker = zoom;
				console.log("MapMove ZEICHNE MARKER NEU (pos1)");
				activeMap.clearOverlays("mapMoved in ext.js"); // da ich sie ja neu zeichne
				showMarkerOnMap("ef"); // daniel will die marker neu zeichnen
			} else { console.log("MapMove ZEICHNE MARKER NICHT NEU");	}
			return;	
		}
		else {Map.globalCallerOfMapMove = "";}
	}
	//console.log ("pos1") ;
	
  //info("mapMoved -> Map.historyBackExecuted ist " + Map.historyBackExecuted);
	if(Map.historyBackExecuted == false){// bricht hier ab, wenn NICHT back geklickt wurde
		if ( Map.ignoreMove )  { 
			console.log("Map.ignoreMove true zoomlevelMerker: " + zm + " aktueller Zoom : " + zoom + " changeZoom mit " + cm );
			//if( zm != zoom && ( zm <  zoom && zoom > cm || zm > zoom && zoom < cm)) {
			if( zm != zoom && ( zm < cm && zm < zoom && zoom > cm || zm > cm && zm > zoom && zoom < cm)) {
				console.log("MapMove ZEICHNE MARKER NEU (pos2)");
				Map.zoomlevelMerker = zoom;
				activeMap.clearOverlays("mapMoved in ext.js");// da ich sie ja neu zeichne
				if(activeMap.trustLevelClick == "PLACES"){				showMarkerOnMap("PLACES"); }
				else { showMarkerOnMap("ef"); } // daniel will die marker neu zeichnen
			}
			return;	
		}
	} else {Map.historyBackExecuted = false;} // setze wieder auf false
	
	// wenn die lookupEarfaves oder die submitSearch verantwortlich ist, dass es das Event MapMove gab,
	// muessen die efs nachgeladen werden, auch wenn das ueber cie Checkbox abgestellt ist
	
	
	Map.showMapLoaderAnimation();
	if( global.RESULTLIST_CLEAR_ENABLE ) {	if (resultList = getDiv("result-list")) {resultList.style.opacity = "0.2";}}
	//console.log ("pos2") ;
	
	if( global.GOOGLE_PLACES == 1 ){	Map.googleCallback  = false; } else { Map.googleCallback  = true; } //setze true damit was angezeigt wird
	Map.earthfavesCallback  = false;
	Map.clusterCallback  = false;
	Map.overlaysCleared = false;
	//daniel : ich kann das array hier nicht leer machen sonst kann ich in der v3 die marker nicht loeschen
	//Map.markerArray = new Array();
	
	Map.clusterArray = new Array();

	var bounds = Map.getBounds();
	var lat1 = bounds.getSouthWest().lat();
	var lng1 = bounds.getSouthWest().lng();
	var lat2 = bounds.getNorthEast().lat();
	var lng2 = bounds.getNorthEast().lng();
 if(cLog){console.log(":::::ext.js->mapMoved .... Karte - links unten: " + lat1 + " " + lng1 + " -- rechts oben:"	+ lat2 + " " + lng2 + " .....");}

	var filter = ""; // gesetzt wird getLastEfFilter() zb in der UIModules in earthfavesLeftNav
	if( menu.getLastEfFilter() != "" ) {
		filter = menu.getLastEfFilter() + ":" + global.user_id;
		//Map.globalIgnoreMove = true ;
		//Map.ignoreMove = true ;
	}
	console.log ("ext.js mapMoved filter ist : " + filter) ;
	//EarthfavesProvider.prototype.lookup = function(name, address, lat1, lng1, lat2, lng2, filter, from, max, mapId, listId, autoZoom, ignoreMove,ignoreSearch1,ignoreSearch2, quadrantsearch, callback, callbackOnError, callbackOnTimeout)
	Map.search1 = global.search1;
	Map.search2 = global.search2;
	Map.searchLat1 = lat1;
	Map.searchLat2 = lat2;
	Map.searchLng1 = lng1;
	Map.searchLng2 = lng2;
	Map.searchFilter = filter;
	Map.searchFrom = 1;
	Map.searchMax = global.PAGINATION_STEP_EARTHFAVES;
	Map.searchListId = "result-list";
	earthfavesCount = true;
	/*if( !Map.searchForcedRegion ){
		Map.searchAutoZoom = false; 
		Map.searchQuadrantSearch = true; 
	} else { 
		Map.searchAutoZoom = true;
		Map.searchQuadrantSearch = false;
		Map.ignoreNextMove = true ;
	}// bei der suche nach regionen muss  spaeter autozoom genmacht werden*/
	
	Map.searchZoom = zoom;
	Map.searchIgnoreSearch1 = false;
	Map.searchIgnoreSearch2 = false;

        //Tested, ob was if searchfield eingegeben wird.
        if ( typeof(Map.search1) == 'undefined') {Map.searchIgnoreSearch1 = true; Map.search1 =""; }
        if ( typeof(Map.search2) == 'undefined') {Map.searchIgnoreSearch2 = true; Map.search2 =""; }

	if(Map.globalCallerOfMapMove == "dragMap" || Map.globalCallerOfMapMove == "submitSearch" ){
		MapSearch.transferMapSaver(Map); // Spiechere die Suchdaten in dem SaverObjekt um spaeter die selbe suche nochmal aufrufen zu koennen
	}
	
	// 2011.01.08 Daniel testet das setzen das Hash...........START:::
		var mPosition = Map.getCenter();
		var mLat = mPosition.lat();
		var mLng = mPosition.lng();
		window.location.hash = "#" + mLng + "_" + mLat + "_" + zoom;
		console.log("....mapMove setHash: " + mLng + " / " + mLat + " zoom: " + zoom);
	// 2011.01.08 .............................................ENDE:::
	
	//console.log ("time vor " + getNow()) ;
	console.log("ext.js mapMoved mache nun das  Earthfaves.lookup mit.....");
	console.log("searchQudrantSearch : " + Map.searchQuadrantSearch);
	console.log("searchRedundanceData: " + Map.searchRedundanceData);
	console.log("earthfavesCount: " + earthfavesCount); // true = zahle die efs fuer die TLL; false= zahle nicht
	console.log(".........................................................");
	var allD = getDiv("result-info-container-all-earthfaves");
	allD.innerHTML = 0;
	Earthfaves.lookup(Map,earthfavesLookupCallback);  
	if(Map.clusterSearch)	{Earthfaves.lookupClusters(Map, clustersLookupCallback);}
	disableAllMapFilter(); // die checkboxen disablen damit inzwischen niemald klickt.
	enableOrdisableSearchFuntions(true); // suchbutton abstellen
	if( global.DB_PLACES_LIST == 1){ // in der default result list zeigen 
		if(Places){	
			if(cLog){console.log(".......Place.lookup");}
			Places.lookup(Map.id,lat1, lng1, lat2, lng2,global.search1,global.search2,lookupPlacesCallback);
		}	else { console.log("PLaceProvider Object not exist");}
	}
	
	if(cLog){console.log("++++++++++++++++++ mapMmove PLACES BLOCK +++++++++++++++++++++++++");}
	if( global.DB_PLACES_TRUST ){//zahlen die places
			if( getDiv("result-info-container-undiscovered") ){	getDiv("result-info-container-undiscovered").innerHTML = 0;	}		
			if(Places){
				Places.countResults = 0;
				Places.count(lat1, lng1, lat2, lng2, global.search1,global.search2,countPlacesCallback);
				console.log("++++++++++++++++++ PLaceProvider count places (is set to " + Places.countResults + " ) ++++++++++++++++++++++++++");
			} else { console.log("PLaceProvider Object not exist"); }
	} else if (global.GOOGLE_PLACES == 1){
				console.log("++++++++++++++++++ GoogleProvider zaehle google places +++++++++++++++++++++++++");
				Google.onlyCount = true;
				Places.countResults = 0;
				Google.countResults = 0;
				lookupGoogle(global.search1, Map);
	} 
	if(cLog){console.log("++++++++++++++++++ mapMmove PLACES BLOCK ENDE  +++++++++++++++++++++++++");}
	
	
	Map.searchAutoZoom = false; // zuruecksetzen
	//Map.searchQuadrantSearch = false;// zuruecksetzen
	
	Map.searchForcedRegion = "";
	Map.searchForcedRegionId = new Array();

	// code der mir setzt, welche Funktion als letztes ausgefuehrt wurde
	if( Map.globalCallerOfMapMove  != ""){ 	Map.globalCallerOfMapMove  = "";	}
		
	Map.zoomlevelMerker = zoom; // merke mir den zoomlevel
	if(cLog){console.log("::::::::::::::::::::::: mapMoved ende :::::::::::::::::::::::::ignoreMove " + Map.ignoreMove + " nextMove" + Map.ignoreNextMove);}
}

function lookupPlaces(){
	var blub = Application.getActiveMap() ;
	console.log("PLaceProvider exist...make lookupPlaves (placesProver.js)");
	var lat1  = blub.searchLat1;
	var lat2  = blub.searchLat2;
	var lng1  = blub.searchLng1;
	var lng2  = blub.searchLng2;
	Places.lookup(blub.id,lat1, lng1, lat2, lng2, lookupPlacesCallback);
}


//bei eartfhaves die filter die man setzen kann um die Suche zu filtern
function createMapFilterArray(id){
	console.group("createMapFilterArray");
	document.getElementById("category-field").value="Name, Keyword, Street";
	document.getElementById("state-field").value="City, State";
	global.search1 = "" ;
	
	var activeMap = Application.getActiveMap();
	if(document.getElementById("checkEarthfaveFilter_" + id)){
		 var filter = document.getElementById('checkEarthfaveFilter_' + id).checked;	
		 if(filter){	
		 	activeMap.earthfavesFilterArray.push(id);
			//info("ext.jscreateMapFilterArray: checkEarthfaveFilter_" + id + " checked" );	 
		 }
		 else {
				//info("ext.jscreateMapFilterArray: checkEarthfaveFilter_" + id + " not checked" ); 
		 	var i;
			var save = activeMap.earthfavesFilterArray; // sichere das array
			activeMap.earthfavesFilterArray = new Array();
			for ( i = 0; i < 	save.length; i++){
				if( save[i] != id ) {activeMap.earthfavesFilterArray.push(save[i]);}
			}
		 }
		 var ar = activeMap.earthfavesFilterArray.join(":");
		console.log("Filter string: " + ar );
		 //info("ext.js createMapFilterArray: cearthfavesFilterArray: " + ar  ); 
	}
	
	//bei klick duc suche starten
	var bounds = activeMap.getBounds();
	var lat1 = bounds.getSouthWest().lat();
	var lng1 = bounds.getSouthWest().lng();
	var lat2 = bounds.getNorthEast().lat();
	var lng2 = bounds.getNorthEast().lng();
	
	//info("ext.js   createMapFilterArray getLastEfFilter : " + menu.getLastEfFilter());
	//function lookupEarthfaves(filter, from, maximum, ignoreMove, ignoreSearch1, ignoreSearch2, quadrantsearch, autozoom)
 
	// daniel: in welchen efs soll gesucht werden. In allen, dann ist getLastEfFilter() leer oder 
	// in my DISC oder BOOKED dann ist es nicht leer
	
	console.log("Vor lookupEarthfaves / CreateMapFilter / IgnoreNextMove : " + Map.ignoreNextMove + " TIME::::" + zeitJetzt()) ;
	
	var filter = ""; // gesetzt wird getLastEfFilter() zb in der UIModules in earthfavesLeftNav
	if( menu.getLastEfFilter() != "" ) { // nicht leer
		filter = menu.getLastEfFilter() + ":" + global.user_id;
		//activeMap.ignoreNextMove = true ;
		lookupEarthfaves(filter, 1,global.paginationStepEarthfaves,true,true,true,false,true); // lookup my DISC suche				
		//info("ext.js createMapFilterArray: lookupEarthfaves mit filter: " + filter  ); 
	}
  else { // leer
		changeBorder('result-info-container-all'); // setzt in den sektionen das aktive element um
		//activeMap.ignoreNextMove = true ;
		lookupEarthfaves(filter, 1,global.paginationStepEarthfaves,false,false,false,true,false); // checkboxsuche
		//count  verschoben in showMarker 
		Earthfaves.count(global.search1, "", lat1, lng1, lat2, lng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray, activeMap.searchPlaces,
		earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
		//info("ext.js createMapFilterArray: lookupEarthfaves ohne filter: " + filter ); 
	}
	
	//console.log("Nach lookupEarthfaves / CreateMapFilter / IgnoreNextMove : " + Map.ignoreNextMove) ;
	
	// daniel wird nun in der ShowMarkerOnMap abgesendet, nachdem die "normalen" efs geladen wurden
	//if( activeMap.aktivePageEarthfavesSearch ) { 
	//	activeMap.aktivePageEarthfavesMarkerArray = new Array(); //PaginationMarker  Array leeren
	//	Earthfaves.lookupPaginationsEarthfaves(activeMap, paginationsEarthfavesLookupCallback);
	// }
	
	
	enableOrdisableSearchFuntions(true); // suchbuttons ausschalten
	disableAllMapFilter(); // die checkboxen sind sollange nicht klickbar, so lange eine suche laeuft
	console.groupEnd();
}

// wenn eine suche laeuft sollten gewisse sachen nicht klickbar sein wie zb der search-button.
// kann man hier disaplbem und enablen
function enableOrdisableSearchFuntions(bool){
	if(document.getElementById('searchContainerSearchButton')){
		document.getElementById('searchContainerSearchButton').disabled = bool;
		if(bool){
			document.getElementById('searchContainerAnimation').style.display = "block";
			document.getElementById('searchContainerSearchButton').style.display = "none";
		} else {
			document.getElementById('searchContainerAnimation').style.display = "none";
			document.getElementById('searchContainerSearchButton').style.display = "block";
		}
	}
}

function disableAllMapFilter(){
	var ar = new Array(207,136,1,96,257,17,185);
		for ( var i = 0; i < ar.length ; i++ ){
			if ( document.getElementById('checkEarthfaveFilter_' + ar[i]) ){
					document.getElementById('checkEarthfaveFilter_' + ar[i]).disabled = true;
			}
		}
}
	

function enableAllMapFilter(){
	//console.log("ext.js enableAllMapFilter");
	var ar = new Array(207,136,1,96,257,17,185);
		for ( var i = 0; i < ar.length ; i++ ){
			if ( getDiv('checkEarthfaveFilter_' + ar[i]) ){	getDiv('checkEarthfaveFilter_' + ar[i]).disabled = false;	}
		}
}

function DefaultFilterCountry () {
	var country;
	if(document.getElementById("country_filter")){
		country = document.getElementById("country_filter") ;
		country.options[0].selected = true ;
	}
	if(document.getElementById("Region")){	document.getElementById("Region").style.display = "none" ;}
}

function uncheckAllMapFilter(send){
	//alert("uncheckAllMapFilter");
	console.log("........uncheckAllMapFilter......");
	//alert("ext uncheckMap");
	var ar = new Array(207,136,1,96,257,17,185);
		for ( var i = 0; i < ar.length ; i++ ){
			if ( document.getElementById('checkEarthfaveFilter_' + ar[i]) ){
					document.getElementById('checkEarthfaveFilter_' + ar[i]).checked = false;
			}
		}
	if(send){ 
		global.search1 = "" ;
	  // die suche absenden
		var activeMap = Application.getActiveMap();
		if(activeMap){
			activeMap.earthfavesFilterArray = new Array(); // array leeren
			//bei klick duc suche starten
			var bounds = activeMap.getBounds();
			var lat1 = bounds.getSouthWest().lat();
			var lng1 = bounds.getSouthWest().lng();
			var lat2 = bounds.getNorthEast().lat();
			var lng2 = bounds.getNorthEast().lng();
			
			changeBorder('result-info-container-all'); // setzt in den sektionen das aktive element um
			lookupEarthfaves("", 1,global.paginationStepEarthfaves,false,false,false,true,false); // checkboxsuche
			//count  verschoben in showMarker 
			if(!activeMap.manualyCreatedPlace){//keine efs zaehlen, wenn ich manuel einen ef anlegen will
				Earthfaves.count(global.search1, "", lat1, lng1, lat2, lng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray, activeMap.searchPlaces,
				earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
			}
		}
	}
}	

// Hier wird wohl nur für den AdWiz eine rListe erzeugt
// Die in der Suche wird in der processResults erzeugt	
function googleCallback() {
	var cLog = true;
	if(cLog){console.log(".............ext.js -> googleCallback TIME: " + zeitJetzt());}
	//if(cLog){console.log("...found:" + Google.localSearch.results.length + " Places");}
	var resultList = "";
	var map = Application.getActiveMap();
	var listId = Application.getActiveList();
	map.placesGoogle = new Array();
	//console.debug(Google.localSearch.results);//, 5, "googleCallback");
	//daniel 2009 24 08
	// ich lege immer die google-place objekte an. Egal ob ich zaehle oder nicht zaehle
	var langPL = Google.localSearch.results.length;
	for (var i = 0; i < langPL; i++){
					var place = new Place(
							i,
							Google.localSearch.results[i].lat,
							Google.localSearch.results[i].lng,
							Google.localSearch.results[i].titleNoFormatting,
							Google.localSearch.results[i].country,
							Google.localSearch.results[i].streetAddress,
							Google.localSearch.results[i].city,
							Google.localSearch.results[i].region,
							Google.localSearch.results[i].phoneNumbers,
							'googlePlace');
					map.placesGoogle.push(place);	
	}
	
	
	if(!Google.onlyCount){//echte objekte
				if(cLog){console.log(".....nicht zaehlen");}
				/*
				if (listId){
						if(cLog){console.log(".....erzeuge Rliste fuer google - place - objekte");}
						for (var i = 0; i < langPL; i++){
											var p = map.placesGoogle[i];
											resultList += p.asAddWizardResultListEntry(i);
						}
						map.resultList = "<table style=\"width:493px;\">" + resultList + "</table>"; //anna: die Table für die Ausgabe muss breite haben
						console.log("AddWizard: trage Places ein in map.resultList ein", 5, "googleCallback");// + map.resultList);
				}
				*/	
				map.googleCallback = true; // merke mir, dass diese callback durchlaufen wurde
			
				if(global.DB_PLACES_TRUST){ // trustlevel geklickt , normale places aus google + die aus db anzeigen
							if(cLog){console.log(".....trustlevel geklickt");}
							var apg = map.placesGoogle.length;
							var adbp = map.placesDB.length;
							var sum = apg + adbp;
							if(cLog){console.log(".....results google: " + apg);}
							if(cLog){console.log(".....results db    : " + adbp);}
							
							if(cLog){console.log(".....sume places   : " + sum);}
							
							for (var i = 0; i < apg; i++)	{
										var marker = map.createMarker(map.placesGoogle[i]);
										Map.addOverlay(marker,"normal",i);
										resultList += map.placesGoogle[i].asResultListEntry2(marker.id);
							}
							for (var i = 0; i < adbp; i++)	{
										var marker = map.createMarker(map.placesDB[i]);
										Map.addOverlay(marker,"normal",i);
										resultList += map.placesDB[i].asResultListEntry2(marker.id);
								}		
								
							if(x=getDiv("result-list")){
									x.innerHTML =  resultList;
									x.style.opacity = "1";
							}
							var fade = false;
							if(sum <= 0 && global.user_id != "42"){
								console.log('ext.js->googleCallback fade userId: ' + global.user_id);
								fade= true;
							}
							map.hideMapLoaderAnimation("Found " + sum,fade);
							
							//pagination 
							// FALL A: anzahl pdb geht genau auf. Dh. es gibt eine site wo es NUR google places gibt
							// alle places = 28; dbp = 20, gpl = 8, anzahl pro seite = 10 -> 2 seiten mit dbp und eine seite mit nur gpl.
							//var alleP = Places.countResults + apg; // anzahl aller places in db die passen + google places (max 8)
							//var pagination = new Pagination(alleP,dbPlacesFrom,"","",global.PAGINATION_STEP_EARTHFAVES,global.PAGINATION_NUMBERS_IN_PAGINATION,sum,"places","",1,"","",1);
							//pagination.createPagination();
				}
	} else { // nur zahelne
				Google.countResults = Google.localSearch.results.length;
				var alleEf = parseInt(map.lastSearchOverall);
				console.log('...  es soll nur gezahlt werden beim google search ');
				console.log('...  google-results:    ' + Google.countResults);
				console.log('...  db-places-results: ' + Places.countResults);
				console.log('...  ef-results:        ' + alleEf);
		
				 // setze alle ergebniss
				var allR = getDiv("result-info-container-all-earthfaves");
				var allP = getDiv("search-field-places");
				var summeP =  parseInt(Places.countResults) + parseInt(Google.countResults);
				allR.innerHTML = alleEf;
				allP.innerHTML = '<span class="found-earthfaves">&nbsp;and </span><span class="number-earthfaves-found"> ' + summeP + '</span>';
				allP.innerHTML+= '<span class="found-earthfaves"> places </span>';
				
				if( getDiv("result-info-container-undiscovered") ){	
							var unD =  getDiv("result-info-container-undiscovered");
							unD.innerHTML = summeP;
							//if(inD<=0){unD.style.textDecoration = "none";} else {unD.style.textDecoration = "underline";}
				}
		
	}
		
}


function addWizardEarthfavesLookupCallback(response){	
		console.log("addWizardEarthfavesLookupCallback :::::::::::::::::");
		var resultList = '';	var result = JSON.parse(response);	var h1 = getDiv('h1Page1');
		var cLog = false;		AddWizardMap.earthfaves = new Array();
	
		var businessFormular = "";
		if( typeof(global.isBusinessSignUp)!='undefined' && global.isBusinessSignUp!=null && global.isBusinessSignUp==true ) {
					businessFormular += '<tr style="height:200px;"> <td style="width:50px;"></td>';
					businessFormular += '<td style="width:420px;">';
					businessFormular += '<table> <tr> <td style="width:120px;"> Name: </td> <td style="width:300px;"> <input type="text" id="earthfave_name" size="50" /> </td> </tr>';
					businessFormular += '<tr> <td style="width:120px;"> Address: </td> <td style="width:300px;"> <input type="text" id="earthfave_address" size="50" /> </td> </tr>';
					businessFormular += '<tr> <td style="width:120px;"> Postal Code: </td> <td style="width:300px;"> <input type="text" id="earthfave_zip" size="50" /> </td> </tr>';
					businessFormular += '<tr> <td style="width:120px;"> City: </td> <td style="width:300px;"> <input type="text" id="earthfave_city" size="50" /> </td> </tr>';
					businessFormular += '<tr> <td style="width:120px;"> Country: </td> <td style="width:300px;"> <select id="earthfave_country">' + document.getElementById(signupIdPrefix + 'country').innerHTML + '</select> </td> </tr> </table>';
					businessFormular += '</td> <td style="width:30px;align:center"> <input type="radio" name="earthfave_radio" checked="checked" value="-1"/> </td> </tr>';
					//businessFormular += '</td></tr>';
		}
		if(cLog){console.log("addWizardEarthfavesLookupwCallback vor if: " + result.rc);}
		
		if (result.rc == 0) {
								if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback vor result.efs");}
								if(result.efs){					
													if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback nach result.efs");}
													var lang = result.efs.length;
													if (lang == 0) {
																		if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 0");}
																		resultList = '<tr> <td colspan="4" align="center" style="color:#F05A22; font-size:14px; font-weight:bold;">' +
																		global.NO_RESULT_EF + '</td> </tr>';
													} else {
																		if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 1 lang: " + lang);}
																		for (var i = 0; i < lang; i++) {
																				var earthfave = new Earthfave(result.efs[i]);
																				AddWizardMap.earthfaves[earthfave.id] = earthfave;
																				if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback earthfave  name " + earthfave.name);}
																				
																				if( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ){
																						if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 1.1.1");}
																						resultList += earthfave.asAddWizardResultListEntry(i);
																				 } else {	
																				 		if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 1.1.2 vor ");}
																						resultList += earthfave.asBusinessSignUpResultListEntry();	
																						if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 1.1.2 nach");}
																				}
																		}
																		if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 1.1");}
														}
														
														if ( AddWizardMap.placesGoogle.length > 0){
																	if(cLog){console.log(" im if  AddWizardMap.placesGoogle.length > 0");}
																	if(cLog){console.log(" im if rliste aus der googleCallback:::::::::::::::: " + AddWizardMap.resultList );}
																	var inhalt_result = "<table style=\"width:493px;\">" + resultList + businessFormular + "</table>" + AddWizardMap.resultList; 
																	getDiv(result.target.listId).innerHTML = inhalt_result; 
																	if(cLog){console.log(" ext.js -> addWizardEarthfavesLookupCallback "+inhalt_result);}
														} else {
																	if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 2 ");}			
																	getDiv('signUpBEfSearch_anzahl').innerHTML = "earthfaves found " + lang;
																	getDiv(result.target.listId).innerHTML = "<table style=\"width:493px;\">" + resultList + businessFormular + "</table>"; 
														}
														
														h1.innerHTML = "Add your earthfave. Found " + result.efs.length + " earthfaves and " + AddWizardMap.placesGoogle.length + " places";
														if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos 5");}
										} else {
														 if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback Pos Ende ");}						
															if( AddWizardMap.placesGoogle.length > 0 && ( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ) ){
																 //info("addWizardEarthfavesLookupCallback ::::: es gibt places keine efs ::::::::::::");
																h1.innerHTML = "Add your earthfave. Found 0 earthfaves and " + AddWizardMap.placesGoogle.length + " places";
																getDiv(result.target.listId).innerHTML = AddWizardMap.resultList;
															} else	if( AddWizardMap.placesGoogle.length == 0 && ( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ) ) {
																//info("addWizardEarthfavesLookupCallback ::::: es gibt keine efs und keine places::::::::::::");
																	getDiv("result-list-overlay").innerHTML = "";
																	h1.innerHTML = "Add your earthfave. Found 0 earthfaves and 0 places"; 
															}
															else {
																	getDiv("result-list-overlay").innerHTML = "<table style=\"width:493px;\">" + businessFormular + "</table>";
															}
													
												}	
				} else { 	if(cLog){console.log("ext.js addWizardEarthfavesLookupCallback kein rc :" + result.rc);}  }
	console.log("ext.js-> addWizardEarthfavesLookupCallback(response)");
	}

function clustersLookupCallback(response){
	console.log("ext.js clustersLookupCallback");
	var activeMap = Application.getActiveMap();
	var result = JSON.parse(response);
	if (result.rc == 0) {
			console.log("ext.js clustersLookupCallback ok ");
			if( result.cluster ){ 
				if(!activeMap.overlaysCleared){
					console.log("+++++++++++++ ext.js -> clustersLookupCallback loesche marker on map +++++++++");
					activeMap.clearOverlays("clustersLookupCallback");
					activeMap.overlaysCleared = true;
				}
				activeMap.clusterArray = new Array();
			 	activeMap.clusterCounter = result.cluster.length;
				for (var i = 0; i < result.cluster.length; i++) {
					var cluster = new ClusterProvider(result.cluster[i]);			
					activeMap.clusterArray[i] = cluster;	
				//	var markerCluster = activeMap.createClusterMarker(cluster);
				//	activeMap.addOverlay(markerCluster,"cluster");
				}
			}	else {console.log("clustersLookupCallback keine cluster gefunden");}
	} else {console.log("ext.js clustersLookupCallback KEINE CLUSTER");}

	if(activeMap.earthfavesCallback){showMarkerOnMap("cluster");}	
	activeMap.clusterCallback  = true;
}
//daniel wenn die zweite callbach (egal welche) von ef oder cluster aufgerufen wird,
// wird am ende diese Funktion aufgerufen zum anzeigen der obj auf der map
function showMarkerOnMap(caller){
	var cLog = false;
	if(cLog){console.log("::::::::::::::::::::::::: ext.js showMarkerOnMap TIME ::::::: " + zeitJetzt() + ' :::::::::::::::::::');}
	if(cLog){console.log("::::: ext.js -> showMarkerOnMap Caller: ",caller);}
	var found;	var activeMap = Application.getActiveMap();  if( activeMap ) { }	else  {activeMap = Map;}
	//if(cLog){console.log("::::: ext.js -> showMarkerOnMap activeMap.manualyCreatedPlace: "+ activeMap.manualyCreatedPlace);}
	/* 2011.01.20 daniel hab ich nicht verstandenn warum ich das hier geschrieben hab
	if(!activeMap.manualyCreatedPlace){ //bei manuellen anlegen soll er die Overlays nit loeschen
		console.log("!activeMap.manualyCreatedPlace");
		//activeMap.clearOverlays(); // loesche overlays
		activeMap.overlaysCleared = true; // loeschte overlays
		activeMap.hideMapLoaderAnimation();
		console.log("after del anim");
	} else {
			console.log("activeMap.manualyCreatedPlace");
			console.groupEnd();
			return;
	}
	*/ 
	if(activeMap.manualyCreatedPlace){ //bei manuellen anlegen und wenn
		if(cLog){console.log("::::: ext.js -> showMarkerOnMap manuelles anlegen von ef eingeschaltet");}
		//ein NiM auf der KArte liegt soll er die Overlays nit loeschen und nix zeichnen
		var zoom = activeMap.realMap.getZoom();
		if(zoom >= global.ZOOMLEVEL_ALLOWING_CREATING_EF){// ein Nim liegt immer auf der Karte bei dieser Zoomstufe
				if(cLog){console.log("::::: ext.js -> showMarkerOnMap ein Nirvana Marker gehoert auf die Karte");}
				if(!activeMap.tempMarker ){
							if(cLog){console.log("createNirvanaEarthfave tempMarker: " +  activeMap.tempMarker);}
							//activeMap.ignoreMove = false;
							//activeMap.ignoreNextMove = true;
							//activeMap.manualyCreatedPlace = false;
							//activeMap.manualyCreatedP = true;
							//activeMap.clearOverlays();
							//activeMap.earthfaves = new Array();
							activeMap.createPlace();
							//activeMap.realMap.disableDragging();
					}
					else{
						// console.log("activeMap.tempMarker = true", activeMap.tempMarker);
						//position = activeMap.getCenter();
						var pos = new GLatLng(	activeMap.tempMarker.getPoint().lat(),	activeMap.tempMarker.getPoint().lng());
						//activeMap.tempMarker.setPoint(position);				
						activeMap.createPlace(pos);
						//activeMap.realMap.disableDragging(); // draggen nicht erlaubt
						//activeMap.realMap.addOverlay(activeMap.tempMarker.realMarker, "place", position);
					}
			//console.groupEnd();
			//return;
		}
	}
	
	//daniel 2011.01.16 places auf der karte NUR anzeigen, wenn man im places trustlevel ist oder in keinem
	if(cLog){console.log("::::: ext.js showEfClusterOnMap vor der stelle wo ich die places -marker zeichne.................");}
	//show places in trustlevel places or (trustLevel is "" and the config-Var global.DB_PLACES_LIST is true)
	if(activeMap.trustLevelClick == "PLACES"){// || ( activeMap.trustLevelClick == "none" && global.DB_PLACES_LIST) )
		if(cLog){console.log("... ext.js -> showMarkerOnMaptrustLevelKlick .... ");}
		var placeArray = activeMap.placesGoogle; var addOTask = 'place';
		if(global.DB_PLACES_LIST) {
			if(global.GOOGLE_PLACES){ placeArray.concat(activeMap.placesDB); addOTask = 'place_db'; }
			else { placeArray = activeMap.placesDB; addOTask = 'place_db'; }
		}
		var langPA = placeArray.length;
		if(langPA > 0){ 
			if(cLog){
				if(global.GOOGLE_PLACES){console.log("... ext.js -> showMarkerOnMap placesGoogle .... " + langPA + " ........ ");}
				else {console.log("... ext.js -> showMarkerOnMap placesDB .... " + langPA + " ........ ");}
			}
				
			for(var i = 0; i < langPA; i++ ){
				var marker = activeMap.createMarker(placeArray[i]);
				if(cLog){console.log("... ext.js -> showMarkerOnMap baue marker fuer places");}
				activeMap.addOverlay(marker,addOTask,i);
			}
			
		}
	} else {if(cLog){console.log("... ext.js -> showMarkerOnMap placesGoogle werden nicht gezeichnet .... ");} }
	
 // if(cLog){console.log("::::: ext.js showEfClusterOnMap vor der stelle wo ich die efs-marker zeichne.................");}
	if( activeMap.clusterSearch){ // wurde die clusteruche gestarted 
		 if( activeMap.clusterArray ){// gibt es ein cluster array
		  		var laenge = activeMap.clusterCounter;
				 console.log("ext.js showClusterOnMap vor der for-schleife array laenge " + activeMap.clusterCounter);
				 for(var i = 0; i < laenge; i++ )
				 {var cluster = activeMap.clusterArray[i];
						 found = 0;
						 //console.log("ext.js showEfClusterOnMap cluster " +  i + " anzahl efs : " + cluster.countEfs);		 
						if(cluster.countEfs <= 2 ){
							// console.log("ext.js showEfClusterOnMap ----------------------------------");
							// console.log("ext.js showEfClusterOnMap Cluster " + cluster.id + " mit einem ef");
							 found = findEarthfaveInClusterX(activeMap,cluster.id);
							 if (found > 0) { 
								 cluster.countEfs -=found; 
								// console.log("ext.js showEfClusterOnMap Cluster ef in Rliste");
								} else {
								//	console.log("ext.js showEfClusterOnMap Cluster ef nicht in Rliste");
								}
							}								
						if(cluster.countEfs > 0){	 
							 //Einer-Cluster nur zeichnen, wenn der ef nicht in der Rliste ist
							 var markerCluster = activeMap.createClusterMarker(cluster);
							 activeMap.addOverlay(markerCluster,"cluster",i);
							// console.log("ext.js showEfClusterOnMap markerCluster auf Map gesetzt");
						 } else {
							//console.log("ext.js showEfClusterOnMap setze keinen cluster da hierin keine efs "); 
						}
					
					}
		 }
	 }//cluster suche machen ?
	  
		//EARTHFAVES MARKER !!
		if(cLog){console.log("... ext.js -> showMarkerOnMap vor earthfaves....  activeMap.trustLevelClick is " +  activeMap.trustLevelClick );}
    if ( activeMap.earthfaves && activeMap.trustLevelClick != "PLACES") { // in den places keine 
			 var efAnz = activeMap.earthfaves.length;		 if(cLog){console.log("... ext.js -> showMarkerOnMap earthfaves ....anz: " + efAnz + " ...");}
			 var anzMarker = activeMap.markerArray.length;
			 for ( var i = 0; i < efAnz; i++){
						//if(cLog){console.log("... ext.js -> showMarkerOnMap rufe nun activeMap.createMarker auf ");}
						//var marker = activeMap.createMarker(activeMap.earthfaves[i]); // erzeuge ef marker
           	if(anzMarker > 0){//array hat elemente
							var marker = activeMap.markerArray[i];// 2011.09 daniel nehme es aus array
						} else {
							var marker = activeMap.createMarker(activeMap.earthfaves[i]); // erzeuge ef marker
						}
						
						if(!global.GOOGLE_MAP_V3){
							//console.log("... ext.js -> activeMap.earthfaves[i].name " + activeMap.earthfaves[i].name);
							activeMap.addOverlay(marker,"normal",i); // achtung methode addOverlay ist in mapProvider ueberschrieben
						}				
       }
   }
  
 // Pagination MArker
	if( activeMap.aktivePageEarthfavesSearch ) {
			//daniel  die anderen Seiten der paginations werden geladen fuer die Karte
			//console.log("ext.js -> showMarkerOnMa activeMap.lastSearchOverall ", activeMap.lastSearchOverall, "activeMap.ignoreNextMove: ", activeMap.ignoreNextMove, "activeMap.globalIgnoreMove: ", activeMap.globalIgnoreMove); 
			if( activeMap.lastSearchOverall > global.PAGINATION_STEP_EARTHFAVES){// es gibt mehr efs als auf seite 1 der Paginations
					if(cLog){console.log('... ext.js->  showMarkerOnMap mehr earthfaves gefunden als Wert in Konstante global.PAGINATION_STEP_EARTHFAVES');}
					if (true) {
								//activeMap.aktivePageEarthfavesMarkerArray = new Array(); //PaginationMarker  Array leeren
								if(getDiv('showRedSpots')){
											if(getDiv('showRedSpots').checked){global.AKTIVE_PAGE_EARTHFAVE_SEARCH = true;
											} else { global.AKTIVE_PAGE_EARTHFAVE_SEARCH = false; }
								}
								if(global.AKTIVE_PAGE_EARTHFAVE_SEARCH && activeMap.trustLevelClick != "PLACES"){	
										//2011.01.18 daniel. ich teste was mit timer
										//if(cLog){console.log('... ext.js->  showMarkerOnMap starte suche nach roten Punkten');}
										//Earthfaves.lookupPaginationsEarthfaves(activeMap, paginationsEarthfavesLookupCallback);
										//if( myEarthfavesLeftMenu ){			setTimeout("CountEartfavesForFilters()",500); }
										if(cLog){console.log("... ext.js -> showMarkerOnMap ...rufe setPaginationMarkerOnMap auf "); }
										setPaginationMarkerOnMap(activeMap);
										//activeMap.hideMapLoaderAnimation("found " + activeMap.lastSearchOverall);
								} else {
										var fade = false;
										if(activeMap.lastSearchOverall <= 0 && global.user_id != '42'){
											console.log('ext.js->showMarkerOnMap fade userId: ' + global.user_id);
											fade= true;
										}
										activeMap.hideMapLoaderAnimation("found " + activeMap.lastSearchOverall,fade);
								}
					} else {
							if(cLog){console.log("... ext.js -> showMarkerOnMap ...rufe setPaginationMarkerOnMap auf "); }
							setPaginationMarkerOnMap(activeMap); // zeichne die PaginationsEarthfaves aus dem Array auf die Karte (wenn vorhanden)
					}
			} else {
					if(cLog){console.log('... ext.js -> showMarkerOnMap weniger earthfaves gefunden als Wert in Konstante global.PAGINATION_STEP_EARTHFAVES');}
					filter = menu.getLastEfFilter() + ":" + global.user_id;
					// daniel 2010.08.27 hier werden nun die anzahl der efs pro Categories gezaehlt
					// wenn es in der pagination NUR eine Seite gibt. Gibt es mehr als eine Seite, warten wir erst auf das callback der Pagination-Funktuion
					// siehe paginationsEarthfavesLookupCallback in ext.js
					if(myEarthfavesLeftMenu){
						 //daniel 2010.08.20 nur ausfuehren, wenn links das menu mit DISC,BOOK,F,FF geklickt wurde.  
							//if(cLog){console.log("... ext.js -> showMarkerOnMap starte Earthfaves.countCategory +++++++++++++++++++++");}
						 //Earthfaves.countCategory(filter,lat1,lng1,lat2,lng2,CountryWert,countCategoryCallback);
							if(get.page_id !='user'){//derzeit nur auf earthfave-seite
								CountEartfavesForFilters(); // daniel 2010 11 15 ruft gegegbenenfalls die countForFilters auf 
							}
						//Earthfaves.countForFilters(filter,categoriesFilter,countryFilter,priceFilter,expertiseFilter,countForFiltersCallback,countForFiltersCallbackOnError,countForFiltersCallbackOnTimeout);
					} else { 
						 if(cLog){console.log("... ext.js -> showMarkerOnMap starte CountEartfavesForFilters NICHT da myEarthfavesLeftMenu ist false  +++++++++++++++++++");}
					}
					enableAllMapFilter();
					var fade = false;
					if(activeMap.lastSearchOverall <= 0 && global.user_id != "42"){
						console.log('showMarkerOnMap fade userId : ' + 	global.user_id);
						fade= true;
					}
					activeMap.hideMapLoaderAnimation("found " + activeMap.lastSearchOverall,fade);
			}
	}
	else 
	{
		var fade = false;
		if(activeMap.lastSearchOverall <= 0 && global.user_id != "42" ){
			console.log('showMarkerOnMap fade userId : ' + 	global.user_id);
			fade= true;
		}
		activeMap.hideMapLoaderAnimation("found " + activeMap.lastSearchOverall,fade);
		
		if(cLog){console.log("ext.j -> showMarkerOnMap animation abschalten");}
		enableAllMapFilter();// daniel. Wenn die filtercheckboxen ausgeblendet wurden muessen sie nun wieder enabled werden
	}
	if ( getDiv("tdZoom") ) {	getDiv("tdZoom").innerHTML = "zoom:" + activeMap.realMap.getZoom();	}
	enableOrdisableSearchFuntions(false); // setzte suchbuttons geht wieder
	// efs nur zaehlen wenn ich NICHT einen ef manuel am anlegen bin (activeMap.manualyCreatedPlace)
	if(activeMap.earthfaves.length > 0 && activeMap.searchFilter == "" && global.user_id != "1" && activeMap.efId == "" && earthfavesCount && !activeMap.manualyCreatedPlace){
		//daniel 2011.01.10 earthfavesCount = true -> zaehle efs fuer die TLL; false _> nicht zahlen
		if(cLog){console.log("... ext.js -> showMarkerOnMap rufe count auf. Places laden " + activeMap.searchPlaces + " earthfavesCount " + earthfavesCount); }
		if(cLog){console.log("... ext.js -> showMarkerOnMap activeMap.manualyCreatedPlace " + activeMap.manualyCreatedPlace); }
		Earthfaves.count(global.search1, global.search2, activeMap.searchLat1, activeMap.searchLng1, activeMap.searchLat2, activeMap.searchLng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray,
			activeMap.searchPlaces,earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
	} else {
			if(cLog){console.log("... ext.js -> showMarkerOnMap rufe count nicht auf  !!! -> earthfavesCount: " + earthfavesCount); }  
			// wenn kein trust level geklickt wurde alle trustLevelzahlen auf 0 setzen, wenn es nicht mehr 
			if(activeMap.earthfaves.length < 1 &&  activeMap.trustLevelClick == "none"){
					getDiv("result-info-container-mine").innerHTML = "0"; 
					getDiv("result-info-container-mine").style.textDecoration = "none";
					
					getDiv("result-info-container-friends").innerHTML = "0";
					getDiv("result-info-container-friends").style.textDecoration = "none";
										
					getDiv("result-info-container-friends-friends").innerHTML =  "0";
					getDiv("result-info-container-friends-friends").style.textDecoration = "none";
										
					getDiv("result-info-container-follow").innerHTML =  "0";
					getDiv("result-info-container-follow").style.textDecoration = "none";
										
					getDiv("result-info-container-others").innerHTML =  "0";
					getDiv("result-info-container-others").style.textDecoration = "none";
										
					getDiv("result-info-container-all").innerHTML =  "0";
					getDiv("result-info-container-all").style.textDecoration = "none";

                                        getDiv("result-info-container-expert").innerHTML =  "0";
					getDiv("result-info-container-expert").style.textDecoration = "none";
					
					activeMap.lastSearchMy = 0;
					activeMap.lastSearchFriends = 0;
					activeMap.lastSearchFF = 0;
					activeMap.lastSearchOther = 0;
					activeMap.lastSearchFollow = 0;
          activeMap.lastSearchExperts = 0;
			}
	}
	
	if(activeMap.manualyCreatedP == true){
			activeMap.createPlace();
			stayClosed = true;
			activeMap.ignoreNextMove=true;
			//console.log("manualyCreatedP ist true and .... Show MArker On Map <-----");
	}
	
	//if(...){activeMap.hideMapLoaderAnimation();}
	
	if(cLog){console.log("ext.j -> showMarkerOnMap ende ...");}
	
} 

//This function present and Icon on Googlemaps of an earthfaves
function ShowOneEarthfavesOnMap(EarthfavesLat, EarthfavesLong, category, rel){
		console.log("...ext.js -> ShowOneEarthfavesOnMap....lat/lng " + EarthfavesLat + " / " + EarthfavesLong);
		var center;	var zoomMap = 16;	var image_dir = global.IMG_URL;	var type = "ef";	var number = 1;	var size = "gross";
				
		if(global.GOOGLE_MAP_V3){	
			center =  new google.maps.LatLng(EarthfavesLat, EarthfavesLong); 
			var Google = new GoogleProvider("divMapSmall", true,zoomMap,center);
		} else {
			var Google = new GoogleProvider("divMapSmall", true);
			center = new GLatLng(EarthfavesLat, EarthfavesLong);
		}
		
		var Earthfaves = new EarthfavesProvider();
		var Map = new MapProvider(Google.map, Google.domElement);
		
		
				
		
		/*
		var myIcon = new GIcon(G_DEFAULT_ICON);		
		myIcon.image = image_dir + "img-nontext/icons/1_empty_gross.png";
		myIcon.shadow = " ";
		myIcon.iconSize = new GSize(20, 34);
		myIcon.shadowSize = new GSize(40, 33);
		myIcon.iconAnchor = new GPoint(10, 34);
		myIcon.infoWindowAnchor = new GPoint(10, 1);
		*/
		//Map.setCenter(center, 4);
		
		//console.log("...ext.js -> ShowOneEarthfavesOnMap rufe Map.createIcon auf ....");
		//var myIcon = global.URL + 'img_sort/img-nontext/icons/warning.gif';
		//var myMarker = new google.maps.Marker({position: center,map: Map.realMap,icon: myIcon}); //
	 
	
		myIcon = Map.createIcon(type, number, size, category, rel);
 		console.log("...ext.js -> ShowOneEarthfavesOnMap rufe Map.createIcon fertig ....");		
		//Map = new MapProvider(Google.map, Google.domElement);		
		if(global.GOOGLE_MAP_V3){
			console.log("...ext.js -> ShowOneEarthfavesOnMap vor myMarker erzeugung ....");		
			var myMarker = new google.maps.Marker({position: center,map: Map.realMap,icon: myIcon});
			console.log("...ext.js -> ShowOneEarthfavesOnMap nach myMarker erzeugung ....");		
			}
		else {
			var markerOptions = 	{		icon: myIcon	};
			var myMarker = new GMarker(center, markerOptions);
			Map.setCenter(center,zoomMap);
			Map.realMap.addOverlay(myMarker);
		}
	console.log("...ext.js -> ShowOneEarthfavesOnMap ENDE ....");
	}
	
function Jaytest(){	
		var center = new GLatLng(49.2, 7);
		var zoom = 3;
		Map.realMap.setCenter(center, zoom);
		Map.realMap.disableDragging();
		
		var bounds = Map.realMap.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var lngSpan = northEast.lng() - southWest.lng();
		var latSpan = northEast.lat() - southWest.lat();
		for (var i = 0; i < 10; i++) {
			var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
			southWest.lng() + lngSpan * Math.random());
			Map.realMap.addOverlay(new GMarker(point));
		}
}

function lookupForNearEarthfavesCallback(response){
	var result = JSON.parse(response);
	var latmin = result.data[0].latmin;
	var latmax = result.data[0].latmax;
	var lngmin = result.data[0].lngmin;
	var lngmax = result.data[0].lngmax;
	var lat_center = latmin + (latmax - latmin)/2;
	var lng_center = lngmin + (lngmax - lngmin)/2;
	
	var center = new GLatLng(lat_center, lng_center);
	var bounds = new GLatLngBounds(new GLatLng(latmin, lngmin), new GLatLng(latmax, lngmax));
	var zoom = Map.realMap.getBoundsZoomLevel(bounds) ;// + 1;
	Map.zoomlevelMerker = zoom; // merke mir den zoomlevel siehe mapMove
	Map.setCenter(center, zoom);
	Map.ignoreNextMove = true;
	lookupEarthfaves('', 1,global.paginationStepEarthfaves,false,true,true,true,false);
}

function paginationsEarthfavesLookupCallback(response){
	console.log("ext.js paginationsEarthfavesLookupCallback TIME::::" + zeitJetzt());
	var activeMap = Application.getActiveMap();
	var result = JSON.parse(response);
	if (result.rc == 0){
		//console.log("ext.js paginationsEarthfavesLookupCallback RESULTS");
		if( myEarthfavesLeftMenu ){
			//filter = menu.getLastEfFilter() + ":" + global.user_id;
			console.log("ext->js paginationsEarthfavesLookupCallback starte CountEartfavesForFilters +++++++++++++++++++++ ");
			// daniel 2010.08.27 hier werden nun die anzahl der efs pro Categories gezaehlt
	//		Earthfaves.countCategory(filter,lat1,lng1,lat2,lng2,CountryWert,countCategoryCallback);
			CountEartfavesForFilters(); // daniel 2010 11 15 ruft gegegbenenfalls die countForFilters auf 
			//Earthfaves.countForFilters(filter,categoriesFilter,countryFilter,priceFilter,expertiseFilter,countForFiltersCallback);
		} else {
			console.log("ext->js paginationsEarthfavesLookupCallback starte CountEartfavesForFilters NICHT da  myEarthfavesLeftMenu = false ++++++++++++++++");
		}
		
		if( result.ef ){
			activeMap.aktivePageEarthfavesCounter = result.ef.length;
			for (var i = 0; i < result.ef.length; i++) {
						var PaginationMarker = new PaginationMarkerProvider(result.ef[i]);			
						activeMap.aktivePageEarthfavesMarkerArray[i] = PaginationMarker;			
						var PMarker = activeMap.createPaginationMarker(PaginationMarker);
						activeMap.addOverlay(PMarker,"paginationMarker",i);
			}
		}	
	} else { 		console.log("ext.js paginationsEarthfavesLookupCallback KEINE RESULTS"); 	}
	enableAllMapFilter(); // Checkboxen in der Filterbox wieder enablen. Siehe auch createMapFilterArray
	console.log("ext.js paginationsEarthfavesLookupCallback ende...TIME::::::" + zeitJetzt());
	var fade = false;
	if(activeMap.lastSearchOverall <= 0 && global.user_id != "42" ){
		console.log("ext.js paginationsEarthfavesLookupCallback fade userID : " + global.user_id); 
		fade= true;
	}
	activeMap.hideMapLoaderAnimation("found " + activeMap.lastSearchOverall,fade);

}

function paginationsEarthfavesLookupCallbackError(){}
function paginationsEarthfavesLookupCallbackOnTimeOut(){}

function setPaginationMarkerOnMap(mapi){
		var anz =  mapi.aktivePageEarthfavesMarkerArray.length;
		if(anz > mapi.aktivePageEarthfavesSearchMax){ anz = mapi.aktivePageEarthfavesSearchMax; }
			console.log("ext.js -> setPaginationMarkerOnMap ------------------------anz: " + anz  + " -------------------------------"); 
		
		for (var i = 0; i < anz; i++) {
			var PMarker = mapi.createPaginationMarker(mapi.aktivePageEarthfavesMarkerArray[i]);
			mapi.addOverlay(PMarker,"paginationMarker",i);
		}
		var fade = false;
		if(mapi.lastSearchOverall <= 0){fade= true;}
		mapi.hideMapLoaderAnimation("found " + mapi.lastSearchOverall,fade);
}


function findEarthfaveInClusterX(mapObj,x){
	var ret = 0;
	for ( j = 0; j < mapObj.earthfaves.length; j++){			if( mapObj.earthfaves[j].clusterId == x ){ret++;}	}
	return ret;
}

function findClusterEfInRList(mapObj,cEfId){
	for ( j = 0; j < mapObj.earthfaves.length; j++){		if( mapObj.earthfaves[j].id == cEfId ){return true}}
	return false;
}

//Maria 20.05.2010
function changeImageWhenChangeMouse(elemId, newImg){
	if(elemId){	document.getElementById(elemId).style.backgroundImage = 'url('+newImg+')';}
	else{	alert('No element ID in function changeImageWhenChangeMouse in ext.js')}
}


function earthfavesLookupCallback(response){ // suchstring earthfavescallback earthfavecallback
	var cLog = true; // console,log HIER ein und aus schalten
	if(cLog){console.log("ext.js->earthfavesLookupCallback ....TIME::::::::::" + zeitJetzt());}
	//daniel: Achtung. nie von Hand umlaute bei Ef - Namen in die DB eintragen !!!
	var resultList = '';var lng_min = 180; var lng_max = -180;var lat_min = 90;	var lat_max = -90;
	if(cLog){console.log("..pos 0");}
	var result = JSON.parse(response);
	if(cLog){console.log("..pos 1");}
	if (result.target.mapId == ""){	result.target.mapId = 0;	}
	var map = Application.getActiveMap();
		
	map.searchForcedRegionId = new Array () ;
	map.searchForcedRegionId = result.target.searchForcedRegionId.split (":") ;
	map.searchForcedRegion = result.target.searchForcedRegion ;
	map.efId = result.target.efId ;
	
	if(cLog){console.log("..pos 3");}
	if (map.efId != "")	{
		map.aktivePageEarthfavesSearch = false ;	//remi code. Wenn er nur einen ef haben will, will er keine pagination rote punkte
	}
	if(cLog){console.log("..pos 4");}
	if(!map.overlaysCleared){//ich weiss nicht welche Callback das Clear ausfÃ¼hren soll	
		if(cLog){console.log(" +++++++++++++++++++++ ext.js -> earthfavesLookupCallback loesche marker on map ++++++++++++++++++ ");}
		map.clearOverlays("earthfavesLookupCallback");	map.overlaysCleared = true;
		if(cLog){console.log(" +++++++++++++++++++++ ext.js -> earthfavesLookupCallback  marker on map geloescht ++++++++++++++++++ ");}
	}
	if(cLog){console.log("earthfavesLookupCallback Pos 1");}
	
	map.earthfaves = new Array();
	if (result.rc == 0) {
					if( result.efs ){ // Daniel: DU geiler !!! Du musst auch schauen, dass das array ueberhaut existiert !!
								map.aktivePageEarthfavesIdArray = new Array(); // leeren vorm fuellen
								if(cLog){console.log("ext.js -> earthfavesLookupCallback earthfaves: " + (result.efs.length) + " Treffer gefunden stelle 2 ");}
								if(cLog){console.log("ext.js -> earthfavesLookupCallback MarkerArray laenge vor schleife " + map.markerArray.length);}
								var langEf = result.efs.length;
								for (var i = 0; i < langEf; i++) {
											var earthfave = new Earthfave(result.efs[i]);
											map.earthfaves[i] = earthfave;
											map.aktivePageEarthfavesIdArray.push(earthfave.id);
												//marker oder kein Marker siehe showMarker on map, da werden auch marker erzeugt
											var marker = map.createMarker(earthfave);
											if (get.page_id == "extern_map"){		resultList += earthfave.asNewResultListEntryExt(marker.id);	}
											else	{		resultList += earthfave.asNewResultListEntry(marker.id);	}
											if (result.target.autoZoom == "1") {
												if (lat_min > earthfave.lat) {lat_min = earthfave.lat;}
												if (lat_max < earthfave.lat) {lat_max = earthfave.lat;}
												if (lng_min > earthfave.lng) {lng_min = earthfave.lng;}
												if (lng_max < earthfave.lng) {lng_max = earthfave.lng;}
											}
								}
								if(cLog){console.log("ext.js -> earthfavesLookupCallback MarkerArray laenge nach schleife" + map.markerArray.length);}
					
								if (result.target.autoZoom == "1") {
									var lat_center = lat_min + (lat_max - lat_min)/2;
									var lng_center = lng_min + (lng_max - lng_min)/2;
									var center = new GLatLng(lat_center, lng_center);
									var bounds = new GLatLngBounds(new GLatLng(lat_min, lng_min), new GLatLng(lat_max, lng_max));
									var zoom = map.realMap.getBoundsZoomLevel(bounds);
									Map.zoomlevelMerker = zoom; // merke mir den zoomlevel siehe mapMove
									if(cLog){console.log("ext.js -> earthfavesLookupCallback Autozoome = 1 !!!!!!!  ... bounds = " + bounds + ", center = " + center + ", zoom = " + zoom, 4);}
									map.setCenter(center, zoom);
								}
								if(getDiv(result.target.listId)){
									getDiv(result.target.listId).innerHTML = resultList;
									getDiv(result.target.listId).style.opacity = "1";
								}
								else {
									if(cLog){console.log("kann das Element nicht finden ",result.target.listId);}
								}
								if(cLog){console.log("schreibe innerHTML fertig ...");}
					}	else { getDiv(result.target.listId).innerHTML = "";} // kein result.efs !!!!				
					if( result.efp ){
								var langPagEf = result.efp.length;
								if(cLog){console.log("ext.js -> earthfavesLookupCallback .. es gibt paginations marker anz: " + langPagEf);}
								map.aktivePageEarthfavesMarkerArray = new Array();
								for (var i = 0; i < langPagEf; i++) {
										var PaginationMarker = new PaginationMarkerProvider(result.efp[i]);			
										map.aktivePageEarthfavesMarkerArray[i] = PaginationMarker;
								}
								if(cLog){console.log("ext.js -> earthfavesLookupCallback .. es wurden  " + map.aktivePageEarthfavesMarkerArray.length + ' paginationMarker erzeugt');}
					} else {
							if(cLog){console.log("ext.js -> earthfavesLookupCallback .. es gibt keine paginations marker anz: " + langPagEf);}
						
					}
	}
	
	var myAll = parseInt(result.target.overall);
	//console.log("pos1 myAll " + myAll);
	if(global.user_id=="1"){// daniel: warum brauch ich noch diese angaben : || !result.target.filter || result.target.filter != ""){
		//this is only for people who is not login, to show all results in others users container
		//if(checkDiv(Array("result-info-container-others"))){	getDiv("result-info-container-others").innerHTML=myAll;}
		if(checkDiv(Array("result-info-container-all"))){	getDiv("result-info-container-all").innerHTML=myAll;}
		if(xx = getDiv("degradado-all")){	xx.onMouseOver = function(){showMouseHand();alert("hallo");}}
	}
	if(checkDiv(Array("result-info-container-all-earthfaves"))){
			var allD = getDiv("result-info-container-all-earthfaves");
			var inD = parseInt(allD.innerHTML);
			allD.innerHTML = myAll;			
			var div = getDiv("DisplayNumberEarthfaves");
			if(myAll>200) {
				var txt='Displaying 200 of '+myAll+' results';
				div.style.display='block';
				div.innerHTML=txt;
			}
			else if (myAll<=200) {	div.style.display='none';		}
	}
	//console.log("pos1_1");
	map.lastSearchOverall = myAll; // merke mir die anzahl aller funde
  console.log("...ef results: " + map.lastSearchOverall);
//	console.log("pos2");
	if(map.efId){
		if(cLog){console.log("ext.js earthfavesLookupCallback --- map.efId exist");}
		if (map.efId == ""){
			myFrom = parseInt(result.target.from);
			if(cLog){console.log("baue pagination fuer " + myAll + " earthfaves ", 5, "earthfavesLookupCallback");}
			if(cLog){console.log("result.target.overall " + result.target.overall, 5, "earthfavesLookupCallback");}
			//result.target.overall
			var pagination = new Pagination(myAll,myFrom,"","",global.PAGINATION_STEP_EARTHFAVES,global.PAGINATION_NUMBERS_IN_PAGINATION,result.target.count,"earthfaves",result.target.filter,result.target.ignoreMove,result.target.ignoreSearch1,result.target.ignoreSearch2,1);
			pagination.createPagination();
		} else {  if(cLog){console.log("map.efid not empty"); }}
		if (map.efId != "")	{		one_earthfave_map() ;	}
	} else {
			if(cLog){console.log("ext.js earthfavesLookupCallback no map.efid");}
			if(cLog){console.log("ext.js earthfavesLookupCallback quadrantsearch wert rueckgabe des servers: " + result.target.quadrantsearch);}
			myFrom = parseInt(result.target.from);
			var pagination = new Pagination(myAll,myFrom,"","",global.PAGINATION_STEP_EARTHFAVES,global.PAGINATION_NUMBERS_IN_PAGINATION,result.target.count,"earthfaves",result.target.filter,result.target.ignoreMove,result.target.ignoreSearch1,result.target.ignoreSearch2,result.target.quadrantsearch);
			pagination.createPagination();
	}

	if(map.clusterSearch){// wenn clustersearch true
			if(map.clusterCallback){showMarkerOnMap("ef");} // und wenn deren callback true, dann zeige alle Objekte
	} else {showMarkerOnMap("ef");} // wenn keine clustersuche dann denoch die efs zeigen
	map.earthfavesCallback  = true;
	activeMap = Application.getActiveMap();
	if(getDiv("result-overall")){	getDiv("result-overall").innerHTML = "";}
	if(cLog){console.log("ext.js earthfavesLookupCallback ENDE map.id " + map.id + "activeMap.id " + activeMap.id, 5, "earthfavesLookupCallback TIME:::::" + zeitJetzt());}
}

//aufgerufen in der earthfavesLookupCallback siehe oben
function processResults(){
	var resultList = "";
	for (var i = 0; i < Map.placesGoogle.length; i++)	{
				var doContinue = false;
				for (var j = 0; j < Map.earthfaves.length; j++)	{ 	
					if (Map.placesGoogle[i].equal(Map.earthfaves[j])) {			doContinue = true;		break;		}
				}
				if (doContinue) {	doContinue = false;		continue;	}
				else {
					var marker = Map.createMarker(Map.placesGoogle[i]);
					Map.addOverlay(marker,"normal",i);
					resultList += Map.placesGoogle[i].asResultListEntry2(marker.id);
				}
	}
	getDiv("result-list").innerHTML +=  resultList;
	getDiv("result-list").style.opacity =  "1";
}
// 2011.01.25 daniel geaendert , da nr nichtr genuegte ich brauche NOCH einen unterscheid
function hideStats(type,nr){
	hideDiv("userStats_" +type+ "_" + nr);hideDiv("button_red_" +type+ "_" + nr);	showDiv("button_blue_" +type+ "_" + nr);
}

function clearEarthfavesCount(){ // beim manuellen Anlegen eines Efs werden die werden die container geleert
	document.getElementById("result-info-container").style.display = "none";
	document.getElementById("result-title").innerHTML = "";
	document.getElementById("result-title-search").innerHTML = "";
	document.getElementById("result-overall").innerHTML = "";
}

function earthfavesCountCallback(response) {
		console.log("-------------------  ----------  earthfavesCountCallback -------- ------------------------- TIME: " + zeitJetzt());
		//2011.01.10 daniel die earthfaves sollen nun nicht mehr gezaehlt werden.
		// erst wieder zaehlen wenn submitsearch und mapMove
		earthfavesCount = false;
		var r = response.split("|");
		var mine = r[0];var f = r[1];	var ff = r[2]; 	var follow = r[3];	var other = r[4];	var alle = r[5];	var experts = r[6];
		var mProz,fProz,ffProz,oProz,folProz;
		
		var activeMap = Application.getActiveMap();
		activeMap.lastSearchMy = mine;
		activeMap.lastSearchFriends = f;
		activeMap.lastSearchFF = ff;
		activeMap.lastSearchOther = other;
		activeMap.lastSearchFollow = follow;
                activeMap.lastSearchExperts = experts;
// anna: textDecoration auskomentiert!
              	
		var mineDiv = getDiv("result-info-container-mine");
		mineDiv.innerHTML = String(mine);
		//if(mine<=0){mineDiv.style.textDecoration = "none";}
		//else {mineDiv.style.textDecoration = "underline";}
	
		var freundDiv = getDiv("result-info-container-friends");
		freundDiv.innerHTML = String(f);
		//if(f<=0){freundDiv.style.textDecoration = "none";}
		//else {freundDiv.style.textDecoration = "underline";}
		
		var ffDiv = getDiv("result-info-container-friends-friends");
		ffDiv.innerHTML = String(ff);
		//if(ff<=0){ffDiv.style.textDecoration = "none";}
		//else {ffDiv.style.textDecoration = "underline";}

		var folDiv = getDiv("result-info-container-follow");
		folDiv.innerHTML = String(follow);	
		//console.log("follow ist " + follow + " follow + 1 = " + ( follow + 1 ));
		//if(follow<=0){folDiv.style.textDecoration = "none";}
		//else {folDiv.style.textDecoration = "underline";}
		
		var othersDiv = getDiv("result-info-container-others");
		othersDiv.innerHTML = String(other);	
		//if(other<=0){othersDiv.style.textDecoration = "none";}
		//else {othersDiv.style.textDecoration = "underline";}

        var expertsDiv = getDiv("result-info-container-expert");
		expertsDiv.innerHTML = String(experts);
		//if(experts<=0){expertsDiv.style.textDecoration = "none";}
		//else {expertsDiv.style.textDecoration = "underline";}
		
		var allDiv = getDiv("result-info-container-all");
		allDiv.innerHTML = String(alle);
		//if(alle<=0){allDiv.style.textDecoration = "none";}
		//else {allDiv.style.textDecoration = "underline";}	
			
		//document.getElementById("result-info-container-all-earthfaves").innerHTML = String(alle);
		//var sum = parseInt(alle);
		//sum = sum + Google.countResults + Places.countResults;
		//sum += parseInt(r[6]);
		//getDiv("result-info-container-all-earthfaves").innerHTML = parseInt(sum);
		//getDiv("result-overall").innerHTML = "Results:" + r[5]; // siehe in  earthfave.inc.php
		
		//if(  activeMap.searchPlaces  ){ // sollen places angezeigt werden
		//	getDiv("result-info-container-undiscovered").innerHTML = r[6];
		//	placesCount=r[6];
		//}
		if ( global.user_id != "1" ){	showDiv("result-info-container");}
		console.log("************* earthfavesCountCallback ende *************") ;
}

//countCallback
function countPlacesCallback(response) {  
	cLog = false;
	if(cLog){console.log("++++++++++++++++++ countPlacesCallback ++++++++++++++++++");}
	Places.countResults = parseInt(response); // remember the last results from DB place count

	if( global.GOOGLE_PLACES == 1){	
				if(cLog){console.log("++++++++++++++++++ GoogleProvider count places +++++++++++++++++++++++++");}
				Google.onlyCount = true;
				Google.countResults = 0; // remember the last results from google place count
				var activeMap = Application.getActiveMap();
				lookupGoogle(global.search1, activeMap);
	} else {
				var pg = false;
				var check = Places.countResults  + 8;
				if(cLog){console.log("...pg check konstante ist " + global.GOOGLE_PLACES_BY_DB_PLACES + " check " + check + " pags " + global.PAGINATION_STEP_PLACES);}
				if(global.GOOGLE_PLACES_BY_DB_PLACES && check < global.PAGINATION_STEP_PLACES){pg = true;}
				
				if(pg){
					if(cLog){console.log("++++++++++++++++++ GoogleProvider count places fuer rest +++++++++++++++++++++++++");}
					Google.onlyCount = true;
					Google.countResults = 0; // remember the last results from google place count
					var activeMap = Application.getActiveMap();
					lookupGoogle(global.search1, activeMap);
				} else {
					if(cLog){
						console.log('...  keine google search ');
						console.log('...  google-results:    0');
						console.log('...  db-places-results: ' + Places.countResults);
					}
					if( unD = getDiv("result-info-container-undiscovered") ){			unD.innerHTML = Places.countResults;	}
					if(unD2 = getDiv("search-field-places") ) {
						unD2.innerHTML = '<span class="found-earthfaves">&nbsp;and </span><span class="number-earthfaves-found"> ' + Places.countResults + '</span>';
						unD2.innerHTML+= '<span class="found-earthfaves"> places </span>';
					}
			}
	}
}
function resetResultInfoDivs(){
    getDiv("result-info-container-mine").innerHTML = '0';    getDiv("result-info-container-friends").innerHTML = '0';   getDiv("result-info-container-friends-friends").innerHTML = '0';
    getDiv("result-info-container-others").innerHTML = '0';  getDiv("result-info-container-expert").innerHTML = '0';    getDiv("result-info-container-follow").innerHTML = '0';
    getDiv("result-info-container-undiscovered").innerHTML = '0';
}

function earthfavesCountCallbackOnError(response) {  resetResultInfoDivs();}
function earthfavesCountCallbackOnTimeout(response) {   resetResultInfoDivs();}
//in der datei zb user.inc.php muss im window.onload = drin sein BrowserDetect.init()
function consoleClear(){if(BrowserDetect.browser == "Firefox"){	try {	console.clear();}	catch(err){}}}
	
function submitSearch(type, field1, field2, ext){
	console.log("++++++++ ext.js->submitSearch  +++++++++++++");
	// daniel 2010.08.19 wird in der earthave.inc.php init mit true. Weil ja am anfang erstmal meine efs angezeigt werden
	// klicke ich search soll der trustLevelDiv ausgeblendet werden. Das mache ich, wenn myEarthfavesLeftMenu false ist.
	if(getDiv("overlayCountForFilters")) hideDiv("overlayCountForFilters");
	myEarthfavesLeftMenu = false;
	//Daniel 201.08.17 die Filter ob DISC,BOOK; F oder FF abstellen bei de
	hideMyEarthfavesSearch();
	if(a = getDiv('result-info-container-all-earthfaves')){
		a.innerHTML='*';
		filterCountryThemeDeselectAll();
		hideDiv('CountryThemeFilter');
	}
	if(x=getDiv("search-field-places")){x.innerHTML = "";}
	if(y=getDiv("search-field-what")){y.innerHTML = "";}
	if(z=getDiv("result-info-container-undiscovered")){z.innerHTML = "0";}
	if(getDiv('resultList') ){showDiv('resultList');}
	if (field1 == global.SEARCH1_DEFAULT || field1 == "Name, Keyword, Street") { field1 = "";}
	if (field2 == global.SEARCH2_DEFAULT || field2 == "City, State") { field2 = "";}
	
	if( field1 != "" || field2 != ""){
		global.filterBrowseLink = "";
		global.search1 = field1;
		global.search2 = field2;
		var infoContainer = getDiv("result-info-container");
		console.log("++++++++ ext.js->submitSearch  search1: " +  global.search1 + " search2 :" + global.search2 + " type: " + type);
		
		switch (type){
			case 'business_earthfave_search':
				getDiv("result-list-overlay").innerHTML = '<div class="progress-white" style="height:70px;"></div>';
				Google.getPoint(global.search2, addWizardGetPointCallback);
				global.lastSearch = "searchAdd";
				break;		
			
			case 'addearthfaveoverlay':
				if ( field2 == ''){					alert("Please enter the city in the right search box.");				}
				else if( field1 == ''){					alert("Please enter the business or location name or the category in the left search box.");				}
				else {	
					getDiv("result-list-overlay").innerHTML = '<div class="progress-white" style="height:400px;"></div>';
					Google.getPoint(global.search2, addWizardGetPointCallback);
					global.lastSearch = "searchAdd";
				}
				break;			
			
			case 'earthfaves':
				if (get.page_id == "earthfaves"){
							closeNirvanaOverlay(); // schliest das overlay wenn es offen ist zum manuaellen anlegen von efs
							changeBgPagination('#ffffff');
							getDiv('degradado-all').style.background='#fff';
							changeBgOptions('degradado-all')
							setInactivAllNavigationPoints('ulBlue'); // alle linken menupunkte unselect
							setActivNavigationPoint(getDiv("hrefAlleEfs")); // der oberste "all efs" anwaehlen
							
							if(typeof(menu) != "undefined" &&  menu){menu.setLastEfFilter(''); }
							if(  field1 != "" ){
								Map.earthfavesFilterArray = new Array(); // leere die filter der checkboxen wenn in Feld 1 eine eingabe gemacht wurde
								uncheckAllMapFilter(); // alle ausgewaehlten checkboxen  unchecken !
							}
							if ( field2 != ""){
								Map.searchForcedRegion = "" ;
								Map.searchForcedRegionId = new Array () ;
								DefaultFilterCountry() ;
							}
					
							//daniel 2008 12 09 ich machen die pagination mal leer
							if(c = getDiv('result-title-bottom')){c.innerHTML = "";}
							if(d = getDiv('result-pagination-bottom')){d.innerHTML = "";}
							if( global.RESULTLIST_CLEAR_ENABLE ) {					
								if (e = getDiv("result-list")) {
										console.log(';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oco;;;;;;;;;;;;;;;;;;');
										//e.innerHTML = "";		
											e.style.opacity = "0.2";
								}	
							}
							Map.ignoreNextMove = false;
							Map.ignoreMove = false;
							Map.overlaysCleared = false;
							//Map.lastSearchOverall = 0;
							Map.globalCallerOfMapMove = "submitSearch";
							Map.manualyCreatedPlace = false;
							Map.trustLevelClick = "none"; // Daniel 2011.01.16
							Map.searchRedundanceData = 0; // 2011.01.06 daniel: in myearthfaves links im menu wird redundant gesucht. Bei submit serach ohne also 0.
							earthfavesCount = true;// die efs sollen gezaeht werden fuer die TLL
							console.log('+++++++ ext.js->submitSearch  searchRedundanceData: ' + Map.searchRedundanceData + "+++++++++++++");
							console.log('+++++++ ext.js->submitSearch  manualyCreatedPlace: ' + Map.manualyCreatedPlace + "+++++++++++++");
							//info("submitSearch ext.js Map.ignoreNextMove=" + Map.ignoreNextMove + " Map.ignoreMove=" + Map.ignoreMove);
							if(  field2 != "" ){ 
										if( field1 != ""){getDiv('search-field-what').innerHTML = field1 + "&nbsp;,&nbsp;" ;}
										getDiv('search-field-city').innerHTML =  field2;
									
										//daniel 2010.08.18...begin... searchQuadrantSearch true = in der lookupEaqrthfaves innerhalb spezieler Coordinaten suchen
										//achtung, es wird in der lookupEarthfaves "quadrant" und nicht searchQuadrantSearch abgefragt.
										// hier stimmt was nicht !!!
										Map.searchQuadrantSearch = true;
										//daniel...ende	
										console.log("ext.js submitSearch feld 2 ist nicht leer");
										//Map.realMap.clearOverlays();
										Map.clearOverlays("submit search in ext.j");
										Map.overlaysCleared = true; // alles wurde geloescht
										
										if(global.GOOGLE_MAP_V3){	Google.getPoint(field2, getPointCallbackV3);}
										else { Google.getPoint(field2, getPointCallback); }	
										Map.showMapLoaderAnimation();
							}
							else { // keine ortsangabe in feld 2 fuehrte zu einem fehler. Daher setze ich ihn auf berlin
										if( field1 != ""){getDiv('search-field-what').innerHTML = field1;}
										getDiv('search-field-city').innerHTML =  "";
										Map.ignoreNextMove = true ;
										lookupEarthfaves("", 1,global.paginationStepEarthfaves,false,false,false,false,true);
										enableOrdisableSearchFuntions(true); // setzt einige sachen auf disable 
							}
							infoContainer.style.display = "block";
						}	else {
							document.location.href = global.URL + "index.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2;
						}
						enableOrdisableSearchFuntions(true); // setzt einige sachen auf disable
				break;
				
				case 'people':
					lookupPeople("task:showAll---farbe:blue---", field1, field2, 1, global.PAGINATION_STEP_PEOPLELIST,global.PAGINATION_STEP_PEOPLELIST,"byName");
					global.lastSearch = "lookupPeople";
					setInactivAllNavigationPoints('ulBlue'); // anna, set Inactive navigationsliste 
					setInactivAllNavigationPoints('ulPeopleNav'); // anna, set Inactive navigationsliste, teil2
					break;	
		}
	}//if: sind die beiden felder leer , wird keine suchanfrage abgesendet
}

//Daniel 
function submitSearchIndex(event, form, s1, s2){
	if (window.event && window.event.keyCode == 13 || event && event.which == 13){
		var name = document.forms.search_simple.elements.name.value;
		var address = document.forms.search_simple.elements.address.value;
		if (name != s1   ||  address.value != s2){
			if(name == s1){name = "";}
			if(address == s2){address = "";}	
			document.location.href='earthfaves.php?search1=' + name + '&search2=' +
			address + '&searchtype=' + document.getElementById('searchtype').value
			}
		}
	  else {return true;}
}

function klickSearchIndex(wert1, wert2, searchType, s1, s2){
	if (wert1 != s1 && wert2 != s2){document.location.href='earthfaves.php?search1=' + wert1 + '&search2=' + wert2 + '&searchtype=' + searchType;}
  else {return true;}
}
function submitLogin(event){
	// Firefox get the event object by parameter <event>, internet explorer by the window.event object
	if (!event) {	if (window.event) {		event = window.event;	}}
	if (event && event.type == "keypress"){
		if (event.keyCode == 13){
			verifyLogin();
			return false;
		}
		else if (event.keyCode == 27){
			hideForm(global.LOGIN_ID_PREFIX);
			return false;
		} 
	}
}
function consoleSpace(){for(var a=0; a<5;a=a+1){console.log("");}}
//daniel siehe UIModules3::showBusiDashboard()
function fncBoxesUserHome(i){
	console.log('ext.js-> fncBoxesUserHome i ist ' + i);
}

function hideHowToCreateEfAddW(){
	if($('#mapCreateNirvanaInfobox')){
		$('#mapCreateNirvanaInfobox').css({"top":"445px"});
	}

 $('#howToCreateEfHide').hide(0);//fadeIn oder fadeOut macht ein alphablending
 $('#howToCreateEfShow').show(0);
 $('#divSearchContainer').slideUp(500);
}

function showHowToCreateEfAddW(){
	if($('#mapCreateNirvanaInfobox')){
		$('#mapCreateNirvanaInfobox').css({"top":"555px"});
	}
 $('#howToCreateEfShow').hide(0);	
 $('#howToCreateEfHide').show(0);
 $('#divSearchContainer').slideDown(500);

}

function slideInOutSignUp(){//daniel
	console.log('slideInOutSignUp');
	var speed = 200;
	if($('#slideSignUpDiv')){
		if($("#slideSignUpDiv").is(':hidden')){
			 if(!$("#slideLogInDiv").is(':hidden')){$('#slideLogInDiv').slideUp(speed); $('#buttonLogIn').text("Login");}
			 console.log('slideInOutSignUp ... runter slide');
			 //$('#slideSignUpDiv').show(0);
			 $('#slideSignUpDiv').slideDown(speed);
			 $('#buttonSignUp').text("Cancel");
		} else {
			console.log('slideInOutSignUp ... hoch slide');
			$('#slideSignUpDiv').slideUp(speed);
			$('#buttonSignUp').text("Sign up");
		}
	}
}

function  slideInOutLogin(){ // daniel
	console.log('slideInOutLogin');
	var speed = 200;
	showDiv("login_-pop-up");
	if($('#slideLogInDiv')){
		if($("#slideLogInDiv").is(':hidden')){
			 if(!$("#slideSignUpDiv").is(':hidden')){$('#slideSignUpDiv').slideUp(speed); $('#buttonSignUp').text("Sign up");}
			 console.log('slideLogInDiv ... runter slide');
			 //$('#slideSignUpDiv').show(0);
			 $('#slideLogInDiv').slideDown(speed);
			 $('#buttonLogIn').text("Cancel");
		} else {
			 console.log('slideLogInDiv ... hoch slide');
			$('#slideLogInDiv').slideUp(speed);
			$('#buttonLogIn').text("Log in");
		}
	}
}

// schreibt etwas in den help div
function changeHelpDiv(data){getDiv(global.LOGIN_ID_PREFIX + 'note').innerHTML = data;}
// Anna 11.08.10
function checkNewForm(isGast){
	var senden = true; // es gab fehler
	var text = getDiv('contact_text').value;//textarea
	var trimText = trim(text);
	var errT = getDiv('error-contact_text');
	if ( trimText.length < 5 ) {
		errT.innerHTML = '<font style="color:#ff0000;font-size:10px;">Please insert text with a minimum of 5 characters</font>';
		errT.style.display = "block";
		senden = false;	
	} else {errT.style.display = "none";}
	if(isGast == 1){
			// email überprüfen
				var email = getDiv('contact_email').value;
				var trimE = trim(email);
			//	var trimAbsender = trim(absender);
				var errE = getDiv('error-contact_email');
				var reg = new RegExp("([a-zA-Z-\.]*[a-zA-Z-0-9]+)+@[a-zA-Z-0-9]{2,}[\.][a-zA-Z-]+");	
			
				if (email == "" || !reg.test(email)) {
			//		alert ('falsche email');
					errE.innerHTML = '<font style="color:#ff0000;font-size:10px;">You must provide a correct value for your email</font>';
					errE.style.display = "block";
			senden = false;	
		} else {errE.style.display = "none";}
	}
	var subject = getDiv('contact_subject').value;
	var trimSubject = trim(subject);
	var errS = getDiv('error-contact_subject');
	errS.style.display = "none";
	
	if(senden){
		//alert("sende mail");
		sendContactForm(isGast);
	}
}

// Anna 11.08.10   Ende
