var poi_lat;
var poi_lon;

var bounds = new GLatLngBounds();

function get_sx_icon() {
    var sx_icon        = new GIcon(G_DEFAULT_ICON);
    sx_icon.image      = "/common/img/app/multimap/sx-marker.png";
    sx_icon.iconSize   = new GSize(37, 29);
    sx_icon.iconAnchor = new GPoint(18, 29);
    sx_icon.infoWindowAnchor = new GPoint(18, 29);
    sx_icon.shadow     = "/common/img/app/multimap/shadow-sx-marker.png";
    sx_icon.shadowSize = new GSize(52, 29);
    return sx_icon;
}

var poi_markers = [];

var poi_icons = [];

var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.iconSize   = new GSize(29, 38);
baseIcon.iconAnchor = new GPoint(29, 38);
baseIcon.infoWindowAnchor = new GPoint(29, 38);

poi_icons["parking"] = new GIcon(baseIcon,"/common/img/app/multimap/icon-parkplatz.gif");
poi_icons["bank"] = new GIcon(baseIcon,"/common/img/app/multimap/icon-bank.gif");
poi_icons["restaurant"] = new GIcon(baseIcon,"/common/img/app/multimap/icon-gaststaette.gif");
poi_icons["fuel"] = new GIcon(baseIcon,"/common/img/app/multimap/icon-tankstelle.gif");



function create_poi_marker(point,category) {
    var marker = new GMarker(point,poi_icons[category]);
    // === Store the category and name info as a marker properties ===
    marker.mycategory = category;

    poi_markers.push(marker);
    return marker;
}


function show_poi(category) {
    for (var i=0; i<poi_markers.length; i++) {
        if (poi_markers[i].mycategory == category) {
            poi_markers[i].show();
        }
    }
    // == check the checkbox ==
    document.getElementById(category+"box").checked = true;
}

function hide_poi(category) {
    for (var i=0; i<poi_markers.length; i++) {
        if (poi_markers[i].mycategory == category) {
            poi_markers[i].hide();
        }
    }
    // == clear the checkbox ==
    document.getElementById(category+"box").checked = false;

}

//function show_poi_in_map(input_id){
//    var select_id = input_id;
//    var var_name = $('#' + select_id).attr('checked')?1:0;
//    if (var_name == 1) {
//
//        alert('checked');
//    }else{
//        alert('not checked')
//    }
//}


function show_poi_in_map(box,category){
    if (box.checked) {
        show_poi(category);
    } else {
        hide_poi(category);
    }
}




