// rot13-Algorithmus
var map = new Array();
var s = "abcdefghijklmnopqrstuvwxyz";
  
for (var i=0; i<s.length; i++)
	map[s.charAt(i)] = s.charAt((i+13)%26);

for (i=0; i<s.length; i++)
	map[s.charAt(i).toUpperCase()] = s.charAt((i + 13) % 26).toUpperCase();

function rot13 (str)
{
	var rwert = "";
	for (i = 0; i < str.length; i++)
	{
		var b = str.charAt(i);
		if (b == '+')
			rwert += '@';
		else
			rwert += (b >= 'A' && b <= 'Z' || b >= 'a' && b <= 'z' ? map[b] : b);
	}
	return rwert;
}

function checkSubmit(evnt)
{
	var ben = document.getElementById('ben').value;
	var pwd = document.getElementById('pwd').value;
	var frm = document.forms[0];

	if (ben.length > 2 && pwd != 'Kennwort' && pwd.length > 5)
	{
		if (evnt.which && evnt.which == 13)
			frm.submit();
		else if (evnt.keyCode && evnt.keyCode == 13)
			frm.submit();
	}
}
function checkSubmit2(evnt)
{
	var ben = document.getElementById('ben');
	var pwd = document.getElementById('pwd');
	var frm = document.forms[0];

	if (ben.value.length < 3)
	{
		ben.focus();
		return false;
	}

	if (pwd.value.length < 6)
	{
		pwd.focus();
		return false;
	}

	return true;
}
function loeschen(nr)
{
	document.getElementById('del').value = nr;
	document.getElementById('frm').submit();
}


function f (obj, was)
{ // Löschung bei Fokus
	if (obj.value == was)
		obj.value = '';
}

function verfassen()
{ // Sichtbarkeitstoggle für Eingabefeld
	var obj = document.getElementById('eingabekasten');
	var d = obj.style.display;
	obj.style.display = (d == 'none') ? '' : 'none';
}

function absenden()
{ // Formmail-Antispam
	var betr = document.forms[0].item("betreff").value;
	document.forms[0].item("betreff").value = "HHB: " + betr;
}


function link_vorschau()
{ // Vorschau für Links
	var t = document.getElementById('titel').value;
	var b = document.getElementById('beschreibung').value;

	// Zeilenumbrüche in b korrigieren
	var c = umbrueche(b);
	document.getElementById('vorschau').innerHTML = '<a href="#" onclick="window.open(document.getElementById(\'adresse\').value);">' + t + '</a>.<br />' + c;
}

function toggleZeichen()
{ // Sonderzeichen-Sichtbarkeitstoggle
	var z = document.getElementById('sonderzeichen').style;
	z.display = (z.display == 'none') ? '' : 'none';
}

function sonderzeichen(txt)
{ // fügt Sonderzeichen ein.
	hinzText('&' + txt + ';');
}

function toggleSmileys()
{ // Smiley-Sichtbarkeitstoggle
	var s = document.getElementById('smileys').style;
	s.display = (s.display == 'none') ? '' : 'none';
}

// aktuelle Textauswahl
var auswahl = '';

var bez = new Array();
bez['b'] = 'fett';
bez['i'] = 'kursiv';
bez['u'] = 'unterstrichen';

function insTag(tag)
{
	var dtext = auswahl;
	if (auswahl.length == 0)
		dtext = prompt('Diesen Text ' + bez[tag] + ' ausgeben:', '');

 if (dtext != null && dtext != '')
	 hinzText('[' + tag + ']' + dtext + '[/' + tag + ']');

	document.getElementById('feld').focus();
}

function insLink()
{
	var txt; // Bescheibungstext
	if (auswahl.length == 0)
	{
		txt = prompt("Beschreibungstext für den Link eingeben.\r\n(kann auch leer sein, dann wird stattdessen die Zieladresse angezeigt)", '');
		if (txt == null)
			return;
	}
	else
		txt = auswahl;

	var url = prompt("Bitte Zieladresse eingeben.", 'http://');
	if (url == null)
		return;

	if (txt.length == 0)
		hinzText('[url]' + url + '[/url]');
	else
		hinzText('[url=' + url + ']' + txt + '[/url]');

	document.getElementById('feld').focus();
}

function insBild()
{
	var url = prompt("Bitte Bildadresse eingeben.", 'http://');
	if (url == null)
		return;

	hinzText('[img]' + url + '[/img]' + auswahl);

	document.getElementById('feld').focus();
}

function insSmiley(smiley)
{
	hinzText('[' + smiley + ']' + auswahl);

	document.getElementById('feld').focus();
}

function getSel(selectedtext)
{ 
	auswahl = (document.selection) ? document.selection.createRange().text : (window.getSelection ? window.getSelection() : document.getSelection());

	if (selectedtext.createTextRange)
		selectedtext.caretPos = document.selection.createRange().duplicate();

	return true;
}

function hinzText(NewCode)
{
	var fld = document.getElementById('feld');
	if (fld.createTextRange && fld.caretPos)
	{
		var caretPos = fld.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
	}
	else
		fld.value += NewCode;

	fld.focus();
}


function umbrueche(von)
{
	var rwert = von.replace(/\r\n/g, "\r");
	rwert = rwert.replace(/\n/g, "\r");
	rwert = rwert.replace(/\r/g, '<br />');

	return rwert;
}

