<!-- //
/* scripts.js - by Fit4Net GbR - Dr. DÃ¶lling */

//Onload
window.onload = function() {

 F4NCheckImagePreload();

}

//wird beim Stadtplan etc. benötigt...
var F4NRegUrl = new RegExp("http\:\/\/([^\/]+)", "i");
var F4NThePageURL = document.URL;
    F4NThePageURL.match(F4NRegUrl);
    F4NThePageURL = RegExp.$1;

//Variablendefinition
var F4N_Images = new Array();

//Nachladen von Funktionen
function F4N_LoadJsScript(scriptname) {
  var Subnode = document.createElement('script');
  Subnode.setAttribute('type','text/javascript');
  Subnode.setAttribute('src',scriptname);
  document.getElementsByTagName('head')[0].appendChild(Subnode);
}

/*Ã¶ffnen der Druckversion*/
function F4NOpenPrintVersion(ThePage) {
   var F4NPrintWindow = window.open("http://"+F4NThePageURL+"/"+ThePage,'Druckversion','height=800, width=600,scrollbars=yes');
   F4NPrintWindow.focus();
}

//WindowOpen-Funktion
function F4NOpenWindow(ThePage,TheName,TheOptions) {
        //alert("http://"+F4NThePageURL+"/"+ThePage);  //IE 6 Bug...
        var F4NNewWindow = window.open("http://"+F4NThePageURL+"/"+ThePage,TheName,TheOptions);
        F4NNewWindow.focus();
}

//Newsletter
function F4N_DelNewsletterData(FormId) {

 var TheForm = document.getElementById(FormId);
 if (TheForm) {
  TheForm.reset();
 }

}

//Ausblenden der Firmen-Details
function HideFirmenDetails(TheKey, TheLink, IsNav) {
 HideGGVDetails(TheKey, TheLink, IsNav);
}
//Ausblenden der Gastro-Details
function HideGastroDetails(TheKey, TheLink, IsNav) {
 HideGGVDetails(TheKey, TheLink, IsNav);
}
//Ausblenden der GGV-Details
function HideGGVDetails(GGV_Key, TheLink, IsNav) {

 var TheElement = document.getElementById(GGV_Key);

 if (TheElement) {
  if (TheElement.className == "GGVDetailsActive") {
   TheElement.className = "inActive";
  }
 }

 if (TheElement && IsNav && TheLink) {
  TheLink.className = "";
  TheLink.onclick = function(){
        ShowGGVDetails(GGV_Key, TheLink, IsNav);
        return false;
  };
 }

 return false;
}
//Einblenden der Firmentreffer...
function ShowFirmen(TheKey, TheLink, IsNav) {
 ShowGGVDetails(TheKey, TheLink, IsNav);
}
//Einblenden der Firmen-Details...
function ShowFirmenDetails(TheKey, TheLink, IsNav) {
 ShowGGVDetails(TheKey, TheLink, IsNav);
}
//Einblenden der Gastronomie-Details...
function ShowGastroDetails(TheKey, TheLink, IsNav) {
 ShowGGVDetails(TheKey, TheLink, IsNav);
}
//Einblenden der GGV-Details
function ShowGGVDetails(GGV_Key, TheLink, IsNav) {

 var TheElement = document.getElementById(GGV_Key);

 if (TheElement) {
  if (TheElement.className == "inActive") {
   TheElement.className = "GGVDetailsActive";
  }
 }

 if (TheElement && IsNav && TheLink) {
  TheLink.className = "active";
  TheLink.onclick = function(){
        HideGGVDetails(GGV_Key, TheLink, IsNav);
        return false;
  };
 }

 return false;
}

//Zurücksetzen der Ausgeblendeten Einträge
function EnableGGVEntries(GGV_key) {

 var f4n_serverURL = "http://"+F4NThePageURL+"/F4N/GGV/AjaxGGVFunctions.php";
 agent.call(f4n_serverURL, "F4N_EnableGGVEntries", "F4N_EnableRecievedGGVEntries", GGV_key);

 return false;
}

function F4N_EnableRecievedGGVEntries(F4NObjects) {

 var F4N_MakeRefresh = F4NObjects.MakeRefresh;

 if (F4N_MakeRefresh) {
  location.reload(true);
 }

}

//Ausblenden der Suchergebnisse/Trefferlisten
function DisenableGGVEntries(GGV_key, GGV_Id) {

 var f4n_serverURL = "http://"+F4NThePageURL+"/F4N/GGV/AjaxGGVFunctions.php";
 agent.call(f4n_serverURL, "F4N_DisenableGGVEntries", "F4N_DisenableRecievedGGVEntries", GGV_key, GGV_Id);

 return false;
}

function F4N_DisenableRecievedGGVEntries(F4NObjects) {

 var F4N_GGV_Id = F4NObjects.GGV_Id;
 var F4N_GGV_key = F4NObjects.GGV_key;
 var F4N_HideEntry = F4NObjects.HideElements;

 var TheElement = document.getElementById("GGVList_"+F4N_GGV_key+"_"+F4N_GGV_Id);
 if (TheElement && F4N_HideEntry) {
  TheElement.className = "inActive";
 }

}

