// ------------------------- LOADER OFF ---------------------------------------------------------- //
function loaderOff() {
  if (document.getElementById('loader') != null) {
    Effect.Fade('loader', { duration: 0.3, afterFinish: function() {
      Effect.Appear('siteContent', { duration: 0.5 });
    }
    });
  }
  else {
    Effect.Appear('siteContent', { duration: 0.5 });
  }
}

// ------------------------- Navigation - Load Pagecontent (with LOADER) ------------------------- //
function loadSite(site) {
  if (document.getElementById('siteContent') != null) {
    Effect.Fade('siteContent', { duration: 0.5, afterFinish: function() {
      if (document.getElementById("loader") != null) {
        Effect.Appear('loader', { duration: 0.3, afterFinish: function() {
        ob_post.UpdatePanelFromPage('panelContent', 'siteContent', site);
        }
        });
      }
      else {
        ob_post.UpdatePanelFromPage('panelContent', 'siteContent', site);
      }
    }
    });
  }
}

// ------------------------- Select Language on Website ------------------------------------------ //
function ChangeLanguage(lang, site) {
  ob_post.AddParam("sLanguage", lang);
  ob_post.post(site, "ChangeLanguage");
  loadSite(site);
}

// -------------------------------- PAGING OVERVIEW ------------------------------ //
function previewPage(site) {
  ob_post.post(site, "cmdPrev_Click");
  loadSite(site);
}
function nextPage(site) {
  ob_post.post(site, "cmdNext_Click");
  loadSite(site);
}
function pageUp(site) {
  ob_post.post(site, "cmdOverview_Click");
  loadSite(site);
}
// -------------------------------- DETAILS GALLERY IMAGES ------------------------------ //
function loadGallery(ID) {
  loadSite('30.aspx?GalleryID=' + ID);
}
function loadGalleryOverview(site) {
  ob_post.post(site, "cmdOverview_Click");
  loadSite(site);
}


// ------------------------------------- REGEX Strings --------------------------------------------//
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;
}

// ------------------------- RESET TEXT  ------------------------------------- //
function ResetText(textboxID, newValue, defaultValue) {
  if (newValue == '') {
    document.getElementById(textboxID).value = defaultValue;
  }
}

// --------------------------- Change Guestlistinfo  -------------------------------- //
function SelectGuestlistInfo() {
  var ID = document.getElementById("cboGuestlists").value;
  loadSite('03.aspx?AgendaID=' + ID);
}

// ------------------------- UPDATE CAPTCHA IMAGE  ------------------------------------- //
function updateImage(img, text) {
  var image = document.getElementById(img);
  image.src = text + '?Random=' + Math.random(1);
}

// -------------------------------- CHECK / SEND FORM NEWSLETTER ------------------------------ //
function CheckFormNewsletter(site) {
  var bEmail = false;
  var bTel = false;
  var bRegion = false;

  if (document.getElementById("tbxNameNL").value == '' || document.getElementById("tbxVornameNL").value == '' || document.getElementById("tbxEmailNL").value == '') {
    Effect.Appear('divErrorNL', { duration: 0.0 });
    Effect.Fade('divEmailNL', { duration: 0.0 });
  }
  else {
    Effect.Fade('divErrorNL', { duration: 0.0 });

    // check Email
    var sEmail = new String(document.getElementById("tbxEmailNL").value);
    if (!sEmail.match(reEmail)) {
      Effect.Appear('divEmailNL', { duration: 0.0 });
      bEmail = false;
    }
    else {
      bEmail = true;
      Effect.Fade('divEmailNL', { duration: 0.0 });
    }

    // check Region
    if (document.getElementById("cboRegionsNL").value == '0') {
      Effect.Appear('divRegionNL', { duration: 0.0 });
      bRegion = false;
    }
    else {
      bRegion = true;
      Effect.Fade('divRegionNL', { duration: 0.0 });
    }

    // check Tel
    var sTel = new String(document.getElementById("tbxMobileNL").value);
    if (sTel != "" && sTel != "Mobile") {
      if (!sTel.match(reTel)) {
        Effect.Appear('divTelNL', { duration: 0.0 });
        bTel = false;
      }
      else {
        bTel = true;
        Effect.Fade('divTelNL', { duration: 0.0 });
      }
    }
    else {
      bTel = true;
      Effect.Fade('divTelNL', { duration: 0.0 });
    }

    if (bEmail && bTel && bRegion) {
      Effect.Appear('divSentNL', { duration: 0.0 });
      document.getElementById("btnSend").disabled = true;

      SendFormNewsletter(site);
    }
  }
}


function SendFormNewsletter(site) {
  ob_post.AddParam("sLastName", document.getElementById("tbxNameNL").value);
  ob_post.AddParam("sFirstName", document.getElementById("tbxVornameNL").value);
  ob_post.AddParam("sEmail", document.getElementById("tbxEmailNL").value);
  if (document.getElementById("tbxMobileNL").value == "Mobile")
  { ob_post.AddParam("sTel", ""); }
  else { ob_post.AddParam("sTel", document.getElementById("tbxMobileNL").value); }
  // has Region
  if (document.getElementById("cboRegionsNL") != null) {
    ob_post.AddParam("sRegion", document.getElementById("cboRegionsNL").value);
  } else { ob_post.AddParam("sRegion", "0"); }

  ob_post.post(site, "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 {

    Effect.Fade('divErrorGL', { duration: 0.0 });

    var sEmail = new String(document.getElementById("tbxEmailGL").value);
    if (!sEmail.match(reEmail)) {
      bEmailGL = false;
      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 (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 {
      Effect.Fade('divRegionGL', { duration: 0.0 });
      bRegionGL = true;
    }

    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) {
  if (document.getElementById("chkBoxNewsletterGL") != null) {
    ob_post.AddParam("bInsertNewsletter", document.getElementById("chkBoxNewsletterGL").checked);
  } else { ob_post.AddParam("bInsertNewsletter", false); }

  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);
  if (document.getElementById("cboRegionsGL") != null) {
    ob_post.AddParam("sRegion", document.getElementById("cboRegionsGL").value);
  } else { ob_post.AddParam("sRegion", "0"); }

  document.getElementById("tbxNameGL").value = '';
  document.getElementById("tbxVornameGL").value = '';
  document.getElementById("tbxAgeGL").value = '';
  document.getElementById("tbxMobileGL").value = '';
  document.getElementById("tbxEmailGL").value = '';

  ob_post.post("03.aspx?AgendaID=" + ID, "InsertGuestlistEntry");
}
