// Damit ein SyntaxHighlighting vorhanden ist
// <script type="text/javascript">

var create_orte = null;
var create_marker = null;
var delete_marker = null;
var visible_marker = null;

var adressmarker = new Array;
var ortmarker = new Array;
var contentmarker = new Array;
var weglinie = new Array;
var polyline = new Array;
var polylineKeys = new Array;
var gm_punkteset = new Array;
var loading_map = 0;
var marker_found = 0;
var marker_to_open = 0;
var refresh_query = null;

var the_form = 'gm_optionen';
var suche_begriff = '';
var level = 0;
var closed_level = null;
var db;
var map_id;
var imageseite_id;
var liste_ajax_refresh;

var d = document;

if(typeof hide_ladebalken != 'function'){
    function hide_ladebalken() {
        if (get_element('ajax-loader')) {
            get_element('ajax-loader').style.display = 'none';
        }
    }
}

function disable_form(){ 
    if(get_element('loading_map') != undefined) get_element('loading_map').style.display = 'block'; 
}
function enable_form(){
    if(get_element('loading_map') != undefined) get_element('loading_map').style.display = 'none'; 
}
function get_element(id){
    return document.getElementById(id); 
}
function create_element(url){
    var s=document.createElement('script');
    s.src=url;
    document.getElementsByTagName('head')[0].appendChild(s);
}
function set_cookie(key,value) { d.cookie = key+"="+value+"; path=/" }
function delete_cookie(key) { d.cookie = key+"=0; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT"; }
function read_cookie(key) {
    var i = d.cookie.indexOf(key+"=");
    var c = "";
    if(i>-1){
        var ende = d.cookie.indexOf("; ",i+key.length+1);
        if(ende == -1) ende = d.cookie.length;
        c = d.cookie.substring(i+key.length+1,ende);
    }
    return unescape(c);
}

if(typeof jQuery == 'function'){
    if($('#gm_ort').length > 0 && $('#gm_gebiet').length > 0){
        $('#gm_ort').change( function() {
            $('#gm_gebiet').val(0);
        });
        $('#gm_gebiet').change( function() {
            $('#gm_ort').val(0);
        });
    }
}

function show_video(id){
    if(id){
        timm4_mailer_box();
        create_element('/timm4maps/show_video.php?id='+id+'&div_id=timm4_mailer');
        big_div('timm4_mailer',320,240);
    }else if(get_element('timm4_mailer')){
        BigImg.closeBigImg();
        get_element('timm4_mailer').innerHTML = '';
    }
}

function show_kat(type, show, id, alle_gruppen, ab_kat) {
    if (alle_gruppen == undefined) {
        alle_gruppen = 0;
    }
    if (ab_kat == undefined) {
        ab_kat = 0;
    }
    if (get_element('map') != undefined) {
        ansicht = 'karte';
    } else {
        ansicht = 'liste';
    }

    if (ab_kat) {
        var box = 'show_kat_' + type + '_' + ab_kat;
    } else {
        var box = 'show_kat_' + type;
    }

    if (typeof(show_ladebalken) == 'function') {
        show_ladebalken(box, 2, -18);
    }

    var query = '?type=' + type
        + '&show=' + show
        + '&id=' + id
        + '&alle_gruppen=' + alle_gruppen
        + '&ab_kat=' + ab_kat
        + '&ansicht=' + ansicht
        + '&imageseite=' + imageseite_id
        + '&maps_id=' + map_id
        + '&db=' + db;

    if (typeof jQuery == "function") {
        $('#'+box).load('/timm4maps/checkboxes/show.php' + query, {}, function() { hide_ladebalken(); } );

    } else {
        var ajax = createRequest();
        ajax.open('get', '/timm4maps/checkboxes/show.php' + query, true);
        ajax.onreadystatechange = function() { ajaxwert_einfuegen(ajax, box) };
        ajax.send(null);
    }
}

