
/**
 * The GUI interactions
 */
 //Arno: Bruache ich , um das EF-Popup sichtbar und unsichtbar zu machen
 var isVisible = false;
//Variable fuer den Code, der die Mausposition tracken soll
var docEl = (typeof document.compatMode != "undefined" && document.compatMode  != "BackCompat" )? "documentElement" : "body";
var mausX = 0;
var mausY = 0;
//var loginIdPrefix = 'login_';


// rick die brauche ich auf jeder Seite, um ein EF mit der neue AddWizard zu bookmarkt.
// TODO: pruefen, ob noch benoetigt
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 signupFacebookIdPrefix = 'userFacebookSignUp_';
var signupFacebookTDIdPrefix = 'userFacebookSignUp_td_';
var signupFacebookTRIdPrefix = 'userFacebookSignUp_tr_';
var signupIdPrefix = 'signup_';
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 signupTDIdPrefix = 'signup_td_';
var signupTRIdPrefix = 'signup_tr_';
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_';


var showProfileParameters = new Array('first-name', 'last-name', 'city', 'country', 'gender', 'birthday-day', 'birthday-month', 'birthday-year', 'newsletterAccepted', 'offerAccepted', 'website', 'about-me', 'countries-i-visited', 'languages-i-speak', 'music-i-like', 'movies-i-like', 'tv-i-like', 'books-i-like', 'work-occupation', 'work-company', 'work-subject', 'upload-1', 'upload-2', 'upload-3', 'avatar', 'you-tube');

// 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("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); 



 
 
//var toolTips = new Array();

/*
function initMooTooltip(param){
	//alert("moooo tip");
	//	window.addEvent('domready',function(){$$('.Tips2').each(function(element,index){
window.addEvent('domready',function(){$$('.' + param + '').each(function(element,index){
			var content = element.get('title').split('::');
			element.store('tip:title', content[0]);
			element.store('tip:text', content[1]);
			});
		
			//var toolTips = new Tips('.Tips2');
			var toolTips = new Tips('.' +  param + '');
			//var randomnumber=Math.floor(Math.random()*100);
			
			 //var tipps = new Tips('.' +  param + '');
		
		
			toolTips.addEvent('show', function(tip){
		  //tipps.addEvent('show', function(tip){
				tip.fade('in');
			});
		
			toolTips.addEvent('hide', function(tip){
			//tipps.addEvent('hide', function(tip){
				tip.fade('out');
			});
		
			//toolTips.push(tipps);
			
	});
}
*/


// 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.zoomlevelAllowingCreatingEf){
			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.realMap.setZoom(newZoom);
	createNirvanaEarthfave();
}
																		
																

function showToolTip(objZeige,objPos,inhalt)
{

	var  lilink =  document.getElementById(objPos);
	var x = findPosX(lilink);
	var y =  findPosY(lilink);
	
	var lipop = document.getElementById(objZeige);
	lipop.style.display = "block";
	lipop.style.top = y + lilink.offsetHeight + "px";
	//lipop.style.left =  x + lilink.offsetWidth + "px";
	lipop.style.left =  x + "px";
	lipop.innerHTML = inhalt;
		
	if(navigator.userAgent.indexOf('Firefox')!=-1) {lipop.style.position = 'fixed';	}
	else{		lipop.style.position = 'absolute';	}

}


function hideToolTip(objHide) 
{
	var at = document.getElementById(objHide);
	at.style.display = "none";
}



function showAddTip(name) 
{
	var nb = document.getElementById(name);
	var x = findPosX(nb);// + 20;
	var y =  findPosY(nb);// + 30;
	
	var at = document.getElementById(name + "-help");
	at.style.display = "block";
	at.style.top = y - 15 - nb.offsetHeight + "px";
	at.style.left =  x + 50 - at.offsetWidth + nb.offsetWidth + "px";		
}


function hideAddTip(name) 
{
	var at = document.getElementById(name + "-help");
	at.style.display = "none";
}


function showLogin()
{
	showForm(global.LOGIN_ID_PREFIX, 'modal');
}


function showInvite()
{
	showForm(global.INVITE_ID_PREFIX, 'modal');
}


function showPasswordForgotten()
{
//	hideLoginForm();
	hideForm(global.LOGIN_ID_PREFIX);
	hideForm("forgotten");
	
	createForgottenForm();
	showForm('forgotten', 'modal');
}


function getStyle(element, style)
{
  // Computing padding needs distinguihing between IE and Firefox (Safari < 3 is not supported)
  if (element.currentStyle != undefined)
  {
    // IE
    var p = parseInt(element.currentStyle[style]);
  }
  else if (window.getComputedStyle != undefined)
  {
    // Firefox and Opera and Safari 3
    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)
{
 	var popup = document.getElementById(name + "-pop-up");
 
	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");

	// Bereich fuer Fehlermeldung (falls existent) ausblenden
	var note = document.getElementById(name + 'note');
	if (note) note.style.display = "none";

 	a = document.body.clientWidth;
 	b = document.body.clientHeight;

// info("showForm ext.js clientWidth = " + a + "clientHeight=" + b);

 	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		c = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	// Explorer 6 Strict Mode
	{
		c = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		c = document.body.clientHeight;
	}

 	popup.style.display = "block";
	//popup.zIndex = 1000;

 	x = popup.clientWidth;
 	y = popup.clientHeight;

	var neuLeft = (a - x) / 2;
	var neuTop = (c - y) / 2;
	//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" ;

//	alert("a=" + a + ", b=" + b +", c=" + c + ", x=" + x + ", y=" + y + ", left=" + popup.style.left + ", top=" + popup.style.top);

	if (modal == "modal")
  	{
		var modal = document.getElementById('modal-1');
		if (modal) 
		{
			//zi = modal.zIndex;
			//zi = 1;
			//alert("faound modal z-index " + zi);
			
			modal.style.display = "block";
			modal.style.height = b + "px";
		}
		//Daniel 2008 08 13 ich weiss nicht was das im neuen Layout noch soll.
		//ich glaube branding war das Flash. Ich habs mal ausdokumentiert
		//document.getElementById('branding').style.display='none';
  }

	// Der Overlay soll mitscrollen
	// Daniel: Was soll der Code da unten. soll das nicht in die css
	/*
	if (navigator.userAgent.indexOf('Firefox/2') != -1) {	// Firefox 2
		popup.style.position = 'fixed';
	}
	else {	// Alle anderen
		popup.style.position = 'absolute';
	}*/

	// Set focus on first input tag
	var input = popup.getElementsByTagName('input')[0];
	if (input != undefined) input.focus();
}

/* --------- 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) // all except Explorer
	{
		//x = self.innerWidth;
		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;
	//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 showForm2(name, modal)
{
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	//if(document.getElementById(name2)){	var ref = document.getElementById(name2); } Daniel
	//var x = getAbsoluteX(ref);Daniel
	//var y = getAbsoluteY(ref);Daniel
	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;
	info("maMiddleX" +mapMiddleX);
	info("mapMiddleY" +mapMiddleY);
	
	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";
		}
	}
	//y = y - 200;// anzeigen oberhalb des elementes Daniel
//	alert ("pos xy " + x + " " + y ); Daniel
		info("ext.js showForm2 x/y" + x + " / " + y);

 	popup.style.display = "block";
	
//Arno: Anzeige des Overlays über Koordinatenberechnung, nicht über Pixel	(Problem bei längengrad +-180)
 //	popup.style.left = ( x + 30 ) + "px"; // (a - x) / 2 + "px" ;
 // popup.style.top = y  + "px"; //(c - y) / 2 + "px" ;
 //Arno: Position des EF-Overlays
/*	switch (overlayPos) {
		case "obenrechts":  popup.style.top = (y - 129) + "px";
							popup.style.left =(x + 15) + "px";	
					
                   break;
		case "untenrechts": popup.style.top = (y + 15) + "px";
							popup.style.left = (x + 15) + "px";
                     break;
		case "obenlinks":   popup.style.top = (y - 129) + "px";
						    popup.style.left = (x - 515) + "px";
                     break;
		case "untenlinks":  popup.style.top = (y + 15) + "px";
						    popup.style.left = (x - 515) + "px";
                     break;
	}*/


//Daniel
//	if (modal == "modal") 	{	var modal = document.getElementById('modal-1');	if (modal) 		{	modal.style.display = "block";		b = document.body.clientHeight;		modal.style.height = b + "px";} }

	//if (navigator.userAgent.indexOf('Firefox') != -1) {	popup.style.position = 'fixed';	}
	//else {		popup.style.position = 'absolute';	}
//	var input = popup.getElementsByTagName('input')[0];
//	if (input != undefined) input.focus();
}

function showForm3(name, modal)
{
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	//if(document.getElementById(name2)){	var ref = document.getElementById(name2); } Daniel
	//var x = getAbsoluteX(ref);Daniel
	//var y = getAbsoluteY(ref);Daniel
	var x = mausX;
	var y = mausY;

			popup.style.top = (y + 15) + "px";
			popup.style.left = (x + 15) + "px";
	
	//y = y - 200;// anzeigen oberhalb des elementes Daniel
//	alert ("pos xy " + x + " " + y ); Daniel
		info("ext.js showForm2 x/y" + x + " / " + y);

 	popup.style.display = "block";
	info("showForm3 " + x  + " / " + y);
}

function showForm4(name, modal)
{
 	var popup = document.getElementById(name + "-pop-up");
 	if (! popup) alert ("Popup cannot be shown: " + name + "-pop-up");
	//if(document.getElementById(name2)){	var ref = document.getElementById(name2); } Daniel
	//var x = getAbsoluteX(ref);Daniel
	//var y = getAbsoluteY(ref);Daniel
	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;
	info("maMiddleX" +mapMiddleX);
	info("mapMiddleY" +mapMiddleY);
	
	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";
		}
	}
	//y = y - 200;// anzeigen oberhalb des elementes Daniel
//	alert ("pos xy " + x + " " + y ); Daniel
		info("ext.js showForm2 x/y" + x + " / " + y);

 	popup.style.display = "block";
	
//Arno: Anzeige des Overlays über Koordinatenberechnung, nicht über Pixel	(Problem bei längengrad +-180)
 //	popup.style.left = ( x + 30 ) + "px"; // (a - x) / 2 + "px" ;
 // popup.style.top = y  + "px"; //(c - y) / 2 + "px" ;
 //Arno: Position des EF-Overlays
/*	switch (overlayPos) {
		case "obenrechts":  popup.style.top = (y - 129) + "px";
							popup.style.left =(x + 15) + "px";	
					
                   break;
		case "untenrechts": popup.style.top = (y + 15) + "px";
							popup.style.left = (x + 15) + "px";
                     break;
		case "obenlinks":   popup.style.top = (y - 129) + "px";
						    popup.style.left = (x - 515) + "px";
                     break;
		case "untenlinks":  popup.style.top = (y + 15) + "px";
						    popup.style.left = (x - 515) + "px";
                     break;
	}*/


//Daniel
//	if (modal == "modal") 	{	var modal = document.getElementById('modal-1');	if (modal) 		{	modal.style.display = "block";		b = document.body.clientHeight;		modal.style.height = b + "px";} }

	//if (navigator.userAgent.indexOf('Firefox') != -1) {	popup.style.position = 'fixed';	}
	//else {		popup.style.position = 'absolute';	}
//	var input = popup.getElementsByTagName('input')[0];
//	if (input != undefined) input.focus();
}



//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)
{
	var e = document.getElementById(formName + '-pop-up');
	if (e) { 
		e.style.display = 'none';
	}
	e = document.getElementById('modal-1');
	if (e) { 
		e.style.display = 'none';
	}
}


function hideForgottenForm()
{
	hideForm("forgotten");
	document.getElementById('forgotten-pop-up').innerHTML="";
}


function showInline(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";
	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-save-" + name).style.display = "inline";
	document.getElementById("button-cancel-" + 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)
{
	info("showComInline name="+ 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";
	info("showComInline name nach sichtbar und unsichtbar setzen");
	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)
{
	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";
	
	// 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];
	}
}

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 verifyEditProfile()
{
  ret = true;
	var password1 = document.getElementById(editProfileWizardIdPrefix + 'password1').value;
	var password2 = document.getElementById(editProfileWizardIdPrefix + 'password2').value;
	
	if( password1.length == 0){ret = true;}
	else {
	  if(password1.length < 5){alert("Your password musst have 5 characters"); ret = false; }
		else{
			if (password1 != password2) { alert("The re-typed password differs from first one"); ret = false; }
			else {
				var reg = new RegExp("^[a-zA-Z-_0-9]+$");
				if (!reg.test(password1)){alert("Only these (a-z A-Z 0-9) characters are allowed in the new password"); ret = false;	}
			}		
		}
  }
	//alert ("return" + ret);
	return ret;
}

function verifyEditAccount()
{
    var oldpassword = document.getElementById(editAccountPrefix + 'oldpassword').value;
	var password1 = document.getElementById(editAccountPrefix + 'password1').value;
	var password2 = document.getElementById(editAccountPrefix + 'password2').value;
    var firstname = document.getElementById(editAccountPrefix + 'first-name').value;
    var lastname = document.getElementById(editAccountPrefix + 'last-name').value;
    var birthdayday = document.getElementById(editAccountPrefix + 'birthday-day').value;
    var birthdaymonth = document.getElementById(editAccountPrefix + 'birthday-month').value;
    var birthdayyear = document.getElementById(editAccountPrefix + 'birthday-year').value;
    var website = document.getElementById(editAccountPrefix + 'website').value;
    var efNewsAccepted = document.getElementById(editAccountPrefix + 'EFNewsAccepted').value;
    var businessNewsAccepted = document.getElementById(editAccountPrefix + 'BusinessNewsAccepted').value;
    var businessDiscAccepted = document.getElementById(editAccountPrefix + 'BusinessDiscAccepted').value;

	if( password1.length == 0)
      oldpassword="";
	else {
	  if(password1.length < 5){
          alert("Your password musst have 5 characters");
          return false;
      }
      else {
        if (password1 != password2) {
            alert("The re-typed password differs from first one");
            return false;
        }
        else {
            var reg = new RegExp("^[a-zA-Z-_0-9]+$");
            if (!reg.test(password1)) {
                alert("Only these (a-z A-Z 0-9) characters are allowed in the new password");
                return false;
            }
        }
      }
    }
	editAccountRequest(oldpassword, password1, firstname, lastname, birthdayyear+"-"+birthdaymonth+"-"+birthdayday, website, efNewsAccepted, businessNewsAccepted, businessDiscAccepted);
    return false;
}

function verifyLogin()
{
	
  document.getElementById('login_animation').style.display = "block";
  
  document.getElementById('login_content').style.display = "none";
	
  var username = document.getElementById(global.LOGIN_ID_PREFIX + 'username').value;
  var password = document.getElementById(global.LOGIN_ID_PREFIX + 'password').value;
  //var cookielogin = document.getElementById('selectLoginTime').value; frueher eine selectbox
	var cookielogin = document.getElementById('selectLoginTime').checked;
	if( cookielogin ) { cookielogin = "oneyear" ; } else { cookielogin = "no";  }
 // alert ("DIE AUSWAHL:" +cookielogin);
  loginRequest(username, password, cookielogin);
}
//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 signUpFacebookHelp(fieldId, noteTitle, noteBody)
{
//	if (noteTitle == null) 
	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;
}
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 (username=="" && password==""){
  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 = document.getElementById('userFacebookSignUp_jobTitle').value;
	  var companyName = document.getElementById('userFacebookSignUp_companyName').value;
	  var companyWebsite = document.getElementById('userFacebookSignUp_companyWebsite').value;
  }
	  signUpFacebookRequest(user,facebook, email, userType, job, companyName, companyWebsite,"","",facebookImport);
  }else{
	  signUpFacebookRequest("",facebook, "", "", "", "", "",username,password);
		}
	}
}
//END JOSE's CODE


function verifySignUp(ajax)
{
 	// Fehlermarkierungen ausblenden
	// Das hidden INPUT-Feld enthaelt den letzten Fehler (falls einer vorlag)
	
	var errorField = document.getElementById(signupIdPrefix + 'errorField').value;
	if (errorField != "") {
  	document.getElementById(signupTDIdPrefix + errorField).className = "";
	}

  var email = document.getElementById(signupIdPrefix + 'email').value;
  var user = document.getElementById(signupIdPrefix + 'username').value;
  var password = document.getElementById(signupIdPrefix + 'password').value;
  var password2 = document.getElementById(signupIdPrefix + 'password2').value;
  var city = document.getElementById(signupIdPrefix + 'city').value;
  var country = document.getElementById(signupIdPrefix + 'country').value;
  var gender = document.getElementById(signupIdPrefix + 'gender').value;
  //var userType = document.getElementById(signupIdPrefix + 'userType').value;
  var accepted = document.getElementById(signupIdPrefix + 'termsOfServicesAccepted').checked;
  var efNewsAccepted = document.getElementById(signupIdPrefix + 'efNewsAccepted').checked;
  var offerNewsAccepted = document.getElementById(signupIdPrefix + 'offerNewsAccepted').checked;
  var offerDiscAccepted = document.getElementById(signupIdPrefix + 'offerDiscAccepted').checked;
	
  if (email == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "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(signupIdPrefix, signupTDIdPrefix, "email",null,"You must provide a correct value for your "); return;}
  }
  
  if (user == "") {	signUpHelp(signupIdPrefix, signupTDIdPrefix, "username"); return; }
	else {
		if(user.length < 3){signUpHelp(signupIdPrefix, signupTDIdPrefix, "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)){		signUpHelp(signupIdPrefix, signupTDIdPrefix, "username", null, "Special characters are not allowed in ");return;	}
		}
	}
	
  if (password == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "password"); return; }
  else {
	  if(password.length < 5){signUpHelp(signupIdPrefix, signupTDIdPrefix, "password",null,"Insert a minimum of 5 characters for your "); return; }
  }
  if (password != password2) { signUpHelp(signupIdPrefix, signupTDIdPrefix, "password", "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(signupIdPrefix, signupTDIdPrefix, "password", null, "These (a-z A-Z 0-9) characters are allowed in ");return;	}
	}
	
  if (city == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "city"); return; }
  if (country == "-1") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "country"); return; }
  //if (userType == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "userType"); return; }
  if (!accepted) { signUpHelp(signupIdPrefix, signupTDIdPrefix, "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use"); return; }

  /*
  var job = document.getElementById(signupIdPrefix + 'jobTitle').value;
  var companyName = document.getElementById(signupIdPrefix + 'companyName').value;
  var companyWebsite = document.getElementById(signupIdPrefix + 'companyWebsite').value;
  if (userType == "professional")
  {	  
    if (job == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "jobTitle"); return; }
    if (companyName == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "companyName"); return; }
    if (companyWebsite == "") { signUpHelp(signupIdPrefix, signupTDIdPrefix, "companyWebsite"); return; }
  }
  */
	if( ajax )
		signUpRequest(user, password, city, country, gender, email, efNewsAccepted, offerNewsAccepted, offerDiscAccepted);		
	else
		return true;
  //signUpRequest(user, password, city, country, gender, email, userType, job, companyName, companyWebsite, efNewsAccepted, offerNewsAccepted, offerDiscAccepted);
//  signUpRequest(user, password, city, country, gender, email, userType, job, companyName, companyWebsite);
	
	//Daniel 2008 10 26
	// Ich schliese Form direkt. Es hat bei einigen Usern stress gegeben.
//	hideForm(signupIdPrefix);

}

