//$Id: stationsverwaltung.js,v 1.13 2012-01-26 10:33:24 baerbeld Exp $
/* JavaScript Datei fuer die Stationsverwaltung */
//$Id: stationsverwaltung.js,v 1.13 2012-01-26 10:33:24 baerbeld Exp $/* JavaScript Datei fuer die Stationsverwaltung */
// Helpfuncs einbinden
document.write("<script language='JavaScript' src='/skripte/helpfuncs.js'></script>");
document.write('<scr'+'ipt language=\'javascript\' src=\'/skripte/jquery/plugins/contentslider/jquery.contentslider.min.js\'>'+'</'+'sc'+'ript>\n');
document.write('<scr'+'ipt language=\'javascript\' src=\'/skripte/jquery/plugins/thickbox/thickbox-3.2.js\'>'+'</'+'sc'+'ript>\n');

var rel_manager;
/* funktion zum weiterleiten nach Listenauswahl */
function formElemChange(in_var, in_link, form)    {
       var input_var = in_var;
       var link = in_link;
       var myForm = form;
       try {
           button_sperren(myForm.elements['get_station']);
       }
       catch (e) {}
       var ziel = link + input_var;
       return rel_manager.scrollReload(ziel);
}

/* funktion zum refreshStationsKuerzelList nach Listenauswahl */
function refreshStationsKuerzelList(formElem)    {
  
  //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
  if( xajax.requestIsRunning()) 
    {
      //Dau-Schutz
      return false;
  }
  hal2ajax_recreateStationKuerzelList(xajax.getFormValues(formElem.form.name));
  return true;

}



/* nach auswahl aus der forumlar list mit stationen -> Auswahlseite*/
function sendStationListAuswahl(formElem)   {
       var myForm = formElem.form;
       button_sperren(myForm.elements['get_station']);
       myForm.submit();
}

/* Funktion zum Nachladen der immer_ausweich_min - Info aus FS-Daten gehen erst mit Stadt und Firma */
function getFsDatenDefaultImmerAusweichMin()
{
    xajax.showInlineTag('loadNewStat');
    //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
    if( xajax.requestIsRunning()) 
    {
        //Dau-Schutz
     return false;
    }
    formData = xajax.getFormValues('station_data');
    xajax.lockInputfield('stadt_id');
    xajax.lockInputfield('verwaltungsfirma_id');
    hal2ajax_getDefaultImmerAusweichMin(formData);
}
/* Stadtnamen in ein hiddenfeld zur auswertung durch GoogleMap-geosuche */
function setStadtName(targetObjId, sourceObjId) {
  var stadt_name = xajax.getVal(sourceObjId, 'inhalt');
  xajax.setVal(targetObjId, stadt_name);
  
}
function StadtPlanLinkTest(Koord)    {
    var link = '';
    alert('Fehler: depricated function called - StadtPlanLinkTest');
    return false;
    //wenn mit koordinaten
    if ( Koord == 'yes' ) {
      var x_koord = document.forms['station_data'].elements['x_koord'].value;
      var y_koord = document.forms['station_data'].elements['y_koord'].value;
      if ( x_koord.length == 0 || x_koord == '0.00000000' ) {
             alert('Es ist wichtig die X-Koordinate anzugeben!');
             document.forms['station_data'].elements['x_koord'].focus();
             return false;
      }
      if ( y_koord.length == 0 || y_koord == '0.00000000' ) {
             alert('Es ist wichtig Y-Koordinate anzugeben!');
             document.forms['station_data'].elements['y_koord'].focus();
             return false;
      }
      link = '';
    }
    else {
        //umsetzten der Wichtigen Felder in Variablen (als Objekte)
        var stadt = document.forms['station_data'].elements['stadtplan_stadt_name'];
        var strasse = document.forms['station_data'].elements['anschrift_strasse'];
        var num = document.forms['station_data'].elements['anschrift_hausnummer'];
        var plz = document.forms['station_data'].elements['anschrift_plz'];
        //Pr_fen ob die variablen Werte enthalten
        if ( stadt.value.length == 0 || stadt.value == 'wird nicht genutzt' ) {
            alert('Es ist wichtig eine Stadtplan-Stadt anzugeben!');
            stadt.focus();
            return false;
        }
        if ( strasse.value.length == 0 ) {
            alert('Es muss eine Strasse angegeben sein!');
            strasse.focus();
            return false;
        }
        if ( num.value.length == 0 ) {
            alert('Es muss eine Hausnummer angegeben sein!');
            num.focus();
            return false;
        }
        if ( plz.value.length == 0 ) {
            alert('Es muss eine PLZ angegeben sein!');
            plz.focus();
            return false;
        }
          //String mit den Parametern erzeugen
        var param_str = 'city='+stadt.value+'&str='+strasse.value+'&num='+num.value+'&plz='+plz.value;
        link = '';
    }
    //oeffenen des Fensters
    var w=window.open(encodeURI(link), 'Stadtpland',
                  'toolbar=no,scrollbars=no,resizeable=yes,width=415,height=570');
    //focus auf das Fenster legen
    if(w.focus)w.focus();
    return false;
}