//Bilder vorausladen
function F4NCheckImagePreload() {

 if (F4N_Images) {
  var F4NPreloadImage = new Array();
  var ii = 0;
  for (var i in F4N_Images) {
   for (var j in F4N_Images[i]) {
    if (F4N_Images[i][j][0].length > 5) {
      for (var k in F4N_Images[i][j]) {
       F4NPreloadImage[ii] = new Image;
       F4NPreloadImage[ii].src = F4N_Images[i][j][k];
       ii++;
      }
    }
   }
  }
 }

}

//Bilderwechsel
function F4N_SlideImages(key, ID, direction) {

 //Vorabprüfungen
 if (!F4N_Images["ActualImages"]) {
  F4N_Images["ActualImages"] = new Array();
 }

 var TheImg = document.getElementById("IMG_"+ID);
 var TheImgNr = document.getElementById("ShownImgNr_"+ID);

 if (TheImg && TheImgNr && key && direction) {

  //Prüfung der aktuellen Position
  if (!F4N_Images["ActualImages"][""+key+"_"+ID]) {
   F4N_Images["ActualImages"][""+key+"_"+ID] = 0;
  }

  if (direction == 'last') {
   if ((F4N_Images["ActualImages"][""+key+"_"+ID] - 1) < 0) {
    F4N_Images["ActualImages"][""+key+"_"+ID] = (F4N_Images[""+key+""][""+ID+""].length - 1);
   }
   else {
    F4N_Images["ActualImages"][""+key+"_"+ID]--;
   }
  }
  else {
   //next
   if ((F4N_Images["ActualImages"][""+key+"_"+ID] + 1) >= F4N_Images[""+key+""][""+ID+""].length) {
    F4N_Images["ActualImages"][""+key+"_"+ID] = 0;
   }
   else {
    F4N_Images["ActualImages"][""+key+"_"+ID]++;
   }
  }

  //Bildquelle + Nr. des Bildes
  TheImg.src = F4N_Images[""+key+""][""+ID+""][F4N_Images["ActualImages"][""+key+"_"+ID]];
  TheImgNr.innerHTML = (F4N_Images["ActualImages"][""+key+"_"+ID] + 1);

 }

 return false;
}

//Jump-Menü (Gastgeber)
function F4N_jumpMenu(ElementID) {
 document.getElementById(ElementID).submit();
}

//Google-Map Routing...
function F4N_setDirections(fromAddress, toAddress) {

    dire.F4N_Data = new Object;
    dire.F4N_Data = { "Start" : fromAddress , "Ziel" : toAddress };

    dire.load("from: " + fromAddress + " to: " + toAddress,{ "locale": "de_DE.UTF-8", "getPolyline" : true, "getSteps" : true });
}

function F4N_StartRoutingCalc(StartId, Ende, OutputElementId) {

 //Laden der Startadresse
 var TheStartAdress = document.getElementById(StartId);

 //Encoden von Start und Ende
 var Start = TheStartAdress.value;
 Start = Start.replace(/\n/g,"\, ");

 F4N_setDirections(Start, Ende);

  return ;
}

