(function($) {
	$.plugin.register( $baseUrl+"scripts/jquery/jqx/jquery.jmap.min", {fn:'jmap'} );

	var searchType = " organizations";
	var sortBy = "venue_name"
	var getOrganizations = function(stime, etime){
		$("#center .panel h4").text("finding"+searchType);
		$("#searchlist").empty();
		$.ajax({
		    url: $baseUrl+"data/organizations"
			,data: {q: $("#filter").val(), s: sortBy }
		    ,success: handleSearch
		    ,error: handleSearchError
		});
	};
	var handleSearchError = function(msg){};
	var handleSearch = function(data){
		$("#searchlist").html(data);
		var recs = $("#searchlist li");
		if(recs.length > 0){
			$("#center .panel h4").text(recs.length+(recs.length==1?searchType.substring(0,searchType.length-1):searchType)+" found");
		} else {
			$("#center .panel h4").text("No"+searchType+" found");
		}
	};
	var handleFilterSearch = function(e){
		if(e.keyCode == 13){
			getOrganizations();
		}	
	};
	var handleSortByClick = function(e){
		$("#sortby li.selected").removeClass("selected");
		$(e.target).addClass("selected");
		sortBy = $(e.target).attr("sort");
		getOrganizations();
	};
	var showAddressOnMap = function(address) {
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(address,
			function(point) {
				if (!point) {
					$("#gmap").html("No Address");
				} else {
					// Create our "tiny" marker icon
					var blueIcon = new GIcon(G_DEFAULT_ICON);
					//blueIcon.image = "http://danceful.com/images/icons/building.png";
					// Set up our GMarkerOptions object
					markerOptions = { icon:blueIcon };

					var map = new GMap2($("#gmap")[0]);
					map.setCenter(point, 14);
					var marker = new GMarker(point, markerOptions);
					map.addOverlay(marker);
					map.addControl(new GSmallZoomControl());
					//map.openInfoWindow(map.getCenter(), document.createTextNode($("#center h3").text()));
				}
			}
		);
	}
	
	$.danceful.organizations = function(){
		if($("#searchlist").length > 0){
			$("#sortby li").click(handleSortByClick);
			$("#formSearch").submit(function(){ return false; });
			$("#filter").keydown(handleFilterSearch);
			getOrganizations();
		}
		if($("#mapAddress").length > 0){
			showAddressOnMap($("#mapAddress").val());
		}
	};

	$(function(){ new $.danceful.organizations() });
})(jQuery);