function enableFernverkehrInfo() {
    for ( var i=0; i< document.forms[0].elements.length; i++ ) {
        var checkName = '';
       if (document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].checked == true          ) {
            document.forms[0].elements[i+1].style.visibility = "visible";
            document.forms[0].elements[i+2].style.visibility = "visible";
       }
       else if ( document.forms[0].elements[i].type == 'checkbox' ) {
            document.forms[0].elements[i+1].style.visibility = "hidden";
            document.forms[0].elements[i+2].style.visibility = "hidden";
       }
    }
}

/*
 * Funktion die vor dem schreiben bei Stationsaenderungen nochmal JavaScript Pruefungen raffelt
 * ausserdem wird hier auch der Button zum senden gleich mit ge- bzw. entsperrt
 * @param submitButton button - html button, der gesperrt wird, damit DAU nicht ewig klicken kann
 */
function checkBeforSubmit(submitButton)   {
  submitButton.focus();
  try {
      button_sperren(submitButton);
    }
    catch (e) {}
     var checkErg = true;
    //kuerzel
    if(checkErg != false && document.forms['station_data'].elements['kurzname'].value=="")  {
        alert('Sie müssen ein Stationskürzel festlegen!');
        document.forms['station_data'].elements['kurzname'].focus();
        checkErg = false;
    }
    //name
    if(checkErg != false && document.forms['station_data'].elements['langname'].value=="")  {
        alert('Sie müssen ein Stationsnamen festlegen!');
        document.forms['station_data'].elements['langname'].focus();
        checkErg = false;
    }
    //verwaltungsfirma
    if(checkErg != false && document.forms['station_data'].elements['verwaltungsfirma_id'].value <= 0)  {
         alert('Sie müssen ein Verwaltungsfirma festlegen!');
        document.forms['station_data'].elements['verwaltungsfirma_id'].focus();
        checkErg = false;
    }
    //karenzzeit - zwang
    if(checkErg != false && typeof checkKarenzeitSetIfZwangChecked == 'function')    {
      checkErg = checkKarenzeitSetIfZwangChecked(document.getElementById('id_karenzzeit_zw_J'), document.forms['station_data'].elements['karenzzeit']);
    }
    //fuer neuen versuche den button entsperren
    if(checkErg == false) {
      button_entsperren(submitButton);
      return false;
    }
  return true;
}

//vorbereiten und abschicken des formulars OHNE pruefung - weil vorher RESET
//nur der SUBMIT wegen dem aender der aktivitaet ausgefuehrt
function prepareAndSubmitFormForActivity(currentButton, submitButton)    {
    //zuerst mal schauen welcher Button von beiden gedrueckt wurde
    var todoFromButton = currentButton.name;
    var submitTheParent = false;
    if (todoFromButton.search(/inaktiv/) != -1)  {
        //hier kommt man aus dem Popup zur neuen HeimStat-Auswahl #Feld: station_list_id
        //deshalb schrieben wir die neue ID in ein HIDDEN Field
        submitButton.form.reset();
        submitButton.form.elements['extraSubmitParam'].value = currentButton.form.elements['station_list_id'].value;
        todoFromButton = 'set_inaktiv';
        submitTheParent = true;
//      var confirmSetInactiv = window.confirm('Wenn Sie diese Station deaktivieren wird sie nicht mehr bei Buchungsanfragen Ihrer Kunden beachtet.');
//        if(confirmSetInactiv == false)    {
//            return false;
//        }
    }
    var currForm = currentButton.form;
    //zur sicherheit, das keine anderen daten geaendert werden
    currForm.reset();
    submitButton.focus();
    try {
        button_sperren(currentButton);
        button_sperren(submitButton);
        if(submitTheParent == true) {
            submitButton.form.elements['extraSubmitWhy'].value = todoFromButton;
            submitButton.form.submit();
        }
        else {
            currForm.elements['extraSubmitWhy'].value = todoFromButton;
            currForm.submit();
        }
    }
    catch (e) {
        button_entsperren(currentButton);
        button_entsperren(submitButton);
    }
     return true;
}

