FIS_CANCEL="Abbrechen";
FIS_CLOSE="Schließen";
FIS_BACK="zurück";

FIS_1="Bitte geben Sie eine gültige E-Mail-Adresse ein z.B. tmeier@domain.de !";
FIS_2="Länge von ";
FIS_3=" muß mindestens %% Zeichen beinhalten";
FIS_4=" darf maximal %% lang sein. Bitte kürzen Sie den Inhalt dieses Formular-Feldes.";
FIS_5=" sein";
FIS_6="Passwort anfordern";
FIS_7="Anmelden";
FIS_8="Drucken";
FIS_9="Bitte stimmen Sie den Richtlinien für Leserkommentare des FIS zu.";
FIS_10="Bitte geben Sie Ihren Namen an, damit wir Sie bei Rückfragen persönlich ansprechen können. Vielen Dank.";
FIS_11="Bitte geben Sie einen Betreff ein, der kurz den Inhalt Ihres Kommentars beschreibt. Vielen Dank.";
FIS_12="Bitte tragen Sie Ihren Kommentar im Feld \"Text\" ein. Sie können maximal 4000 Zeichen eingeben.";JS_APPLICATION_1 = "Statistik der Eintr\u00E4ge";
JS_APPLICATION_3 = "Meilensteine";
JS_APPLICATION_4 = "Relationen";
JS_APPLICATION_5 = "Abonnement";

JS_WASTEBASKET = "Papierkorb";

// Used in Forms.js
JS_APPLICATION_10 = "Bitte geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein. Besitzen Sie noch kein Passwort klicken Sie auf 'Kennung beantragen'.";
JS_APPLICATION_11 = "Bitte warten...";

// Used in OntoSearch.js
JS_APPLICATION_20 = "Zeile %% enth\u00E4lt noch kein Subjekt.\nBitte geben sie einen Wert oder eine Variable ein.";
JS_APPLICATION_21 = "Zeile %% enth\u00E4lt noch kein Objekt.\nBitte geben sie einen Wert oder eine Variable ein.";
JS_APPLICATION_22 = "Zeile %% enth\u00E4lt noch keine Eigenschaft. Bitte w\u00E4hlen sie eine aus.";
JS_APPLICATION_23 = "Bitte geben sie einen Wert oder einen Variablennamen ein.";
JS_APPLICATION_24 = "Zeile entfernen";
JS_APPLICATION_25 = "Bitte f\u00FCgen sie mindestens eine Anfragezeile hinzu.";
JS_APPLICATION_26 = "SPARQL-Fehler:";
JS_APPLICATION_27 = "gefundene Variablennamen:";
JS_APPLICATION_28 = "Alternative Anfrage ist leer.";
JS_APPLICATION_29_1 = "Variablen Typkategorie:";
JS_APPLICATION_29_2 = "Variablen TypURI: (volle URI, Ausnahme Prefix 'xsd:')";
JS_APPLICATION_29_3 = "Datentypeigenschaftswert";
JS_APPLICATION_29_4 = "Instanz";
JS_APPLICATION_29_5 = "Eigenschaft";
JS_APPLICATION_29_6 = "Konzept";
JS_APPLICATION_29_7 = "Beim Wechsel zwischen Einfachem Modus und ExpertenModus wird die Anfrage zur\u00fcckgesetzt."
JS_APPLICATION_29_8 = "Beim Wechsel der Ontologie wird die Anfrage zur\u00fcckgesetzt."

// Used in Ontology.js
JS_APPLICATION_30 = "Alle Untereintr\u00E4ge ausklappen";
JS_APPLICATION_31 = "Alle Untereintr\u00E4ge einklappen";
JS_APPLICATION_32 = "Die URI muss mit dem Wert von Namensraum beginnen!";
JS_APPLICATION_33 = "Namensraum und URI d\u00fcrfen nicht gleichzeitig leer sein!";
JS_APPLICATION_34 = "Die inverse URI muss mit dem Wert von Namensraum beginnen!";
JS_APPLICATION_35 = "Der inverse Name darf nicht leer sein!";

