// JavaScript Document

var infoFeld =  new Array("('Select Department','')",
						  "('Prof. Backes','Prof. Backes')",
						  "('Prof. Bläßer','Prof. Bläßer')",
						  "('Prof. Finkbeiner','Prof. Finkbeiner')",
						  "('Prof. Hack','Prof. Hack')",
						  "('Prof. Hein','Prof. Hein')",
						  "('Prof. Herfet','Prof. Herfet')",
						  "('Prof. Hermanns','Prof. Hermanns')",
						  "('Prof. Lehnof','Prof. Lehnof')",
						  "('Prof. Paul','Prof. Paul')",
						  "('Prof. Scheidig','Prof. Scheidig')",
						  "('Prof. Schreyer','Prof. Schreyer')",
						  "('Prof. Seidel','Prof. Seidel')",
						  "('Prof. Siekmann','Prof. Siekmann')",
						  "('Prof. Slusallek','Prof. Slusallek')",
						  "('Prof. Smolka','Prof. Smolka')",
						  "('Prof. Wahlster','Prof. Wahlster')",
						  "('Prof. Weickert','Prof. Weickert')",
						  "('Prof. Wilhelm','Prof. Wilhelm')",
						  "('Prof. Zeller','Prof. Zeller')",
						  "('Other','Other')");
var mathFeld =  new Array("('Select Department','')",
						  "('Prof. Dudocheva','Prof. Dudocheva')",
						  "('Prof. John','Prof. John')",
						  "('Prof. Louis','Prof. Louis')",
						  "('Prof. Rjasanow','Prof. Rjasanow')",
						  "('Other','Other')");
var rmathFeld =  new Array("('Select Department','')",
						   "('Prof. Albrecht','Prof. Albrecht')",
						   "('Priv.-Doz. Bildhauer','Priv.-Doz. Bildhauer')",
						   "('Prof. Brosamler','Prof. Brosamler')",
						   "('Prof. Decker','Prof. Decker')",
						   "('Prof. Eschmeier','Prof. Eschmeier')",
						   "('Prof. Fuchs','Prof. Fuchs')",
						   "('Prof. Gekeler','Prof. Gekeler')",
						   "('Prof. Groves','Prof. Groves')",
						   "('Prof. Grüter','Prof. Grüter')",
						   "('Prof. Hischer','Prof. Hischer')",
						   "('Prof. Lambert','Prof. Lambert')",
						   "('Prof. Schulze-Pillot','Prof. Schulze-Pillot')",
						   "('Other','Other')");
var mpiiFeld =  new Array("('Select Department','')",
						  "('D 1 - Mehlhorn','D 1 - Mehlhorn')",
						  "('D 2 - Schiele','D 2 - Schiele')",
						  "('D 3 - Lengauer','D 3 - Lengauer')",
						  "('D 4 - Seidel','D 4 - Seidel')",
						  "('D 5 - Weikum','D 5 - Weikum')",
						  "('IRG - McHardy','IRG - McHardy')",
						  "('RG 1 - Weidenbach','RG 1 - Weidenbach')",
						  "('RG 2 - Scheffer','RG 2 - Scheffer')",
						  "('ZB - Bibliothek','ZB - Bibliothek')",
						  "('ZB - IST','ZB - IST')",
						  "('ZB - Verwaltung','ZB - Verwaltung')",
						  "('Other','Other')");
var mpisFeld =  new Array("('Select Department','')",
						  "('RG DPS - Rodrigues','RG DPS - Rodrigues')",
						  "('RG DS - Druschel','RG DS - Druschel')",
						  "('RG FP - Dreyer','RG FP - Dreyer')",
						  "('RG ISC - Backes','RG ISC - Backes')",
						  "('RG INS - Francis','RG INS - Francis')",
						  "('RG NS - Gummadi','RG NS - Gummadi')",
						  "('RG PLS - Acar','RG PLS - Acar')",
						  "('RG RSE - Majumdar','RG RSE - Majumdar')",
						  "('RG SAV - Vafeiadis','RG SAV - Vafeiadis')",
						  "('Other','Other')");
var nachtFeld = new Array("('24h Ausleihe','24h Ausleihe')");
var clustFeld = new Array("('Select Department','')", "('Other','Other')");
var dfkiFeld = new Array("('Select Department','')", "('Other','Other')");
var externFeld = new Array("('Select Department','')", "('Other','Other')");
var digits = "0123456789ABCDEF";

function convert(src, base_from, base_to) {
  var tmp = 0, factor=1, result = "";
  for(i=src.length-1; i>=0; --i) {
    tmp += digits.indexOf(src.substring(i, i+1))*factor;
    factor *= base_from;
  }
  
  while(tmp>0) {
    result = digits.charAt(tmp % base_to) + result;
    tmp = Math.floor(tmp/base_to);
  }

  return result;  
}