//oeffnen je nach Wert von String type das Stationsbild, Detailbild, Kundenbild zum bearbeiten
function openGrafikPopup(type, statUrlPicLinkvars)  {
    var bildArt;
    switch (type)    {
        case 'station':
              bildArt = 'station_station';
              break;
        case 'detail':
              bildArt = 'station_detail';
              break;
        case 'kunden':
              bildArt = 'station_kunde';
              break;
        default:
          return false;
    }
  //hier nun das eig. Fenster oeffnen
  openStatWindow('/cc-common/upload_img.php?' + statUrlPicLinkvars
                            + '&art=' + bildArt, 900, 610, 80, 50);
  return false;
}

// oeffnen eines Popups zur Anzeige/Verwaltung mehrerer Grafiken pro Station
function openGrafikVerwaltungPopup(statUrlPicLinkvars){
	openStatWindow('/stationsverw/station_grafik.php?'+ statUrlPicLinkvars,
									900, 610, 80, 50);
	return false;
}

function openGrafikVorschauPopup(statUrlPicLinkvars){
	openStatWindow('/stationsverw/station_grafik_vorschau.php?'+ statUrlPicLinkvars,
									800, 550, 150, 80, 'grafikVorschauPopup');
	return false;
}


//hilfsfunktion zum oeffnen des popup mit den Autos der station
//kann wenn changeWhat UND changeObjID auch schreiben ....
function openStationAutoPopup(stationID, sessKey, setStatDefaultToAutopos)    {
    openStatWindow('/stationsverw/station_auto.php?key='+ sessKey
                            + '&station_id=' + stationID + ' &setStatDefaultToAutopos='
                            + setStatDefaultToAutopos, 600,500, 50, 80);
}

//hilfsfunktion zum oeffnen des popup um bei DEAKTIVIERUNG eine
//Ersatzheimatstation fuer die Kunden auszuwaehlen
function openChangeHeimStatPopup(stationID, sessKey)    {
    openStatWindow('/stationsverw/heimatstation_auswahl.php?key='+ sessKey
                            + '&station_id=' + stationID, 400,230, 230, 170);
}

//oeffnet eine popup in der stationsverwaltung mit einem Namen
//dieser name kann ueberschrieben werden, so das man auch - wenn n#214;tig mehrerer fenster gleichzeitig offen hat
// z. B. mit 'newWindow' es wird ein random-Name erzeugt oder
// 'grafikVorschauPopup' für die Vorschau
var stationPopup;
function openStatWindow(url,x,y,l,t)   {
     //Standartname fuer alle mit dieser Funtkion erzeugten POPUPs
     var nameStr = "stationPopup";
     //wenn der 5. optionale Parameter auf 'newWindow' gesetzt ist,
     //wird per Zufallszahl ein Popup mit anderem Namen erzeugt
    if(openStatWindow.arguments[5] && openStatWindow.arguments[5] == 'newWindow') {
           nameStr = nameStr + "_" + Math.random().toString().substr(2);
    }
    else if (openStatWindow.arguments[5] && openStatWindow.arguments[5] == 'grafikVorschauPopup') {
    	nameStr = 'grafikVorschauPopup';
    }


    //hier nun das Fenster oeffnen
    stationPopup = window.open(url, nameStr, "width=" + x + ",height=" + y + ",scrollbars=yes, menubar=no, status=no, resizable=yes");
    //hier wird nun versucht das Fenster nochmal aus die passende groesse zu bringen
    try
    {
        stationPopup.moveTo(l, t);
        stationPopup.resizeTo(x, y);
        stationPopup.resizeBy(10,45);
        if(stationPopup.focus) stationPopup.focus();
     }
     catch(e)        {   }
      return false;
}

