var map;
var days = 1/30 // to set cookies for last 7 days
var baseIcon;
var mapLat ;
var zoom;
var mapLon;
var request ;
var centerOverlay;
var makeXMLUrl;
var iconVF = "large_red_marker.png";
var iconHF = "large_yellow_marker.png";
var iconVR = "large_purple_marker.png";
var iconV = "large_green_marker.png";
var gpoint;
var gname;
var glocation;
var glatlon;
var gid;
var gcity;
var gpath;
var gvegan;
var icon;
var side_bar_html ='';  // global variable for listing 
var gmarkers = []; // array for marker collection 
var i = 0; 
var point ;
var selcheckboxVR="checked"; ;
var selcheckboxVF="checked" ;
var selcheckboxV="checked" ;
var selcheckboxHR="checked" ;


function changeImg()
{
	selcheckboxV = document.getElementById('checkboxV').checked;
	selcheckboxHR = document.getElementById('checkboxHR').checked;
	selcheckboxVR = document.getElementById('checkboxVR').checked;
	selcheckboxVF = document.getElementById('checkboxVF').checked;
	var sentgetUrl = '';

	if (selcheckboxV==true)
	{
		selcheckboxV="checked";
		sentgetUrl += '&amp;list[]=vegan';
	}
	if (selcheckboxVR==true)
	{
		selcheckboxVR="checked";
		sentgetUrl += '&amp;list[]=vegetarian';
	}
	if (selcheckboxVF==true)
	{
		selcheckboxVF="checked";
		sentgetUrl += '&amp;list[]=friendly';
	}
	if (selcheckboxHR==true)
	{
		selcheckboxHR="checked";
		sentgetUrl += '&amp;list[]=store';
	}

	
	baseIcon = new GIcon();
	baseIcon.image = "http://www.google.com/mapfiles/marker.png";
	baseIcon.shadow = "large_shadow.png";
	baseIcon.shadow = "/gmaps/large_shadow.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(6, 20);
	baseIcon.infoWindowAnchor = new GPoint(5, 1);
	map = new GMap2(document.getElementById("map"));

	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	
	var gLatLngObj = new GLatLng(mapLat, mapLon);
	map.setCenter(gLatLngObj, zoom) ;
	var markers = createVegRestMarker_center();
	map.addOverlay(markers);

	/**
	 * call this function while you will zoom in and zoom out the map.. set the cookies of cZoom variable
	 */
	GEvent.addListener(map,'zoomend',function(){
		  var cMapZoom = map.getZoom() ; 
		  createCookie('cZoom',cMapZoom,days)
		  zoom = cMapZoom;
    }); 
	
	//START GEvent Function When you click on map marker
	GEvent.addListener(map, "click", function(overlay, point) { 
	if (overlay && overlay.openInfoWindowHtml) { 
		overlay.openInfoWindowHtml(overlay.html); 
	} 
	}); 

	GEvent.addListener(markers, "dragstart", function() {
		  
    });
	
	
	GEvent.addListener(markers, "dragend", function() {
		  var gLatLng = markers.getLatLng();
		  var cMapLon = gLatLng.lat() ; 
		  var cMapLat = gLatLng.lng() ; 
		  var cMapZoom = map.getZoom() ; 
		  //map.centerAndZoom(new GPoint(cMapLon, cMapLat) , parseInt(cMapZoom));
		  createCookie('cLat',cMapLon,days);
		  createCookie('cLon',cMapLat,days);
		  createCookie('cZoom',cMapZoom,days)
		  mapLat = cMapLon;
		  mapLon = cMapLat;
		  zoom = cMapZoom;
		  changeImg();

    });
	
	//START variable declaration 
	request = GXmlHttp.create(); 
	makeXMLUrl = "proximityXML18.php?lat=" + mapLat + "&lon="+mapLon+"&distance="+mapDistance+"&"+randomNumber+ "&V="+selcheckboxV+"&VR="+selcheckboxVR+"&VF="+selcheckboxVF+"&HR="+selcheckboxHR;
	request.open("GET", makeXMLUrl, true);

	var markerToAdd; // Common variable for Adding marker
	side_bar_html ='';  // global variable for listing 
	gmarkers = []; // array for marker collection 
	i=0;
	request.onreadystatechange = function() 
	{ // START onreadystatechange
		if (request.readyState == 4) 
		{ // START if readyState

			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {
				lat = parseFloat(markers[i].getAttribute("lat"));
				lon = parseFloat(markers[i].getAttribute("lng"));
			
				if (lat && lon)  
				{
					entrytype = markers[i].getAttribute("type");
					vegonly = markers[i].getAttribute("vegonly");
					latlon = lat +','+ lon;
					id =  markers[i].getAttribute("id");
					gname =  markers[i].getAttribute("name");
					gid = markers[i].getAttribute("id");
					glocation = markers[i].getAttribute("location");
					gpoint = new GPoint(lon, lat);
					glatlon =  lat +','+ lon;
					gcity = markers[i].getAttribute("city");
					gpath = markers[i].getAttribute("path");
					gvegan = markers[i].getAttribute("vegan");
					var imgAdd='';
				
					if (entrytype ==2  ){// START entrytype 2
						markerToAdd = createFoodStoreMarker();
						imgAdd = '<img src="/gmaps/small_yellow_marker.png" alt="Health Food Store" width="12" height="20">'; 
					}	// END entrytype 2

					// START entrytype 1
					if (entrytype ==1){ 
						if (vegonly == 1){
							if (gvegan ==1 ) {
								markerToAdd = createVeganMarker();
								imgAdd ='<img src="/gmaps/small_green_marker.png" alt="Vegan Restaurant" width="12" height="20">';
						
							} 
							else 
							{
								markerToAdd = createVegRestMarker();
								imgAdd = '<img src="/gmaps/small_purple_marker.png" alt="100% Vegetarian Restaurant" width="12" height="20">'; 
							}
			
						}

						// if (vegonly == 0)
						else
						{
							markerToAdd = createVegFriendRestMarker();
							imgAdd = '<img src="/gmaps/small_red_marker.png" alt="Veg-friendly Restaurant" width="12" height="20">'; 
						}
					}
					// END entrytype 1
	 
					side_bar_html += imgAdd+'<a href="javascript:myclick(' + i + ')" class="style6">' + gname + '<\/a><br><div class="style4">'+glocation+'<br/>'+gcity+'<\/div><br>';
					gmarkers[i] = markerToAdd;
					map.addOverlay(markerToAdd);
				}// END lat && lon

			}// END for loop

		    if(side_bar_html=='') {
				side_bar_html ='Sorry, no results in the current location or this city is in one of the countries that has not yet been mapped.';
			}
			document.getElementById("side_bar").innerHTML = side_bar_html;

			var viewDetailListVar ='<a href="/disp_results_address.php?lat='+mapLat+'&amp;lon='+mapLon+'&amp;distance='+mapDistance + sentgetUrl+'">View detailed list</a><hr width="70%" size="1" noshade>';
			document.getElementById("viewDetailList").innerHTML = viewDetailListVar;
		}// END if readyState
		else {
			//document.write("<table style='position:fixed' height='600px' width='768px'><tr><td align='center' width='750px' valign='middle'><div style='color:red;'>Loading...</div></td></tr></table>");
		}
	}// END onreadystatechange
	request.send(null);

	
//END variable declaration 

}