function loginHelp(fieldId, noteTitle, noteBody)
{
  if (noteTitle) {
  	document.getElementById(global.LOGIN_ID_PREFIX + 'note').style.display = 'block';
  	document.getElementById(global.LOGIN_ID_PREFIX + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
  }
	else {
    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)
{
//	if (noteTitle == null) 
	if (! noteTitle) 
	{
		noteTitle = "An error occurred:";
        
		var title = document.getElementById(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;
		}
	}
  // Markiere das entsprechende Feld als Fehler
  document.getElementById(TDIdPrefix + fieldId).className = 'error-field';
  document.getElementById(IdPrefix + fieldId).focus();
  // Merke dieses Feld im hidden INPUT-Feld 'errorField', damit es spâ€°ter wieder zurÂ¸ckgesetzt werden kann
  document.getElementById(IdPrefix + 'errorField').value = fieldId;

  document.getElementById(IdPrefix + 'note').style.display = 'block';
  document.getElementById(IdPrefix + 'note').innerHTML = '<b>' + noteTitle + '</b><br>' + noteBody;
}


function wizardHelp(fieldId, noteTitle, noteBody)
{
//  if (noteTitle == null) {
  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;

  /* 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 logout()
{
  logoutRequest();
}



function showAddWizard(lat, lng, name, address, city, country) 
{
	// Bereich fuer Fehlermeldung ausblenden
	document.getElementById(addWizardIdPrefix + 'note').style.display = "none";
	window.scrollTo(0, 0); // hochscrollen, damit man den Wizard sieht

  if (name == undefined) name = '';
  if (address == undefined) address = '';
  if (city == undefined) city = '';
  if (country == undefined) country = '';

 	var addwizard = document.getElementById("add-wizard");

 	a = document.body.clientWidth;
 	b = document.body.clientHeight;

 	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		c = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		// Explorer 6 Strict Mode
		c = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		c = document.body.clientHeight;
	}

	// Lade Seite 1 des Dialogs
	// Ergebnisse der EFs in der Naehe loeschen
	document.getElementById(addWizardIdPrefix + 'CSELookup').innerHTML = "";

	// 20-03-08 Markus: "Sanduhr"-Anzeige einblenden
	document.getElementById(addWizardIdPrefix + 'content-table').style.background='url(img/icons/ajax-loader.gif) no-repeat center';
	
	// Lade Seite 1 des Dialogs
  addWizardRequest(lat, lng, name, address, city, country);
//  sendRequest('addWizardRequest.php', addWizardCallback, "page=1&first=1&latitude=" + lat + "&longitude=" + lng + "&name=" + name + "&address=" + address + "&city=" + city + "&country=" + country);
  document.getElementById(addWizardIdPrefix + 'step').innerHTML = "";
 	addwizard.style.display = "block";

 	x = addwizard.clientWidth;
 	y = addwizard.clientHeight;

 	addwizard.style.left = (a - x) / 2 + "px" ;
  addwizard.style.top = (c - y) / 2 + "px" ;

	var modal = document.getElementById('modal-1');
	modal.style.display = "block";
	modal.style.height = b + "px"

	if(navigator.userAgent.indexOf('Firefox')!=-1) {
		addwizard.style.position = 'fixed';
	}
	else{
		addwizard.style.position = 'absolute';
	}
}


function showBookmarkWizard(id) 
{
	if(global.user_id > 0){
		window.scrollTo(0, 0); // hochscrollen, damit man den Wizard sieht
		
		var wizard = document.getElementById("bookmark-wizard");
	
		a = document.body.clientWidth;
		b = document.body.clientHeight;
	
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
			c = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			c = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			c = document.body.clientHeight;
		}
	
		// Die Buttons zurÂ¸cksetzen
	//  next('bookmark', 1);
	
		// 20-03-08 Markus: "Sanduhr"-Anzeige einblenden
		document.getElementById(bookmarkWizardIdPrefix + 'content-table').style.background='url(img/icons/ajax-loader.gif) no-repeat center';
		
		// Lade Seite 1 des Dialogs
		bookmarkWizardRequest(1, id);
	//  sendRequest('bookmarkWizardRequest.php', bookmarkWizardCallback, "page=1&id=" + id);
		document.getElementById(bookmarkWizardIdPrefix + 'step').innerHTML = "";
		wizard.style.display = "block";
	
		x = wizard.clientWidth;
		y = wizard.clientHeight;
	
		wizard.style.left = (a - x) / 2 + "px" ;
		wizard.style.top = (c - y) / 2 + "px" ;
	
		var modal = document.getElementById('modal-1');
		modal.style.display = "block";
		modal.style.height = b + "px"
	
		if(navigator.userAgent.indexOf('Firefox')!=-1) {
			wizard.style.position = 'fixed';
		}
		else{
			wizard.style.position = 'absolute';
		}
	}
}

// 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 = "";
}

//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)
{
	info("quitOverlay aktuelleSeite " + aktuelleSeite + " action " + action );
	// Auf die Hauptkarte umschalten
	Application.setActiveMap(Map);
	Application.setActiveList("result-list");
	
	if(action=="save"){
		if( document.getElementById("SaveAndFinish")){document.getElementById("SaveAndFinish").style.display="none";}
		if( document.getElementById("quick_SaveAndFinish")) {document.getElementById("quick_SaveAndFinish").style.display="none";}
		document.getElementById("SaveProgress").style.display="block";

		
		if(global.user_id<2) {
			alert(global.AUTHENTIFICATION_PROBLEM+' !');
			document.getElementById("SaveProgress").style.display="none";
			document.getElementById("SaveAndFinish").style.display="block";
			if( global.DISCOVER_EF_HOME_JUMP ){	document.location.href(global.URL); }
			return false;
		}
		
//		if(global.EfObj.type == TYPE_EARTHFAVE)
		if (AddWizardMap.tempEarthfave)
		{ /**** BOOKEN ******/
			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);
			var whyilikeit = document.getElementById("whyilikeit").value;
			var whatcouldbeimproved = document.getElementById("whatcouldbeimproved").value;
			earthfave.relationship = "2";
			
			if(whyilikeit.length<=5){
				alert('"'+global.WHY_I_LIKE_IT+'" '+global.SHOULD_BE_LONGER+' !');
				document.getElementById("SaveProgress").style.display="none";
				document.getElementById("SaveAndFinish").style.display="block";
				return false;
			}
			if (full == "true"){
				var whatitis = document.getElementById("whatitis").value;
				if(whatitis.length<=5){
					alert('"' + global.WHAT_IT_IS + '" ' + global.SHOULD_BE_LONGER + ' !');
					document.getElementById("SaveProgress").style.display="none";
					document.getElementById("SaveAndFinish").style.display="block";
					return false;
				}
				earthfave.overview = whatitis;
			}
			else earthfave.overview = "";
			
			if( whatcouldbeimproved.length>0 && whatcouldbeimproved.length<=5 ){
				alert('"'+global.WHAT_COULD_BE_IMPROVED+'" '+global.SHOULD_BE_LONGER+' !');
				document.getElementById("SaveProgress").style.display="none";
				document.getElementById("SaveAndFinish").style.display="block";
				return false;
			}
			
			//var earthfave = AddWizardMap.tempEarthfave;
			info("ext.js quitOverlay: ef_lat" + earthfave.lat);
			info("ext.js quitOverlay: ef_lng" + earthfave.lng);
			
			
			if (! earthfave) {
				info ("Error: earthfave wurde nicht korrekt an 'quitOverlay' ï¿½bergeben")
				return;
			}
			//DATEN CHECK ENDE::::::::::::::
			
			//bei den Tags sind nur Buchstaben erlaubt :::::::::::::::::
			/*
			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) {
						earthfave.tags = document.getElementById("tag" + a).value;
					} else {
						earthfave.tags += ',' + document.getElementById("tag" + a).value;
					}
				}
			}
			*/
			earthfave.tags = "";
			//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
			earthfave.type = 'EARTHFAVE';
			earthfave.comment = whyilikeit;
			earthfave.suggestions = whatcouldbeimproved;
			earthfave.levelOfExpertise = document.getElementById("experience").value;
			info("quitOverlay wuerde nun den ef booken und das ajax starten");
			//earthfave.bookmark(global.user_id);
			global.EfObj = earthfave;
			AddWizardMap.tempEarthfave = null;
		}
		else //discover place
		{
			info("quitOverlay aktuelleSeite else " + aktuelleSeite + " action " + action );
			var name = document.getElementById("name").value;
			info("strasse des place " + AddWizardMap.tempPlace.street);
			var earthfave = new Earthfave(AddWizardMap.tempPlace);
			earthfave.internName = "";
			earthfave.overview = "";
			
			info(AddWizardMap.tempPlace)
			
			if( global.EfObj.type == 'MARKER' ) { // Marker
				if( name.length<=5 ) {
					alert('"'+global.NAME+'" '+global.SHOULD_BE_LONGER+' !');
					document.getElementById("SaveProgress").style.display="none";
					document.getElementById("SaveAndFinish").style.display="block";
					return false;
				}
				else {
					global.EfObj.internName = name;
					global.EfObj.name = name;
				}
			}
			else { // Place
				earthfave.internalName = earthfave.name;
				if( name.length>0 ) {
					earthfave.name = name;
				}
				if(name == global.GIVE_A_NAME){
					alert("please enter a name for your earthfave");
					return false;
				}
			}
			earthfave.relationship = "1"; //Discoverer 1; Bookmarker 2
			earthfave.type = 'MARKER';
			earthfave.levelOfExpertise = document.getElementById("experience").value;
			//bei den Tags sind nur Buchstaben erlaubt :::::::::::::::::
			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 = document.getElementById("whatitis").value;
				if(whatitis.length<=5){
					alert('"'+global.WHAT_IT_IS+'" '+global.SHOULD_BE_LONGER+' !');
					document.getElementById("SaveProgress").style.display="none";
					document.getElementById("SaveAndFinish").style.display="block";
					return false;
				}
				earthfave.overview = whatitis;
			}
			
			var whyilikeit = document.getElementById("whyilikeit").value;
			if(whyilikeit.length<=5){
				alert('"'+global.WHY_I_LIKE_IT+'" '+global.SHOULD_BE_LONGER+' !');
				document.getElementById("SaveProgress").style.display="none";
				document.getElementById("SaveAndFinish").style.display="block";
				return false;
			}
			earthfave.comment = whyilikeit;
			
			var whatcouldbeimproved = document.getElementById("whatcouldbeimproved").value;
			if (whatcouldbeimproved.length>0 && whatcouldbeimproved.length<=5){
				alert('"'+global.WHAT_COULD_BE_IMPROVED+'" '+global.SHOULD_BE_LONGER+' !');
				document.getElementById("SaveProgress").style.display="none";
				document.getElementById("SaveAndFinish").style.display="block";
				return false;
			}
			earthfave.suggestions = whatcouldbeimproved;
			
			/* 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; 
			info("ext.js quitOverlay: ef_id" + global.EfObj.id);
			info("ext.js quitOverlay: disc_id" + global.EfObj.discovererId);
			info("ext.js quitOverlay: ef_lat" + global.EfObj.lat);
			info("ext.js quitOverlay: ef_lng" + global.EfObj.lng);
			info("ext.js quitOverlay: ef_name" + global.EfObj.name);
			info("ext.js quitOverlay: ef_name" + global.EfObj.internName);
			info("ext.js quitOverlay: ef_overview" + global.EfObj.overview);
			info("ext.js quitOverlay: ef_why_i_like_it" + global.EfObj.comment);
			info("ext.js quitOverlay: ef_what_could_be_improved" + global.EfObj.suggestions);
			info("ext.js quitOverlay: ef_type" + global.EfObj.type);
		}
		addWizardSave(full);
	}
	else { // action cancel or continue
		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
		document.getElementById("categoryField").value=''; 
		document.getElementById("stateField").value=''; 
		document.getElementById("page"+aktuelleSeite).style.display='none'; 
		document.getElementById("page1").style.display='block';
		document.getElementById('result-list-overlay').innerHTML="";
		global.addearthfaveoverlay=false;
		info("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;
		
		if(action=="continue")
			createNirvanaEarthfave();
	}
}

//Oli 30.10.2009
function showFullAddWizard(){
	document.getElementById('full_wizard').style.display = "block";
	document.getElementById('quickLink').style.display = "block";
	document.getElementById('page3_nav').style.display = "block";
	document.getElementById('back_quickWizard').style.display = "none";
	document.getElementById('cancel_quickWizard').style.display = "none";
	document.getElementById('quick_SaveAndFinish').style.display = "none";
	document.getElementById('more_data').style.display = "none";
	var doc = document.getElementById("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);
	}
}

function hideFullAddWizard(){
	document.getElementById('full_wizard').style.display = "none";
	document.getElementById('quickLink').style.display = "none";
	document.getElementById('page3_nav').style.display = "none";
	document.getElementById('back_quickWizard').style.display = "block";
	document.getElementById('cancel_quickWizard').style.display = "block";
	document.getElementById('quick_SaveAndFinish').style.display = "block";
	document.getElementById('more_data').style.display = "block";
	var doc = document.getElementById('overlayCrop'); //crop verstecken 
		doc.style.width = "1px";
		doc.style.height = "1px";		
		doc.style.left = "0px";
		doc.style.top = "0px";
		document.onmousemove = null;
	document.getElementById("divInfotabs-1").innerHTML = "";
}

function jumpAnchor(){
	self.location.href = "#topPosition";
}

function hideCrop(){
	var doc = document.getElementById('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.group("changePageinOverlay");
	console.info("die steuerung im adWizard aktuelleSeite:",aktuelleSeite," gewuenschte Seite: " , gewunschteSeite , " aktion: ",aktion," iOrId: ",iOrId," lat: ",lat," lng: ",lng," type: ",type);

	UnTip();
	document.getElementById("page"+aktuelleSeite).style.display='none'; 
	document.getElementById("page"+gewunschteSeite).style.display='block';
	
	if (aktuelleSeite == 1 && gewunschteSeite == 3){
		document.getElementById("addNewEarthfave-pop-up").style.height = "200px";
		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", 0); //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
		{
			/*global.Gewunchte.id = 'no';
			global.Gewunchte.type = 'MARKER';
			global.Gewunchte.lat = lat;
			global.Gewunchte.lng = lng;
			global.Gewunchte.name = global.YOUR_MARKER_ON_MAP;
			global.Gewunchte.countryName = global.UNKNOW;
			global.Gewunchte.city = global.UNKNOW;
			global.Gewunchte.address1 = global.UNKNOW;
			global.Gewunchte.fcode = 'unknow';
			console.log("changePageInOverlay: --------------");*/
			var activeMap = Application.getActiveMap();
			id = 0;
			var place = new Place(
				id,
				lat,
				lng,
				global.YOUR_MARKER,
				"",
				"",
				"",
				"",
				"");
				activeMap.places.push(place);
		}
		else
		{ //beim place discovern gehts hier rein
			/*var i=0;
			while( i<globalArrayAllResults.length && globalArrayAllResults[i].id!=id )
				i++;
			global.Gewunchte=globalArrayAllResults[i];*/
			var activeMap = Application.getActiveMap();
			if(activeMap){	
				console.log("terz"+activeMap.places[id].lat);
				
			}
		}
	
		global.addWizardArrayResult.push(global.Gewunchte);
		console.log("changePageInOverlay: lng: " + lng + "lat: " + lat);
		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;
					showBookmarkScreen(entity);
					showLinksInAddWizard(entity);
				} else { console.log("ext.js changePageinOverlay  finde keine entity");	}
			}	else {	console.log("ext.js changePageinOverlay finde KEINE activeMap.earthfaves");		}
		}	else {console.log("changePageinOverlay finde keien active map"); 	}
	
	}
	else
	if (aktion=="Index")
	{	if (type == "ef") { // bookmarke einen ef aus dem adW . ALSO NICHT AUS DER RLISTE von UNten !!!!
			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("changePageinOverla entity  gefunden ");
								/*
								AddWizardGoogle = new GoogleProvider("overlayMap");
								AddWizardMap = new MapProvider(AddWizardGoogle.map, AddWizardGoogle.domElement);
								Application.register(AddWizardMap);
								Application.setActiveList("result-list-overlay");
								*/
								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("...........................");
			var entity = AddWizardMap.places[iOrId];
			ef_id_AddWizard = iOrId;
			if (entity) {
				console.log("ext.js changePageinOverview Place gefunden Bereich index: " + entity.name);
				AddWizardMap.tempPlace = entity;
			} else {
				console.log("place nicht gefunden, id: " + iOrId);
				return;
			}
			document.getElementById("headline").innerHTML = '<h1> Discover this earthfave </h1>';
			if(entity.name == global.YOUR_MARKER){
				document.getElementById("showName").innerHTML = global.NAME + '<br/> <input onClick="addWizClick(this);" type="text" size="58" maxlength="100" id="name" value="'+ global.GIVE_A_NAME +'" />';
			}
			else{
				document.getElementById("showName").innerHTML = global.NAME + '<br/> <input type="text" size="58" maxlength="100" id="name" value="' + entity.name + '" />';
			}
			if(entity.street!= ""){
				document.getElementById("showName").onmouseover = function(){ myTip(entity.street);}
				document.getElementById("showName").onmouseout = function(){ UnTip();}
			}
			//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" /> ';
			document.getElementById("showDescription").innerHTML = global.WHAT_IT_IS + ' <br/> <textarea id="whatitis" rows="2" cols="45" class="input"></textarea>';
			document.getElementById("showWhyILikeIt").innerHTML = global.WHY_I_LIKE_IT + ' <br/> <textarea id="whyilikeit" rows="2" cols="45" class="input"></textarea> ';
			document.getElementById("showWhatCouldBeImproved").innerHTML = global.WHAT_COULD_BE_IMPROVED + '<br/> <textarea id="whatcouldbeimproved" rows="2" cols="45" class="input"></textarea> ';//Oli 
			//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>
		}

		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 + 'page.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");
	}
	// else
	// if(aktion=="back")
		; // nichts machen	
}

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 + 'page.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){
	info("ext.js showBookmarkScreen name");
	//info("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;
	}
	document.getElementById("headline").innerHTML = '<h1> Add 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>';
	info("ext.js showBookmarkScreen name2ffsdf");
	document.getElementById("showDescription").innerHTML = global.WHAT_IT_IS + '<br/> <textarea id="whatitis" rows="2" cols="45" 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" /> ';
	document.getElementById("showWhyILikeIt").innerHTML = global.WHY_I_LIKE_IT + ' <br/> <textarea id="whyilikeit" rows="2" cols="45" class="input"></textarea> ';
	document.getElementById("showWhatCouldBeImproved").innerHTML = global.WHAT_COULD_BE_IMPROVED + '<br/> <textarea id="whatcouldbeimproved" rows="2" cols="45" class="input"></textarea> ';
	//document.getElementById("showCategory1").style.display = 'none';
	//document.getElementById("showCategory2").style.display = 'none';
}

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/beTheDis.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";

}


/**
 * Erzeugt einen Place-Eintrag fuer die Liste der gefundenen Places
 */
/*
function placeResultListEntry(id, lat, lng, description, street, city, country, i, fcode) 
{
//	info("Erzeuge PlaceList mit Name:" + description + "strasse " + street + " city " + city, "ext.js", 3);

	// OnClick-Methode + Beschreibung, wenn der Benutzer auf das Bookmark-Icon klickt
//	global.action = "showAddWizard('" + lat + "', '" + lng + "', '" + encodeForRequest(description) + "', '" 
	var action = "showAddEarthFaveOverlay("+ id +", "+ lat +", "+ lng +");";
	if (user != "Guest" && user != "guest") 
	{
//		var addEFOnClick = global.action;
		var addEFOnClick = action;
		var addEFTitle = 'Turn this place into an earthfave';
		// Diese globale Aktion wird mit dem Onclick oben ausgefuehrt, brauchen wir also nicht nach dem Login auszufuehren
		global.action = "";
	}
	else if (user == "Guest" || user == "guest")
	{
		var addEFOnClick = 'showLogin();';
		var addEFTitle = 'Login to add turn this place into an earthfave';
	}

  // Die Beschreibung Land-Ort-Straï¿½e setzen
	var countryCityStreet = "";
	if (country != "") {
		countryCityStreet += country;
	}
	if (city != "") {
		if (countryCityStreet.length > 0)
		countryCityStreet += ' > ';
		countryCityStreet += city;
	}
	if (street != "") {
		if (countryCityStreet.length > 0)
		countryCityStreet += ' > ';
		countryCityStreet += street;
	}
	if (fcode != "") {
		countryCityStreet += " (" + fcode + ")";
	}

	var r = "";
		r =		'<tr class="result-list-entry" id="trPRLE_' + id + '">'
		+		'	<td class="image-place">'
		+		' 	<img alt="image" src="img/icons/add-as-ef-gross.gif"/>'
		+		'	</td>';
		
		
  	r+= 	' <td class="description-test"></td>';
	 	r+= 	'	<td class="category-icon">'
		//+ 	' 	<img src="img/icons/restaurants-gray-large.gif"/>'
		+ 	' </td>'
		+ 	'	<td class="description">'
		+		'		<h1>' + description	+	'</h1>'
		+		'		<p  class="path">' + countryCityStreet  + '</p>'
		+		'	</td>'
		+ 	'	<td class="actions">'
    + 	'		<ul>'
    +		'			<li onmouseover="myTip(\'' + addEFTitle + '\');" onmouseout="UnTip();" class="action-label-add-ef" title="'+  addEFTitle + '" onclick="' + addEFOnClick + '"></li>'
		+ 	'			<li onmouseover="myTip(\'Zenter this place on the map\');" onmouseout="UnTip();" class="action-label-place_show-map" title="Center this place on the map" onclick="showMapAndCenter('+ id + ',' + lat + ',' + lng + '); markDiv(' + id + '); closeFilter();"></li>';
		+		'		</ul>'
		+		'	</td>';
		
		
		r+=		'</tr>'; 
		
		r+=	'<tr><td colspan="5">'
		+		'<div class="result-status" id="divPRS_' + id + '">&nbsp</div>';
		+ 	'</td></tr>';
  return r;
}
*/

function findPosX(obj)
{
  // Markus
//  if (obj == null) return;
  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)
{
  // Markus
//  if (obj == null) return;
  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() 
{
		//alert("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";
	}
	//cont = document.getElementById("toolbarContainer");
	//cont.style.height = "30px";
}


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 showPublishMap()
//{
 	//showForm('publish-map', 'modal');	
//}

function unselectTabs(string){
	//alert ("string: " + 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");

  //var selectedTab = null;

  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 next(wizard, page)
{
	// Im IE scheint "name", "description" ein reserviertes Wort zu sein; deklarieren als var schaft Abhilfe
	var name = "";
	var description = "";
	
	switch (wizard) {
    case 'add': prefix = addWizardIdPrefix; steps = addSteps; break;
	  case 'bookmark': prefix = bookmarkWizardIdPrefix; steps = bookmarkSteps; break;
	}

	if (page > steps.length)
  {
  	// A.
  	// Der Wizard wurde abgeschlossen, entweder regulaer oder mit QuickAdd
  	//
  	if (page == 6)
  	{
	  	// 1. QuickAdd
  		name = document.getElementById(prefix + "name");
 			region = document.getElementById(prefix + "region");
			country = document.getElementById(prefix + "country");
			
					
			if (name && name.value == "")
 			{
 				wizardHelp("", "Note:", "Please type in a name for this earthfave");
 				return;
 			}
				if(country){
					 if (country.value == "-1")
          {
            wizardHelp("", "Note:", "Please chose a country");
            weiter = false;
          }
					
				}
			
			if (region)
        {
          if (region.value == "-1")
          {
            wizardHelp("", "Note:", "Please chose a region");
            weiter = false;
          }
        }
				
			
	
 			// Da bei QuickAdd keine Bilder hochzuladen sind, schlieï¿½en wir den Wizard mit einem WizardRequest ab,
 			//	nicht mit einem submit()
	  	wizardRequest(wizard, page);
  	}
		else {
			// 2. regulaer
    	// Der Wizard wurde komplett durchlaufen, da wir evtl. Bilder hochladen muessen, schlieï¿½en wir mit submit() ab
    	// Bilder werden durch submit() hochgeladen
    	document.getElementById(prefix + 'form').submit();
    }

    // Schrittanzeige auf Startseite zuruecksetzen
    page = 1;

		// Overlay ausblenden
		var wizard = document.getElementById(wizard + '-wizard');
    if (wizard) wizard.style.display = 'none';
    var modal = document.getElementById('modal-1');
    if (modal) modal.style.display = "none";
    
    // Wizard auf Seite mit Index <page> (zurueck-)setzen
	  resetWizard(wizard, page);
		/* 
		if(global.httpScript == "my-earthfaves.php" || global.myef_user){
		  document.location.href='my-earthfaves.php?id=' + global.myef_user;
	  }*/
	  // Das war's in dieser Funktion, fertig
  }
  else
  {
  	// B.
  	// Wir sind weiterhin im Wizard, es wird die naechste Seite aufgebaut
  	//
  	weiter = true;
  	
  	switch (page)
  	{
  		
		case 2:
  		name = document.getElementById(prefix + "name");
  		address = document.getElementById(prefix + "address");
  		region = document.getElementById(prefix + "region");
			country = document.getElementById(prefix + "country");
  		
  		// Der IE liefert bekloppterweise den **String** "null", falls das Element mit ID="addwizard_name" nicht existiert (Firefox liefert null)
  		if (wizard == 'bookmark') {
  			description = document.getElementById("bookmarkwizard_overview");
  			comment = document.getElementById("bookmarkwizard_comment");
  			experience = document.getElementById("bookmarkwizard_relationship").value; //zb "i want to go there" =1
  			
//  			if (! (description === "null" || description === null)){
  			if (description) {
  				//if (description.value == "" || description.value.length < 1 ){
  				//	bookingHelp("", "Note:", "Please type \"What it is\" (min. 5 characters)");
  				//	weiter = false;
  				//}
  			}
//  			if (! (comment === "null" || comment === null) && experience != 1){
  			if (comment && experience != 1){
  				//if (comment.value == "" || comment.value.length<5 ){
  				//	bookingHelp("", "Note:", "Please type in \"Why I like it\" (min. 5 characters)");
  				//	weiter = false;
  				//}
  			}
  		}
		
		
//		if (! (name === "null" || name === null))
  		if (name)
    	{
  			// Der Benutzer will von Schritt 1 nach 2; pruefe, ob er einen Namen angegeben hat
//  			if (name.value == "" && address.value == "")
//  			{
//  				wizardHelp("", "Note:", "Please type in a name and an address for this earthfave");
////  				alert("Please type in a name and an address for the earthfave.");
//  				weiter = false;
//  			}
//  			else
  			if (name.value == "" || name.value.length < 2)
  			{
  				wizardHelp("", "Note:", "Please type in a name for this earthfave (min. 2 characters");
  				weiter = false;
  			}
//  			else
//  			// Pruefe, ob er eine Adresse angegeben hat
//  			if (address.value == "")
//  			{
//  				wizardHelp("", "Note:", "Please type in the address of this earthfave");
////  				alert("Please type in an address for the earthfave.");
//  				weiter = false;
//  			}
  	   }
//		if (! (region === "null" || region === null))
       if(country){
					 if (country.value == "-1")
          {
            wizardHelp("", "Note:", "Please chose a country");
            weiter = false;
          }
					
				}
			 
			 if (region)
        {
          if (region.value == "-1")
          {
            wizardHelp("", "Note:", "Please chose a region");
            weiter = false;
          }
        }
				
				
			

  		break;
  		
    case 3:
			// Der Bookmark-Wizard kommt hier nie hin
  		categoryIds = document.getElementById("addwizard_categoryIds");
  		if (categoryIds)
  		{
  			// Der Benutzer will von Schritt 2 nach 3; pruefe, ob er Kategorien angegeben hat
  			if (categoryIds.value == "")
  			{
  				wizardHelp("", "Note:", "Please add at least one topic. Use the select boxes and then click the button 'Add Topic' to do so.");
//  				alert("Please add at least one topic. Use the select boxes and the button 'Add Topic' to do so.");
  				weiter = false;
  			}
  		}
  		break;
		
		case 4:
  		description = document.getElementById("addwizard_overview");
  		comment = document.getElementById("addwizard_comment");
  		experience = document.getElementById("addwizard_relationship").value; //zb "i want to go there" =1
  
//  		if (! (description === "null" || description === null)){
  		if (description){
  		  /*if (description.value == "" || description.value.length < 2 ){
  		    wizardHelp("", "Note:", "Please type \"What it is\" (min. 2 characters)");
  		    weiter = false;
  		  }
				*/
  		}
			 //	  if (comment.value == "" || comment.value.length < 5){
  		 //   wizardHelp("", "Note:", "Please type in \"Why I like it\" (min. 5 characters)");
  		 //   weiter = false;
  		 // }
			
  		//comment ist Pflicht, wenn man schonmal dort war
//  		if (! (comment === "null" || comment === null) && experience != 1){
  		if (comment && experience != 1){

  		}
  
  		break;
  	}
  	
  	if (weiter) 
  	{
			// Bereich fuer Fehlermeldung ausblenden
			if (document.getElementById(prefix + 'note') != undefined) {
				document.getElementById(prefix + 'note').style.display = "none";
			}
			
	  	// 20-03-08 Markus
	  	document.getElementById(prefix + 'step').style.visibility = 'hidden';
			document.getElementById(prefix + 'CSELookup').innerHTML = "";

			// 20-03-08 Markus: "Sanduhr"-Anzeige einblenden
	  	document.getElementById(prefix + 'content-table').style.background='url(img/icons/ajax-loader.gif) no-repeat center';

	  	wizardRequest(wizard, page);
  		// Wizard auf Seite mit Index <page> (zurueck-)setzen
  		resetWizard(wizard, page);
  	}
  }
}


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/" + 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) {
//  	alert("id of " + select_id + " = " + id);
  	return;
  }
  
  // NEU 06-05-08 (Markus): Falls die Eigenschaft (mit der ID id) schon eingetragen ist, verlassen wir die Funktion sofort
  // SUPER CODE DER GAR NICHT GEHT !!!
  // if (document.getElementById(dialogPrefix + idList).value.indexOf("|" + id) >= 0) {
  //	alert("id " + id + " is already in " + document.getElementById(dialogPrefix + idList).value);
  //	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;
  
  
  // Die Eigenschaft ist also neu, tragen wir sie als neue Zeile ein
  //

  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;
    // NEU 06-05-08 (Markus): Falls die Eigenschaft (mit der ID id) schon eingetragen ist, verlassen wir die Funktion sofort
  if (document.getElementById(dialogPrefix + idList).value.indexOf("|" + id) >= 0) return;
    // Die Eigenschaft ist also neu, tragen wir sie als neue Zeile ein
  //
  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);
  
  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 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
	info("getPointCallback");
	var zoom = 13;
	var x = inLocationArray(global.search2); //ich suche nach manual fest zugeordneten zoomlevels. zb fuer inseln
	if( x ) { zoom = x; }											 
	info("getPointCallback .. ____________________________________________________ " + global.search2 + " zoom " + zoom);	
	
	if(Map.fixZoom){	
		zoom = Map.fixZoom;
		Map.fixZoom = null;
	}
	
	Map.setCenter(point,zoom);
	Map.zoomlevelMerker = zoom; // merke mir den zoomlevel

	if( global.RESULTLIST_CLEAR_ENABLE ) {
		// Trefferliste leeren
		var resultList = document.getElementById("result-list");
		if (resultList) {	
			document.getElementById("result-list").innerHTML = "";	
		}
	}
	// ???? Fuer die Infobox alle earthfaves zaehlen
	var bounds = Map.getBounds();

}


