FootPrintsTracker=new function(){return function(){this.initialize.apply(this,arguments)}};FootPrintsTracker.LOGGER_URI="http://footprints-logger.projectx.co.nz/pic.gif";FootPrintsTracker.COOKIE_ID='FootPrintsSessionID';FootPrintsTracker.EVENT_TYPES={MAP_PAN:'map_pan',MAP_ZOOM_CHANGE:'map_zoom_change',MARKER_CLICK:'marker_click',INFO_WINDOW_DISPLAY:'info_window_display',INFO_WINDOW_CLOSE:'info_window_closes',MAP_CREATE:'map_create'};FootPrintsTracker.prototype={initialize:function(map,tracker_key){this.observed_map=map;this.tracker_key=escape(tracker_key);this.track_start_time=new Date();var data={};data["event"]=FootPrintsTracker.EVENT_TYPES['MAP_CREATE'];this.sendMapEventData(data);this.registerMapEventListeners();},sendMapEventData:function(data){data["browser_session_id"]=this.generateID();data["tracker_key"]=this.tracker_key;data["random"]=Math.random();data["track_elapsed_time"]=escape(((new Date()).getTime()-this.track_start_time.getTime())/1000);data["page_uri"]=window.location.href;var send_data_img_tag=document.createElement("img");var img_url=FootPrintsTracker.LOGGER_URI+'?';for(parameter in data)
img_url+=escape(parameter)+"="+escape(data[parameter])+"&";img_url=img_url.slice(0,-1);send_data_img_tag.setAttribute("src",img_url);send_data_img_tag.setAttribute("visibility","hidden");var requestCompletionFunction=function(){document.getElementsByTagName("head")[0].removeChild(send_data_img_tag);};send_data_img_tag.onload=requestCompletionFunction;send_data_img_tag.onerror=requestCompletionFunction;send_data_img_tag.onabort=requestCompletionFunction;document.getElementsByTagName("head")[0].appendChild(send_data_img_tag);},addViewportData:function(data){data["map_zoom_level"]=this.observed_map.getZoom();var x1=this.observed_map.getBounds().getSouthWest().lng();var y1=this.observed_map.getBounds().getNorthEast().lat();var x2=this.observed_map.getBounds().getNorthEast().lng();var y2=this.observed_map.getBounds().getSouthWest().lat();data["x1"]=escape(x1);data["y1"]=escape(y1);data["x2"]=escape(x2);data["y2"]=escape(y2);data["mapType"]=this.observed_map.getCurrentMapType().getName();data["size"]=this.observed_map.getSize();},addOverlayListeners:function(overlay){var reference_to_self=this;GEvent.addListener(overlay,'click',function(){var data={},marker_position=overlay.getPoint();data["event"]=FootPrintsTracker.EVENT_TYPES['MARKER_CLICK'];data["marker_position"]=marker_position;reference_to_self.addViewportData(data);reference_to_self.sendMapEventData(data);});},registerMapEventListeners:function(){var reference_to_self=this;GEvent.addListener(this.observed_map,"addoverlay",function(overlay){reference_to_self.addOverlayListeners(overlay);});GEvent.addListener(this.observed_map,"moveend",function(){var data={};data['event']=FootPrintsTracker.EVENT_TYPES['MAP_PAN'];reference_to_self.addViewportData(data);reference_to_self.sendMapEventData(data);});GEvent.addListener(this.observed_map,"zoomend",function(){var data={};data['event']=FootPrintsTracker.EVENT_TYPES['MAP_ZOOM_CHANGE'];reference_to_self.addViewportData(data);reference_to_self.sendMapEventData(data);});GEvent.addListener(this.observed_map,'infowindowclose',function(){var data={};data['event']=FootPrintsTracker.EVENT_TYPES['INFO_WINDOW_CLOSE'];reference_to_self.addViewportData(data);reference_to_self.sendMapEventData(data);});GEvent.addListener(this.observed_map,'infowindowopen',function(){if(!reference_to_self.observed_map.getInfoWindow().isHidden()){var data={};data["event"]=FootPrintsTracker.EVENT_TYPES['INFO_WINDOW_DISPLAY'];reference_to_self.addViewportData(data);reference_to_self.sendMapEventData(data);}});},generateID:function(badCookie){var cookieID="zoomInSessionID=";var s=document.cookie.indexOf(cookieID);if(s==-1||badCookie){var sessionID="";for(var i=0;i<16;++i)
sessionID+=Math.floor(Math.random()*16.0).toString(16);var days=0;var timeOut=new Date();timeOut.setDate(new Date()+days);document.cookie=cookieID+escape(sessionID)+";expires="+timeOut.toGMTString();return sessionID;}else{var valueStart=s+cookieID.length;var valueEnd=document.cookie.indexOf(";",valueStart);if(valueEnd==-1)
valueEnd=document.cookie.length;var value=unescape(document.cookie.substring(valueStart,valueEnd));var sessionTime=15*60*1000;var currentTime=new Date().getTime();var time=value.substring(value.indexOf(".")+1);if((currentTime-time)>sessionTime||currentTime<time)
return this.generateID(true);else
return value;}}};