/**
 *	Schliessen des Eigenschaftsdialogs fuer die Stationsbilder. Wenn Popu fuer das Hochladen
 * noch offen ist, wird es mit geschlossen. Bislang ohne Nachfrage.
 */
function closeGrafikVerwaltungPopup()
{
	// dann ist noch das Hochladenfenster aktuell
	if (stationPopup != null && stationPopup.name == "grafikVorschauPopup")
	{
		if (stationPopup.closed != true)
		{
				stationPopup.close();
}
	}
	//opener.document.location.reload();
	window.close();
}

// wenn die Auswahl auf feste_stellplätze "Nein" fällt, wird im Kartenbereich der Button zum 
// Upload einer KML-Datei bereitgestellt
function behandleStellplatzFestJaNein(_kmlDateiBereitsDa) {
  
  // regelung ob der KML-Upload angezeigt wird oder nicht
  var checkb = document.forms['station_data'].elements['feste_stellplaetze'];
  for ( var int = 0; int < checkb.length; int++) {
    if(checkb[int].value == 'J' && checkb[int].checked == true) {
      // upload knopp
      jQuery('#id_btn_uploadKml').attr("disabled", true);
      jQuery('#id_kmlFileUpload').css("visibility", "hidden");
      jQuery('#id_kmlFileUpload').css("display", "none");
      jQuery('#id_btn_uploadKml').css("text-decoration", "line-through");
      // knöppe für anzeigen, ändern, löschen 
      jQuery('#id_zeigeKmlInKarte').attr("disabled", true);
      jQuery('#id_uploadNewKmlFile').attr("disabled", true);
      jQuery('#id_deleteKmlFile').attr("disabled", true);
      jQuery('#id_zeigeKmlInKarte').css("text-decoration", "line-through");
      jQuery('#id_uploadNewKmlFile').css("text-decoration", "line-through");
      jQuery('#id_deleteKmlFile').css("text-decoration", "line-through");
      return true;
    }
    else if(checkb[int].value == 'N' && checkb[int].checked == true) {
      // wenn schon eine KML hochgeladen wurde, dann neneneeee, nich anzeigen...
      if(_kmlDateiBereitsDa == true) {
        jQuery('#id_kmlFileUpload').css("margin-bottom", "0");
        jQuery('#id_kmlFileUpload').css("margin-top", "0");
        // knöppe für anzeigen, ändern, löschen 
        jQuery('#id_zeigeKmlInKarte').attr("disabled", false);
        jQuery('#id_uploadNewKmlFile').attr("disabled", false);
        jQuery('#id_deleteKmlFile').attr("disabled", false);
        jQuery('#id_zeigeKmlInKarte').css("text-decoration", "none");
        jQuery('#id_uploadNewKmlFile').css("text-decoration", "none");
        jQuery('#id_deleteKmlFile').css("text-decoration", "none");
        return true;
      }
      jQuery('#id_btn_uploadKml').attr("disabled", false);
      jQuery('#id_kmlFileUpload').css("visibility", "visible");
      jQuery('#id_btn_uploadKml').css("text-decoration", "none");
      jQuery('#id_kmlFileUpload').css("display", "block");
      return true;
    }
  }
}

// blendet das Formular zum Upload einer (neuen) KML-Datei ein
function updateKmlFile()  {
  jQuery('#id_btn_uploadKml').attr("disabled", false);
  jQuery('#id_kmlFileUpload').css("visibility", "visible");
  jQuery('#id_btn_uploadKml').css("text-decoration", "none");
  jQuery('#id_kmlFileUpload').css("display", "block");
  //den aufrufenden Button disablen
  jQuery('#id_uploadNewKmlFile').css("text-decoration", "line-through");
  jQuery('#id_uploadNewKmlFile').attr("disabled", true);
}

//submitted das Stationsformular
//aber -> gezielt um File hochzuladen,  nur "feste_stellplaetze" wird noch mit ausgewertet
function uploadKmlFile() {
  theForm = document.forms["station_data"];
  //changing the enctype to send files 
  theForm.enctype = "multipart/form-data";
  theForm.elements['extraSubmitWhy'].value = "saveKmlFile";
  theForm.submit();
}

