// PV.JS (c) Frank Spade http://www.spade.de
//   $Revision: 8.2.0 $                $Date: 2010/07/10 $

var muster  = /[0-9]*[,]?[0-9]{1,2}/;
var ganz    = /[0-9]*/;

function cleanCAPS(str) {
  capsallowed = 3; // Lowercase if more than ## CAPS in a row
  do {eval("re = /([A-Z]{" + (capsallowed+1) + ",})/g;");
    myArray = str.match(re);
    if (myArray) {
    eval("re = /" + myArray[0] + "/;");
    str = str.replace(re, ""+myArray[0].toLowerCase());
    }
} while (myArray);
return trim(str);
}

function trim(textfield){
  return textfield.replace(/^\s+/,'').replace(/\s+$/,'');
}  

function Validate(pv){
  pv.InformationBeratung.checked = pv.Information.value != "";

  if ((trim(pv.Name.value) === "") || (pv.Name.value === "Vorname Nachname")){
    alert("Bitte tragen Sie Ihren vollen Namen ein.");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.Name.focus();
    pv.Name.select();
    return(false);
  }

  if (pv.Name.value.length < 5){
    alert("Das scheint kein vollständiger Name zu sein.\n\nBitte geben Sie Vor- und Nachnamen an!");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.Name.focus();
    return(false);
  }

  if ((trim(pv.geboren_am.value) === "") || (pv.geboren_am.value === "Geburtsdatum")){
    alert("Bitte tragen Sie Ihr Geburtsdatum ein.");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.geboren_am.focus();
    pv.geboren_am.select();
    return(false);
  }

  if (pv.geboren_am.value.length < 6){
    alert("Das scheint kein gültiges Geburtsdatum zu sein.\n\nBitte benutzen Sie das Format TT.MM.JJJJ (z.B. 23.11.1946)!");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.geboren_am.focus();
    return(false);
  }

  if ((trim(pv.wohnhaft_in.value) === "") || (pv.wohnhaft_in.value === "PLZ Ort")){
    alert("Bitte tragen Sie Ihre Anschrift ein.");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.wohnhaft_in.focus();
    pv.wohnhaft_in.select();
    return(false);
  }

  if (pv.wohnhaft_in.value.length < 10){
    alert("Das scheint keine vollständige Anschrift zu sein.\n\nBitte geben Sie PLZ und Ort an!");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.wohnhaft_in.focus();
    return(false);
  }

  if ((trim(pv.wohnhaft_in2.value) === "") || (pv.wohnhaft_in2.value === "Straße Hausnr.")){
    alert("Bitte tragen Sie Straße und Hausnr. ein.");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.wohnhaft_in2.focus();
    pv.wohnhaft_in2.select();
    return(false);
  }

  if (pv.wohnhaft_in2.value.length < 3){
    alert("Das scheint keine vollständige Anschrift zu sein.\n\nBitte geben Sie Straße und Hausnummer an!");
    window.location.hash="Navigation";
    window.location.hash="#Navigation";
    pv.wohnhaft_in2.focus();
    return(false);
  }

  if (!pv.Situation_1.checked && !pv.Situation_2.checked && !pv.Situation_3.checked && !pv.Situation_4.checked){
    alert("Bitte wählen Sie wenigstens eine Situation aus für die die Patientenverfügung gelten soll.");
    window.location.hash="Situationen";
    window.location.hash="#Situationen";
    return(false);
  }

  if (pv.Situation_4.checked && (trim(pv.Situationsbeschreibungen.value) === "")){
    alert("Wenn Sie eine eigene Situationsbeschreibung angeben möchten, tun Sie das bitte jetzt.");
    pv.Situation_4.checked = false;
    window.location.hash="Eigene";
    window.location.hash="#Eigene";
    pv.Situationsbeschreibungen.focus();
    return(false);
  }
  
  if (!pv.Schmerz_und_Symptombehandlung[0].checked && !pv.Schmerz_und_Symptombehandlung[1].checked) {
    alert("Bitte entscheiden Sie, ob Sie bewusstseinsdämpfende Mittel bei der Schmerz- und Symptombehandlung akzeptieren wollen.");
    window.location.hash="1.";
    window.location.hash="#1.";
    return(false);
  }  

  if (!pv.Lebenserhaltende_Massnahmen[0].checked && !pv.Lebenserhaltende_Massnahmen[1].checked) {
    alert("Bitte entscheiden Sie, ob Sie lebensverlängernde Maßnahmen wünschen.");
    window.location.hash="2.";
    window.location.hash="#2.";
    return(false);
  }  

  if (!pv.Kuenstliche_Ernaehrung[0].checked && !pv.Kuenstliche_Ernaehrung[1].checked) {
    alert("Bitte entscheiden Sie, ob Sie künstliche Ernährung wünschen.");
    window.location.hash="3.";
    window.location.hash="#3.";
    return(false);
  }  

  if (!pv.Antibiotika_und_Blut[0].checked && !pv.Antibiotika_und_Blut[1].checked) {
    alert("Bitte entscheiden Sie, ob Sie Antibiotika und Blut/Blutbestandteile wünschen.");
    window.location.hash="4.";
    window.location.hash="#4.";
    return(false);
  }  

  if (!pv.Wiederbelebung[0].checked && !pv.Wiederbelebung[1].checked) {
    alert("Bitte entscheiden Sie, ob Sie Wiederbelebungsmaßnahmen wünschen.");
    window.location.hash="5.";
    window.location.hash="#5.";
    return(false);
  }  

  if (pv.Organspende[0].checked && !pv.Vorrang[0].checked && !pv.Vorrang[1].checked) {
    alert("Entscheiden Sie bitte was Vorrang haben soll, Ihr Organspendeausweis oder diese Patientenverfügung.");
    pv.Organspende[0].focus();
    return(false);
  }
  
  if (pv.Beistand1.checked && (trim(pv.Personenbeistand.value) === "")) {
    alert("Wenn Sie eine Person angeben wollen die Ihnen Beistand leisten soll, tun Sie das bitte jetzt.");
    pv.Beistand1.checked = false;
    pv.Personenbeistand.focus();
    return(false);
  }
  
  if (pv.Beistand2.checked && (trim(pv.Weltanschauungsgemeinschaft.value) === "")) {
    alert("Wenn Sie eine Weltanschauungsgemeinschaft angeben wollen die Ihnen Beistand leisten soll, tun Sie das bitte jetzt.");
    pv.Beistand2.checked = false;
    pv.Weltanschauungsgemeinschaft.focus();
    return(false);
  }
  
  if (pv.InformationBeratung.checked && (trim(pv.Information.value + pv.Beratung.value) === '')) {
    alert("Wenn Sie angeben wollen, wie Sie sich vorher informiert haben oder wer Sie beraten hat, tun Sie das bitte jetzt."); 
    pv.InformationBeratung.checked = false;
    pv.Information.focus();
    return(false);
  }

  if (!pv.Vorsorgevollmacht1.checked && !pv.Vorsorgevollmacht2.checked && !pv.Vorsorgevollmacht3.checked) {
    if (confirm("Haben Sie bereits jemanden bevollmächtigt Ihren Willen zu vertreten,\nwenn Sie einmal selber nicht mehr dazu in der Lage sind?\n\nWenn nicht empfehlen wir Ihnen zu dem Zweck unsere Vorsorgevollmachten anzufordern.\n\nWenn Sie jetzt noch Vollmachten auswählen möchten klicken Sie hier bitte auf Ok ...")) {
      window.location.hash="Formulare";
      window.location.hash="#Formulare";
      pv.Vorsorgevollmacht1.focus();
      return(false);
    }  
    return(true);
  }  
  
  if (pv.Beitrag.value == 0) {
    alert("Bitte geben Sie an, welchen Beitrag Sie für diese Patientenverfügung leisten möchten.");
    window.location.hash="Gebuehr";
    window.location.hash="#Gebuehr";
    pv.Beitrag.focus();
    return(false);
  }  

  if (pv.Reduzierung[1].checked && ganz.exec(pv.Beitrag.value) < 6) {
    alert("Bitte beachten Sie, dass der reduzierte Mindestbeitrag 6,00 EUR beträgt.");
    window.location.hash="Gebuehr";
    window.location.hash="#Gebuehr";
    pv.Beitrag.focus(); 
    return(false);
  }
  
  if (!pv.Reduzierung[1].checked && ganz.exec(pv.Beitrag.value) < 18) {
    alert("Bitte beachten Sie, dass der Mindestbeitrag 18,00 EUR beträgt.\n\nIn begründeten Fällen können wir eine Gebührenreduzierung gewähren.\n\nDazu Gebührenreduzierung \"Ja\" anklicken und im Feld Begründung erläutern.\n\nAndernfalls einfach einen Betrag von 18 EUR oder mehr eintragen ...");
    window.location.hash="Gebuehr";
    window.location.hash="#Gebuehr";
    pv.Beitrag.focus();
    return(false);
  } 
    
  if (pv.Bevollmaechtigte1_Anschrift.value != "" && pv.Bevollmaechtigte1_Anschrift.value.charAt(pv.Bevollmaechtigte1_Anschrift.value.length-1) != ",") pv.Bevollmaechtigte1_Anschrift.value = pv.Bevollmaechtigte1_Anschrift.value + ",";
  if (pv.Bevollmaechtigte2_Anschrift.value != "" && pv.Bevollmaechtigte2_Anschrift.value.charAt(pv.Bevollmaechtigte2_Anschrift.value.length-1) != ",") pv.Bevollmaechtigte2_Anschrift.value = pv.Bevollmaechtigte2_Anschrift.value + ",";
  if (pv.Auftraggeber.value === "") pv.Auftraggeber.value = pv.Name.value;
  if (pv.Auftraggeber_wohnhaft_in.value === "") pv.Auftraggeber_wohnhaft_in.value = pv.wohnhaft_in.value;
  if (pv.Auftraggeber_wohnhaft_in3.value === "") pv.Auftraggeber_wohnhaft_in3.value = pv.wohnhaft_in2.value;
  if (pv.VVBefugnis.checked == true) pv.Vorsorgevollmacht1 = ", Vorsorgevollmacht";
 }