function mark_kat(type, mark, id, alle_gruppen, ab_kat) {
    var callback = '';
    
    if (alle_gruppen == undefined) {
        alle_gruppen = 0;
    }
    if (ab_kat == undefined) {
        ab_kat = 0;
    }
    if (get_element('map') != undefined) {
        ansicht = 'karte';
    } else {
        ansicht = 'liste';
    }

    if (ab_kat) {
        var box = 'show_kat_' + type + '_' + ab_kat;
    } else {
        var box = 'show_kat_' + type;
    }

    if (typeof(show_ladebalken) == 'function') {
        show_ladebalken(box, 2, -18);
    }

    var query = '?type=' + type
        + '&mark=' + mark
        + '&id=' + id
        + '&alle_gruppen=' + alle_gruppen
        + '&ab_kat=' + ab_kat
        + '&ansicht=' + ansicht
        + '&imageseite=' + imageseite_id
        + '&maps_id=' + map_id
        + '&db=' + db;

    if (typeof jQuery == "function") {
        if (typeof(map) != 'undefined' || liste_ajax_refresh) {
            callback += ' map_refresh();';
        }
        if (typeof(init_js) == "function") {
            callback += ' init_js();';
        } else {
            callback += ' hide_ladebalken();';
        }
        $('#'+box).load('/timm4maps/checkboxes/show.php' + query, {}, function() { eval(callback) } );

    } else {
        var ajax = createRequest();
        ajax.open('get', '/timm4maps/checkboxes/show.php' + query, true);
        ajax.onreadystatechange = function() {
            if (ajax.readyState == 4) {
                get_element(box).innerHTML = ajax.responseText;
                if (typeof(map) != 'undefined') {
                    map_refresh();
                }
                hide_ladebalken();
            }
        };
        ajax.send(null);
    }
}

// Funktion die ausgefuehrt wird, wenn die Karte bewegt wurde
function moveend(){
    if(!loading_map){
        loading_map = 1;
        map_save_position();
        map_refresh();
    }
}

// Zoom zu einen Ort
function gehe_zu_ort(id){
    get_element("gm_ort").options[0].selected=true;
    create_element('/timm4maps/ajax_gehe_zu_ort.php?ort='+id);
}

// Karte, Liste aktualiesieren
function map_refresh(action) {
    var callback = '';
    var refresh_query;
    
    // Listenansicht (Ajax Refresh)
    if (liste_ajax_refresh) {
        
        if (typeof init_js == "function") {
            callback += ' init_js();';
        }
        
        get_element('ajax-loader-big').style.display = 'block';
        refresh_query = '?ansicht=liste&google_maps_box_id=' + google_maps_box_id + gm_query();
        refresh_query += '&write_google_maps_box_' + google_maps_box_id + '_page=1';
        refresh_query += '&content_id=' + content_id;
        if (action != undefined) {
            refresh_query += '&sort_results=' + action;
        }
        $('#write_google_maps_box_' + google_maps_box_id).load('/timm4maps/ajax_update_list.php' + refresh_query, {}, function() { eval(callback) } );
    
    // Punktebox
    } else if (document.getElementsByName("gm_punkteset").length > 0) {
        gm_punkte(imageseite_id,action);
    
    // Kartenansicht
    } else if (typeof(map) != 'undefined'){
        disable_form();
        refresh_query = '?ansicht=karte'+gm_query();
        refresh_query += '&'+bounds_query(1);
        refresh_query += '&imageseite='+imageseite_id+'&maps_id='+map_id+'&db='+db;

        if(action != undefined)	refresh_query += '&action='+action;
        if(marker_to_open)		refresh_query += '&marker_to_open='+marker_to_open;

        create_element('/timm4maps/ajax_update_marker.php'+refresh_query);
    }

    if(document.forms[the_form] == undefined && document.getElementsByName("gm_punkteset").length == 0) enable_form();
    if(typeof(hide_ladebalken)=='function') hide_ladebalken();

    loading_map = 0;
}

function gm_punkte(imageseite_id,action){

    disable_form();
    refresh_query = '?ansicht=karte'+gm_query();
    refresh_query += '&'+bounds_query(1);
    refresh_query += '&imageseite='+imageseite_id+'&maps_id='+map_id+'&db='+db;

    if(action != undefined)	refresh_query += '&action='+action;
    if(marker_to_open)		refresh_query += '&marker_to_open='+marker_to_open;

    // gecheckten Checkboxen
    var obj = document.getElementsByName("gm_punkteset");
    for(i=0; i < obj.length; i++) {
        if(obj[i].checked == true) {
            refresh_query += '&set[]='+obj[i].value;
            set_cookie(map_id+"punkteset_"+obj[i].value,1);
        } else {
            delete_cookie(map_id+'punkteset_'+obj[i].value);
        }
    }

    create_element('/timm4maps/ajax_punktebox.php'+refresh_query);
}