// Used in DataView.js
JS_APPLICATION_40 = "Bitte w\u00E4hlen Sie zun\u00E4chst eine Zeile aus.";

// Used in GeoServices
JS_GEOSERVICES = {
	no_markers: 'Keine Markierungspunkte definiert.',
	createGraphWindowTooltip: 'Ein neues Diagrammfenster erstellen.',
	minimiseWindow: 'Dieses Fenster minimieren.',
	restoreWindow: 'Dieses Fenster wiederherstellen.',
	closeWindow: 'Dieses Fenster schließen.',
	noDataLoaded: 'Keine Daten geladen.',
	plotAllDatastreams: 'Alle Datenstr\u00F6me plotten.',
	addRasterLayer: 'Hinzuf\u00FCgen eines taktischen Rasters.'
};

// Translations for Ontology Graphs
JS_ONTOLOGYGRAPH = {
	navigate_to: 'Navigieren zu'
};

// Translations for SensorThings Graphs
JS_SENSORTHINGS = {
	fullRange: 'Alles',
	oneYear: '1 Jahr',
	oneMonth: '1 Monat',
	oneWeek: '1 Woche',
	oneDay: '1 Tag',
	prev: '&larr;',
	next: '&rarr;',
	resety: '&#x2912;&#x2913;',
	loading: 'Laden...',
	noDatastreamsFound: 'Keine Datenstr\u00F6me gefunden.'
};
String_MenuLabel_Edit       = "Bearbeiten";
String_MenuLabel_New        = "Neu";
String_MenuLabel_User       = "Benutzer";
String_MenuLabel_Extras     = "Extras";
String_MenuLabel_Help       = "Hilfe";

String_Menu_Edit_Meta			  = "Metadaten";
String_Menu_Edit_Access			= "Zugriffsrechte";
String_Menu_Edit_Contents		= "Inhalte";
String_Menu_Edit_Layout			= "Layout";
String_Menu_Edit_Copy			  = "Kopieren";
String_Menu_Edit_Move			  = "Verschieben";
String_Menu_Edit_Remove			= "L\u00F6schen";
String_Menu_Edit_Export     = "Export";
String_Menu_Edit_Import     = "Import";
String_Menu_Edit_Properties	= "Eigenschaften";
String_Menu_NewEntry			  = "Neuer\u00A0Eintrag";

String_Menu_Extras_Settings	 = "Benutzereinstellungen";
String_Menu_Extras_Logout		 = "Anmeldestatus";
String_Menu_Extras_Bookmark	 = "Bookmark\u00A0hinzuf\u00FCgen";
String_Menu_Extras_UserGroup = "Benutzer\u002D\u002FGruppen\u00FCbersicht";
String_Menu_Extras_Explorer	 = "Explorer\u002DAnsicht\u00A0ein\u002D\u002Fausschalten";
String_Menu_Extras_Info      = "Info";

String_Menu_Nav_OverviewEntry	= "\u00FCbersicht\u00A0zu\u00A0Eintrag";
String_Menu_Nav_Overview		  = "Gesamt\u002D\u00FCbersicht";
String_Menu_Nav_Goto_Home		  = "Zum\u00A0Home\u002DVerzeichnis";

String_Menu_Search          = "Suche";
String_Menu_Search_New			= "Was\u00A0ist\u00A0neu?";
String_Menu_Search_Last			= "Zuletzt\u00A0bearbeitete\u00A0Eintr\u00E4ge";

String_Menu_Help_Overview   = "\u00FCbersicht";

String_Search_Brief	 = "Bitte geben Sie einen oder mehrere Suchbegriffe ein.";

