function ktiMap(mapID, lat, lng, ne_lat, ne_lng, sw_lat, sw_lng) {
    mapEl = $(mapID);

    var co = new google.maps.LatLng(lat,lng);
    var ne = new google.maps.LatLng(ne_lat,ne_lng);
    var sw = new google.maps.LatLng(sw_lat,sw_lng);

    var bounds = new google.maps.LatLngBounds();
    bounds.extend(co);
    bounds.extend(ne);
    bounds.extend(sw);

    var map = new google.maps.Map(mapEl, {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: co,
        streetViewControl: false,
        mapTypeControl: false
    });
    map.fitBounds(bounds);

    var marker = new google.maps.Marker({
      position: co,
      map: map
    });
}

window.addEvent('domready', function() {
    var ktiSelects = $$('form.kti_search_frame div.searchstep select');
    ktiSelects.each(function(ktiS) {

        ktiS.addEvent('change', function() {
            var pForm = ktiS.getParent('form');
            var thS = pForm.getElements('select.th_select')[0];
            var kaS = pForm.getElements('select.ka_select')[0];
            var zmS = pForm.getElements('select.zm_select')[0];

            var formQ = pForm.toQueryString() + '&field=' + ktiS.getProperty('name');

            var thOs = thS.getElements('option');
            var kaOs = kaS.getElements('option');
            var zmOs = zmS.getElements('option');

            var ktiJSONRemote = new Request.JSON({
                url: '/typo3conf/ext/nf_kti_suche/ajax.php',
                secure: false,
                onException: function(headerName, value) {
                    ktiSelects.unspin();
                },
                onFailure: function(xhr) {
                    ktiSelects.unspin();
                },
                onRequest: function() {
                    ktiSelects.spin();
                },
                onComplete: function() {
                    ktiSelects.unspin();
                },
                onSuccess: function(responseJSON, responseText) {

                    $$('form.kti_search_frame div.searchstep').unspin();
                    var t = responseJSON.t;
                    var tv = thS.value;
                    thS.empty();
                    Object.each(t, function(v, ky){
                        var to = new Element('option').set('text', v).setProperty('value', ky).inject(thS);
                        if(ky == tv) to.setProperty('selected', 'selected');
                    });

                    var k = responseJSON.k;
                    var kv = kaS.value;
                    kaS.empty();
                    Object.each(k, function(v, ky){
                        var ko = new Element('option').set('text', v).setProperty('value', ky).inject(kaS);
                        if(ky == kv) ko.setProperty('selected', 'selected');
                    });

                    var z = responseJSON.z;
                    var zv = zmS.value;
                    zmS.empty();
                    Object.each(z, function(v, ky){
                        var vo = new Element('option').set('text', v).setProperty('value', ky).inject(zmS);
                        if(ky == zv) vo.setProperty('selected', 'selected');
                    });

                },
                onError: function(text, error) {
                    $$('form.kti_search_frame div.searchstep').unspin();
                    alert('error: ' + text);
                }
            }).post(formQ);

        });
    });
});
