self.focus();

/* Parameter setzen */
if(document.buchung) {

// das erste Jahr in *ALLEN* Ankunftsjahr-Auswahllisten der Onlinebuchung
// (normale und Komfortsuche de/en, alle internationalen Buchungen)
 var jahresindex = 2010;

 FM = document.buchung;
 var monatslaengen = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 var antag=0, anmonat=0, anjahr=0, abtag=0, abmonat=0, abjahr=0, absantag=0, absantagbackup=0, absabtag=0, uebernachtungen=0, anwochentag=0, abwochentag=0, uhrzeit=0, dum=0, dof=0, personenzahlaenderung=0, zielgebiete = new Array(), plural = new Array(0,0,0,0,0,0);

 var sprache = FM.sprache ? FM.sprache.value : "deutsch";
 var Wochentag = new Array(7), Monate = new Array(12), hotelwahl = '', hotelwahl2 = '';
 switch (sprache) {
  case "deutsch":
   Wochentag = ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Sonnabend"];
   Monate = ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
   hotelwahl = "Gesucht wird nach Zimmern in ";
   hotelwahl2 = "Bitte w\u00E4hlen Sie An- und Abreisedatum und klicken Sie auf \"Hotelangebote anzeigen\"!";
   break;
  case "english":
   Wochentag = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
   Monate = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
   hotelwahl = "Searching for rooms in ";
   hotelwahl2 = "Please select the dates of arrival and departure and click \"Show Hotel List\"!";
   break;
  case "espanol":
   Wochentag = ["Domingo", "Lunes", "Martes", "Miercules", "Jueves", "Viernes", "Sabado"];
   Monate = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Augusto", "Septiembre", "Octubre", "Noviembre", "Deciembre"];
   hotelwahl = "Searching for rooms in ";
   hotelwahl2 = "Please select the dates of arrival and departure and click \"Show Hotel List\"!";
   break;
  case "italiano":
   Wochentag = ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"];
   Monate = ["Gennaio", "Febbraio", "Marzo", "Avril", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
   hotelwahl = "Cercando di camere in ";
   hotelwahl2 = "Please select the dates of arrival and departure and click \"Show Hotel List\"!";
   break;
  case "francais":
   Wochentag = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];
   Monate = ["Janvier", "F\u00E9vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao\u00FBt", "Septembre", "Octobre", "Novembre", "D\u00E9cembre"];
   hotelwahl = "On cherche des chambres \u00E0 ";
   hotelwahl2 = "Please select the dates of arrival and departure and click \"Show Hotel List\"!";
   break;
 }

 if (!serverdatum || !serverdatum.match(/\d/)) {
  jsdatum=new Date();
  jstag=String(jsdatum.getDate());
  jsmonat=String(jsdatum.getMonth()+1);
  jsjahr=String(jsdatum.getFullYear());
  jswochentag=String(jsdatum.getDay());
  jsstunde=String(jsdatum.getHours());
  jsminute=String(jsdatum.getMinutes());
  if(jstag.length<2) {jstag="0"+jstag;}
  if(jsmonat.length<2) {jsmonat="0"+jsmonat;}
  if(jsstunde.length<2) {jsstunde="0"+jsstunde;}
  if(jsminute.length<2) {jsminute="0"+jsminute;}
  var serverdatum = jstag+jsmonat+jsjahr+jswochentag+","+jsstunde+jsminute;
 }
 jahr = parseInt(serverdatum.substr(4,4))-2000;
 jahresindex -= 2000;
 dof = (serverdatum.substr(2,1)=="0") ? 3: 2;
 monat = parseInt(serverdatum.substring(dof,4));
}

// Weg damit!!
function bezirksinfo(bezirk) {
 fenster('bezirke', bezirk, '');
}


/* Hilfe */

function hilfe1(sprache) {
 if (sprache=="deutsch") {
  text = "Kleine Hilfe zum Einstellen des Reisetermins\n\nBeim Einstellen Ihres Reisetermins k\u00F6nnen Sie nur die Auswahllisten ver\u00E4ndern, die durch den kleinen Pfeil rechts gekennzeichnet sind. Alles andere wird automatisch ausgef\u00FCllt.\n1. Zeile: Tragen Sie bitte den Termin Ihrer Ankunft in Berlin ein. Voreingestellt ist das Datum von heute. Beginnen Sie mit dem Jahr, w\u00E4hlen Sie den richtigen Monat aus und tragen Sie schlie\u00DFlich den Monatstag ein. Der Wochentag errechnet sich automatisch; Sie k\u00F6nnen hier keine \u00C4nderungen vornehmen.\n2. und 3. Zeile: Nun haben Sie die Wahl: W\u00E4hlen Sie entweder aus, wieviele N\u00E4chte Sie in Berlin bleiben wollen (maximal k\u00F6nnen 31 N\u00E4chte gebucht werden, voreingestellt ist eine \u00DCbernachtung) oder tragen Sie den Termin Ihrer Abreise in der dritten Zeile ein. Hier m\u00FCssen Sie nur den Monatstag ausw\u00E4hlen - Monat, Jahr und Wochentag werden wieder automatisch berechnet.";
 } else {
  text = "Little Help for Setting the Travel Date\n\nWhen setting the travel date you can only change the selection lists which are signified by a small arrow on the right. Everything else is filled out automatically.\n1st line: Please insert the date of your arrival in Berlin. Preset is today's date. Start with the year, select the fitting month and finally choose the day of month. The weekday is calculated automatically; you cannot change anything there.\n2nd and 3rd line: Now you can choose: Either select how many nights you would like to stay in Berlin (up to a maximum of 31 nights, preset is one night) or insert the date of your departure in the third line. Here you only have to select the day of month - month, year and weekday are calculated automatically again.";
 }
 alert(text);
}

