﻿// page functionality
function Validate(evt) {
	if ((document.getElementById("radSearchType2").checked) && (document.getElementById("selProvince").selectedIndex == 0)) {
		alert (varErrorProvince);
		document.getElementById("selProvince").focus();
		return CancelEvent(evt);
	}
	if ((document.getElementById("radSearchType2").checked) && (document.getElementById("selCity").selectedIndex == 0)) {
		alert (varErrorCity);
		document.getElementById("selCity").focus();
		return CancelEvent(evt);
	}
	if (document.getElementById("radSearchType3").checked) {
		if (document.getElementById("txtPostalCode").value == "") {
			alert (varErrorPostalCode);
			document.getElementById("txtPostalCode").focus();
			return CancelEvent(evt);
		}
		varPostalCodeFormat = "[A-Z|a-z][0-9][A-Z|a-z] [0-9][A-Z|a-z][0-9]";
		var objFormat = new RegExp(varPostalCodeFormat);
		var varResult = document.getElementById("txtPostalCode").value.match(objFormat);
		if (varResult == null) {
			alert (varErrorPostalCodeFormat);
			document.getElementById("txtPostalCode").focus();
			return CancelEvent(evt);
		}
	}
	return (true);
}

function SetFocus(varElement) {
	try {
		document.getElementById(varElement).focus();
	}
	catch (e) { }
}

// map launcher functionality
function LaunchMap(varBrokerID, varIconNum) {
    var varLink = "mapping.aspx?brokerid=" + varBrokerID + "&iconnum=" + varIconNum;
    window.open(varLink, "", "width=485, height=530, left=100, top=25");
}

// mapping functionality
function LoadMap() {
		objMap = new GMap2(document.getElementById("divResultsMap"));
		objMap.setCenter(new GLatLng(37.4419, -122.1419), 13);
		//objMap.disableScrollWheelZoom();
		AddMarkers();
}

function AddMarkers() {
	var objBrokerListing = null;
	var varLat = 0;
	var varLong = 0;
	var objBounds = new GLatLngBounds();
	
	for (i = 0; i < arrBrokerListings.length; i++) {
		objBrokerListing = arrBrokerListings[i];
		varLat = objBrokerListing.Lat;
		varLong = objBrokerListing.Long;
		var objPoint = new GLatLng(varLat, varLong);
		objMap.addOverlay(CreateMarker(objPoint, i + 1));
		objBounds.extend(objPoint);
	}
	
	objMap.setZoom(objMap.getBoundsZoomLevel(objBounds));
	objMap.setCenter(objBounds.getCenter());
}

function DisplayPopup(varIndex) {
	var objBrokerListing = arrBrokerListings[varIndex - 1];
	
	var varLat = objBrokerListing.Lat;
	var varLong = objBrokerListing.Long;
	var objPoint = objMap.fromLatLngToDivPixel(new GLatLng(varLat, varLong));			
	var varLatLong = objMap.fromDivPixelToLatLng(objPoint);
	var varHtml = objBrokerListing.ToHtml(true);
		
	objMap.openInfoWindowHtml(varLatLong, varHtml);
}

function CreateMarker(objPoint, varNumber) {
	var objBaseIcon = new GIcon();
	objBaseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	objBaseIcon.iconSize = new GSize(20, 34);
	objBaseIcon.shadowSize = new GSize(37, 34);
	objBaseIcon.iconAnchor = new GPoint(9, 34);
	objBaseIcon.infoWindowAnchor = new GPoint(9, 2);
	objBaseIcon.infoShadowAnchor = new GPoint(18, 25);
	
	var objIcon = new GIcon(objBaseIcon);
	objIcon.image = "library/mapping/marker" + varNumber + ".png";
	
	var objMarker = new GMarker(objPoint, objIcon);
	
	GEvent.addListener(objMarker, "mouseover", function() {
		DisplayPopup(varNumber);
	});
	
	return objMarker;
}

// page load functionality
function Load() {
	var objEvents = new EventArray();
	objEvents.Add(new Event("btnSubmit", "click", Validate));
	objEvents.Add(new Event("txtPostalCode", "keypress", SubmitKey));
	objEvents.AttachEvents();
}

var objMap = null;
var arrBrokerListings = new Array();
