var mk_call_id = null;
function mk_reload(r) {
    if (mk_call_id) XHR.abort(mk_call_id);
    if (r == 'karta') {
            $('9202').style.display = 'block';
            $('mentorkatalogen_fill').innerHTML = '<center><br>Laddar mentorer<br><br><img src=\"/eg2/admin/images/ajax-loader.gif\"/></center>';
            $('mk_selector').value=0;
    } else {
            $('9202').style.display = 'none';
            $('mentorkatalogen_fill').innerHTML = '<center><br>Katalogen laddas<br><br><img src=\"/eg2/admin/images/ajax-loader.gif\"/></center>';
            set_shadow();
    }
    mk_call_id = XHR.bind({  url: 'mentorkatalogen.php?r='+r,
                             handler: mentor_loaded
    });    
}
function mentor_loaded(type, data, evt) {
  mk_call_id = null
  if (type != 'error') {    
    $('mentorkatalogen_fill').innerHTML = data;
    load_javascripts($('mentorkatalogen_fill'));
    if (window.refresh_drop_targets) refresh_drop_targets();
    set_shadow();
  }
}

function geocoder_http_callback(type, data, evt) {
  if (type != 'error') {
    alert(data);
  }
}

function geocoder_http(s) {
  var q = 'http://maps.google.com/maps/geo?q='+s+'&output=json&sensor=false&key=ABQIAAAAN5T-siRGzYQGrdzD190T_RReHUNnpngEH6ZMlxf_ieVyl-KcmxTHrds6aaZnlwvhgRdk_PcKST6CbA';
    XHR.bind({  url: q,
                handler: geocoder_http_callback
    });    
}

function reset_pos(id) {
    var cl_1 = { pid:id, name:'pos_lat', type:'setting', edit_value:'' };
    var cl_2 = { pid:id, name:'pos_lng', type:'setting', edit_value:'' };
    XHR.bind({  url: eg_url_path+'/admin/update_object.php',
                handler: function() {},
                content: cl_1
            });
    XHR.bind({  url: eg_url_path+'/admin/update_object.php',
                handler: function() {},
                content: cl_2
            });
}

var geo_calls = 0;
var marker_bounds;
function addLocation(response) {
    if (response.Placemark) {
        var place = response.Placemark[0];
            
        //update db
        var cl_1 = { pid:kartpos_data[response.name].ID, name:'pos_lat', type:'setting', edit_value:place.Point.coordinates[1] };
        var cl_2 = { pid:kartpos_data[response.name].ID, name:'pos_lng', type:'setting', edit_value:place.Point.coordinates[0] };
        XHR.bind({  url: eg_url_path+'/admin/update_object.php',
                    handler: function() {},
                    content: cl_1
                });
        XHR.bind({  url: eg_url_path+'/admin/update_object.php',
                    handler: function() {},
                    content: cl_2
                });
                              
                              
        var n = kartpos_data[response.name].namn;
        var point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        map.addOverlay(new GMarker(point, {title:n}));
        marker_bounds.extend(point);
    } else {
      geocoder.getLocations(response.name, addLocation);
      return;      
    }
    geo_calls--;
    if (geo_calls == 0) {
      map.setCenter(marker_bounds.getCenter(), map.getBoundsZoomLevel(marker_bounds)); 
    }
}

var kartpos_data = new Array;
function add_kartpos() {
  map.clearOverlays();
  marker_bounds = new GLatLngBounds;
  if (kartpos.length) {
    geo_calls = kartpos.length;
    for (var i = 0; i < kartpos.length; i++) {
      if (kartpos[i].lat && kartpos[i].lng) {
        var n = kartpos[i].na;
        var point = new GLatLng(kartpos[i].lat,
                                kartpos[i].lng);
        var marker = new GMarker(point, {title:n});
        var iw = '<img class="mkii" src="http://www2.ekolantbruk.se/eg2/data/img'+kartpos[i].im+'_50_50.jpg"/><b>' + kartpos[i].na + '</b><br>' + kartpos[i].pr + '<br>' + kartpos[i].iw;
        if (kartpos[i].pt) iw = iw + '<br><br><a href="?p=5817&m=' + kartpos[i].ID + '">Visa presentation &raquo;</a>'; 
        marker.bindInfoWindowHtml(iw);                                 
        map.addOverlay(marker);
        marker_bounds.extend(point);
        geo_calls--;
      } else if (kartpos[i].pnr != '') {
          var s = kartpos[i].pnr+',Sverige';
          kartpos_data[s] = { namn:kartpos[i].namn, ID:kartpos[i].ID };
          geocoder.getLocations(s, addLocation);
      }    
    }
  }
  if (geo_calls == 0) {
    map.setCenter(marker_bounds.getCenter(), map.getBoundsZoomLevel(marker_bounds)); 
  }  
}

var map, geocoder;
function initialize_map(typ, node) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(node);
    geocoder = new GClientGeocoder();    
    geocoder.setBaseCountryCode('se');    
    //geocoder.setCache(null); 
    map.addMapType(G_PHYSICAL_MAP);
    map.setCenter(new GLatLng(58.346149, 15.224689), 6);         
    switch (typ) {
      case 'mentor_liten':
        map.setZoom(3);
        break;
    }
    map.addControl(new GLargeMapControl3D()); 
          
    map.addControl(new GMenuMapTypeControl()); 
  }
}
function load_javascripts(node, level) { 
  if (node) {
      for (ci in node.childNodes) {
        child = node.childNodes[ci];
        if (child && child.tagName == 'SCRIPT') {
          //alert(child.innerHTML);
          if (child.getAttribute('type') == 'text/javascript')
            if (window.execScript) {
              window.execScript(child.innerHTML); // eval in global scope for IE
            } else window.eval(child.innerHTML);
        } else {
          //check subnodes recursivly according to level
        }
      }                      
  }
}