function convert_udscard(field){
  var udscard = field.value;
  var ret;
  if ( udscard.match(/^[0-9A-Z]{8}$/i) ) {
    ret = convert(udscard, 16, 10);
  } else {
    ret = udscard;
  }
  field.value = ret;
}

function noenter(e){
  var key = (window.event) ? event.keyCode : e.which;
  return (key != 13);
} 

function populateLehrstuhl(inForm,selected,sel_ls){
//  alert("Test 3: " + selected + ", " + sel_ls);
  if(inForm.instit.value == ''){
  } else {
//    alert (sel_ls);
  }
  var selectedArray = eval(selected + "Feld");
  var other = true;
  while (selectedArray.length < inForm.ls.options.length) {
    inForm.ls.options[(inForm.ls.options.length - 1)] = null;
  }
  for (var i=0; i < selectedArray.length; i++) {
    eval("inForm.ls.options[i]=" + "new Option" + selectedArray[i]);
//    alert (inForm.ls.options[i].value);
//    alert (eval("inForm.ls.options[i]=" + "new Option" + selectedArray[i]));
    if (inForm.ls.options[i].value == sel_ls){
      inForm.ls.selectedIndex = i;
	  other = false;
    }
  }
  if (other){
    inForm.ls.options[(inForm.ls.options.length-1)]=new Option(sel_ls,sel_ls,true,true);
    inForm.ls.options[inForm.ls.options.length]=new Option('Other','Other');
    inForm.ls.selectedIndex = inForm.ls.options.length - 1;
  }
//  alert("Test 4: " + inForm.ls.selectedIndex);
  if (inForm.institut.options[0].value == '') {
    inForm.institut.options[0]= null;
//	window.history.go(0);
    if ( navigator.appName == 'Netscape') {
      if (parseInt(navigator.appVersion) < 4) {
        window.history.go(0);
      } else {
//        if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
//          window.history.go(0);
//        }
      }
    }
//    if ( navigator.appName == 'Microsoft Internet Explorer') {
//      window.history.go(0);
//    }
  }
}

function initInstLS(inForm,sel_ls){
  if (inForm.instit.value == ''){
  } else {
    var i=0;
//	alert("Test 1: " + i);
    while (inForm.institut.options[i].value != inForm.instit.value) {
//	  alert("Test 2: " + inForm.institut.options[i].value + ", " + i);
      i++;
    }
    inForm.institut.options[i].selected = true;
//	alert (sel_ls);
    populateLehrstuhl(inForm,inForm.institut.options[i].value,sel_ls);
  }
}

function populateOther(inForm,selected) {
  if (selected == 'Other') {
    newCountry = "";
    while (newCountry == ""){
      newCountry=prompt ("Bitte geben Sie einen anderen Lehrstuhl an.", "");
    }
    if (newCountry != null) {
      inForm.ls.options[(inForm.ls.options.length-1)]=new Option(newCountry,newCountry,true,true);
      inForm.ls.options[inForm.ls.options.length]=new Option('Other, not listed','Other');
    }
  }
  if(inForm.ls.options[0].text == 'Select Department') {
    inForm.ls.options[0]= null;
  }
}


function init() {
  if ( navigator.appName == 'Microsoft Internet Explorer') {
//    alert('Dieses Formular funktioniert nicht mit dem MSIE! This page does not work with MSIE');
    document.forms[0].browser.value = "MSIE";
  }
//  document.forms[0].instit.focus();
  document.forms[0].zugangsnr.focus();
}