//submitted das Stationsformular
//aber -> gezielt um KML-File zu löschen!
function loescheKmlFile() {
  theForm = document.forms["station_data"];
  //changing the enctype to send files 
  theForm.elements['extraSubmitWhy'].value = "deleteKmlFile";
  theForm.submit();
}

//blendet die Karte ein und stellt das (wenn vorhanden) KML-File dar ...
function showParkzoneInKarte(_kmlFileUrl) {
  xajax.showTag('stadtplan');document.location.href='#mapanchor';
  // wenn wir Daten haben, dann auch irgendwie darstellen ....
  var polyopts = {}; 
  // der kmlParser parse das gleich beim Konstruieren ...
  var _kmlParser = new kmlParser(_kmlFileUrl,jhalmap,polyopts);
}

//check uploadformular
function checkUploadFormular() {
  document.forms['file_upload'].elements['savebutton'].disabled = true;
  document.forms['file_upload'].elements['save'].value = "";

  if( (document.forms['file_upload'].elements['erklaerung'].value    != "" &&
      document.forms['file_upload'].elements['datei'].value         != "") ||
      document.forms['file_upload'].elements['documentID'].value     != "")  {
      document.forms['file_upload'].elements['savebutton'].disabled = false;
      document.forms['file_upload'].elements['save'].value ="speichern";
  }
}

//laden der Station in die Editieroberflaeche
function editAusweichStation(ausweichstat_id)
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
  if( xajax.requestIsRunning()) 
    {
      //Dau-Schutz
      return false;
  }
  hal2ajax_changeNeighbourStationManuelly(xajax.getFormValues('nachbar_stat_form'), ausweichstat_id);
  return true;
}

//eine Ausweichstation manuell ausschliessen
function kickAusweichStation(ausweichstat_id, theForm)
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //nix ajax...
  theForm.elements['saveNow'].value = 'kickMe';
  theForm.elements['nachbar_stat_id'].value = ausweichstat_id;
  theForm.submit();
  return true;
}

//eine Ausweichstation manuell ausschliessen
function importAusweichStation(ausweichstat_id, theForm)
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //nix ajax...
  theForm.elements['saveNow'].value = 'importMe';
  theForm.elements['nachbar_stat_id'].value = ausweichstat_id;
  theForm.submit();
  return true;
}

//laden der Stationsliste in die Editieroberflaeche
function changeAusweichStadt()
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
  if( xajax.requestIsRunning()) 
    {
      //Dau-Schutz
      return false;
  }
  hal2ajax_nachbarstatStadtIsChanged(xajax.getFormValues('nachbar_stat_form'));
  return true;
}

function changeAusweichStation()
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
  if( xajax.requestIsRunning()) 
    {
      //Dau-Schutz
      return false;
  }
  hal2ajax_createNeighbourStationManuelly(xajax.getFormValues('nachbar_stat_form'));
  return true;
}

function recalcMin()
{
  //warnung zeigen, das da was ist
  xajax.showInlineTag('id_status_warning');
  //id ist da, also werden wir nun mal via Ajax schauen, das wir die Daten nachladen
  if( xajax.requestIsRunning()) 
    {
      //Dau-Schutz
      return false;
  }
  xajax.unlockInputfield('station_list_id');
  stat = document.forms['nachbar_stat_form'].elements['station_list_id'].value;
  xajax.lockInputfield('station_list_id');
  hal2ajax_recalcMin(xajax.getFormValues('nachbar_stat_form'), stat);
  return true;
}

function actionsToDoIfMinutesChanged(theForm)
{
  theForm.elements['nachbarstat_entfernung'].value = theForm.elements['nachbarstat_entfernung'].value.toString().replace(/,/g, ".");
  return true;
}

/**
 * Datensatz aus Steuertabelle zur Fahrzeugueberfpruefung loeschen
 */
function stationCtrlCheckMailLoeschen(ctrlId)
{
	var aForm = document.forms['station_ctrl_auto'];
	var key = aForm.elements['key'].value;
	var svma = aForm.elements['sv_ma'].value;

	delOk = confirm("Sind Sie sicher das Sie den Datensatz löschen möchten?");
	if (delOk == false) {
	}
	else
	{
		var linkVar = "&ctrl_id="+ctrlId;
		location.href='/stationsverw/station_check_mail_loeschen.php?'+"key="+ key+"&sv_ma="+svma + linkVar;
	}
}