// START function for center Marker
function createVegRestMarker_center()
{
	var myicon = new GIcon(baseIcon);
	myicon.image = "./center_marker.png";
	var marker = new GMarker(map.getCenter(), {icon: myicon, draggable:true});
	//var marker = new GMarker(map.getCenter(), myicon);
	var address = '('+ glocation  + ')';
	// Show this markers index in the info window when it is clicked
	var html = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">- Map Center -<br> To change the the center,<br>move this marker to new location,<br>or start a <a href=\"/search.html\">new search<\/a>. <br>You can also increase the radius.<\/font>";
	marker.html = html;
	return marker;
};
// END function for center Marker


// START function for Health food store Marker
function createFoodStoreMarker()
{
	icon = new GIcon(baseIcon);
	icon.image = iconHF;
	var marker = new GMarker(gpoint, icon);
	// Show this markers index in the info window when it is clicked
	var html = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>" + gname + "<\/b>" +  "<br>" + glocation + ", " + gcity+"<br>";
	var infoHtml = 'http://www.happycow.net/' + gpath + "#" + gid ;    
    html += '<a href = "' + infoHtml +  '"target="_blank">more info<\/a>' + ' * ';

	//add link to reviews
	var reviewsHtml = 'http://www.happycow.net/reviews.php?id=' + gid;
		html += '<a href = "' + reviewsHtml +  '"target="_blank">reviews<\/a>' + ' * '; 
	
	var directionsHtml = 'http://www.happycow.net/gmaps/get-map-direct.php?vid=' + gid ;
	
	html += '<a href = "' + directionsHtml + '"target="_blank">directions<\/a>' + "<br><i>links open in new windows<\/i><\/font>";
	
	marker.html = html;
	return marker;
};
// END function for Health food store Marker