/**
 * Das Pendant von 'getPointCallback' fï¿½r den AddWizard
 * @param point
 */
function addWizardGetPointCallback(point)
{
	info("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;
	
	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);
}


/**
 * @param name
 * @param map
 * @return
 */
function lookupGoogle(name, map)
{
	console.group("lookupGoogle");
	console.info("Startet die Google-Suche nach '" + name + "', Callback ist 'googleCallback'");
	
	point = map.getCenter();
	
	if( point ){
		console.log("point = ", point);
		Google.search(point, name, googleCallback); 
	}
	else {
		var x = Application.getActiveMap();
		Google.getPoint("saarbrÃ¼cken", addWizardGetPointCallback);
	}
//	Google.search(point, global.search1, googleCallback);
	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.places = new Array();
	//Map.erlays();
	
	// Starte die earthfaves-Suche
	Map.ignoreNextMove = true;
	
	info ("lookupForMyEarthfaves ignoreMove = " + ignoreMove );
	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
		
function lookupEarthfaves(filter, from, maximum, ignoreMove, ignoreSearch1, ignoreSearch2, quadrantsearch, autozoom)
{
	var bounds; var lat1 = ''; var lng1 = '' ;	var lat2 = '' ; var lng2 = '';
	Map.showMapLoaderAnimation(); 
	Map.tempMarker = null;
	
	if( global.RESULTLIST_CLEAR_ENABLE ) {
		// Trefferliste leeren
		var resultList = document.getElementById("result-list");
		if (resultList) {		
			document.getElementById("result-list").innerHTML = "";	
			}
	}
	// mt-18-01-10
	//Map.places = new Array();
	//Map.clearOverlays();
	Map.clusterCallback  = true;
	Map.lastSearchOverall = 0;
	Map.globalCallerOfMapMove = "lookupEarthfaves";
	//info ("lookupForMyEarthfaves setze Map.clusterCallback auf true = " + Map.clusterCallback + "  map id " + Map.id);
	
	
	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();
		
	}
	// Starte die earthfaves-Suche

	// das wird wohl nur in der submitSerach gesetzt :(
	var suche1 = global.search1;
	var suche2 = global.search2;
	// daher loese ich das Problem erstmal so:
	if( suche1 == "" && suche2 == ""){
		if ( document.getElementById('category-field') ){
			var field1 = document.getElementById('category-field').value;
			var field2 = document.getElementById('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;
			}
		}
	}
	
	info("ext.js lookupEarthfaves vor suche 1 " + suche1 + " suche 2 " + suche2 + " ignoreSearch1 " + ignoreSearch1 +  " ignoreSearch2 " + ignoreSearch2);
	if(ignoreSearch1){ suche1 = ""; }
	if(ignoreSearch2){ suche2 = ""; }
	info("ext.js lookupEarthfaves suche 1 " + suche1 + " suche 2 " + 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;
	Map.searchMax = global.PAGINATION_STEP_EARTHFAVES;
	Map.searchListId = "result-list";
	Map.searchAutoZoom = autozoom;
	Map.searchZoom = Map.realMap.getZoom();
	Map.searchIgnoreSearch1 = ignoreSearch1;
	Map.searchIgnoreSearch2 = ignoreSearch1;
	Map.searchQuadrantSearch = quadrantsearch;
	Earthfaves.lookup(Map,earthfavesLookupCallback);
	disableAllMapFilter();// die checkbox kategoriefilter alle disablen solange die suche laeuft
	
	
	//Earthfaves.lookup('',suche1, suche2, lat1, lng1, lat2, lng2, filter, from, maximum, Map.id, "result-list", autozoom, Map.realMap.getZoom(), Map.clusterSearch, ignoreMove, ignoreSearch1, ignoreSearch2, quadrantsearch, earthfavesLookupCallback);	
	//Earthfaves.lookupClusters(suche1, suche2, lat1, lng1, lat2, lng2, filter, Map.id,	Map.ignoreMove, ignoreSearch1, ignoreSearch2, clustersLookupCallback);
  //Earthfaves.lookup('', '', '', '', '', '', filter, from, max, Map.id, "result-list", true, earthfavesLookupCallback);
}

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 mapMovedDelay(){
		if(Map.globalCallerOfMapMove != "submitSearch"){
			clearTimeout(mapMoveTimer);
	  	mapMoveTimer = setTimeout(mapMoved,1100);
		} else { mapMoved();}
			
}

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("createNewEarthfaveEnable").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';
			}
		}
}


