var xmlhttp;
var isIE;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
  try {
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  isIE = true;
 } catch (e) {
  try {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp=false;
  }
 }
@else
 xmlhttp=false;
@end @*/

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 try {
  xmlhttp = new XMLHttpRequest();
 } catch (e) {
  xmlhttp=false;
 }
}

var map;
var all_markers_ids = [];
var all_markers = [];
var bounds = new GLatLngBounds(0,0);
var geocoder = new GClientGeocoder();
var cluster;

 
function tooltipsTonen(infovenster,label) {
  var links_boven = map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
  var offset = map.getCurrentMapType().getProjection().fromLatLngToPixel(infovenster.getPoint(),map.getZoom());
  var anker_ico = infovenster.getIcon().iconAnchor;
  var breedte_ico = infovenster.getIcon().iconSize.width;
  var hoogte_label = 0;
  var positie = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - links_boven.x - anker_ico.x + breedte_ico + 2, offset.y - links_boven.y -anker_ico.y -hoogte_label)); 
  positie.apply(tooltips);
  tooltips.innerHTML = label;
  tooltips.style.visibility = "visible";
}
 
function createMarker(point,catid,catname,name,description,label,location,address,currentbid,timeleft,auctionurl,auctionid,marker_id,image) {
	
  var icon = new GIcon();
  icon.image = "/images/gmaps/pointer.png";
  
  icon.iconSize = new GSize(20,27);	
  icon.iconAnchor = new GPoint(10,27);
  icon.infoWindowAnchor = new GPoint(10,26);
  var popupwindow = new GMarker(point, {icon: icon, draggable: false, id: auctionid, title:label} );
  
  GEvent.addListener(popupwindow, "click", function() {

    var html = "<h4>" + name + "</h4><table border=0 width=350 cellpadding=2 background=\"/images/gmaps/bggoogle.jpg\"><tr><td width=270 valign=\"top\" class=\"smallfont\">"+description+"<br><br><b>Huidige bod: </b>"+currentbid+" euro<br><b>Tijd over: </b>"+timeleft+"<br><br><b><a href=\""+auctionurl+"\">Klik hier voor de veiling</a></b></td><td width=80 valign=\"top\"><div align=\"right\"><img src=\""+image+"\" border=\"1\"></div></td></tr><tr bgcolor=\"#a6a6a6\"><td colspan=\"2\" class=\"smallfont\"><img src=\"/themes/modern_silver/img/pixel.gif\" width=\"1\" height=\"1\"></td></tr></table>";
    var miw = map.getInfoWindow();
    popupwindow.openInfoWindowHtml(html);

    GEvent.addListener(miw, "closeclick", function() {
    });	


  });

  GEvent.addListener(popupwindow,"mouseover", function() {
    tooltipsTonen(popupwindow,label);

	popupwindow.setImage("/images/gmaps/pointer-focus.png");

  });
  
  GEvent.addListener(popupwindow,"mouseout", function() {
	tooltips.style.visibility = "hidden";

	popupwindow.setImage("/images/gmaps/pointer.png");

  }); 

  return popupwindow;
  
}
  
function markerLoader(category) {
	
  if (xmlhttp) {
	  
	if (!category) {  
	  var url="/cache/gmaps_feed.rss";
	}
	else {
	  var url="/cache/gmaps_feed.rss";	
	}
    
    xmlhttp.open("GET",url,true);

      xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
			
		  var xmldata = GXml.parse(xmlhttp.responseText);
		    
          var markers = xmldata.documentElement.getElementsByTagName("marker");
		  
          for (var i = 0; i < markers.length; i++) {
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lon = parseFloat(markers[i].getAttribute("lon"));
            var point = new GLatLng(lat,lon);
			var catid = markers[i].getAttribute("catid");
			if (catid.length < 2) {
			  catid = "0" + catid;
			}
            var catname = markers[i].getAttribute("category");			
            var name = markers[i].getAttribute("name");
            var label = markers[i].getAttribute("label");
			var address = markers[i].getAttribute("address");	
			var description = markers[i].getAttribute("description");
			var currentbid = markers[i].getAttribute("currentbid");				
			var timeleft = markers[i].getAttribute("timeleft");				
			var auctionurl = markers[i].getAttribute("auctionurl");	
			var auctionid = markers[i].getAttribute("auctionid");	
			var image = markers[i].getAttribute("image");	

			var marker_id = auctionid;
			
            var marker = createMarker(point,catid,catname,name,description,label,location,address,currentbid,timeleft,auctionurl,auctionid,marker_id,image);
			
			all_markers.push(marker);
		    all_markers_ids.push(marker_id);
			
            //map.addOverlay(marker);
			bounds.extend(point);
          }
		  cluster.addMarkers(all_markers);
		  cluster.refresh();
        }
        else {
	      alert("XML Error bij ophalen kaart data.");  
        }
      }
    }
  
    xmlhttp.setRequestHeader('Accept','message/x-formresult');
    xmlhttp.send(null);
    return false;
  }
  else {
	alert("Kaart data kan door uw browser niet opgehaald worden, gebruike een andere browser.");  
  }
}

