
// ganze Zahl
re_integer = /^([0]|[1-9][0-9]*)$/;
// Zahlencode
re_numcode = /^[\d]+$/;
// Datum
re_date = /^([0]?[1-9]|1[0-2])\/([0]?[1-9]|[12]\d|3[01])\/\d{2,4}$/;
// Telefon / Fax, Vorwahl Nummer
re_telephone = /^\+?\d{3,}[\/ -]?\d{5,}$/;
// Postleitzahl, Ländercode (optional) + Zahlencode
re_zip = /^(\w{1,2}-)?\d{4,}$/;
// Emailadresse, Account @ Domain
re_email = /^([_\w\d-]+)(\.[_\w\d-]+)*@([\w\d-]+\.)+([\w]{2,4})$/;
// Webseite, Domain + Verzeichnisebenen + Dateiname
re_website = /^([\w\d-]+\.)+([\w]{2,4})(\/[_\w\d~-]+)*(\/[\._\w\d-]*)?$/;
// Stichwort, einzelnes Wort
re_keyword = /^[^.,:; \t]+$/;
// ISBN
re_isbn = /^[0-9]{9,}[0-9X]$/;

function trim(str) {

	if (str != "")
	{
		start = 0;
		end = str.length;

		while (start<str.length && str.charAt(start)==' ')
		{
			start++;
		}

		do
		{
			end--;
		}
		while (end>start && str.charAt(end)==' ');

		return new String(str.substring(start,end+1));
	}

	return "";
}

function asknomore(url,message,notify,question) {

	if (notify == null)
	{
		if (confirm(message)) 
		{
			if (confirm("Ask never more?"))
			{
				self.location.href = url+"&"+question+"=0";
			}
			else
			{
				self.location.href = url+"&"+question+"=1";
			}
		}
	}
	else
	{
		if (notify == false || confirm(message)) 
		{
			self.location.href = url;
		}
	}
}

function checkuser() {

	if (document.forms[0].login && document.forms[0].login.value=="")
	{
		alert(" Please enter a login !");
		document.forms[0].login.focus();
		return false;
	}

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a last name !");
		document.forms[0].name.focus();
		return false;
	}

	if (document.forms[0].vorname && document.forms[0].vorname.value=="")
	{
		alert(" Please enter a first name !");
		document.forms[0].vorname.focus();
		return false;
	}

	if (document.forms[0].ugroup && document.forms[0].ugroup.value=="")
	{
		alert(" Please select a user group !");
		document.forms[0].ugroup.focus();
		return false;
	}

	if (document.forms[0].plz && document.forms[0].plz.value!="" && !re_zip.test(document.forms[0].plz.value))
	{
		alert(" Please enter a correct ZIP code !");
		document.forms[0].plz.focus();
		document.forms[0].plz.select();
		return false;
	}

	if (document.forms[0].pobox && document.forms[0].pobox.value!="" && !re_numcode.test(document.forms[0].pobox.value))
	{
		alert(" Please enter a correct post-office box !");
		document.forms[0].pobox.focus();
		document.forms[0].pobox.select();
		return false;
	}

	if (document.forms[0].telefon && document.forms[0].telefon.value!="" && !re_telephone.test(document.forms[0].telefon.value))
	{
		alert(" Please enter a correct telephone number !");
		document.forms[0].telefon.focus();
		document.forms[0].telefon.select();
		return false;
	}

	if (document.forms[0].fax && document.forms[0].fax.value!="" && !re_telephone.test(document.forms[0].fax.value))
	{
		alert(" Please enter a correct fax number !");
		document.forms[0].fax.focus();
		document.forms[0].fax.select();
		return false;
	}

	if (document.forms[0].funk && document.forms[0].funk.value!="" && !re_telephone.test(document.forms[0].funk.value))
	{
		alert(" Please enter a correct telephone number !");
		document.forms[0].funk.focus();
		document.forms[0].funk.select();
		return false;
	}

	if (document.forms[0].email && !re_email.test(document.forms[0].email.value))
	{
		alert(" Please enter a email address !");
		document.forms[0].email.focus();
		document.forms[0].email.select();
		return false;
	}

	if (document.forms[0].web && document.forms[0].web.value!="" && !re_website.test(document.forms[0].web.value))
	{
		alert(" Please enter a correct web address !");
		document.forms[0].web.focus();
		document.forms[0].web.select();
		return false;
	}

	return true;
}

