// JavaScript Document
var map;


function initialize() {
    if (GBrowserIsCompatible()) {
    	map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.4419, -110.1419), 2);
        map.setUIToDefault();
     }
}

function showAddress() {
	var address = $('#location').val();
	var city = $('#city').val();
	var state = $('#state').val();
	var zip_code = $('#zip_code').val();
	if(state == ''){
		alert('Please Enter State');
		$('#state').focus();
		return false;
	}
	if(city == ''){
		alert('Please Enter City');
		$('#city').focus();
		return false;
	}
	if(zip_code == ''){
		alert('Please Enter Zip Code');
		$('#zip_code').focus();
		return false;
	}
	if(address == ''){
		alert('Please Enter Location');
		$('#location').focus();
		return false;
	}
	var detailAddress = address + ', '+city + ', '+zip_code + ', '+state;
	geocoder = new GClientGeocoder();
	geocoder.getLocations(detailAddress, addAddressToMap);
}
function showLocation(lat, lon){
	map.clearOverlays();
	if(isNaN(parseFloat(lat))){
		return false;
	}
	if(isNaN(parseFloat(lon))){
		return false;
	}
	point = new GLatLng(lat,lon);
	map.setCenter(new GLatLng(lat, lon), 15);
    var marker = new GMarker(point, {draggable: true});
    GEvent.addListener(marker, "dragstart", function() {
    	marker.closeInfoWindow("lat:"+lat+" lon:"+lon);
    });
	GEvent.addListener(marker, "dragend", function() {
		map.setCenter(marker.getLatLng(), 15);											   
		var latlon = marker.getLatLng().toUrlValue();
		latlonArr = latlon.split(',');
		$('#lat').val(latlonArr[0]);
		$('#lon').val(latlonArr[1]);
	});
	map.addOverlay(marker);
}
function showLocationClient(lat, lon, text){
	map.clearOverlays();
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.image = "images/marker.png";
	baseIcon.iconSize = new GSize();
	baseIcon.shadowSize = new GSize(0,0);
	if(isNaN(parseFloat(lat))){
		return false;
	}
	if(isNaN(parseFloat(lon))){
		return false;
	}
	point = new GLatLng(lat,lon);
	map.setCenter(new GLatLng(lat, lon), 15);
    var marker = new GMarker(point, { icon:baseIcon });
	map.addOverlay(marker);
	marker.openInfoWindowHtml(text);
}
function showAllLocation(latLngs){
	var latlngbounds = new GLatLngBounds( );
	map.clearOverlays();
	for(cnt=0; cnt<latLngs.length; cnt++){
		lat = latLngs[cnt]['lat'];
		lon = latLngs[cnt]['lon'];
		var baseIcon = new GIcon(G_DEFAULT_ICON);
		baseIcon.image = "images/marker.png";
		baseIcon.iconSize = new GSize();
		baseIcon.shadowSize = new GSize(0,0);
		if(isNaN(parseFloat(lat))){
			return false;
		}
		if(isNaN(parseFloat(lon))){
			return false;
		}
		point = new GLatLng(lat,lon);
		latlngbounds.extend( point );
		var marker = new GMarker(point, { icon:baseIcon });
		map.addOverlay(marker);
	}
	 map.setCenter( latlngbounds.getCenter( ), map.getBoundsZoomLevel( latlngbounds ) );
}
function addAddressToMap(response) {
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	map.clearOverlays();
	if (!response || response.Status.code != 200) {
		alert("Sorry, we were unable to geocode that address");
	} 
	else {
    	place = response.Placemark[0];
		lat = place.Point.coordinates[1];
		lon = place.Point.coordinates[0];
		$('#lat').val(lat);
		$('#lon').val(lon);
        point = new GLatLng(lat,lon);
		map.setCenter(new GLatLng(lat, lon), 15);
        var marker = new GMarker(point, {draggable: true});
        GEvent.addListener(marker, "dragstart", function() {
          marker.closeInfoWindow("lat:"+lat+" lon:"+lon);
        });
        GEvent.addListener(marker, "dragend", function() {
		  map.setCenter(marker.getLatLng(), 15);											   
          var latlon = marker.getLatLng().toUrlValue();
		  latlonArr = latlon.split(',');
		  $('#lat').val(latlonArr[0]);
		  $('#lon').val(latlonArr[1]);
        });
		map.addOverlay(marker);
	}
}

function searchKey(key, val){
	var url = "store_locator.php?key="+key+"&val="+val;    
	$(location).attr('href',url);
}
function checkEnter(e, value){
	var characterCode //literal character code will be stored in this variable
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else{
	e = event
	characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		searchKey('zip_code', value);
	}
	else{
		return true 
	}
}

function enteredPost(){
	var val = $('#post_code').val();
	if(val =='Zip Code'||val==''){
		alert('Please Enter Post Code');
		return false;
	}
	else{
		searchKey('zip_code', val);
	}
}