function ClusterClick(args) {
	cluster.defaultClickAction=function(){
		map.setCenter(args.clusterMarker.getLatLng(), map.getBoundsZoomLevel(args.clusterMarker.clusterGroupBounds))
		delete cluster.defaultClickAction;
	}
	var html='<h4>' +args.clusteredMarkers.length+ ' Veilingen: </h4><table border=0 width=200 cellpadding=2 background=\"/images/gmaps/bggoogle.jpg\"><tr><td width=200 valign=\"top\" class=\"smallfont\"><div style="height:150px;overflow:auto;width:100%;"><ul>';
	for (i=0; i<args.clusteredMarkers.length; i++) {
		html+='<li><a href=\"javascript:cluster.triggerClick('+args.clusteredMarkers[i].index+')\">'+args.clusteredMarkers[i].getTitle()+'</a></li>';
	}
	html+='</ul></div><br><a href=\"javascript:void(0)\" onclick=\"cluster.defaultClickAction()\">Zoom in op deze Veilingen</a></b></td></tr><tr bgcolor=\"#a6a6a6\"><td colspan=\"2\"><img src=\"/themes/modern_silver/img/pixel.gif\" width=\"1\" height=\"1\"></td></tr></table>';
	args.clusterMarker.openInfoWindowHtml(html);
}

function showAddress(address) {
	var crossIcon = new GIcon();
	crossIcon.image = "/images/gmaps/cross.png";
	crossIcon.iconSize = new GSize(15, 14);
	crossIcon.iconAnchor = new GPoint(7, 7);
	markerOptions = {icon:crossIcon, clickable:false};
      geocoder.getLatLng(
        address,
        function(point) {
          if (!point) {
            //alert(address + " niet gevonden!");
			map.setCenter(new GLatLng(52.132633, 5.291266), 5);
          } else {
            map.setCenter(point, 10);
			map.addOverlay(new GMarker(point, markerOptions));
          }
        }
      );
}

function showCategory(address) {
	var crossIcon = new GIcon();
	crossIcon.image = "/images/gmaps/cross.png";
	crossIcon.iconSize = new GSize(15, 14);
	crossIcon.iconAnchor = new GPoint(7, 7);
	markerOptions = {icon:crossIcon, clickable:false};
      geocoder.getLatLng(
        address,
        function(point) {
          if (!point) {
            //alert(address + " niet gevonden!");
			map.setCenter(new GLatLng(52.132633, 5.291266), 5);
          } else {
            			map.setCenter(point, 8);
						map.addOverlay(new GMarker(point, markerOptions));          }
        }
      );
}
  
function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(52.132633, 5.291266), 5);
		map.enableScrollWheelZoom();
		// remove tooltips because here uses clusterMarkerTitle
		tooltips = document.createElement("div");
		map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltips);
		tooltips.id = "tt";
		//tooltips.style.visibility="hidden";
		tooltips.style.display="none";
		
		cluster = new ClusterMarker(map, {clusterMarkerTitle:'%count Veilingen, Klik voor meer info' , clusterMarkerClick:ClusterClick , fitMapMaxZoom :20 });
		markerLoader();
		
		showAddress('Brunnenallee 79 Brakel Duitsland');	
		}
}
