function addLoadEvent(func) 
{
	var oldonload = window.onload; 
	if (typeof window.onload != 'function'){ 
		window.onload = func
	} else { 
		window.onload = function() {
			oldonload();
			func();
		}
	}
}
function createMarker1(point, icon, popuphtml)
{
	var popuphtml = "<div id=\"popup1\">" + popuphtml + "<\/div>";
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(popuphtml);
	});
	return marker;
}

function createMarker2(point,popuphtml)
{
	 var baseIcon = new GIcon();
	 baseIcon.iconSize=new GSize(32,32);
	 baseIcon.shadowSize=new GSize(56,32);
	 baseIcon.iconAnchor=new GPoint(16,32);
	 baseIcon.infoWindowAnchor=new GPoint(16,0);
	 var thisicon = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon30.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon30s.png");
	
	var popuphtml = "<div id=\"popup1\">" + popuphtml + "<\/div>";
	
	var marker = new GMarker(point, thisicon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(popuphtml);
	});
	return marker;
}

function createMarker3(point,popuphtml)
{
	 var baseIcon = new GIcon();
	 baseIcon.iconSize=new GSize(32,32);
	 baseIcon.shadowSize=new GSize(56,32);
	 baseIcon.iconAnchor=new GPoint(16,32);
	 baseIcon.infoWindowAnchor=new GPoint(16,0);
	 var thisicon = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon5.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon5s.png");
	
	var popuphtml = "<div id=\"popup1\">" + popuphtml + "<\/div>";
	
	var marker = new GMarker(point, thisicon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(popuphtml);
	});
	return marker;
}

// script mapscode
var map = null;
var geocoder = null;
var latsgn = 1;
var lgsgn = 1; 
var marker = null;
var posset = 0;