// Anhand der übergebenen ID wird die richtige Station ausgewählt in der Listbox und submittet
function mapclick(m_id)
{
    //Name des Auswahlformulars
   var _theStationList = document.getElementById('station_auswahl_liste');
   for (var _i = 0; _i < _theStationList.options.length; _i++) 
   {
        if (_theStationList.options[_i].value == m_id) 
       {
            _theStationList.options[_i].selected = true;
            sendStationListAuswahl(_theStationList);
            return true;
       }
   }
  return true;
}

/**
 * Koordinaten aus GMap ins Formular füllen
 */
function setKoordToEditForm(xkoordElem, ykoordElem, x, y) {
  var xElem = document.getElementById(xkoordElem);
  var yElem = document.getElementById(ykoordElem);
  if(xElem && yElem )
    {
      xElem.value = x;
      yElem.value = y;
      createDragableMarker(x, y);
    }
  contextmenu.style.visibility='hidden';
}
/**
 * Kordinaten des draggable marker in Formular übernehmen
 */
function setKoordsByMarker(xkoordElem, ykoordElem, markerObj) {
  var m = eval(markerObj);
  var origX = document.getElementById('id_x_koord_orig').value;
  var origY = document.getElementById('id_y_koord_orig').value;
  if(m) {
    var koord = m.getLatLng();
    setKoordToEditForm(xkoordElem, ykoordElem, koord.x, koord.y);
  }
  if(origX != document.getElementById('id_x_koord').value || origY != document.getElementById('id_y_koord').value)
    {
      if(confirm('Wollen Sie die Änderungen speichern?')) {
        var formObj = document.getElementById('station_data');
        formObj.submit();
      }
    }
}
/**
 * GMap anzeigen
 */
function showMapVorschau() {
  var mapContainer = document.getElementById('stadtplan');
  mapContainer.style.visibility = 'visible';
  mapContainer.style.display = 'block';
  ergebnisMarker = null;
  searchKoordsByAdress();
}
/**
 * GMap GeoSuche
 */
function searchKoordsByAdress() {
  var strasseObj = document.getElementById('id_anschrift_strasse');
  var strasseNrObj = document.getElementById('id_anschrift_hausnummer');
  var strassePlzObj = document.getElementById('id_anschrift_plz');
  var stadtObj = document.getElementById('id_station_stadt_name');  
  var geoX = document.getElementById('id_x_koord_orig').value;
  var geoY = document.getElementById('id_y_koord_orig').value;
  if(geoX != '' && geoY != '') {
    // hal2ajax_createGMap(geoX, geoY);
    createDragableMarker(geoX, geoY);
  } else {
    if('' != stadtObj.value) {
      // Funktion des links aus der ergebnisliste
      // setLinkFunction('gotoErgebnisMarker');
      // setLinkFunction('hal2ajax_createGMap');
      searchKoords(strasseObj.value, strasseNrObj.value, strassePlzObj.value, stadtObj.value, 'drag');
    }
  }
  if(contextmenu) {
    contextmenu.style.visibility='hidden';
  }
  setCenterByMarker('dmarker');
}

/**
 * GrafikVorschau des Stationsbildes
 */
function grafikVorschau() {
	aForm = document.forms['station_grafik_hochladen'];
	aForm.elements['addImage'].value = "ok";
    aForm.submit();
	return true;
}

/**
 * Löschen der Dateien im Arbeitsverzeichnis und beenden des Fensters
 */
function finishGrafikVorschau(doClose)
{
	  //id ist da, also werden wir nun mal via Ajax schauen, dass wir die Daten nachladen
	  if( xajax.requestIsRunning())
	    {
	      //Dau-Schutz
	      return false;
	  }

	  hal2ajax_loeschenTempGrafiken(xajax.getFormValues('station_grafik_hochladen'));

	  if (doClose)	  {
		  opener.document.location.reload();
		  window.close();
	  }
	  return true;
}

/**
 * Grafikvorschaufenster für Refresh vorbereiten und Submit
 * refreshValues 	'refresh' 	- alles ok
 * 					'error'		- Fehler beim hochladen
 */
function grafikVorschauRefresh(refreshValue)
{
	aForm = document.forms['station_grafik_hochladen'];
	aForm.elements['refreshOpener'].value = refreshValue;;
	aForm.submit();
	return true;
}