function hilfe2(sprache) {
 if (sprache=="deutsch") {
  text="Kleine Hilfe zum Einstellen des Zimmertyps\n\nW\u00E4hlen Sie mit Hilfe der Auswahllisten (gekennzeichnet durch den kleinen Pfeil) Personen- und Zimmerzahl. Zus\u00E4tzlich k\u00F6nnen Sie einen Zimmertyp vorgeben, also ob es sich z.B. um ein Einzelzimmer oder eine Hotelsuite handeln soll. Der Zimmertyp muss nicht zur Zahl der G\u00E4ste passen, da etwa Doppelzimmer oft auch an einzelne G\u00E4ste vermietet werden. Wenn Sie keinen Zimmertyp einstellen, wird in allen Zimmertypen gesucht.\nDerzeit ist es nur m\u00F6glich, einen Zimmertyp auszuw\u00E4hlen. Ben\u00F6tigen Sie Zimmer von verschiedener Art (z.B. ein Einzel- und ein Doppelzimmer), wiederholen Sie bitte den Buchungsvorgang.\nReisegruppen mit mehr als neun Personen beachten bitte unsere speziellen Angebote f\u00FCr Gruppen.";
 } else {
  text = "Little Help for Setting the Type of Room\n\nChoose the number of persons and rooms with help of the selection lists, signified by the small arrow. You might want to specify a certain type of room (for example single room or hotel suite). The room type does not need to fit the number of guests because e.g. double rooms are often rented by single guests. If you do not select a room type we will search in all types of rooms.\n\u00B7 It is only possible to select one type of room. If you need different types of rooms (e.g. one single and one double room), repeat the booking procedure.\nTravel groups with more than nine persons please take account of our special offers for groups.";
 }
 alert(text);
}

function hilfe3(sprache) {
 if (sprache=="deutsch") {
  text="Kleine Hilfe zur Zimmerauswahl\n\nN\u00E4here Informationen zu den einzelnen Zimmern erhalten Sie, wenn Sie in der Liste auf das betreffende Hotel bzw. Pension (linke Spalte) klicken. Ein Klick auf die zweite Spalte (\u00ABLage\u00BB) gibt Auskunft \u00FCber den Stadtteil. Haben Sie das passende Zimmer gefunden, dr\u00FCcken Sie bitte auf \u00ABBuchen\u00BB\; wenn das Richtige nicht dabei war, versuchen Sie es mit einem Klick auf \u00ABWeitere Treffer\u00BB am Fu\u00DF der Tabelle - oder gehen Sie eine Seite zur\u00FCck, um die Sucheingabe zu \u00E4ndern.";
 } else {
  text="Little help in selecting a room\n\nGet informed about a special hotel or guesthouse room when clicking on the related item on the list \(left column\). A click on the second column (\u00ABLocation\u00BB\) provides information about the city district. If you have found the right room, simply press \"book\"\; if you haven\'t, try a click on \"More hits\" on foot of the table - or jump back one page to change the search input.";
 }
 alert(text);
}

function hilfe4(sprache) {
 if(FM.keine_Kreditkarte.checked) {
  if (sprache=="deutsch") {
   text="Sie haben keine Kreditkarte?\n\nGerne erm\u00F6glichen wir auch Ihnen die online-Zimmerreservierung. Der Buchungsvorgang erfolgt allerdings zeitlich verz\u00F6gert in Absprache\nmit dem Hotel bzw. der Pension, so dass wir nicht in jedem Fall gew\u00E4hrleisten k\u00F6nnen, dass das gew\u00FCnschte Zimmer noch verf\u00FCgbar ist.\nWir behaltenuns vor, f\u00FCr Sie ein gleichwertiges anderes Zimmer zu buchen.";
  } else {
   text="You are not in possession of a credit card?\n\nIn this case, we also like to enable you the online reservation. Please note that the reservation is delayed because of the necessity of an arrangement with the hotel or guest house. Therefore we can\'t guarantee the availability of the chosen room and reserve the right of booking for you another equal room.";
  }
  alert(text);
 }
}