function gmap_ini(la, lo, level) {
    if (!level) {
        level = 'country';
    }
    switch (level) {
        case 'station': zoom = 14; break;
        case 'town'   : zoom = 11; break;
        case 'country': zoom =  6; break;
        default: zoom = 10;
    }
    var map   = new GMap2(document.getElementById("sx_seo_map"));
    var point = new GLatLng(la, lo);
    map.setCenter(point, zoom);
    map.addControl(new GMapTypeControl());
    map.addControl(new GSmallMapControl());
    map.addControl(new GScaleControl());
    if (level == 'station') {
        markerOptions = { 
            icon:get_sx_icon()
        };
        map.addOverlay(new GMarker(point,markerOptions));



        // display point of interest markers in map
        var latitude = $('#geo-latitude').val();
        var longitude = $('#geo-longitude').val();
        var cit = $('#cit').val();
        var bounds = map.getBounds().toString();

        bounds = bounds.replace(/[\(\) ]+/g, '');
        bounds = bounds.split(',');

        $.getJSON(self.location.protocol + "//" + self.location.host + "/php/seo/extend_map" , {
            minX:bounds[0],
            minY:bounds[1],
            maxX:bounds[2],
            maxY:bounds[3],
            poiX:latitude,
            poiY:longitude,
            cit:cit
        }, function(response) {

            var poi_object = eval(response);
            var bank = poi_object.rec.amenity.bank;
            var restaurant = poi_object.rec.amenity.restaurant;
            var fuel = poi_object.rec.amenity.fuel;
            var parking = poi_object.rec.amenity.parking;
            var poi_point;
            var lon;
            var lat;

            var marker;

            //parking
            for (var pa=0; pa<parking.length; pa++){
                lon = parking[pa].lon;
                lat = parking[pa].lat;
                poi_point = new GLatLng(lat, lon);
                marker = create_poi_marker(poi_point,'parking');
                $('#parkingbox-marker').show();
                map.addOverlay(marker);
            }
            //bank
            for (var ba=0; ba<bank.length; ba++){
                lon = bank[ba].lon;
                lat = bank[ba].lat;
                poi_point = new GLatLng(lat, lon);
                marker = create_poi_marker(poi_point,'bank');
                $('#bankbox-marker').show();
                map.addOverlay(marker);
            }
            //restaurant
            for (var re=0; re<restaurant.length; re++){
                lon = restaurant[re].lon;
                lat = restaurant[re].lat;
                poi_point = new GLatLng(lat, lon);
                marker = create_poi_marker(poi_point,'restaurant');
                $('#restaurantbox-marker').show();
                map.addOverlay(marker);
            }
            //fuel
            for (var fu=0; fu<fuel.length; fu++){
                lon = fuel[fu].lon;
                lat = fuel[fu].lat;
                poi_point = new GLatLng(lat, lon);
                marker = create_poi_marker(poi_point,'fuel');
                $('#fuelbox-marker').show();
                map.addOverlay(marker);
            }

//            show("fuel");
//            hide("restaurant");
//            hide("bank");
//            hide("parking");


        });

    }
    return map;
}


function gmap_add_station(map, la, lo, name, link, linkdesc) {
    var point   = new GLatLng(la, lo);
    bounds.extend(point);
    markerOptions = { 
        icon:get_sx_icon()
    };
    marker = new GMarker(point,markerOptions);
    GEvent.addListener(marker, "click", function() {
        var myHtml = name + '<br /><br /><a href="' + link + '">' + linkdesc + '</a>';
        map.openInfoWindowHtml(point, myHtml);
    });

    map.addOverlay(marker);
}

function gmap_center(map){
    map.setZoom(map.getBoundsZoomLevel(bounds));
    map.setCenter(bounds.getCenter());
}

// toggle fields in station.tpl
	