//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() 
{
	
	var zoom = Map.realMap.getZoom();
	//showNirwanaButton(zoom);// zeige den Nirwana button zum klicken und erzeugen eines Markers
	Map.tempMarker = null;
	
	
	if( Map.globalCallerOfMapMove == "" ) { Map.globalCallerOfMapMove = "dragMap" ; } // wenn der wert leer, wurde als letztes KEINE submit Serach ausgef
	
	info("mapMoved Map.globalCallerOfMapMove " + Map.globalCallerOfMapMove + " !!!!  ::::::::::::::::::::::::::::::: Ignoe next move: " + Map.ignoreNextMove + ":::::::::::::::::::: ignoeMove " + Map.ignoreMove + "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
	
	if ( Map.fillHistoryBackArray){
		info("mapMoved fuelle history !!!!!!!!!!!!!");
		Map.fillMapBackArray();// schreibt die actuellen zahlen in das array
	} else {
		Map.fillHistoryBackArray = true;
	}

	
	
	if(!Map.shiftPress ){ 	
		checkMapMoveInZoomAndDistanz(); /* daniel . nur nachladen, wenn der user die maus weit bewegte.*/
	}
	else { 
		Map.ignoreNextMove = true; 
	}

	if (Map.ignoreNextMove) {
		Map.ignoreNextMove = false;
		info("Map.ignoreNextMove true");
		return;	}
	
	var cm = global.ZOOMLEVEL_CHANGE_MARKER;
	var zm = Map.zoomlevelMerker;
	
	if (Map.globalIgnoreMove) {
	info("MapMoved............: " + Map.manualyCreatedPlace);
		if(Map.globalCallerOfMapMove != "lookupEarthfaves" && Map.globalCallerOfMapMove != "submitSearch"){
		  info("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;
				 info("MapMove ZEICHNE MARKER NEU");
				showMarkerOnMap("ef"); // daniel will die marker neu zeichnen
			} else {
				 info("MapMove ZEICHNE MARKER NICHT NEU");
			}
			return;	
		}
		else {Map.globalCallerOfMapMove = ""; }
	}
	
  info("mapMoved -> Map.historyBackExecuted ist " + Map.historyBackExecuted);
	if(Map.historyBackExecuted == false){// bricht hier ab, wenn NICHT back geklickt wurde
		if ( Map.ignoreMove )  { 
			info("Map.ignoreMove true Map.zoomlevelMerker 222 " + Map.zoomlevelMerker + " aktueller Zoom : " + zoom);
			if( zm != zoom && ( zm <  zoom && zoom > cm || zm > zoom && zoom < cm)) {
				Map.zoomlevelMerker = zoom;
				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 ) {// Trefferliste leeren
		var resultList = document.getElementById("result-list");
		if (resultList) {	document.getElementById("result-list").innerHTML = "";	}
	}

	Map.googleCallback  = false;
	Map.earthfavesCallback  = false;
	Map.clusterCallback  = false;
	Map.overlaysCleared = false;
	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();
	//info("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;
		
	}
	
	
	
	//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";
	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;
	

	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
	}
	
	Earthfaves.lookup(Map,earthfavesLookupCallback);
	
	if(filter == ""){ // suche in allen efs !!! sonst in zb myDisc und da braucht man keine counts
		 setTimeout(mapMoveCountDelay,1000);
	}
	
	if(Map.clusterSearch)	{		Earthfaves.lookupClusters(Map, clustersLookupCallback);	}
	disableAllMapFilter(); // die checkboxen disablen damit inzwischen niemald klickt.
	enableOrdisableSearchFuntions(true); // suchbutton abstellen
	
	// Starte lokale Google-Suche
	lookupGoogle(global.search1, Map);
	Map.searchAutoZoom = false; // zuruecksetzen
	Map.searchQuadrantSearch = false;// zuruecksetzen
	Map.searchForcedRegion = "";
	Map.searchForcedRegionId = 0;
	
	
//	lookupGoogle();

//daniel 
// code der mir setzt, welche Funktion als letztes ausgefuehrt wurde
if( Map.globalCallerOfMapMove  != ""){ 
	//info("mapMoved Map.globalCaller nicht leer" + Map.globalCallerOfMapMove );
	Map.globalCallerOfMapMove  = "";
	}
	
Map.zoomlevelMerker = zoom; // merke mir den zoomlevel	

}

function mapMoveCountDelay(){
		//Earthfaves.count(global.search1,"", Map.searchLat1,Map.searchLng1, Map.searchLat2, Map.searchLng2, Map.searchForcedRegion, Map.searchForcedRegionId, Map.searchRedundanceData, Map.earthfavesFilterArray,
		//		earthfavesCountCallback, earthfavesCountCallbackOnError,
		//		earthfavesCountCallbackOnTimeout);
}

function sectionSearch() 
{
		global.search1 = field1;
		global.search2 = field2;
		alert(" sectionSearch" +  global.search1 + " " +  global.search1 );
		Google.getPoint(field2, getPointCallback);
	
	
	info("Map moved, re-calculate earthfaves and places ...");
	Map.showMapLoaderAnimation();

	if( global.RESULTLIST_CLEAR_ENABLE ) {
		// Trefferliste leeren
		var resultList = document.getElementById("result-list");
		if (resultList) {	document.getElementById("result-list").innerHTML = "";	}
	}

	var bounds = Map.getBounds();
	var lat1 = bounds.getSouthWest().lat();
	var lng1 = bounds.getSouthWest().lng();
	var lat2 = bounds.getNorthEast().lat();
	var lng2 = bounds.getNorthEast().lng();
	info("Karte - links unten: " + lat1 + " " + lng1 + " -- rechts oben:"	+ lat2 + " " + lng2);

	Earthfaves.count(global.search1, "", lat1, lng1, lat2, lng2,Map.searchForcedRegion, Map.searchForcedRegionId, Map.searchRedundanceData, Map.earthfavesFilterArray,
			earthfavesCountCallback, earthfavesCountCallbackOnError,
			earthfavesCountCallbackOnTimeout);
	
	//EarthfavesProvider.prototype.lookup = function(name, address, lat1, lng1, lat2, lng2, filter, from, max, mapId, listId, autoZoom, ignoreMove, quadrantsearch, callback, callbackOnError, callbackOnTimeout)
	Earthfaves.lookup('',global.search1, global.search2, lat1, lng1, lat2, lng2,"", 1, global.PAGINATION_STEP_EARTHFAVES, Map.id, "result-list", false,Map.clusterSearch, Map.ignoreMove, true, earthfavesLookupCallback);
	
	// Starte lokale Google-Suche
	lookupGoogle(global.search1, Map);
//	lookupGoogle();
}

//bei eartfhaves die filter die man setzen kann um die Suche zu filtern
function createMapFilterArray(id){
	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(":");
		 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
	var filter = ""; // gesetzt wird getLastEfFilter() zb in der UIModules in earthfavesLeftNav
	if( menu.getLastEfFilter() != "" ) { // nicht leer
		filter = menu.getLastEfFilter() + ":" + global.user_id;
		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
		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,
		earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
		info("ext.js createMapFilterArray: lookupEarthfaves ohne filter: " + filter ); 
	}
	
	/* 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
}

// wenn eine suche laeuft sollten gewisse sachen nicht klickbar sein wie zb der search-button.
// kann man hier disaplbem und enablen
function enableOrdisableSearchFuntions(bool){
	document.getElementById('searchContainerSearchButton').disabled = bool;

}

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(){
	info("ext.js enableAllMapFilter");
	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 = false;
			}
		}
		
		
		
}	

function uncheckAllMapFilter(send){
	//alert("uncheckAllMapFilter");
	info("........uncheckAllMapFilter......");
	
	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){ 
	  // 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 
			Earthfaves.count(global.search1, "", lat1, lng1, lat2, lng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray,
			earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
		}
	}

}	
	
	
function googleCallback() 
{
	console.group("googleCallback");
	console.info("Callback für lookupGoogle");
//	console.groupCollapsed("googleCallback");
	
	// Hier wird wohl nur für den AdWiz eine rListe erzeugt
	// Die in der Suche wird in der processResults erzeugt
	console.log(Google.localSearch.results.length + " Treffer gefunden");//, 4, "googleCallback");
	var resultList = "";
	var map = Application.getActiveMap();
	var listId = Application.getActiveList();
	var resultList = "";
	map.places = new Array();

	console.debug(Google.localSearch.results);//, 5, "googleCallback");
	//daniel 2009 24 08
	for (var i = 0; i < Google.localSearch.results.length; 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);

		//info("stadt des places " + place.city + " strasse " + place.street );

		map.places.push(place);	
		if (listId) {
			// Wir sind im AddWizard
			//info("ext.js if googleCallback ext.js erzeuge google Rliste...");
			resultList += place.asAddWizardResultListEntry(i);
		}
		else {
			//info("ext.js else googleCallback ext.js erzeuge keine Rliste...");
		}
//		var marker = Map.createMarker(place);
//		Map.addOverlay(marker);
	}
	info(map.places, 5, "googleCallback");

	if( document.getElementById("result-info-container-undiscovered") ){
		document.getElementById("result-info-container-undiscovered").innerHTML = map.places.length; // wieso 8
	}


	//info("ext.js googleCallback: resultList ist " + resultList);

	if (listId) {
		map.resultList = "<table>" + resultList + "</table>";
		info("AddWizard: trage Places ein in map.resultList ein", 5, "googleCallback");// + map.resultList);
		//document.getElementById(listId).innerHTML += "<table>" + resultList + "</table>";
		//document.getElementById(listId).style.display = "none";
	}
	else {
		//info("AddWizard: trage keine Places ein ...");
	}

	map.googleCallback = true; // merke mir, dass diese callback durchlaufen wurde
	console.groupEnd();
}


	function addWizardEarthfavesLookupCallback(response)
	{
		info("addWizardEarthfavesLookupCallback :::::::::::::::::", 5);
		var resultList = '';
		var result = JSON.decode(response);
		info("addWizardEarthfavesLookupCallback nach decode:::::::::::::::::", 5);
		var h1 = document.getElementById('h1Page1');
		AddWizardMap.earthfaves = new Array();
		//	AddWizardMap.places = new Array();
		// Ein ResultCode von 0 bedeutet keine Fehler
		info("addWizardEarthfavesLookupCallback nach bli:::::::::::::::::", 5);
		
		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" value="-1"/> </td> </tr>';
		}
		//info("addWizardEarthfavesLookupCallback vor if: " + result.rc);
		if (result.rc == 0) {
			//info("AddWizard hat " + (result.efs.length) + " earthfaves gefunden. Places in der Rliste: " + AddWizardMap.resultList);
			if (result.efs){//wichtig. efs gibts nur wenns eben efs giobt
				  info("addWizardEarthfavesLookupCallback ::::: es gibt efs ::::::::::::");
					if (result.efs.length == 0) {
						info("ext.js addWizardEarthfavesLookupCallback if");
						resultList = '<tr> <td colspan="4" align="center" style="color:#F05A22; font-size:14px; font-weight:bold;">' +
						global.NO_RESULT_EF + '</td> </tr>';
					} else {
						info("ext.js addWizardEarthfavesLookupCallback else. Anzahl:" + result.efs.length);
						for (var i = 0; i < result.efs.length; i++) {
							//info(result.efs[i]);
							var earthfave = new Earthfave(result.efs[i]);
							info("addWizardEarthfavesLookupCallback :::::::::::: " + earthfave.name + "id: " + earthfave.id);
							AddWizardMap.earthfaves[earthfave.id] = earthfave;
							
							if( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ){
								info("addWizardEarthfavesLookupCallback in if ::::::::::::");
								resultList += earthfave.asAddWizardResultListEntry();
							}
							else
								resultList += earthfave.asBusinessSignUpResultListEntry();
						}						
					}
					//info("addWizardEarthfavesLookupCallback:" + resultList);
					info("addWizardEarthfavesLookupCallback ausgabe der Daten in den adW");
					//document.getElementById(result.target.listId).innerHTML += "<table>" + resultList + "</table>";
					//daniel efs oben im adW
					//document.getElementById(result.target.listId).innerHTML = "<table>" + resultList + "</table>" + document.getElementById(result.target.listId).innerHTML; 
					if ( AddWizardMap.places.length > 0 && ( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ) ) {
						document.getElementById(result.target.listId).innerHTML = "<table>" + resultList + "</table>" + AddWizardMap.resultList; 
					} else {
						document.getElementById(result.target.listId).innerHTML = "<table>" + resultList + businessFormular + "</table>"; 
					}
					
					//document.getElementById(result.target.listId).style.display = "block";
					//processResults();
				  h1.innerHTML = "Add your earthfave. Found " + result.efs.length + " earthfaves and " + AddWizardMap.places.length + " places";
			} else {
				info("Hier bin ich in der else ohne efs");
				
				if( AddWizardMap.places.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.places.length + " places";
					document.getElementById(result.target.listId).innerHTML = AddWizardMap.resultList;
				} 
				else
				if( AddWizardMap.places.length == 0 && ( typeof(global.isBusinessSignUp)=='undefined' || global.isBusinessSignUp===null || global.isBusinessSignUp===false ) ) {
					info("addWizardEarthfavesLookupCallback ::::: es gibt keine efs und keine places::::::::::::");
					document.getElementById("result-list-overlay").innerHTML = "";
					h1.innerHTML = "Add your earthfave. Found 0 earthfaves and 0 places"; 
				}
				else {
					document.getElementById("result-list-overlay").innerHTML = "<table>" + businessFormular + "</table>";
				}
				
			}			
		}// result.efs = false
	}//rc != 0



function clustersLookupCallback(response)
{
	info("ext.js clustersLookupCallback");
	var activeMap = Application.getActiveMap();
	var result = JSON.decode(response);
	if (result.rc == 0) {
			info("ext.js clustersLookupCallback ok ");
			if( result.cluster ){ 
				//info("clustersLookupCallback: " + (result.cluster.length) + " Treffer gefunden");
				//info("ext.js clustersLookupCallback ok overlays" + activeMap.overlaysCleared);
				if(!activeMap.overlaysCleared){
					activeMap.clearOverlays();
					activeMap.overlaysCleared = true;
				}
				activeMap.clusterArray = new Array();
			 	activeMap.clusterCounter = result.cluster.length;
				//info("clustersLookupCallback: !!!!!!! " + (activeMap.clusterCounter) + " Cluster gefunden !!!!!!!!");
				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");
				//info("ext.js clustersLookupCallback cluster " + i + " Cid " +  cluster.id + " anzEfs: " + cluster.countEfs ); 
				}
			}	else { info("clustersLookupCallback keine cluster gefunden");  	}
			
	} else { info("ext.js clustersLookupCallback KEINE CLUSTER"); }
	
	info("ext.js clustersLookupCallback VOR ENDE activeMap.earthfavesCallback: " + activeMap.earthfavesCallback);
	if(activeMap.earthfavesCallback){ showMarkerOnMap("cluster");}	
	activeMap.clusterCallback  = true;
	//info("ext.js clustersLookupCallback ENDE");
}



//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){
	console.group("showMarkerOnMap");
	console.info("zeichnet die marker auf die Karte. Caller: ",caller);

	var found;
	var activeMap = Application.getActiveMap();  
	if( activeMap ) { }
	else  {		 activeMap = Map;	 }
   
	console.log("activeMap.manualyCreatedPlace" + activeMap.manualyCreatedPlace); 
	if(!activeMap.manualyCreatedPlace){ //bei manuellen anlegen soll er die Overlays nit loeschen
		activeMap.clearOverlays(); // loesche overlays
		activeMap.overlaysCleared = true; // loesche overlays
		activeMap.hideMapLoaderAnimation();
	} else { return; }
	
	if(activeMap.places.length > 0){
		console.log("ext.js showMarkerOnMap ich fand places");
		for(var i = 0; i < activeMap.places.length; i++ ){
			var marker = activeMap.createMarker(activeMap.places[i]);
			console.log("ext.js showMarkerOnMap baue marker fuer places" + activeMap.places[i].name);
			activeMap.addOverlay(marker,"place",i);
		}
	}
	
	
	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 ?
	 
  // console.log("ext.js showEfClusterOnMap stelle 2 mach die efs .................");
   if ( activeMap.earthfaves ) { 
       var laenge;
			 var showEf;
			 var efObj;
			 var efAnz = activeMap.earthfaves.length;
			 console.log("ext.js showMarkerOnMap anzahl efs " + efAnz + " -------------");		 
			 for ( var i = 0; i < efAnz; i++){
					//Daniel ef die in cluster liegen mit cluster.countEfs > 2 nicht anzeigen
					 efObj = activeMap.earthfaves[i];
					 showEf = true;
					 if(!activeMap.showEarthfavesAllwaysOnMap){
						 //Wenn die efs IMMER angezeigt werden sollen wird der Code nicht ausgefuehrt
						 if( activeMap.clusterCounter > 0 ){//gibt es cluster
								 laenge = activeMap.clusterCounter;
								 if(activeMap.clusterArray[efObj.clusterId]){
										var anzEfCluster = activeMap.clusterArray[efObj.clusterId].countEfs;
										//console.log("ext.js showClusterOnMap ef_id " + efObj.id + " cluster id " + efObj.clusterId + " anzahl ef " + anzEfCluster);
										if(anzEfCluster > 2){
											//console.log("ext.js showEfClusterOnMap zuviele ef in cluster -> zeige ef " + efObj.id + "  nicht auf map");
											showEf = false;
										}
								} else 
								{
									// console.log("ext.js showClusterOnMap cluster " + efObj.clusterId + "  gibt es nicht");
								}
						}
					}
					if ( showEf ){
						var marker = activeMap.createMarker(efObj); // erzeuge ef marker
           	activeMap.addOverlay(marker,"normal",i); // achtung methode addOverlay ist in mapProvider ueberschrieben
					}
       }
   }
	 
	//console.log("ext.j -> showMarkerOnMap ...vor activeMap.aktivePageEarthfavesSearch "); 
	if( activeMap.aktivePageEarthfavesSearch ) {
			//daniel  die anderen Seiten der paginations werden geladen fuer die Karte
			if( activeMap.lastSearchOverall > global.PAGINATION_STEP_EARTHFAVES){// es gibt mehr efs als auf seite 1 der Paginations
				if (!activeMap.ignoreNextMove && !activeMap.globalIgnoreMove) {		
					activeMap.aktivePageEarthfavesMarkerArray = new Array(); //PaginationMarker  Array leeren
					Earthfaves.lookupPaginationsEarthfaves(activeMap, paginationsEarthfavesLookupCallback);
				} else {
					//console.log("ext.j -> showMarkerOnMap ...rufe  "); 
					setPaginationMarkerOnMap(activeMap); // zeichne die PaginationsEarthfaves aus dem Array auf die Karte (wenn vorhanden)
				}
			} else {
			//	console.log("ext.j -> showMarkerOnMap ...zeige checkboxen wieder an 1");
				enableAllMapFilter();
			}
	}
	else 
	{
		console.log("ext.j -> showMarkerOnMap ...zeige checkboxen wieder an 2");
		enableAllMapFilter();// daniel. Wenn die filtercheckboxen ausgeblendet wurden muessen sie nun wieder enabled werden
	}
	
	
	if ( document.getElementById("tdZoom") ) {
		document.getElementById("tdZoom").innerHTML = "zoom:" + activeMap.realMap.getZoom();
	}
	enableOrdisableSearchFuntions(false); // setzte suchbuttons geht wieder
	
	if(activeMap.searchFilter == "" && global.user_id != "1"){

		Earthfaves.count(global.search1, "", activeMap.searchLat1, activeMap.searchLng1, activeMap.searchLat2, activeMap.searchLng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray,
			earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
	}
	console.groupEnd();
} 

function lookupForNearEarthfavesCallback(response){
	var result = JSON.decode(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;
	//info("ext.js lookupForNearEarthfavesCallback latmin " + latmin );
	//info("ext.js lookupForNearEarthfavesCallback latman " + latmax );
	//info("ext.js lookupForNearEarthfavesCallback lngmin " + lngmin );
	//info("ext.js lookupForNearEarthfavesCallback lngmax " + lngmax );
	
	var lat_center = latmin + (latmax - latmin)/2;
	var lng_center = lngmin + (lngmax - lngmin)/2;
	
	//info("ext.js lookupForNearEarthfavesCallback lat_center / lng_center " + lat_center + " / " + lng_center );
	
	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
	info("Zoome ... bounds = " + bounds + ", center = " + center + ", zoom = " + zoom);
	Map.setCenter(center, zoom);
	Map.ignoreNextMove = true;
	lookupEarthfaves('', 1,global.paginationStepEarthfaves,false,true,true,true,false);

}

function paginationsEarthfavesLookupCallback(response){
	info("ext.js paginationsEarthfavesLookupCallback");
	var activeMap = Application.getActiveMap();
	var result = JSON.decode(response);
	if (result.rc == 0)
	{
		info("ext.js paginationsEarthfavesLookupCallback RESULTS");
		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 {
				info("ext.js paginationsEarthfavesLookupCallback RESULTS LANGE NULL"); 
		}
			
	} else 
	{ 
		info("ext.js paginationsEarthfavesLookupCallback KEINE RESULTS"); 
	}
	enableAllMapFilter(); // Checkboxen in der Filterbox wieder enablen. Siehe auch createMapFilterArray

}

function setPaginationMarkerOnMap(mapi){
	info("ext.js setPaginationMarkerOnMap"); 
	for (var i = 0; i < mapi.aktivePageEarthfavesMarkerArray.length; i++) {
		var PMarker = mapi.createPaginationMarker(mapi.aktivePageEarthfavesMarkerArray[i]);
		mapi.addOverlay(PMarker,"paginationMarker",i);
	}
}


function findEarthfaveInClusterX(mapObj,x){
	var ret = 0;
	for ( j = 0; j < mapObj.earthfaves.length; j++){
			// info("ext.js findSingleEarthfaveFromCluster suche efid: " + mapObj.earthfaves[j].id + " clusterId " + mapObj.earthfaves[j].clusterId); 
				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;
}



function earthfavesLookupCallback(response)
{
	console.group("earthfavesLookupCallback(response)");
	console.info("Callback für die Suche nach earthfaves ....");

	//daniel: Achtung. nie von Hand umlaute bei Ef - Namen in die DB eintragen !!!
	console.log("ext.j -> earthfavesLookupCallback: ");	
	var resultList = '';
	var lng_min = 180;	// Laengengrad, Longitude, x-Koordinate
	var lng_max = -180;
	var lat_min = 90;	// Breitengrad, Latitude, y-Koordinate
	var lat_max = -90;
	var result = JSON.decode(response);

	var map = Application.get(result.target.mapId);
	console.log(map.places);
	//console.log("ext.js earthfavesLookupCallback ok overlays" + map.overlaysCleared);
	
	if(!map.overlaysCleared){//ich weiss nicht welche Callback das Clear ausfÃ¼hren soll	
		map.clearOverlays();
		map.overlaysCleared = true;
	}
	
	map.earthfaves = new Array();
	if (result.rc == 0) {
		if( result.efs ){ // Daniel: DU geiler !!! Du musst auch schauen, dass das array ueberhaut existiert !!
			//console.log("earthfaves: " + (result.efs.length) + " Treffer gefunden");

			map.aktivePageEarthfavesIdArray = new Array(); // leeren vorm fuellen

			console.log("ext.js earthfaves: " + (result.efs.length) + " Treffer gefunden stelle 2 ", 4);
			for (var i = 0; i < result.efs.length; i++) {

				//		console.log(result.efs[i]);
				var earthfave = new Earthfave(result.efs[i]);
				//console.log("ext.js earthfavesLookupCallback in forschleife. Earthfave-Name: " + earthfave.name);
				map.earthfaves[i] = earthfave;
				map.aktivePageEarthfavesIdArray.push(earthfave.id);
				//		map.earthfaves[earthfave.id] = earthfave;

				// daniel ausgelagert
				var marker = map.createMarker(earthfave);
				//map.addOverlay(marker,"normal"); // achtung methode addOverlay ist in mapProvider ueberschrieben
				resultList += earthfave.asResultListEntry(marker.id);		
				if (result.target.autoZoom == "1") {
					//				console.log(earthfave.lng + "," + earthfave.lat);
					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; }
				}
			}
			//console.log("ext.js earthfaves: " + (result.efs.length) + " Treffer gefunden stelle 3 ");	

			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
				console.log("Zoome ... bounds = " + bounds + ", center = " + center + ", zoom = " + zoom, 4);
				map.setCenter(center, zoom);
			}
			// 2009 06 19 daniel: vorher war es document.getElementById(result.target.listId).innerHTML += resultList; !!!!!!!!!!!!!!!!!!11
			// was war der gunrd fuer das += ?

			console.log("schreibe innerHTML nach : ",result.target.listId);
			if(document.getElementById(result.target.listId)){
					console.log("Habe Element gefunden : ",result.target.listId);
				//document.getElementById(result.target.listId).innerHTML = "<tr><td>hallo</td></tr>"; //resultList;
				document.getElementById(result.target.listId).innerHTML = '<table style="padding-left:10px; border-collapse:collapse;">' + resultList + '</table>';

			}
			else {
				console.log("kann das Element nicht finden ",result.target.listId);
			}
			console.log("schreibe innerHTML fertig ...");
		}
		else { 
			// kein result.efs !!!!
			document.getElementById(result.target.listId).innerHTML = ""; 
		}

	}
	//console.log("ext.js earthfaves: " + (result.efs.length) + " Treffer gefunden stelle 4 ");

	if (result.target.filter == "") {
		// Erzeugt auch die places RListe ergebnisse, falls es sich nicht um eine Trustlevel-Anfrage handelte
		processResults(); 
	}
	
	myFrom = parseInt(result.target.from);

	var myAll = parseInt(result.target.overall);
	map.lastSearchOverall = myAll; // merke mir die anzahl aller funde
	console.log("baue pagination fuer " + myAll + " earthfaves ", 5, "earthfavesLookupCallback");
	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,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();

	console.log("earthfavesLookupCallback ENDE map.id " + map.id + "activeMap.id " + activeMap.id, 5, "earthfavesLookupCallback");
	console.groupEnd();
}


//aufgerufen in der earthfavesLookupCallback siehe oben
function processResults()
{
	console.group("processResults()");

	//zeichne die Cluster
	//var activeMap = Application.getActiveMap();
	var resultList = "";
	
	// Alle Places durchlaufen
	for (var i = 0; i < Map.places.length; i++)	{
		var doContinue = false;
		
		// Pruefen, ob dieser Place schon als earthfave existiert, also alle earthfaves durchlaufen
		//	info("Teste, ob Place schon earthfave ist: " + Map.places[i].name)
		for (var j = 0; j < Map.earthfaves.length; j++)
		{ 	
			if (Map.places[i].equal(Map.earthfaves[j])) {
				doContinue = true;
				break;
			}
		}
		
		if (doContinue) {
			doContinue = false;
			console.log("Place '" + Map.places[i].name + "' existiert bereits als earthfave", Map.places[i])
			continue;
		} else {
			var marker = Map.createMarker(Map.places[i]);
			Map.addOverlay(marker,"normal",i);
			resultList += Map.places[i].asResultListEntry(marker.id);
		}
	}
//	var rl = Application.getActiveList();
//	info("RL=" + rl)
//	document.getElementById(rl).innerHTML += resultList;

	//document.getElementById("result-list").innerHTML += resultList;
	document.getElementById("result-list").innerHTML += '<table style="border-collapse:collapse;"> ' + resultList + ' </table>';
	
	
	console.groupEnd();
}

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.group("earthfavesCountCallback");
	console.info(" Der Callback der Zaehlfunktion. Wieviel FreundesEfs, FF-Efs usw")
	
	var r = response.split("|");
	var mine = r[0];
	var f = r[1]; 
	var ff = r[2]; 
	var other = r[3];
	var alle = r[4];
	var mProz,fProz,ffProz,oProz;
	
	var activeMap = Application.getActiveMap();
	activeMap.lastSearchMy = mine;
	activeMap.lastSearchFriends = f;
	activeMap.lastSearchFF = ff;
	activeMap.lastSearchOther = other;
	
	if( global.user_id == "42"){  //travelmaster
		 mProz = Math.round(100 * mine / alle);
		 fProz = Math.round(100 * f / alle)
		 ffProz= Math.round(100 * ff / alle);
		 oProz = Math.round(100 * other / alle);
		 document.getElementById("result-info-container-mine-percent").innerHTML = mProz+ "%";
		 document.getElementById("result-info-container-friends-percent").innerHTML = fProz+ "%";
		 document.getElementById("result-info-container-friends-friends-percent").innerHTML = ffProz+ "%";
		 document.getElementById("result-info-container-others-percent").innerHTML = oProz+ "%";
	}
		
	document.getElementById("result-info-container-mine").innerHTML = String(mine);
	document.getElementById("result-info-container-friends").innerHTML = String(f);
	document.getElementById("result-info-container-friends-friends").innerHTML = String(ff);
	document.getElementById("result-info-container-others").innerHTML = String(other);	
	document.getElementById("result-info-container-all").innerHTML = String(alle);
	console.info("alle bookmarker",r[4])
	document.getElementById("result-overall").innerHTML = "Results:" + r[4]; // siehe in  earthfave.inc.php 
	
	if ( global.user_id != "1" ){
		document.getElementById("result-info-container").style.display = "block"; 	
	}
}


function earthfavesCountCallbackOnError(response) {
	document.getElementById("result-info-container-mine").innerHTML = '*';
	document.getElementById("result-info-container-friends").innerHTML = '*';
	document.getElementById("result-info-container-friends-friends").innerHTML = '*';
	document.getElementById("result-info-container-others").innerHTML = '*';
}


function earthfavesCountCallbackOnTimeout(response) {
	document.getElementById("result-info-container-mine").innerHTML = '*';
	document.getElementById("result-info-container-friends").innerHTML = '*';
	document.getElementById("result-info-container-friends-friends").innerHTML = '*';
	document.getElementById("result-info-container-others").innerHTML = '*';
}
	
	
function submitSearch(type, field1, field2, ext)
{	
	// Frank -- dshistory State initialize
	//dsHistory.addFunction(functionToCall, functionScope, arbitraryObjectToBePassed);
	if( document.getElementById('resultList') ){ document.getElementById('resultList').style.display = "block"; }
	if (field1 == global.SEARCH1_DEFAULT || field1 == global.SEARCH1_PEOPLE ) field1 = "";
	if (field2 == global.SEARCH2_DEFAULT || field2 == global.SEARCH2_PEOPLE ) field2 = "";
	if( field1 != "" || field2 != ""){
			//alert("type: "+type);
			//alert("field1: "+field1);
			//alert("field2: "+field2);
			//alert("ext: "+ext);
		global.filterBrowseLink = "";
		global.search1 = field1;
		global.search2 = field2;
		info("submitSearch ext.js search1: " +  global.search1 + " search2 :" + global.search2);
		var infoContainer = document.getElementById("result-info-container");
		
		switch (type)
		{
			case 'business_earthfave_search':
				document.getElementById("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 {	
					document.getElementById("result-list-overlay").innerHTML = '<div class="progress-red2" style="height:400px;"></div>';
					Google.getPoint(global.search2, addWizardGetPointCallback);
	//			if (infoContainer) infoContainer.style.display = "block";
	//			lookupEarthfaves(field1,field2,0,0,'');
					global.lastSearch = "searchAdd";
				}
				break;			
			
			case 'earthfaves':
				if (get.page_id == "earthfaves") 
				{					
					if(  field1 != "" ){
						Map.earthfavesFilterArray = new Array(); // leere die filter der checkboxen wenn in Feld 1 eine eingabe gemacht wurde
						uncheckAllMapFilter(); // alle ausgewaehlten checkboxen  unchecken !
					}
					changeBorder("result-info-container-all");// unter der Karte ddas tr umranden, da dies die gerade angezeigte RListe ist !!!
					// Wir sind auf der earthfaves-Seite
					// Suche nach earthfaces oder Plaetzen
					//daniel 2008 12 09 ich machen die pagination mal leer
					if(document.getElementById('result-title-bottom')){document.getElementById('result-title-bottom').innerHTML = "";}
					if(document.getElementById('result-pagination-bottom')){document.getElementById('result-pagination-bottom').innerHTML = "";}
					if( global.RESULTLIST_CLEAR_ENABLE ) {					
						var resultList = document.getElementById("result-list");	
						if (resultList) {	
							resultList.innerHTML = "";		
						}	
					}
					Map.ignoreNextMove = false;
					Map.ignoreMove = false;
					Map.overlaysCleared = false;
					Map.globalCallerOfMapMove = "submitSearch";
					Map.manualyCreatedPlace = false;
					info("submitSearch ext.js Map.ignoreNextMove=" + Map.ignoreNextMove + " Map.ignoreMove=" + Map.ignoreMove);
					if(  field2 != "" ){ 
						Google.getPoint(field2, getPointCallback);
						enableOrdisableSearchFuntions(true); // setzt einige sachen auf disable 
					}
					else { // keine ortsangabe in feld 2 fuehrte zu einem fehler. Daher setze ich ihn auf berlin
						Map.fixZoom = 5;
						Google.getPoint("berlin", getPointCallback);
						enableOrdisableSearchFuntions(true); // setzt einige sachen auf disable 
					}
					// wenn der sektionsblock existiert der user eingeloggt ist und IN ALLEN efs gesucht wird, zeige die sektionen an !!!
					if (infoContainer && global.user_id > 1 &&  menu.getLastEfFilter() == ""){ 
						info("ext.js submitSearch mache sektionen sichtbar");
						infoContainer.style.display = "block";
					}
					else { infoContainer.style.display = "none"; }
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2;
				}
				break;
			
			case 'ef_my':
				if (get.page_id == "earthfaves") {
					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(document.getElementById('result-title-bottom')){document.getElementById('result-title-bottom').innerHTML = "";}
					if(document.getElementById('result-pagination-bottom')){document.getElementById('result-pagination-bottom').innerHTML = "";}
					if( global.RESULTLIST_CLEAR_ENABLE ) {						var resultList = document.getElementById("result-list");						if (resultList) {								resultList.innerHTML = "";						}				}

					Map.ignoreNextMove = false;
					Map.ignoreMove = false;
					info("submitSearch ext.js Map.ignoreNextMove=" + Map.ignoreNextMove + " Map.ignoreMove=" + Map.ignoreMove);
					Google.getPoint(field2, getPointCallback);
					if (infoContainer && global.user_id > 1) infoContainer.style.display = "block";
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=MINE:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
			/*
			case 'ef_discovered':
				if (get.page_id == "earthfaves") {
					lookupEarthfaves(field1, field2, 0, 0, "DISCOVERED:" + global.user_id);
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=MINE:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
				
			case 'ef_bookmarked':
				if (get.page_id == "earthfaves") {
					lookupEarthfaves(field1, field2, 0, 0, "BOOKMARKED:" + global.user_id);
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=BOOKMARKED:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
				
			case 'ef_friends':
				if (get.page_id == "earthfaves") {
					lookupEarthfaves(field1, field2, 0, 0, "FRIENDS:" + global.user_id);
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=FRIENDS:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
				
			case 'ef_friends_friends':
				if (get.page_id == "earthfaves") {
					lookupEarthfaves(field1, field2, 0, 0, "FRIENDS_FRIENDS:" + global.user_id);
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=FRIENDS_FRIENDS:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
				
			case 'ef_others':
				if (get.page_id == "earthfaves") {
					lookupEarthfaves(field1, field2, 0, 0, "OTHERS:" + global.user_id);
				}
				else {
					document.location.href = global.URL + "page.php?page_id=earthfaves&search1=" + field1 + "&search2=" + field2 + "&filter=OTHERS:" + global.user_id;
				}
	//			if (infoContainer) infoContainer.style.display = "none";
				break;
	*/
			case 'people':
				if (get.page_id == "people") 
				{
					// Wir sind auf der People-Seite
					// Suche nach Leuten
					lookupPeople("task:showAll---farbe:blue---", field1, field2, 1, global.PAGINATION_STEP_PEOPLELIST,global.PAGINATION_STEP_PEOPLELIST,"byName");
					global.lastSearch = "lookupPeople";
				}
				else {
					document.location.href = global.URL + "page.php?page_id=people&search1=" + field1 + "&search2=" + field2 + "&what=showAll";
				}
				break;
				
			case 'people_friends':
				if (get.page_id == "people"){
					lookupPeople("task:showFriends---farbe:blue---", field1, field2, 1, global.PAGINATION_STEP_PEOPLELIST,global.PAGINATION_STEP_PEOPLELIST,"byName");
					global.lastSearch = "lookupPeople";
				}
				else { 	document.location.href = global.URL + "page.php?page_id=people&search1=" + field1 + "&search2=" + field2 + "&what=showFriends"; }
			break;
			
			case 'people_friends_friends':
				if (get.page_id == "people"){
					lookupPeople("task:showFriendsFriends---farbe:blue---", field1, field2, 1, global.PAGINATION_STEP_PEOPLELIST,global.PAGINATION_STEP_PEOPLELIST,"byName");
					global.lastSearch = "lookupPeople";
				}
				else {		document.location.href = global.URL + "page.php?page_id=people&search1=" + field1 + "&search2=" + field2 + "&what=showFriendsFriends"; }
			break;
			/*	
			case 'people_suggested':
				break;
	
			case 'cse':
				// Suche in der CSE
				//alert("CSE search: Not yet implemented");
				break;
*/			
		}
	}//if: sind die beiden felder leer , wird keine suchanfrage abgesendet
}


function submitSearch2(event, form)
{
 var was = document.getElementById('searchWhat').value;
 var name = document.forms.search_simple.elements.name.value;
 var address = document.forms.search_simple.elements.address.value;
 
  if (window.event && window.event.keyCode == 13 || event && event.which == 13)
    {
     if (name != ""  ||  address != ""){
	 	if (name != global.search1  ||  address != global.search2)
   			{
   			searchAdd(was, name, address, 0);
			}
		}  else {   return true;  }
	}  else {   return true;  }
}


function submitSearchFilterBrowse(event, form, user_id)
{  
	//Daniel
	var land = 0;
	var admin1 = 0;
	var cat0 = 0;
	var cat1 = 0;
	var anzahl = 2000;
	
if(getCookie( 'map' )){
		if(getCookie( 'map' ) == "show" ){
			var divKarte = document.getElementById('divMap');
			var divLoader = document.getElementById('mapLoader');
			divLoader.style.display = "block";
			divKarte.style.display = "none";
		}
	}
	else {
			var divKarte = document.getElementById('divMap');
			var divLoader = document.getElementById('mapLoader');
			divLoader.style.display = "block";
			divKarte.style.display = "none";
	}
	
	var continent = document.getElementById('select_continents').value;
	if(document.getElementById('select_countries')){land =  document.getElementById('select_countries').value;}
	if(document.getElementById('select_adm1')){ admin1 = document.getElementById('select_adm1').value; }
	if( document.getElementById('select_maincategorie')){ cat0 =  document.getElementById('select_maincategorie').value; }				
	if(document.getElementById('select_sub1Cat')){ cat1 = document.getElementById('select_sub1Cat').value; }				
	//var anzahl = document.getElementById('anzahl').value;
	//var imageOnly = document.getElementsById('chk_images').value;
	var searchType = "0,0,0,0,0,0,0,2"; //F&b
	user = '1';
	if( user_id != ""){
		user = "'" + user_id + "'" ;
		searchType = "0,0,0,0,0,1,0,2";
	}
	//if(document.getElementById('chk_images').checked){searchType = "0,0,0,0,0,0,1,2";} //F&b + only EF with IMages
	//if(imageOnly){searchType = "0,0,0,0,0,0,1,2";} //F&b + only EF with IMages
	//alert("st1:" + searchType + "io:" + imageOnly);
	//alert("cont:" + continent + "land" + land + "adm1" + admin1 + "cat0" + cat0 + "cat1" + cat1 + "anzahl" + anzahl);
	//typ, userID, searchType, style,anzahl,continent,land,admin1,cat0,cat1) 
   // 00000001 filter and browse with parameters
	
	global.filterBrowseLink = global.URL + "page.php?page_id=earthfaves&task=filterbrowse&continent="+continent+"&country="+land+"&admin1="+admin1+"&cat0="+cat0+"&cat1="+cat1;
	//alert("setze link " + global.filterBrowseLink)
	if(document.getElementById('result-list-container')){
		var divRList = 	document.getElementById('result-list-container');
			divRList.innerHTML = '	<div class="progress-blue" style="height:400px;">	</div> ';
	}
	
	searchForMyEarthfaves(user_id,searchType,'1',anzahl,continent,land,admin1,cat0,cat1);
	//	Daniel 2008 12 08 TESTE ::::::
	if(get.page_id == "earthfaves"){
		if(land != 0){
			var params2 = 'top-earthfaves,' + global.INFOBOX_MAX_SHOWN_OBJECTS + ',0,' + global.INFOBOX_NUMBER_OF_IMAGES + ',1,blue,country='+ land;
			infoBox('top-earthfaves',params2);
		}
	}
}


//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;     }
}


// Behandelt den Vorgang, dass der Benutzer im Login-Form auf Return/Enter drueckt
//document.submitLogin = function (event)
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")
	{
		//alert(event.keyCode + " / " + event.type)
		// switch / case gibt's erst ab Javascript 1.2 (was der IE erst ab Version 7 unterstuetzt)
	
		if (event.keyCode == 13)
		{
			//alert(event.keyCode + " / " + event.type)
			// Benutzer hat return/enter gedrueckt
			verifyLogin();
			// Die Rueckgabe von false verhindert, dass das Ereignis an weitere Handler weitergereicht wird
			return false;
		}
		else if (event.keyCode == 27)
		{
			//alert(event.keyCode + " / " + event.type)
			// Benutzer hat escape gedrueckt
			hideForm(global.LOGIN_ID_PREFIX);
			// Die Rueckgabe von false verhindert, dass das Ereignis an weitere Handler weitergereicht wird
			return false;
		} 
	
		// Weder return noch escape
		// Die Rueckgabe von true sorgt dafuer, dass das Ereignis an weitere Handler weitergereicht werden kann
		//	(in unserem Fall an die Standardbehandlung fuer keypress, sonst werden die getippten Zeichen nicht angezeigt!)
		//else return true;
	}
}