/**
 * Vorschaugrafik in DB abspeichern
 */
function grafikHochladen()
{
	// Erstmal schauen ob die Verwendung auch angegeben wurde
	if (!checkGrafikVorschauVerwendung())
	{
		button_entsperren(document.forms['station_grafik_hochladen'].elements['grafikLaden']);
		//grafikVorschauRefresh('error');
		return false;
	}

	//id ist da, also werden wir nun mal via Ajax schauen, dass wir die Daten nachladen
	 if( xajax.requestIsRunning())
	 {
	      //Dau-Schutz
	      return false;
	  }

	 hal2ajax_uploadStationGrafik(xajax.getFormValues('station_grafik_hochladen'));

	 return true;
}

/**
 * Loeschen einer Grafik aus der Oberflaeche,
 * @param	dokVerwaltungId	- 	Id des Bilddokument, dass geloescht werden soll
 * @param 	bildId -  Anzeigeindex
 * @return
 */
function grafikLoeschen(dokVerwaltungId, bildId, hal2Str, kubuStr, bubeStr)
{
	var aForm = document.forms['station_grafik'];
	var stationId = aForm.elements['station_id'].value;
	var key = aForm.elements['key'].value;
	var bildId = aForm.elements['bilderIndex'].value = bildId;
	var verwHal2 = hal2Str == 'checked';
	var verwKubu= kubuStr == 'checked';
	var verwBubest = bubeStr == 'checked';

	delOk = confirm("Sind Sie sicher das Sie das Bild löschen möchten?");
	if (delOk == false) {
	    button_entsperren(document.forms['station_grafik'].elements['grafikLoeschenBtn']);
	}
	else
	{
		var linkVar = "&dok_id="+dokVerwaltungId+"&bild_id="+bildId+"&hal2="+hal2Str+"&kubu="+kubuStr+"&bube="+bubeStr;
		location.href='/stationsverw/station_grafik_loeschen.php?'+'station_id='+stationId+"&key="+key + linkVar;
	}
}

/**
 * Speichern aller Aenderungen (loeschen, Textaenderungen, Zuordnungen) aller
 * Grafikobjekte
 * @param geloeschteGrafiken - Anzeigeindex bereits geloeschter Grafiken
 * @return
 */
function grafikAenderungenSpeichern(sortOrder)
{
	aForm = document.forms['station_grafik'];
	aForm.elements['save'].value = 'save';

	sortOrder = '';
	var table = document.getElementById('bilder_tabelle');
	var nextRow = table.firstChild;
	var lastRow = table.lastChild;
	while ( (nextRow.nodeType == 1 || nextRow.nodeType == 3) && nextRow != lastRow) {
		nextRow = nextRow.nextSibling;
		id = nextRow.id;
		if (id != null) {
			var ergebnis = id.search(/bildzeile_.+/);
			if (ergebnis != -1)		{
				// Sortierung fängt bei 1 an nicht bei 0
				var zahlStr = parseInt(id.slice(id.indexOf('_')+1, id.length))+1;
				if (sortOrder != '') {
					sortOrder += ',';
				}
				sortOrder += zahlStr;

			}
		}
	}
	aForm.elements['sortOrder'].value = sortOrder;
	aForm.submit();
	return true;
}

/**
 * Eine Zeile eine Grafik der Station nach unten schieben
 * @param zeilenNr
 * @return
 */
