// Eigene Skripte zum Unterkunfts-Reservierungssystem


// Globale Variablen: Such-Assistent
window.SuchFortschritt = 0;
window.SucheGefunden = 0;

// Globale Variablen: Google Maps
var map = null;
var geocoder = null;
var title = '';


// Google Maps - Steuerelement initialisieren
// Quellen (angepasst): http://code.google.com/apis/maps/documentation/reference.html
function googlemaps_initialize(address, object) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById(object));
    geocoder = new GClientGeocoder();
    //map.setCenter(new GLatLng(37.4419, -122.1419), 13);
    geocoder.getLatLng(address, function(point){map.setCenter(point, 13);});
    map.setUIToDefault();
  } else {
      document.getElementById(object).innerHTML = 'Ihr Browser wird von dieser Kartenanwendung leider nicht unterst&uuml;tzt.';
  }
}

// Google Maps - Adresse anzeigen
// Quellen (angepasst): http://code.google.com/apis/maps/documentation/reference.html
function googlemaps_showAddress(address, neuertitel) {
//  title = neuertitel;
  if (geocoder) {
    geocoder.getLatLng(address,
      function(point) {
        if (!point) {
          //alert(address + " not found");
        } else {
          //map.setCenter(point, 13);
          var marker = new GMarker(point);
          map.addOverlay(marker);
          marker.bindInfoWindowHtml(neuertitel);
          //marker.openInfoWindowHtml(address);
        }
      }
    );
  }
}

// Seitenelemente ein- oder ausblenden
function toggle(control) {
	var elem = document.getElementById(control);
	if(elem.style.display == "none")
	{
		elem.style.display = "block";
	}
	else
	{
		elem.style.display = "none";
	}
}

// Alle Seitenelemente ein- oder ausblenden - UNFERTIG
function toggle_all() {
	
	var elem = document.getElementById(control);
	if(elem.style.display == "none")
	{
		elem.style.display = "block";
	}
	else
	{
		elem.style.display = "none";
	}
}

// Rück-Umwandlung von HTML-Sonderzeichen
function html_entity_decode(str) {
      var ta=document.createElement("textarea");
      ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
      return ta.value;
}

// Einen Link im neuen Fenster öffnen
// Beispielcode: <a href="datei.htm" onclick="FensterOeffnen(this.href); return false">Link mit Fenster</a>
function fensteroeffnen (strAdresse, strFeatures) {
    MeinFenster = window.open(strAdresse, "Zweitfenster", strFeatures);
    MeinFenster.focus();
}

// Captcha-Erzeugung
function isvalid() { 
    var msg = "";

    if (kontaktFormular.eMail.value.indexOf("@") < 1 || kontaktFormular.eMail.value.indexOf(".") < 1) {
            msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
    }

    if(kontaktFormular.nachName.value == "") {
            msg += "- Leeres Feld: Name::\n";
    }

    if(kontaktFormular.nachricht.value == "") {
            msg += "- Leeres Feld: Nachricht:\n";
    }

    if(msg == "") {
            return true;
    }
    alert(msg);
    return false;
}

// Passwort-Überprüfung
function passwort_check(strPW, strUser, objSteuerelement) {
    varURL = 'includes/passwort_test.php?pw=' + encodeURI(strPW) + '&user=' + encodeURIComponent(strUser);
    jQuerycontentloader(objSteuerelement, varURL);
}

// Passwort-Überprüfung
function kalender_erstellen(strMonat, strJahr, strZielFeld, strZielDiv, strZielTabelle, objSteuerelement) {
    jQuerycontentloader(objSteuerelement, 'includes/kalender.php?m=' + encodeURIComponent(strMonat) + '&y=' + encodeURIComponent(strJahr) + '&f=' + encodeURIComponent(strZielFeld) + '&d=' + encodeURIComponent(strZielDiv) + '&t=' + encodeURIComponent(strZielTabelle) + '&emb=true');
}

// Passwort-Überprüfung
function rechte_info(strRecht, objSteuerelement) {
    jQuerycontentloader(objSteuerelement, 'includes/rechte_info.php?recht=' + strRecht);
}