STRING_Command_deleteEntry1	 = "Wollen Sie den Eintrag '%%' (ID %%)\nwirklich l\u00F6schen?";
STRING_Command_deleteEntry2	 = "Wollen Sie den Eintrag mit der ID '%%'\nwirklich l\u00F6schen?";
STRING_Command_deleteAddress = "Wollen Sie die Adresse mit der ID '%%'\nwirklich l\u00F6schen?";

STRING_Edit_areYouSure			    = "Wollen Sie wirklich die alternative Darstellung l\u00F6schen ?";
STRING_Edit_validate_Name		    = "Name";
STRING_Edit_validate_Title		  = "Titel";
STRING_Edit_validate_Comment	  = "Kurzbeschreibung";
STRING_Edit_validate_Abstract	  = "Text";
STRING_Edit_validate_Descritors	= "Freie Schlagworte";
STRING_Edit_validate_Limit      = "Bitte geben Sie eine Zahl ein.";
STRING_Edit_checkLengthOn		    = "Das Feld '%%' enth\u00E4lt %% Zeichen.\nEs sind jedoch leider nur %% Zeichen m\u00F6glich.\nBitte k\u00FCrzen Sie ihren Text.";
STRING_Edit_checkMinLengthOn		= "Das Feld '%%' enth\u00E4lt %% Zeichen.\nEs m\u00FCssen jedoch mindestens %% Zeichen eingegeben werden.";
STRING_Edit_mustNotBeNull		    = "Das Feld '%%' darf nicht leer sein.";
STRING_Edit_notOnlySpaces       = "Das Feld '%%' darf nicht nur Leerzeichen enthalten.";
STRING_Edit_mustNotContain      = "Das Feld '%%' darf keines der Zeichen '%%' enthalten.";
STRING_Edit_reportInvalidDateIn	= "Das Feld '%%' enth\u00E4lt keine g\u00FCltige Datumsangabe.\nDas korrekte Format ist: ";
STRING_Edit_reportInvalidTimeIn	= "Das Feld '%%' enth\u00E4lt keine g\u00FCltige Uhrzeit.\nDas korrekte Format ist: ";
STRING_Edit_granteeAlreadyAdded = "Der Benutzer '%%' wurde bereits zur Zugriffsliste hinzugef\u00FCgt.";
STRING_Edit_illegalChars        = "Das Feld '%%' enth\u00E4lt Zeichen die nicht aus dem Latin-1 Zeichensatz stammen\n(z.B. Gedankenstrich, Aufz\u00E4hlungszeichen oder typographische Anf\u00FChrungszeichen): '%%'\nDiese Zeichen verhindern die korrekte \u00FCbertragung Ihrer Eingaben an den Server.\nBitte ersetzen Sie diese Zeichen und versuchen Sie es erneut.";
STRING_Edit_dateBefore = "Das Startdatum darf nicht vor dem Enddatum liegen."

STRING_Files_validateUpload1	= "Bitte w\u00E4hlen Sie die Datei aus die Sie hochladen wollen.";
STRING_Files_validateUpload2	= "Der Dateinamen (bzw. der Pfadnamen) darf keines der folgenden Zeichen enthalten: '+', '%', ',', '#', '`', '�' und '&'";
STRING_Files_doRemove1			  = "W\u00E4hlen Sie die zu l\u00F6schenden Dateien aus der Liste.";
STRING_Files_doRemove2        = "M\u00F6chten Sie die Datei '%%' l\u00F6schen?";
STRING_Files_doRemove3        = "M\u00F6chten Sie %% Dateien l\u00F6schen?";
STRING_Files_doDownload			  = "Es wird ein ZIP-Archiv mit den ausgew\u00E4hlten Dateien\nerstellt und auf Ihren Rechner \u00FCbertragen.\nWollen Sie fortfahren?";
STRING_Files_doDownload2		  = "W\u00E4hlen Sie die Dateien die sie herunterladen wollen aus der Liste.";
STRING_Files_doDownload3      = "Es wird ein ZIP-Archiv mit den angezeigten Dateien\nerstellt und auf Ihren Rechner \u00FCbertragen.\nWollen Sie fortfahren?";


