
var gMap;var gBranding;var gCopyrightDiv;var gSummaryBox;var gDialogBox;var gSearchBox;var gPropertyCount;var gMapFormUpper;var gMapFormLower;var gDefaultLocation;var gLastListItem;var gLastListScrollPos;var gSuppressMultiples;var gAnimationRef;var gAnimationPrevFrame;var gAnimationSingleStepMode;var gAnimationRepeat;var gBounceItem;var gBounceRef;var gOverlayRef;var gOverlaidAll;var gPropertyCounter;var gBaseURL;var gParametersInit;var gParameters;var gStartCoordinates;var gStartZoom;var gStartType;var gStartTown;var gStartAge;var gStartMode;var gStartAgent;var gStartAgentSell;var gStartBrokerage;var gStartBrokerageSell;var gStartMinLotSize;var gStartMaxLotSize;var gStartMinHouseSize;var gStartMaxHouseSize;var gStartServices;var gStartFeatures;var gShowOnlyMarked;var gStartSlideShow;var gAnimationInterval;var gStartID;var gMinPrice;var gMaxPrice;var gMinBedrooms;var gMinBathrooms;var gFavoritesList;var gSpotLatitude;var gSpotLongitude;var gSpotDescription;var gSearchQuery;var gSortOrder;var gHelpFavorite;var gLastMarkCmd;var gShowRealtorName;var gActiveDetail;var gTotalFound;var gRequestLoad;var gLastSearchName;var gLastSearchDate;var gLogUserID;var gListID;var gTotalView;var gLastMessage;var gGroupStartLast;var gOptionKeyDown;var gOperaFlag;var gPadFlag;var gTourInProgress;var gActiveListings;var gHideStartupTip;var gCircleOverlay;var gNewsHeadlines;var gHeadlineRef;var gNewsIndex;var gWeatherItems;var gWeatherRef;var gTemperatureUnits;var gTimeUnits;var gSummaryRef;var gInfoRef;var gLabelLoad;var gLandmarkLoad;var gLandmarksExist;var gUserName;var gUserPassword;var gRememberLogin;var gLastVisit;var gMapOverlay;var gStreetViewService;var gPanoViewer;var gPanoAddress;var gBoundaryLayer;var gBoundaryFlag;var gBoundaryBox;var gMunicipalLayer;var gPlaceInfoBox;var gPlaceCircleOverlay;var gPlaceAttribution;var gPlaceMarkers;var gPlaceMarkersAt;var gPlacesFlag;var gPlaceIndex;var gPlaceDetails;var gPlacesBox;var gPolygonHighlighted;var gPolygonCustomArea;var gVOWactive;var gMC;var propertyDB;var labelDB;var landmarkDB;addLoadCode(mapLoad);addUnloadCode(mapUnload);function addLoadCode(newFunc){var oldFunc=window.onload;if(typeof oldFunc=="function"){window.onload=function(){oldFunc();newFunc();};}else{window.onload=newFunc;}}
function addUnloadCode(newFunc){var oldFunc=window.onunload;if(typeof oldFunc=="function"){window.onunload=function(){oldFunc();newFunc();};}else{window.onunload=newFunc;}}
function mapLoad(){var cv;var dz;var trafficInfo;var ss;var panoCloseButton;var styleArray;gLastListItem=0;gLastListScrollPos=0;gSuppressMultiples=false;gAnimationRepeat=false;gHelpFavorite=false;gLastMarkCmd="none";gPropertyCounter=0;gActiveDetail=0;gPropertyCount=0;gTotalFound=0;gTotalView=0;gLastSearchName="";gLogUserID=Math.floor(Math.random()*1001);gLastMessage=-1;gGroupStartLast=1;gOptionKeyDown=false;gOperaFlag=false;gPadFlag=false;gTourInProgress=false;gActiveListings=true;gOverlaidAll=false;gLandmarksExist=false;gSearchQuery="";gBounceItem=null;gBounceRef=null;gOverlayRef=null;gSummaryRef=null;gInfoRef=null;gCircleOverlay=null;gBoundaryLayer=null;gBoundaryFlag=false;gPlaceMarkers=[];gPlacesFlag=false;gPolygonHighlighted=null;if(navigator.userAgent.toLowerCase().indexOf("ipad")!=-1){gPadFlag=true;}
ss=document.createElement("link");ss.setAttribute("rel","stylesheet");ss.setAttribute("type","text/css");ss.setAttribute("href",kMapStyleURL);document.getElementsByTagName("head")[0].appendChild(ss);gMapFormUpper=document.getElementById(kMapFormUpperID);gMapFormLower=document.getElementById(kMapFormLowerID);gBaseURL=document.URL;if(gBaseURL.indexOf("?")>-1){gBaseURL=gBaseURL.substring(0,gBaseURL.indexOf("?"));}
if(gBaseURL.indexOf("#")>-1){gBaseURL=gBaseURL.substring(0,gBaseURL.indexOf("#"));}
gBaseURL=gBaseURL.replace("file:///Users/glittle/garylittle.ca/","http://www.garylittle.ca/");if(gBaseURL.indexOf(kMapServerURL)!==0){cv=kMapServerURL.split(".");cv="http://"+cv[1]+"."+cv[2];kPropertiesSearchDB=kPropertiesSearchDB.replace(kMapServerURL,cv);kPropertiesLoadDB=kPropertiesLoadDB.replace(kMapServerURL,cv);kUserActionsURL=kUserActionsURL.replace(kMapServerURL,cv);kLogClickURL=kLogClickURL.replace(kMapServerURL,cv);kAgentReferralURL=kAgentReferralURL.replace(kMapServerURL,cv);kPlaceServiceURL=kPlaceServiceURL.replace(kMapServerURL,cv);}
if(kMapClientURL!=""){gBaseURL=kMapClientURL;gBaseURL=gBaseURL.replace("file:///Users/glittle/garylittle.ca/","http://www.garylittle.ca/");}
gUserName=getCookie(kUserNameCookie);gUserPassword=getCookie(kUserPasswordCookie);if(gUserName==""||gUserPassword==""){gUserName="";gUserPassword="";gRememberLogin="";document.getElementById("loginName").innerHTML="";document.getElementById("loginButton").style.display="";document.getElementById("logoutButton").style.display="none";}else{userLoginDirect();}
if(typeof gParametersInit==="undefined"){gParametersInit=document.location.search.substr(1);}
gDefaultLocation=new google.maps.LatLng(kDefaultArea[1],kDefaultArea[2]);parseCommandLine(gParametersInit);styleArray=[{featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]}];gMap=new google.maps.Map(document.getElementById(kMapID),{zoom:gStartZoom,center:gStartCoordinates,mapTypeId:gStartMode,disableDefaultUI:true,mapTypeControl:true,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DEFAULT},navigationControl:true,navigationControlOptions:{style:google.maps.NavigationControlStyle.DEFAULT},scaleControl:true,scaleControlOptions:{style:google.maps.ScaleControlStyle.DEFAULT},scrollwheel:false,streetViewControl:true,overviewMapControl:false,overviewMapControlOptions:{opened:false},styles:styleArray});if(kShowTraffic){trafficInfo=new google.maps.TrafficLayer();trafficInfo.setMap(gMap);}
if(!gPadFlag){gMap.enableKeyDragZoom({key:"shift",boxStyle:{border:"4px solid #736AFF",backgroundColor:"transparent",opacity:1.0},veilStyle:{backgroundColor:"gray",opacity:0.40,cursor:"crosshair"},visualEnabled:true,visualPosition:google.maps.ControlPosition.LEFT_TOP,visualClass:kNoprintClass});dz=gMap.getDragZoomObject();google.maps.event.addListener(dz,"dragend",dragEndHandler);}
addMapEventListeners();google.maps.event.addDomListener(document,"keydown",keyDownHandler);google.maps.event.addDomListener(document,"keyup",keyUpHandler);gCopyrightDiv=document.createElement("div");gCopyrightDiv.id=kCopyrightID;gCopyrightDiv.innerHTML=kCopyrightNotice;gCopyrightDiv.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(gCopyrightDiv);gSearchBox=document.createElement("div");gSearchBox.id=kSearchBoxID;gSearchBox.className=kNoprintClass;gSearchBox.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.TOP_LEFT].push(gSearchBox);gSearchBox.style.display="none";if(kShowMapBranding){gBranding=document.createElement("div");gBranding.id=kBrandingID;gBranding.innerHTML=kBrandingHTML;gBranding.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(gBranding);}
gSummaryBox=new InfoBox({pixelOffset:new google.maps.Size(-160,32),boxStyle:{opacity:0.90},enableEventPropagation:false,isHidden:true,closeBoxURL:"",disableAutoPan:true});gDialogBox=document.getElementById("dialog");gDialogBox.className=kLinkBoxClass;gPlaceInfoBox=new InfoBox({pixelOffset:new google.maps.Size(-161,0),boxStyle:{opacity:0.90},enableEventPropagation:false,closeBoxURL:"",isHidden:true,disableAutoPan:true});gPlaceCircleOverlay=new google.maps.Circle({center:gMap.getCenter(),clickable:false,fillColor:"#ff0000",fillOpacity:0.05,radius:kPlaceRadius});gPolygonCustomArea=new google.maps.Polygon({strokeColor:"#00FFFF",strokeWeight:3,strokeOpacity:1,fillColor:"#00FFFF",fillOpacity:0.10,editable:true,clickable:false});gPlaceAttribution=document.createElement("div");gPlaceAttribution.style.cssText="color: black; font-family: 'Arial'; font-size: 8pt; text-align: right; margin-right: 2px;";gPlaceAttribution.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(gPlaceAttribution);gMapFormLower.elements[kKeywordID].style.color=kSearchNumberPromptColor;gMapFormLower.elements[kKeywordID].value=kSearchNumberPrompt;addLatLongDisplay(kCoordinatesID);gMC=new MarkerClusterer(gMap,[],{gridSize:60,maxZoom:14,averageCenter:true,ignoreHidden:true,title:"Click to zoom in & see property markers",batchSizeIE:500,printable:true});initMapData();resizeMap();resizeSidebar();showPropertyList();gStreetViewService=new google.maps.StreetViewService();gPanoViewer=gMap.getStreetView();gPanoViewer.setOptions({addressControl:false,enableCloseButton:false});invokeCommandLine();if(gParametersInit===""){if(gFavoritesList!=""){gListID=1;showFavoritesList();}
runStartupSearch();if(!gHideStartupTip){showTipDialog();}}
overlayBegin(1);gMapOverlay=new google.maps.OverlayView();gMapOverlay.draw=function(){};gMapOverlay.setMap(gMap);showLoadedMessage();addWindowEventListener();google.maps.event.addListenerOnce(gMap,"tilesloaded",window.onresize);panoCloseButton=document.createElement("form");panoCloseButton.innerHTML="<input type='button' value='Return to Map' onclick='gPanoViewer.setVisible(false);' style='color: red; cursor: pointer;'>";gPanoViewer.controls[google.maps.ControlPosition.TOP_RIGHT].push(panoCloseButton);gPanoAddress=document.createElement("div");gPanoAddress.style.cssText="border: 2px solid black; background: white; padding: 0px 3px 2px; font-size: 10pt;";gPanoAddress.onselectstart=function(){return false;};gPanoViewer.controls[google.maps.ControlPosition.TOP].push(gPanoAddress);if(kBoundaryFusionID>0){gBoundaryLayer=new google.maps.FusionTablesLayer({clickable:true,suppressInfoWindows:true,query:{select:"geometry",from:kBoundaryFusionID}});gPolygonHighlighted=new google.maps.Polygon({strokeColor:"#00FF00",strokeWeight:3,strokeOpacity:1,fillColor:"#00FF00",fillOpacity:0.25,clickable:false});google.maps.event.addListener(gBoundaryLayer,"click",function(ftEvent){var i;var vertexList,vertices,coords;var address,pid,pidHyphenated;var msg;var assessLand=0,assessBldg=0,landArea=0;vertexList=[];vertices=ftEvent.infoWindowHtml.split(" ");for(i=0;i<vertices.length;i++){coords=vertices[i].split(",");vertexList.push(new google.maps.LatLng(coords[1],coords[0]));}
gPolygonHighlighted.setPath(vertexList);gPolygonHighlighted.setMap(gMap);address=ftEvent.row.address.value;if(address==""){address="(no street address)";}
pid=ftEvent.row.pid.value;pidHyphenated=pid.substr(0,3)+"-"+pid.substr(3,3)+"-"+pid.substr(6);try{assessLand=parseInt(ftEvent.row.land.value,10);assessBldg=parseInt(ftEvent.row.improvements.value,10);}catch(e1){}
try{landArea=ftEvent.row.area.value;}catch(e2){}
msg="<div id='"+kTooltipID+"' style='padding: 5px;' onclick='gSummaryBox.hide(); gPolygonHighlighted.setMap(null);'>";msg+="<table border='2' cellpadding='2' width='100%'>";msg+="<tr><td colspan='2'><span style='color: red; font-weight: bold;'>"+address+"</span></td></tr>";msg+="<tr align=left><td><b>PID</b></td><td>"+pidHyphenated+"</td>";if(assessLand>0||assessBldg>0){msg+="<tr align=left><td><b>Assessment<br>("+kAssessmentYear+")</b></td><td>";msg+=formatPrice(assessLand+assessBldg)+" =<br>";msg+=formatPrice(assessLand)+" (land) + "+formatPrice(assessBldg)+" (bldg)";msg+="</td></tr>";}
if(landArea>0){msg+="<tr align=left><td><b>Lot Size</b></td><td>";msg+=(landArea/kSquareMetersPerAcre).toFixed(2)+" ac.";msg+="</td></tr>";}
msg+="</table>";msg+="<div id='"+pid+"' style='color: green; font-weight: bold;'></div>";msg+="<form><input type=button value=' OK ' onclick='gSummaryBox.hide(); gPolygonHighlighted.setMap(null);'></form>";msg+="</div>";gSummaryBox.setContent(msg);gSummaryBox.setPosition(adjustTooltipPosition(ftEvent.latLng,150));gSummaryBox.open(gMap);gSummaryBox.show();if(gUserName!=""){getSalesHistory(ftEvent.row.pid.value);}});gBoundaryBox=document.createElement("div");gBoundaryBox.onclick=toggleBoundaryLayer;gBoundaryBox.innerHTML="<form><input id='lotBox' type=checkbox"+(gBoundaryFlag?" checked":"")+">Lot Lines</form>";gBoundaryBox.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.TOP_RIGHT].push(gBoundaryBox);setBoundaryOverlay();}
if(kMunicipalFusionID>0){gMunicipalLayer=new google.maps.FusionTablesLayer({clickable:false,suppressInfoWindows:true,query:{select:"geometry",from:kMunicipalFusionID},styles:[{polygonOptions:{fillColor:"#FFFFFF",fillOpacity:0.00,strokeColor:"#CC33CC",strokeOpacity:0.5,strokeWeight:4}}]});gMunicipalLayer.setMap(gMap);}
gPlacesBox=document.createElement("div");gPlacesBox.onclick=togglePlacesFlag;gPlacesBox.innerHTML="<form><input id='bizBox' type=checkbox"+(gPlacesFlag?" checked":"")+">Businesses</form>";gPlacesBox.onselectstart=function(){return false;};gMap.controls[google.maps.ControlPosition.TOP_RIGHT].push(gPlacesBox);setPlacesOverlay();if(kShowMapFamily){for(i=0;i<kMapFamily.length;i++){createMapFamilyMarker(i);}}
setCookie(kCurrentMapCookie,kMapName,5*365);initAC();}
function initMapData(){propertyDB=[];gLoadProperties();gLoadProperties=null;gPropertyCount=propertyDB.length-1;addDateDisplay();initPricePopups();populateRegionSelect();loadLabels();loadLandmarks();if(!gLandmarksExist){document.getElementById("poi").style.display="none";}
document.getElementById("docLink").href=kInstructionsPage+(gLandmarksExist?"":"?hidePOI=1");loadUserData();}
function loadUserData(){var cv;var userData,userLines;var i,j;var key,value;var coords;var searchValues;var areaValues;var startLatitude,startLongitude;gSortOrder=0;gShowRealtorName=0;gHideStartupTip=false;gLastVisit="";gNewsIndex=0;gTemperatureUnits="C";gTimeUnits="";searchValues="";areaValues="";if(gUserName!=""){userData=[];userLines=userGetAll().split(/[\n\r]+/);for(i=0;i<userLines.length;i++){if(userLines[i]==""){continue;}
j=userLines[i].indexOf("\t");key=userLines[i].substr(0,j);value=userLines[i].substr(j+1);userData[key]=value;}
cv=userData[kOrderCookie];if(cv==""||isNaN(cv)||typeof cv=="undefined"){cv="0";}
gSortOrder=parseInt(cv,10);cv=userData[kRealtorCookie];if(cv==""||isNaN(cv)||typeof cv=="undefined"){cv="0";}
gShowRealtorName=parseInt(cv,10);cv=userData[kTipCookie];if(cv==""||typeof cv=="undefined"){cv=false;}else{cv=true;}
gHideStartupTip=cv;cv=userData[kSearchBarCookie];if(cv==""||typeof cv=="undefined"){cv="";}
if(cv!=""){hideSearchBar();}else{showSearchBar();}
cv=userData[kSidebarCookie];if(cv==""||typeof cv=="undefined"){cv="";}
if(cv!=""){hideSidebar();}else{showSidebar();}
cv=userData[kLastVisitCookie];if(cv==""||typeof cv=="undefined"){cv="";}
gLastVisit=cv;cv=userData[kNewsCookie];if(cv==""||isNaN(cv)||typeof cv=="undefined"){cv="0";}
gNewsIndex=parseInt(cv,10);cv=userData[kTemperatureCookie];if(cv==""||typeof cv=="undefined"){cv="C";}
gTemperatureUnits=cv;cv=userData[kTimeCookie];if(cv==""||typeof cv=="undefined"){cv="";}
gTimeUnits=cv;cv=userData[kSearchValueCookie];if(cv==""||typeof cv=="undefined"){cv="";}
searchValues=cv;cv=userData[kCustomAreaValueCookie];if(cv==""||typeof cv=="undefined"){cv="";}
areaValues=cv;if(gParametersInit===""){cv=userData[kBoundaryCookie];if(cv==""||typeof cv=="undefined"){cv="";}
gBoundaryFlag=(cv!="");cv=userData[kFavoritesCookie];if(cv==""||typeof cv=="undefined"){cv="";}
gFavoritesList=cv;cv=userData[kLastPosnCookie];if(cv==""||typeof cv=="undefined"){cv="";}
if(cv!=""){coords=cv.split(",");if(coords.length==2){startLatitude=parseFloat(coords[0].trim(),10);startLongitude=parseFloat(coords[1].trim(),10);gStartCoordinates=new google.maps.LatLng(startLatitude,startLongitude);}}
cv=userData[kLastZoomCookie];if(cv==""||typeof cv=="undefined"){cv="";}
if(cv!=""){gStartZoom=parseInt(cv,10);}
cv=userData[kLastModeCookie];if(cv==""||typeof cv=="undefined"){cv="";}
if(cv!=""){switch(cv){case google.maps.MapTypeId.SATELLITE:case google.maps.MapTypeId.ROADMAP:case google.maps.MapTypeId.TERRAIN:gStartMode=cv;break;default:gStartMode=google.maps.MapTypeId.HYBRID;}}}}
if(gNewsIndex>kNewsFeeds.length){gNewsIndex=0;}
newsInit(gNewsIndex,0);weatherInit(0);initSearchPopup(searchValues);initAreaPopup(areaValues);loadWatchList();}