// Behandelt den Vorgang, dass der Benutzer im Sign-Up-Form auf Return/Enter drueckt
function submitSignUp(event)
{
//	var result = false;
//	// Firefox get the event object by parameter <event>, internet explorer by the window.event object
////	if (!event) {
//		event = window.event;
////	}
//	if (event.type == "keypress")
//	{
//		switch (event.keyCode)
//		{
//			case 13: // Benutzer hat return/enter gedrueckt
//				verifySignUp();
//				// Die Rueckgabe von false verhindert, dass das Ereignis an weitere Handler weitergereicht wird
////				return false;
//			case 27: // Benutzer hat escape gedrueckt
//				hideSignUpForm();
//				// Die Rueckgabe von false verhindert, dass das Ereignis an weitere Handler weitergereicht wird
////				return false;
//			default:
//				// Die Rueckgabe von true sorgt dafuer, dass das Ereignis an weitere Handler weitergereicht werden kann
//				//	(in unserem Fall an die Standardbehandlung fuer keypress, sonst werden die getippten Zeichen nicht angezeigt!)
////				return true;
//				result = true;
//		}
//	}
////	return result;
}


// CHANGED 18-07-08 (Markus)
function submitProfile(userId)
{
  // Finish, now start upload ...
//  document.getElementById(editProfileWizardIdPrefix + 'form').submit();
  document.getElementById('profile-pop-up').style.display='none';
  document.getElementById('modal-1').style.display='none';
  document.getElementById('branding').style.display='block';
}


// Log a message
function logm(message) 
{
	if (typeof(GLog) === 'object' && GLog != null)
	{
		if( global.logm == true ){
			GLog.write(message); 
		}
//		info(message);
	}
}


// Wizard auf <page>-te Seite zuruecksetzen
function resetWizard(wizard, page)
{
  switch (wizard) {
    case 'add': prefix = addWizardIdPrefix; steps = addSteps; break;
    case 'bookmark': prefix = bookmarkWizardIdPrefix; steps = bookmarkSteps; break;
  }
	
	// Alle Buttons und die Schrittanzeige zuruecksetzen
	for (var i = 1; i <= steps.length; i++)
	{
		if (i > 1) document.getElementById(prefix + 'back-button-' + i).style.display = 'none';
		document.getElementById(prefix + 'next-button-' + i).style.display = 'none';
		document.getElementById(prefix + 'step-' + steps[i - 1]).style.backgroundImage = 'url(img/icons/step-' + i + '.png)';
		document.getElementById(prefix + 'step-' + steps[i - 1]).className = '';
	}
	
	// Aktuelle Buttons und die Schrittanzeige setzen
	if (page > 1) document.getElementById(prefix + 'back-button-' + page).style.display = 'inline';
	if (page <= steps.length) document.getElementById(prefix + 'next-button-' + page).style.display = 'inline';
	document.getElementById(prefix + 'step-' + steps[page - 1]).className='active-step';
	document.getElementById(prefix + 'step-' + steps[page - 1]).style.backgroundImage='url(img/icons/step-' + (page) + '-active.png)';
	document.getElementById(prefix + 'cancel-button').style.display = 'block';
	
	// Sonderfall "quick add"-Button auf Seite 1
	if (document.getElementById(prefix + 'quick-add-button')) {
		document.getElementById(prefix + 'quick-add-button').style.display = (page == 1) ? 'inline' : 'none';
	}
}


function hideShowMapCookie(){
	a = document.cookie;
	cookiename = a.substr(0,a.search('='));
	cookiewert = a.substr(a.search('=')+1,a.search(';'));
	if(cookiewert == ''){cookiewert = a.substr(a.search('=')+1,a.length);} 
	var a = new Date();
	a = new Date(a.getTime() +1000*60*60*24*365);
	if(cookiewert == 'unsichtbar'){document.cookie = 'map=sichtbar; expires='+a.toGMTString()+';'; }
	else if(cookiewert == 'sichtbar'){document.cookie = 'map=unsichtbar; expires='+a.toGMTString()+';'; }
	else {document.cookie = 'map=sichtbar; expires='+a.toGMTString()+';'; }
}



/* 	This script and many more are available free online at
		The JavaScript Source!! http://javascript.internet.com
		Created by: Ultimater | http://webdeveloper.com/forum/member.php?u=30185 
*/
function html_entity_decode(str) 
{
  var ta = document.createElement("textarea");
  ta.innerHTML = str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}


function mainTopicChanged(category_id)
{
	propertyRequest(category_id);	
}


// Generiert die Links fuer die Suchmaschinen Google Bildersuche, Flickr, ...
function generateLinkSearchEngine(name, city) {
	
	var cse = global.URL + 'page.php?page_id=cse&cref=http%3A%2F%2Fwww.earthfaves.com%2Fcse%2Fcontextefs6.xml&cof=FORID%3A9&q=' + name + '%20' + city;
	document.getElementById("link1").href="javascript:openSearchWindow('" + cse + "');";
	document.getElementById("link2").href="javascript:openSearchWindow(\'http://images.google.com/images?hl=en&q="+name+"%20"+city+"');";
	document.getElementById("link3").href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q="+name+"%20"+city+"');";
	document.getElementById("link4").href="javascript:openSearchWindow(\'http://www.flickr.com/search/?q="+name+"%20"+city+"&l=comm');";
}

// ï¿½ffnet die Links in einem Fenster mit bestimmten Maï¿½en
function openSearchWindow(link) {
	window.open(link, '_blank', 'width=920, height=650, menubar=yes, location=yes, toolbar=yes, status=yes, scrollbars=yes, resizable=yes');
}


function comboChange(prefix) 
{
	var selectedValue = document.getElementById(prefix+"postalCodeCombo").value;
	if (selectedValue != "--") {
		document.getElementById(prefix+"postalCode").value = selectedValue;
	}
}


// Hier koennen Aktionen nach dem Form Submit gestartet werden, z.B. "leite weiter zur earthfave Homepage, wenn Uploads abgeschlossen sind"
function afterUpload()
{
	var result = "";
	if ( document.getElementById("upload_iframe").contentWindow.document.body.innerHTML ) {
		result = document.getElementById("upload_iframe").contentWindow.document.body.innerHTML;
	}
	
	//if(document.getElementById("daniel_info")){
	//	document.getElementById("daniel_info").innerHTML = "bin in der ext.js in function afterUpload. result = " + result ; 
	//}
  
	if (document.getElementById("upload_iframe"))
  {
    if (result != "")
    {  
      // NEU 17-10-08 / Markus: der Aufruf fuer den AddWizard nutzt nun auch den AjaxPool, 
      //  daher muï¿½ eventuell "<rid>...</rid>" aus result entfernt werden
      //  Achtung: die bloeden IE's uebertragen: "-1<RID>", also ohne beginnendes <rid> und groï¿½ geschrieben
      var rp = result.split('</rid>');
      // Falls result "<rid>...</rid>" enthaelt, enthaelt rp[1] die eigentliche Antwort
      if (rp.length > 1) response = rp[1];
      else {
      	// Zweiter Versuch, fuer die bloeden IE's
      	rp = result.split('</RID>');
	      if (rp.length > 1) response = rp[1];
		    else response = result;
      }
      
      rp = response.split("|");
      result = rp[0];	// Return code: "ok" --> ok
      id = rp[1];	// ID of earthfave or user
      action = rp[2];	// To which page we have to go now?
			//alert("result " + result + ", action: " + action + ", id: " + id);
			
      // Wichtig: zuruecksetzen, sonst springt er nach einem "Back" wieder auf eine der beiden Homepages
      document.getElementById("upload_iframe").contentWindow.document.body.innerHTML = "";
      var regE = new RegExp("ok"); // Im safari schein in result mehr zu stehen als "ok". Vielleicht ein leerzeichen ?
			if (regE.test(result)){result = 'ok';}
			
			if (result == 'ok' && id != undefined && action != undefined)
      {
				switch(action)
        {
         case "userhome": document.location.href = global.URL + "page.php?page_id=user&user_id=" + id; break;
         case "efhome": 	if ( global.DISCOVER_EF_HOME_JUMP ){document.location.href = global.URL + "page.php?page_id=efhome&ef_id=" + id;}	break;
        }
      }
			else {
				//alert("earthfave do not exists anymore -result:" + result);
				//if(document.getElementById("daniel_info")){document.getElementById("daniel_info").innerHTML = "im else " + result; }
				if(result != "values sind leer"){		location.reload(); } // DANIEL WIKIMARKER 2009 03 06 11:00
			}
			
    }
  }
}


function saveInlineEdited(task, id, edited) {
    var value = task+"<edit>"+id+"<edit>"+edited+"<edit>";
	
	if( edited == "whyilike" || edited == "improved" || edited == "answer" || edited == "expertise") {
		document.getElementById("show-" + edited + id ).className = "changed"; 
	}
	else {	
		document.getElementById("show-" + edited).className = "changed"; 
	}
		
	if( edited=="whyilike" ) {
  		value += document.getElementById(editCommentFormIdPrefix + edited + id).value;
	}
	else
	if( edited=="improved" ) {
  		value += document.getElementById(editCommentFormIdPrefix + edited + id).value;
	}
	else
	if( edited=="answer" ) {
  		value += document.getElementById(editCommentFormIdPrefix + edited + id).value;
	}
	else
    if( edited=="address" ) {
        value += document.getElementById(editAddressFormIdPrefix + "address").value;
        value += "<//>"+document.getElementById(editAddressFormIdPrefix + "postalCode").value;
        value += "<//>"+document.getElementById(editAddressFormIdPrefix + "city").value;
		value += "<//>"+document.getElementById(editAddressFormIdPrefix + "country").value;
    }
    else
    if( edited=="contact" ) {
        value += document.getElementById(editContactFormIdPrefix + "email").value;
        value += "<//>"+document.getElementById(editContactFormIdPrefix + "website").value;
        value += "<//>"+document.getElementById(editContactFormIdPrefix + "phone").value;
        if(document.getElementById(editContactFormIdPrefix + "fax"))
            value += "<//>"+document.getElementById(editContactFormIdPrefix + "fax").value;
    }
    else
    if( edited=="topics" ) {
        value += document.getElementById(editTopicsFormIdPrefix + "categoryIds").value;
        value += "<//>"+document.getElementById(editTopicsFormIdPrefix + "propertyIds").value;
    }
    else
    if( edited=="overview" ) {
        value += document.getElementById(editOverviewFormIdPrefix + "overview").value;
    }
	//Oli 22.10.2009
	else
    if( edited=="categories" ) {
        value += document.getElementById(editCategoriesFormIdPrefix + "categories").value;
    }
	//Oli Ende
    else
    if( edited=="comment" ) {
        value += document.getElementById(editCommentFormIdPrefix + "comment").value;
        value += "<//>"+document.getElementById(editCommentFormIdPrefix + "comment").value;
    }
    else
    if( edited == "expertise" ) {
        value += document.getElementById("selectExpertise").value;
    }
    else
    if( edited=="sex" ) {
        value += document.getElementById("user_sex").value;
    }
    else
    if( edited=="from" ) {
        value += document.getElementById("user_city").value;
        value += "<//>"+document.getElementById("user_country").value;
    }
    else
    if( edited=="slogan" ) {
        value += document.getElementById("textarea_slogan").value;
    }
    else
    if( edited=="aboutme" ) {
        value += document.getElementById("textarea_aboutme").value;
    }
    else
	if( edited=="visited" ) {
		value += document.getElementById("countryIds").value;
	}
	else
	if( edited=="speaks" ) {
		value += document.getElementById("languageIds").value;
	}
	else
    if( edited=="music" ) {
        value += document.getElementById("textarea_music").value;
    }
    else
    if( edited=="movie" ) {
        value += document.getElementById("textarea_movie").value;
    }
    else
    if( edited=="tv" ) {
        value += document.getElementById("textarea_tv").value;
    }
    else
    if( edited=="books" ) {
        value += document.getElementById("textarea_books").value;
    }
    else
    if( edited=="description" ) {
        value += document.getElementById("textarea_description").value;
    }
	else
    if( edited=="new" ) {
        value += document.getElementById("textarea_new").value;
    }
	else
    if( edited=="url" ) {
        var url = document.getElementById("text_url").value;		
		if( url.search(/^([a-zA-Z0-9_-]+)$/) == -1) {
			alert("This url isn't valid");
			return false;
        }			
		value += url;
    }
    else
    if( edited=="account" ) {
        var oldpassword = document.getElementById('oldpassword').value;
        var password1 = document.getElementById('password1').value;
        var password2 = document.getElementById('password2').value;        

        if( password1.length == 0)
          oldpassword="";
        else {
          if(password1.length < 5){
              alert("Your password musst have 5 characters");
              return false;
          }
          else {
            if (password1 != password2) {
                alert("The re-typed password differs from first one");
                return false;
            }
            else {
                var reg = new RegExp("^[a-zA-Z-_0-9]+$");
                if (!reg.test(password1)) {
                    alert("Only these (a-z A-Z 0-9) characters are allowed in the new password");
                    return false;
                }
            }
          }
        }
        var birthday = document.getElementById('birthday-year').value + "-" + document.getElementById('birthday-month').value + "-" + document.getElementById('birthday-day').value;

        value += oldpassword;
        value += "<//>"+password1;
        value += "<//>"+document.getElementById('first-name').value;
        value += "<//>"+document.getElementById('last-name').value;
        value += "<//>"+birthday;
        value += "<//>"+document.getElementById('website').value;
        value += "<//>"+document.getElementById('EFNewsAccepted').checked;
        value += "<//>"+document.getElementById('BusinessNewsAccepted').checked;
        value += "<//>"+document.getElementById('BusinessDiscAccepted').checked;
				value += "<//>"+document.getElementById('checkUserNamePublish').checked;//daniel neu dazu
    }
    updateInlineEditedRequest( value );
    return false;
}

/*
function updateEarthfave(earthfaveID, attribute, element)
{
	updateEarthfaveRequest(earthfaveID, attribute, element.value);
}
// Die Speichern-Aktion des Inline-Adressen-Editieren

// Die Speichern-Aktion des Inline-Kontakt-Editieren
function saveInlineEditedContact(earthfaveID)
{
	document.getElementById("show-contact").className = "changed";
	var value = document.getElementById(editContactFormIdPrefix + "email").value + "<//>"
							+ document.getElementById(editContactFormIdPrefix + "website").value + "<//>"
							+ document.getElementById(editContactFormIdPrefix + "phone").value;
		updateEarthfaveRequest(earthfaveID, "CONTACT", value);
}
// Die Speichern-Aktion des Inline-Beschreibung-Editieren
function saveInlineEditedTopics(earthfaveID)
{
	document.getElementById("show-topics").className = "changed";
	var value = document.getElementById(editTopicsFormIdPrefix + "categoryIds").value
		+ ";" + document.getElementById(editTopicsFormIdPrefix + "propertyIds").value;
	updateEarthfaveRequest(earthfaveID, "TOPICS", value);
}
// Die Speichern-Aktion des Inline-Beschreibung-Editieren
function saveInlineEditedOverview(earthfaveID)
{
	document.getElementById("show-overview").className = "changed";
	var value = document.getElementById(editOverviewFormIdPrefix + "overview").value;
	updateEarthfaveRequest(earthfaveID, "OVERVIEW", value);
}
// Die Speichern-Aktion des Inline-Kommentar-Editieren
function saveInlineEditedComment(earthfaveID)
{
	document.getElementById("show-comment").className = "changed";
	var value = document.getElementById(editCommentFormIdPrefix + "comment").value;
	updateEarthfaveRequest(earthfaveID, "COMMENT", value);
}
// rick
function saveInlineEditedExpertise(earthfaveID)
{
	document.getElementById("show-expertise").className = "changed";
	var value = document.getElementById("selectExpertise").value;
	updateEarthfaveRequest(earthfaveID, "EXPERTISE", value);
}
*/


//Daniel: Das JavaScript fuer den Navigationsbereich ..............
function setInactiveAllNavigationPoints(ulName,page_id)
{
  // Diese Funktion setzt alle classen auf leer. Vorher war vielleicht eine classe auf "selected".
  // Die Icons der Menuepunkte muessen auch getauscht werden. Anhand von _active und _inactive sieht man, ob ein icon grau ist,
  // oder in Farbe dargestellt wird. Da im eigenen Bereich die Menueicons gruen sind und vor dern Incons ein "my-" davor steht,
  // muss ich beim zuruecksetzen der Bilder das "my-" davor entfernen. Graue Icons haben kein my, NUR gruene!
  
	var inactiveImage = "";
	var doc;
  var sub1;
	if(document.getElementById(ulName)){
		doc = document.getElementById(ulName);
		if(doc.getElementsByTagName("li")){
			sub1 = doc.getElementsByTagName("li");
			if(sub1.length>0){
				
				for (element in sub1)
				{	if(sub1[element].tagName == "LI"){
					//  alert("inaktive machen menu tagNam = Li");
						vater = "";
						//if(sub1[element].parentNode.id){vater = sub1[element].parentNode.id; }
						if (sub1[element].className == "selected" || sub1[element].className == "selected_sub"){
						 // alert("inaktive machen menu className == selected");
							vater = sub1[element].parentNode.id;
							if(vater == "userHomeLeftNav_Sub"){		sub1[element].className = "sub";}
							else {		sub1[element].className = ""; }
							
							bild = sub1[element].style.backgroundImage;
						//	alert("inaktive machen menu bild gefunden" + bild);
							
							var pos_ = bild.lastIndexOf("_");
							var posLastSlash = bild.lastIndexOf("/") + 1;
							var bName = bild.substring(posLastSlash ,pos_);
							var bisSlash = bild.substring(0 ,posLastSlash);
							var firstKlama = bisSlash.indexOf("(") + 1;
							var vorUrl = bisSlash.substring(firstKlama);
					 //   alert("Inactive vor URL" + vorUrl);
			
							if(get.page_id == "earthfaves" || get.page_id == "people" ){
							//   alert("In if");
								//bName=bName.substr(3);
								bName=bName.substr(0);
							}
							else if(get.page_id == "user"){
						 //    alert("In else");
								if(get.user_id == global.user_id || page_user_id == global.user_id){
									//bName=bName.substr(3);
									bName=bName.substr(0);
								}
							}
			
						 
							inactiveImage = vorUrl + bName + '_inactive.gif';
					//		alert("inaktive = " + inactiveImage);
							
							sub1[element].style.backgroundImage = 'url(' + inactiveImage + ')';
							info ("setInactiveAllNavigationPoints  Background Bild ::" + sub1[element].style.backgroundImage);
						}
					}
					
				}
			}
		}
		
	}
  // Hier setze ich die blauen Menuepunkte zb All People inactive.
  if(get.page_id == "people" || get.page_id == "earthfaves"){
    ulBlu = document.getElementById("ulBlue");
    subBlue = ulBlu.getElementsByTagName("li");
    for (element in subBlue){
      if(subBlue[element].tagName == "LI"){
        if (subBlue[element].className == "selected"){
          subBlue[element].className = "";
          bild = subBlue[element].style.backgroundImage;
          var pos_ = bild.lastIndexOf("_");
          var posLastSlash = bild.lastIndexOf("/") + 1;
          var bName = bild.substring(posLastSlash ,pos_);
          var bisSlash = bild.substring(0 ,posLastSlash);
          var firstKlama = bisSlash.indexOf("(") + 1;
          var vorUrl = bisSlash.substring(firstKlama);
          bName=bName.substr(0);
		//   bName=bName.substr(3);
        //  alert("inakt " + vorUrl + bName + '_inactive.gif');
					subBlue[element].style.backgroundImage = 'url(' + vorUrl + bName + '_inactive.gif)';
        }
      }
    }
  }

  // NEU Markus / 17-10-08: Den roten InfoContainer ueber der Result-List ausblenden und die Suchbox oben zuruecksetzen
  if(get.page_id == "earthfaves")
  {
    var infoContainer = document.getElementById("result-info-container");
    if (infoContainer) infoContainer.style.display = "none";
    // wenn ich auf eines der suchfelder klicke, wird im Menu der fokus auf "earthfaves and places" (blaues menu) gesetzt.
		//  siehe ext.js focusSearchField2. Dort wird auch setInactiveAllNavigationPoints aufgerufen. 
		// wenn nun jemand in feld 1 etwas schreibt und dann in feld 2 geht, darf aber feld 1 nicht geloescht werden.
		// daher muss das ausdik. werden 
		//resetSearch(); 
  }
	
}


function setActiveNavigationPoint(param)
{
	var vater = param.parentNode;
  if(vater.style.backgroundImage){
		bild = vater.style.backgroundImage;
		
		var pos_ = bild.lastIndexOf("_");
		var posLastSlash = bild.lastIndexOf("/") + 1;
		var bisSlash = bild.substring(0 ,posLastSlash);
	
		var firstKlama = bisSlash.indexOf("(") + 1;
		var vorUrl = bisSlash.substring(firstKlama);
		//alert("Active vor URL" + vorUrl);
		
		var bName = bild.substring(posLastSlash,pos_);
		var url =  vorUrl + bName + '_active.gif';
		vater.style.backgroundImage = 'url(' + url + ')';
		//vater.style.backgroundImage = 'url(' + global.URL + 'img/icons/' + bName + '_active.gif)';
		
		if(get.page_id == "earthfaves" || get.page_id == "people" ){
			//vater.style.backgroundImage = 'url(' + global.URL + 'img/icons/my-' + bName + '_active.gif)';	
			//url = vorUrl + 'my-' + bName + '_active.gif';
			url = vorUrl + bName + '_active.gif';
			//alert("active1  url " + url + " bild name "+ bName);
			vater.style.backgroundImage = 'url(' + url + ')';	
		}
	
		else if(get.page_id == "user"){
			//alert("page: " + get.page_id + "user_id" + get.user_id + " login user " + global.user_id);
			//if(get.user_id == global.user_id || page_user_id == global.user_id){
				
				//url =  vorUrl + 'my-' + bName + '_active.gif';
				url =  vorUrl + bName + '_active.gif';
				//alert("active  url " + url);
				vater.style.backgroundImage = 'url(' + url + ')';	
			//}
		}
	info ("setActiveNavigationPoint  Background Bild ::" + url);
		if(vater.className == "sub" ){	vater.className = "selected_sub";}
		else { vater.className = "selected";}
	}

}

//serge .....
function setInactiveAllNavigationPointsMailBox(ulName){
	var doc = document.getElementById(ulName);
	var sub1 = doc.getElementsByTagName("li");
	
	for (element in sub1){
		if(sub1[element].tagName == "LI"){
			if (sub1[element].className == "selected"){
				sub1[element].className = "";
				var bild = sub1[element].style.backgroundImage;
				//alert(bild);
				var pos_ = bild.lastIndexOf("-");
				
				var posLastSlash = bild.lastIndexOf("/");
				var bName = bild.substring((posLastSlash + 1) ,pos_);
				//alert(bName);
				//divGesucht.style.backgroundImage = 'url(img/icons/' + bName + '_inaktiv.gif)';
				sub1[element].style.backgroundImage = 'url(' + global.URL + 'img/icons/' + bName + '-inactive.png)';
			}
		}
	}
}

function setActiveNavigationPointMailbox(param){
	var vater = param.parentNode;
   bild = vater.style.backgroundImage;
	
	var pos_ = bild.lastIndexOf("-");
	var posLastSlash = bild.lastIndexOf("/");
	var bName = bild.substring((posLastSlash + 1) ,pos_);

	vater.style.backgroundImage = 'url(' + global.URL + 'img/icons/' + bName + '-active.png)';
	vater.className = "selected";
	
}
////serge .......

//Daniel testes eine eigene Lightbox Version basierend auf Markus T's Code zum Login:
function showLightBox(imagePfad, w, h, positionsObjekt)
{	
	var innerHtml=' <img onmouseover="myTip(\'Click to close\');" onmouseout="UnTip();"  onmousedown="hideLightBox();" style="border:5px solid #ffffff;" src="' + imagePfad + '">';
	innerHtml+= '<br><font style="color:#000000; font-size:9px;">click image to close overlay</font>';
	var lipop = document.getElementById('LightBox-pop-up');
	lipop.innerHTML = innerHtml;
	showFormSize('LightBox','modal',w,h);
}
function hideLightBox()	{		hideForm("LightBox");	}

function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}	