function durchmangeln(was)
{
	var ausgabe = '';
	var eingabe = was.replace(/</g, '&lt;').replace(/>/g, '&gt;');

	var i, j, tag, url, tagende;
 
	j = 0;
	i = eingabe.indexOf('[', j);
	
	while (i >= 0)
	{

		// Bis zur aktuellen Position hinzufügen
		ausgabe += eingabe.substr(j, i - j);

		// Tag lesen und auswerten
		tagende = eingabe.indexOf(']', i + 1) - i - 1;
		if (tagende < 0)
			tagende = 0;

		tag = eingabe.substr(i + 1, tagende);
		switch (tag)
		{
			case 'b':
			case '/b':
			case 'i':
			case '/i':
				ausgabe += '<' + tag + '>';
				i += tagende + 1;
				break;
			case 'u':
				ausgabe += '<span class="u">';
				i += 2;
				break;
			case '/u':
				ausgabe += '</span>';
				i += 3;
				break;
			case 'img':
				ausgabe += '<img alt="" src="';
				i += 4;
				break;
			case '/img':
				ausgabe += '" />';
				i += 5;
				break;
			case 'url':
				url = eingabe.substring(i + 5, eingabe.indexOf('[/url]'));
				ausgabe += '<a href="' + url + '">';
				i += 4;
				break;
			case 'termin':
			case 'profil':
				url = eingabe.substring(i + 8, eingabe.indexOf('[/' + tag + ']'));
				ausgabe += '<a href="' + tag + '.xhtml?nr=' + url + '">' + tag + ' #';
				i += 7;
				break;
			case '/url':
			case '/termin':
			case '/profil':
				ausgabe += '</a>';
				i += tag.length + 1;
				break;
			default:
				if (eingabe.substr(i, 5) == '[url=')
				{
					ausgabe += '<a href="' + eingabe.substr(i + 5, tagende - 4) + '">';
					i += tagende + 1;
				}
				else if (eingabe.substr(i, 2) == '[:')
				{
					ausgabe += '<img alt=":' + eingabe.substr(i + 2, tagende - 1) + '" src="smiley/' + eingabe.substr(i + 2, tagende - 1) + '.gif" />';
					i += tagende + 1;
				}
				else
					ausgabe += '[';
				break;
		}

		// nächstes Tag lesen
		j = i + 1;
		i = eingabe.indexOf('[', j);
	}
	ausgabe += eingabe.substr(j);

	if (ausgabe.length == 0)
		ausgabe = '&nbsp;'

	return umbrueche(ausgabe);
}

function hinz(obj)
{ // Stämme hinzufügen
	if (obj.value == 'dialog')
	{
		var neu = prompt('Bitte gib den Stamm ein, in dem Du Mitglied bist.', '');

		if (neu == null || neu == '')
			return false;

		var txt = document.createTextNode(neu);
		var o = document.createElement('option');
		o.appendChild(txt);
		obj.appendChild(o);
		o.value = neu;
		o.selected = true;
	}
	return true;
}

function hinzgal(obj)
{ // Anlässe hinzufügen
	if (obj.value == 'dialog')
	{
		var neu = prompt("Bitte gib den Anlass der neuen Galerie ein.\rDer Anlass muss mit einer vierstelligen Jahreszahl enden!", '');

		if (neu == null || neu == '')
			return false;

		var txt = document.createTextNode(neu);
		var o = document.createElement('option');
		o.appendChild(txt);
		obj.appendChild(o);
		o.value = neu;
		o.selected = true;
	}
	return true;
}

function klick(obj)
{ // Kontrollkästchen
	if (obj.checked)
		obj.value = '1';
	else
		obj.value = '0';
}

function fernklick (str)
{ // Kontrollkästchen
	var o = document.getElementById(str);
	o.checked = !o.checked;
	klick(o);
}

function galerieInformationen (galnr, bildnr)
{ // Zeigt Informationen zum aktuellen Bild der Galerie in einem neuen Fenster an.
	window.open('galinfo.xhtml?galnr=' + galnr + '&bild=' + bildnr);
}
function beschriftung (galnr, bildnr, alte)
{ // Fragt nach einer neuen Fotobeschriftung und speichert bei Bedarf
	var neue = prompt('Beschriftung:', alte);
	if (neue && neue != alte)
		location.replace('foto.xhtml?galnr=' + galnr + '&bild=' + bildnr + '&beschr=' + neue);
}
function toggleVis (obj)
{
	var d = obj.style.display;
	obj.style.display = (d == 'none') ? '' : 'none';
}

function loescheFoto (gal, nr)
{
	location.replace
}
function bildgroesse(img)
{
    // Maße des Fenster bestimmen
    var b, h;
    if (self.innerHeight) // alle außer IE
    {
	    b = self.innerWidth;
	    h = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
	    // IE 6 Strict Mode
    {
	    b = document.documentElement.clientWidth;
	    h = document.documentElement.clientHeight;
    }
    else if (document.body) // andere IEs
    {
	    b = document.body.clientWidth;
	    h = document.body.clientHeight;
    }
	
	// Mini-Modus oder normal?
    if (document.getElementById('aufloesung'))
		// Link "niedrige Auflösung" existiert => normal
		var diff = 320;
	else
		// er existiert nicht.. => mini
		var diff = 160;

	// neue Breite festlegen.. und noch etwas mehr ^^
	if (img.width > b - diff)
	{
		img.width = b - diff;
		img.style.cursor = 'pointer';
		img.title = "In einem neuen Fenster in voller Größe öffnen."
	}
}