var aStartupCoords = [43.6485936834387, -79.3853352889556];
var map, aRows, iPage, iListingsPerPage = 5;

window.onunload = function(){
	GUnload();
}

function Replace(sText, sReplace, sWith){
	var objRegExp = new RegExp(sReplace);
	return sText.replace(objRegExp, sWith);
}

function SearchListings(objForm){
	if(objForm.Type.value == "") return;
	var sURL = "/include/neighborhoods.php?cmd=search&neighborhood=" + iNeighborhoodID + "&type=" + objForm.Type.value + (objForm.Reviewed.checked ? "&reviewed=1" : "");
	var objXMLHttp = GXmlHttp.create();
	var objResults = document.getElementById("search_results");
	var objPager = document.getElementById("search_pages");
	objResults.innerHTML = "<em>Loading...</em>";
	objPager.innerHTML = "";
	
	objXMLHttp.onreadystatechange = function(){
		if(objXMLHttp.readyState == 4 || objXMLHttp.readyState == "complete"){
			if(objXMLHttp.status == 200){
				var sData = objXMLHttp.responseText;
				aRows = sData.split("\n");
				var objResults = document.getElementById("search_results");
				var objPager = document.getElementById("search_pages");
				var sHTML = "";
				objResults.innerHTML = "";
				
				if(sData.length == 0){
					objResults.innerHTML = "<em>Sorry, no results found.</em>";
					objPager.innerHTML = "";
					return;
				}
				
				for(i=0; i<iListingsPerPage; i++){
					if(i == aRows.length) break;
					aFields = aRows[i].split("|");
					sHTML += "<a href=\"" + aFields[2] + "\">" + Replace(aFields[1], "\\'", "'") + " <img src=\"/site/images/jumpto-gray.jpg\" border=\"0\" align=\"absmiddle\" /></a><div class=\"line\"></div>";
				}
				objResults.innerHTML = sHTML;
				
				if(aRows.length > iListingsPerPage){
					sHTML = "<p align=\"right\"><a href=\"javascript: SwitchPage(1);\">Next <img src=\"/site/images/next.jpg\" border=\"0\" align=\"absmiddle\" /></a></p>";
					objPager.innerHTML = sHTML;
				}
			}
		}
	}
	
	objXMLHttp.open("GET", sURL, true);
	objXMLHttp.send(null);
	
	iPage = 1;
}

function SwitchPage(iDirection){
	iPage+=iDirection;
	if(iPage > iPages) iPage = iPages;
	if(iPage < 1) iPage = 1;
	
	var sHTML = "";
	var iPages = Math.ceil(aRows.length / iListingsPerPage);
	var iStart = ((iPage - 1) * iListingsPerPage);
	var objResults = document.getElementById("search_results");
	var objPager = document.getElementById("search_pages");
	
	for(i=iStart; i<(iStart + iListingsPerPage); i++){
		if(i == aRows.length) break;
		aFields = aRows[i].split("|");
		sHTML += "<a href=\"" + aFields[2] + "\">" + Replace(aFields[1], "\\'", "'") + " <img src=\"/site/images/jumpto-gray.jpg\" border=\"0\" align=\"absmiddle\" /></a><div class=\"line\"></div>";
	}
	objResults.innerHTML = sHTML;
	
	if(iPage > 1 && iPage < iPages){
		sHTML = "<p align=\"right\"><a href=\"javascript: SwitchPage(-1);\"><img src=\"/site/images/previous.jpg\" border=\"0\" align=\"absmiddle\" /> Previous</a>&nbsp;&nbsp;&nbsp;<a href=\"javascript: SwitchPage(1);\">Next <img src=\"/site/images/next.jpg\" border=\"0\" align=\"absmiddle\" /></a></p>";
	}
	else if(iPage == iPages){
		sHTML = "<p align=\"right\"><a href=\"javascript: SwitchPage(-1);\"><img src=\"/site/images/previous.jpg\" border=\"0\" align=\"absmiddle\" /> Previous</p>";
	}
	else if(iPage == 1){
		sHTML = "<p align=\"right\"><a href=\"javascript: SwitchPage(1);\">Next <img src=\"/site/images/next.jpg\" border=\"0\" align=\"absmiddle\" /></p>";
	}
	objPager.innerHTML = sHTML;
}

function ShowProfile(){
	document.getElementById("button_profile").style.backgroundColor = "#F0F0F0";
	document.getElementById("button_map").style.backgroundColor = "#FFFFFF";
	document.getElementById("profile").style.display = "block";
	document.getElementById("map").style.display = "none";
}

function ShowMap(){
	document.getElementById("button_profile").style.backgroundColor = "#FFFFFF";
	document.getElementById("button_map").style.backgroundColor = "#F0F0F0";
	document.getElementById("profile").style.display = "none";
	document.getElementById("map").style.display = "block";
	if(aCoords) return;
	var sData = "cmd=get-locations&neighborhood=" + iNeighborhoodID;
	AJAXRequest("/include/neighborhoods.php", "GET", sData, function(sResponse, aError){
		if(!aError){
			aLocations = sResponse.split("\n");
			if(GBrowserIsCompatible()){
				try{
					map = new GMap2(document.getElementById("map"));
					var objPoint = new GLatLng(aStartupCoords[0], aStartupCoords[1]);
					map.setCenter(objPoint, 12);
					for(i=0; i<aLocations.length; i++){
						aListing = aLocations[i].split("|");
						eval("objMarker = new GMarker(new GLatLng(" + aListing[3] + ", " + aListing[4] + "));" +
							 "map.addOverlay(objMarker);" +
							 "GEvent.addListener(objMarker, 'click', function(){" +
							 "var objPoint = new GLatLng(" + aListing[3] + ", " + aListing[4] + ");" +
							 "var objLayer = document.createElement('div');" +
							 "objLayer.innerHTML = \"<strong><a href='" + aListing[5] + "'>" + unescape(aListing[0]) + "</a></strong> (<em>" + aListing[2] + "</em>)<br />" + unescape(aListing[1]) + "\";" +
							 "map.openInfoWindow(objPoint, objLayer);" +
							 "});");
					}
					map.addControl(new GMapTypeControl());
					map.addControl(new GSmallMapControl());
					map.setMapType(G_DEFAULT_MAP_TYPES);
				}
				catch(e){}
			}
			aCoords = true;
		}
	});
}