﻿
var reEmail = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var reTel = /^[\d\s]{10,25}|[+][\d\s]{10,25}$/;
var reNumber = /[0-9]/;
var reYear = /^[0-9]{2,4}$/;

// ------------------------------------- REGEX DATE ------------------------------------------------------//
function CheckDate(datum) {
  //(Schritt 1) Fehlerbehandlung
  if (!datum) return false;
  datum = datum.toString();

  //(Schritt 2) Aufspaltung des Datums
  datum = datum.split(".");
  if (datum.length != 3) return false;

  if (!datum[0].match(reNumber)) return false;
  if (!datum[1].match(reNumber)) return false;
  if (!datum[2].match(reNumber)) return false;

  //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
  datum[0] = parseInt(datum[0], 10);
  datum[1] = parseInt(datum[1], 10) - 1;

  //(Schritt 4) Behandlung Jahr nur zweistellig
  if (datum[2].length == 2) datum[2] = "20" + datum[2];

  // wenn länger als 4
  if (datum[2].length > 4) return false;

  //(Schritt 5) Erzeugung eines neuen Dateobjektes
  var kontrolldatum = new Date(datum[2], datum[1], datum[0]);

  //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
  if (kontrolldatum.getDate() == datum[0] && kontrolldatum.getMonth() == datum[1] && kontrolldatum.getFullYear() == datum[2])
    return true; else return false;
}
// ------------------------- UPDATE CAPTCHA IMAGE  ------------------------------------- //
function updateImage(img, text) {
  var image = document.getElementById(img);
  image.src = text + '?Random=' + Math.random(1);
}

// ------------------------- LOADER OFF ---------------------------------------------------------- //
function loaderOff() {
  if (document.getElementById("loader") != null) {
      Effect.Fade('loader', { duration: 0.0, afterFinish: function() {
      Effect.Appear('pageSpalteEvents', { duration: 0.6 });
    }
    });
  }   
}

// ------------------------- Navigation - Load Pagecontent (with LOADER) ------------------------- //
function loadSite(site)
{
  Effect.Fade('pageSpalteEvents', { duration: 0.6, afterFinish: function()
    {
        Effect.Appear('loader', {duration: 0.0, afterFinish: function() 
        {
          ob_post.UpdatePanelFromPage('panelContent', 'pageSpalteEvents', site);
        }
        });
    }        
    });
  }

  // --------------------------- Change Guestlistinfo  -------------------------------- //
  function SelectGuestlistInfo() {
    var ID = document.getElementById("cboGuestlists").value;
    loadSite('guestlist.aspx?AgendaID=' + ID);
  }

// -------------------------------- CHECK / SEND FORM NEWSLETTER ------------------------------ //
function CheckFormNewsletter() {
  var bEmail = false;
  var bTel = false;
  var bRegion = false;

  if (document.getElementById("tbxName").value == '' || document.getElementById("tbxVorname").value == '' || document.getElementById("tbxEmail").value == '') {
    Effect.Appear('divError', { duration: 0.0 });
    Effect.Fade('divEmail', { duration: 0.0 });
  }
  else {
    Effect.Fade('divError', { duration: 0.0 });

    // check Email
    var sEmail = new String(document.getElementById("tbxEmail").value);
    if (!sEmail.match(reEmail)) {
      Effect.Appear('divEmail', { duration: 0.0 });
      bEmail = false;
    }
    else {
      bEmail = true;
      Effect.Fade('divEmail', { duration: 0.0 });
    }
    
    // check Region
    if (document.getElementById("cboRegions").value == '0') {
      Effect.Appear('divRegion', { duration: 0.0 });
      bRegion = false;
    }
    else {
      bRegion = true;
      Effect.Fade('divRegion', { duration: 0.0 });
    }
    
    // check Tel
    var sTel = new String(document.getElementById("tbxMobile").value);
    if (sTel != "" && sTel != "Mobile") {
      if (!sTel.match(reTel)) {
        Effect.Appear('divTel', { duration: 0.0 });
        bTel = false;
      }
      else {
        bTel = true;
        Effect.Fade('divTel', { duration: 0.0 });
      }
    }
    else {
      bTel = true;
      Effect.Fade('divTel', { duration: 0.0 });
    }

    if (bEmail && bTel && bRegion) {
      Effect.Appear('divSent', { duration: 0.0 });
      document.getElementById("btnSend").disabled = true;

      SendFormNewsletter();
    }
  }
}


function SendFormNewsletter() {
  ob_post.AddParam("sLastName", document.getElementById("tbxName").value);
  ob_post.AddParam("sFirstName", document.getElementById("tbxVorname").value);
  ob_post.AddParam("sEmail", document.getElementById("tbxEmail").value);
  if (document.getElementById("tbxMobile").value == "Mobile")
  { ob_post.AddParam("sTel", ""); }
  else { ob_post.AddParam("sTel", document.getElementById("tbxMobile").value); }
  ob_post.AddParam("sRegion", document.getElementById("cboRegions").value);

  ob_post.post("default.aspx", "SaveForm");

}