// START function for Vegetarian 100%
function createVegRestMarker()
{
	icon = new GIcon(baseIcon);
	icon.image = iconVR;
	var marker = new GMarker(gpoint, icon);
	var address = '('+ glocation  + ')';
	// Show this markers index in the info window when it is clicked
	var html = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>" + gname + "<\/b>" +  "<br>" + glocation + ", " + gcity+"<br>";
    //add more info
	var infoHtml = 'http://www.happycow.net/' + gpath + "#" + gid ;    
    html += '<a href = "' + infoHtml +  '"target="_blank">more info<\/a>' + ' * ';

	//add link to reviews
    var reviewsHtml = 'http://www.happycow.net/reviews.php?id=' + gid;
    html += '<a href = "' + reviewsHtml +  '"target="_blank">reviews<\/a>' + ' * '; 
	
	var directionsHtml = 'http://www.happycow.net/gmaps/get-map-direct.php?vid=' + gid ;
	
	html += '<a href = "' + directionsHtml + '"target="_blank">directions<\/a>' + "<br><i>links open in new windows<\/i><\/font>";
	marker.html = html;
	return marker;
};
// END function for Vegetarian 100%

// START function for Vegetarian Friendly
function createVegFriendRestMarker()
{
	icon = new GIcon(baseIcon);
	icon.image = iconVF;
	var marker = new GMarker(gpoint, icon);
	var address = '('+ glocation  + ')';
	// Show this markers index in the info window when it is clicked
	var html = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>" + gname + "<\/b>" +  "<br>" + glocation + ", " + gcity+"<br>";

    //add more info
	var infoHtml = 'http://www.happycow.net/' + gpath + "#" + gid ;    
    html += '<a href = "' + infoHtml +  '"target="_blank">more info<\/a>' + ' * ';

	//add link to reviews
    var reviewsHtml = 'http://www.happycow.net/reviews.php?id=' + gid;
	html += '<a href = "' + reviewsHtml +  '"target="_blank">reviews<\/a>' + ' * ';
	var directionsHtml = 'http://www.happycow.net/gmaps/get-map-direct.php?vid=' + gid ;
	
	html += '<a href = "' + directionsHtml + '"target="_blank">directions<\/a>' + "<br><i>links open in new windows<\/i><\/font>";
	marker.html = html;
	return marker;
};
// END function for Vegetarian Friendly

// START function for vegan Marker
function createVeganMarker()
{
	icon = new GIcon(baseIcon);
	icon.image = iconV;
	var marker = new GMarker(gpoint, icon);
	var address = '('+ glocation  + ')';
	// Show this markers index in the info window when it is clicked
	var html = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>" + gname + "<\/b>" +  "<br>" + glocation + ", " + gcity+"<br>";
    //add more info
	var infoHtml = 'http://www.happycow.net/' + gpath + "#" + gid ;    
    html += '<a href = "' + infoHtml +  '"target="_blank">more info<\/a>' + ' * ';
	//add link to reviews
    var reviewsHtml = 'http://www.happycow.net/reviews.php?id=' + gid;

    html += '<a href = "' + reviewsHtml +  '"target="_blank">reviews<\/a>' + ' * ';
	var directionsHtml = 'http://www.happycow.net/gmaps/get-map-direct.php?vid=' + gid ;
	
	html += '<a href = "' + directionsHtml + '"target="_blank">directions<\/a>' + "<br><i>links open in new windows<\/i><\/font>";
	marker.html = html;
	return marker;
};
// END function for vegan Marker

// START function called when you Click the name of the right hand listing to pop up window on map
function myclick(i) {
	point = gmarkers[i].getPoint();
	map.setCenter(point,17);
	//map.centerAndZoom(point,2)
	GEvent.trigger(gmarkers[i], "click");
	GEvent.trigger(gmarkers[i], "dragend");
}
// END  function called when you Click the name of the right hand listing to pop up window on map

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}