/**
 * @company: Alias Project, Inc.
 * @author: Michael Aguiar <michaelaguiar@me.com>
 */
	var zipMatch;
    var map;
    var geocoder;
    var geocoder2;
	var theIcon = new GIcon(G_DEFAULT_ICON);
	theIcon.image = sl_map_end_icon;
	if (sl_map_end_icon.indexOf('flag')!='-1') {theIcon.shadow = add_base + "/icons/flag_shadow.png";}
	else if (sl_map_end_icon.indexOf('arrow')!='-1') {theIcon.shadow = add_base + "/icons/arrow_shadow.png";}
	else if (sl_map_end_icon.indexOf('bubble')!='-1') {theIcon.shadow = add_base + "/icons/bubble_shadow.png";}
	else if (sl_map_end_icon.indexOf('marker')!='-1') {theIcon.shadow = add_base + "/icons/marker_shadow.png";}
	else if (sl_map_end_icon.indexOf('sign')!='-1') {theIcon.shadow = add_base + "/icons/sign_shadow.png";}
	else {theIcon.shadow = add_base + "/icons/blank.png";}
	theIcon.iconSize = new GSize(sl_map_end_icon_width, sl_map_end_icon_height);

    function sl_load() {
    	
    	
    	
    	
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        geocoder2 = new google.maps.Geocoder();
        map = new GMap2(document.getElementById('map'));
		if (sl_map_overview_control==1) {
			map.addControl(new GOverviewMapControl());
		}
		map.addMapType(G_PHYSICAL_MAP);
		geocoder.getLatLng(sl_google_map_country, function(latlng) {
			map.setCenter(latlng, 2, sl_map_type);
			map.setUIToDefault();
		});
      }
	  
	if (sl_load_locations_default=="1") {
	var bounds = new GLatLngBounds();
	  markerOpts = { icon:theIcon };
      GDownloadUrl(add_base + "/data-xml.php", function(data, responseCode) {
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
		var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var distance = parseFloat(markers[i].getAttribute('distance'));
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));
		 var description = markers[i].getAttribute('description');
		 var url = markers[i].getAttribute('url');
		 var hours = markers[i].getAttribute('hours');
		 var phone = markers[i].getAttribute('phone');
		 var image = markers[i].getAttribute('image');
		 
			var marker = createMarker(point, name, address, "", description, url, hours, phone, image);
			map.addOverlay(marker);
			bounds.extend(point);
		}
		map.setCenter(bounds.getCenter(), (map.getBoundsZoomLevel(bounds)-1));
		map.setUIToDefault();
	  });
     }
	}

	function searchLocations() {
		if(($('.addressInput').val() === '' || $('.addressInput').val() === 'zip/postal code') && $('input[name="city"]').length > 0 && $('input[name="city"]').val() !== '' && $('input[name="city"]').val() !== 'enter city' && $('input[name="state"]').length > 0 && $('input[name="state"]').val() !== '' && $('input[name="state"]').val() !== 'enter state/province') {
			
			var address = $('input[name="city"]').val() + ', ' + $('input[name="state"]').val();
			
		} else {
	
			if($('.addressInput1').length > 0 && $('.addressInput1').val() !== '' && $('.addressInput1').val() !== 'zip/postal code') {
				var address = $('.addressInput1').val();
			} else {
				var address = $('.addressInput').val();
			}
			zipMatch = address;
		}
	
		
	
		geocoder2.geocode({ 'address': address }, function (results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				var location = results[0].geometry.location;
				searchLocationsNear(location, address);
		    } else {
		    	alert('error: ' + status);
			}
		});	
	