function checkregistration() {

	if (document.forms[0].verlag && document.forms[0].verlag.value=="")
	{
		alert(" Please enter a publisher or a firm !");
		document.forms[0].verlag.focus();
		return false;
	}

	if (document.forms[0].redaktion && document.forms[0].redaktion.value=="")
	{
		alert(" Please enter the editors !");
		document.forms[0].redaktion.focus();
		return false;
	}

	if (document.forms[0].vorname && document.forms[0].vorname.value=="")
	{
		alert(" Please enter a first name !");
		document.forms[0].vorname.focus();
		return false;
	}

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a last name !");
		document.forms[0].name.focus();
		return false;
	}

	if (document.forms[0].strasse && document.forms[0].strasse.value=="")
	{
		alert(" Please enter a street !");
		document.forms[0].strasse.focus();
		return false;
	}

	if (document.forms[0].plz && !re_zip.test(document.forms[0].plz.value))
	{
		alert(" Please enter a correct ZIP code !");
		document.forms[0].plz.focus();
		document.forms[0].plz.select();
		return false;
	}

	if (document.forms[0].ort && document.forms[0].ort.value=="")
	{
		alert(" Please enter a city !");
		document.forms[0].ort.focus();
		return false;
	}

	if (document.forms[0].telefon && !re_telephone.test(document.forms[0].telefon.value))
	{
		alert(" Please enter a correct telephone number !");
		document.forms[0].telefon.focus();
		document.forms[0].telefon.select();
		return false;
	}

	if (document.forms[0].fax && document.forms[0].fax.value!="" && !re_telephone.test(document.forms[0].fax.value))
	{
		alert(" Please enter a correct fax number !");
		document.forms[0].fax.focus();
		document.forms[0].fax.select();
		return false;
	}

	if (document.forms[0].mobil && document.forms[0].mobil.value!="" && !re_telephone.test(document.forms[0].mobil.value))
	{
		alert(" Please enter a correct telephone number !");
		document.forms[0].mobil.focus();
		document.forms[0].mobil.select();
		return false;
	}

	if (document.forms[0].email && !re_email.test(document.forms[0].email.value))
	{
		alert(" Please enter a email address !");
		document.forms[0].email.focus();
		document.forms[0].email.select();
		return false;
	}

	if (document.forms[0].web && document.forms[0].web.value!="" && !re_website.test(document.forms[0].web.value))
	{
		alert(" Please enter a correct web address !");
		document.forms[0].web.focus();
		document.forms[0].web.select();
		return false;
	}

	return true;
}

function checkcontact() {

	if (document.forms[0].ansprechpartner && document.forms[0].ansprechpartner.value=="")
	{
		alert(" Please enter a contact person !");
		document.forms[0].ansprechpartner.focus();
		return false;
	}

	if (document.forms[0].strasse && document.forms[0].strasse.value=="")
	{
		alert(" Please enter a street !");
		document.forms[0].strasse.focus();
		return false;
	}

	if (document.forms[0].plz && !re_zip.test(document.forms[0].plz.value))
	{
		alert(" Please enter a correct ZIP code !");
		document.forms[0].plz.focus();
		document.forms[0].plz.select();
		return false;
	}

	if (document.forms[0].ort && document.forms[0].ort.value=="")
	{
		alert(" Please enter a city !");
		document.forms[0].ort.focus();
		return false;
	}

	return true;
}