function hilfe5(sprache) {
 if (sprache=="deutsch") {
  text="Kleine Hilfe zur Zimmerauswahl\n\nN\u00E4here Informationen zu den einzelnen Zimmern erhalten Sie, wenn Sie in der Liste auf das betreffende Hotel bzw. Pension (linke Spalte) klicken. Ein Klick auf die zweite Spalte (\u00ABLage\u00BB) gibt Auskunft \u00FCber den Stadtteil. Haben Sie das passende Zimmer gefunden, dr\u00FCcken Sie bitte auf \u00ABBuchen\u00BB\; wenn das Richtige nicht dabei war, versuchen Sie es mit einem Klick auf \u00ABWeitere Treffer\u00BB am Fu\u00DF der Tabelle - oder gehen Sie eine Seite zur\u00FCck, um die Sucheingabe zu \u00E4ndern.";
 } else {
  text="Little help in selecting a room\n\nGet informed about a special hotel or guesthouse room when clicking on the related item on the list \(left column\). A click on the second column (\u00ABLocation\u00BB\) provides information about the city district. If you have found the right room, simply press \"book\"\; if you haven\'t, try a click on \"More hits\" on foot of the table - or jump back one page to change the search input.";
 }
 alert(text);
}

function bestpreis(sprache) {
 if (sprache=="deutsch") {
  text="BEST-PREIS-GARANTIE\n\nFinden Sie das von Ihnen gebuchte Zimmerangebot innerhalb von 48 Stunden nachweislich irgendwo g\u00FCnstiger, dann wird Ihnen die Preisdifferenz erstattet.";
 } else {
  text="BEST-PRICE-GUARANTEE\n\nIf you can show us within 48 hours that the exact room arrangement that you have booked is available at a lower rate elsewhere, the price difference will be refunded.";
 }
 alert(text);
}






// schliesst geoeffnete Fenster nach onUnload
function fensterschliessen() {
 if(window.F) {F.close();}
}

// Formulareingaben pruefen
function eingabepruefung(sprache) {
 if (sprache=="deutsch") {
  var eingabe = "Bitte geben Sie Ihr";
  var auswahl = "Bitte w\u00E4hlen Sie";
  var feld01 = auswahl+" eine Anrede aus!";
  var feld02 = eingabe+"en Vornamen ein!";
  var feld03 = eingabe+"en Nachnamen ein!";
  var feld04 = eingabe+"e E-Mail-Adresse ein!";
  var feld05 = eingabe+"e Telefonnummer ein!";
  var feld06 = eingabe+"e Stra\u00DFe und Hausnummer ein!";
  var feld07 = eingabe+"e Postleitzahl ein!";
  var feld08 = eingabe+"en Ort ein!";
  var feld09 = auswahl+" ein Kreditkarteninstitut aus!";
  var feld10 = eingabe+"e Kreditkartennummer ein!";
  var feld11 = "Ihre Kreditkarte ist abgelaufen!";
 }
 else {
  var eingabe = "Please insert your";
  var auswahl = "Please select your";
  var feld01 = auswahl+" gender!";
  var feld02 = eingabe+" first name!";
  var feld03 = eingabe+" last name!";
  var feld04 = eingabe+" e-mail address!";
  var feld05 = eingabe+" telephone number!";
  var feld06 = eingabe+" street and number!";
  var feld07 = eingabe+" zip code!";
  var feld08 = eingabe+" city!";
  var feld09 = auswahl+" credit card institute!";
  var feld10 = eingabe+" credit card number!";
  var feld11 = "Your credit card has expired!";
 }

 if((FM.vorname.value=="")||(FM.vorname.value.search(/\d/)>=0)) {
  alert(feld02);
  FM.vorname.focus();
  return false;
 }
 if((FM.nachname.value=="")||(FM.nachname.value.search(/\d/)>=0)) {
  alert(feld03);
  FM.nachname.focus();
  return false;
 }
 if(FM.email.value.search(/[a-zA-Z0-9\-\_]+\@[a-zA-Z0-9\-]{2,}\.[a-zA-Z]{2,}/)<0) {
  alert(feld04);
  FM.email.focus();
  return false;
 }
 if((FM.telefon.value.length<5)||(FM.telefon.value.search(/[0-9]+/)<0)) {
  alert(feld05);
  FM.telefon.focus();
  return false;
 }
 if(FM.strasse.value.search(/\w{3,}/)<0) {
  alert(feld06);
  FM.strasse.focus();
  return false;
 }
 if((FM.plz.value.search(/[a-zA-Z0-9\-\s]./)<0)) {
  alert(feld07);
  FM.plz.focus();
  return false;
 }
 if((FM.ort.value.search(/[a-zA-Z0-9\-\.\s]./)<0)) {
  alert(feld08);
  FM.ort.focus();
  return false;
 }
 if(FM.keine_Kreditkarte.checked==false) {
  if(FM.kreditkarteninstitut.selectedIndex==0) {
   alert(feld09);
   FM.kreditkarteninstitut.focus();
   return false;
  }
  if(FM.kreditkartennummer.value.search(/[a-zA-Z0-9\-\.\s\_]{4,}/)<0) {
   alert(feld10);
   FM.kreditkartennummer.focus();
   return false;
  }
  else {
   FM.kreditkartennummer.value=FM.kreditkartennummer.value.replace(/[\s+\-]/g,"");
  }
 }
}

