/**
 * Variablen für die Fenstergröße und Position der Popus:
 * Höhe, Breite, Abstand vom rechten und oberen Bildschirmrand.
 */
var h1 = 740;
var b1 = 800;
var h2 = 400;
var b2 = 500;
var h3 = 370;
var b3 = 400;
var margin = 10;

/**
 * Blendet die Skillfilterboxen beim Versenden einer Projektemail ein.
 * 
 */
function showBoxes() {
   document.getElementById('toggle').style.display = 'inline';
}

/**
 * Blendet die Skillfilterboxen beim Versenden einer Projektemail aus.
 * 
 */
function hideBoxes() {
   document.getElementById('toggle').style.display = 'none';
}


/**
 * Blendet Elemente ein und aus.
 * 
 */
function toggleElem(id) {
   if (document.getElementById(id).style.display == 'inline')
     document.getElementById(id).style.display = 'none';
   else
     document.getElementById(id).style.display = 'inline';
}

/**
 * Blendet Elemente ein.
 * 
 */
function showElem(id) {
   document.getElementById(id).style.display = 'inline';
}

/**
 * Blendet Elemente aus.
 * 
 */
function hideElem(id) {
   document.getElementById(id).style.display = 'none';
}

/**
 * Blendet alle Mitarbeiter bei der Gallerie aus.
 * 
 */
function hideAll() {
   document.getElementById('Darmstadt') .style.display = 'none';
   document.getElementById('Karlsruhe') .style.display = 'none';
   document.getElementById('Stuttgart') .style.display = 'none';
   document.getElementById('Düsseldorf').style.display = 'none';
   document.getElementById('München')   .style.display = 'none';
   document.getElementById('Mannheim')  .style.display = 'none';
   document.getElementById('Hamburg')   .style.display = 'none';
}

/**
 * Öffnet Popup, in dem das Projekt mit der Nr. id angezeigt wird. 
 */
function showproject(id) {
 project = window.open("projects.php?id="+id, "project", "height="+h1+",width="+b1+",scrollbars=yes,dependent=yes,menubar=0,resizable=yes,top="+margin+",left="+margin);
 project.focus();
}

/**
 * Öffnet Popup, in dem die Info mit der Nr. id angezeigt wird. 
 */
function showinfo(id) {
 info = window.open("infodl.php?cat=showinfo&id="+id, "info", "height="+h2+",width="+b2+",scrollbars=yes,dependent=yes,menubar=0,resizable=yes,top="+margin+",left="+margin);
 info.focus();
}

/**
 * Öffnet Popup, in dem der Download mit der Nr. id angezeigt wird. 
 */
function showdownload(id) {
 download = window.open("infodl.php?cat=showdl&id="+id, "download", "height="+h3+",width="+b3+",scrollbars=yes,dependent=yes,menubar=0,resizable=yes,top="+margin+",left="+margin);
 download.focus();
}

/**
 * Prüft, ob im Formular eine numerische ID eingegeben wurde.
 */