function xz() 
{

	if (GBrowserIsCompatible()) 
	{
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng( coord_x, coord_y), zm);
		map.setMapType(G_NORMAL_MAP);
		map.addControl(new GLargeMapControl());
		map.addControl(new MapTypeControl());
		map.addControl(new GScaleControl());
		map.enableScrollWheelZoom();
		map.disableDoubleClickZoom();
		geocoder = new GClientGeocoder();
		
		marker = new GMarker(new GLatLng(coord_x, (coord_y-10)), {draggable: true});
		map.addOverlay(marker);

		icon0 = new GIcon();
		icon0.image = "http://maps.google.com/mapfiles/kml/pal3/icon55.png";
		icon0.shadow = "http://maps.google.com/mapfiles/kml/pal3/icon55s.png";
		icon0.iconSize = new GSize(30, 30);
		icon0.shadowSize = new GSize(31, 32);
		icon0.iconAnchor = new GPoint(9, 34);
		icon0.infoWindowAnchor = new GPoint(9, 2);
		icon0.infoShadowAnchor = new GPoint(18, 25);

		icon1 = new GIcon();
		icon1.iconSize = new GSize(30, 30);
		icon1.shadowSize = new GSize(31, 32);
		icon1.iconAnchor = new GPoint(9, 34);
		icon1.infoWindowAnchor = new GPoint(9, 2);
		icon1.infoShadowAnchor = new GPoint(18, 25);
		
		GEvent.addListener(map, 'click', function(overlay,point) 
		{
			if (overlay) 
			{
			} 
			else 
			{
				posset = 1;
				
				fc( point) ;
				if (zm == 0)
				{map.setCenter(point,7); zm = 1;}
				else
				{map.setCenter(point);}
				computepos(point);
			}
		});

		GEvent.addListener(map, 'singlerightclick', function(point,src,overlay) 
		{
			if (overlay) 
			{
				if (overlay != marker)
				{
				map.removeOverlay(overlay)
				document.getElementById("x_cord").value='';
				document.getElementById("y_cord").value='';
				} 
			}
		});

		GEvent.addListener(marker, "dragend", function() 
		{
			var point = marker.getLatLng();
			posset = 1;
			
			if (zm == 0)
			{map.setCenter(point,7); zm = 1;}
			else
			{map.setCenter(point);}
			computepos(point);
		});


		GEvent.addListener(marker, "click", function()
		{
			var point = marker.getLatLng();
			marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6));
			computepos (point);
		});
	}
}
function computepos (point)
{
	var latA = Math.abs(Math.round(value=point.y * 1000000.));
	var lonA = Math.abs(Math.round(value=point.x * 1000000.));

	if(value=point.y < 0)
	{
		var ls = '-' + Math.floor((latA / 1000000));
	}
	else
	{
		var ls = Math.floor((latA / 1000000));
	}
	
	var lm = Math.floor(((latA/1000000) - Math.floor(latA/1000000)) * 60);
	var ld = ( Math.floor(((((latA/1000000) - Math.floor(latA/1000000)) * 60) - Math.floor(((latA/1000000) - Math.floor(latA/1000000)) * 60)) * 100000) *60/100000 );
	
	if(value=point.x < 0)
	{
	  var lgs = '-' + Math.floor((lonA / 1000000));
	}
	else
	{
		var lgs = Math.floor((lonA / 1000000));
	}
	
	var lgm = Math.floor(((lonA/1000000) - Math.floor(lonA/1000000)) * 60);
	var lgd = ( Math.floor(((((lonA/1000000) - Math.floor(lonA/1000000)) * 60) - Math.floor(((lonA/1000000) - Math.floor(lonA/1000000)) * 60)) * 100000) *60/100000 );
	
	document.getElementById("x_cord").value=point.y;
	document.getElementById("y_cord").value=point.x;
}
function showAddress()
{
	var address=document.getElementById("coordsearch").value;
	
	if (geocoder)
	{
 		geocoder.getLatLng(address,function(point)
 		{
 			if (!point)
 			{
 				alert(address + " not found");
 			}
 			else
 			{						
				posset = 1;
				map.setMapType(G_NORMAL_MAP);
				map.setCenter(point,11);
				marker.setPoint(point);
				//GEvent.trigger(marker, "click");
				if(redirect_point==false)
				{
					document.getElementById("x_cord").value=point.y;
					document.getElementById("y_cord").value=point.x;
					document.getElementById("point_title").value=address;
					document.getElementById("point_descr").value=address;
					document.getElementById("newpointfrom").submit();
				}
				else
				{
					window.open('/maps/coord/'+point.y+'/'+point.x+'/'+address+'/','_self');	
				}
 			}
	 	});
 	}
}
function fc( point )
{
	 var html = "";
	 html += html + "X, Y<br>" + point.toUrlValue(6);
	
	 var baseIcon = new GIcon();
	 baseIcon.iconSize=new GSize(32,32);
	 baseIcon.shadowSize=new GSize(56,32);
	 baseIcon.iconAnchor=new GPoint(16,32);
	 baseIcon.infoWindowAnchor=new GPoint(16,0);
	 var thisicon = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal3/icon46.png", null, "http://maps.google.com/mapfiles/kml/pal3/icon46s.png");
	
	 var marker = new GMarker(point,thisicon);
	 GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
	 map.addOverlay(marker);
	 if(redirect_point==true)
	 {
	 	window.open('/maps/coord/'+point.y+'/'+point.x+'/','_self');
	 }
}
function createMarker(point,icon, html) 
{
	 var html = "<div id='popup'>" + html + "<\/div>";
	 var marker = new GMarker(point,icon);
	 GEvent.addListener(marker, "click", function()
	 {
	 	marker.openInfoWindowHtml(html);
	 });
	 marker.openInfoWindowHtml(html);
	 return marker;
}
function reset()
{
	map.clearOverlays();
	marker = new GMarker(new GLatLng(coord_x, coord_y), {draggable: true});
	map.addOverlay(marker);
	marker.setPoint(map.getCenter());
	GEvent.addListener(marker, "dragend", function()
	{
		var point = marker.getLatLng();
		posset = 0;
		
		if (zm == 0)
		{map.setCenter(point,7); zm = 1;}
		else
		{map.setCenter(point);}
		computepos(point);
	});
	GEvent.addListener(marker, "click", function()
	{
		var point = marker.getLatLng();
		marker.openInfoWindowHtml(marker.getLatLng().toUrlValue(6));
		computepos (point);
	});
}
function reset1()
{
	marker.setPoint(map.getCenter());
}
// add load functions
function addPoints()
{
	/*
	for(var i = 0; i < newkmls.length; i++)
	{	
		var gx = new GGeoXml(newkmls[i]);
		map.addOverlay(gx);
	}
	*/
	
	for(var i = 0; i < newpoints.length; i++) 
	{
		var point = new GPoint(newpoints[i][1],newpoints[i][0]);
		var popuphtml = newpoints[i][4];
		var marker = createMarker1(point,newpoints[i][2],popuphtml);
		map.addOverlay(marker);
	}

	for(var i = 0; i < newvids.length; i++)
	{	
		var point = new GPoint(newvids[i][1],newvids[i][0]);
		var popuphtml = newvids[i][3];
		var marker = createMarker2(point,popuphtml);
		map.addOverlay(marker);
	}
	for(var i = 0; i < newpics.length; i++)
	{	
		var point = new GPoint(newpics[i][1],newpics[i][0]);
		var popuphtml = newpics[i][3];
		var marker = createMarker3(point,popuphtml);
		map.addOverlay(marker);
	}
}

addLoadEvent(xz);
addLoadEvent(addPoints);