function testName(){
  var value;
  if (document.forms[0].name.value == "") {
    value = prompt("Bitte geben Sie einen Nachname ein!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].name.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testVorname(){
  var value;
  if (document.forms[0].vorname.value == "") {
    value = prompt("Bitte geben Sie einen Vorname ein!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].vorname.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testTelefon(){
  if (document.forms[0].tel_priv.value == "" && document.forms[0].tel_mobil.value == ""
      && document.forms[0].tel_dienstl.value == ""){
    alert("Bitte geben Sie die private, dienstliche oder mobile Telefonnummer an!");
    return false;
  } else {
    return true;
  }
}

function test_stud_Telefon(){
  if (document.forms[0].tel_priv.value == "" && document.forms[0].tel_mobil.value == ""){
    alert("Bitte geben Sie die private oder mobile Telefonnummer an!");
    return false;
  } else {
    return true;
  }
}


function testInstitutLS(){
  if (document.forms[0].institut.value == "" || document.forms[0].ls.value == ""){
    if (document.forms[0].institut.value == "nacht"){
      return true;
    }
    alert("Bitte w&auml;hlen Sie ein Institut und ein Lehrstuhl aus!");
    alert(document.forms[0].institut.value);
    alert(document.forms[0].ls.value);
    return false;
  } else {
    return true;
  }
}

function testEmail(){
  var value;
  if (document.forms[0].email.value == "") {
    value = prompt("Bitte geben Sie eine E-Mail-Adresse ein!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].email.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testCard(){
  var value;
  if (document.forms[0].zugangsnr.value == "") {
    value = prompt("Bitte geben Sie eine Code-Kartennummer ein!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].zugangsnr.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testGroupCard(){
  str = document.forms[0].zugangsnr.value;
  re = /^0*/g;
  newstr = str.replace(re, "");
  var gc_array = new Array("4507", "4508");
  for(i=0;i<gc_array.length;i++){
    if (newstr == gc_array[i]){
      alert("Zugangskartennummer Informatik:\nEs k&ouml;nnen keine Gruppenkarten akzeptiert werden!");
      return false;
    } else {
    }
  }
  return true;
}

function testAusleihgrund(){
  if (document.forms[0].typ.value == ""){
    alert("Bitte w&auml;hlen Sie einen Ausleihgrund aus!");
    return false;
  } else {
    return true;
  }
}

function testAusleihdauer(){
  var value;
  if (document.forms[0].ausleihdauer.value == "") {
    value = prompt("Bitte geben Sie maximale Dauer einer Ausleihe in Tagen an!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].ausleihdauer.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testBuchanz(){
  var value;
  if (document.forms[0].buchanz.value == "") {
    value = prompt("Bitte geben Sie die maximale Zahl der ausgeliehenen B&uuml;cher an!");
    if (value == "") {
      return false;
    } else {
      document.forms[0].buchanz.value = value;
      return true;
    }
  } else {
    return true;
  }
}

function testvalues(){

  if (testName() && testVorname() && testEmail()
      && testInstitutLS() && testAusleihgrund() && testTelefon()
      && CheckDatum('vV', 'Vertragslaufzeit von') && CheckDatum('bV', 'Vertragslaufzeit bis')
      && CheckDatum('ab', 'Abgabedatum') && testGroupCard()){
    return true;
  } else {
    return false;
  }
}

function test_stud_values(){

  if (testName() && testVorname() && testEmail()
      && test_stud_Telefon() && testGroupCard()){
    return true;
  } else {
    return false;
  }
}

function CheckSuche(){
  if (document.titelaufn.isbn.value == "" && document.titelaufn.autorstr.value == ""
      && document.titelaufn.hrsgstr.value == "" && document.titelaufn.titel.value == ""){
    alert("Zum Suchen bitte Autor und Titel\n oder ISBN eingeben");
        return false;
  }
  return true;
}

function CheckSpeichern(){
  if (document.titelaufn.isbn.value == "" && document.titelaufn.autorstr.value == ""
      && document.titelaufn.hrsgstr.value == "" && document.titelaufn.titel.value == ""){
    alert("Zum Speichern bitte Autor und Titel\n oder ISBN eingeben");
        return false;
  }
  return true;
}

function var2number(str){
  var newstr = "";
  re = /[^0-9]/g;
  newstr = str.replace(re, "");
  return newstr;
}


function CheckDatum(dat, feld){
  tag= dat + "tag";
  monat= dat + "monat";
  jahr= dat + "jahr";
  daterr = false;
  ttag = eval("document.forms[0]." + tag + ".value");
  tmonat = eval("document.forms[0]." + monat + ".value");
  tjahr = eval("document.forms[0]." + jahr + ".value;");
  if (ttag == "" && tmonat == "" && tjahr == ""){
    return true;
  }
  ttag = var2number(ttag);
  tmonat = var2number(tmonat);
  tjahr = var2number(tjahr);
  if (tjahr < 100){
    if (tjahr < 50){
      tjahr = 20 + tjahr;
    } else {
      tjahr = 19 + tjahr;
    }
  }
  if (tmonat < 1 || tmonat > 12){
    daterr = true;
  }
  if (ttag < 1) {
    daterr = true;
  }
  if (tjahr % 4 != 0 && tmonat == 2 && ttag > 28){
    daterr = true;
  }
  if (tmonat == 1 || tmonat == 3 || tmonat == 5 || tmonat == 7 || tmonat == 8 || tmonat == 10 || tmonat == 12){
    if (ttag > 31) {
      daterr = true;
    }
  } else {
    if (tmonat == 2 && ttag > 29){
      daterr = true;
    }
    if (ttag > 30) {
      daterr = true;
    }
  }
  if (daterr) {
    datum = prompt("Das angegebene Datum (" + feld + "): " + ttag + "." + tmonat + "." + tjahr + " ist ung&uuml;ltig\n" +
                   "Bitte geben Sie ein neues Datum (tt.mm.JJJJ) an!");
    if (datum == ""){
      ttag = "";
      tmonat = "";
      tjahr = "";
    } else {
      regexp = new RegExp("\\D", "g");
      da = datum.split(regexp);
      ttag = da[0];
      tmonat = da[1];
      tjahr = da[2];
    }
  } else {
  }
    eval("document.forms[0]." + tag + ".value = " + ttag);
    eval("document.forms[0]." + monat + ".value = " + tmonat);
    eval("document.forms[0]." + jahr + ".value = " + tjahr);
    return(true);
}


// :::: script formular-mudul M2 lÃ¤nderauswahl ende ::::

// End -->


