  /*
* /js/js_pharmacyfinder_module.js
* Handels the javascript functions for the pharmacyfinder.
* $Revision: 1.4 $ 0.1
* $Author: paschke $ Dorit Brandt
*/

/* ---------------------------- extended search functions ----------------------------------- */

/* Hilfsmethode zum ermitteln der aktivierten Checkfields */
function countList(pObjectList) {
  var counter = 0;
  if(pObjectList){
    for(var i=0; i < pObjectList.length; ++i)  {
       if (pObjectList[i].checked == true) {
       counter++;
     }
    }
  }
  return counter;
}

/* genutzt von Standard-Umkreissuche */
function checkPharmacyFinderFields(){
 checkForm = document.pharmfinder;
  isNullPostalCode = !checkNotNull(checkForm.postalCodeSearch);
  isNullCity = !checkNotNull(checkForm.citySearch);

   if( (countList(checkForm.serviceID) + countList(checkForm.partnerID)) > 5 ){
    alert(unescape("Bitte w%E4hlen Sie max. 5 Partnerprogramme/Dienstleistungen aus."));
    return;
   } else if(isNullPostalCode && isNullCity){
     alert("Bitte geben Sie Ort oder PLZ ein");
     return;
   } else if(!isNullPostalCode){
     if(!checkNumberLength(checkForm.postalCodeSearch, 3, 5)){
       alert("Bitte geben Sie als PLZ eine Zahl mit wenigstens 3 und maximal 5 Stellen ein.");
       return;
     }
   } else if(!isNullCity){
     if(!checkLength(checkForm.citySearch, 2, 50)){
       alert("Bitte geben Sie wenigstens 2 und maximal 50 Zeichen als Ort ein.");
       return;
     } else {
       var first = checkForm.citySearch.value.substring(0,2).toLowerCase();
       var search = /[a-zäüöß]/gi;
       var result = first.replace(search, '');
       if (result.length > 0) {
           alert("Platzhalter sind an dieser Stelle nicht erlaubt!");
           return;
       }
     }

  }
 checkForm.submit();
}

/* Druckfunktion */
function openPopupPrintResultSet(url){
  window.open(url,'name','width=660,height=620,scrollbars=yes');
}

/* genutzt von Umkreissuche-Zwischenergebniss */
function checkPharmSearchFieldsWithSelect(){
 checkForm = document.pharmfinder;
 if( (countList(checkForm.serviceID) + countList(checkForm.partnerID)) > 5 ){
  alert(unescape("Bitte w%E4hlen Sie max. 5 Partnerprogramme/Dienstleistungen aus."));
  return;
 }
 checkForm.submit();
}


function doSearchWithPharmacy(){
  return checkPharmacyFinderFields();
}

function doSearch(){
  return checkPharmacyFinderFields();
}


/* ---------------------------- emergency search functions ----------------------------------- */

function checkEmergencyPharmSearchFields(){
 checkForm = document.pharmfinder;
 isNullPostalCode = !checkNotNull(checkForm.postalCodeSearch);
 isNullCity = !checkNotNull(checkForm.citySearch);

 if(isNullPostalCode && isNullCity){
   alert("Bitte geben Sie Ort oder PLZ ein");
   return;
 } else if(!isNullPostalCode){
   if (!checkNumberLength(checkForm.postalCodeSearch, 3, 5)) {
      alert("Bitte geben Sie als PLZ eine Zahl mit wenigstens 3 und maximal 5 Stellen ein.");
      return;
   }
 } else if(!isNullCity){
    if(!checkLength(checkForm.citySearch, 2, 50)) {
       alert("Bitte geben Sie wenigstens 2 und maximal 50 Zeichen als Ort ein.");
       return;
   } else {
     var first = checkForm.citySearch.value.substring(0,2).toLowerCase();
     var search = /[a-zäüöß]/gi;
     var result = first.replace(search, '');
     if (result.length > 0) {
         alert("Platzhalter sind an dieser Stelle nicht erlaubt!");
         return;
     }
   }
 }
 checkForm.submit();
}

/* ---------------------------- result page  functions ----------------------------------- */
function openMap(urlPath,pharmacyID, sk){
  page_link = urlPath + "map.jsp?pharmacyid="+pharmacyID;
  if (document.results.ext) {
    page_link = page_link + "&ext=" + document.results.ext.value + "&partner_id=" + document.results.partner_id.value;
  }
  window.open(page_link,'name','width=640,height=555,scrollbars=yes');
}
function openRouting(urlPath,pharmacyID){
  page_link = urlPath + "routing.jsp?pharmacyid="+pharmacyID;
  if (document.results.ext) {
    page_link = page_link + "&ext=" + document.results.ext.value + "&partner_id=" + document.results.partner_id.value;
  }
  window.location.href = page_link;
}
/* ---------------------------- feedback page  functions ----------------------------------- */
function checkFeedbackFields() {
  ok = true;
  checkForm = document.pharmfinderFeedback;
  if (!checkNotNull(checkForm.fbNameContact)) {
    alert("Bitte geben Sie Ihren Namen an!");
    checkForm.fbNameContact.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbPhoneContact)) {
    alert("Bitte geben Sie Ihre Telefonnummer an!");
    checkForm.fbPhoneContact.focus();
    ok = false;
  } else if (checkForm.fbMessageType.selectedIndex == 0) {
    alert("Bitte wählen Sie eine Meldungsart!");
    checkForm.fbMessageType.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbPharmacyMsg)) {
    alert("Bitte geben Sie den Apothekennamen an!");
    checkForm.fbPharmacyMsg.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbZip)) {
    alert("Bitte geben Sie die PLZ an!");
    checkForm.fbZip.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbCity)) {
    alert("Bitte geben Sie den Ort an!");
    checkForm.fbCityp.focus();
    ok = false;
  } else if (!isValidEmail(checkForm.fbEmail)) {
    alert("Bitte geben Sie eine gültige E-mail Adresse an!");
    checkForm.fbEmail.focus();
    ok = false;
  }

  if (ok) {
    checkForm.submit();
  }
}

function checkEmergencyFeedbackFields() {
  ok = true;
  checkForm = document.pharmfinderFeedback;
  if (!checkNotNull(checkForm.fbNameContact)) {
    alert("Bitte geben Sie Ihren Namen an!");
    checkForm.fbNameContact.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbPhoneContact)) {
    alert("Bitte geben Sie Ihre Telefonnummer an!");
    checkForm.fbPhoneContact.focus();
    ok = false;
  } else if (checkForm.fbMessageType.selectedIndex == 0) {
    alert("Bitte wählen Sie eine Meldungsart!");
    checkForm.fbMessageType.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbArea)) {
    alert("Bitte geben Sie den Bereich/Ort an!");
    checkForm.fbArea.focus();
    ok = false;
  } else if (!checkNotNull(checkForm.fbMsg)) {
    alert("Bitte geben Sie eine Nachricht an!");
    checkForm.fbMsg.focus();
    ok = false;
  }

  if (ok) {
    checkForm.submit();
  }
}