function grafikSchiebeRunter(zeilenNr)
{
	var table = document.getElementById('bilder_tabelle');

	// erst mal letztes Zeilenelement der aktuellen Grafik
	var nextRow = document.getElementById('schaltflaechenzeile_'+zeilenNr);
	var countExit = 0;
	var lastRow = table.lastChild;

	// suchen der übernächsten Bildzeile, davor soll der Bildblock eingehängt werden
	while ( (nextRow.nodeType == 1 || nextRow.nodeType == 3) && countExit < 2 && nextRow != lastRow) {
		nextRow = nextRow.nextSibling;
		id = nextRow.id;
		var ergebnis = -1;
		if (id != null) {
			ergebnis = id.search(/trennungzeile_.+/);
		}

		if (ergebnis != -1) {
			countExit++;
		}
	}
	// wenn wir das Ende erreicht haben dann hinten anfügen
	if (nextRow == lastRow)	{
		nextRow = null;
	}

	move = document.getElementById('trennungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('bildzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('verwendungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
    move = document.getElementById('beschreibungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('schaltflaechenzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
}

/**
 * Eine Zeile eine Grafik der Station nach oben schieben
 * @param zeilenNr
 * @return
 */
function grafikSchiebeHoch(zeilenNr)
{
	var table = document.getElementById('bilder_tabelle');
	// erst mal ersten Zeilenelement der aktuellen Grafik
	var nextRow = document.getElementById('trennungzeile_'+zeilenNr);
	var countExit = 0;
	var firstRow = table.firstChild;

	// suchen der übernächsten Bildzeile, davor soll der Bildblock eingehängt werden
	while ( (nextRow.nodeType == 1 || nextRow.nodeType == 3) && countExit < 1 && nextRow != firstRow) {
		nextRow = nextRow.previousSibling;
		id = nextRow.id;
		var ergebnis = -1;
		if (id != null) {
			ergebnis = id.search(/trennungzeile_.+/);
		}

		if (ergebnis != -1) {
			countExit++;
		}
	}
	// wenn wir das Ende erreicht haben dann hinten anfügen
	if (nextRow == firstRow)	{
		nextRow = null;
	}

	move = document.getElementById('trennungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('bildzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('verwendungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('beschreibungzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
	move = document.getElementById('schaltflaechenzeile_'+zeilenNr);
	table.insertBefore(move, nextRow);
}

/**
 *	Überprüfen ob mindestens eine Verwendung in der Vorschau ausgewählt wurde. Wenn nicht Warnung und HAL2 aktivieren.
 */
function checkGrafikVorschauVerwendung()
{
	aForm = document.forms['station_grafik_hochladen'];
	return (aForm.elements['upload_hal2'].checked || aForm.elements['upload_kubu'].checked || aForm.elements['upload_bubest'].checked)
}
/**
 * enable/disable die Schaltflaeche fuer das Hochladen des Bildes abhaengig ob mindestens eine Verwendung auch ausgewaehlt wurde.
 */
function enableGrafikVorschauHochladen()
{
	document.forms['station_grafik_hochladen'].elements['grafikLaden'].disabled = !checkGrafikVorschauVerwendung();
	return true;
}

/**
 * @param   selector [optional], default: '.jq-content-slider'
 *          weitere Selectoren ergeben sich wie folgt:
 *          Inhalt:  '.jq-'+jQuery(selector).attr('id')+'-item'
 *          Next-Button: jQuery(selector).attr('id')+'-next'
 *          Prev-Button: jQuery(selector).attr('id')+'-prev'
 *          Page-Nav: jQuery(selector).attr('id')+'-pager .jq-pager'
 *          HTML-Beispiel: /kundenbuchung/templates/3/partner_popup.tpl
 */
function init_contentslider()
{
    var selector = (arguments.length > 0 ? arguments[0] : '.jq-content-slider');
    var _data = jQuery(selector).data();
    var _options = jQuery.extend({
                    statusbar: false,
                    width: 320,
                    height: function(){var max_height = '';jQuery('.jq-'+jQuery(selector).attr('id')+'-item').each(function(){max_height = Math.max(max_height,jQuery(this).innerHeight());});return max_height;},
                    bnext: function(){return '#'+jQuery(selector).attr('id')+'-next';},
                    bprev: function(){return '#'+jQuery(selector).attr('id')+'-prev';},
                    axis: 'x',
                    navigator: function(){return '#'+jQuery(selector).attr('id')+'-pager .jq-pager';},
                    mousewheel: false,
                    duration: 500,
                    autoslide: false
                    },_data);

    jQuery(selector).ulslide(_options);
};

jQuery(document).ready(function(){
  /* Content-Slider initialisieren */
  init_contentslider();

  /* thickbox init */
  tb_init('.thickbox');//pass where to apply thickbox
  imgLoader = new Image();// preload image
  imgLoader.src = tb_pathToImage;

  /* wenn man nach dem Erstellen eines Polygons zum Polygon zoomen will, dann folgendes: */
  GEvent.addListener(jhalmap,G_EVENT_HAL_ADD_POLYGON,function(polygon){
      jQuery.log('hal2polygon added: ');
      jQuery.log(polygon.getBoundsZoomLevel()); // debugger
      polygon.zoomTo();
  });
});