function F4N_GhandleErrors(){
  if (dire.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
   alert("Ihre Adresse wurde nicht erkannt. Bitte korrigieren Sie die Eingaben im Format <Adresse>, <Plz> <Ort> \nAnderenfalls kann es sein, dass die Adresse noch neu ist und deshalb nicht erkannt wird.");
  /*
  else if (dire.getStatus().code == G_GEO_SERVER_ERROR)
   alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + dire.getStatus().code);
  else if (dire.getStatus().code == G_GEO_MISSING_QUERY)
   alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + dire.getStatus().code);

  //else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
   //alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);

  else if (dire.getStatus().code == G_GEO_BAD_KEY)
   alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + dire.getStatus().code);

  else if (dire.getStatus().code == G_GEO_BAD_REQUEST)
   alert("A directions request could not be successfully parsed.\n Error code: " + dire.getStatus().code);
  */
  else alert("An unknown error occurred.");

}

function onGDirectionsLoad() {


                var poly = dire.getPolyline();
                var bounds = dire.getBounds();
                var route = dire.getRoute(0);
                var step1 = route.getStep(0).getLatLng();
                var step_last = route.getEndLatLng();

                map.addOverlay(poly);
                var image = new Array("fileadmin/bb/picture/GoogleMaps/gruen.png","32","32");
                var marker = createMapMarker(step1, image);
                map.addOverlay(marker);

                var steps = route.getNumSteps();

                document.getElementById("F4N_StreetOutPut").innerHTML = "<h3>Ihre Routenbeschreibung</h3>";
                document.getElementById("F4N_StreetOutPut").innerHTML += "<p><strong>Start:</strong> "+ dire.F4N_Data.Start +"<br /><strong>Ziel:</strong> "+ dire.F4N_Data.Ziel +"<br /><strong>Entfernung:</strong> "+ dire.getDistance().html +" (ca. "+ dire.getDuration().html +")</p>";

                var GTableResult = document.createElement("p");
                var GTable = document.createElement("table");
                GTable.className = "GRouteDesc";
                var tr;
                var td;

                for(i=0;i<=steps;i++) {
                 mystep = route.getStep(i)
                 if(mystep) {
                  o = i + 1;
                  shtml = mystep.getDescriptionHtml();

                  tr = document.createElement("tr");
                  td = document.createElement("td");
                  td.className = "t1";
                  td.innerHTML = o +".";
                  tr.appendChild(td);

                  td = document.createElement("td");
                  td.className = "t2";
                  td.innerHTML = shtml;
                  tr.appendChild(td);

                  td = document.createElement("td");
                  td.className = "t3";
                  td.innerHTML = mystep.getDistance().html;
                  tr.appendChild(td);

                  GTable.appendChild(tr);

                 }
                }

                GTableResult.appendChild(GTable); //p-element wird über innerHTML dann ignoriert...
                document.getElementById("F4N_StreetOutPut").innerHTML += GTableResult.innerHTML;
                document.getElementById("F4N_StreetOutPut").innerHTML += "<p class=\"CopyRight\">"+dire.getCopyrightsHtml()+"</p>";

 }

/*Veranstaltungen*/
function F4N_Veranstaltung_StartDateSelection() {
 var Submit = document.getElementById("F4N_SubmitType");
 if (Submit) {
  Submit.value = "DateSelection";
 }

 var F4NForm = document.getElementById("f4n_veranstaltungen_form");
 if (F4NForm) {
  F4NForm.submit();
 }

 return;
}

function F4N_Veranstaltung_StartSearch() {
 var Submit = document.getElementById("F4N_SubmitType");
 if (Submit) {
  Submit.value = "SearchSelection";
 }

 var F4NForm = document.getElementById("f4n_veranstaltungen_form");
 if (F4NForm) {
  F4NForm.submit();
 }

 return;
}

function F4N_Show_VeranstaltungsDetails(RowId) {

 var ShortDesc = document.getElementById("Short_"+RowId);
 if (ShortDesc) {
  if (ShortDesc.className == "f4n_inaktiv") {
   ShortDesc.className = "f4n_aktiv_table";
  }
  else {
   ShortDesc.className = "f4n_inaktiv";
  }
 }

 var AktivElements = new Array('Long_', 'VBild_', 'Spacer_', 'Spacer2_', 'Dauer_', 'Eintritt_');

 for(i=0;i<AktivElements.length;i++) {
  var ActiveElement = document.getElementById(AktivElements[i]+RowId);

  if (ActiveElement) {
   if (ActiveElement.className == "f4n_inaktiv") {
    ActiveElement.className = "f4n_aktiv_table";
   }
   else {
    ActiveElement.className = "f4n_inaktiv";
   }
  }

 }

 return ;
}

/*Variable Fontsize --> http://www.white-hat-web-design.co.uk/articles/js-fontsize.php*/
var F4N_min_FontSize=80;
var F4N_max_FontSize=150;
var F4NIncreaseDecreaseIDs = new Array('Content', 'MainNav', 'BoxenLinks', 'BoxenRechts');

function increaseFontSize() {
 /*vergrÃ¶ÃŸern bei folgenden DIV-ID's...*/

 for(i=0;i<F4NIncreaseDecreaseIDs.length;i++) {
  DoIncreaseFontSize(F4NIncreaseDecreaseIDs[i]);
 }

}

function decreaseFontSize() {
 /*verkleinern bei folgenden DIV-ID's...*/

 for(i=0;i<F4NIncreaseDecreaseIDs.length;i++) {
  DoDecreaseFontSize(F4NIncreaseDecreaseIDs[i]);
 }

}

function DoIncreaseFontSize(ElementId) {
   //var p = document.getElementsByTagName('p');  //alt: alle p-Tags wurden in der SchriftgrÃ¶ÃŸe erhÃ¶ht...
   var div = document.getElementById(ElementId);

   if (div.style.fontSize) {
        var s = parseInt(div.style.fontSize.replace("%",""));
   }
   else {
        var s = 100;
   }
   if(s!=F4N_max_FontSize) {
         s += 10;
   }
   div.style.fontSize = s+"%"

   /*for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("%",""));
      } else {
         var s = 100;
      }
      if(s!=F4N_max_FontSize) {
         s += 5;
      }
      p[i].style.fontSize = s+"%"
   }*/
}
function DoDecreaseFontSize(ElementId) {
   //var p = document.getElementsByTagName('p');  //alt: alle p-Tags wurden in der SchriftgrÃ¶ÃŸe erhÃ¶ht...
   var div = document.getElementById(ElementId);

   if (div.style.fontSize) {
         var s = parseInt(div.style.fontSize.replace("%",""));
   } else {
         var s = 100;
   }
   if(s!=F4N_min_FontSize) {
         s -= 10;
   }
   div.style.fontSize = s+"%"

}

function isdefined( variable) {
    return (typeof(window[variable]) == "undefined")?  false: true;
}

// -->