// Suche von Alternativen in der Zimmer-Suche
function suche_alternativen(strDatumAb, strDatumBis, strPersonen, strZimmerart, strUnterkunftsTyp, strPreisAb, strPreisBis, objSteuerelementZiel, strAenderung) {
    window.SuchFortschritt = window.SuchFortschritt + 1;
    jQuerycontentloader(objSteuerelementZiel, 'includes/suche_alternativen.php?ab=' + strDatumAb + '&bis=' + strDatumBis + '&personen=' + strPersonen + '&zimmerart=' + strZimmerart + '&unterkunftstyp=' + strUnterkunftsTyp + '&preisab=' + strPreisAb + '&preisbis=' + strPreisBis + '&aenderung=' + encodeURI(strAenderung));
//    var t=setTimeout("ausblenden(" + objSteuerelementZiel + ", " + objSteuerelementStatus + ")",5000);
}

// Setzt die Such-Variablen zurück
function suche_gefunden_ruecksetzen(intAnzahlVorgaenge) {
    window.SucheGefunden = 0;
    window.SuchFortschritt = intAnzahlVorgaenge;
}

// Setzt die Such-Variablen zurück
function suche_sortierung(strSortierung) {
    document.getElementById('sortierung').value = strSortierung;
    document.getElementById('sucheabschicken').click();
}

// Steuert die Anzeige von Elementen in der Zimmer-Suche
function suche_alternativen_aktualisieren(intGefunden, intWarenkorbVorhanden) {

    window.SuchFortschritt = window.SuchFortschritt - 1;
    window.SucheGefunden = window.SucheGefunden + intGefunden;
    objSteuerelement = document.getElementById('suche_alt');

//    if (window.SuchFortschritt<=0 || window.SuchFortschritt=='0') { // Wenn letztes Resultat vorliegt
//        if (window.SucheGefunden > 0) { // Wenn Resultate vorliegen, Haupt-Layer ausblenden und Platz freigeben
////            objSteuerelement.style.visibility = 'hidden';
////            objSteuerelement.style.display = 'none';
//            objSteuerelement.innerHTML = 'Es konnten keine Resultate f&uuml;r Sie gefunden werden. Hier individuelle Such-Tipps:';
//        } else { // Steuerelement-Inhalt aktualisieren
//            strText = 'Es wurden keine Zimmer oder Alternativen zu Ihrer Suche gefunden. Verändern Sie die Such-Optionen oder nutzen Sie die Tipps unten.';
//            if (intWarenkorbVorhanden!=0) strText = strText + ' Hinweis: Die Elemente in Ihrem Warenkorb wurden bei der Suche ausgelassen.'
//            objSteuerelement.innerHTML = strText;
////            alert(window.SucheGefunden);
//        }
//    }

}

// HTTP-Request-Funktionen aus dem Framework jQuery
function jQuerycontentloader(element, url) {
    $(element).load(url);
}

// Bild-Galerie-Funktion
function change_source(img_id, src){
    document.getElementById(img_id).src=src;
}

// Browsercheck von http://www.quirksmode.org/js/detect.html
function browsercheck(){

    var BrowserDetect = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++)	{
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {
                        string: navigator.userAgent,
                        subString: "Chrome",
                        identity: "Chrome"
                },
                { 	string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari",
                        versionSearch: "Version"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {		// for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                { 		// for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                           string: navigator.userAgent,
                           subString: "iPhone",
                           identity: "iPhone/iPod"
            },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

    };
    BrowserDetect.init();

    if (BrowserDetect.browser=="Explorer" && BrowserDetect.version < 7) {
        alert("Ihre Version von Microsoft Internet Explorer ist sehr alt. Dies kann zu Problemen in der Darstellung oder Verwendung dieser Seiten führen. Bitte laden Sie die neueste Version herunter oder probieren Sie Mozilla Firefox aus: www.mozilla.org.");
    } else if (BrowserDetect.browser=="Firefox" && BrowserDetect.version < 2) {
        alert("Ihre Version von Mozilla Firefox ist sehr alt. Dies kann zu Problemen in der Darstellung oder Verwendung dieser Seiten führen. Bitte laden Sie die neueste Version herunter: www.mozilla.org.");
    } else if (BrowserDetect.browser!="Explorer" && BrowserDetect.browser!="Firefox") {
        alert("Der von Ihnen verwendete Browser entspricht nicht den Empfehlungen für diese Seite. Sollten Sie auf Probleme stoßen, verwenden Sie bitte Mozilla Firefox (Version 3+) oder Microsoft Internet Explorer (Version 7+).");
    }

}

// Löscht für die Datums-Auswahl die Formate
function tabelle_format_loeschen(nur_klasse) {
    var t = document.getElementsByTagName('td');
    for(var i = 0; i < t.length; i++) {
        if (t[i].className==nur_klasse) {
            t[i].style.color = 'black';
            t[i].style.fontWeight = 'normal';
        }
    }
}

