/**
*	Frontend-Script
*
*	enthält viele Funktionen für das Frontend
*	(c) 2002-2003, sethora.de
*
*	checkPassword
*
*	überprüft, ob ein User sich bei den Passwörtern nicht vertippt hat
*/
function checkPassword() {
	if (document.forms['anmeldung'].elements['pw'].value!=document.forms['anmeldung'].elements['pwconfirm'].value) {
		alert ("Die von Ihnen eingegebene Passwortbestätigung unterscheidet sich von Ihrem gewünschten Passwort. Bitte überprüfen Sie Ihre Eingaben.");
		}
	else {
		document.forms['anmeldung'].submit();
		}
	}

/**
*	emailCheck
*
*	überprüft eine E-Mail-Adresse auf Ihr Gültigkeit
*/
function emailCheck (emailStr) {

	/**
	*	Sollen TLDs überprüft werden?
	*	0=nein, 1=ja
	*/
	var checkTLD=1;

	/**
	*	Liste gültiger TLDs mit mehr als 2 Buchstaben
	*/
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		alert("Ungültige Email-Adresse (prüfen Sie @ und .'s)");
		return false;
		}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Ungültige Zeichen im Usernamen.");
			return false;
			}
		}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Ungültige Zeichen im Domainnamen.");
			return false;
			}
		}
	if (user.match(userPat)==null) {
		alert("Name ungültig.");
		return false;
		}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("IP Addresse ungültig!");
				return false;
				}
			}
		return true;
		}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert("Ungültige Domain.");
			return false;
			}
		}
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert("Ungültige Top-Level-Domain oder Land.");
		return false;
		}
	if (len<2) {
		alert("Kein Host angegeben!");
		return false;
		}
	return true;
	}

/**
*	getGalleryHeight
*
*	ermittelt die Höhe des Bildergalerie-Fensters
*
*	@param	integer	anzahl	Anzahl Bilder
*/
function getGaleryHeight(anzahl) {
	var spalten=7;
	var hoehe=140;
	var anzahlZeilen=Math.ceil(anzahl/spalten)-1;
	hoehe=hoehe+(anzahlZeilen*116);
	return hoehe;
	}

/**
*	getGalleryWidth
*
*	ermittelt die Breite des Bildergalerie-Fensters
*
*	@param	integer	anzahl	Anzahl Bilder
*/
function getGaleryWidth(anzahl) {
	var spalten=7;
	var breite=0;
	if (anzahl>spalten) {
		breite=spalten*124+2;
		}
	else {
		breite=anzahl*124+2;
		}
	return breite;
	}

/**
*	nextPicture
*
*	Bildergalerie:
*	Das nächste Bild anzeigen
*
*	@param	object image	object		Das zu verändernde Bild
*	@param	array			idarray		Array mit den Bild-IDs, die in Frage kommen
*	@param	array			altarray	Array mit den Bildkommentaren
*	@param	integer			counter		Der Bildzähler
*	@return	integer						Increment des Zählers
*/
function nextPicture(object,idarray,altarray,counter) {
	if (counter<(idarray.length-1)) {
		counter++;
		object.src="index.php3?ACTION=THUMBNAILSHOW&ID="+idarray[counter];
		object.alt=altarray[counter];
		window.status=altarray[counter];
		if (document.all) {
			F1 = window.open("#","Fenster1","width=10,height=10,left=9000,top=9000");
			F1.close();
			}
		}
	return counter;
	}

/**
*	previousPicture
*
*	Bildergalerie:
*	Das vorherige Bild anzeigen
*
*	@param	object image	object		Das zu verändernde Bild
*	@param	array			idarray		Array mit den Bild-IDs, die in Frage kommen
*	@param	array			altarray	Array mit den Bildkommentaren
*	@param	integer			counter		Der Bildzähler
*	@return	integer						Decrement des Zählers
*/
function previousPicture(object,idarray,altarray,counter) {
	if (counter>0) {
		counter--;
		object.src='index.php3?ACTION=THUMBNAILSHOW&ID='+idarray[counter];
		object.alt=altarray[counter];
		window.status=altarray[counter];
		if (document.all) {
			F1 = window.open("#","Fenster1","width=10,height=10,left=9000,top=9000");
			F1.close();
			}
		}
	return counter;
	}

/**
*	openCentered
*
*	Ein Fenster zentriert öffnen
*
*	@url:			Die URL zum Inhalt des Fensters
*	@width:			die Breite des Fensters in Pixeln
*	@height:		die Höhe des Fensters in Pixeln
*	@windowName:	der Referenzname des Fensters
*	@featureString:	weitere Angaben (Buttonbar, resizable usw.)
*/
function openCentered (url, width, height, windowName, featureString) {
	if (!windowName) {
		windowName = '';
		}
	if (!featureString) {
		featureString = '';
		}
	else {
		featureString = ',' + featureString;
		}
	var x = Math.round((screen.availWidth - width) / 2);
	var y = Math.round((screen.availHeight - height) / 2);
	featureString = 'left=' + x + ',top=' + y + ',width=' + width + ',height=' + height + featureString;
	open (url, windowName, featureString);
	}