function checkmailuser() {

	if (document.forms[0].subject && document.forms[0].subject.value=="")
	{
		alert(" Please enter a subject !");
		document.forms[0].subject.focus();
		return false;
	}

	if (document.forms[0].message && document.forms[0].message.value=="")
	{
		alert(" Please enter a message !");
		document.forms[0].message.focus();
		return false;
	}

	return true;
}

function checkiptc() {

	if (document.forms[0].creation && document.forms[0].creation.value!="" && !re_date.test(document.forms[0].creation.value))
	{
		alert(" Please enter a correct date !");
		document.forms[0].creation.focus();
		document.forms[0].creation.select();
		return false;
	}

	return true;
}

function checkdesc() {
	return true;
}

function checkcategory() {

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a category name !");
		document.forms[0].name.focus();
		return false;
	}

	return true;
}

function checkkeyword() {

	if (document.forms[0].keyword && !re_keyword.test(document.forms[0].keyword.value))
	{
		alert(" Please enter a correct keyword !");
		document.forms[0].keyword.focus();
		return false;
	}

	return true;

}

function checklexicon() {

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a correct keyword !");
		document.forms[0].name.focus();
		return false;
	}
	
	if (document.forms[0].name_de && document.forms[0].name_de.value=="")
	{
		alert(" Please enter a correct keyword !");
		document.forms[0].name.focus();
		return false;
	}
	
	return true;
}

function checkperson() {

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a last name !");
		document.forms[0].name.focus();
		return false;
	}

	if (document.forms[0].vorname && document.forms[0].vorname.value=="")
	{
		alert(" Please enter a first name !");
		document.forms[0].vorname.focus();
		return false;
	}

	if (document.forms[0].jid && document.forms[0].jid.value=="")
	{
		alert(" Please select a job !");
		document.forms[0].jid.focus();
		return false;
	}

	return true;

}

function checkjob() {

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a name !");
		document.forms[0].name.focus();
		return false;
	}

	return true;
}

function checksearch() {

	if (document.forms[0].creation2 && document.forms[0].creation2.value!="" && !re_date.test(document.forms[0].creation2.value))
	{
		alert(" Please enter a correct date !");
		document.forms[0].creation2.focus();
		document.forms[0].creation2.select();
		return false;
	}

	if (document.forms[0].creation3 && document.forms[0].creation3.value!="" && !re_date.test(document.forms[0].creation3.value))
	{
		alert(" Please enter a correct date !");
		document.forms[0].creation3.focus();
		document.forms[0].creation3.select();
		return false;
	}

	return true;
}

function checkreport() {

	if (document.forms[0].location && document.forms[0].location.value=="")
	{
		alert(" Please select where the error occured !");
		document.forms[0].location.focus();
		return false;
	}

	if (document.forms[0].time && document.forms[0].time.value=="")
	{
		alert(" Please enter when the error occured !");
		document.forms[0].time.focus();
		return false;
	}

	if (document.forms[0].description && document.forms[0].description.value=="")
	{
		alert(" Please enter a description of the error !");
		document.forms[0].description.focus();
		return false;
	}

	return true;
}

function checkserial() {

	if (document.forms[0].name && document.forms[0].name.value=="")
	{
		alert(" Please enter a serial name !");
		document.forms[0].name.focus();
		return false;
	}

	return true;

}

function checkstate() {}

function checkcountry() {}

function removeuser() {
	return confirm("Do you really want to remove this user?");
}

function removeperson() {
	return confirm("Do you really want to remove this person?");
}

function removenews() {
	return confirm("Do you really want to remove this period?");
}

function removejob() {
	return confirm("Do you really want to remove this job?");
}

function removekeyword() {
	return confirm("Do you really want to remove this keyword?");
}

function removeserial() {
	return confirm("Do you really want to remove this picture serial?");
}