/* JETZT WIRDS ERNST! */

/* Auslesen von Flash */
   function auswahl(liste) {
 var gefunden;
 for (i=0; i<=zielgebiete.length; i++) {
  if (zielgebiete[i] == liste) {
   gefunden = 1;
   zielgebiete.splice(i, 1);
   break;
  }
 }
 if (!gefunden) {
//  zielgebiete[zielgebiete.length+1]=liste;
  zielgebiete.push(liste);
 }
}

/* alle Ausstattungsmerkmale abwaehlen */
   function zuruecksetzen() {
    anzahl = FM.length;
    for (i=0; i<anzahl; i++) {
     if(FM.elements[i].type=="checkbox") {
      FM.elements[i].checked = false;
     }
    }
   }

/* liest uebergebene Parameter aus */
// TO DO:
// - Uebergebenes Datum kann veraendert werden (soll also nicht mehr var serverdatum ersetzen)
// - unsinnige Uebergabeparameter werden abgeblockt (Abgleich mit var serverdatum)
function einlesen() {
 if (location.href.indexOf("?")>1) {
  Adr = location.href.split("?", 2);
  alleparameter = Adr[1].split("&");

  for(i=0;i<alleparameter.length;i++) {
   parameter=alleparameter[i].split("=");
   switch(parameter[0]) {
    case "Abreisejahr" : abjahr=parseInt(parameter[1])-2000; break;
    case "Abreisemonat" : abmonat=parameter[1]-1; break;
    case "Abreisetag" : abtag=parseInt(parameter[1])-1; break;
    case "Ankunftsjahr" : anjahr=parseInt(parameter[1])-2000; break;
    case "Ankunftsmonat" : anmonat=parseInt(parameter[1])-1; break;
    case "Ankunftstag" : antag=parseInt(parameter[1])-1; break;
    case "auftragskennung" : FM.auftragskennung.value=parameter[1]; break;
    case "Hotelname" : var hotelname=parameter[1]; break;
    case "LTCode" : FM.LTCode.value=parameter[1]; break;
    case "Personenzahl" : FM.Personenzahl.selectedIndex=parameter[1]-1; break;
    case "Uebernachtungen" : uebernachtungen=Number(parameter[1]); FM.Uebernachtungen.selectedIndex=parameter[1]-1; break;
//    case "Zimmertyp" : FM.Zimmertyp.selectedIndex=(parameter[1]=="Einzelzimmer")?0:1; break;
    case "Zimmerzahl" : FM.Zimmerzahl.selectedIndex=parameter[1]-1; break;
   }
  }
  if(i>2) {
// Parameter wurden uebergeben
   absantagbackup=0;
   differenz();
   absantagbackup=absantag;
   anwochentag=(absantag-211)%7;
   abwochentag=(absabtag-211)%7;
   ausgabe();
//   zimmer('anzahl_zimmer');
  } else {
// Nur 1 oder 2 Parameter wurden uebergeben
   if (hotelname) {
    text = hotelwahl + unescape(hotelname) + ". " + hotelwahl2;
    alert(text);
   }
   datumlesen();
  }
 } else {
  datumlesen();
 }
}

/* liest das Serverdatum aus */
function datumlesen() {
// if(FM.auftragskennung.value.indexOf(".")>=0) {
//  FM.auftragskennung.value = (FM.auftragskennung.value.indexOf("berlin.de")>=0) ? "berlin.de" : "btm";
// }
 uhrzeit=parseInt(serverdatum.substr(serverdatum.indexOf(",")+1,4));
 abjahr=jahr;
 abmonat=monat-1;
 anmonat=abmonat;
 dof = (serverdatum.substr(0,1)=="0") ? 1: 0;
 abtag=parseInt(serverdatum.substring(dof,2));
 if(uhrzeit>1500) {abtag++;}
 antag=abtag-1;
 if((antag>=30)&&(anmonat>=11)) {anjahr=abjahr-1;} else {anjahr=abjahr;}
 absantagbackup=0;
 differenz();
 absantagbackup=absantag;
 anwochentag=(absantag-212)%7;
 abwochentag=(absabtag-212)%7;
 rueckrechnung();
 ausgabe();
}