function checkID() {
  var id = document.reactivate.id.value;
  var ok = id.search(/^[0-9]+$/);
  
  if (ok < 0) {
    alert("Bitte eine korrekte numerische ID eingeben!");
    document.reactivate.id.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Projektformular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkProject() {
  var id = document.form.id.value;
  var idok = id.search(/^[0-9]+$/);
  var title = document.form.title.value;
  var kurztext = document.form.kurztext.value;
  var text = document.form.text.value;
  var einsatzort = document.form.einsatzort.value;
  var owner = document.form.owner.value;
  var antwortadr = document.form.antwortadr.value;
  var kontaktdaten = document.form.kontaktdaten.value;
  var arbeitszeit = document.getElementsByName('arbeitszeit[]');

  if (title == "") {
    alert("Bitte Titel eingeben!");
    document.form.title.focus();
    return false;
  }
  if (idok < 0) {
    alert("Bitte eine korrekte numerische ID eingeben!");
    document.form.id.focus();
    return false;
  }
  if (owner == "") {
     alert("Bitte Besitzer auswählen!");
     document.form.owner.focus();
     return false;
  }
  if (antwortadr == "") {
     alert("Bitte Antwortadresse auswählen!");
     document.form.antwortadr.focus();
     return false;
  }
  if (kontaktdaten == "") {
     alert("Bitte Kontaktdaten ergänzen!");
     document.form.kontaktdaten.focus();
     return false;
  }  
  if (einsatzort == "") {
      alert("Bitte Einsatzort eingeben!");
      document.form.einsatzort.focus();
      return false;
  }
  if (text == "") {
    alert("Bitte Beschreibung eingeben!");
    document.form.text.focus();
    return false;
  }
  if (!arbeitszeit[0].checked && !arbeitszeit[1].checked) {
    alert("Bitte Vollzeit und/oder Teilzeit ankreuzen!");
    arbeitszeit[0].focus();
    return false;
  }
  if (kurztext.match(/\(m\/w\)/)) {
    alert("Der Zusatz \" (m/w)\" muss nicht mehr manuell eingegeben werden!\nEr wird automatisch hinzugefügt.");
    document.form.kurztext.focus();
    return false;
  }
  return true;
}

/**
 * Setzt den Cursor ins Namensfeld. 
 */
function focusName() {
   document.form.name.focus();
}

/**
 * Setzt den Cursor ins Namensfeld. 
 */
function focusNachname() {
   document.form.nachname.focus();
}

/**
 * Setzt den Cursor ins Titelfeld. 
 */
function focusTitel() {
   document.form.title.focus();
}

/**
 * Setzt den Cursor ins Titelfeld. 
 */
function focusTitel2() {
   document.form.titel.focus();
}

/**
 * Setzt den Cursor beim Login ins Benutzername-Feld. 
 */
function focusUser() {
   document.form.user.focus();
}

/**
 * Vervollständigt anhand von Name+Vorname das "Neuer interner Benutzer"-
 * Formular.
 */
function fillForm() {
   var name = document.form.name.value.toLowerCase();
   var vorname = document.form.vorname.value.toLowerCase();
   var initial = vorname.substring(0, 1);
   var login = initial + name;
   var email = vorname + "." + name;
   
   email = email.replace (/ä/, "ae");
   email = email.replace (/ö/, "oe");
   email = email.replace (/ü/, "ue");
   email = email.replace (/ß/, "ss");
   email = email.replace (/ /, "-");

   login = login.replace (/ä/, "ae");
   login = login.replace (/ö/, "oe");
   login = login.replace (/ü/, "ue");
   login = login.replace (/ß/, "ss");
   login = login.replace (/ /, "");

   document.form.ownermail.value = email;
   document.form.login.value = login;
   
   document.form.pass.focus();
}

/**
 * Prüft im "Passwort-Ändern" - Formular, ob alle Felder ausgefüllt
 * sind und ob die neuen Passwörter identisch sind.
 */
function comparePasswords () {
   var pw = document.form.oldpw.value;
   var pw1 = document.form.newpw1.value;
   var pw2 = document.form.newpw2.value;

   if(pw1 != pw2) {
      alert("Die eingegebenen Passwörter stimmen nicht überein!");
      return false;
   }
   if(pw2!="" && pw1 != "" && pw1.length < 6) {
      alert("Neues Passwort zu kurz! Mindestlänge: 6 Zeichen.");
      return false;
   }
   if(pw1 != "" && pw == "") {
      alert("Um das Passwort zu ändern, bitte das alte Passwort eingegeben!");
      return false;
   }
   return true;
}

/**
 * Prüft das "Neuer interner Benutzer"- Formular auf Korrektheit
 * und Vollständigkeit der Eingaben.
 */
function checkNewUser(update) {
  var name = document.form.name.value;
  var vorname = document.form.vorname.value;
  var ownermail = document.form.ownermail.value+"@univativ.de";
  var login = document.form.login.value;
  var pass = document.form.pass.value;

  if (name == "") {
    alert("Bitte Nachnamen eingeben!");
    document.form.name.focus();
    return false;
  }  
  if (vorname == "") {
    alert("Bitte Vornamen eingeben!");
    document.form.vorname.focus();
    return false;
  }  
  if (login == "") {
    alert("Bitte Loginnamen eingeben!");
    document.form.login.focus();
    return false;
  }    
  if (!update && pass == "") {
      alert("Bitte Passwort eingeben!");
      document.form.ownermail.focus();
      return false;
  }  
  var mail = ownermail.search(/^[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*@[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*\.[a-zA-Z]{2,4}/);
  if (mail < 0) {
    alert("Bitte eine korrekte Email-Adresse eingeben!");
    document.form.ownermail.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Infoformular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkInfo () {
  var title				= document.form.title.value;
  var text				= document.form.text.value;
  var owner				= document.form.owner.value;
  var datum				= document.form.ablauf.value;
  var date_from			= document.form.termin_von.value;
  var date_from_time	= document.form.termin_von_zeit.value;
  var date_to			= document.form.termin_bis.value;
  var date_to_time		= document.form.termin_bis_zeit.value;

  var dat = datum.search(/^[0-9]{1,2}[-_\.][0-9]{1,2}[-_\.](20){0,1}[0-9][0-9]/);

  if (date_from == "" || !checkDate(date_from)) {
    alert("Bitte korrektes Datum eingeben");
    document.form.termin_von.focus();
    return false;
  }
  if(date_to != "" && !checkDate(date_to)) {
    alert("Bitte korrektes 'Bis'-Datum angeben");
    document.form.termin_bis.focus();
    return false;
  }
  if (date_to_time != "" && date_from_time == "") {
    alert("Bitte Anfangsuhrzeit eingeben!");
    document.form.termin_von_zeit.focus();
    return false;
  }

  if (title == "") {
    alert("Kein Titel eingegeben!");
    document.form.title.focus();
    return false;
  }

  if (owner == "") {
     alert("Bitte Besitzer auswählen!");
     document.form.owner.focus();
     return false;
  }  
  if (dat < 0) {
    alert("Bitte ein korrektes Datum eingeben!");
    document.form.ablauf.focus();
    return false;
  }
  
  if (text == "") {
    alert("Bitte Beschreibung eingeben!");
    document.form.text.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Downloadformular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkDL () {
  var title = document.form.title.value;
  var text = document.form.text.value;
  var owner = document.form.owner.value;
  var datum = document.form.ablauf.value;
  var dat = datum.search(/^[0-9]{1,2}[-_\.][0-9]{1,2}[-_\.](20){0,1}[0-9][0-9]/);
  var dl = document.form.download.value;
  var link = document.form.link.value;
  var update = document.form.update.value;

  if (title == "") {
    alert("Bitte Titel eingeben!");
    document.form.title.focus();
    return false;
  }

  if (owner == "") {
     alert("Bitte Besitzer auswählen!");
     document.form.owner.focus();
     return false;
  }  
  if (dat < 0) {
    alert("Bitte ein korrektes Datum eingeben!");
    document.form.ablauf.focus();
    return false;
  }
  
  if (dl == "" && link == "" && update == 0) {
    alert("Bitte Datei auswählen oder Link eintragen!");
    document.form.link.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Referenzkundenformular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkClient () {
  var name = document.form.name.value;
  var ort = document.form.ort.value;
  var branche = document.form.branche.value;
  var web = document.form.web.value;
  var logo = document.form.logo.value;
  var update = document.form.update.value;

  if (name == "") {
    alert("Bitte Namen eingeben!");
    document.form.name.focus();
    return false;
  }

  if (ort == "") {
     alert("Bitte Ort eingeben!");
     document.form.ort.focus();
     return false;
  }  

  if (branche == "") {
    alert("Bitte Branche eingeben!");
    document.form.branche.focus();
    return false;
  }

  if (web == "") {
    alert("Bitte Webadresse eingeben!");
    document.form.web.focus();
    return false;
  }
  
  if (logo == "" && update == 0) {
    alert("Bitte Logo auswählen!");
    document.form.logo.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Mitarbeiter-Gallerie-Formular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkMa () {
  var name = document.form.name.value;
  var funktion = document.form.funktion.value;
  var tel = document.form.tel.value;
  var email = document.form.email.value;
  var foto = document.form.foto.value;
  var update = document.form.update.value;
  var standort = document.form.standort.value;
  var pos = document.form.pos.value;

  if (name == "") {
    alert("Bitte Namen eingeben!");
    document.form.name.focus();
    return false;
  }

  if (funktion == "") {
    alert("Bitte Funktion eingeben!");
    document.form.funktion.focus();
    return false;
  }

  if (tel == "") {
    alert("Bitte Telefonnummer eingeben!");
    document.form.tel.focus();
    return false;
  }

  if (standort == "") {
    alert("Bitte Standort auswählen!");
    document.form.standort.focus();
    return false;
  }

  var mail = email.search(/^[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*@[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*\.[a-zA-Z]{2,4}/);
  if (mail < 0) {
    alert("Bitte eine korrekte Email-Adresse eingeben!");
    document.form.email.focus();
    return false;
  }

  if (pos == "") {
    alert("Bitte Position in Gallerie auswählen!");
    document.form.pos.focus();
    return false;
  }
  
  if (foto == "" && update == 0) {
    alert("Bitte Bild auswählen!");
    document.form.foto.focus();
    return false;
  }
return true;
}

/**
 * Prüft das Referenzprojekteformular auf Korrektheit und Vollständigkeit
 * der Eingaben.
 */
function checkRefProject () {
  var titel = document.form.titel.value;
  var titel_en = document.form.titel_en.value;
  var text = document.form.text.value;
  var text_en = document.form.text_en.value;
  var umfang = document.form.umfang.value;
  var umfang_en = document.form.umfang_en.value;
  var tools = document.form.tools.value;
  var tools_en = document.form.tools_en.value;
  
  if (titel == "") {
    alert("Bitte Titel eingeben!");
    document.form.titel.focus();
    return false;
  }

  if (titel_en == "") {
    alert("Bitte Titel auf englisch eingeben!");
    document.form.titel_en.focus();
    return false;
  }

  if (umfang == "") {
     alert("Bitte Umfang auf deutsch eingeben!");
     document.form.umfang.focus();
     return false;
  }  

  if (umfang_en == "") {
     alert("Bitte Umfang auf englisch eingeben!");
     document.form.umfang_en.focus();
     return false;
  }  

  if (text == "") {
    alert("Bitte Text auf deutsch eingeben!");
    document.form.text.focus();
    return false;
  }

  if (text_en == "") {
    alert("Bitte Text auf englisch eingeben!");
    document.form.text_en.focus();
    return false;
  }

  if (tools == "") {
    alert("Bitte Tools auf deutsch eingeben!");
    document.form.tools.focus();
    return false;
  }

  if (tools_en == "") {
    alert("Bitte Tools auf englisch eingeben!");
    document.form.tools_en.focus();
    return false;
  }
return true;
}

function confirmDelete(string, link) {
   check = confirm(string);
   if (check) {
     document.location.href = link;
   }
}

/**
 * Prüft das Schnupperzugangsformular auf Korrektheit
 * und Vollständigkeit der Eingaben.
 */
function checkTempuser () {
  var nachname = document.form.nachname.value;
  var vorname = document.form.vorname.value;
  var tel = document.form.tel.value;
  var uni = document.form.uni.value;
  var email = document.form.email.value;  
  var geb = document.form.geb.value;
  var gebOK = geb.search(/^[0-9]{1,2}[-_\.][0-9]{1,2}[-_\.](20){0,1}[0-9][0-9]/);
  var emailOK = email.search(/^[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*@[a-zA-Z0-9]+([-_\.]|[a-zA-Z0-9])*\.[a-zA-Z]{2,4}/);
  
  if (nachname == "") {
    alert("Bitte Nachnamen eingeben!");
    document.form.nachname.focus();
    return false;
  }
  if (vorname == "") {
    alert("Bitte Vornamen eingeben!");
    document.form.vorname.focus();
    return false;
  }
  if (email == "" || emailOK < 0) {
    alert("Bitte korrekte Email-Adresse eingeben!");
    document.form.email.focus();
    return false;
  }  
  if (tel == "") {
    alert("Bitte Telefonnummer eingeben!");
    document.form.tel.focus();
    return false;
  }
  if (uni == "") {
    alert("Bitte Hochschule und Studiengang eingeben!");
    document.form.uni.focus();
    return false;
  }
  if (geb != "" && gebOK < 0) {
    alert("Bitte korrektes Geburtsdatum eingeben!");
    document.form.geb.focus();
    return false;
  }  
  return true;
}

function checkSendMethod() {
	var fields = document.form.getElementsByTagName("input")
	var empty = true;
	for(var i = 0; i < fields.length; ++i) {
		if(fields[i].getAttribute("name") == "einsatzorte[]" &&
			fields[i].checked) {
			empty = false;
			break;
		}
	}
	if(empty) {
		alert("Bitte die Einsatzgebiete auswählen!");
		return false;
	}
	if(sammelmail == 1)
		return true;
	return confirm("Wirklich eine adhoc-Projektanfrage über den Verteiler schicken?");
}

/* 
 * Prüft auf korrektes und sicheres Passwort
 */
function checkPassword() {
	var pw1 	= document.getElementsByName("newpw1")[0].value;
	var pw2 	= document.getElementsByName("newpw2")[0].value;
	var oldpw   = $('oldpw').value;

	var text 	= "sicher";
	var color 	= 'yellow';
	if (pw1.length == 0) {
		text	= "";
		color	= '';
		$$('.oldpw_row').setStyle('display', 'none');
	} else if (pw1 != pw2) {					/* ! */
		text 	= "nicht identisch";
		color	= 'red';
	} else if (pw1.length < 6) {				/* ! length */
		text 	= "zu kurz";
		color 	= 'red';
	} else if (!pw1.match(/[\d]/i)) {			/* ! numeric */
		text 	= "unsicher";
		color 	= 'red';
	} else if (!pw1.match(/[a-z]/) && !pw1.match(/[A-Z]/)) { /* ! lower or upper alpha */
		text 	= "unsicher";
		color 	= 'red';
	} else if (pw1.match(/[^a-z\d]/i)) {			/* special */
		text 	= "sehr sicher";
		color 	= 'green';
	}

	if(pw1.length > 0 && oldpw.length == 0) {
		$$('.oldpw_row').setStyle('display', 'inherit');
		$('oldpw').setStyle('backgroundColor', 'red');
	} else {
		$('oldpw').setStyle('backgroundColor', 'transparent');
	}

	document.getElementsByName("newpw1")[0].style.backgroundColor = color;
	document.getElementsByName("newpw2")[0].style.backgroundColor = color;
	document.getElementById('pass_msg').innerHTML = '<strong>'+text+'</strong>';
}

function checkSimplePassword(pw) {
	var pw1 	= pw.value;

	var text 	= "sicher";
	var color 	= 'yellow';
	if (pw1.length == 0) {
		text	= "";
		color	= '';
	} else if (pw1.length < 6) {				/* ! length */
		text 	= "zu kurz";
		color 	= 'red';
	} else if (!pw1.match(/[\d]/i)) {			/* ! numeric */
		text 	= "unsicher";
		color 	= 'red';
	} else if (!pw1.match(/[a-z]/) && !pw1.match(/[A-Z]/)) { /* ! lower or upper alpha */
		text 	= "unsicher";
		color 	= 'red';
	} else if (pw1.match(/[^a-z\d]/i)) {			/* special */
		text 	= "sehr sicher";
		color 	= 'green';
	}

	pw.style.backgroundColor = color;
	document.getElementById('pass_msg').innerHTML = '<strong>'+text+'</strong>';
}

function checkDate(date) {
	if (!date)
		return false;
	date=date.toString();

	date=date.split(".");
	if (date.length!=3)
		return false;

	date[0]=parseInt(date[0],10);
	date[1]=parseInt(date[1],10)-1;

	if (date[2].length==2)
		date[2]="20"+date[2];

	var cdate = new Date(date[2],date[1],date[0]);

	if (cdate.getDate()==date[0] && cdate.getMonth()==date[1] && cdate.getFullYear()==date[2])
		return true;
	else
		return false;
}

function GeneratePassword(pwfield) {
	var length=8;
	var sPassword = "";

	length = Math.random();
	length = parseInt(length * 100);
	length = (length % 7) + 6;

	for (i=0; i < length; i++) {
		numI = getRandomNum();
		while (checkPunc(numI)) { numI = getRandomNum(); }

		sPassword = sPassword + String.fromCharCode(numI);
	}

	pwfield.value = sPassword
	return true;
}

function getRandomNum() {
	// between 0 - 1
	var rndNum = Math.random()

	// rndNum from 0 - 1000
	rndNum = parseInt(rndNum * 1000);
	// rndNum from 33 - 127
	rndNum = (rndNum % 94) + 33;

	return rndNum;
}

function checkPunc(num) {
	if ((num >=33) && (num <=47)) { return true; }
	if ((num >=58) && (num <=64)) { return true; }
	if ((num >=91) && (num <=96)) { return true; }
	if ((num >=123) && (num <=126)) { return true; }
	return false;
}