function setCookie( name, value, expires, path, domain, secure ) 
{
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		
		/*
		if the expires variable is set, make the correct 
		expires time, the current script below will set 
		it for x number of days, to make it for hours, 
		delete * 24, for minutes, delete * 60 * 24
		*/
		if ( expires )
		{
		expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
		
		document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}


function hideMap(){
		document.getElementById('divMap').style.display = "none";
		document.getElementById('aHideMap').style.display = "none";
		document.getElementById('aShowMap').style.display = "block";
		document.getElementById('map-overlay').style.display = "none";
		//map.style.position = 'relative';
		setCookie( "map", 'hide', '30', '/', '', '' );
}

function showMap(){
		var map = document.getElementById('divMap');
		map.style.display = "block";
		
		document.getElementById('aHideMap').style.display = "block";
		document.getElementById('aShowMap').style.display = "none";
		if(document.getElementById('map-overlay')){document.getElementById('map-overlay').style.display = "block";}
		closeFilter(); // schliese FB Bereich
		setCookie( "map", 'show', '30', '/', '', '' );
		map.style.top = "0px";
		map.style.left= "0px";
		map.style.position = 'relative';
		
}
	var timerCount = 0;
  function refreshNewsFromMyNetwork(user_id,site)
  {
		countRM = countRM+1;
		setTimeout("checkTime("+timerCount+",'" + user_id + "','" + site + "')",120000);
  }
  
	function checkTime(currCount,user_id,site)
  {if(currCount == timerCount)
	 {
		timerCount = 0;
		showNewsFromMyNetwork(user_id,site);        
	 }
  } 

function setLanguage(lang){
//	alert("setze auf " + lang);
   var date = new Date();
	setCookie( "language", lang , date.getDate() + 30*24*60*60, '/', '', '' );
	document.location.href = global.URL + "page.php?page_id=" + get.page_id + "&language=" + lang;
	//location.reload();
}


function wizardLevelOfExperience(prefix, wert)
{
	var com = document.getElementById(prefix + 'comment');
	var labCom = document.getElementById(prefix + 'lableComment');
	var labComE = document.getElementById(prefix + 'lableCommentExplanation');	
	
	var  overview = document.getElementById(prefix + 'overview');
	var  overviewLabel = document.getElementById(prefix + 'overview-label');
	var  overviewSublabel = document.getElementById(prefix + 'overview-sublabel');
	
	var  comment = document.getElementById(prefix + 'comment');
	var  commentLabel = document.getElementById(prefix + 'comment-label');
	var  commentSublabel = document.getElementById(prefix + 'comment-sublabel');

	var  suggestions = document.getElementById(prefix + 'suggestions');
	var  suggestionsLabel = document.getElementById(prefix + 'suggestions-label');
	var  suggestionsSublabel = document.getElementById(prefix + 'suggestions-sublabel');
	
	switch (wert)
	{
		case "1":
		case "4":
		overview.style.display = "block";
		overviewLabel.style.display = "block";
		overviewSublabel.style.display = "block";
		comment.style.display = "block";
		commentLabel.style.display = "block";
		commentSublabel.style.display = "block";
		suggestions.style.display = "none";
		suggestionsLabel.style.display = "none";
		suggestionsSublabel.style.display = "none";
		break;
		
		case "2":
		case "3":
		case "5":
		overview.style.display = "block";
		overviewLabel.style.display = "block";
		overviewSublabel.style.display = "block";
		comment.style.display = "block";
		commentLabel.style.display = "block";
		commentSublabel.style.display = "block";
		suggestions.style.display = "block";
		suggestionsLabel.style.display = "block";
		suggestionsSublabel.style.display = "block";
	}
}	
	

function changeMainMenu(userId,userName){
	var mainUL = document.getElementById("main-nav-h");
	var ulInhalt = mainUL.innerHTML;
	var userMenu;
			userMenu = '<li class="mail">';
			//userMenu +='<a href="page.php?page_id=mailbox&user_id=' + userId + '">Mail</a>';
			userMenu +='<a id="mainNav_Mail" href="mailbox_' + userId + '.html">Mail</a>';
			userMenu +='</li>';
			
		  userMenu += '<li class="userhome">';
			//ohne SEF
			//userMenu +='<a href="page.php?page_id=user&user_id=' + userId + '">'+ userName + '</a>'; 
		  
			//mit SEF
			//userMenu +='<a href="user/' +  userName + '.html">'+ userName + '</a>'; 
			userMenu +='<a href="user/' +  userName + '.html">'+ global.MAIN_USER + '</a>'; 
		
			
			//userMenu +='<a href="page.php?page_id=user&user_id=' + userId + '">'+ userName + '</a>'; 
			if(global.SHOW_SUBMENU != "0" ){
				userMenu +='<ul class="profile-menu"> ';
				userMenu +='<li><a href="page.php?page_id=user&user_id=' + userId + '">My Profi</a></li>';
				//userMenu +='<li><a href="page.php?page_id=myearthfaves&user_id=' + userId + '">My earthfaves</a></li>';
				userMenu +='<li><a href="page.php?page_id=mailbox&user_id=' + userId + '">My Mails</a></li>';
				//userMenu +='<li><a href=""page.php?page_id=userhome&task=showFriends&user_id=' + userId + '">My Friends</a></li>';
		  	userMenu +='</ul>';
			}
			userMenu +='</li>';

	var neue = 	ulInhalt + 	userMenu;
	mainUL.innerHTML = neue;
	//alert ("das menu oben ist nun : " + neue);
}



function showFlashBannerTop(){
	var so = new SWFObject('img/header/002.swf','mpl','950','245','7');
  so.addVariable('autostart','true');
  so.addParam('wmode','transparent');
  so.write('flashbanner');
}


function createNirvanaEarthfave(){
	info("createNirvanaEarthfave :::::::::::::::::");
	if (user == 'Guest') {
		global.action = "placemark()";
		showLogin();
	}
	else {
	
		var activeMap = Application.getActiveMap();
		info("createNirvanaEarthfave tempMarker: " +  activeMap.tempMarker);
		if(! activeMap.tempMarker ){
			info("createNirvanaEarthfave tempMarker: " +  activeMap.tempMarker);
			activeMap.ignoreMove = true;
			activeMap.manualyCreatedPlace = true;
			activeMap.clearOverlays();
			activeMap.earthfaves = new Array();
			activeMap.createPlace();
			
			/*
			if(document.getElementById('result-title-bottom')){document.getElementById('result-title-bottom').innerHTML = "";}
			if(document.getElementById('result-pagination-bottom')){document.getElementById('result-pagination-bottom').innerHTML = "";}				
			var resultList = document.getElementById("result-list");	
			if (resultList) {	
					resultList.innerHTML = "";		
			}	
			*/
			if( document.getElementById('resultList') ){ document.getElementById('resultList').style.display = "none"; }
		
			clearEarthfavesCount();
		}
	}	
}


function changeSelectSearchContainer(value){
	//Wird genutzt fuer ï¿½nderungen in der Selectbox oben im  Search Container
	//alert("wert" + value);
	var search1 = document.getElementById("category-field");//div mit inputfeld fuer kategorien
	var search2 = document.getElementById("state-field"); // div mit inputfeld fuer cse
	
	//if(get.page_id == "cse"){
	var docCat = document.getElementById("divSearchCategorie");//div mit inputfeld fuer kategorien
	var docCSE = document.getElementById("divSearchCSE"); // div mit inputfeld fuer cse
	var docState = document.getElementById("divSearchState");//div mit inputfeld fuer state
	var submitButtonNormal = document.getElementById("searchContainerSearchButton");
	/*	
		if(value == "cse"){
			docCat.style.display = "none"; 
			docCSE.style.display = "block";
			docState.style.display = "none";
			submitButtonNormal.style.display = "none";
		}
		else {
			docCat.style.display = "block";
			docCSE.style.display = "none";
			docState.style.display = "block";
			submitButtonNormal.style.display = "block";
		}
	}*/
	//else {
		//Daniel noch nicht mehrsprachig
		switch(value){
			case "people":
			case "people_friends":
			case "people_friends_friends":
				
				search1.value = global.SEARCH1_PEOPLE;
				search2.value = global.SEARCH2_PEOPLE;
				docCat.style.display = "block";
				docCSE.style.display = "none";
				docState.style.display = "block";
				submitButtonNormal.style.display = "block";
				
				break;
			case "earthfaves":
				search1.value = global.SEARCH1_DEFAULT;
				search2.value = global.SEARCH2_DEFAULT;
				docCat.style.display = "block";
				docCSE.style.display = "none";
				docState.style.display = "block";
				submitButtonNormal.style.display = "block";
				break;	
				
			case "cse":
				docCat.style.display = "none"; 
				docCSE.style.display = "block";
				docState.style.display = "none";
				submitButtonNormal.style.display = "none";
				break;
		}
	//}
}

function focusSearchField1(obj){
	if ( obj.value == global.SEARCH1_DEFAULT || obj.value == global.SEARCH1_PEOPLE  ) {obj.value = ''; obj.style.color='#000';}
	
	/* Daniel erstmal weglasesen
	if(menu) { 
		info("focusSearchField2 menu gibt es");
		menu.setLastEfFilter('');
	}
	// es soll in allen efs gesucht werden beim licken auf eine checkbox siehe ext.js createMapFilterArray
	// es soll alles das ausgefuehrt werden wie bei klick  auf "all earthfaves and places"
 if(document.getElementById("hrefAlleEfs") ){	
	  setInactiveAllNavigationPoints('ulEarthfavesLeftNav','earthfaves');
    setActiveNavigationPoint(document.getElementById("hrefAlleEfs"));
		Map.ignoreMove = false;
    document.getElementById('result-info-container').style.display = 'block';
	}
	*/
}

function focusSearchField2(obj){
  //siehe UIModules showSearchContainer	
	/* daniel erstmal weglassen
	if(menu) { 
		info("focusSearchField2 menu gibt es");
		menu.setLastEfFilter('');
	}
	// es soll in allen efs gesucht werden beim licken auf eine checkbox siehe ext.js createMapFilterArray
	// es soll alles das ausgefuehrt werden wie bei klick  auf "all earthfaves and places"
 if(document.getElementById("hrefAlleEfs") ){	
	  setInactiveAllNavigationPoints('ulEarthfavesLeftNav','earthfaves');
    setActiveNavigationPoint(document.getElementById("hrefAlleEfs"));
		Map.ignoreMove = false;
    document.getElementById('result-info-container').style.display = 'block';
	}
	*/
	if ( obj.value == global.SEARCH2_DEFAULT || obj.value == global.SEARCH2_PEOPLE ) {	obj.value = ''; obj.style.color='#000';	}
}

function blurSearchField1(obj,type){
	var search1 = document.getElementById("category-field");//div mit inputfeld fuer kategorien
	var search2 = document.getElementById("state-field"); // div mit inputfeld fuer cse
	//var selectfeld = document.getElementById("search-type").value;
	
	//alert("blurSearchField1: " + search1.value);
	//alert("selct " + selectfeld);
	
	if ( obj.value == '' ) {
		//switch(search1.value){
			switch(type){
				case "people":
				obj.value = global.SEARCH1_PEOPLE; obj.style.color='#737373';
				break;
				
			default:
				obj.value = global.SEARCH1_DEFAULT; obj.style.color='#737373';
		}
	}
}

function blurSearchField2(obj,type){
	var search1 = document.getElementById("category-field");//div mit inputfeld fuer kategorien
	var search2 = document.getElementById("state-field"); // div mit inputfeld fuer cse
	//var selectfeld = document.getElementById("search-type").value; 
	
	if ( obj.value == '' ) {
		switch(type){
				case "people":
				obj.value = global.SEARCH2_PEOPLE; obj.style.color='#737373';
				break;
				
			default:
				obj.value = global.SEARCH2_DEFAULT; obj.style.color='#737373';
		}
	}
}

//diese Funktion von Daniel ruft eine toolTip Funktion auf 
//Der direkte aufruf ergab einige Probleme, daher dieser Umweg
function myTip(text){
		//Tip(text,FADEIN,'150',FADEOUT,'50',FONTCOLOR,'#4e81cf',BGCOLOR,'#ffffff');
		Tip(text,FONTCOLOR,'#4e81cf',BGCOLOR,'#ffffff');
}


/*
function showMapLoaderAnimation()
{
  var show = true; //Die Karte ist sichtbar
  if(getCookie( 'map' ))
  {
    if (getCookie( 'map' ) == "hide")
    {
			 //alert("hide");
      show = false ; //Die Karte ist unsichtbar
      if(document.getElementById('resultLoader')){	document.getElementById('resultLoader').style.display = "block"; }
    }
  }
  if (show)
  {
    //alert("show");
		// Dann muss auch die Animation gezeigt werden!
    var mapLoader = document.getElementById('mapLoader');
    var map =	document.getElementById('divMap');
    if (mapLoader) {
			mapLoader.style.display = 'block';
			mapLoader.style.zIndex = 10;
			map.style.zIndex = 1;
		}
   // if (map) map.style.display = 'none';
  }
}
*/

function sendNewMail(task)
{
	var senden = true; // es gab fehler
	var text = document.getElementById('message_text').value;//textarea
	var trimText = trim(text);
	var errT = document.getElementById('error-message');
	if ( trimText.length < 5 ) {
		errT.innerHTML = '<font style="color:#ff0000;font-size:10px;">insert text please with minimum 5 charakters</font>';
		errT.style.display = "block";
		senden = false;	
	} else { errT.style.display = "none"; }
	
	
	var subject = document.getElementById('message_subject').value;
	var trimSubject = trim(subject);
	var errS = document.getElementById('error-subject');
	if ( trimSubject.length < 5 ) {
		errS.innerHTML = '<font style="color:#ff0000;font-size:10px;">insert subject please with minimum 5 charakters</font>';
		errS.style.display = "block";
		senden = false;
	} else { 	errS.style.display = "none"; }
	
	if ( task != "business" ) {
		var empfaenger = document.getElementById('empfaenger').value;
		var trimEmpfaenger = trim(empfaenger);
		var errE = document.getElementById('error-empfaenger');
		if ( trimEmpfaenger.length < 2 ) {
			errE.innerHTML = '<font style="color:#ff0000;font-size:10px;">insert reciever please with minimum 2 charakters</font>';
			errE.style.display = "block";
			senden = false;
		} else { 	errE.style.display = "none"; }
	}

	if(senden){
		//alert("sende mail");
	//	document.getElementById('modal-1').style.display = "none";
 //		document.getElementById('bouton').style.display = "none";
		//mailbox_sendMessage(user_id, 'sentMessages');
		mailbox_sendMessage(task);
	} else {
	//	alert("sende keine mail");
	}

	//mailbox_sendMessage(user_id, 'sentMessages');
	document.getElementById('modal-1').style.display = "none";

}


function goHome()
{
	document.location.href = global.URL + "home.html";
}

function getAbsoluteX(elm) {
   var x = 0;
   if (elm && typeof elm.offsetParent != "undefined") {
     while (elm && typeof elm.offsetLeft == "number") {
       x += elm.offsetLeft;
       elm = elm.offsetParent;
     }
   }
   return x;
}


// Findet die absolute y Position eines Elementes raus
function getAbsoluteY(elm){
   var y = 0;
   if (elm && typeof elm.offsetParent != "undefined") {
     while (elm && typeof elm.offsetTop == "number") {
       y += elm.offsetTop;
       elm = elm.offsetParent;
     }
   }
   return y;
}

//Daniel 2009 Mausposition finden :::::
function init_mousemove() {
        if(document.layers) document.captureEvents(Event.MOUSEMOVE);
        document.onmousemove =	dpl_mouse_pos;
    }
	
function dpl_mouse_pos(e) {

		// position where mousemove fired
		//
		var xPos    =  e? e.pageX : window.event.x;
		var yPos    =  e? e.pageY : window.event.y;
		
		
		// for ie add scroll position
		//
		if (document.all && !document.captureEvents) {
				xPos    += document[docEl].scrollLeft;
				yPos    += document[docEl].scrollTop;
		}
		
		// display position
		//
		if(document.getElementById('daniel_info')){		document.getElementById('daniel_info').innerHTML = "Left = " +xPos +" : Top = " +yPos;}
		mausX = xPos;
		mausY = yPos;
		//info("dpl_mouse_pos x/y " + mausX + " / " + mausY);
		// for the dino pass event
		//
		if (document.layers) routeEvent(e);
}
//Daniel 2009 Mausposition finden ENDE  :::::

//Crop functionen


function setCropMinus(){
	var inp = document.getElementById('inpQuadDim'); 
	var val = parseInt(inp.value);
	if(val > dimMin){	val -= 10; inp.value = val; }
	if ( val < dimMin ) {	val = dimMin; inp.value = val; }
	setOverlayNew(val);
}

function setCropPlus(){
	var inp = document.getElementById('inpQuadDim'); 
	var val = parseInt(inp.value);
	if ( val < global.cropQuadDimMax ) {	val += 10; inp.value = val; }
	if ( val > global.cropQuadDimMax ) {	val = global.cropQuadDimMax; inp.value = val; }
	setOverlayNew(val);
}

function setCropMax(){
	var inp = document.getElementById('inpQuadDim');
	inp.value = global.cropQuadDimMax;
	setOverlayNew(global.cropQuadDimMax);
}

function setOverlayNew(val){
	// wenn das overLayQuadrat seine Dim aendert muss ich die position auch anpassen.
	// sonst kann es passieren, dass es aus dem  containerCrop herausragt
	var over = document.getElementById('overlayCrop');
	var cont = document.getElementById('imageToCrop');
	
	var overTop = getAbsoluteY(over);
	var overLeft = getAbsoluteX(over);

	
	var contWidth = cont.offsetWidth;
	var contHeight = cont.offsetHeight;
	var contTop = getAbsoluteY(cont);
	var contLeft = getAbsoluteX(cont);
	var contRight = contLeft + contWidth;
	var contBottom = contTop + contHeight;
		
	var difDim = global.cropQuadDim - val;
	var absDim = Math.abs ( difDim );
	
	var leftNew = overLeft;
	var overRight = val + overLeft;
	var overBottom = val + overLeft;
	
	if ( difDim < 0 ) { 	var topNew = overTop - absDim;}
	if ( topNew < contTop ) { topNew = contTop ;} // schaut das over oben aus dem cont dann ist topNew = contTop

	
	if ( overRight > 	contRight ) {
		leftNew = contRight - val;
		//info = document.getElementById('infoContainer');
		//info.innerHTML = "absDim: " + absDim + "<br>contLeft: " + contLeft + "<br>overRight: " + overRight + "<br>contRight: " + contRight + "<br> leftNew: " + leftNew;
		//alert("absDim: " + absDim + " overRight: " + overRight + " contRight: " + contRight + " leftNew: " + leftNew);
	} // schaut das overRight rechts aus dem cont dann setze ich leftNew neu
	
	
	over.style.width = val +"px";
	over.style.height = val +"px";
	over.style.top = topNew + "px";
	over.style.left = leftNew + "px";
	
	global.cropQuadDim = val;
}

//initialisiert das Croppen
// das Quadrat ueber dem Bild wird erzeugt und bekommt die korrekten mase
function showCrop(bildURL, bildPATH , w , h )
{
	global.cropBild = bildPATH;
	var doc = document.getElementById('overlayCrop');
	if(document.getElementById('divInfotabs-1'))
	{
		document.getElementById('divInfotabs-1').innerHTML = "click the square and you can move it, click it again to stop"; //an multisprachen denken;
	}
	if(navigator.userAgent.indexOf('Firefox/2') != -1)
	{ 	
		doc.style.position = "fixed"; 
	}
	else
	{
		doc.style.position = "absolute";
	}
	//infotab.innerHTML = "click the square and you can move it, click it again to stop"; //an multisprachen denken
	//info("global.tempX: " + global.tempX + "px");
	//info("global.tempY: " + global.tempY + "px");
	doc.style.left = global.tempX  + "px";
	doc.style.top = global.tempY  + "px";
	checkOverlay(bildURL, w, h);
}


function checkOverlay(bild, w, h)
{	//breite und hoehe
	//alert("2 bild ist " + bild  + " breite und hoehe "  + w + " " + h);
	info ( "ext.js --> checkOverlay :::::");
	var doc = document.getElementById('overlayCrop');
	var inp = document.getElementById('inpQuadDim'); 
	var cont = document.getElementById('imageToCrop');
		
	var oben = getAbsoluteY(cont);
	var left = getAbsoluteX(cont);
	/*if(left < 10)
	{
		checkOverlay(bild, w, h);
	}*/
	info("oben " + oben + ">>>"); //Heiko
	info("left " + left + ">>>"); //Heiko
	var breite = w * global.skalierung;
	var hoehe = h * global.skalierung - 2;
	var dim = hoehe;
	if( breite > hoehe ) { 
		dim = hoehe ; // dragDirection = "hor";
	}
	
	if( hoehe > breite ) { 
		dim = breite ; // dragDirection = "ver"; 
	}
	global.cropQuadDim = dim; //global speichern
	inp.value = dim;
	global.cropQuadDimMax = dim;
	//global.cropQuadDimMin *= global.skalierung; // global.cropQuadDimMin muss dynamisch sein da Picture Uploader im Add Wizard kleiner ist.
	dimMin = global.cropQuadDimMin * global.skalierung; // global.cropQuadDimMin muss dynamisch sein da Picture Uploader im Add Wizard kleiner ist.
	info ("global.cropQuadDimMax........." + global.cropQuadDimMax);
	doc.style.width = dim +"px";	doc.style.height = dim +"px";	doc.style.top = oben + "px";	doc.style.left = left + "px";
	document.onmousemove = getMouseXY; // es wird die mausEvent-Funktion zugewiesen die das quadrat beweglich macht
	document.onmousedown = function() { 
		if(global.mouseDown && global.drag) 
			global.mouseDown=false; 
		else
		if(!global.mouseDown && global.drag)  		
			global.mouseDown=true; 
	};
	info ( "ext.js --> checkOverlay ende :::::");
}
		


function getMouseXY(e) {
	
	//out = document.getElementById("daniel_info");
	// das berechnen der mausposition fuer das croppen ist sehr wichtig.
	// hierbei ist die frage: Was passiert, wenn der user scrollt.
	// Scrollt der Overlay sauber mit, oder bleibt er zb fix an einer Stelle am Screen
	if (global.IE) { 
		//out.innerHTML = "ich bin ein IE<br>";
	global.tempX = event.clientX + document.body.scrollLeft
	global.tempY = event.clientY + document.body.scrollTop
	} else {
		//out.innerHTML = "ich bin ein Firefox oder ein Mozila Verion<br>:" + navigator.userAgent;
	global.tempX = e.pageX
	global.tempY = e.pageY
		if(navigator.userAgent.indexOf('Firefox/2') != -1){
			//out.innerHTML+= "ich bin ein Firefox 2<br>";
			//navigator.userAgent;
			// ich teste mal was passiert, wenn ich das scrolling mit dazu addiere
			global.tempX = e.clientX;
			global.tempY = e.clientY;
		} else { 
		//out.innerHTML+= "ich bin ein Firefox 3<br>"; 
		}
	}  
	// catch possible negative values in NS4
	if (global.tempX < 0){global.tempX = 0}
	if (global.tempY < 0){global.tempY = 0}  

	//out.innerHTML += "mouse move x/y " + global.tempX + " / " + global.tempY ;
	//document.Show.MouseX.value = tempX
	//document.Show.MouseY.value = tempY
	
	var cont = document.getElementById('imageToCrop');
	if(cont){
		var doc = document.getElementById('overlayCrop');
		var breiteOverlay = doc.offsetWidth; //ich brauche nur diese Dimension da es ein Qudrat ist

		var breite = cont.offsetWidth;
		var hoehe = cont.offsetHeight;

		var oben = getAbsoluteY(cont);
		var links = getAbsoluteX(cont);

		var rechts = links + breite;
		var unten = oben + hoehe;

		if( global.tempX > links && global.tempX < rechts && global.tempY > oben && global.tempY < unten ) { global.drag = true ;}
		else { global.drag = false ; }
	
		//doc.innerHTML =  links + "<" + tempX + "<" + rechts + "<br>" + oben + " < " + tempY + "<" + unten + "<br>global.drag ist " + global.drag + "<br>direction: " +  dragDirection;
	
		if(global.drag && global.mouseDown) {
			//if( dragDirection == "hor"){
				var neuLeft = global.tempX - breiteOverlay / 2 ;
				if ( neuLeft < links ) { neuLeft = links ; }
				else if ( ( neuLeft + breiteOverlay )  > rechts ) { neuLeft = rechts -  breiteOverlay ; }
				//global.cropY = 0;
				global.cropX = Math.abs(links - neuLeft);
				doc.style.left = neuLeft + "px";
			//}
			//else {
				var neuTop = global.tempY - breiteOverlay / 2 ;
				if ( neuTop < oben ) { neuTop = oben ; }
				else if ( ( neuTop + breiteOverlay )  > unten ) { neuTop = unten  -  breiteOverlay ; }
				//global.cropX = 0;
				global.cropY = Math.abs( oben - neuTop );
				doc.style.top = neuTop + "px";
			//}
			//doc.innerHTML	= "x:" + global.cropX + " y:" + global.cropY;
		}
	}
	return true;
}
//daniel: fuer die Mailbox hab ich eine Klasse geschrieben, die merkt sich den letzten Menupunkt
//die Classe nutze ich nun allgemein fuer Menus. Zb beim earthfavesLeftNav merke ich mir den zuletzt geklickten
//Punkt (disc, book,f und ff) um bei der auswahl einer Checkbox in der ext.js -> createMapFilterArray
// die richtige lookupEarthfaves abzusenden
  function menuRight() {
     this.lastClick = "";
   	 this.setLastClick = setLastClick;
	   this.getLastClick = getLastClick;
		 
		 this.getLastEfFilter = getLastEfFilter;
		 this.setLastEfFilter = setLastEfFilter;
		 
	 }
// steuervariablen auf der earthfave.inc.php wenn jemand im menu etwas waehlt zb "my disc" oder "all efs"
// merke ich mir das in diesr Variablen
 function getLastEfFilter() {    return this.lastEfFilter; /* alert("set:" + x); */}
 function setLastEfFilter(f) {    this.lastEfFilter = f; /* alert("set:" + x); */}
//merke mir den letzten klick
 function setLastClick(x) {    this.lastClick = x; /* alert("set:" + x); */}
 function getLastClick() {    return this.lastClick; /* alert("get:" + this.lastClick); */}
 
 
 
 //daniel 2009 02 19 erweiterungen fuer das Mailssystem
 //'.$user_id.',0,10,0
 function getNewMails(){
 	refreshRechtmenu();
	myMessages(global.user_id , 0 , 10 , menu.getLastClick() );//2==> friend Messages oder 10 ==> in home.inc.php alle Message	
	changeCountMailsInMainNavigation( global.user_id ); //aendert die Eintraege im Headmenu
 }
 
 
// rick
function showResultListinAddWizard(text) 
{
	var resultList = ''; // alte Liste loeschen
	if(!global.addWizardArrayResult || global.addWizardArrayResult.length==0)
		resultList = '<tr> <td colspan="4" align="center" style="color:#F05A22; font-size:14px; font-weight:bold;">'+global.NO_RESULT_EF+'</td> </tr>';
	else {	
		
		var resultListCounter = 0;
		for (resultListCounter=0 ; resultListCounter<global.addWizardArrayResult.length ; resultListCounter++) 
		{
			if(resultListCounter==0 && text != '')
				resultList += '<tr> <td colspan="4" align="center" style="margin-bottom:2px; color:#F05A22; font-size:14px; font-weight:bold;">'+global.CHOICE+'</td> </tr>';
				
			if(resultListCounter==1 && text != '')
				resultList += text;
			
			if (global.addWizardArrayResult[resultListCounter].type == TYPE_EARTHFAVE) {
				resultList += earthfaveResultListOverlay(global.addWizardArrayResult[resultListCounter].id, global.addWizardArrayResult[resultListCounter].lat, global.addWizardArrayResult[resultListCounter].lng, global.addWizardArrayResult[resultListCounter].name, global.addWizardArrayResult[resultListCounter].overview, global.addWizardArrayResult[resultListCounter].continentName, global.addWizardArrayResult[resultListCounter].continentId, global.addWizardArrayResult[resultListCounter].countryName,global.addWizardArrayResult[resultListCounter].countryId,	global.addWizardArrayResult[resultListCounter].adm1Name,global.addWizardArrayResult[resultListCounter].adm1Id,global.addWizardArrayResult[resultListCounter].inselName, global.addWizardArrayResult[resultListCounter].city, global.addWizardArrayResult[resultListCounter].address1, global.addWizardArrayResult[resultListCounter].woLink, global.addWizardArrayResult[resultListCounter].discovererName, global.addWizardArrayResult[resultListCounter].discovererId, global.addWizardArrayResult[resultListCounter].relation, global.addWizardArrayResult[resultListCounter].counterBookmarker, global.addWizardArrayResult[resultListCounter].catLink, global.addWizardArrayResult[resultListCounter].media,global.addWizardArrayResult[resultListCounter].allCount,global.addWizardArrayResult[resultListCounter].status,resultListCounter);
			}
			else {
				resultList += placeResultListOverlay(global.addWizardArrayResult[resultListCounter].id, global.addWizardArrayResult[resultListCounter].lat, global.addWizardArrayResult[resultListCounter].lng, global.addWizardArrayResult[resultListCounter].name, global.addWizardArrayResult[resultListCounter].address1, global.addWizardArrayResult[resultListCounter].city, global.addWizardArrayResult[resultListCounter].countryName, resultListCounter, global.addWizardArrayResult[resultListCounter].fcode);
			}
		}
	}
	document.getElementById('result-list-overlay').innerHTML = '<table id=\'result-list\' style=\'width:95%;\' cellspacing=\'0\'> ' + resultList + ' </table>';
}
  
// daniel	
function 	mailbox_changeMailText(text){
	var trimText = trim(text);
//	alert("text lange ist " + trimText.length );
	if(trimText.length > 3){ document.getElementById('bouton').style.display = "block"; }
	else { document.getElementById('bouton').style.display = "none"; }
}
function checkCookie(div){
	if (navigator.cookieEnabled == false)
	{ document.getElementById(div).style.display = "none"; }
	
}

function showMouseHand(){		document.body.style.cursor='pointer'; }
function hideMouseHand(){		document.body.style.cursor='auto';    }
	


function showHideEFAddressField() {
    if(document.getElementById("same_address").checked) {
        document.getElementById("ef_address_1").style.visibility = "hidden";
        document.getElementById("ef_address_2").style.visibility = "hidden";
    }
    else {
        document.getElementById("ef_address_1").style.visibility = "visible";
        document.getElementById("ef_address_2").style.visibility = "visible";
    }
}
function modifyPriceLevel(rabat) {
    var total = 0;
    var i = 0;
	
	// bronze
    if(document.getElementById(newBusinessIdPrefix+"level").value == 1) {
	//Edit Arno: notwending, um die Duration einstellen zu können, wenn man vorher test ausgewählt hatte
		if(document.getElementById("duration_row_signup")) {
			document.getElementById("duration_row_signup").style.display="";
		}
		if(document.getElementById("duration_row_signup_new")) {
		document.getElementById("duration_row_signup_new").style.display="";
		}
        // alle background color von die TRs mit bronze farbe
		for( i=1 ; i<=3 ; i++ )
            if( document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i) )
				document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i).className = "bronze";
        
		// gibt es ein Feld Begin Price ? wenn JA das ist das erstes Mal | wenn NEIN ist das ein verlaengerung
		var begin=false;
		if( document.getElementById(newBusinessIdPrefix+"beginPrice") ) {
			begin = true;
			document.getElementById(newBusinessIdPrefix+"beginPrice").innerHTML=global.PRICE_BEGIN_BRONZE;
		}
        
		document.getElementById(newBusinessIdPrefix+"monthPrice").innerHTML=(global.PRICE_MONTH_BRONZE-rabat*global.PRICE_MONTH_BRONZE/100).toFixed(2);
        
		// rechne der total price
		if(begin)
			total = (parseFloat(parseFloat(global.PRICE_MONTH_BRONZE-rabat*global.PRICE_MONTH_BRONZE/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value)+parseFloat(global.PRICE_BEGIN_BRONZE))).toFixed(2);
        else
			total = (parseFloat(parseFloat(global.PRICE_MONTH_BRONZE-rabat*global.PRICE_MONTH_BRONZE/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value))).toFixed(2);
    }
    else
    if(document.getElementById(newBusinessIdPrefix+"level").value == 2) {
	//Edit Arno: notwending, um die Duration einstellen zu können, wenn man vorher test ausgewählt hatte
		if(document.getElementById("duration_row_signup")) {
			document.getElementById("duration_row_signup").style.display="";
		}
		if(document.getElementById("duration_row_signup_new")) {
		document.getElementById("duration_row_signup_new").style.display="";
		}
        for( i=1 ; i<=3 ; i++ )
            if( document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i) )
				document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i).className = "silver";
        
		var begin=false;
		if( document.getElementById(newBusinessIdPrefix+"beginPrice") ) {
			begin = true;
			document.getElementById(newBusinessIdPrefix+"beginPrice").innerHTML=global.PRICE_BEGIN_SILVER;
        }
		
		document.getElementById(newBusinessIdPrefix+"monthPrice").innerHTML=(global.PRICE_MONTH_SILVER-rabat*global.PRICE_MONTH_SILVER/100).toFixed(2);
        
		if(begin)
			total = (parseFloat(parseFloat(global.PRICE_MONTH_SILVER-rabat*global.PRICE_MONTH_SILVER/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value)+parseFloat(global.PRICE_BEGIN_SILVER))).toFixed(2);
        else
			total = (parseFloat(parseFloat(global.PRICE_MONTH_SILVER-rabat*global.PRICE_MONTH_SILVER/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value))).toFixed(2);
    }
    else
    if(document.getElementById(newBusinessIdPrefix+"level").value == 3) {
	//Edit Arno: notwending, um die Duration einstellen zu können, wenn man vorher test ausgewählt hatte
		if(document.getElementById("duration_row_signup")) {
			document.getElementById("duration_row_signup").style.display="";
		}
		if(document.getElementById("duration_row_signup_new")) {
		document.getElementById("duration_row_signup_new").style.display="";
		}
        for( i=1 ; i<=3 ; i++ )
            if( document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i) )
				document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i).className = "gold";
        
		var begin=false;
		if( document.getElementById(newBusinessIdPrefix+"beginPrice") ) {
			begin = true;
			document.getElementById(newBusinessIdPrefix+"beginPrice").innerHTML=global.PRICE_BEGIN_GOLD;
        }
        
		document.getElementById(newBusinessIdPrefix+"monthPrice").innerHTML=(global.PRICE_MONTH_GOLD-rabat*global.PRICE_MONTH_GOLD/100).toFixed(2);
        
		if(begin)
			total = (parseFloat(parseFloat(global.PRICE_MONTH_GOLD-rabat*global.PRICE_MONTH_GOLD/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value)+parseFloat(global.PRICE_BEGIN_GOLD))).toFixed(2);
        else
			total = (parseFloat(parseFloat(global.PRICE_MONTH_GOLD-rabat*global.PRICE_MONTH_GOLD/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value))).toFixed(2);
    }
	//Arno Anfang
	//Bei Business Testaccount
    else
    if(document.getElementById(newBusinessIdPrefix+"level").value == 4) {
		if(document.getElementById("duration_row_signup")) {
			document.getElementById("duration_row_signup").style.display="none";
		}
		if(document.getElementById("duration_row_signup_new")) {
		document.getElementById("duration_row_signup_new").style.display="none";
		}
        for( i=1 ; i<=3 ; i++ )
            if( document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i) )
				document.getElementById(newBusinessIdPrefix+"tr_"+"color_"+i).className = "business_test";
        
		var begin=false;
		if( document.getElementById(newBusinessIdPrefix+"beginPrice") ) {
			begin = true;
			document.getElementById(newBusinessIdPrefix+"beginPrice").innerHTML=global.PRICE_BEGIN_TEST;
        }
        
		document.getElementById(newBusinessIdPrefix+"monthPrice").innerHTML=(global.PRICE_MONTH_TEST-rabat*global.PRICE_MONTH_TEST/100).toFixed(2);
        
		if(begin)
			total = (parseFloat(parseFloat(global.PRICE_MONTH_TEST-rabat*global.PRICE_MONTH_TEST/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value)+parseFloat(global.PRICE_BEGIN_TEST))).toFixed(2);
        else
			total = (parseFloat(parseFloat(global.PRICE_MONTH_TEST-rabat*global.PRICE_MONTH_TEST/100)*parseFloat(document.getElementById(newBusinessIdPrefix+"duration").value))).toFixed(2);
    }
	
	
	
	if( document.getElementById(newBusinessIdPrefix+"totalPrice").innerHTML == "" )
		document.getElementById(newBusinessIdPrefix+"totalPrice").value = total;
	else
		document.getElementById(newBusinessIdPrefix+"totalPrice").innerHTML=total;
	
    return false;
}
//Arno Bei eingeloggtem User kann er im Business-signup auswählen, ob er das Business für sich selbst oder einen neuen User anlegt
	function select_business_user() {
		if(document.getElementById("sel_business_user").value == 1) {
			document.getElementById("create_business_user").style.display = "";
			document.getElementById("login_business_user").style.display = "none";
		}
		else {
			document.getElementById("create_business_user").style.display = "none";
			document.getElementById("login_business_user").style.display = "";
		}
	}