/* liest Benutzereingaben aus */
function eingabe(aenderung) {
 antag=FM.Ankunftstag.selectedIndex;
 anmonat=FM.Ankunftsmonat.selectedIndex;
 anjahr=FM.Ankunftsjahr.selectedIndex + jahresindex; // 26.5.04
 uebernachtungen=FM.Uebernachtungen.selectedIndex+1;
 abtag=FM.Abreisetag.selectedIndex;
 if(aenderung=="abreisedatum") {
  abmonat=anmonat;
  if(abtag<=antag) {abmonat++;};
 }
 differenz(aenderung);
 rueckrechnung();
 ausgabe();
}

/* berechnet den An- und Abreisetag relativ zum 1.1.2000 */
function differenz(aenderung) {
// 1.1.2000 = 1, nach Vollendung eines Schaltjahres wird ein Tag dazugezaehlt
 absantag=parseInt(anjahr*365.25+0.75);
 absantag=(absantag<1)?1:absantag;
 monatslaengen[1]=(anjahr%4==0 && anjahr%100>0)? 29 : 28;
 for(i=0; anmonat>i; i++) {
  absantag+=monatslaengen[i];
 }
 absantag+=antag;
 if(aenderung!=uebernachtungen) {
  if(absantag<absantagbackup) { //unzulaessiges Datum
   absantag=absantagbackup;
   absabtag=absantag+1;
  } else {
   absabtag=parseInt(abjahr*365.25+0.75);
   absabtag=(absabtag<1)?1:absabtag;
   for(i=0; abmonat>i; i++) {
    absabtag+=monatslaengen[i];
   }
   absabtag+=abtag;
  }
 } else {
  absabtag=absantag+uebernachtungen;
 }
//Pruefung
 if(uebernachtungen<1 || uebernachtungen>31 || absabtag<=absantag) {
  absabtag=absantag+1;
  uebernachtungen=1;
 }
 if (absantag+uebernachtungen!=absabtag) {
  if (aenderung=='abreisedatum') {
   uebernachtungen=absabtag-absantag;
//   absantag=absabtag-uebernachtungen; // Alternative
  } else {
   absabtag=absantag+uebernachtungen;
  }
 }
}

/* rechnet den An- und Abreisetag relativ zum 1.1.2000 auf das tatsaechliche Datum zurueck */
function rueckrechnung() {
//Anreisetag
 anwochentag=(absantag+6)%7;
 jahrestage=365; // fuer Jahr 0 (= 2000)
 for(anjahr=0; absantag>jahrestage; anjahr++) {
  jahrestage=(anjahr%4==0 && anjahr%100>0) ? 366 : 365;
  if (absantag==366 && jahrestage==366) break; // Sonderfall 31.12.2004
  absantag-=jahrestage;
 }
 monatslaengen[1]=(anjahr%4==0 && anjahr%100>0) ? 29 : 28;
 for(anmonat=0; absantag>monatslaengen[anmonat]; anmonat++) {
  absantag-=monatslaengen[anmonat];
 }
 antag=absantag-1;
//Abreisetag
 abwochentag=(absabtag+6)%7;
 jahrestage=365; // fuer Jahr 0 (= 2000)
 for(abjahr=0; absabtag>jahrestage; abjahr++) {
  jahrestage=(abjahr%4==0 && abjahr%100>0) ? 366 : 365;
  if (absabtag==366 && jahrestage==366) break;
  absabtag-=jahrestage;
 }
 monatslaengen[1]=(abjahr%4==0 && abjahr%100>0) ? 29 : 28;
 for(abmonat=0; absabtag>monatslaengen[abmonat]; abmonat++) {
  absabtag-=monatslaengen[abmonat];
 }
 abtag=absabtag-1;
}

/* schreibt die errechneten Werte ins Dokument */
function ausgabe() {
 if(document.all && (navigator.userAgent.search(/Opera/) < 0)) {
  document.all.spananwochentag.innerHTML = Wochentag[anwochentag];
  document.all.spanabwochentag.innerHTML = Wochentag[abwochentag];
  document.all.spanabkalendermonat.innerHTML = Monate[abmonat];
  document.all.spanabkalenderjahr.innerHTML = abjahr+2000;
 }
 else {
  FM.feldanwochentag.value=Wochentag[anwochentag];
  FM.feldabwochentag.value = Wochentag[abwochentag];
  FM.feldabkalendermonat.value = Monate[abmonat];
  FM.feldabkalenderjahr.value = abjahr+2000;
 }
 uebernachtungen--;
 FM.Ankunftstag.selectedIndex=antag;
 FM.Ankunftsmonat.selectedIndex=anmonat;
 FM.Ankunftsjahr.selectedIndex=anjahr - jahresindex; // 26.5.04
 FM.Uebernachtungen.selectedIndex=uebernachtungen;
 FM.Abreisetag.selectedIndex=abtag;
 FM.Abreisemonat.value=abmonat+1;
 FM.Abreisejahr.value=abjahr+2000;
}