// ------------------------- SendForm GUESTLIST ------------------------------------- //
function CheckGuestlistEntry(ID) {
  var bEmailGL = false;
  var bAgeGL = false;
  var bTelGL = false;
  var bRegionGL = false;

  if (document.getElementById("tbxNameGL").value == '' || document.getElementById("tbxEmailGL").value == '' || document.getElementById("tbxVornameGL").value == '') {
    Effect.Appear('divErrorGL', { duration: 0.0 });
  }
  else {
    var sEmail = new String(document.getElementById("tbxEmailGL").value);
    if (!sEmail.match(reEmail)) {
      bEmailGL = false;

      Effect.Fade('divErrorGL', { duration: 0.0 });
      Effect.Appear('divEmailGL', { duration: 0.0 });
    }
    else {
      bEmailGL = true;
      Effect.Fade('divEmailGL', { duration: 0.0 });
    }

    var sAge = document.getElementById("tbxAgeGL").value;
    if (sAge != "" && !sAge.match(reYear)) {
      bAgeGL = false;
      Effect.Appear('divAgeGL', { duration: 0.0 });
    }
    else {
      bAgeGL = true;
      Effect.Fade('divAgeGL', { duration: 0.0 });
    }

    if (document.getElementById("tbxMobileGL").value != "") {
      bTel = false;

      var sTel = document.getElementById("tbxMobileGL").value;
      if (!sTel.match(reTel)) {
        bTelGL = false;
        Effect.Appear('divTelGL', { duration: 0.0 });
      }
      else {
        bTelGL = true;
        Effect.Fade('divTelGL', { duration: 0.0 });
      }
    }
    else {
      bTelGL = true;
      Effect.Fade('divTelGL', { duration: 0.0 });
    }

    // check Region if newsletter is checked
    if (document.getElementById("chkBoxNewsletterGL").checked) {
      if (document.getElementById("cboRegionsGL").value == '0') {
        Effect.Appear('divRegionGL', { duration: 0.0 });
        bRegionGL = false;
      }
      else {
        bRegionGL = true;
        Effect.Fade('divRegionGL', { duration: 0.0 });
      }
    }
    else {
      bRegionGL = true;
      Effect.Fade('divRegionGL', { duration: 0.0 });
    }

    if (bAgeGL && bTelGL && bEmailGL && bRegionGL) {

      // check captcha
      if (ob_post.post("captcha.aspx", "CheckCaptcha", null, { "sCaptchaText": document.getElementById("captchaText").value })) {
        bCaptchaFAQ = true;
        Effect.Fade('divCaptchaError', { duration: 0.0 });
      }
      else {
        bCaptchaFAQ = false;
        Effect.Appear('divCaptchaError', { duration: 0.0 });

        updateImage('captchaImgPlaceholder', '../cms/PageModules/Captcha/Captcha.aspx');
        return;
      }

      Effect.Fade('divErrorGL', { duration: 0.0 });
      Effect.Appear('divSentGL', { duration: 0.0 });

      document.getElementById("sendButtonGL").disabled = true;
      SaveGuestlistEntry(ID);

    }
  }
}

function SaveGuestlistEntry(ID) {
  ob_post.AddParam("bInsertNewsletter", document.getElementById("chkBoxNewsletterGL").checked);
  ob_post.AddParam("sName", document.getElementById("tbxNameGL").value);
  ob_post.AddParam("sVorname", document.getElementById("tbxVornameGL").value);
  if (document.getElementById("cboCompanionsGL") != null)
  { ob_post.AddParam("sCompanions", document.getElementById("cboCompanionsGL").value); }
  else { ob_post.AddParam("sCompanions", ""); }
  ob_post.AddParam("sGender", document.getElementById("cboGenderGL").value);
  ob_post.AddParam("sAge", document.getElementById("tbxAgeGL").value);
  ob_post.AddParam("sMobile", document.getElementById("tbxMobileGL").value);
  ob_post.AddParam("sEmail", document.getElementById("tbxEmailGL").value);
  ob_post.AddParam("sRegion", document.getElementById("cboRegionsGL").value);

  document.getElementById("tbxNameGL").value = '';
  document.getElementById("tbxVornameGL").value = '';
  document.getElementById("tbxAgeGL").value = '';
  document.getElementById("tbxMobileGL").value = '';
  document.getElementById("tbxEmailGL").value = '';

  ob_post.post("Guestlist.aspx?AgendaID=" + ID, "SaveFormGuestlist");
}