function verifyBusinessUserLogin()
{
  var username = document.getElementById(global.LOGIN_ID_PREFIX + 'username').value;
  var password = document.getElementById(global.LOGIN_ID_PREFIX + 'password').value;
  var cookielogin = document.getElementById('selectLoginTime').value;
  loginRequest(username, password, cookielogin);
}

function changeAskedEfDetails(ef_asked_id) {

for(var i = 0; i < document.getElementsByName("ef_asked_details-"+ef_asked_id).length; i++) {
	document.getElementsByName("ef_asked_edit_details-"+ef_asked_id)[i].style.display="";
	document.getElementsByName("ef_asked_details-"+ef_asked_id)[i].style.display="none";
	}
	document.getElementById("assign_asked_ef-"+ef_asked_id).style.display="none";
}

//ARNO ENDE

function changeTextInHomePage(showNum) {
    for( var i=1 ; i<=3 ; i++ ) {
        if( i!=showNum ) {
            document.getElementById("text-"+i).style.display = "none";
            document.getElementById("button-"+i).className = "button button"+i;
        }
    }
    document.getElementById("text-"+showNum).style.display = "block";
    document.getElementById("button-"+showNum).className = "button button"+showNum+" button-active";
    document.getElementById("image").className = "image image"+showNum;
    return false;
}

//falls die error callback aufgerufen wird
//daniel muss noch ueberarbeitet werden
infoBoxClass = function(task,params,maxrun,run){
	this.task = task;
	this.params = params;
	this.maxrun = maxrun;
	this.run = run;
}

function changeBigImage(bild,wa,ha,dx,dy,px,py){
	//alert(bild + "-" + wa + "-" +ha + "-" +dx + "-" +dy + "-" +px + "-" +py);
	if(document.getElementById('EFbildAnschau')){
		var string = '<img onmouseover="myTip(\'Click to enlarge\');" onmouseout="UnTip();"';
		string += '	onmousedown="showLightBox(\'' + bild + '\',' + wa + ',' + ha + ',this);"';
		string += ' src="' + bild + '" width=' + dx + 'px height=' + dy + 'px  alt="" style="padding:' + py + ' 0 10px ' + px + ';"/>	';
		document.getElementById('EFbildAnschau').innerHTML = string;
	}
}
function changeProvidedBy(urlString, uploader)
{
	if(document.getElementById("imageCaptionBildContainer"))
	{
		//echo'<a href="'.URL.'user/'.$uploader->getNickname().'.html">'.$uploader->getNickname().'</a>';
		var string = '<a href = "' + urlString + '">' + uploader + '</a>';
		document.getElementById("imageCaptionBildContainer").innerHTML = "Provided by    " + string;
	}
}

function showHideEditAccount() {
    var obj = document.getElementById("div_user_edit_account");
    if( obj.style.display == "block" )
        obj.style.display = "none";
    else
        obj.style.display = "block";
    return false;
}
// ----------------------------- DDD ------------------------------ //
/**
 *  hide or show divs from var divs
 *  divs ist ein array, auch wenn es hier als string uebergeben wird
 *  divShow != 0  --> show all divs
 *  divShow == 0 --> hide all divs
 */
function hideDivs ( divs, divShow )
{
	var array = divs.split ( '|' );

	var i = 0;
	for ( i = 0; i < array.length; ++i )
	{
		if ( divShow == 0 )
			if ( document.getElementById( array[i] ) )
				document.getElementById( array[i] ).style.display = 'none';
			else {				//alert ( 'obj gibts nicht' + array[i] + " divShow " + divShow );
			}
		else
			if ( document.getElementById( array[i] ) )
				document.getElementById( array[i] ).style.display = 'block';
			else {				 //alert ( 'obj gibts nicht' + array[i] + " divShow " + divShow); 
			}
		}
}


// business rick	
function initializeNewsletter() {
	global.userNewsletter = new Array();
}

function makeChoosenUsersForNewletterGreen() {
	for( var i=0 ; i<(global.userNewsletter).length ; i++ ) {
		if( document.getElementById( 'mail_yes_'+global.userNewsletter[i] ) )
			document.getElementById( 'mail_yes_'+global.userNewsletter[i] ).style.display = "block";
		if( document.getElementById( 'mail_no_'+global.userNewsletter[i] ) )
			document.getElementById( 'mail_no_'+global.userNewsletter[i] ).style.display = "none";
	}
}

function AddDeleteUserFromNewsletter(userID) {
	var gefunden = false;
	for( var i=0 ; i<(global.userNewsletter).length ; i++ ) {
		if( global.userNewsletter[i] == userID ) {
			gefunden = true;
			break;
		}
	}
	if( gefunden ) {		
		for( var j=i ; j<(global.userNewsletter).length-1 ; j++ )
			global.userNewsletter[j] = global.userNewsletter[j+1];
		(global.userNewsletter).pop();
		if( document.getElementById( 'mail_yes_'+userID ) )
			document.getElementById( 'mail_yes_'+userID ).style.display = "none";
		if( document.getElementById( 'mail_no_'+userID ) )
			document.getElementById( 'mail_no_'+userID ).style.display = "block";		
	}
	else {				
		(global.userNewsletter).push(userID);
		if( document.getElementById( 'mail_yes_'+userID ) )
			document.getElementById( 'mail_yes_'+userID ).style.display = "block";
		if( document.getElementById( 'mail_no_'+userID ) )
			document.getElementById( 'mail_no_'+userID ).style.display = "none";
	}
	return false;
}

function sendNewsletter( busiID, efID ) {
	var empfaenger = document.getElementById("empfaenger").value;
	var allPromoters = document.getElementById("allPromoters").checked;
	var subject = document.getElementById("message_subject").value;
	var text = document.getElementById("message_text").value;
	
	var error="";
	if( empfaenger.length < 1 && !allPromoters )
		error = "You've choise any recipients.";
	else
	if( subject.length < 5 )
		error = "Please give a longer subject.";
	else
	if( text.length < 10 )
		error = "Please give a longer message.";
	
	if( error.length > 0 ) {
		document.getElementById("newsletter_error").style.display = "block";
		document.getElementById("newsletter_error").innerHTML = error;
	}
	else {
		document.getElementById("newsletter_error").style.display = "none";
		hideForm('newsletter');
		sendNewsletterRequest( busiID, allPromoters, efID, subject, text );
	}
	return false;
}

function tasteGedrueckt (Ereignis) {
  if (!Ereignis)   Ereignis = window.event;  if (Ereignis.which) {    Tastencode = Ereignis.which;  } else if (Ereignis.keyCode) {    Tastencode = Ereignis.keyCode;  }
  if (  Tastencode == 16 ) {
		if( Map ) { Map.shiftPress = true; }
	}
	if(global.user_id == "42"){ //travelmaster
		document.getElementById("mapInfo").innerHTML ="shiftPress true";
	}
	
}

function tasteLosgelassen (Ereignis) {
  if (!Ereignis)   Ereignis = window.event; if (Ereignis.which) {    Tastencode = Ereignis.which;  } else if (Ereignis.keyCode) {    Tastencode = Ereignis.keyCode;  }
  if( Map ) { Map.shiftPress = false; }
	if(global.user_id == "42"){ //travelmaster
		document.getElementById("mapInfo").innerHTML ="shiftPress false";
	}
}



function showHideEntityFormular() {
	var visibility = "visible";
	if( document.getElementById( newBusinessIdPrefix + "entityID" ).value > -1 )
		visibility = "hidden";
		
	for( var i=1 ; i<=10 ; i++ ) 
		document.getElementById( newBusinessIdPrefix + "tr_" + i ).style.visibility = visibility;
	
	return false;
}




function verifyJoinEntity() {
    var errorField = document.getElementById(joinEntityIdPrefix + 'errorField').value;
    if (errorField != "") {
        document.getElementById(joinEntityTDIdPrefix + errorField).className = "";
    }
    var entity = document.getElementById(joinEntityIdPrefix + 'enID').value;
    var relation = document.getElementById(joinEntityIdPrefix + 'relation').value;
    var accepted = document.getElementById(joinEntityIdPrefix + 'termsOfServicesAccepted').checked;

    
    if (relation.length<3) {
        signUpHelp(joinEntityIdPrefix, joinEntityTDIdPrefix, "relation", null, "Please entry your Relation with this Entity.");
        return;
    }
    else
    if (!accepted) {
        signUpHelp(joinEntityIdPrefix, joinEntityTDIdPrefix, "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");
        return;
    }

    document.getElementById(joinEntityIdPrefix+"signup").style.visibility = "hidden";
    JoinEntityRequest(entity, relation);
}

function verifyNewEntity(ajax)
{
    var errorField = document.getElementById(newEntityIdPrefix + 'errorField').value;
    if (errorField != "") {
        document.getElementById(newEntityTDIdPrefix + errorField).className = "";
    }
    var entity = document.getElementById(newEntityIdPrefix + 'entityname').value;
    var address = document.getElementById(newEntityIdPrefix + 'address').value;
    var zip = document.getElementById(newEntityIdPrefix + 'zip').value;
    var city = document.getElementById(newEntityIdPrefix + 'city').value;
    var country = document.getElementById(newEntityIdPrefix + 'country').value;
    var website = document.getElementById(newEntityIdPrefix + 'website').value;
    var email = document.getElementById(newEntityIdPrefix + 'email').value;
    var phone = document.getElementById(newEntityIdPrefix + 'phone').value;
    var fax = document.getElementById(newEntityIdPrefix + 'fax').value;
    var relation = document.getElementById(newEntityIdPrefix + 'relation').value;
    var accepted = document.getElementById(newEntityIdPrefix + 'termsOfServicesAccepted').checked;

    if (entity == "") {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "entityname");
        return;
    }
	else {
		if(entity.length < 3){signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "entityname", null, "Your entityname must have a minimum of 3 characters");return;	}
		else{
			var reg = new RegExp("^[a-zA-Z0-9-_]+$");
			if (!reg.test(entity)){
                signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "entityname", null, "Special characters are not allowed in ");
                return;
            }
		}
	}

    if (address.length<5) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "address", null, "Please entry your Address.");
        return;
    }
    else
    if (zip.length<3 || isNaN(zip)) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "zip", null, "Please entry your ZIP.");
        return;
    }
    else
    if (city.length<3) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "city", null, "Please entry your City.");
        return;
    }
    else
    if (country == "-1") {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "country");
        return;
    }

    if (email == "") {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "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(newEntityIdPrefix, newEntityTDIdPrefix, "email",null,"You must provide a correct value for your "); return;}
    }

    if (phone.length<5 || isNaN(phone)) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "phone", null, "Please entry your Phone Number.");
        return;
    }
    else
    if (fax.length<5 || isNaN(fax)) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "fax", null, "Please entry your Fax Number.");
        return;
    }
    else
    if (relation.length<3) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "relation", null, "Please entry your Relation with this Entity.");
        return;
    }
    else
    if (!accepted) {
        signUpHelp(newEntityIdPrefix, newEntityTDIdPrefix, "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");
        return;
    }

    if(ajax)
		NewEntityRequest(entity, address, zip, city, country, website, email, phone, fax, relation);
	else
		return true;
}