$(document).ready(function(){
    $('span.dirheader').click(function(e) {
        e.preventDefault();
        $(this).siblings('div.dirtext').slideToggle("normal");
    }).click();

    $('span.sx-seo-dictionary-key a').click(function(e) {
        e.preventDefault();
        letter = $(this).text();
        $('#sx-seo-dictionary ul').hide();
        $('ul#sx-seo-dictionary-list-' + letter.toLowerCase()).show();
    });
                
        
    // Elementdeklaration
    start_el 	 = $('input[name=start]');
    end_el   	 = $('input[name=end]');
    start_adr_el = $('input[name=start_adr]');
    end_adr_el   = $('input[name=end_adr]');
    adr_el   	 = $('input[name=adr]');
        
    // Werte auslesen
    dir   = $('input[name=dir]').val();
            
    // bei einem Reload sind u.U. die Formatierungen nicht mehr richtig
    // deshalb werden sie hier abhängig vom Zustand dir neu gesetzt
        
    if (dir && dir == 'from') {
            
        // Attributzuweisungen: Sichtbarkeit und readonly
        $(start_adr_el).attr('style','display:inline;');
        $(start_adr_el).attr('readonly','readonly');
                
        $(start_el).attr('style','display:none;');
        $(start_el).attr('readonly','readonly');
                
        $(end_el).attr('style','display:inline;font-style:normal;color:black;');
        $(end_el).removeAttr('readonly');
                                
        $(end_adr_el).attr('style','display:none;');
        $(end_adr_el).attr('readonly','readonly');
                
    } else if (dir && dir != 'from') {
            
        // Attributzuweisungen: Sichtbarkeit und readonly
        $(end_el).attr('style','display:none;');
        $(end_el).attr('readonly','readonly');
				
        $(start_el).attr('style','display:inline;font-style:normal;color:black;');
        $(start_el).removeAttr('readonly');
                
        $(end_adr_el).attr('style','display:inline;');
        $(end_adr_el).attr('readonly','readonly');
                
        $(start_adr_el).attr('style','display:none;');
        $(start_adr_el).attr('readonly','readonly');
    }

    $('#sx-seo-switchdir').click(function(e) {
        e.preventDefault();
            
        start_val = start_el.val(); 			// input name = start
        end_val   = end_el.val();				// input name = end
        start_adr_val   = start_adr_el.val();	// input name = start_adr
        end_adr_val   = end_adr_el.val();		// input name = end_adr
        adr_val   = adr_el.val();				// input name = adr
	        	        
        dir   = $('input[name=dir]').val();

        if (dir == 'to') {
            
            // Zuweisung der Werte in die inputs
            $(start_adr_el).val(end_adr_val);
            $(start_el).val(end_val);
            $(end_el).val(start_val);
            $(adr_el).val(adr_val);
            
            // Attributzuweisungen: Sichtbarkeit und readonly 
            $(start_adr_el).attr('style','display:inline;');
            $(start_adr_el).attr('readonly','readonly');
                
            $(start_el).attr('style','display:none;');
            $(start_el).attr('readonly','readonly');
                
            $(end_el).attr('style','display:inline;font-style:normal;color:black;');
            $(end_el).removeAttr('readonly');
            //alert("remove " + dir);
                
            $(end_adr_el).attr('style','display:none;');
            $(end_adr_el).attr('readonly','readonly');
                
        } else {
            
            // Zuweisung der Werte in die inputs
            $(end_el).val(start_val);
            $(start_el).val(end_val);
            $(start_adr_el).val("");
            $(adr_el).val(adr_val);
                
            // Attributzuweisungen: Sichtbarkeit und readonly 
            $(end_el).attr('style','display:none;');
            $(end_el).attr('readonly','readonly');
				
            $(start_el).attr('style','display:inline;font-style:normal;color:black;');
            $(start_el).removeAttr('readonly');
            //alert("remove " + dir);
                
            $(end_adr_el).attr('style','display:inline;');
            $(end_adr_el).attr('readonly','readonly');
                
            $(start_adr_el).attr('style','display:none;');
            $(start_adr_el).attr('readonly','readonly');
                
        }
        $('input[name=dir]').val(dir == 'from' ? 'to' : 'from');
    });

});

function sx_seo_save_pref(stationId){
    $.getJSON(self.location.protocol + "//" + self.location.host + "/php/seo/setfavstation", {
        station:stationId
    }, function(response) {
        //        alert(response.rec.toSource())
        $('#saveStation').hide();
    });
}


function sx_seo_get_additional_map_info(map, poiX, poiY, cit) {
    var bounds = map.getBounds().toString();

    bounds = bounds.replace(/[\(\) ]+/g, ''); 
    bounds = bounds.split(',');

    $.getJSON(self.location.protocol + "//" + self.location.host + "/php/seo/extend_map" , {
        minX:bounds[0],
        minY:bounds[1],
        maxX:bounds[2],
        maxY:bounds[3],
        poiX:poiX,
        poiY:poiY,
        cit:cit
    }, function(response) {
        });
}


function changePic(clicked_pic_id, the_pic_link, station_id){
    var pid = clicked_pic_id;
    var picture_path = the_pic_link;
    var path_length = picture_path.length;
    var begin_count = path_length - 5;
    var picturename = picture_path.substring(begin_count, path_length);
    var big_picture_path = "/sxstations/" + station_id + "/big/" + picturename;
    $('#startpic').attr("src", big_picture_path);
//
//    $('#' + temp_id).show();
//    $('#' + pid).hide();
//    temp_id = pid;
}

