// Put the site url right here
var url = location.protocol+'//'+location.hostname+'/';

var baseIcon = new GIcon();
baseIcon.shadow = url+'filebin/icons/shadow.png';
baseIcon.iconSize = new GSize(20, 20);
baseIcon.shadowSize = new GSize(46, 41);
baseIcon.iconAnchor = new GPoint(9, 9);
baseIcon.infoWindowAnchor = new GPoint(9, 9);
baseIcon.infoShadowAnchor = new GPoint(48, 52);
			
var global_markers = [];
var map;
var bounds;

function createMarker(point, index, html) {	

	var letter = String.fromCharCode('a'.charCodeAt(0) + index);
	var icon = new GIcon(baseIcon);
	if (index > -1 && index <= 25) {
		icon.image = url+'filebin/icons/' + letter + '.png';
	} else {
		icon.image = url+'filebin/icons/blank.png';
	}
	var marker = new GMarker(point, icon);
	global_markers[index] = marker;
	//var marker = new GMarker(point);
	if (html) {
		GEvent.addListener(marker, "click", function(){
			marker.openInfoWindowHtml(html);
		});
	}
	return marker;
}
function triggerLocation(show_marker) {
	GEvent.trigger(global_markers[show_marker], 'click');
}

function initLocator() {
	map = new GMap2($("#locatorMap").get(0));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(38.479395, -90.703125), 3);
	bounds = new GLatLngBounds();
}

function loadLocator() {

	var zip = $("#locatorZIPField").val();
	var dist = $("#locatorDistField").val();

	if(zip == 'postal code, city, state, or province') {
		zip = '';	
	}
		
	//clear previous results
	$('#locatorLeft').html('Searching...');
	global_markers = [];
	map.clearOverlays(); 	
	bounds = new GLatLngBounds();

    //ONLY PERFORM SEARCH IF ZIP EXISTS
    if (zip != '') {

        GDownloadUrl(url+'resources/xml/map_xmlDev.php?b&zip='+zip+'&dist='+dist, function(data, responseCode) {
    
            var xml = GXml.parse(data);		
            var markers = $(xml).find('marker');
            var centroid_lat = 0;
            var centroid_lng = 0;
            var no_results = true;
            var num_results = 0;
            var marker_list_items_html = '';
            var search_location = $(xml).find('search_location').text() || zip;
                    
            for (var i = 0; i < markers.length; i++) {
                
                num_results++;
                
                var $marker = $(markers[i]);
                
                var lat = parseFloat($marker.find('lat').text()); 
                var lng = parseFloat($marker.find('lng').text()); 
                var html = $marker.find('html').text(); 
                var popup_html = $marker.find('popup_html').text(); 			
                
                // Get map center
                var point = new GLatLng(lat, lng);
                centroid_lat += lat;
                centroid_lng += lng;
                                    
                // Add point and popup to map
                map.addOverlay(createMarker(point, i, popup_html));			
    
                bounds.extend(new GLatLng(lat, lng));
                var oddEven = (i%2==0) ? 'even' : 'odd';
                marker_list_items_html += '<div class="locatorResult '+ oddEven +'">'+html+'</div>';
                no_results = false;	
            }
    
            // If there are results, adjust the center
            if (!no_results) {
                if (i > 0) {
                    centroid_lat = centroid_lat/i;
                    centroid_lng = centroid_lng/i;
                }
                if (centroid_lat != 0 && centroid_lng != 0) {
                    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
                }
                map.savePosition();
            }
            
            // Add results to left nav
            if(marker_list_items_html){
                $('#locatorLeft').html(
                    '<div class="locatorResults">'
                        + '<div class="locatorFoundResults">Found <strong>'+ num_results +'</strong> location'+ ((num_results==1) ? '' : 's') +' within <strong>'+ dist +' miles</strong> of <strong>'+ search_location +'</strong>.</div>'
                        + '<div class="locatorResultsList">' + marker_list_items_html + '</div>'
                    + '</div>'
                );
            } else if (zip) {
                $('#locatorLeft').html('<div class="locatorNoResults">No results found within <strong>'+ dist +'</strong> miles of <strong>'+ search_location +'</strong>.</div>');
            } else {
                $('#locatorLeft').html('<div class="locatorPleaseEnter">Please enter your search criteria above.</div>');
            }
            
        });
	
	} else {
	
    	$('#locatorLeft').html('Please enter your search criteria above.');
	
	}
	
	map.enableContinuousZoom();
}