//		geocoder.getLatLng(address, function(latlng) {
//			if (!latlng) {
//				alert(address + ' not found');
//			} else {
//			 	searchLocationsNear(latlng, address); 
//			}
//		});
   }

	function searchLocationsNear(center, homeAddress) {	
    	var radius = document.getElementById('radiusSelect').value;
	 	var searchUrl = add_base + '/generate-xml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
	 	
     	GDownloadUrl(searchUrl, function(data, reponseCode) {
     		
     	
       		var xml = GXml.parse(data);
       		var markers = xml.documentElement.getElementsByTagName('marker');
       		map.clearOverlays();
	   
	   
	   		var theIcon = new GIcon(G_DEFAULT_ICON);
			theIcon.image = sl_map_home_icon;
			if (sl_map_home_icon.indexOf('flag')!='-1') {theIcon.shadow = add_base + "/icons/flag_shadow.png";}
			else if (sl_map_home_icon.indexOf('arrow')!='-1') {theIcon.shadow = add_base + "/icons/arrow_shadow.png";}
			else if (sl_map_home_icon.indexOf('bubble')!='-1') {theIcon.shadow = add_base + "/icons/bubble_shadow.png";}
			else if (sl_map_home_icon.indexOf('marker')!='-1') {theIcon.shadow = add_base + "/icons/marker_shadow.png";}
			else if (sl_map_home_icon.indexOf('sign')!='-1') {theIcon.shadow = add_base + "/icons/sign_shadow.png";}
			else {theIcon.shadow = add_base + "/icons/blank.png";}
			theIcon.iconSize = new GSize(sl_map_home_icon_width, sl_map_home_icon_height);
		
			var bounds = new GLatLngBounds();
			markerOpts = { icon:theIcon };
			point = new GLatLng (center.lat(), center.lng());
			bounds.extend(point);
      		var html = '<div id="sl_info_bubble"><span class="your_location_label">Your Location:</span> <br/>' + homeAddress + '</div>';


       		var sidebar = document.getElementById('map_sidebar');
       		sidebar.innerHTML = '';
       		if (markers.length == 0) {
         		sidebar.innerHTML = '<div class="no_results_found"><h2>No results found.</h2></div>';
         		geocoder = new GClientGeocoder();
       			geocoder.getLatLng(sl_google_map_country, function(latlng) {
					map.setCenter(point, sl_zoom_level);
				});
         		return;
       		}
	   
			if($('#findHomeCare').length > 0 || $('#franchisePage').length > 0 || $('#careers').length > 0) {
		   		var resultCount = 3;
		   	} else {
		   		var resultCount = 4;
		   	}
		   
		   	$('#resultClosest').html('');
		   	$('#careersResults').html('');
		   
			var i;
			
			if(markers.length === 1) {
				resultCount = 1;
			}
		   
		   //alert(markers.length);
		   
		   
			for(i = 0; i < markers.length; i++) {
				var address = markers[i].getAttribute('address');
				var state_zip = address.split(',')[2];
				var state_zip_lower = state_zip.toLowerCase();
				var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
				var cityVal = city.replace(' ', '');
				var cityVal2 = cityVal.split(',');
				var cityQ = (queryString('c')) ? queryString('c') : '';
				var city2Q = cityQ.replace('-', ' ');
				var fixedCity1 = cityVal2[0].replace(' / ', '-');
				var fixedCity11 = fixedCity1.replace(' ', '-');         
				var fixedCity2 = fixedCity11.split(' ').join('-');
				var fixedCity = fixedCity2.split('.').join('-');
				var stateVal = state_zip.split(' ');
				var zipVal = stateVal[2].replace('&#44;', '');
				var homeAddress2 = homeAddress.split(' ')[0]
				var homeAddressLower = homeAddress2.toLowerCase();
				
				//alert(stateVal[2].replace('&#44;', ''));
				//alert('test');
//				if($('#findHomeCare').length === 0 && $('#franchisePage').length === 0 && $('#careers').length === 0) {
					
					if(state_zip_lower.indexOf(homeAddressLower) != -1 && city2Q !== $('#addressInput2').val()) {
						if($('#careers').length > 0) {
							window.location.href = '/care-with-us-in-' + fixedCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+fixedCity+'&s='+stateVal[1];
						} else {
							window.location.href = '/franchises/' + fixedCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+fixedCity+'&s='+stateVal[1];
						}
					}
				
					if($('#addressInput2').length > 0) {
				    	var cityDirect = $('#addressInput2').val().toLowerCase();
				    	var cityReturned = cityVal2[0].toLowerCase();
				    
				    	if(cityDirect === cityReturned && city2Q !== $('#addressInput2').val()) {
				    		if($('#careers').length > 0) {
				    			window.location.href = '/care-with-us-in-' + fixedCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+fixedCity+'&s='+stateVal[1];
				    		} else {
				    			//+ '?z='+zipVal+'&c='+cityVal2[0]+'&s='+stateVal[1]
				    			window.location.href = '/franchises/' + fixedCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+fixedCity+'&s='+stateVal[1];
				    		}
				    	}
					} 
				//}
			}
			
			
	       	for(i = 0; i < resultCount; i++) {
	         	var name = markers[i].getAttribute('name');
	         	var address = markers[i].getAttribute('address');
	         	var state_zip = address.split(',')[2]; 
	         	var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
	         	var stateVal = state_zip.split(' ');
	        	var cityVal = city.replace(' ', '');
	        	var cityVal2 = cityVal.split(',');
	         	var zipVal = (zipMatch) ? zipMatch : stateVal[2].replace('&#44;', '');
			 	var state_zip_lower = state_zip.toLowerCase();
			 	var homeAddress2 = homeAddress.split(' ')[0]
			 	var homeAddressLower = homeAddress2.toLowerCase();
			 	var cityQ = (queryString('c')) ? queryString('c') : '';
			 	var city2Q = cityQ.replace('-', ' ');
	         	var fixedCity1 = cityVal2[0].replace(' / ', '-');
	         	var fixedCity11 = fixedCity1.replace(' ', '-');         
	         	var fixedCity2 = fixedCity11.split(' ').join('-');
	         	var fixedCity = fixedCity2.split('.').join('-');
	         	var distance = parseFloat(markers[i].getAttribute('distance'));
	         	var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
			 	var description = markers[i].getAttribute('description');
			 	var url = markers[i].getAttribute('url');
			 	var hours = markers[i].getAttribute('hours');
			 	var phone = markers[i].getAttribute('phone');
			 	var image = markers[i].getAttribute('image');
	         	var marker = createMarker(point, name, address, homeAddress, description, url, hours, phone, image); 
	        
	        
	        	if($('#findHomeCare').length === 0 && $('#franchisePage').length === 0 && $('#careers').length === 0) {
	        		if(i === 0) {
	         			map.addOverlay(marker);
	        		}
	        	} else {
	        		map.addOverlay(marker);
	        	}
	        
	        	if(i===0) {
	        		var counter = '0';
	        	} else {
	        		var counter = '1';
	        	}
	         	var sidebarEntry = createSidebarEntry(marker, name, address, distance, homeAddress, url, counter);
	         	sidebar.appendChild(sidebarEntry);
	         	bounds.extend(point);
	       	}
	       
	       	//var address = markers[i].getAttribute('address');
	       	var state_zip = address.split(',')[2]; 
	       	var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
	       	var stateVal = state_zip.split(' ');
	       	var zipVal = stateVal[2].replace(', ', '');
	       	var zipVal2 = zipVal.replace('&#44;', '');
	       
	       	$.ajax({
	       		type: 'POST',
	       		url: '/wp-content/themes/nnd/state_result.php',
	       		data: 'state='+stateVal[1],
	       		success: function(response) {
	       			$('#resultState').html(response);
	       		}
	       	});
	       
			if($('#findHomeCare').length === 0 && $('#franchisePage').length === 0 && $('#careers').length === 0) {
				$('#map_sidebar').append('<div class="results_entry" style="padding:0 8px 0 10px;"><a href="/find-homecare?z='+zipVal2+'" style="border-bottom:none;">see more results</a></div>');
			}
			
			$('.addressInput').val('zip/postal code');
			$('#addressInput2').val('enter city');
			$('#state').val('enter state/province');
	       
		  	map.setCenter(bounds.getCenter(), (map.getBoundsZoomLevel(bounds)-1)); 
		  	
	  	});
	  	
   	}

    function createMarker(point, name, address, homeAddress, description, url, hours, phone, image) { 
	  markerOpts = { icon:theIcon };
      var marker = new GMarker(point, markerOpts);
	  
	  var more_html="";
	  if(url.indexOf("http://")==-1) {url="http://"+url;} 
	  if (url.indexOf("http://")!=-1 && url.indexOf(".")!=-1) {more_html+="| <a href='"+url+"' target='_blank' class='storelocatorlink'><nobr>" + sl_website_label +"</nobr></a>"} else {url=""}
	  if (image.indexOf(".")!=-1) {more_html+="<br/><img src='"+image+"' class='sl_info_bubble_main_image'>"} else {image=""}
	  if (description!="") {more_html+="<br/>"+description+"";} else {description=""}
	  if (hours!="") {more_html+="<br/><span class='location_detail_label'>Hours:</span> "+hours;} else {hours=""}
	  if (phone!="") {more_html+="<br/><span class='location_detail_label'>Phone:</span> "+phone;} else {phone=""}
	  
		var street = address.split(',')[0]; if (street.split(' ').join('')!=""){street+='<br/>';}else{street="";}
		var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
		var state_zip = address.split(',')[2]; 	  
		//address=street + city + state_zip;
	  
	  if (homeAddress.split(" ").join("")!="") {
		var html = '<div id="sl_info_bubble"><!--tr><td--><strong>' + name + '</strong><br>' + street + city + state_zip + '<br/> <a href="http://' + sl_google_map_domain + '/maps?saddr=' + encodeURIComponent(homeAddress) + '&daddr=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Directions</a> ' + more_html + '<br/><!--/td></tr--></div>'; // Get Directions link added by Moyo 5/23/08
	  }
	  else {
		var html = '<div id="sl_info_bubble"><!--tr><td--><strong>' + name + '</strong><br>' + street + city + state_zip + '<br/> <a href="http://' + sl_google_map_domain + '/maps?q=' + encodeURIComponent(address) + '" target="_blank" class="storelocatorlink">Map</a> ' + more_html + '<!--/td></tr--></div>';
	  }
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
		//t=GMap2.getInfoWindow();
		//t.reset(size:400);
      });
      return marker;
    }

	var resultsDisplayed=0;
	var bgcol="white";
	
	function createSidebarEntry(marker, name, address, distance, homeAddress, url, counter) {
		document.getElementById('map_sidebar_td').style.display='block';
		var div = document.createElement('div');
		var street = address.split(',')[0]; 
		var city = address.split(',')[1]; if (city.split(' ').join('')!=""){city+=', ';}else{city="";}
		var state_zip = address.split(',')[2]; 
		if(url.indexOf("http://")==-1) {url="http://"+url;} 
		if (url.indexOf("http://")!=-1 && url.indexOf(".")!=-1) {link="<a href='"+url+"' target='_blank' class='storelocatorlink'><nobr>" + sl_website_label +"</nobr></a>&nbsp;|&nbsp;"} else {url=""; link="";}
			  
		var stateVal = state_zip.split(' ');
		var cityVal = city.replace(' ', '');
		var cityVal2 = cityVal.split(',');
		var zipVal = stateVal[2].replace('&#44;', '');
		
		var pattern = " ", re = new RegExp(pattern, "g");
		var pattern2 = '/', re = new RegExp(pattern2, 'g');
		var replaceCity = cityVal2[0].split(' ').join('-');
		
		replaceCity = replaceCity.replace(pattern2, '');
		
		if($('#careers').length > 0) {
			var franchiseLink = '/care-with-us-in-' + replaceCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+replaceCity+'&s='+stateVal[1];
		} else {
			var franchiseLink = '/franchises/' + replaceCity + '-' + stateVal[1] + '?z='+zipVal+'&c='+replaceCity+'&s='+stateVal[1];
		}
		
		
		var html = '<center><table width="96%" cellpadding="4px" cellspacing="0" class="searchResultsTable"><tr><td class="results_row_left_column"></td><td class="results_row_center_column"><a href="'+franchiseLink+'" name="'+cityVal2[0]+'" class="storelocatorlink">'+ city + stateVal[1] +'</a></td></tr></table></center>'; 
		
		
		var pathname = window.location.pathname;
		var cleanPath = pathname.replace('/', '');
		var splitPath = cleanPath.split('-');
		
		if(splitPath[0] === 'care') {
			if(counter === '0') {
				//var careersHTML = '<div class="box10"><div class="col16"><h4>'+ city + stateVal[1] +'</h4></div><div class="col17"><div class="btn-about"><a href="http://survey.constantcontact.com/survey/a07e2wzs83ug9uq15oo/a012ugtxepru5/greeting">APPLY NOW</a></div><div class="btn-about"><a href="'+franchiseLink+'">LEARN MORE</a></div></div><br class="fix" /></div><div class="box10-bot"></div>';
			}
		} else {
			
			var careersHTML = '<div class="box10"><div class="col16"><h4>'+ city + stateVal[1] +'</h4></div><div class="col17"><div class="btn-about"><a href="'+franchiseLink+'">LEARN MORE</a></div></div><br class="fix" /></div><div class="box10-bot"></div>';
		}
	
		
		div.innerHTML = html;
		$('#careersResults').append(careersHTML);
		$('#resultClosest').append(html);
		//$('#resultState').html();
		$('#homecare-search-result, #otherh5, #location-list-others').show();
		div.className='results_entry';
		resultsDisplayed++;
		
		GEvent.addDomListener(div, 'click', function() {
			GEvent.trigger(marker, 'click');
		});
		++counter;
		return div;
    }
    
function queryString(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