STRING_Thesaurus_noForm = "Es kann keine aktives Bearbeitungs- oder Suchformular gefunden werden. \nBitte schlie\u00DFen Sie das Thesaurus-Fenster und rufen Sie es erneut auf!";
STRING_Thesaurus_alreadyAssigned = "Das Schlagwort '%%' ist bereits dem Eintrag zugewiesen.";

STRING_EditGrantee_Menu     = "Verwaltung";
STRING_EditGrantee_Edit     = "Bearbeiten";
STRING_EditGrantee_AddUser  = "Benutzer hinzuf\u00FCgen";
STRING_EditGrantee_AddGroup = "Gruppe hinzuf\u00FCgen";
STRING_EditGrantee_Cut      = "Ausschneiden";
STRING_EditGrantee_Copy     = "Kopieren";
STRING_EditGrantee_Paste    = "Einf\u00FCgen";
STRING_EditGrantee_Delete   = "L\u00F6schen";

STRING_Print = "Druck";

LOADING_DATA = "Daten werden geladen. Bitte warten.   ";
LOADING_BUSY = "Bitte warten...";

var servletPath = "/servlet/is/";

var addressWindow       = null;
var editAddressWindow   = null;
var navigatorWindow     = null;
var thesaurusWindow     = null;
var linkBrowserWindow   = null;
var whatsNewWindow      = null;
var searchResultsWindow = null;
var changePasswdWindow  = null;

var busyStyle = 'margin-top:20px;font-family:Arial,Helvetica,sans-serif;font-size:14px;width:100%;height:80%;text-align:center;cursor:wait;';
function setBusy (doc)
{
	try
	{
		var loc = top ? top.location : window.location;
		var server = loc.protocol + '//' + loc.host + '/';
		var body = doc.getElementsByTagName ('body')[0];
		if (body)
			body.innerHTML = '<div style="' + busyStyle + '">' + LOADING_DATA + '<br/><img src="' + server + 'Bitmaps/etc/Progress.gif"/></div>';
	}
	catch (ex) {}
}

function loadBusy (win, url)
{
	setBusy (win.document);
	win.location.href = url;
}

function makeWaitButton (button)
{
	button.value = LOADING_BUSY;
	button.disabled = true;
	button.style.cursor = 'wait';
}