function removecategory() {
	return confirm("Do you really want to remove this category?");
}

function removepicture(id,notify) {
	var	url = "pic_info.php?id="+id+"&remove=1",
		message = "Do you really want to remove this picture?";
		
	asknomore(url,message,notify,"askremove");
}

function removeunassignedpicture(pcid,page,pos,notify) {
	var	url = "assign_pics_cat.php?pcid="+pcid+"&page="+page+"&pos="+pos+"&remove=1",
		message = "Do you really want to remove this picture?";
	
	asknomore(url,message,notify,"askremove");
}

function clearlog(notify) {
	var	url = "downloadlog.php?clearlog=1",
		message = "Do you really want to clear your\nwhole download log?";
		
	asknomore(url,message,notify,"askclear");
}

function removepicturesfromnotepad(notify) {
	var	url = "notes.php?pcid=1&action=3",
		message = "Do you really want to remove all pictures from the notepad?";
	
	asknomore(url,message,notify,"askclear");
}

function removeserialsfromnotepad(notify) {
	var	url = "notes.php?seid=1&action=3",
		message = "Do you really want to remove all serials from the notepad?";
		
	asknomore(url,message,notify,"askclear");
}

function gauge() {
	window.open("progress.php","progress","width=250,height=150");
}

function useradmin() {
	window.open("user.php","user","width=580,height=520");
}

function updatecategoryfile(notify) {
	var	url = "admin.php?updatecategory=1",
		message = "Do you really want to refresh the file category.csv?";
	
	asknomore(url,message,notify,"askupdate");
}

function updatepersonfile(notify) {
	var	url = "admin.php?updateperson=1",
		message = "Do you really want to refresh the file person.csv?";
	
	asknomore(url,message,notify,"askupdate");
}

function countrylist() {
	window.open("countries.php","country","width=400,height=500,scrollbars=yes");
}

function categoryadmin() {
	window.open("category.php","category","width=600,height=400,scrollbars=yes");
}

function accountadmin() {
	window.open("account.php","account","width=580,height=300");
}

function startimport() {
	if (confirm("Do you really want to start the import\nof your own pictures?")) {
		self.location.href = "admin.php?merge=1";
	}
}

function clearupload(uid,notify) {
	var	url = "account.php?primary="+uid+"&clearupload=1",
		message = "Do you really want to remove all pictures\nfrom your own upload directory?";
	
	asknomore(url,message,notify,"askclear");
}

function iconMouseOver(event) {
	var icon;
	var previewThumb;
	var previewWindow;
	var url;

	if (!event)
	{
		event = window.event;
	}

	if (event.target)
	{
		icon = event.target;
	}
	else
	{
		icon = event.srcElement;
	}

	previewThumb  = document.getElementById("preview_thumb");
	previewWindow = document.getElementById("preview_window");

	previewThumb.style.visibility = "hidden";
	url                           = icon.src.replace("icon","thumb");

	if (event.clientX > 440)
	{
		previewWindow.style.left = "20px";
	}
	else
	{
		previewWindow.style.left = "460px";
	}

	previewWindow.style.visibility = "visible";

	if (url == previewThumb.src)
	{
		document.getElementById("preview_thumb").style.visibility = "visible";
	}
	else
	{
		previewThumb.src = url;
	}
}

function iconMouseOut(event) {
	document.getElementById("preview_thumb").style.visibility  = "hidden";
	document.getElementById("preview_window").style.visibility = "hidden";
}		

function showPreviewThumb() {
	var previewThumb;

	if (document.getElementById("preview_window").style.visibility == "visible")
	{
		previewThumb = document.getElementById("preview_thumb");
		previewThumb.style.marginTop  = ( (420 - previewThumb.height) / 2) + "px";
		previewThumb.style.marginLeft = ( (420 - previewThumb.width ) / 2) + "px";
		previewThumb.style.visibility = "visible";
	}
}
