
// ---------------------- GOOGLE MAP FIND FISH FUNCTIONS -----------------------

	var geocoder = null;
	var map = null;
	var marker = [];	
    var gmarkers = [];
    var htmls = [];
    var ii = 0;	
	var resultTableHtml = "";
	
    var iconOut = new GIcon(); 
    iconOut.image = 'pics/mm_20_red.png';
    iconOut.shadow = 'pics/mm_20_shadow.png';
    iconOut.iconSize = new GSize(12, 20);
    iconOut.shadowSize = new GSize(22, 20);
    iconOut.iconAnchor = new GPoint(6, 20);
    iconOut.infoWindowAnchor = new GPoint(5, 1);

    function findfish(dowhat,myLNG,myLAT,myZoom) {	

		$("resultTable").innerHTML = '<img src="pics/loader_ani.gif" width="16" height="16" />';
		$('loader').innerHTML = '<img src="pics/loader_ani.gif" width="16" height="16" />';	
	
		var dowhat = parseInt(dowhat);
	
		switch(dowhat) {
			case 0:	// from scratch or catchid
				map = new GMap2($("map"));
				
				// === Set up the map types exactly like Google Maps ===
				// Add the Terrain Map Type
				map.addMapType(G_PHYSICAL_MAP);
				// Create a Hierercical map type control
				var hierarchy = new GHierarchicalMapTypeControl();
				// make Google Satellite Hybrid be the satellite default
				hierarchy.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, null, true);
				// add that control to the map
				map.addControl(hierarchy);	
				
				map.addControl(new GLargeMapControl());
				//map.addControl(new GMapTypeControl());
				map.addControl(new GScaleControl());
				map.addControl(new GOverviewMapControl());		
				map.enableDoubleClickZoom();				
				var center = new GLatLng(myLAT,myLNG);
				map.setCenter(center, myZoom);
				geocoder = new GClientGeocoder();	
				
				pars = "limit=100&orderBy=medDate&orderWay=DESC";	
				break
				
			case 1: // clear and search for new catches sort by medDate (added)
				pars = "limit=100&orderBy=medDate&orderWay=DESC";	
				map.clearOverlays();
				break
				
			case 2: // clear and search for new catches sort by date (caught)
				pars = "limit=100&orderBy=date&orderWay=DESC";	
				map.clearOverlays();
				break				

		} // switch			
		
		resultTableHtml = createResultTableTop();	// start resultTableHtml	
	
		url="genxml_index.php?"+pars+"&r="+Math.floor(Math.random()*1001);

        GDownloadUrl(url, function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
		  
		  if(markers.length) {		  
		  
			  for (var i = 0; i < markers.length; i++) {
				var id = parseInt(markers[i].getAttribute("id"));			  
				var fish = parseToHTML(markers[i].getAttribute("fish"));
				var weight = parseInt(markers[i].getAttribute("weight"));			
				var image = markers[i].getAttribute("image");			
				var date = markers[i].getAttribute("date");
				var member = markers[i].getAttribute("member");
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var type = parseInt(markers[i].getAttribute("type"));		
				var country = markers[i].getAttribute("country");			
				var marker = createMarker(lat, lng, id, fish, weight, image, date, member, type, country);
				if(lat && lng) {
					map.addOverlay(marker);
				}
			  }

			resultTableHtml += "</tbody></table>"; // end resultTableHtml
			// put the assembled resultTableHtml contents into the resultTable div
			$("resultTable").innerHTML = resultTableHtml;
			
			SortableTable.load();
		  }else{
			  $("resultTable").innerHTML = t_nocatches;
		  }
		  
		  $('loader').innerHTML = '';	
		  
        });
	
    }


    function createMarker(lat, lng, id, fish, weight, image, date, member, type, country) {

		
		var flag = '<img src="media/images/flags/'+country+'.gif"/>';

		if(weight) {
			var realweight = (Math.round(weight/10)/100) + ' kg';
		}else{
			var realweight = '';
		}

		if(parseInt(image)) {
			var icon_photo = '<img src="pics/icon_photo.gif" style="margin-left:2px" alt="' + t_photo + '" title="' + t_photo + '"/>';
		}else{
			var icon_photo = '';
			image = "0_t.jpg";
		}
		
		if(type) {
			var cnr = '<img style="float: right;" src="pics/cnrmini.gif"/>';
		}else{
			var cnr = '';
		}

		var clickHtml = '<a href="javascript:void(0)" onclick="javascript: myLightWindow.activateWindow({href: \'catchDetails.php?id=' + id + '\', title: \'' + t_moreinfo + '\', height:550, width:600, type:\'page\'});"/>';
		
		/* if map position */
		if(lat && lng) {
			var point = new GLatLng(lat,lng);
			
			var html = '<div class="infoWindow"><div class="infoWindowLeft" style="background-image:url(media/images/catches/' + image + ');">'+clickHtml+'<img src="templates/base/images/icons/spacer.gif" style="width:80px;height:80px;"></a></div><div class="infoWindowRight"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableStandard"><tr><td><strong>' + fish + ' ' + realweight + '</strong></td></tr><tr><td>' + cnr + date + '</td></tr><tr><td>'+flag+' <a href="' + member + '">' + member + '</a></td></tr><tr><td align="right">' + clickHtml + t_moreinfo + ' &raquo;</a></td></tr></table></div><div class="clear_both"></div></div>';  
	
			var marker = new GMarker(point, iconOut);
			
			// Switch icon on marker mouseover and mouseout
			GEvent.addListener(marker, "mouseover", function() {
			  marker.setImage('pics/mm_20_yellow.png');
			});
			GEvent.addListener(marker, "mouseout", function() {
			  marker.setImage('pics/mm_20_red.png');
			});	  
		  
			GEvent.addListener(marker, 'click', function() {
			  marker.openInfoWindowHtml(html);
			});
			
			gmarkers[ii] = marker;
			htmls[ii] = html;
		
			var linkcode = "<a href=\"javascript:myclick(" + ii + ")\" onmouseout=\"gmarkers["+ii+"].setImage(\'pics/mm_20_red.png\')\" onmouseover=\"gmarkers["+ii+"].setImage(\'pics/mm_20_yellow.png\')\">"+fish+icon_photo+"</a>";
		
			ii++;
			
		}else{
		/* if NO map position */
			var linkcode = clickHtml + fish + icon_photo + "</a>";
		}
		
        // add a line to the resultTable html, with click, mouseover and mouseout event handlers
        resultTableHtml += "<tr><td><div class=\"tdDate\">"+ date +"</div></td><td>"+linkcode+"</td><td>"+weight+"</td><td><div class=\"tdMember\"><a href=\""+member+"\">"+member+"</a></div></td><td>"+flag+"</td></tr>";	
		
      return marker;
    }
	
	
    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(t_cantfind + " " + address);
            } else {
              map.setCenter(point, 13);
              //var marker = new GMarker(point);
              //map.addOverlay(marker);
              //marker.openInfoWindowHtml(address);
            }
          }
        );
      }	  
    }

	
	
    // This function picks up the click and opens the corresponding info window
    function myclick(ii) {
	  gmarkers[ii].openInfoWindowHtml(htmls[ii]);
    }	
	
	function createResultTableTop() {	
		var myHtml = "<table width=\"260\" cellspacing=\"0\" class=\"sortable scroll\"><thead><tr><th class=\"sortfirstdesc\" style=\"width:60px;\">" + t_date + "</th><th >" + t_fish + "</th><th style=\"width:33px;\">" + t_weight + "</th><th>" + t_member + "</th><th style=\"width:18px;\"></th></thead><tbody>";
		return myHtml;
	}	
	
	
	function parseToHTML(str) 
	{ 
		str = str.split('&lt;').join('<');	
		str = str.split('&gt;').join('>');	
		str = str.split('&quot;').join('"');	
		str = str.split('&#39;').join("'");	
		str = str.split('&gt;').join('>');	
		str = str.split('&amp;').join("&");	
		return str; 
	} 