function verifyNewBusiness() {
	
    var errorField = document.getElementById(newBusinessIdPrefix + 'errorField').value;
    if (errorField != "") {
        document.getElementById(newBusinessTDIdPrefix + errorField).className = "";
    }
    var efID = document.getElementById(newBusinessIdPrefix + 'efID').value;
    var entityID = document.getElementById(newBusinessIdPrefix + 'entityID').value;
    var level = document.getElementById(newBusinessIdPrefix + 'level').value;
	
	var aktuelLevel = 0;
	if( document.getElementById(newBusinessIdPrefix + 'aktuelLevel') )
		aktuelLevel = document.getElementById(newBusinessIdPrefix + 'aktuelLevel').value;
	
	var sofort = 0;
	if( document.getElementById(newBusinessIdPrefix + 'sofort') && document.getElementById(newBusinessIdPrefix + 'sofort').checked )
		sofort = 1;
    
	var duration = document.getElementById(newBusinessIdPrefix + 'duration').value;
    var begin_price = 0;
	if( document.getElementById(newBusinessIdPrefix + "beginPrice") )
		var begin_price = document.getElementById(newBusinessIdPrefix + "beginPrice").innerHTML;
    var month_price = document.getElementById(newBusinessIdPrefix + "monthPrice").innerHTML;
    var accepted = document.getElementById(newBusinessIdPrefix + 'termsOfServicesAccepted').checked;
		
	if ( efID.length<1 || isNaN(efID) ) {
        signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "efID", null, "Problem with the earthfave.");
        return;
    }
	if( sofort == 1 && aktuelLevel >= level ) {
        signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "sofort", null, "You can't upload your solution immediately for a lesser edition.");
        return;
    }
		
    if ( entityID.length<1 || isNaN(entityID) || entityID==-1 ) {
        var entity = document.getElementById(newBusinessIdPrefix + 'entityname').value;
		var address = document.getElementById(newBusinessIdPrefix + 'address').value;
		var zip = document.getElementById(newBusinessIdPrefix + 'zip').value;
		var city = document.getElementById(newBusinessIdPrefix + 'city').value;
		var country = document.getElementById(newBusinessIdPrefix + 'country').value;
		var website = document.getElementById(newBusinessIdPrefix + 'website').value;
		var email = document.getElementById(newBusinessIdPrefix + 'email').value;
		var phone = document.getElementById(newBusinessIdPrefix + 'phone').value;
		var fax = document.getElementById(newBusinessIdPrefix + 'fax').value;
		var relation = document.getElementById(newBusinessIdPrefix + 'relation').value;
		
		if (entity == "") {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "entityname");
			return;
		}
		else {
			if(entity.length < 3){signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "entityname", null, "Your entityname must have a minimum of 3 characters");return;	}
			else{
				var reg = new RegExp("^[a-zA-Z0-9-_]+$");
				if (!reg.test(entity)){
					signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "entityname", null, "Special characters are not allowed in ");
					return;
				}
			}
		}

		if (address.length<5) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "address", null, "Please entry your ");
			return;
		}
		else
		if (zip.length<3 || isNaN(zip)) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "zip", null, "Please entry your ");
			return;
		}
		else
		if (city.length<3) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "city", null, "Please entry your ");
			return;
		}
		else
		if (country == "-1") {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "country");
			return;
		}

		if (email == "") {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "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(newBusinessIdPrefix, newBusinessTDIdPrefix, "email", null, "You must provide a correct value for your "); return;}
		}

		if (phone.length<5 || isNaN(phone)) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "phone", null, "Please entry your ");
			return;
		}
		else
		if (fax.length<5 || isNaN(fax)) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "fax", null, "Please entry your ");
			return;
		}
		else
		if (relation.length<3) {
			signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "relation", null, "Please entry your Relation with this Entity.");
			return;
		}		
    }	
	
    if (!accepted) {
        signUpHelp(newBusinessIdPrefix, newBusinessTDIdPrefix, "termsOfServicesAccepted", "An error occurred:", "You must accept the terms of use");
        return;
    }	
	
    document.getElementById(newBusinessIdPrefix+"signup").style.visibility = "hidden";
    businessSignUp(efID, entityID, entity, address, zip, city, country, website, email, phone, fax, relation, level, sofort, duration, begin_price, month_price);
}

function showThisBusiEfDetails(aktuelle) {
	var next = true;
	var i = 1;
	while( next ) {
		if( document.getElementById("busi_ef_submenu_"+i) ) {
			if( i != aktuelle ) {
				document.getElementById("busi_ef_submenu_"+i).style.display = "none";
				document.getElementById("busi_ef_top_"+i).className = "busi_ef_top";
			}
		}
		else
			next = false;
		i++;
	}
	if( document.getElementById("busi_ef_submenu_"+aktuelle) ) {
		if( document.getElementById("busi_ef_submenu_"+aktuelle).style.display == "block" ) {
			document.getElementById("busi_ef_submenu_"+aktuelle).style.display = "none";
			document.getElementById("busi_ef_top_"+aktuelle).className = "busi_ef_top";
		}
		else {
			document.getElementById("busi_ef_submenu_"+aktuelle).style.display = "block";
			document.getElementById("busi_ef_top_"+aktuelle).className = "busi_ef_top selected_detail";
		}
	}
	return false;
}

function showThisBusiEfOptions(aktuelle) {
	var next = true;
	var i = 1;
	while( next ) {
		if( document.getElementById("bus_ef_options_"+i) ) {
			document.getElementById("bus_ef_options_"+i).className = "bus_ef_options";
		}
		else
			next = false;
		i++;
	}
	if( document.getElementById("bus_ef_options_"+aktuelle) )
		document.getElementById("bus_ef_options_"+aktuelle).className = "bus_ef_options selected_option";
	return false;
}



function clusterCheckbox(){
	 if(document.getElementById("checkCluster")){
		 var cluster = document.getElementById('checkCluster').checked;
		 var activeMap = Application.getActiveMap();
		 if(cluster){	
		 		activeMap.clusterSearch = true; 
				document.getElementById('divCheck2Cluster').style.display = "block";
			}
		 else {
			 activeMap.clusterSearch = false; 
			 document.getElementById('divCheck2Cluster').style.display = "none";
			 }
	 }
	 info ("map.clusterSearch ist " + activeMap.clusterSearch);
}

function clusterCheckboxEarthfavesOnMap(){
	 if(document.getElementById("checkAllwaysShowEfOnMap")){
		 var clusterEf = document.getElementById('checkAllwaysShowEfOnMap').checked;
		 var activeMap = Application.getActiveMap();
		 if(clusterEf){	
		 		activeMap.showEarthfavesAllwaysOnMap = true; 
			}
		 else {
			 activeMap.showEarthfavesAllwaysOnMap = false; 
			 }
	 }
	 info (" map.showEarthfavesAllwaysOnMap ist " + activeMap.showEarthfavesAllwaysOnMap);
}

function mapReloadPaginationCheck(){
	 if(document.getElementById("checkMapReloadPagination")){
		 var relP = document.getElementById('checkMapReloadPagination').checked;
		 var activeMap = Application.getActiveMap();
		 if(relP){	activeMap.aktivePageEarthfavesSearch = true; 		}
		 else { 		activeMap.aktivePageEarthfavesSearch = false;   }
	 }
	  info (" map.aktivePageEarthfavesSearch ist " + activeMap.aktivePageEarthfavesSearch);
}	
	



function changeHelpDiv(data){// schreibt etwas in den help div bei wizzards
	document.getElementById(global.LOGIN_ID_PREFIX + 'note').innerHTML = data;
	info ("ext.js helper div empty");
	}

function mapMoveCheckbox(){// setz global das mapMove event aus oder on
	 if(document.getElementById("checkMapMove")){
		 var move = document.getElementById('checkMapMove').checked;
		 var activeMap = Application.getActiveMap();
		 if(move){	 activeMap.globalIgnoreMove = false; 		}	 else {		 activeMap.globalIgnoreMove = true;  }
	 }
}

function executeMapBack(howmutch){
	var activeMap = Application.getActiveMap();
	var zoom = activeMap.realMap.getZoom();
	var center = activeMap.getCenter();
	var werte = activeMap.historyBackArray.pop();
	werte = activeMap.historyBackArray.pop();
	if ( werte[0] == zoom && werte[1] == center ) { 
		info("executeMapBack -> Map.historyBackExecuted alte Werte = neue Werte");
	// hier muss ich 2 zurueckspringen
		//werte = activeMap.historyBackArray.pop();
	}
	
	//info ("ext.js executeMapBack springe zurueck: " + howmutch + " array laenge : " + activeMap.historyBackArray.length + " wert:" );
	//console.log(werte);
	activeMap.fillHistoryBackArray = true;
	activeMap.historyBackExecuted = true;
	info("executeMapBack -> Map.historyBackExecuted ist " + activeMap.historyBackExecuted);
	activeMap.setCenter(werte[1], werte[0]);
	
}


function  mapInfo(){
	var activeMap = Application.getActiveMap();
	var center = activeMap.getCenter();
	
}

function changeBorder(div, filter)
{
	console.groupCollapsed("changeBorder(div) div=", div);
	var d1, d2, d3;
	var other = new Array("result-info-container-all","result-info-container-mine","result-info-container-friends",
							"result-info-container-friends-friends","result-info-container-others","result-info-container-undiscovered");
	//loesche alle border
	for( var i = 0 ; i < ( other.length ) ; i++ ){
		d1 = document.getElementById(other[i]);
		d2 = document.getElementById(other[i] + '-link');
		d3 = document.getElementById(other[i] + '-percent');
		console.log(d1, d2, d3);
	
		d1.style.borderStyle = "none";
		d2.style.borderStyle = "none";
		d3.style.borderStyle = "none";
	}
	
	// setze border
	d1 = document.getElementById(div);
	d2 = document.getElementById(div + '-link');
	d3 = document.getElementById(div + '-percent');
	
	console.log(d1, d2, d3);
	
	d1.style.borderStyle = "solid none solid solid";
	d2.style.borderStyle = "solid none solid none";
	d3.style.borderStyle = "solid solid solid none";
/*	
	d1.style.borderColor="#ff0000";
	d2.style.borderColor="#ff0000";
	d3.style.borderColor="#ff0000";
	
	d1.style.borderWidth=2;
	d2.style.borderWidth=2;
	d3.style.borderWidth=2;
*/	
	console.groupEnd();
}

function reloadSearchOrMapMove(){
	info("ext.js ->reloadSearchOrMapMov");
	//lookupEarthfaves('', 1, <?php echo PAGINATION_STEP_EARTHFAVES; ?>,true,false,false,true,false);
}
//Edit Arno: 
function showBusinessSignupTab( tabID ) {
	if( tabID==0 ) {
		for( var i=1 ; i<=4 ; i++ ) {
			if( document.getElementById( "business_signup_form_" + i ).className.indexOf(" form_selected") > 2 ) {
				showBusinessSignupTabChange( i-1 );	
				break;
			}
		}
	}
	else
	if( tabID == 5 ) {
	//Arno: bei eingeloggtem user soll ohne user-ueberpruefung der naechste tab angezeigt werden
		if(document.getElementById("sel_business_user") && document.getElementById("sel_business_user").value == 0 && document.getElementById("business_signup_form_1").className == "business_signup_form business_signup_selected_1 form_selected") {
				showBusinessSignupTabChange( 2 );			
		}
		else {
		for( var i=1 ; i<=4 ; i++ ) {
			if( document.getElementById( "business_signup_form_" + i ).className.indexOf(" form_selected") > 2 ) {
				if( ( i==1 && verifySignUp(false) ) ) {
					checkNicknameUnique( document.getElementById(signupIdPrefix + 'username').value );
					break;
				}
				else
				if( i==2 && verifyNewEntity(false) ) { 
					checkEntityNameUnique( document.getElementById(newEntityIdPrefix + 'entityname').value );
					break;
				}
				else
				if ( i==3 ) {
					verifyEarthfave();			
					break;
				}
				else
				if (i==4) {
					showBusinessSignupTabChange( i+1 );					
					break;
				}
			}
		}
	}
	}
}
function showBusinessSignupTabChange( tabID, ef_id ) {

	if( tabID == 5 ){
		if(global.user_id == 1 || global.user_id != 1 && document.getElementById("login_business_user").style.display=="none") {
			businessSignUpRequest1();
		}
		else {
			businessSignUpRequest2(global.user_id);
		}
	}
	else {
		if( tabID == 4 )
			document.getElementById("signup_continue").value = "Sign Up";
		else
			document.getElementById("signup_continue").value = "Continue";
		
		if( tabID == 1 )
			document.getElementById("signup_back").style.visibility = "hidden";
		else
			document.getElementById("signup_back").style.visibility = "visible";
		
		for( var i=1 ; i<=4 ; i++ ) {
			document.getElementById( "business_signup_tab_" + i ).className = "business_signup_tab business_signup_" + i;
			document.getElementById( "business_signup_form_" + i ).className = "business_signup_form business_signup_selected_" + i;
		}

		document.getElementById( "business_signup_tab_" + tabID ).className = "business_signup_tab business_signup_" + tabID + " business_signup_selected_" + tabID;
		document.getElementById( "business_signup_form_" + tabID ).className = "business_signup_form business_signup_selected_" + tabID + " form_selected";
	}
	return false;
}
//Edit: Arno
function verifyEarthfave() {
	if( document.getElementsByName("earthfave_radio") && document.getElementsByName("earthfave_radio").length > 0 ) {
		var radioObj = document.getElementsByName("earthfave_radio");
		var ef_id = -10;
		var assigned = "leer";
		for( var i=0 ; i<radioObj.length ; i++ ) {
			if( radioObj[i].checked )
				ef_id = radioObj[i].value;
		}
		if( ef_id >= 1) {
			assigned = checkEarthfaveBusinessAssign(ef_id);
		}
		if( ef_id < 1 ) {
			var ef_name = document.getElementById("earthfave_name").value;
			var ef_address = document.getElementById("earthfave_address").value;
			var ef_zip = document.getElementById("earthfave_zip").value;
			var ef_city = document.getElementById("earthfave_city").value;
			var ef_country = document.getElementById("earthfave_country").value;
			
			if( ef_name.length < 3 ) {
				document.getElementById("earthfave_error_feld").style.display = "block";
				document.getElementById("earthfave_error_feld").innerHTML = "You must provide a correct value for earthfave's Name";
				return false;
			}
			else
			if( ef_address.length < 3 ) {
				document.getElementById("earthfave_error_feld").style.display = "block";
				document.getElementById("earthfave_error_feld").innerHTML = "You must provide a correct value for Address";
				return false;
			}
			else
			if( ef_zip.length < 1 ) {
				document.getElementById("earthfave_error_feld").style.display = "block";
				document.getElementById("earthfave_error_feld").innerHTML = "You must provide a correct value for Zip";
				return false;
			}
			else
			if( ef_city.length < 3 ) {
				document.getElementById("earthfave_error_feld").style.display = "block";
				document.getElementById("earthfave_error_feld").innerHTML = "You must provide a correct value for City";
				return false;
			}
			else
			if ( ef_country == "-1" ) { 
				document.getElementById("earthfave_error_feld").style.display = "block";
				document.getElementById("earthfave_error_feld").innerHTML = "You must provide a correct value for Country";
				return false;
			}
			else {
				document.getElementById("earthfave_error_feld").style.display = "none";
				document.getElementById("earthfave_error_feld").innerHTML = "";
				showBusinessSignupTabChange( 4 );	
			}		
		}

	}
	if(document.getElementById("save_ef_id")) {
				document.getElementById("earthfave_error_feld").style.display = "none";
				document.getElementById("earthfave_error_feld").innerHTML = "";
				showBusinessSignupTabChange( 4 );			
	}
	else {
		document.getElementById("earthfave_error_feld").style.display = "block";
		document.getElementById("earthfave_error_feld").innerHTML = "Please search your earthfave";
		return false;
	}
	return true;
}
// daniel siehe UIModules showCategoryLinksOnHome ...
// wenn auf der home eine category angeklickt wird
function categorieLinkToEfPage(cat0){
	var val = "";
	if(document.getElementById('selCountryOnHome')){
		var sel = document.getElementById('selCountryOnHome');
		val = sel.options[sel.selectedIndex].value;
	}
	
	document.location.href='page.php?page_id=earthfaves&task=filterbrowse&continent=0&country=' + val + '&admin1=0&cat0=' + cat0 + '&cat1=0';
}

//wenn man auf der homepage eine categorie auswaehlt. 
// siehe auch erthafaves.in.php dort wird sie aufgerufen
function lookupEarthfavesFilterBrowse(actMap){
	Google.getPoint("saarbrücken", getPointCallback);
	actMap.fixZoom = 5;
	actMap.searchCountry = "";
	alert("juhu")
	disableAllMapFilter(); // alle checkboxen in der filterbox disablen
	
}

//siehe earthfaves.inc.php
// wenn man im blauen menu auf "all efs and places " klickt
function loadAllEfsAndPlaces(obj){
 setInactiveAllNavigationPoints('ulEarthfavesLeftNav','earthfaves');
 setActiveNavigationPoint(obj);
 var activeMap = Application.getActiveMap();
 activeMap.ignoreMove = false;
 var bounds = activeMap.getBounds();
 var lat1 = bounds.getSouthWest().lat();
 var lng1 = bounds.getSouthWest().lng();
 var lat2 = bounds.getNorthEast().lat();
 var lng2 = bounds.getNorthEast().lng();
 
 if(document.getElementById('result-info-container')){
	 if( menu.getLastEfFilter() == "" ) {	 document.getElementById('result-info-container').style.display = 'block'; } // nur in der suche ALLER efs
	}
	
 //Earthfaves.count(global.search1, '', lat1, lng1, lat2, lng2, activeMap.searchForcedRegion, activeMap.searchForcedRegionId, activeMap.searchRedundanceData, activeMap.earthfavesFilterArray,earthfavesCountCallback, earthfavesCountCallbackOnError,earthfavesCountCallbackOnTimeout);
 lookupEarthfaves('', 1, global.PAGINATION_STEP_EARTHFAVES,false,false,false,true,false);
 menu.setLastEfFilter('');
}

//daniel siehe Uimodules showMapToolbar. sollen in den Sektionen redundanzen vorkommen
function mapRedundanceCheckbox(){
	 if(document.getElementById("checkMapRedundance")){
		 var redu = document.getElementById('checkMapRedundance').checked;
		 var activeMap = Application.getActiveMap();
		 if( redu ){ activeMap.searchRedundanceData = 1; }	else { activeMap.searchRedundanceData = 0; }
	 }
}
/* Heiko 2009-11-06
   Die beiden folgenden Funktionen zeigen/verstecken den ImageUploder
*/
function showImageUploader()
{
	hideDivs('imageUploadInAddWizard-pop-up|searchDiv|uploadDivAll', 1);
	var doc = document.getElementById("upload-button");
	doc.style.display = "none";
	self.location.href="#upload-anchor"; //Sprung auf den Uploader.
	doc.onclick = function()
	{
		hideImageUploader();
	}
}

function hideImageUploader()
{
	var li = document.getElementById("imagesListInAddWizard");
	if (li.hasChildNodes())
	{
		var child = li.lastChild;
		li.removeChild(child);
	}
	hideDivs('imageUploadInAddWizard-pop-up|searchDiv|uploadDivAll', 0);
	if (document.getElementById("upload-button")){
		var doc = document.getElementById("upload-button");
		doc.style.display = "block";
		//self.location.href="#headline-anchor"; //Sprung auf die Ueberschrift
		doc.onclick = function()
		{
			showImageUploader();
		}
	}
	
}

function showCropDivs()
{
	hideDivs('imageUploadInAddWizard-pop-up|searchDiv|uploadDivAll', 0);
	hideDivs('imageUploadInAddWizard-pop-up|uploadDivAll', 1);
}

function delay(gap){ 
	var then,now;
	then=new Date().getTime();
	now=then;
	while((now-then)<gap) {
		now=new Date().getTime();
	}
}
function pause(zeit){
         //Zeit hier in ms angeben
         var starttime=(new Date).getTime();
         while (starttime+zeit>(new Date).getTime()){};
}
//Arno Anfang
function submitSearch_business_ef(field1, field2)
{	
	if (field1 == global.SEARCH1_DEFAULT || field1 == global.SEARCH1_PEOPLE ) field1 = "";
	if (field2 == global.SEARCH2_DEFAULT || field2 == global.SEARCH2_PEOPLE ) field2 = "";
	if( field1 != "" || field2 != ""){
		global.filterBrowseLink = "";
		global.search1 = field1;
		global.search2 = field2;
		var infoContainer = document.getElementById("result-info-container");

				document.getElementById("result-list-overlay").innerHTML = '<div class="progress-white" style="height:70px;"></div>';

				Google.getPoint(global.search2, addWizardGetPointCallback);
				global.lastSearch = "searchAdd";

	}//if: sind die beiden felder leer , wird keine suchanfrage abgesendet
}
//Arno Ende

//daniel
function showHideMapToolbar(){
	//siehe UIMOdules 	static function showMapToolbar(){
		if(document.getElementById("mapToolbarTable")){
			if(document.getElementById("mapToolbarTable").style.display == "none"){
				document.getElementById("mapToolbarTable").style.display = "block";
			}
			else {
				document.getElementById("mapToolbarTable").style.display = "none";
			}
		}
	}

function createTellAFriendArray(index){
	
	var found = false;
	if(	friend_array.length > 0 ){
		var save = friend_array;
		friend_array = new Array();
		for (var i = 0; i < save.length; i++){
			if (save[i] != index){
				friend_array.push(save[i]);
			} 
			else { 
				found = true;
			}
		}
	}
	if(found) {	
		document.getElementById("picture_friend"+index).style.border = "solid white 2px";
	}
	else {
		document.getElementById("picture_friend"+index).style.border = "solid red 2px";
		friend_array.push(index);
	}
	var result = friend_array.join(":");
		 info("ext.js createTellAFriendArray: result: " + result);
}

function createTellAFriendArraySelectAll(id_string){
	var erg = id_string.split("|");
	friend_array = new Array();
	for (var i = 0; i < erg.length; i ++){
		if(erg[i]){
			friend_array.push(erg[i]);
			document.getElementById("picture_friend"+erg[i]).style.border = "solid red 2px";
		}
	}
	var result = friend_array.join(":");
		 info("ext.js createTellAFriendArray: result: " + result);
}

function createTellAFriendArrayDeSelectAll(id_string){
	var erg = id_string.split("|");
	for (var i = 0; i < erg.length; i ++){
		if(erg[i]){
			document.getElementById("picture_friend"+erg[i]).style.border = "solid white 2px";
		}
	}
	friend_array = new Array();
	var result = friend_array.join(":");
		 info("ext.js createTellAFriendArray: result: " + result);
}
function unsetFriendArray(){
	friend_array = new Array();
}

//Daniel
// auswahl eines landes und wegsenden der anfrage
var filterLand = -1;
function showCountryEfs(auswahl){
	filterLand = auswahl;
	Map.searchForcedRegion = "country";
	Map.searchForcedRegionId = auswahl;

}

//Heiko
//Diese Funktion disabled den Enter Knopf wenn diese Funktion via onkeypress aufgerufen wird
function disableEnterKey(e)
{
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     return (key != 13);
}

//daniel 
// ein click in den Trustlevels unter der Map
// ich versende nur, wenn die gefunden efs > 0 ist
function trustLevelClick(div,filter)
{
	console.group("trustLevelClick");
	console.info("Klick auf rote Info-Leiste (für Trust-Level)");

	var activeMap = Application.getActiveMap();

	var send = false;
	switch (filter) {
		case 'MINE': if( activeMap.lastSearchMy > 0 ){ send = true;}; break;
		case 'FRIENDS': if( activeMap.lastSearchFriends > 0 ){ send = true;}; break;
		case 'FRIENDS_FRIENDS': if( activeMap.lastSearchFF > 0 ){ send = true;}; break;
		case 'OTHERS': if( activeMap.lastSearchOther > 0 ){ send = true;}; break;
	}

	if( send ){
		changeBorder(div);
		document.getElementById("result-list").innerHTML = "";

		var filterSend = filter + ':' + global.user_id ;
		lookupEarthfaves(filterSend, 1, global.PAGINATION_STEP_EARTHFAVES ,true,false,false,true,false);
	}

	console.groupEnd();
}


/**
 * In the result info box (above the result list) is clicked on the "places" info area
 * @return
 */
function resultInfoShowPlaces(div)
{
	console.group("resultInfoShowPlaces");
	console.info("Klick auf grüne Info-Leiste (für Places)");
	
	var map = Application.getActiveMap();
	console.log("Places = ", map.places);

	if (map.places.length > 0)
	{
		document.getElementById("result-list").innerHTML = "";
		processResults();

		changeBorder(div);
	}

	console.groupEnd();
}


function addWizClick(obj){
	if(obj.value == global.GIVE_A_NAME){ obj.value = ''; }
}