/* berechnet Zimmerzahl und Zimmertyp */
/*
function zimmer(aenderung) {
 personenzahl=FM.Personenzahl.selectedIndex+1;
 zimmerzahl=FM.Zimmerzahl.selectedIndex+1;
 zimmertyp=FM.Zimmertyp.selectedIndex+1; // 1 - 4: Einzel- bis Vierbett; 5: Appartement (1-5 P.); 6: Suite (1-3 P.); 7: Mehrbett (5-9 P.)

 if(aenderung=="anzahl_zimmer" || aenderung=="typ_zimmer") {
  if(personenzahlaenderung==1) { // wenn die Zahl der Personen bereits angegeben wurde
   if(aenderung=="anzahl_zimmer") {
    if(personenzahl%zimmerzahl==0 && personenzahl/zimmerzahl<5) { // 1-4 Personen pro Zimmer
     zimmertyp=personenzahl/zimmerzahl;
    } else {
     personenzahlaenderung=0; // ausgewaehlte Zimmerzahl passt nicht zur Personenzahl -> diese aendern
    }
   }
   if(aenderung=="typ_zimmer") {
    if((zimmertyp==5 && personenzahl<6)||(zimmertyp==6 && personenzahl<4)||(zimmertyp==7 && personenzahl>4) && zimmerzahl==1) { // 1 Appartement, Suite, Mehrbettzimmer korrekt belegt
    } else {
     if(personenzahl%zimmertyp==0 && zimmertyp<5) { // 1-4Bettzimmer korrekt belegt
      zimmerzahl=personenzahl/zimmertyp;
     } else {
      personenzahlaenderung=0; // ausgewaehlter Zimmertyp passt nicht zur Personenzahl -> diese aendern
     }
    }
   }
  }
  if(personenzahlaenderung==0) {
   personenzahl=zimmerzahl*zimmertyp;
   while(personenzahl>9 || zimmerzahl>5) {
    zimmerzahl--;
    personenzahl=zimmerzahl*zimmertyp;
   }
   if(zimmertyp==5) {personenzahl=2;}
   if(zimmertyp==6 && personenzahl>3) {personenzahl=2;}
   if(zimmertyp==7 && personenzahl<5) {personenzahl=5;}
  }
 }

 if(aenderung=="anzahl_personen") {
  personenzahlaenderung=1;
  if((zimmertyp==5 && personenzahl<6) || (zimmertyp==6 && personenzahl<4)) {
  } else {
   if(personenzahl%zimmertyp==0 && zimmertyp<5) { //1-4Bettzimmer: Personenzahl und Zimmertyp passen
    zimmerzahl=personenzahl/zimmertyp;
   } else {
    if(personenzahl%zimmerzahl==0 && personenzahl/zimmerzahl<5) { // sonst: Personen- und Zimmerzahl passen, 1-4 Personen pro Zimmer
     zimmertyp=personenzahl/zimmerzahl;
    } else {
     if(personenzahl<5) { // sonst: 1-4 Personen
      if((zimmertyp==6 && personenzahl<4) || (zimmertyp==5 && personenzahl<6)) {
      } else {
       zimmertyp=personenzahl;
      }
     } else { // 5-9 Personen
      zimmertyp=7;
     }
     zimmerzahl=1;
    }
   }
  }
 }

 personenzahl--;
 zimmerzahl--;
 zimmertyp--;
 if(zimmerzahl>0 && plural[zimmertyp]==0) {
  FM.Zimmertyp.options[zimmertyp].text+= (sprache=="english" || zimmertyp == 4) ? "s" : "n";
  plural[zimmertyp]=1;
 }
 if(zimmerzahl==0 && plural[zimmertyp]==1) {
  FM.Zimmertyp.options[zimmertyp].text=FM.Zimmertyp.options[zimmertyp].text.substring(0,FM.Zimmertyp.options[zimmertyp].text.length-1);
  plural[zimmertyp]=0;
 }
 FM.Personenzahl.selectedIndex=personenzahl;
 FM.Zimmerzahl.selectedIndex=zimmerzahl;
 FM.Zimmertyp.selectedIndex=zimmertyp;
}
*/