// Funktion die den Querystring mit den Werten der Checkboxen zurueckgibt und den Wert im Cookie speichert
function gm_query() {
    if(typeof(only_not_empty)=='undefined') only_not_empty = 0;

    var query = '';
    // Suchbegriff merken (wenn sich dieser aendert, gibts ein map_refresh())
    if(get_element('gm_suche_begriff') != undefined) 		suche_begriff = get_element('gm_suche_begriff').value;

    // Datumswerte
    if(get_element('gm_unterkuenfte_von') != undefined) 	query += '&unterkuenfte_von='+get_element('gm_unterkuenfte_von').innerHTML;
    if(get_element('gm_unterkuenfte_bis') != undefined) 	query += '&unterkuenfte_bis='+get_element('gm_unterkuenfte_bis').innerHTML;
    if(get_element('gm_veranstaltungen_von') != undefined) 	query += '&veranstaltungen_von='+get_element('gm_veranstaltungen_von').innerHTML;
    if(get_element('gm_veranstaltungen_bis') != undefined) 	query += '&veranstaltungen_bis='+get_element('gm_veranstaltungen_bis').innerHTML;

    // Werte auslesen
    if (document.forms[the_form] != undefined){
        var elts      = document.forms[the_form].elements;
        var elts_cnt  = elts.length;
        for (var i = 0; i < elts_cnt; i++) {
            whichElt = elts[i].id;
            name 	 = whichElt.substr(3).match(/\D+/);
            nummer   = whichElt.match(/\d+/);
            type     = elts[i].type;
            value    = elts[i].value;
            checked  = elts[i].checked;
            
            if (type == 'checkbox' || type == 'radio') {
                if (checked) {
                    value = checked ? value : 0;
                } else {
                    continue;
                }
            }
            
            if (name != 'null' && name != null) {
                if (nummer) {
                    query += '&' + name + '[' + nummer + ']=' + value;
                } else {
                    query += '&' + name + '=' + value;
                }
            }
        }
    }
    return query;
}

function change_page_marker(box,page,query,uri){
    if(box){
        if(typeof(show_ladebalken)=='function') show_ladebalken('loader_'+box,-2);

        query += '&page='+page;
        query += '&maps_id='+map_id;
        query += '&db='+db;

        if(typeof jQuery == "function"){
            $('#openmarker').load('/timm4maps/ajax_show_marker.php', { postdata : query }, function(){ hide_ladebalken(); });

        }else{
            var ajax = createRequest();
            ajax.open('post','/timm4maps/ajax_show_marker.php',true);
            ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            ajax.send(query);

            ajax.onreadystatechange = function() {
                if(ajax.readyState == 4) {
                    get_element("openmarker").innerHTML = ajax.responseText;
                    get_element('ajax-loader').style.display = 'none';
                }
            };
        }
    }
}

// Funktion die ausgefuehrt, wenn ein InfowWindow geschlossen wird
function close_marker(){
    // Loeschen des Cookies, in dem steht, dass ein Marker gefoeffnet ist
    is_open = read_cookie(map_id+"marker_open");
    if(is_open.substring(0,1)=='w'){
        HlPl("pPl", is_open.substring(1), 2, "#660033", true);
    }
    delete_cookie(map_id+"marker_open");
}

// Damit beim Druecken der Return Taste aktualisiert wird
function tastenverfolgung(evt) {
    if(get_element("gm_suche_begriff") != undefined) {
        var kc;

        if(!evt) evt = window.event;
        if(evt.which) kc = evt.which;
        else if(evt.keyCode) kc = evt.keyCode;

        if(kc==13 && typeof(map)!='undefined') {
            map_refresh();
        }
    }
}
d.onkeydown = tastenverfolgung;


if(typeof jQuery == 'function'){
    $('form[name="' + the_form + '"] select, form[name="' + the_form + '"] input').change(function() {
        map_refresh();
    });
}