function getAbsolutePos (el)
{
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent)
	{
		var tmp = getAbsolutePos (el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}

function format ()
{
	if (arguments.length <= 1 ) return arguments[0];
	var re = /(^[^%]*)%%(.*)/;
	var newString = arguments[0];
	for (var i=1; i<arguments.length; ++i)
	{
		newString = newString.replace (re, "$1 " + arguments[i] + " $2");
	}
	return newString;
}


function preloadImages (aDocument, anArray)
{
	var  img = new Image();
	for (var i=0; i<anArray.length; ++i)
	{
		img.src = anArray[i] + '.gif';
		img.src = anArray[i] + 'X.gif';
	}
	aDocument.imageNames = anArray;
}
function hilite (aDocument, name, index) { aDocument.images[name].src = aDocument.imageNames[index] + 'X.gif'; }
function fade (aDocument, name, index) { aDocument.images[name].src = aDocument.imageNames[index] + '.gif'; }


function openUrlInNewWindow (aParentWindow, aURL)
{
	aParentWindow.open (aURL);
}


function spawnWindow (aWindow, w, h)
{
	var scroll = 'scrollbars,';

	if (! w)
		w = 400;
	if (! h)
	{
		if (aWindow.document.body) // Only for IE
		{
			h = aWindow.document.body.scrollHeight;
			h += 70;
			if ((h+180) > screen.availHeight)
				h = screen.availHeight - 180;
			else
				scroll = '';
		}
		else
			h = 600;
	}

	var url = aWindow.document.location.protocol + "//" + aWindow.document.location.hostname + aWindow.document.location.pathname;

	var search = aWindow.document.location.search;
	var loc = search.indexOf ('&spawned=');
	if (loc != -1 && search.indexOf ('&spawned=true') == -1)
		search = search.substring (0, loc) + search.substring (loc + 9, search.length);
	url += search;
	url += (url.charAt (url.length-1) == '/') ? '?' : '&';
	url += 'spawned=true' + aWindow.document.location.hash;

	var s = aWindow.name;
	s = "Contents" + (parseInt(s[7], 10) + 1);

	aWindow.open (url, s, scroll+'resizable,status,width=' + w + ',height=' + h);
}


function tee (event, id, etc)
{
	if (parent.MenuBar && parent.MenuBar.linkOrMenu)
		return parent.MenuBar.linkOrMenu (event, id, etc);
	return true;
}


function displayAddress (id, noContent)
{
	addressWindow = executeObject ('Address', id, 'Display', addressWindow, 400, 400, 100, 100, noContent);
}

function newAddress (parentId)
{
	editAddressWindow = executeObject ('Address', null, 'Edit', editAddressWindow, 480, 690, null, null, null, '/?addTo=' + parentId);
}

function editAddress (id)
{
	editAddressWindow = executeObject ('Address', id, 'Edit', editAddressWindow, 480, 690);
}

function deleteAddress (id)
{
	if (window.confirm (format (STRING_Command_deleteAddress, id)))
	{
		var url = servletPath + "Address." + id + ".delete/";
		var form = document.forms['addressSearchForm'];
		if (form.name && form.name.value.length > 0)
			url += "?search=" + form.name.value;
		document.location.href = url;
	}
}

function showLinkBrowser (id, field, noTree)
{
	if (noTree)
		field += "&part=content";
	linkBrowserWindow = executeObject ('Entry', id, 'LinkBrowser', linkBrowserWindow, noTree ? 470 : 840, 600, 0, 0, null, '/?field=' + field);
}

function silentExecuteObject (type, id, aCommand, aWindow, w, h, x, y, noContent)
{
	executeObject (type, id, aCommand, aWindow, w, h, x, y, noContent);
}

function executeObject (type, id, aCommand, aWindow, w, h, x, y, noContent, parameters)
{
	if (! w)  w = 400;
	if (! h)  h = 300;
	if (! x)  x = 100;
	if (! y)  y = 100;
	var rect = fitToScreen (x, y, w, h);
	x = rect.x; y = rect.y; w = rect.w; h = rect.h;

	aWindow = popupSingleton(aWindow, type + aCommand, 'scrollbars=yes,resizable=yes,width=' + w + ',height=' + h + ',top=' + y + ',left=' + x);
	if (id == null)
		id = '';
	if (!noContent && aWindow)
		aWindow.location.href = servletPath + type + '.' + id + '.' + aCommand + (parameters ? parameters : '');
	return aWindow;
}

function fitToScreen (x, y, w, h)
{
	if (x + w > screen.availWidth)
		x = screen.width - w - 10;
	if (y + h > screen.availHeight)
	{
		y = screen.height - h - 34;  // 34 = Windowtitle
		if (navigator.appVersion.indexOf ("MSIE") != -1)
			y -= 32; // height does not include the windows start bar in IE
		y = Math.max (0, y);
	}
	return { x:x, y:y, w:w, h:h };
}


var thesaurus =
{
	fat: { url: '/Thesaurus/Start.html', width: 715, height: 500 },
	slim: { url: '/Thesaurus/Start.html', width: 250, height: 500 }
};

thesaurus.defaults = thesaurus.fat;


function execSearch ()
{
	var url = servletPath + "Entry..Search/";
	if (typeof (entry) != 'undefined')
		url += "?subTree=" + entry.id;
	location.href = url;
}


function popupThesaurusFor (caller, w, h, url)
{
	if (!url)  url = thesaurus.defaults.url;
	if (! w)  w = thesaurus.defaults.width;
	if (! h)  h = thesaurus.defaults.height;

	thesaurusWindow = popupSingleton
	(
		thesaurusWindow,
		'Thesaurus',
		'scrollbars=yes,resizable=yes,width=' + w + ',height=' + h
	);
	thesaurusWindow.document.location.href = url;
}


function popupNavigator (depth, template)
{
	var id = 1;
	if (typeof (entry) != 'undefined')
		id = entry.id;
	else if (typeof (Contents) != 'undefined' && typeof (Contents.entry) != 'undefined')
		id = Contents.entry.id;
	popupNavigatorOn (id, depth, 420, 500, template);
}


function popupNavigatorOn (anId, depth, w, h, template)
{
	if (! depth)  depth = 2;
	if (! w)  w = 420;
	if (! h)  h = 500;

	navigatorWindow = popupSingleton
	(
		navigatorWindow,
		'Navigator',
		'scrollbars=yes,resizable=yes,width=' + w + ',height=' + h + ',status=no,screenX=0,screenY=0,left=0,top=0'
	);
	var ref = servletPath + anId + '/?command=tree&maxLevel=' + depth;
	if (template)
		ref += "&template=" + template;
	if (navigatorWindow)
		navigatorWindow.location.href = ref;
}

function popupSearchResults (url)
{
	searchResultsWindow = popupSingleton
	(
		searchResultsWindow,
		'SearchResults',
		'scrollbars=yes,resizable=yes,width=480,height=550,status,screenX=0,screenY=0,left=0,top=0'
	);
	if (url != null)
		searchResultsWindow.document.location.href = url;
}


function popupWhatsNew ()
{
	whatsNewWindow = popupSingleton
	(
		whatsNewWindow,
		'News',
		'scrollbars=yes,resizable=yes,width=550,height=550,status,screenX=0,screenY=0,left=0,top=0'
	);
	whatsNewWindow.document.location.href = servletPath + 'Global..ShowNews/?daysBack=14';
}


function changePasswd (id)
{
	changePasswdWindow = executeObject ('Grantee', id, 'ChangePasswd', changePasswdWindow, 480, 300);
}


function popupSingleton (aWindow, windowName, windowParams)
{
	if (aWindow && !aWindow.closed && aWindow.document)
	{
		aWindow.focus ();
		return aWindow;
	}
	var loc = navigator.appName.indexOf ("Opera") == -1 ? '' : window.frames[0].location;
	aWindow = window.open
	(
		loc,
		windowName,
		windowParams
	);

	if (aWindow && !aWindow.closed && aWindow.document)
		aWindow.focus ();

	return aWindow;
}

function login ()
{
	var request = servletPath + 'Grantee..login/?noNoAccessMessage=true';
	if (typeof (entry) != 'undefined' && entry.id)
		request += '&destination=' + entry.id;
	location.href = request;
}

function openURL (url)
{
	var win = window.opener ? window.opener : parent;
	var loc = win.location;
	if (win.frames.length > 1)
		loc = win.Contents ? win.Contents.location : win.frames[1].location;
	loc.href = url;
}

function doPrint ()
{
	var loc = window.document.location;
	loc.href += (loc.search.length === 0 ? "?print=true" : "&print=true");
}

function editProfile ()
{
	var request = servletPath + 'Profile..Show/';
	if (typeof (entry) != 'undefined')
		request += '?destination=' + entry.id;
	location.href = request;
}

function doDownload (id, filename)
{
	if (window.confirm (STRING_Files_doDownload3))
		document.location.href = "/servlet/is/" + id + "/" + filename + ".zip?command=downloadContent";
}