/* Formular abschicken */
function weiter(aktion) {
 if (FM.sprache.value == "") {FM.sprache.value = "deutsch";}
 if (FM.auftragskennung.value == "") {FM.auftragskennung.value = "btm";}
 var jspurl = 'http://berlin1.btm.de/travel/travellerVacancy.jsp';

 switch (aktion) {
  case 'vakanzenschnellsuche' : URL = jspurl + "?hcitywest=1&hcityost=1&hnorden=1&hsueden=1&hwesten=1&hosten=1&humland=1&"; break;
  case 'optionen' : URL = FM.sprache.value.substr(0,1) + "_uk_komfortsuche.html?"; break;
  case 'vakanzen' : URL = ''; break;
 }

 if (aktion == "vakanzenschnellsuche" || aktion == "optionen") {
  var zimmerzahl = FM.zimmer.options[FM.zimmer.selectedIndex].value.substring(0,1);
  var zimmertyp = parseInt(FM.zimmer.options[FM.zimmer.selectedIndex].value.substr(1,1));
  var personenzahl = zimmerzahl * zimmertyp;
  zimmertyp = (zimmertyp==1) ? "Einzelzimmer" : "Doppelzimmer";
  parameter = "sprache=" + FM.sprache.value + "&auftragskennung=" + FM.auftragskennung.value + "&LTCode=" + FM.LTCode.value + "&Ankunftstag=" + (FM.Ankunftstag.selectedIndex + 1) + "&Ankunftsmonat=" + (FM.Ankunftsmonat.selectedIndex +1) + "&Ankunftsjahr=" + (FM.Ankunftsjahr.selectedIndex + 2000 + jahresindex) + "&Uebernachtungen=" + (FM.Uebernachtungen.selectedIndex + 1) + "&Abreisetag=" + (FM.Abreisetag.selectedIndex + 1) + "&Abreisemonat=" + (abmonat + 1) + "&Abreisejahr=" + (abjahr + 2000) + "&Zimmerzahl=" + zimmerzahl + "&Personenzahl=" + personenzahl; // 26.5.04

// 03.04.2006 - Abfrage Sanitaerausstattung / Dusche, Bad und WC im Zimmer (Standard, ausser bei Hotelliste A-Z)
 var sanitaerausstattung = "&sanitarySelected=true";
 if(document.getElementsByName("hotelliste") != null) {
  var hotelliste = FM.hotelliste.value;
 }
 else var hotelliste = "false";
 if (hotelliste == "false") {
  parameter += sanitaerausstattung;
 }
// Ende Abfrage nach Sanitaerausstattung

  URL += parameter;
//  alert(parameter);
  if (aktion == "optionen") {
   location.href=URL;
  } else {
   F = window.open(URL, "buchung", "height=600,width=800,scrollbars,resizable=yes");
  }
 }

 if (aktion == "vakanzen") {
  if(FM.feldanwochentag) {
   FM.feldanwochentag.value="";
   FM.feldabwochentag.value="";
   FM.feldabkalendermonat.value="";
   FM.feldabkalenderjahr.value="";
  }
  if(zielgebiete.length==0) {
   zielgebiete=new Array("hcitywest","hcityost","hnorden","hsueden","hosten","hwesten","humland");
  }
  for(i=0; i<zielgebiete.length; i++) {
   if (zielgebiete[i] == undefined) {continue;}
   eval ('FM.' + zielgebiete[i] + '.value = 1');
  }
/*  var variablen=""; for (i=0; i<FM.length; i++) {variablen+=(FM.elements[i].name+"="+FM.elements[i].value+" ");} alert(variablen);*/
//  alert(zielgebiete);
  F = window.open(URL, "buchung", "height=600,width=800,scrollbars,resizable=yes");
 }
}

// errechnet fuer das Kreditkartenverfallsdatum eine sinnvolle Voreinstellung
function kreditkartenvoreinstellung() {
 FM=document.buchung;
 var jsdatum=new Date();
 var verfallsmonat=jsdatum.getMonth()+6;
 var verfallsjahr=jsdatum.getFullYear()-2002;
 if(verfallsmonat>11) {verfallsmonat-=12; verfallsjahr++;}
 FM.kreditkartenverfallsmonat.selectedIndex=verfallsmonat;
 FM.kreditkartenverfallsjahr.selectedIndex=verfallsjahr;
}

// fuer Vakanzsortierung
function auslesen() {
 Krits = new Array (1, 1, 3, 6, 4);
 var locerg = '&downwards=';

 var ref = document.location.href;
 if (ref.indexOf('sort') > 0) {
  var p = ref.slice(ref.indexOf('&by=')+4);
  var Paras = p.split(locerg, 2);
  Z = document.Sortierung;
  for (i=1; i<Krits.length; i++) {
   if (Krits[i] == Paras[0]) {
    Z.Kriterium.selectedIndex = i;
    Z.Absteigend.checked = (Paras[1] == 'true') ? true : false;
    break;
   }
  }
 }
}

// fuer Vakanzsortierung
function sortieren() {
 var loc = '../servlet/ActionController?action=vacancy&subaction=sort&by=';
 var locerg = '&downwards=';
 Z = document.Sortierung;
 var krit = Krits[Z.Kriterium.selectedIndex];
 var reih = (Z.Absteigend.checked) ? 'true' : 'false';
 document.location.href = loc + krit + locerg + reih;
}

// Bild fuer Warteseite
function zufallsbild(sprache) {
 Bilder = new Array(
 'sightseeing-am-reichstag',
 'currywurst',
 'wintergarten',
 'shopping',
 'hiflyer',
 'buddybaerenkarte',
 'infostelle',
 'callcenter',
 'anreise-mit-der-bahn',
 'best-preis',
 'fussball'
 );

 zufall = Math.floor(Math.random() * Bilder.length);
 if (!sprache) return 1;
 if (sprache == 'de') {
  Texte = new Array (
   'Gehen Sie auf virtuelle Sightseeingtour - unter der Rubrik <b>Sehensw&uuml;rdigkeiten</b> sehen Sie die sch&ouml;nsten Seiten Berlins schon jetzt.',
   'Probieren Sie die Spezialit&auml;t der <b>Berliner K&uuml;che</b> - die Currywurst. Wir verraten Ihnen die besten Imbissst&auml;nde der Stadt.',
   'In unserer <b>Veranstaltungsdatenbank</b> finden Sie das komplette Berlinprogramm von A wie Abendgala bis Z wie Zirkus. Und f&uuml;r viele Veranstaltungen k&ouml;nnen Sie die Tickets gleich online bestellen.',
   'Mehr Zeit f&uuml;r den Einkaufsbummel: fast alle Gesch&auml;fte in den gro&szlig;en Einkaufszentren haben Montag - Samstag bis 20 Uhr ge&ouml;ffnet - und mit unseren <b>Shopping</b>-Tipps finden Sie die besten Adressen.',
   'Entdecken Sie <b>Berlin einmal anders</b> - an Bord eines Ausflugsdampfers oder aus luftiger H&ouml;he eines Ballons erleben Sie Berlin aus einer anderen Perspektive.',
   'Verschicken Sie einen pers&ouml;nlichen Berlin-Gru&szlig; - unsere <b>E-Cards</b> machen Freude!',
   'Aktuelle Informationen und Buchungsangebote f&uuml;r Ihren Berlin-Aufenthalt bekommen Sie auch vor Ort in unseren <b>BERLIN Infostores</b>.',
   'Fragen Sie uns - die freundlichen Mitarbeiter unseres <b>telefonischen Service-Centers</b> beraten Sie gern bei Ihrer Buchung von Unterk&uuml;nften und Veranstaltungstickets. <b>Tel: 030-25 00 25</b>',
   'Buchen Sie Ihre Anreise mit der Bahn zusammen mit einer Berlin-&Uuml;bernachtung und profitieren Sie von den besonders g&uuml;nstigen Konditionen des <b>RIT-Tarifs</b> (Rail Inclusive Tours).',
   'Nirgends buchen Sie g&uuml;nstiger als bei uns. Wir bieten 400 Hotels und Pensionen mit <b>Best-Preis-Garantie</b>.',
   '<b>Berlin im WM-Fieber</b> - Entdecken Sie die faszinierende Sportmetropole Berlin und das neue Olympiastadion.'
  );
 } else {
  Texte = new Array (
   'You travel to Berlin with children? Get a full-blown <b>Berlin package</b> with accommodation, WelcomeCard and sightseeing programme for the whole family.',
   'Go sightseeing virtually - see the most beautiful vistas of Berlin on our <b>Sightseeing pages</b> by now!',
   'Check the delicacy of <b>Berlin\'s cuisine</b>, the curry sausage. We give away the city\'s best snack booths.',
   'Concerts, vaudeville, parties, shows ... Find the complete Berlin programme in our <b>Event Calendar</b> - with online reservation for many tickets.',
   'More time for shopping: most downtown shops are open until 8 p.m. (Mon&ndash;Sat) - check out the best addresses with our <b>Shopping</b> tips.',
   'Discover <b>Berlin from another side</b>: for example from a steamer\'s deck or a balloon.',
   'Send personal greetings to your dear ones - have fun with our <b>E-cards</b>.',
   'Get all information about your stay in Berlin on site in our <b>Tourist Info Centres</b> - and a cup of coffee in the Tourist Info Caf&eacute; at the Fernsehturm.',
   'Ask us - the friendly team of our <b>Service centre</b> like to advise you booking an accommodation and answering your Berlin-questions.',
   'Book your journey to Berlin by train (within Germany) combined with your accommodation! The <b>Rail Inclusive Tours</b> give you the best conditions.',
   'Book with us - you won\'t find Berlin for less anywhere else. We can find the right accommodation for every visitor to Berlin with Best-Price-Guarantee.'
  );
 }
}