/*
	Google Maps libraries for interactive updates, clustering and other functions

	Copyright David Torr 2007-9 davidtorr@gmail.com

	This code has been licensed to Bird Observation and Conservation Australia (BOCA) for use only on their website. Any other use requires a further license. All usage - including by BOCA - must include an acknowledgement (in the credits page or equivalent or on the page where the maps are displayed) of the source of the code, including my email address.

	Some code contributed in examples in the Google Maps support groups. In particular Mike Williams website http://www.econym.demon.co.uk/googlemaps/index.htm has been very helpful.
	If I have missed any other sources please let me knpow

	Code is compressed prior to upload for performance reasons only - not to obfuscate it. Compressed by the YUI compressor http://developer.yahoo.com/yui/compressor
 */
String.prototype._$$split=String.prototype._$$split||String.prototype.split;String.prototype.split=function(K,D){if(!(K instanceof RegExp)){return String.prototype._$$split.apply(this,arguments)}var C=(K.global?"g":"")+(K.ignoreCase?"i":"")+(K.multiline?"m":""),H=new RegExp("^"+K.source+"$",C),B=[],G=K.lastIndex,A=0,E=0,F,J;if(D===undefined||+D<0){D=false}else{D=Math.floor(+D);if(!D){return[]}}if(K.global){K.lastIndex=0}else{K=new RegExp(K.source,"g"+C)}while((!D||E++<=D)&&(F=K.exec(this))){var I=!F[0].length;if(I&&K.lastIndex>F.index){K.lastIndex--}if(K.lastIndex>A){if(F.length>1){F[0].replace(H,function(){for(var L=1;L<arguments.length-2;L++){if(arguments[L]===undefined){F[L]=undefined}}})}B=B.concat(this.slice(A,F.index));if(1<F.length&&F.index<this.length){B=B.concat(F.slice(1))}J=F[0].length;A=K.lastIndex}if(I){K.lastIndex++}}B=A===this.length?(K.test("")&&!J?B:B.concat("")):(D?B:B.concat(this.slice(A)));K.lastIndex=G;return B};var MAX_LOCATION_NAME=255;var MIN_LOCATION_NAME=1;var MAX_MY_LOCATION=255;var MIN_MY_LOCATION=0;var MIN_USER=5;var MAX_USER=30;var MIN_PWD=5;var MAX_PWD=30;var MAX_EMAIL=320;var MIN_EMAIL=5;var SHOWMAP_INITIAL=0;var SHOWMAP_SELECTLOC=1;var SHOWMAP_SHOWLOC=2;var SHOWMAP_SHOWAREA=3;var SHOWMAP_LOGIN=4;var SHOWMAP_REGISTER=5;var SHOWMAP_SWITCHMAP=6;var SHOWMAP_SHOWSTATE=7;var SHOWMAP_SWITCHMAP_LOC=8;var MAX_GUEST_MESSAGE=-1;var MAX_TEXT_INFO=65535;var MAX_MEDTEXT_INFO=16777215;var MAX_ABOUT_ME=65535;var MAX_POLYLINE=65535;var STYLE_POINT=1;var STYLE_LINE=2;var STYLE_POLYGON=3;var MIN_STYLE=STYLE_POINT;var MAX_STYLE=STYLE_POLYGON;var MAIL_GENERAL=0;var MAIL_GROUP=1;var MAIL_OWNER=2;var MAIL_LOCAL=3;var MAIL_GUESTBOOK=4;var MAIL_ADMIN=5;var MAIL_BOCA=6;var MAIL_CLUB=7;var MAIL_EMAIL_LINK=8;var ADMIN_LEVEL=9;var REGISTER_MARKER=0;var SET_TEMP_MARKER=1;var EDIT_MY_MARKER=2;var CREATE_ADDLOC=3;var MY_MARKER=0;var TEMP_MARKER=1;var ADDLOC_MARKER=2;var ICON_BOCA=1;var ICON_BIRDCLUB=2;var ICON_BIRDLOC=3;var ICON_ADVERTISER=4;var MY_ICON=5;var GROUP_ICON=6;var ICON_AFFIL=7;var TEMP_ICON=8;var ICON_LOCALBIRDER=9;var ICON_HIGHLIGHT=10;var ICON_THISLOC=11;var ICON_NAT_OFF=12;var ICON_PELAGIC=14;var ICON_EREMAEA=15;var MAX_ICON=15;var CLASS_BIRDCLUB=1;var CLASS_BIRDLOC=2;var CLASS_ADVERTISER=3;var CLASS_PELAGIC=5;var CLASS_EREMAEA=6;var CLASS_BIRDER=8;var CLASS_GROUP=9;var MODE_SAVE=0;var MODE_REGISTER_INIT=0;var MODE_REGISTER_RETURN=1;var MODE_EDITACCOUNT_NORMAL=1;var MODE_EDITACCOUNT_RETURN=2;var MODE_SHOWACCOUNT_NORMAL=0;var MODE_SHOWACCOUNT_RETURN=1;var MODE_MANAGE_LOC=-1;var MODE_ADD_LOC=0;var MODE_EDIT_LOC=1;var MODE_ADD_KML_NEXT=2;var REMOVE_FAVOURITE_FROM_USER=0;var REMOVE_FAVOURITE_FROM_SITE=1;var ADD_FAVOURITE_FROM_SITE=10;var REMOVE_LOCAL_FROM_USER=20;var REMOVE_LOCAL_FROM_SITE=21;var ADD_LOCAL_FROM_SITE=30;var PRIORITY_EMPTY=0;var PRIORITY_LIST_INFO=1;var PRIORITY_INFO=2;var PRIORITY_LIST_FORCE=3;var PRIORITY_ACTION=4;var g_CurrentSidePanel;var SHOW_AREA=0;var SHOW_ALL=1;var LOAD_ADDLOCATION=0;var LOAD_ADDUSER=1;var LOAD_EDITUSER=2;var LOAD_SETTEMP=3;var LOAD_SHOWLOCATION=0;var LOAD_SHOWACCOUNT=1;var LOAD_SHOWBIRDER=2;var MODE_IDLE=0;var MODE_INITIAL=1;var MODE_SHOW_ALL=2;var MODE_UPDATE=3;var MODE_LIST_ALL=4;var MODE_LIST_MATCH=5;var MODE_CLICK_ICON=6;var MODE_CLICK_NAME=7;var MODE_BACK_TO_MAP=8;var MODE_ZOOM=9;var MODE_PAN=10;var MODE_FIND_NEAREST=11;var MODE_SORT=12;var MODE_FILTER=13;var MODE_GZOOM=14;var MODE_EXPAND_GROUP=15;var nearDist=[];var grid;var mapLocs=[];var g_blnIconsLoaded=false;var g_LocToLoad;var g_LocToLoad_pars;var createPolyPoints=[];var TEXT_HEADER_CODE="<1>";var URL_DISPLAY_CODE="<2>";var URL_START_CODE="<3>";var URL_END_CODE="<4>";var POPUP_DISPLAY_CODE="<5>";var POPUP_START_CODE="<6>";var POPUP_END_CODE="<7>";var MAIL_DISPLAY_CODE="<8>";var MAIL_START_CODE="<9>";var MAIL_END_CODE="<0>";var RE_URL=/<[234]>/g;var RE_URL_MAIL=/<[234567890]>/g;var RE_FLAGS=/<[1234567890]>/g;var icons=[];var iconImport=[];var iconNames=[];var iconUsed=[];var special_Latitude=["","",""];var special_Longitude=["","",""];var special_Parent=[0,0,0];var special_Created=[false,false,false];var special_Marker=[];var special_Visible=[false,false,false];var special_Name=["","",""];var special_CreateHandler=[false,false,false];var special_ClickHandler=[false,false,false];var textIdLoaded;var g_user_id;var g_user_is_lb;var g_userlevel;var g_logged_in;var g_mode;var g_username;var my_location;var g_my_email;var g_my_FAB;var g_start_my;var g_about_me_length;var g_about_me;var g_favourites;var g_locations;var g_usemap;var g_nocompress;var g_show_internals;var g_map_first=true;var STR_MY_TEXT="account";var fileRetrieved;var MIN_ZOOM=4;var DEFAULT_ZOOM=8;var EREMAEA_ZOOM=9;var LOC_ZOOM=13;var MAX_ZOOM=16;var g_bounds;var g_bounds_north;var g_bounds_south;var g_bounds_east;var g_bounds_west;var userLoc=1;var polygons=[];var zoomListener;var zoomStartListener;var moveEndListener;var moveStartListener;var moveListener;var divInUse=false;var managedId;var MarkerBefore;var MarkerAfter;var g_owner_load_mode;var g_map;var g_current_mode=MODE_IDLE;var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var g_LocData;var g_LocDataDescriptionData=[];var g_LocDataDescriptionDataOrig=[];var g_LocDataDescriptionTitles=[];var g_LocDataDescriptionSequence=[];var g_LocDataDescriptionAction=[];var g_LocDataDescriptionCount=[];var g_LocDataDescriptionHeight=[];var g_LocDataDescriptionDescription=[];var g_LocDataDescriptionDisplay=[];var g_IdToLoad;var guestRecs=10;var blnRemoveCurrent=false;var BirdpediaId="";var BirdpediaState="";var EremaeaId="";var MIN_WEST=105;var MAX_EAST=160;var MAX_NORTH=-9;var MIN_SOUTH=-90;var oldSidebar="";var total_found=0;var g_listshown_sidebar="";var g_ShowMyAccount_mode;var g_AddItem_mode;var g_EditAccountMode;var g_AddAccountMode;var g_current_addloc_mode;var g_SaveMarkerName="";var g_SaveMarkerLat="";var g_SaveMarkerLng="";var g_SaveMarkerState=0;var g_MailFormStruct=["loadMailForm.js","","","",false];var g_SetMapAreaStruct=["loadsetMapArea.js","do_setMapArea();","","",false];var g_AddXMLMarkers;var g_SetMarkerStruct=["loadSetMarker.js","","","",false];var g_ShowDescription;var g_AddLocationStruct=["loadAddLocation.js","","","",false];var temp_register_email="";var temp_register_FAB="";var temp_marker_name="";var temp_marker_lat="";var temp_marker_lng="";var temp_marker_parent=0;var blnStopMarkerExpand=false;var g_xml;var g_head;var g_version;var g_server;var g_PHP_dir;var g_JS_dir;var g_HTML_dir;var g_ICONS_dir;var g_results_filtered=false;var g_max_sort;var g_max_filter;var g_BS_loc_id;var g_BS_v_id;var SHOW_DATA=0;var SHOW_EREMAEA_CELL=1;var SORT_PICKER=11;var COLMAP_LOCNAME=1;var COLMAP_TYPE=2;var COLMAP_STATE=3;var COLMAP_NUMBER=4;var BUTTON_SHOW_LOCATION=2;var BUTTON_EXPAND=4;var BUTTON_CL_CHECKBOX=5;var MATH_LT=0;var MATH_EQ=1;var MATH_GT=2;var TABLE_LISTNEAREST=1;var TABLE_MARKER_LIST=2;var TABLE_LISTMATCH=3;var OWNER_NAME_COL=0;var LOCATION_NAME_COL=1;var STATE_NAME_COL=2;var LOCATION_ID_COL=3;var ICON_COL=4;var LATITUDE_COL=5;var LONGITUDE_COL=6;var CLASS_COL=7;var STYLE_COL=8;var POLYLINE_COL=9;var EAST_COL=10;var WEST_COL=11;var NORTH_COL=12;var SOUTH_COL=13;var OWNER_COL=14;var DISTANCE_COL=15;var WORLD_ID=1;var AUS_ID=18;var ACTION_NORMAL=1;var ACTION_CONTACT=2;var ACTION_EXT_DESC=3;var ACTION_CONTACT_MEMBER=4;var ACTION_BOCA_GETBOUNDS=1;var ACTION_ERROR=2;var ACTION_BOCA_MARKERLIST=3;var ACTION_SITEINFO=5;var ACTION_BOCA_LISTMATCH=6;var ACTION_BS_GETTABLE=8;var ACTION_ADD_LOC=11;var ACTION_KEEP_ALIVE=14;var ACTION_LOAD_ICONS=15;var ACTION_LOAD_OWNERS=16;var ACTION_CHANGE_LOC_TYPE=17;var ACTION_SEND_EMAIL=18;var ACTION_ADD_EM=19;var ACTION_DELLOC=20;var ACTION_SINGLESITE=21;var ACTION_UPLOAD_NEWS=22;var BOCA_HOST=1;var LOCAL_HOST=2;var REMOTE_HOST=3;var MARKER_GENERAL=0;var MARKER_MEETING=1;var MARKER_ACTIVITY=2;var MARKER_OFFICE=3;var MARKER_ENTRANCE=4;var MARKER_AREA=5;var g_sort=[];var g_filter=[];var g_display_sort=[];var g_display_filter=[];var g_sp_filter=[];var g_table_div_id=[];var g_having=[];var g_show_table=[];var g_current_year;var g_current_month;var g_lastReshowStr;var linesPerHead=18;var g_table_arrays=[];var g_save_table_arrays=[];var g_colmap_arrays=[];var g_sort_arrays=[];var g_sortmap;var g_filter_arrays=[];var g_filtermap;var g_field_arrays=[];var g_table_title=[];var g_table_total=[];var g_radius_lat;var g_radius_lng;var g_radius_id;var g_sidebar_loc;var g_nolist=false;var g_environment;var g_status;var g_host;var g_sid;var g_bln_nearest=false;var g_special_ids=[];var g_special_ids_list="";var g_radius;var g_loc_id;var g_editing=false;var bln_USE_GMAP_LOG=false;var bln_XMLdebug_mode=false;var g_wait_for_site=false;var owner_names=[];var owner_ids=[];var g_owner_col_no;var g_mouse_moved=false;var g_timer_id;var g_mouse_x=0;var g_mouse_y=0;var g_browser;var g_base_url;var g_bln_base_url;var g_mapstyle;var g_init_lat;var g_init_lng;var g_init_zoom;var g_special_marker=false;var g_bookmark_url;var g_bookmark_title;var g_singlesite;var g_bln_showinfo;var g_KML_last_processed;var g_KML_name_suffix;var g_KML_placemark_count;var g_KML_string;var g_current_loc;var g_internal;function checkTiles(){if(!g_map){return }var A=g_map.getContainer().getElementsByTagName("p").length;if(A>4){g_map.zoomOut(false,true)}}function checkUnload(){if(g_editing){return"You have not saved any changes and will lose them!"}}function genName(B,A){return iconNames[B]}function findFieldColumn(C,A){for(var B=0;B<g_field_arrays[C].length;B++){if(g_field_arrays[C][B]==A){return B}}return -1}function clearNearestMode(){g_bln_nearest=false;g_special_ids=[];g_special_ids_list="";g_radius=0}function clickShowArea(){working("Show Area");g_current_mode=MODE_UPDATE;logit("clickShowArea");clearNearestMode();showArea(SHOW_AREA,PRIORITY_LIST_FORCE)}function changeLoginDisplay(){if(g_logged_in){var A="Welcome <b>"+g_username+"</b>, you are logged in."}else{A="You are not logged in."}document.getElementById("login_banner").innerHTML=A}function changeLoginStatus(F,H,E,L,B,J,K,D,G,A,M,C,I){g_logged_in=F;g_user_id=H;g_userlevel=E;g_username=L;g_start_my=G;g_my_email=A;g_my_FAB=M;g_about_me_length=C;g_user_is_lb=(I>0);special_Name[MY_MARKER]=B;special_Parent[MY_MARKER]=D;special_Latitude[MY_MARKER]=parseFloatOrBlank(J);special_Longitude[MY_MARKER]=parseFloatOrBlank(K);myLocExists(special_Latitude[MY_MARKER]=="");changeLoginDisplay();if(!F){g_CurrentSidePanel=PRIORITY_EMPTY;clickShowArea()}}function loadCode(Struct){var document_scripts=document.getElementsByTagName("script");Struct[2]=Struct[0]+"?"+g_version;logit("loadCode ",Struct[2]);for(i=0;i<document_scripts.length;i++){var bits=document_scripts[i].src.split("/");if((bits[bits.length-1]==Struct[2])&&Struct[4]){eval(Struct[1]);return }}var script=document.createElement("script");script.type="text/javascript";script.src=g_JS_dir+Struct[2];statusBar("Loading "+script.src);logit("LOADING",script.src);document.getElementsByTagName("head")[0].appendChild(script)}function ShowLocation(){g_LocData.locId=parseInt(g_head[0].getAttribute("loc_id"),10);if(!(g_head[0].getAttribute("south")===null)){gotoLoc(g_head[0].getAttribute("south"),g_head[0].getAttribute("north"),g_head[0].getAttribute("east"),g_head[0].getAttribute("west"),g_head[0].getAttribute("id"),g_head[0].getAttribute("owner"),g_head[0].getAttribute("name"))}g_ShowDescription=g_xml;loadedShowDescription(LOAD_SHOWLOCATION)}function clickAddItem2(A){lockButtons(true);g_AddItem_mode=A;g_SetMarkerStruct[1]="loadedSetMarker("+LOAD_ADDLOCATION+");";loadCode(g_SetMarkerStruct)}function loadSpecifiedArea(){logit("loadSpecifiedArea",g_init_lat,g_init_lng,g_init_zoom);if((isNaN(g_init_lat))||(isNaN(g_init_lng))||(isNaN(g_init_zoom))){clickShowAll(false)}setCentre(new GLatLng(g_init_lat,g_init_lng),g_init_zoom);clickShowArea()}function clickShowAll(A){g_bln_showinfo=A;working("Show All");g_current_mode=MODE_SHOW_ALL;logit("clickShowAll");clearNearestMode();showArea(SHOW_ALL,PRIORITY_LIST_FORCE)}function Location(){if(arguments.length>0){if(arguments.length!=13){alert("bug in Location")}this.latitude=arguments[0];this.longitude=arguments[1];this.location_name=arguments[2];this.icon=arguments[3];this.locId=arguments[4];this.loc_class=arguments[5];this.style=arguments[6];this.polyline=arguments[7];this.east=arguments[8];this.west=arguments[9];this.north=arguments[10];this.south=arguments[11];this.owner=arguments[12]}else{this.latitude=null;this.longitude=null;this.location_name="";this.icon=ICON_BIRDLOC;this.locId=0;this.loc_class=CLASS_BIRDLOC;this.style=STYLE_POINT;this.polyline=null;this.east=null;this.west=null;this.north=null;this.south=null;this.owner=null}this.full_location_name="";this.EremaeaId="";this.BirdpediaId=null;this.BirdpediaState=null;this.BirdpediaData=null;this.state_id=0;this.hidden=null;this.marker=null;this.lineMarkers=[];this.polygon=null}function draw_internal(F){logit("INTERNAL ",F.getAttribute("name"));logit("POINTS ",F.getAttribute("polyline"));logit("STYLE ",F.getAttribute("style"));var E=F.getAttribute("polyline").split(",");var B=[];logit("LEN",E.length);for(var D=0;D<E.length;D+=2){var A=new GLatLng(parseFloat(E[D]),parseFloat(E[D+1]));B.push(A)}if(F.getAttribute("style")==STYLE_POLYGON){B.push(new GLatLng(parseFloat(E[0]),parseFloat(E[1])));var C=new GPolygon(B,F.getAttribute("line_colour"),1,1,F.getAttribute("fill_colour"),0.2)}else{C=new GPolyline(B,F.getAttribute("line_colour"),2,1)}g_map.addOverlay(C)}function addPolygon(C,G){var F=C.split(",");var B=[];for(var E=0;E<F.length;E+=2){var A=new GLatLng(parseFloat(F[E]),parseFloat(F[E+1]));B.push(A)}if(G){B.push(new GLatLng(parseFloat(F[0]),parseFloat(F[1])));var D=new GPolygon(B,"#FF0000",1,1,"#0000FF",0.2)}else{D=new GPolyline(B,"#FF0000",2,1)}g_map.addOverlay(D);return D}function getMarkers(A,C){logit("getMarkers ",A,C,g_bounds_east,g_bounds_west,g_bounds_north,g_bounds_south);var B="";if(g_bln_nearest){B+="&nearest=true&special="+g_special_ids_list}logit(B);statusBar("Fetching markers");if(g_bln_showinfo){B+="&showinfo=true";g_bln_showinfo=false}loadRemoteXMLFile(true,"action="+ACTION_BOCA_MARKERLIST+setSearchParams(false)+"&east="+g_bounds_east+"&west="+g_bounds_west+"&north="+g_bounds_north+"&south="+g_bounds_south+"&showall="+A+"&priority="+C+B)}function expandGroup(D,C,A,B){logit("expandGroup",D,C,A,B);g_current_mode=MODE_EXPAND_GROUP;working("Expand Group");removeOverlays();g_bounds=new GLatLngBounds(new GLatLng(B,A),new GLatLng(D,C));setCentre(g_bounds.getCenter(),g_map.getBoundsZoomLevel(g_bounds,g_map.getSize()));boundsFromMap();clearNearestMode();getMarkers(true,PRIORITY_LIST_INFO)}function displayLocFromObject(A){g_LocData=A;logit("displayLocFromObject",A.locId);if(A.loc_class==CLASS_GROUP){expandGroup(A.north,A.east,A.west,A.south);return }g_wait_for_site=true;g_map.savePosition();if(A.style==1){logit(DEFAULT_ZOOM,g_map.getZoom());setCentre(new GLatLng(A.latitude,A.longitude),Math.max(DEFAULT_ZOOM,g_map.getZoom()))}else{g_bounds=new GLatLngBounds();g_bounds.extend(new GLatLng(A.north,A.east));g_bounds.extend(new GLatLng(A.south,A.west));removeOverlays();setCentre(g_bounds.getCenter(),g_map.getBoundsZoomLevel(g_bounds))}if(A.loc_class==8){loadRemoteXMLFile(true,"action=birderinfo&id="+A.locId)}else{loadLocInfo(A.locId)}boundsFromMap();clearNearestMode();getMarkers(false,PRIORITY_LIST_INFO,A.locId)}function updateSidePanel(B,A){if(A>=g_CurrentSidePanel){document.getElementById("side_bar").innerHTML=B;if(A==PRIORITY_LIST_FORCE){g_CurrentSidePanel=PRIORITY_LIST_INFO}else{g_CurrentSidePanel=A}}if(g_usemap){if(special_CreateHandler[TEMP_MARKER]){GEvent.removeListener(special_CreateHandler[TEMP_MARKER]);special_CreateHandler[TEMP_MARKER]=0}if(special_CreateHandler[ADDLOC_MARKER]){GEvent.removeListener(special_CreateHandler[ADDLOC_MARKER]);special_CreateHandler[ADDLOC_MARKER]=0}}document.getElementById("find_nearest").innerHTML=""}function generateTableDiv(A,C){g_table_div_id[C]=A;if(arguments.length>2){var B=arguments[2]}else{B=g_table_total[C]}if(B>0){return'<div id="'+A+'"></div>'}else{return""}}function createSidebar(A){console.trace();g_listshown_sidebar=generateTableDiv("Location_list_table",TABLE_MARKER_LIST,1);if(!blnStopMarkerExpand&&(A>=g_CurrentSidePanel)){logit("updateSidePanel from createSidebar");updateSidePanel(g_listshown_sidebar,A);g_sidebar_loc=0}logit("FROM createSidebar",g_nolist);setupLocationTable("Select Location from Map",TABLE_MARKER_LIST,g_AddXMLMarkers,"Location_list_table",false);displayLocationTable(TABLE_MARKER_LIST,false,false,false,sortLocationByName,false);logit("SET NOLIST FALSE");g_nolist=false}function sortByName(B,A){var C=findFieldColumn(TABLE_MARKER_LIST,"location_name");var E=B[C];var D=A[C];if(E){E=E.toUpperCase()}if(D){D=D.toUpperCase()}if(E<D){return -1}else{return 1}return 0}function boundsFromMap(){g_bounds_north=g_map.getBounds().getNorthEast().lat();g_bounds_south=g_map.getBounds().getSouthWest().lat();g_bounds_east=g_map.getBounds().getNorthEast().lng();g_bounds_west=g_map.getBounds().getSouthWest().lng()}function zoomChanged(B,A){if(A<B){}}function setCentre(A,B){logit("setCentre");removeMapListeners();g_map.setCenter(A,B);boundsFromMap();setMapListeners()}function clickTempMarker(){if(special_Created[TEMP_MARKER]){showSpecialLocation(TEMP_MARKER,false,false)}g_SaveMarkerName=special_Name[TEMP_MARKER];g_SaveMarkerState=special_Parent[TEMP_MARKER];g_SaveMarkerLat=special_Latitude[TEMP_MARKER];g_SaveMarkerLng=special_Longitude[TEMP_MARKER];lockButtons(true);g_SetMarkerStruct[1]="loadedSetMarker("+LOAD_SETTEMP+");";loadCode(g_SetMarkerStruct)}function divShowMyAccount(A){g_ShowMyAccount_mode=A;loadRemoteXMLFile(true,"action=userdata&user="+g_user_id)}function expandSpecial(A){if(!blnStopMarkerExpand){switch(A){case MY_MARKER:divShowMyAccount(MODE_SHOWACCOUNT_NORMAL);break;case TEMP_MARKER:clickTempMarker();break}}}function addClickHandler(A){logit("addClickHandler",A);console.trace();if(special_Marker[A]){special_ClickHandler[A]=GEvent.addListener(special_Marker[A],"click",function(){expandSpecial(A)})}}function createSpecialMarker(C,B,A){if(!special_Created[C]){if(C==MY_MARKER){special_Marker[MY_MARKER]=new GMarker(new GLatLng(special_Latitude[MY_MARKER],special_Longitude[MY_MARKER]),{bouncy:false,draggable:true,title:"My location",icon:icons[MY_ICON],zIndexProcess:importanceOrder})}else{special_Marker[C]=new GMarker(new GLatLng(special_Latitude[C],special_Longitude[C]),{bouncy:false,draggable:true,title:"Temp location",icon:icons[TEMP_ICON],zIndexProcess:importanceOrder})}special_Marker[C].id=1;special_Marker[C].importance=C+2;GEvent.addListener(special_Marker[C],"dragend",function(){setCentre(special_Marker[C].getPoint());specialMarkerMoved(C,special_Marker[C].getPoint().lat(),special_Marker[C].getPoint().lng())});special_Created[C]=true}if(B){special_Marker[C].enableDragging()}else{special_Marker[C].disableDragging()}if(A){addClickHandler(C)}else{removeClickHandler(C)}}function forceLogout(A){window.clearInterval(g_timer_id);document.onmousemove=null;g_logged_in=false;changeLoginStatus(false,0,0,"","","","","","","","","","");alert(A)}function addMarkerToMap(F){var A=mapLocs[F];if((A.locId==g_LocData.locId)&&(g_current_addloc_mode==MODE_EDIT_LOC)){return }var D=A.location_name;var E=false;if((A.locId>0)&&(A.locId==g_LocData.locId)){var B=new GMarker(new GLatLng(A.latitude,A.longitude),{title:D,icon:icons[ICON_THISLOC],zIndexProcess:importanceOrder});B.importance=iconImport[ICON_THISLOC];iconUsed[ICON_THISLOC]=true;E=true}if((g_special_ids.length>0)&&!E){for(var C=0;C<g_special_ids.length;C++){if(A.locId==g_special_ids[C]){B=new GMarker(new GLatLng(A.latitude,A.longitude),{title:D,icon:icons[ICON_HIGHLIGHT],zIndexProcess:importanceOrder});B.importance=iconImport[ICON_HIGHLIGHT];iconUsed[ICON_HIGHLIGHT]=true;E=true;break}}}if(!E){B=new GMarker(new GLatLng(A.latitude,A.longitude),{title:D,icon:icons[A.icon],zIndexProcess:importanceOrder});B.importance=iconImport[A.icon];iconUsed[A.icon]=true}if(A.loc_class==CLASS_GROUP){}GEvent.addListener(B,"click",function(){if(!blnStopMarkerExpand){working("Marker selected");g_current_mode=MODE_CLICK_ICON;displayLocFromObject(mapLocs[F])}});g_map.addOverlay(B);B.id="<b>"+D;A.marker=B;if(((A.style==STYLE_POLYGON)||(A.style==STYLE_LINE))&&(A.polyline.length>0)){if((A.locId==g_current_loc)||(A.loc_class==CLASS_GROUP)||((Math.abs(A.east-A.west))>(Math.abs(g_bounds_east-g_bounds_west))/10)||((Math.abs(A.south-A.north))>(Math.abs(g_bounds_south-g_bounds_north))/10)){A.polygon=addPolygon(A.polyline,(A.style==STYLE_POLYGON))}}}function do_addXMLMarkers(){logit("do_addXMLMarkers");var H=g_AddXMLMarkers.documentElement.getElementsByTagName("head");var f=H[0].getAttribute("priority");var L=H[0].getAttribute("update");var b=H[0].getAttribute("name_search");var B=H[0].getAttribute("nearest_search");var E=H[0].getAttribute("nearest");logit("SEARCH",b);logit("NEAREST",B);logit("NEAREST",E);logit("UPDATE",L);if(b&&b.length>0){g_special_ids=b.split("|")}else{if(E){if(B&&B.length>0){g_special_ids=B.split("|");logit("FROM do_addXMLMarkers");setupLocationTable("Nearest Locations",TABLE_LISTNEAREST,g_AddXMLMarkers,"FindNearest_Result",false);displayLocationTable(TABLE_LISTNEAREST,false,true,false,sortLocationByDist,false)}else{document.getElementById(g_table_div_id[TABLE_LISTNEAREST]).innerHTML="None found!"}}else{g_special_ids=[]}}logit("CUR MODE",g_current_mode);if((g_current_mode!=MODE_CLICK_ICON)&&(g_current_mode!=MODE_CLICK_NAME)){logit("SO CREATE SB");createSidebar(f)}if(L=="false"){return }removeOverlays();boundsFromMap();var X=g_table_arrays[TABLE_MARKER_LIST];var Y=false;logit("LENGTHS",X.length,mapLocs.length);for(var Z=0;Z<X.length;Z++){var J=parseFloat(X[Z][LATITUDE_COL]);var g=parseFloat(X[Z][LONGITUDE_COL]);if(g_usemap){var V=new GLatLng(J,g)}else{V=null}var T=parseInt(X[Z][LOCATION_ID_COL],10);var c=parseInt(X[Z][ICON_COL],10);var R=parseInt(X[Z][CLASS_COL],10);var h=X[Z][LOCATION_NAME_COL];if(R==CLASS_GROUP){var M=h.lastIndexOf(")");var G=h.lastIndexOf("(");h=h.substr(G+1,M-G-1)}var a=parseInt(X[Z][STYLE_COL],10);var A=parseInt(X[Z][OWNER_COL],10);var S=X[Z][POLYLINE_COL];if(a==STYLE_POINT){var K=g;var I=g;var O=J;var W=J}else{K=parseFloat(X[Z][EAST_COL]);I=parseFloat(X[Z][WEST_COL]);O=parseFloat(X[Z][SOUTH_COL]);W=parseFloat(X[Z][NORTH_COL])}if((isNaN(g))||(isNaN(J))||(h.length=0)){logit("ERR",g,J,h);Y=true}else{mapLocs.push(new Location(J,g,h,c,T,R,a,S,K,I,W,O,A));statusBar("Processed marker "+Z)}}for(Z=0;Z<iconUsed.length;Z++){iconUsed[Z]=false}logit("MAPLOCS",mapLocs.length);for(Z=0;Z<mapLocs.length;Z++){if(g_usemap){addMarkerToMap(Z);statusBar("Added marker "+Z)}if((mapLocs[Z].locId==g_IdToLoad)&&(g_IdToLoad>0)){g_LocData=mapLocs[Z];if(mapLocs[Z].loc_class==8){loadRemoteXMLFile(true,"action=birderinfo&id="+g_IdToLoad)}else{loadLocInfo(g_IdToLoad)}g_IdToLoad=0}}if(g_internal&&(g_internal.length)){for(var P=0;P<g_internal.length;P++){draw_internal(g_internal[P])}}if(Y){alert("Errors in importing data file")}if(false){if(document.getElementById("ShowTemp").checked){createSpecialMarker(TEMP_MARKER,false,true);if(!special_Visible[TEMP_MARKER]){g_map.addOverlay(special_Marker[TEMP_MARKER]);special_Visible[TEMP_MARKER]=true;iconUsed[TEMP_MARKER]=true}}if(document.getElementById("ShowMy").checked){createSpecialMarker(MY_MARKER,false,true);if(!special_Visible[MY_MARKER]){g_map.addOverlay(special_Marker[MY_MARKER]);special_Visible[MY_MARKER]=true;document.getElementById("MyMarker").value="Hide My Marker";iconUsed[MY_MARKER]=true}}}logit("ICONS",iconUsed.length);if(g_usemap){var C="<table><tr><td colspan='3' class='centre'><b>KEY</b></td></tr><tr>";if((document.getElementById("Eremaea").checked)&&(g_map.getZoom()<EREMAEA_ZOOM)){C+="<td colspan=4>Note that Eremaea cells are not shown at this resolution - you need to zoom in further</td></tr><tr>"}var U=0;for(Z=0;Z<iconUsed.length;Z++){if(iconUsed[Z]){C+='<td><img src = "'+icons[Z].image+'"/>'+iconNames[Z]+"</td>";U++;if(U==4){U=0;C+="</tr><tr>"}}}C+="</tr></table>";document.getElementById("legend").innerHTML=C}var D=g_AddXMLMarkers.documentElement.getElementsByTagName("markerend");var e=D[0].getAttribute("single");var N=D[0].getAttribute("search");var d=D[0].getAttribute("groups");var F=D[0].getAttribute("ingroups");if(e&&(e>0)){document.getElementById("DivShown").innerHTML=e+" locations shown."}else{document.getElementById("DivShown").innerHTML="None shown."}if(N){if(N>0){var Q=N+" search matches."}else{Q="No search matches."}}else{Q=""}document.getElementById("DivMatch").innerHTML=Q;if(d&&(d>0)){document.getElementById("DivGroup").innerHTML=d+" groups containing "+F+" locations."}else{document.getElementById("DivGroup").innerHTML=""}g_AddXMLMarkers="";switch(+g_current_mode){case +MODE_IDLE:case +MODE_INITIAL:case +MODE_SHOW_ALL:case +MODE_UPDATE:case +MODE_LIST_MATCH:case +MODE_CLICK_ICON:case +MODE_BACK_TO_MAP:case +MODE_FIND_NEAREST:case +MODE_EXPAND_GROUP:finished();break;case +MODE_ZOOM:case +MODE_PAN:setMapListeners();finished();break;case +MODE_CLICK_NAME:statusBar("Done");break}}function tidyAfterAddLocation(B){logit("tidyAfterAddLocation",B,g_current_addloc_mode);g_special_marker=false;if((g_current_addloc_mode!=MODE_EDIT_LOC)&&!(B>0)){g_LocDataDescriptionData=[]}if(g_usemap){if(special_CreateHandler[MY_MARKER]){GEvent.removeListener(special_CreateHandler[MY_MARKER]);special_CreateHandler[MY_MARKER]=0}createPolyPoints.length=0;removeOverlay(g_LocData.marker);removeOverlay(g_LocData.polygon);for(var A=0;A<g_LocData.lineMarkers.length;A++){removeOverlay(g_LocData.lineMarkers[A])}}g_LocData.lineMarkers.length=0;lockButtons(false);if(B>0){g_KML_last_processed=B;do_divAddLocation(MODE_ADD_KML_NEXT);return }g_CurrentSidePanel=PRIORITY_LIST_INFO;cancelForm();g_current_addloc_mode=null;if(g_usemap){showArea(SHOW_AREA,PRIORITY_EMPTY)}g_editing=false}function dataLoaded(T,L){if(L==-1){alert("Data request timed out. Please try later.");document.body.style.cursor="default";return }else{if(L!=200){alert("Error "+L+" retreiving file "+fileRetrieved);document.body.style.cursor="default";return }}g_xml=parseXML(T);g_singlesite=false;logit(L,T);var M=g_xml.documentElement.getElementsByTagName("error");if(M.length>0){for(var Q=0;Q<M.length;Q++){alert(M[Q].getAttribute("resp").replace(/\|/g,"\n"))}document.body.style.cursor="default";try{document.getElementById("SaveButton").disabled=false}catch(D){}return }var B=g_xml.documentElement.getElementsByTagName("loginchange");if(B.length>0){g_logged_in=(B[0].getAttribute("login")==1);if(g_logged_in){changeLoginStatus(true,B[0].getAttribute("userid"),B[0].getAttribute("userlevel"),B[0].getAttribute("username"),"","","","","","","","","")}else{forceLogout("Your session has been terminated from the main BOCA screen.");document.body.style.cursor="default";return }}g_head=g_xml.documentElement.getElementsByTagName("head");if(g_head.length>1){showError(g_head);document.body.style.cursor="default";return }logit("DATA LOADED",g_head[0].getAttribute("type"));switch(+g_head[0].getAttribute("type")){case +ACTION_ADD_EM:case +ACTION_CHANGE_LOC_TYPE:case +ACTION_ADD_LOC:alert(g_head[0].getAttribute("resp").replace(/\|/g,"\n"));if(!(g_head[0].getAttribute("kmlnext")===null)){tidyAfterAddLocation(g_head[0].getAttribute("kmlnext"))}else{tidyAfterAddLocation(0);ShowLocation()}break;case +ACTION_SEND_EMAIL:alert(g_head[0].getAttribute("resp").replace(/\|/g,"\n"));break;case +ACTION_DELLOC:alert(g_head[0].getAttribute("resp").replace(/\|/g,"\n"));showArea(SHOW_AREA,PRIORITY_LIST_FORCE);break;case +ACTION_ERROR:alert(g_head[0].getAttribute("resp").replace(/\|/g,"\n"));try{document.getElementById("SaveButton").disabled=false}catch(C){}break;case +ACTION_KEEP_ALIVE:if(g_head[0].getAttribute("login")!=1){forceLogout("Your session has been terminated from the main BOCA screen.")}break;case +ACTION_BOCA_GETBOUNDS:g_SetMapAreaStruct[3]=g_xml;statusBar("Bounds calculated");loadCode(g_SetMapAreaStruct);break;case +ACTION_SINGLESITE:g_singlesite=true;case +ACTION_SITEINFO:var H=g_head[0].getAttribute("resp");if(H){alert(g_head[0].getAttribute("resp").replace(/\|/g,"\n"));clickShowAll(false);return }logit("SET NOLIST TRUE");g_nolist=true;ShowLocation();g_wait_for_site=false;finished();break;case +ACTION_BOCA_LISTMATCH:setupLocationTable("Matching Locations",TABLE_LISTMATCH,g_xml,"Location_match_table",true);displayLocationTable(TABLE_LISTMATCH,false,false,false,sortLocationByName,false);finished();break;case +ACTION_LOAD_OWNERS:var J=g_xml.documentElement.getElementsByTagName("data");for(Q=0;Q<J.length;Q++){owner_names[Q]=J[Q].getAttribute("owner_name");owner_ids[Q]=J[Q].getAttribute("owner")}if(g_owner_load_mode==MODE_MANAGE_LOC){manageLoc2()}else{clickAddItem2(g_owner_load_mode)}break;case +ACTION_LOAD_ICONS:g_blnIconsLoaded=true;var A=g_xml.documentElement.getElementsByTagName("icons");for(Q=0;Q<A.length;Q++){var I=A[Q].getAttribute("id");iconNames[I]=A[Q].getAttribute("display");iconUsed[I]=false;if(g_usemap){iconImport[I]=A[Q].getAttribute("importance");icons[I]=new GIcon(G_DEFAULT_ICON);icons[I].shadow="";icons[I].image=g_ICONS_dir+A[Q].getAttribute("image")}}statusBar("Icons loaded");var O=g_xml.documentElement.getElementsByTagName("descriptions");for(Q=0;Q<O.length;Q++){var S=O[Q].getAttribute("class");var U=O[Q].getAttribute("titles");if((U==null)||(U.length==0)){alert("No titles defined")}else{g_LocDataDescriptionTitles[S]=U.split("|")}var N=O[Q].getAttribute("action");if((N==null)||(N.length==0)){alert("No actions defined")}else{g_LocDataDescriptionAction[S]=N.split("|")}logit("ACT",N,g_LocDataDescriptionCount[S]);g_LocDataDescriptionCount[S]=g_LocDataDescriptionAction[S].length;if(g_LocDataDescriptionCount[S]!=g_LocDataDescriptionTitles[S].length){alert("Invalid Titles count "+g_LocDataDescriptionCount[S]+" "+g_LocDataDescriptionTitles[S].length)}var G=O[Q].getAttribute("sequence");logit("SEQ",G,g_LocDataDescriptionCount[S]);if((G==null)||(G.length==0)){g_LocDataDescriptionSequence[S]=[];for(var P=0;P<g_LocDataDescriptionCount[S];P++){g_LocDataDescriptionSequence[S][P]=P}}else{g_LocDataDescriptionSequence[S]=G.split("|")}logit(g_LocDataDescriptionSequence[S]);if(g_LocDataDescriptionCount[S]!=g_LocDataDescriptionSequence[S].length){alert("Invalid Sequence count "+g_LocDataDescriptionCount[S]+" "+g_LocDataDescriptionSequence[S].length)}var F=O[Q].getAttribute("height");if((F==null)||(F.length==0)){g_LocDataDescriptionHeight[S]=[];for(P=0;P<g_LocDataDescriptionCount[S];P++){g_LocDataDescriptionHeight[S][P]=4}}else{g_LocDataDescriptionHeight[S]=F.split("|")}logit("HEIGHT",g_LocDataDescriptionHeight[S]);if(g_LocDataDescriptionCount[S]!=g_LocDataDescriptionHeight[S].length){alert("Invalid Height count "+g_LocDataDescriptionCount[S]+" "+g_LocDataDescriptionHeight[S].length)}g_LocDataDescriptionDisplay[S]=O[Q].getAttribute("display");logit("DISPLAY",g_LocDataDescriptionDisplay[S]);var R=O[Q].getAttribute("description");if((R==null)||(R.length==0)){g_LocDataDescriptionDescription[S]=[];for(P=0;P<g_LocDataDescriptionCount[S];P++){g_LocDataDescriptionDescription[S][P]=""}}else{g_LocDataDescriptionDescription[S]=R.split("|")}logit("DESC",g_LocDataDescriptionDescription[S]);if(g_LocDataDescriptionCount[S]!=g_LocDataDescriptionHeight[S].length){alert("Invalid Height count "+g_LocDataDescriptionCount[S]+" "+g_LocDataDescriptionHeight[S].length)}logit(S,g_LocDataDescriptionTitles[S])}if(!setUpMap()){finishSetUp()}break;case +ACTION_BOCA_MARKERLIST:g_AddXMLMarkers=g_xml;statusBar("Markers retrieved");do_addXMLMarkers();break;default:alert("Invalid response "+g_head[0].getAttribute("type"));var K=g_head[0].getAttribute("mode");if(K.length>0){if(g_nocompress){var E="&nocompress=true"}else{E=""}window.location="ShowMap.php?environment="+g_environment+"mode="+K+"&id="+managedId+E}break}}function loadRemoteXMLFile(F,E){console.trace();var B;var D=null;if(g_browser=="msie"){B=new ActiveXObject("Microsoft.XMLHTTP")}else{B=new XMLHttpRequest()}if(g_environment.length>0){E+="&environment="+g_environment}if(g_nocompress){E+="&nocompress=true"}if(g_show_internals){E+="&show_internals=true"}if(g_sid.length>0){E+="&sid="+g_sid}E+="&restrict="+(g_host!=BOCA_HOST)+"&login="+g_logged_in;if(bln_XMLdebug_mode){E+="&XMLdebug=true"}if(F){var A=g_PHP_dir+"BOCA_read.php?"+E;var C="GET"}else{A=g_PHP_dir+"BOCA_insert.php";D=E;C="POST"}logit(A);fileRetrieved=A;startSessionTimer();B.open(C,A,true);if(!F){B.setRequestHeader("Content-type","application/x-www-form-urlencoded");B.setRequestHeader("Content-length",D.length);B.setRequestHeader("Connection","close")}B.onreadystatechange=function(){if(B.readyState==4){if(B.status==200){var G=B.getResponseHeader("Content-Type");if(G.indexOf("xml")>-1){dataLoaded(B.responseXML,B.status)}else{dataLoaded(B.responseText,B.status)}}else{dataLoaded("Error: ",B.status)}}};B.send(D)}function loadLocInfo(A){g_current_loc=A;logit("loadLocInfo",A);statusBar("Getting site information");if(arguments.length>1){g_LocToLoad_pars=arguments[1]}else{g_LocToLoad_pars=""}loadRemoteXMLFile(true,"action="+ACTION_SITEINFO+"&loc_id="+A+g_LocToLoad_pars)}function importanceOrder(B,A){return GOverlay.getZIndex(B.getPoint().lat())+B.importance*1000000}function finishSetUp(){changeLoginDisplay();g_LocData=new Location();logit("MODE",g_mode);switch(+g_mode){case +SHOWMAP_SHOWLOC:case +SHOWMAP_SWITCHMAP_LOC:initialiseScreen();loadLocInfo(g_loc_id);break;case +SHOWMAP_SHOWSTATE:initialiseScreen();clickShowAll(false);break;case +SHOWMAP_SELECTLOC:case +SHOWMAP_SWITCHMAP:case +SHOWMAP_INITIAL:clickShowAll(false);divInUse=false;break;case SHOWMAP_SHOWAREA:initialiseScreen();loadSpecifiedArea();break;default:alert("Invalid map mode "+g_mode);break}if(g_usemap){document.getElementById("Map_Switch").innerHTML='<input type="button" id="HideMap" value="Hide Map" onclick="mapOnOff(false)" onmouseover="Tip(\'Hide the map and key (useful on slow connections).\')" onmouseout="UnTip()"/>'}else{document.getElementById("Map_Switch").innerHTML='<input type="button" id="ShowMap" value="Show Map" onclick="mapOnOff(true)" onmouseover="Tip(\'Show the map and key.\')" onmouseout="UnTip()"/>'}}function parseBool(A){if(typeof A=="undefined"){return true}return(A.length==0)||(A="true")||(A="on")||(A="1")}function getInt(D,C,A){var B=parseInt(D,10);if((isNaN(B))||(B<C)||((A>0)&&(B>A))){alert("Invalid int "+B);B=0}return B}function setStates(C,A){for(var B=0;B<C.length;B++){if(A==C.options[B].value.substr(1)){document.getElementById("cboStates").selectedIndex=B;return }}}function addToBaseURL(A){if(g_bln_base_url){g_base_url+="&"+A}else{g_bln_base_url=true;g_base_url+="?"+A}}function BOCA_load(Z,M,F,P,N,U,O,B,S,R,E,J,A,K,D,X,H,I){console.trace();g_current_mode=MODE_INITIAL;working("Initialising");window.onbeforeunload=checkUnload;if(g_host==LOCAL_HOST){document.getElementById("GLog").checked=bln_USE_GMAP_LOG;document.getElementById("XMLdebug").checked=bln_XMLdebug_mode}g_browser="";var W=navigator.userAgent.toLowerCase();if(W.indexOf("opera")!=-1){g_browser="opera"}else{if(W.indexOf("msie")!=-1){g_browser="msie";document.getElementById("Bookmark").value="Add to Favorites"}else{if(W.indexOf("safari")!=-1){g_browser="safari"}else{if(W.indexOf("mozilla")!=-1){if(W.indexOf("firefox")!=-1){g_browser="firefox"}else{g_browser="mozilla"}}}}}g_init_lat=NaN;g_init_lng=NaN;g_init_zoom=NaN;var T=window.location.pathname;var V=T.indexOf("/",1);g_server="http://"+window.location.hostname+T.substr(0,V+1);g_PHP_dir=g_server+"PHP/";g_HTML_dir=g_server+"Text/";g_ICONS_dir=g_server+"Icons/";g_JS_dir=g_server+"Javascript/";var Q=document.getElementById("cboStates");g_base_url=window.location.protocol+"//"+window.location.host+window.location.pathname;g_bln_base_url=false;g_init_state=AUS_ID;logit(window.location.href);logit(g_base_url);logit(window.location.search);var C=window.location.search.split("&");for(var c=0;c<C.length;c++){if(c==0){C[0]=C[0].substr(1)}var Y=C[c];var d=Y.split("=");var a=d[0];var G=d[1];logit(a,G);switch(a.toLowerCase()){case"bc":document.getElementById("BirdClubs").checked=parseBool(G);break;case"bi":g_init_state=getInt(G,1,Q.length);setStates(Q,g_init_state);break;case"bl":document.getElementById("PublicLocations").checked=parseBool(G);break;case"bu":document.getElementById("Advertisers").checked=parseBool(G);break;case"environment":g_environment=G;logit("ENV",g_environment);addToBaseURL(Y);break;case"first":initialiseScreen();g_mode=SHOWMAP_INITIAL;g_loc_id=0;break;case"grid":document.getElementById("cboMapGrid").selectedIndex=getInt(G,0,2);break;case"height":addToBaseURL(Y);break;case"lat":g_init_lat=parseFloat(G);break;case"lng":g_init_lng=parseFloat(G);break;case"loc_id":g_loc_id=getInt(G,0,-1);break;case"map":g_mapstyle=getInt(G,0,2);break;case"mode":g_mode=getInt(G,0,7);break;case"nocompress":g_nocompress=parseBool(G);if(g_nocompress){g_JS_dir=g_server+"Javascript/"}else{g_JS_dir=g_server+"Javascript/compressed/"}addToBaseURL(Y);break;case"pel":document.getElementById("Pelagics").checked=parseBool(G);break;case"em":document.getElementById("Eremaea").checked=parseBool(G);break;case"search":document.getElementById("FindLocation_Name").value=G;break;case"show_internals":g_show_internals=parseBool(G);break;case"sid":I=G;break;case"status":g_status=G;break;case"stype":if(parseBool(G)){document.getElementById("FindLocation_Starts").checked=true}else{document.getElementById("FindLocation_Contains").checked=true}break;case"usemap":g_usemap=parseBool(G);addToBaseURL(Y);break;case"width":addToBaseURL(Y);break;case"zoom":g_init_zoom=parseFloat(G);break;default:alert("Unknown search param "+Y);break}}logit(g_base_url);setBookMark(g_base_url+"&mode="+SHOWMAP_SHOWAREA,"BOCA Birding Maps");var L=new Date();g_current_year=L.getFullYear();g_current_month=L.getMonth();g_host=H;g_sid=I;if(g_current_year<2000){g_current_year+=1900}g_logged_in=Z;g_version=E;g_user_id=F;g_userlevel=P;g_username=M;g_my_email=S;g_my_FAB=R;g_start_my=J;g_about_me_length=A;g_favourites=D;g_locations=X;g_user_is_lb=(K>0);logit("BOCA_load");lockButtons(false);g_table_div_id[TABLE_LISTNEAREST]="FindNearest_Result";special_Name[MY_MARKER]=N;special_Parent[MY_MARKER]=B;special_Latitude[MY_MARKER]=parseFloatOrBlank(U);special_Longitude[MY_MARKER]=parseFloatOrBlank(O);if((g_mode!=SHOWMAP_SHOWSTATE)&&(g_mode!=SHOWMAP_SWITCHMAP)){document.getElementById("BirdClubs").enabled=true;document.getElementById("PublicLocations").enabled=true;document.getElementById("Pelagics").enabled=true;document.getElementById("Eremaea").enabled=true;document.getElementById("Advertisers").enabled=true;if(g_host!=BOCA_HOST){if(g_usemap){document.getElementById("ShowTemp").checked=false;document.getElementById("ShowTemp").disabled=true}if(g_logged_in){}else{}}}g_CurrentSidePanel=PRIORITY_EMPTY;if(g_usemap){if(!GBrowserIsCompatible()){g_usemap=false;alert("Browser does not support Google Maps")}window.setInterval("checkTiles()",500)}statusBar("Loading icons");loadRemoteXMLFile(true,"action="+ACTION_LOAD_ICONS)}function mapOnOff(A){if(g_sidebar_loc>0){var C=SHOWMAP_SWITCHMAP_LOC}else{C=SHOWMAP_SWITCHMAP}if(A){var B="&usemap"}else{B=""}if(g_nocompress){B+="&nocompress=true"}if(g_show_internals){B+="&show_internals=true"}logit(g_PHP_dir+"ShowMap.php?environment="+g_environment+B+"&mode="+C+setSearchParams(true)+"&loc_id="+g_sidebar_loc);window.location.href=g_PHP_dir+"ShowMap.php?environment="+g_environment+B+"&mode="+C+setSearchParams(true)+"&loc_id="+g_sidebar_loc}function gotoLoc(E,F,D,B,G,A,C){logit("gotoLoc",E,F,D,B,G,A,C);if(g_usemap){lockButtons(false);if(!g_singlesite){removeOverlays()}g_bounds=new GLatLngBounds();if((g_mode==SHOWMAP_SHOWLOC)&&(!isNaN(g_init_lat))&&(!isNaN(g_init_lng))&&(!isNaN(g_init_zoom))){setCentre(new GLatLng(g_init_lat,g_init_lng),g_init_zoom);g_mode=SHOWMAP_INITIAL}else{g_bounds.extend(new GLatLng(E,D));g_bounds.extend(new GLatLng(F,B));if((E==F)&&(D==B)){setCentre(g_bounds.getCenter(),LOC_ZOOM)}else{setCentre(g_bounds.getCenter(),g_map.getBoundsZoomLevel(g_bounds))}}boundsFromMap();clearNearestMode();getMarkers(false,PRIORITY_EMPTY);g_IdToLoad=G}}function removeOverlays(){if(g_usemap){if(!g_special_marker){g_map.clearOverlays()}else{if(mapLocs.length>0){for(var C=0;C<mapLocs.length;C++){var A=mapLocs[C];removeOverlay(A.marker);if(A.polygon){g_map.removeOverlay(A.polygon);if(A.lineMarkers.length>0){for(var B=0;B<A.lineMarkers.length;B++){removeOverlay(A.lineMarkers[B])}}}}}}mapLocs.length=0}}function showSpecialMarker(B){var A=new GLatLng(special_Latitude[B],special_Longitude[B]);if(!isNaN(g_map.getZoom())){setCentre(A,Math.max(DEFAULT_ZOOM,g_map.getZoom()))}else{setCentre(A,DEFAULT_ZOOM)}boundsFromMap();clearNearestMode();getMarkers(false,PRIORITY_LIST_INFO);special_Marker[B].setPoint(A);if(!special_Visible[B]){g_map.addOverlay(special_Marker[B]);special_Visible[B]=true}if(B==MY_MARKER){updateMyMarkerButton()}}function showSpecialLocation(C,B,A){createSpecialMarker(C,B,A);showSpecialMarker(C)}function hideSpecialMarker(A){if(special_Visible[A]){removeOverlay(special_Marker[A]);special_Visible[A]=false}}function addEditPoint(B){logit("addEditPoint");document.getElementById("insert_mode").innerHTML="";var C=g_LocData.lineMarkers.length;if(MarkerAfter>=0){createPolyPoints.length++;g_LocData.lineMarkers.length++;g_bounds=new GLatLngBounds();for(i=g_LocData.lineMarkers.length-2;i>=0;i--){if(i>MarkerAfter){removeOverlay(g_LocData.lineMarkers[i]);var A=createNumberedMarker(i+1,g_LocData.lineMarkers[i].getPoint());g_LocData.lineMarkers[i+1]=A;var D=A.getPoint();createPolyPoints[i+1]=D;g_bounds.extend(D)}else{if(i==MarkerAfter){A=createNumberedMarker(MarkerAfter+1,B);g_LocData.lineMarkers[i+1]=A;D=A.getPoint();createPolyPoints[i+1]=D;g_bounds.extend(D)}D=g_LocData.lineMarkers[i].getPoint();createPolyPoints[i]=D;g_bounds.extend(D)}}}else{if(MarkerBefore>=0){createPolyPoints.length++;g_LocData.lineMarkers.length++;g_bounds=new GLatLngBounds();for(i=g_LocData.lineMarkers.length-2;i>=0;i--){if(i>=MarkerBefore){removeOverlay(g_LocData.lineMarkers[i]);A=createNumberedMarker(i+1,g_LocData.lineMarkers[i].getPoint());g_LocData.lineMarkers[i+1]=A;D=A.getPoint();createPolyPoints[i+1]=D;g_bounds.extend(D);if(i==MarkerBefore){A=createNumberedMarker(MarkerBefore,B);g_LocData.lineMarkers[i]=A;D=A.getPoint();createPolyPoints[i]=D;g_bounds.extend(D)}}else{D=g_LocData.lineMarkers[i].getPoint();createPolyPoints[i]=D;g_bounds.extend(D)}}}else{A=createNumberedMarker(C,B);g_LocData.lineMarkers.push(A);createPolyPoints.push(B)}}if(C==0){g_LocData.marker=A;g_LocData.latitude=B.lat();g_LocData.longitude=B.lng();setCentre(B,Math.max(DEFAULT_ZOOM,g_map.getZoom()));g_bounds=new GLatLngBounds();g_bounds.extend(B)}else{g_bounds.extend(B);removeOverlay(g_LocData.polygon);g_LocData.polygon=new GPolyline(createPolyPoints,"#FF0000",2,1);g_map.addOverlay(g_LocData.polygon)}MarkerBefore=-1;MarkerAfter=-1;updatePointList()}function createCreatePointHandler(){logit("createCreatePointHandler");console.trace();special_CreateHandler[MY_MARKER]=GEvent.addListener(g_map,"click",function(B,A){if(A){logit("createCreatePointHandler action");special_Latitude[2]=A.lat();special_Longitude[2]=A.lng();addEditPoint(A)}})}function guestBook(A){loadRemoteXMLFile(true,"action=guestbook&start="+A+"&num="+guestRecs+"&id="+g_LocData.locId+"&return="+g_LocData.name+"&owner="+g_LocData.owner)}function clickAddItem(A){if((A==MODE_ADD_LOC)&&(getCheckedValue(document.forms.AddWhat.elements.AddClass)=="")){alert("No type selected");return }if(owner_names.length==0){g_owner_load_mode=A;loadRemoteXMLFile(true,"action="+ACTION_LOAD_OWNERS)}else{clickAddItem2(A)}}function anyMarkers(){var A=g_LocData.lineMarkers.length;if(A==0){alert("You have not added any points to the map!")}return A}function mapTypeChanged(){var A=document.getElementById("cboMapStyle");var B=g_map.getMapTypes()[A.options[A.selectedIndex].value];B.getTileLayers()[0].getOpacity=function(){return 1};g_map.setMapType(B)}function mapGridChanged(){removeOverlay(grid);switch(document.getElementById("cboMapGrid").selectedIndex){case 0:grid=null;break;case 1:grid=new LatLonGraticule(false);g_map.addOverlay(grid);break;case 2:grid=new LatLonGraticule(true);g_map.addOverlay(grid);break}}function clickHelp(){window.open(g_HTML_dir+"help.html?"+g_version,"Help","location=1,status=1,scrollbars=1,    menubar=1,resizable=1,width=600,height=300")}function clickNew(){window.open(g_HTML_dir+"whatsnew.html?"+g_version,"What's New?","location=1,status=1,scrollbars=1,    menubar=1,resizable=1,width=600,height=300")}function createNumberedMarker(C,B){var D=new GIcon(G_DEFAULT_ICON);D.shadow="";D.image=g_ICONS_dir+"largeTDGreenIcons/marker"+C%100+".png";var A=new GMarker(B,{draggable:true,title:"New location",icon:D});A.enableDragging();g_map.addOverlay(A);GEvent.addListener(A,"dragend",function(){var E=g_LocData.lineMarkers.length;createPolyPoints.length=0;if(E==1){var F=A.getPoint();createPolyPoints.push(F);setCentre(F);g_bounds=new GLatLngBounds();g_bounds.extend(F)}else{for(i=0;i<g_LocData.lineMarkers.length;i++){F=g_LocData.lineMarkers[i].getPoint();createPolyPoints.push(F);g_bounds.extend(F)}removeOverlay(g_LocData.polygon);g_LocData.polygon=new GPolyline(createPolyPoints,"#FF0000",2,1);g_map.addOverlay(g_LocData.polygon)}});return A}Array.prototype.swap=function(B,A){var C=this[B];this[B]=this[A];this[A]=C};function deleteLoc(){if(confirm("Do you really want to delete "+g_LocData.location_name+"?")){loadRemoteXMLFile(false,"action="+ACTION_DELLOC+"&locid="+escape(g_LocData.locId))}}function checkLoggedIn(){return }function genGoToLoc(A){return'<a href="javascript:clickIdOnSidebar('+A.getAttribute("id")+')">'+A.getAttribute("name")+"</a>"}function radioStyle(B,C,A){var D=C+':<input type="radio" name="style" value="'+B+'"';if(A){D+=' "checked"'}D+="/>";return D}function showStyle(A){var C="";if(A==STYLE_POINT){C="As you have created only one point the item will be saved as a point."}else{if(A>STYLE_LINE){if((g_current_addloc_mode==MODE_ADD_LOC)&&(g_LocData.style==STYLE_POINT)){var B=true}else{B=(g_LocData.style==STYLE_LINE)}C="As you have defined more than two points then you must decide if you want to define a line or an area.<br>";C+='<form id="style_form">'+radioStyle(STYLE_LINE,"Line",B)+radioStyle(STYLE_POLYGON,"Area",!B)+"</form>"}else{if(A==STYLE_LINE){C="As you have created two points the item will be saved as a line."}}}return C}String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")};String.prototype.ltrim=function(){return this.replace(/^\s+/g,"")};String.prototype.rtrim=function(){return this.replace(/\s+$/g,"")};function TrimString(A){A=A.replace(/^\s+/g,"");return A.replace(/\s+$/g,"")}function parseLatLng(D,F,A,C){D=D.trim();D=D.replace(/  /g," ");if(D.length==0){if(C){return D}else{alert("No "+F+" entered");return Number.NaN}}if(D.indexOf(" ")>=0){var B=[];B=D.split(" ");if((isNaN(parseInt(B[0],10)))||(isNaN(parseInt(B[1],10)))){alert(F+" is not a number");return Number.NaN}var E=parseInt(B[0],10)+parseInt(B[1],10)/60;if(B.length>=3){if(isNaN(parseFloat(B[2]))){alert(F+" is not a number");return Number.NaN}E+=parseFloat(B[2])/3600}}else{if(isNaN(parseFloat(D))){alert(F+" is not a number");return Number.NaN}E=parseFloat(D)}if((E<-A)||(E>A)){alert(F+" is out of range");return Number.NaN}return E}function clickListMatch(A){working("List Match");g_current_mode=MODE_LIST_MATCH;loadRemoteXMLFile(true,"action="+ACTION_BOCA_LISTMATCH+setSearchParams(true))}function clickListShown(){working("List Shown");g_CurrentSidePanel=PRIORITY_EMPTY;g_listshown_sidebar=generateTableDiv("Location_list_table",TABLE_MARKER_LIST,1);logit("updateSidePanel from clickListShown in BOCA_main");updateSidePanel(g_listshown_sidebar,PRIORITY_LIST_INFO);g_sidebar_loc=0;g_display_sort[TABLE_MARKER_LIST]="";g_display_filter[TABLE_MARKER_LIST]="";if(g_table_arrays[TABLE_MARKER_LIST].length>0){displayLocationTable(TABLE_MARKER_LIST,false,false,false,sortLocationByName,false)}else{document.getElementById(g_table_div_id[TABLE_MARKER_LIST]).innerHTML="None shown"}finished()}function updatePointList(){if(g_LocData.loc_class==CLASS_BIRDLOC){var A=genSaveLine()+"<table>";for(i=0;i<g_LocData.lineMarkers.length;i++){A+="<tr><td>Marker "+i+"</td>";if(g_LocData.lineMarkers.length>1){A+='<td><input type="button" value="Delete" onclick="clickDeleteMarker('+i+')" /></td>'}A+='<td><input type="button" value="Insert Before" onclick="clickInsertBefore('+i+')" /></td>';A+='<td><input type="button" value="Insert After" onclick="clickInsertAfter('+i+')" /></td></tr>'}A+="</table>";document.getElementById("marker_list").innerHTML=A;document.getElementById("style_div").innerHTML=showStyle(anyMarkers())}}function mailPopup(B,A,C,D){g_MailFormStruct[1]="do_mailPopup('"+B+"','"+A+"','"+escape(C)+"','"+D+"');";loadCode(g_MailFormStruct)}function mailForm(E,D){var B="";var C="";for(var A=2;A<arguments.length;A+=2){B+=arguments[A]+",";C+=unescape(arguments[A+1])+","}g_MailFormStruct[1]="do_divMailForm("+E+","+B.substr(0,B.length-1)+",'"+escape(C.substr(0,C.length-1))+"','"+escape(D)+"');";loadCode(g_MailFormStruct)}function showArea(B,A){if(B==SHOW_AREA){boundsFromMap();getMarkers(false,A)}else{statusBar("Getting map bounds");loadRemoteXMLFile(true,"action="+ACTION_BOCA_GETBOUNDS+setSearchParams(true)+"&nearest=false&priority="+A);divInUse=false}}function setEM(){if((document.getElementById("Eremaea").checked)&&(g_map.getZoom()>=EREMAEA_ZOOM)){return"&em=true"}return""}function setSearchParams(C){var B="&bc="+document.getElementById("BirdClubs").checked+"&bl="+document.getElementById("PublicLocations").checked+"&pel="+document.getElementById("Pelagics").checked+"&bu="+document.getElementById("Advertisers").checked+setEM();if(C){B+="&bi="+document.getElementById("cboStates").value.substr(1)}if(g_radius>0){B+="&radius="+g_radius+"&lat="+g_radius_lat+"&lng="+g_radius_lng+"&id="+g_radius_id}var A=document.getElementById("FindLocation_Name").value.trim();if(A.length!=0){if(!document.getElementById("FindLocation_Starts").checked){A="%"+A}A="&name="+escape(A+"%")}return B+A}function clickLogout(){if(confirm("Confirm logout?")){loadRemoteXMLFile(false,"action=logout")}}function clickRegister(A){lockButtons(true);g_AddAccountMode=A;g_SetMarkerStruct[1]="loadedSetMarker("+LOAD_ADDUSER+");";loadCode(g_SetMarkerStruct)}function clickForgotPassword(){}function cancelForm(){document.getElementById("side_bar").innerHTML=oldSidebar;lockButtons(false);g_CurrentSidePanel=PRIORITY_LIST_INFO}function addPointToLoc(){logit("addPointToLoc");var A=new GLatLng(special_Latitude[ADDLOC_MARKER],special_Longitude[ADDLOC_MARKER]);addEditPoint(A);if((g_LocData.name=="")&&(special_Name[ADDLOC_MARKER]!="")){g_LocData.name=special_Name[ADDLOC_MARKER]}if((g_LocData.state_id==0)&&(special_Parent[ADDLOC_MARKER]!=0)){g_LocData.state_id=special_Parent[ADDLOC_MARKER];setStateDropdownFromValue("SetMarker_StateIndex",g_LocData.state_id)}}function setStateDropdownFromValue(D,C){var A=document.getElementById(D);for(var B=0;B<A.options.length;B++){if(A.options[B].value.substr(1)==C){A.selectedIndex=B;return }}A.selectedIndex=0}function createSpecialMarkerHandler(A){logit("createSpecialMarkerHandler ",A);console.trace();return GEvent.addListener(g_map,"click",function(C,B){if(B){logit("createSpecialMarkerHandler action ",A);specialMarkerMoved(A,B.lat(),B.lng());processMarkerAdded(A)}})}function specialMarkerMoved(D,C,B){special_Latitude[D]=C;special_Longitude[D]=B;try{document.getElementById("lat").value=C;document.getElementById("lng").value=B}catch(A){}}function parseFloatOrBlank(A){if(A.length==0){return""}else{return parseFloat(A)}}function generateContactLink(E,B,A,D){if(g_logged_in||(E==MAIL_ADMIN)){var C='&nbsp&nbsp<a href="javascript:mailForm('+E+",'"+escape(B)+"','"+A+"','"+escape(D)+"')\">";if(E==MAIL_ADMIN){C+="Flag"}else{C+="[Contact]"}C+="</a>"}else{C=""}return C}function showError(B){for(var A=0;A<B.length;A++){if(B[A].getAttribute("type")=="error"){alert(B[A].getAttribute("resp").replace(/\|/g,"\n"))}}showArea(SHOW_AREA,PRIORITY_LIST_INFO)}function lockButton(B,C){if(document.getElementById(B)){try{document.getElementById(B).disabled=C}catch(A){}}}function lockButtons(A){lockButton("FindByName",A);lockButton("TempMarker",A);lockButton("FindSpecies",true);lockButton("MyMarker",A);lockButton("BS_nav_home",A);lockButton("BS_DB_select",A);lockButton("ShowMap",A);lockButton("HideMap",A);lockButton("ShowAll",A);lockButton("ShowArea",A);lockButton("listAll",A);lockButton("listArea",A);lockButton("ListType",A);if(g_logged_in){lockButton("logout",A);lockButton("myAccount",A);lockButton("AddItem",A);if(g_userlevel==ADMIN_LEVEL){lockButton("adminCentre",A)}}else{lockButton("login",A);lockButton("register",A);lockButton("forgotPassword",A)}blnStopMarkerExpand=A}function validLocationName(D,C){var A=D.length;if((A==0)&&(C)){return true}if((A<MIN_LOCATION_NAME)||(A>MAX_LOCATION_NAME)){alert("Invalid location length (Min: "+MIN_LOCATION_NAME+",Max: "+MAX_LOCATION_NAME+")");return false}var B=new RegExp("^([-,.()0-9a-zA-Z '])+$");if(B.test(D)){return true}else{alert("Invalid characters in location name (Only Alphanumeric, space and -'.,() allowed)");return false}}String.prototype.parseDeg=function(){if(!isNaN(this)){return Number(this)}var B=this.replace(/^-/,"").replace(/[NSEW]/i,"");var D=B.split(/[^0-9.]+/);for(var A in D){if(D[A]==""){D.splice(A,1)}}switch(D.length){case 3:var C=D[0]/1+D[1]/60+D[2]/3600;break;case 2:C=D[0]/1+D[1]/60;break;case 1:if(/[NS]/i.test(this)){B="0"+B}C=D[0].slice(0,3)/1+D[0].slice(3,5)/60+D[0].slice(5)/3600;break;default:return NaN}if(/^-/.test(this)||/[WS]/i.test(this)){C=-C}return C};function roundLatLng(A){return Math.round(A*Math.pow(10,4))/Math.pow(10,4)}function checkFloat(B){var A=new RegExp("^-?((0)|([1-9][0-9]*))$");if(A.test(B)){return true}else{A=new RegExp("^-?((0)|([1-9][0-9]*))[.]([0-9]{1,})$");return A.test(B)}}function checkInt(B){var A=new RegExp("^-?((0)|([1-9][0-9]*))$");if(A.test(B)){return true}else{return false}}function myLocExists(A){if(g_host==BOCA_HOST){return }if(g_usemap){document.getElementById("ShowMy").disabled=A;document.getElementById("ShowMy").checked=false;if(A){document.getElementById("MyMarker").style.display="none"}else{document.getElementById("MyMarker").style.display="block";updateMyMarkerButton()}}}function removeClickHandler(A){if(special_ClickHandler[A]){GEvent.removeListener(special_ClickHandler[A]);special_ClickHandler[A]=false}}function clickMyMarker(){if(special_Visible[MY_MARKER]){hideSpecialMarker(MY_MARKER)}else{GLog.write("Calling showSpecialLocation from clickMyMarker");showSpecialLocation(MY_MARKER,false,true)}updateMyMarkerButton()}function updateMyMarkerButton(){if(special_Visible[MY_MARKER]){document.getElementById("MyMarker").value="Hide My Marker"}else{document.getElementById("MyMarker").value="Show My Marker"}}function saveUserValues(){temp_register_email=g_my_email;temp_register_FAB=g_my_FAB}function saveUserLocValues(A){temp_marker_name=special_Name[A];temp_marker_parent=special_Parent[A];temp_marker_lat=special_Latitude[A];temp_marker_lng=special_Longitude[A]}function restoreUserValues(){g_my_email=temp_register_email;g_my_FAB=temp_register_FAB}function restoreUserLocValues(A){special_Name[A]=temp_marker_name;special_Parent[A]=temp_marker_parent;special_Latitude[A]=temp_marker_lat;special_Longitude[A]=temp_marker_lng}function mailMod(E,D,C,B,A){alert(A)}function genHeader(C,B){var A="<hr><h"+C+' class="centre">'+B+"</h"+C+">";return A}function processMarkerAdded(A){if(A==ADDLOC_MARKER){addPointToLoc()}else{createSpecialMarker(A,true,false);showSpecialMarker(A)}}function clickIdOnSidebar(A){if(!blnStopMarkerExpand){loadRemoteXMLFile(true,"action=gotoloc&id="+A)}}function arraySearch(A,D){var B=D.length;for(var C=0;C<A.length;C++){if(A[C].substr(0,B)==D){return C}}return -1}function arrayGetFloat(B,C){var A=arraySearch(B,C);if(A==-1){alert("ERROR - no "+C+" value");return 0}else{return parseFloat(B[A].substr(C.length+1))}}function arrayGetBool(B,C){var A=arraySearch(B,C);if(A==-1){alert("ERROR - no "+C+" value");return false}else{return B[A].substr(C.length+1)=="true"}}function printString(A){if(arguments.length>1){var B=arguments[1]}else{B=false}if((A==null)||((A.length==0)&&B)){return""}return A.replace(/&amp;/gi,"&")}function printInt(A){if(arguments.length>1){var C=arguments[1]}else{C=false}var B="";if(isNaN(A)||(A==null)||((A==0)&&C)){return B}return A}function clearTables(){g_sort.length=0;g_filter.length=0;g_display_sort.length=0;g_display_filter.length=0;g_sp_filter.length=0;g_having.length=0;g_show_table.length=0}function reshowLoc(B){working("Reshow");logit("reshowLoc");g_current_mode=MODE_CLICK_NAME;if(g_usemap){g_map.savePosition()}clearTables();var A="&mode="+SHOW_DATA;g_lastReshowStr="action="+ACTION_SITEINFO+"&loc_id="+B+A;clearNearestMode();loadLocInfo(B,A)}function getCheckedValue(B){if(!B){return""}var C=B.length;if(C==undefined){if(B.checked){return B.value}else{return""}}for(var A=0;A<C;A++){if(B[A].checked){return B[A].value}}return""}function setCheckedValue(B,D){if(!B){return }var C=B.length;if(C==undefined){B.checked=(B.value==D.toString());return }for(var A=0;A<C;A++){B[A].checked=false;if(B[A].value==D.toString()){B[A].checked=true}}}function removeOverlay(A){if(A){g_map.removeOverlay(A)}}function padout(A){return(A<10)?"0"+A:A}if(!("console" in window)||!("firebug" in console)){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var i=0;i<names.length;++i){window.console[names[i]]=function(){}}}function printLat(G){if(G){G=+G;var F=parseInt(G,10);var A=Math.abs(60*(G-F));var B=parseInt(A,10);var E=Math.abs(60*(A-B));if(G<0){var D="S"}else{D="N"}var C=G.toFixed(3)+" ("+Math.abs(F)+" "+B+" "+E.toFixed(0)+D+")"}else{C=""}return C}function printLng(B){if(B){B=+B;var G=parseInt(B,10);var A=Math.abs(60*(B-G));var C=parseInt(A,10);var F=Math.abs(60*(A-C));if(B<0){var E="E"}else{E="W"}var D=B.toFixed(3)+" ("+Math.abs(G)+" "+C+" "+F.toFixed(0)+E+")"}else{D=""}return D}function startSessionTimer(){if(g_logged_in){if(g_timer_id){window.clearInterval(g_timer_id)}g_mouse_moved=false;g_timer_id=window.setInterval(processTimeout,5*60*1000);document.onmousemove=mouseMoved}}function processTimeout(){if(g_mouse_moved){loadRemoteXMLFile(false,"action="+ACTION_KEEP_ALIVE)}}function setUpMap(){if(!g_usemap){return false}g_map=new GMap2(document.getElementById("gmap"));var A=g_map.getMapTypes();for(var C=0;C<A.length;C++){A[C].getMaximumResolution=function(){return MAX_ZOOM}}g_map.addControl(new GZoomControl({},{sButtonHTML:"<img src='"+g_ICONS_dir+"zoom-button.gif' />",sButtonZoomingHTML:"<img src='"+g_ICONS_dir+"zoom-button-activated.gif' />",oButtonStartingStyle:{width:"24px",height:"24px"}}),new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(10,10)));g_map.addControl(new GScaleControl(300));g_map.addControl(new GLargeMapControl());var E=new GOverviewMapControl(new GSize(150,150));g_map.addControl(E);E.hide();g_map.enableDoubleClickZoom();g_map.enableContinuousZoom();myLocExists(special_Latitude[MY_MARKER]=="");g_map.checkResize();g_map.savePosition();var D=document.getElementById("cboMapStyle");var F=g_map.getMapTypes();D.length=0;for(C=0;C<F.length;C++){var B=new Option(F[C].getName(),C);D.options[D.length]=B}D.selectedIndex=g_mapstyle;mapTypeChanged();g_map.getPane(G_MAP_FLOAT_SHADOW_PANE).style.visibility="hidden";setMapListeners();return false}function unload(A){if(g_usemap){GUnload()}}function extractAction(A){var B=A.indexOf("(");if(B>0){return A.substr(0,B)}else{return A}}function logit(){if((g_host==BOCA_HOST)&&(!g_nocompress)){return }var B="";for(var A=0;A<arguments.length;A++){if(B!=""){B+=","}B+="'"+arguments[A]+"'"}if(g_usemap&&bln_USE_GMAP_LOG){GLog.write(B)}else{console.log(B)}}function toggleToolTips(){tt_Enabled=document.getElementById("toolTips").checked}function toggleGLog(){bln_USE_GMAP_LOG=document.getElementById("GLog").checked}function toggleXMLdebug(){bln_XMLdebug_mode=document.getElementById("XMLdebug").checked}function mouseMoved(C){C=C||window.event;var B=mouseCoords(C);var A=B.x;var D=B.y;if((A==g_mouse_x)&&(D==g_mouse_y)){return }g_mouse_x=A;g_mouse_y=D;g_mouse_moved=true;document.onmousemove=null}function mouseCoords(A){return{x:A.clientX,y:A.clientY}}function clickFindNearest(A){g_radius=parseFloat(document.getElementById("FindNearest_Radius").value.trim());if(isNaN(g_radius)){alert("Radius must be a number");return }if(A==-1){g_radius_lat=g_LocData.latitude;g_radius_lng=g_LocData.longitude;g_radius_id=g_LocData.locId}else{g_radius_lat=special_Latitude[A];g_radius_lng=special_Longitude[A];g_radius_id=""}working("Getting map bounds");g_current_mode=MODE_FIND_NEAREST;loadRemoteXMLFile(true,"action="+ACTION_BOCA_GETBOUNDS+setSearchParams(false)+"&nearest=true&priority="+PRIORITY_EMPTY);g_table_div_id[TABLE_LISTNEAREST]="FindNearest_Result";document.getElementById(g_table_div_id[TABLE_LISTNEAREST]).innerHTML="Searching..."}function genDropDown(A,L,C,F,D,J,I,E){if(arguments.length>8){var H=arguments[8]}else{H=false}var M='<td><select id="'+A+'" ';var K=false;if(I!=""){M+='onchange="'+I+'" '}if(H){M+=" disabled "}M+=">";if(L){M+='<option value="" ';if(J==""){M+="selected ";K=true}M+="></option>\n"}if(D>0){for(var G=C;G<=F;G+=D){M+='<option value="'+G+'" ';if((G==J)&&!K){M+="selected "}M+=">"+G+"</option>\n"}}else{for(G=C;G>=F;G+=D){if(E){var B=padout(G)}else{B=G}M+='<option value="'+B+'" ';if((G==J)&&!K){M+="selected "}M+=">"+B+"</option>\n"}}M+="</select></td>";return M}function showRadio(D,B,A){var C='<td><INPUT type="radio" value="'+D+'" name="'+B+'" ';if(A!=null){if(A.toLowerCase()==D.toLowerCase()){C+=" checked "}}C+="></td>";return C}function getChecked(A){var B=document.getElementById(A);if(B!=null){return"&"+A+"="+document.getElementById(A).checked}else{return""}}function manageLoc(){logit("MANAGELOC",g_LocData.loc_class,g_LocData.icon,g_LocData.BOCA_id);if(owner_names.length==0){g_owner_load_mode=MODE_MANAGE_LOC;loadRemoteXMLFile(true,"action="+ACTION_LOAD_OWNERS)}else{manageLoc2()}}function manageLoc2(){lockButtons(true);MarkerBefore=-1;MarkerAfter=-1;for(i=0;i<mapLocs.length;i++){if(mapLocs[i].locId==g_LocData.locId){removeOverlay(mapLocs[i].marker);removeOverlay(mapLocs[i].polygon);g_LocData.polyline=mapLocs[i].polyline;g_LocData.east=mapLocs[i].east;g_LocData.west=mapLocs[i].west;g_LocData.north=mapLocs[i].north;g_LocData.south=mapLocs[i].south;break}}if(g_LocData.style==STYLE_POINT){var B=new GLatLng(g_LocData.latitude,g_LocData.longitude);g_bounds.extend(B);var A=createNumberedMarker(0,B);g_LocData.lineMarkers.push(A);createPolyPoints.push(B);g_LocData.marker=A}else{if(g_LocData.polyline.length>0){logit("manageLoc polypoints",g_LocData.polyline);g_bounds=new GLatLngBounds();var C=g_LocData.polyline.split(",");for(i=0;i<C.length;i+=2){B=new GLatLng(parseFloat(C[i]),parseFloat(C[i+1]));A=createNumberedMarker(i/2,B);g_LocData.lineMarkers.push(A);createPolyPoints.push(B);g_bounds.extend(B)}setCentre(g_bounds.getCenter(),g_map.getBoundsZoomLevel(g_bounds));g_LocData.polygon=new GPolyline(createPolyPoints,"#FF0000",2,1);g_map.addOverlay(g_LocData.polygon)}}if(g_LocData.loc_class==CLASS_BIRDLOC){createCreatePointHandler()}clickAddItem(MODE_EDIT_LOC);blnRemoveCurrent=true}function do_ShowLocation(){var F=g_ShowDescription.documentElement.getElementsByTagName("head");g_LocData.locId=parseInt(F[0].getAttribute("loc_id"),10);g_BS_loc_id=g_LocData.locId;g_BS_v_id=parseInt(F[0].getAttribute("v_id"),10);g_LocData.latitude=F[0].getAttribute("latitude");g_LocData.longitude=F[0].getAttribute("longitude");g_LocData.location_name=F[0].getAttribute("location_name");g_LocData.parent_name=F[0].getAttribute("parent_name");g_LocData.state_id=F[0].getAttribute("state_id");g_LocData.owner=F[0].getAttribute("owner");g_LocData.icon=F[0].getAttribute("icon");g_LocData.loc_class=F[0].getAttribute("class");g_LocData.marker_style=F[0].getAttribute("marker_style");g_LocData.BirdpediaId=F[0].getAttribute("BirdpediaId");g_LocData.BirdpediaState=F[0].getAttribute("BirdpediaState");g_LocData.BirdpediaData=F[0].getAttribute("BirdpediaData");g_LocData.BOCA_id=F[0].getAttribute("BOCA_id");g_LocData.privateFlag=F[0].getAttribute("private");g_internal=g_ShowDescription.documentElement.getElementsByTagName("internal");var H=g_ShowDescription.documentElement.getElementsByTagName("news");var d=g_ShowDescription.documentElement.getElementsByTagName("newsdir");var B=g_ShowDescription.documentElement.getElementsByTagName("EM");var A=g_ShowDescription.documentElement.getElementsByTagName("Eremaea");var N=g_ShowDescription.documentElement.getElementsByTagName("Eremaea2");g_LocData.desc=F[0].getAttribute("description");var Y=g_LocData.desc;var f=Y;g_LocData.owners=g_ShowDescription.documentElement.getElementsByTagName("owner");g_LocData.owner_ids=[];g_LocData.owner_descs=[];g_LocData.owner_names=[];if(g_LocData.owners&&(g_LocData.owners.length)){for(var T=0;T<g_LocData.owners.length;T++){g_LocData.owner_ids[T]=g_LocData.owners[T].getAttribute("owner");g_LocData.owner_descs[T]=g_LocData.owners[T].getAttribute("owner_description");g_LocData.owner_names[T]=g_LocData.owners[T].getAttribute("owner_name")}}if((Y!=null)&&(Y.length>0)){if(g_LocData.owner_ids.length>0){for(T=0;T<g_LocData.owners.length;T++){var G=new RegExp("!!"+g_LocData.owner_ids[T]+"!!","g");Y=Y.replace(G,'<hr width="50%" align="center">'+g_LocData.owner_descs[T]);f=f.replace(G,"!!"+g_LocData.owner_ids[T]+" "+g_LocData.owner_names[T]+"!!")}}Y=Y.split("|");f=f.split("|")}else{Y=null;f=null}g_LocDataDescriptionData[W]=[];for(var W=0;W<g_LocDataDescriptionCount[g_LocData.loc_class];W++){if(Y==null){g_LocDataDescriptionData[W]="";g_LocDataDescriptionDataOrig[W]=""}else{g_LocDataDescriptionData[W]=Y[W];g_LocDataDescriptionDataOrig[W]=f[W]}}var a=g_ShowDescription.documentElement.getElementsByTagName("external_owner");var Q="";var c="";if(a&&a[0]){Q=a[0].getAttribute("owner_name");c=a[0].getAttribute("owner_description")}var M='<table border="0"><tr><td><h1 class="centre">'+g_LocData.location_name;if(Q!=""){M+=" ("+Q+")"}M+="</h1>";if(g_LocData.icon==ICON_AFFIL){M+='</br><h2 class="centre">(A BOCA Affiliate)</h2>'}var I=false;logit("HOST AND LEVEL",g_host,g_userlevel);if(g_host!=BOCA_HOST){if((g_LocData.owner==g_user_id)||(g_userlevel==ADMIN_LEVEL)){M+='<table class="noprint"><tr><td><input type="button" value="Edit" onclick="manageLoc()" /></td>';I=true}if(g_userlevel==ADMIN_LEVEL){if(!I){I=true;M+='<table class="noprint"><tr>'}M+='<td><input type="button" value="Delete" onclick="deleteLoc()" /></td>'}if(g_LocData.loc_class==CLASS_BIRDLOC){if(!I){I=true;M+='<table class="noprint"><tr>'}M+='<td><input type="button" value="Guestbook" onclick="guestBook(0)" /></td>';if(g_logged_in){}if(g_user_is_lb){}}}if(I){M+="</tr></table>"}if(((g_LocData.owner==g_user_id)||(g_userlevel==ADMIN_LEVEL))&&(g_LocData.loc_class==CLASS_BIRDCLUB)){var E=g_base_url+"&mode="+SHOWMAP_SHOWLOC+"&loc_id="+g_BS_loc_id;var U="<option>"+(g_current_year-1)+"</option><option selected>"+(g_current_year)+"</option><option>"+(g_current_year+1)+"</option>";M+="<hr>"+unescape(g_status)+'<form action="'+g_PHP_dir+'BOCA_insert.php" enctype="multipart/form-data" method="post"><table><tr><td colspan="2" class="centre"><b>Upload Newsletter</b><input type="hidden" name="action" value="'+ACTION_UPLOAD_NEWS+'"><input type="hidden" name="environment" value="'+g_environment+'"><input type="hidden" name="locid" value="'+g_BS_loc_id+'"><input type="hidden" name="url" value="'+E.replace(/&sid=[0-9]*/i,"")+'"></td></tr><tr><td>Type (or select) Filename: </td><td><input type="file" name="uploadFile"></td></tr><tr><td>Year</td><td><select name="NewsYear">'+U+'</select></td></tr><tr><td>Month</td><td><select id="NewsMonth" name="NewsMonth"><option value="01">Jan</option><option value="02">Feb</option><option value="03">Mar</option><option value="04">Apr</option><option value="05">May</option><option value="06">Jun</option><option value="07">Jul</option><option value="08">Aug</option><option value="09">Sep</option><option value="10">Oct</option><option value="11">Nov</option><option value="12">Dec</option></select></td></tr><tr><td>Newsletter Name (inc edition)</td><td><input type="text" name="NewsName"></td></tr><tr><td colspan="2"><input type="submit" value="Upload File"></td></tr></table></form><hr>';g_status=""}if(g_usemap){M+='<input type="button" onclick="reloadMap()" value="Back to Previous Map"/>'}logit("USING",g_LocDataDescriptionCount[g_LocData.loc_class]);for(W=0;W<g_LocDataDescriptionCount[g_LocData.loc_class];W++){var O=g_LocDataDescriptionSequence[g_LocData.loc_class][W];var Z=g_LocDataDescriptionAction[g_LocData.loc_class][O];Z=extractAction(Z);var X="";switch(+Z){case +ACTION_NORMAL:case +ACTION_CONTACT:case +ACTION_EXT_DESC:if((Z==ACTION_EXT_DESC)&&(c!="")){var S=c}else{S=""}if(g_LocDataDescriptionData[O]){S+=g_LocDataDescriptionData[O]}M+=genDescription(S,g_LocDataDescriptionTitles[g_LocData.loc_class][O],false);break;case +ACTION_CONTACT_MEMBER:if(g_logged_in){M+=genDescription(g_LocDataDescriptionData[O]+X,g_LocDataDescriptionTitles[g_LocData.loc_class][O],false)}break}}if(H&&(H.length)){M+='<h2 class="centre">Branch Newsletter(s)</h2><table>';for(var P=0;P<H.length;P++){var K=H[P].getAttribute("name");var J=K.substr(0,4);var b=months[K.substr(5,2)-1];var g=K.substr(8,K.length-12);M+="<tr><td>"+b+" "+J+"</td><td><a href='"+d[0].getAttribute("name")+"/"+K+"' target='_blank'>"+g+"</a></td><td>"+H[P].getAttribute("size")+" kB</td></tr>"}M+="</table>"}if((g_LocData.BirdpediaId>0)||(B&&(B.length))||(A&&(A.length))||(N&&(N.length))){M+='<hr class="noprint"><h2 class="centre noprint">Sightings and Reporting</h2>';if((g_LocData.BirdpediaId>0)||(B&&(B.length))){M+='<p  class="noprint"/>Birdpedia and Eremaea provide free online reporting systems - if there is data for this site the link will be shown below. Note that there is a tendency for people to only record unusual sightings (or visits when they had an unusual sighting) and thus some common species tend to be under-reported whereas unusual sightings tend to be over-represented. You should bear this in mind when planning a trip to the site.</p>'}if(B&&(B.length)){for(T=0;T<B.length;T++){var C=B[T].getAttribute("eremaea_id");if(T==0){g_LocData.EremaeaId=C}else{g_LocData.EremaeaId+=","+C}M+='<p class="noprint"><a href="http://www.eremaea.com/SiteSpeciesList.aspx?Site='+C+'" target="_blank">Eremaea list ('+B[T].getAttribute("SiteName")+")</a></p>"}}if(g_LocData.BirdpediaId>0){M+='<p class="noprint"><a href="http://www.birdpedia.com/au/bi.dll/bipu04?m=510&id524='+g_LocData.BirdpediaId+"&id509="+g_LocData.BirdpediaState+'" target="_blank">Birdpedia list</a></p>'}if(A&&(A.length)){if(g_LocData.loc_class==CLASS_EREMAEA){M+='<hr width="50%" align="center"><p  class="noprint"/>This cell ('+A[0].getAttribute("LatDeg")+":"+A[0].getAttribute("LatMin")+","+A[0].getAttribute("LngDeg")+":"+A[0].getAttribute("LngMin")+") contains the following Eremaea locations.</p><table>"}else{M+='<hr width="50%" align="center"><p  class="noprint"/>Eremaea has records for the following locations within the same 10 minute cell ('+A[0].getAttribute("LatDeg")+":"+A[0].getAttribute("LatMin")+","+A[0].getAttribute("LngDeg")+":"+A[0].getAttribute("LngMin")+") as the current location.</p><table>"}for(T=0;T<A.length;T++){M+=printEMLine(A[T])}M+="</table></div>"}if(N&&(N.length)){M+='<p  class="noprint"/><hr width="50%" align="center">Eremaea has records for the following locations in the 10 minute cells surrounding the current location\'s cell.</p><table>';var L=null;var D=null;for(T=0;T<N.length;T++){var e=N[T].getAttribute("LatDeg")+":"+N[T].getAttribute("LatMin");var R=N[T].getAttribute("LngDeg")+":"+N[T].getAttribute("LngMin");if((e!=L)||(R!=D)){M+='<tr><td colspan=2><hr width="50%" align="center"></td></tr><tr><td colspan=2 class="centre">'+e+","+R+" Cell</td></tr>";L=e;D=R}M+=printEMLine(N[T])}M+="</table></div>"}}M+="<hr><p>";switch(+g_LocData.marker_style){case +MARKER_GENERAL:M+="Note that the marker indicates only the general area of the club or location.</p>";break;case +MARKER_MEETING:M+="The marker indicates the approximate location for meetings of the club.";break;case +MARKER_ACTIVITY:M+="The marker indicates the approximate location for activities of the club.</p>";break;case +MARKER_OFFICE:M+="The marker indicates the approximate location for the office of the club.</p>";break;case +MARKER_ENTRANCE:M+="The map indicates the approximate entrance to the location.</p>";break;case +MARKER_AREA:M+="<p>The map indicates the approximate bounds of the location, but should not be relied on to determine which areas you may access.</p>";break}M+=" You should check for precise directions if you intend to visit. BOCA cannot accept any responsibility for any errors in the location of the marker or any issues with the maps used.</p></td></tr></table>";M+="<p>Links above may provide access to other birding and bird interest organisations. These are external web sites and BOCA takes no responsibility for any information on the sites or for the quality of any goods or services provided by the owners/operators of these sites.</p>";logit("updateSidePanel from loadshowloc");updateSidePanel(M,PRIORITY_INFO);document.getElementById("find_nearest").innerHTML='<hr class="noprint"><h2 class="centre noprint">Nearest Locations</h2><p class="noprint"><input class="noprint" type="button" id="FindNearest" value="Find Nearest" onclick="clickFindNearest('+-1+')"/> locations to the marker. This uses the radius specified below and the categories set at the top of the screen to decide what to return. Limit to sites within <input class="noprint" type="text" value="200" name="radius" id="FindNearest_Radius"/> km.</p><br class="noprint"><div id="FindNearest_Result" class="noprint"></div></div>';g_sidebar_loc=g_BS_loc_id;setBookMark(g_base_url+"&mode="+SHOWMAP_SHOWLOC+"&loc_id="+g_BS_loc_id,"BOCA Birding Maps - "+g_LocData.location_name);try{document.getElementById("NewsMonth").selectedIndex=g_current_month}catch(V){}}function saveCurrentControls(){boundsFromMap();var A="&bc="+document.getElementById("BirdClubs").checked+"&bl="+document.getElementById("PublicLocations").checked+"&pel="+document.getElementById("Pelagics").checked+setEM()+"&bi="+document.getElementById("cboStates").value.substr(1)+"&grid="+document.getElementById("cboMapGrid").selectedIndex+"&map="+document.getElementById("cboMapStyle").selectedIndex+"&search="+escape(document.getElementById("FindLocation_Name").value)+"&stype="+document.getElementById("FindLocation_Starts").checked+"&lat="+g_map.getCenter().lat().toFixed(6)+"&lng="+g_map.getCenter().lng().toFixed(6)+"&zoom="+g_map.getZoom();return A}function genDescription(J,L,K){if((J==null)||(J.length==0)||(J=="undefined")){return""}if(K){var O=genHeader(2,L)}else{O='<h2 class="centre">'+L+"</h2>"}var P=J.split("<br />");var B=TEXT_HEADER_CODE.length;for(var H=0;H<P.length;H++){var E=P[H].trim();if(E.substr(0,B)==TEXT_HEADER_CODE){O+='<h3 class="centre page_break">'+E.substr(B,E.length-B)+"</h3>"}else{var C=P[H].match(RE_URL_MAIL);if(C==null){O+='<p class="page_break"/>'+E+"</p>"}else{logit("FLAGS",C);var I=new Array(C.length);var N=0;for(var D=0;D<C.length;D++){N=P[H].substring(0,N).length;I[D]=N+P[H].substring(N).search(RE_URL_MAIL);N=I[D]+C[D].length}logit(I);var A=0;var M=[];for(D=0;D<I.length;D++){M[D]=P[H].substring(A,I[D]);A=I[D]+3}M[D]=P[H].substring(A);logit(M);if((M==null)||(M.length!=C.length+1)){O+="<b>Warning - possibly corrupt information 1 "+M.length+" "+C.length+"</b>";O+=E+"<br />"}else{O+='<p class="page_break"/>'+M[0];var G=1;for(var F=0;F<C.length;F++){switch(C[F]){case URL_DISPLAY_CODE:O+='<a href="'+M[G+1]+'" target="_blank">'+M[G]+"</a>"+M[G+2];G+=3;F+=2;break;case URL_START_CODE:O+='<a href="'+M[G]+'" target="_blank">'+M[G]+"</a>"+M[G+1];G+=2;F++;break;case POPUP_DISPLAY_CODE:O+='<input type="button" value="'+M[G]+'" onclick="mailPopup('+M[G+1]+')"/>'+M[G+2];G+=3;F+=2;break;case POPUP_START_CODE:O+='<input type="button" value="Send Email" onclick="mailPopup('+M[G]+')"/>'+M[G+1];G+=2;F++;break;case MAIL_DISPLAY_CODE:O+='<a href="mailto:'+M[G+1]+'">'+M[G]+"</a>"+M[G+2];G+=3;F+=2;break;case MAIL_START_CODE:O+='<a href="mailto:'+M[G]+'">'+M[G]+"</a>"+M[G+1];G+=2;F++;break;case POPUP_END_CODE:case URL_END_CODE:case MAIL_END_CODE:O+="<b>Warning - possibly corrupt information 2</b>";O+=E+"<br />";break}}O+="</p>"}}}}return O}function loadedShowDescription(A){switch(A){case LOAD_SHOWLOCATION:g_ShowDescription.documentElement.getElementsByTagName("head");do_ShowLocation();break}}function reloadMap(){logit("reloadMap");working("Reload Saved Map");g_current_mode=MODE_BACK_TO_MAP;clearNearestMode();logit("Nearest Cleared");g_map.returnToSavedPosition();logit("return processed");clickListShown();logit("END RELOADMAP")}function enableLocnameFilters(E,C){var D=!document.getElementById("FilterUse"+E).checked;switch(+C){case +COLMAP_NUMBER:var A=document.forms["Number"+E].elements["NumberType"+E];for(var B=0;B<A.length;B++){A[B].disabled=D}document.getElementById("NumberValue"+E).disabled=D;break;case +COLMAP_LOCNAME:A=document.forms["Locname"+E].elements["TextType"+E];for(B=0;B<A.length;B++){A[B].disabled=D}document.getElementById("TextValue"+E).disabled=D;break;case +COLMAP_STATE:case +COLMAP_TYPE:document.getElementById("Filter"+E).disabled=D;break}}function loadTableArray(E){var A=[];if(E.length==0){return A}for(var D=0;D<E.length;D++){var B=E[D].getAttribute("FIELDS").split("|");A[D]=[];for(var C=0;C<B.length;C++){if(B[C]=="%"){A[D][C]=A[D-1][C]}else{A[D][C]=B[C]}}}return A}function parseXML(A){return A}function addFilterString(A,B){if(g_display_filter[A]!=""){g_display_filter[A]+=", "}g_display_filter[A]+=B}function addSortString(A,B){if(g_display_sort[A]!=""){g_display_sort[A]+=", "}g_display_sort[A]+=B}function tableSort(I,H){for(var E=0;E<g_max_sort;E++){var C=document.getElementById("Sort"+E);var K=C.value;if(K!=""){var D=getCheckedValue(document.forms["SortForm"+E].elements["SortDir"+E]);var A=K.split("|");var B=A[1];var J=A[0];var G=I[J];var F=H[J];logit("EL",E,K,"COL",J,G,F,B);switch(+B){case +COLMAP_TYPE:G=genName(I[J],I[g_owner_col_no]);F=genName(H[J],H[g_owner_col_no]);logit("TYPE",G,F);if(G!=F){if(G){G=G.toUpperCase()}if(F){F=F.toUpperCase()}if(D=="ASC"){if(G<F){return -1}else{return 1}}else{if(G>F){return -1}else{return 1}}}break;case +COLMAP_STATE:logit("STATE");if(G!=F){if(G){G=G.toUpperCase()}if(F){F=F.toUpperCase()}if(D=="ASC"){if(G<F){return -1}else{return 1}}else{if(G>F){return -1}else{return 1}}}break;case +COLMAP_LOCNAME:if(G!=F){if(D=="ASC"){if(G<F){return -1}else{return 1}}else{if(G>F){return -1}else{return 1}}}break;case +COLMAP_NUMBER:if(G!=F){if(D=="ASC"){return G-F}else{return F-G}}break}}}return 0}function working(A){document.body.style.cursor="wait";statusBar(A)}function finished(){document.body.style.cursor="default";statusBar("Done");g_current_mode=MODE_IDLE}function statusBar(A){window.status=A}function setMapListeners(){removeMapListeners();zoomListener=GEvent.addListener(g_map,"zoom",function(){working("Zoom start");g_current_mode=MODE_ZOOM;startZoomOrMove()});zoomStartListener=GEvent.addListener(g_map,"zoomstart",function(){working("Zoom start");g_current_mode=MODE_ZOOM;startZoomOrMove()});moveEndListener=GEvent.addListener(g_map,"moveend",function(){boundsFromMap();getMarkers(false,PRIORITY_LIST_INFO)});moveStartListener=GEvent.addListener(g_map,"movestart",function(){working("Move start");g_current_mode=MODE_PAN;startZoomOrMove()});moveListener=GEvent.addListener(g_map,"move",function(){working("Move start");g_current_mode=MODE_PAN;startZoomOrMove()})}function startZoomOrMove(){logit("startZoomOrMove");removeStartListeners();removeOverlays()}function removeStartListeners(){if(zoomListener){GEvent.removeListener(zoomListener);zoomListener=false}if(zoomStartListener){GEvent.removeListener(zoomStartListener);zoomStartListener=false}if(moveListener){GEvent.removeListener(moveListener);moveListener=false}if(moveStartListener){GEvent.removeListener(moveStartListener);moveStartListener=false}}function removeMapListeners(){removeStartListeners();if(moveEndListener){GEvent.removeListener(moveEndListener);moveEndListener=false}}function emailBookmark(){g_MailFormStruct[1]="do_mailPopup('','','"+escape(g_bookmark_title)+"','"+MAIL_EMAIL_LINK+"','"+escape(g_bookmark_url+saveCurrentControls())+"');";loadCode(g_MailFormStruct)}function createBookmark(){if(window.sidebar){window.sidebar.addPanel(g_bookmark_title,g_bookmark_url+saveCurrentControls(),"")}else{if(window.external){window.external.AddFavorite(g_bookmark_url+saveCurrentControls(),g_bookmark_title)}else{if(confirm("Your browser does not support this function. If you click OK then a new tab/window will be opened containing a copy of the current map and you may then use the normal browser functions to bookmark that page - trying to bookmark this page will not work as expected.")){openUpdatedURL(g_bookmark_url+saveCurrentControls(),g_bookmark_title)}}}}function setBookMark(A,B){g_bookmark_url=A.replace(/&sid=[0-9]*/i,"");g_bookmark_title=B}function openUpdatedURL(A,B){window.open(A+saveCurrentControls(),B)}function CreateBookmarkLink(A,B){if(window.sidebar){window.sidebar.addPanel(B,A+saveCurrentControls(),"")}else{if(window.external){window.external.AddFavorite(A+saveCurrentControls(),B)}}}function setupLocationTable(J,B,H,K,A){g_display_sort[B]="";g_display_filter[B]="";g_table_div_id[B]=K;g_table_title[B]=J;if(A){g_listshown_sidebar='<div id="'+g_table_div_id[B]+'"></div>';updateSidePanel(g_listshown_sidebar,PRIORITY_LIST_FORCE)}var E=H.documentElement.getElementsByTagName("data");var I=H.documentElement.getElementsByTagName("head");if(!E||E===null||(I.length==0)){try{document.getElementById(J).innerHTML="None found"}catch(C){}return }g_table_total[B]=I[0].getAttribute("total");var G=[];logit("ARRAY LOAD",E.length);for(var F=0;F<E.length;F++){var L=E[F].getAttribute("FIELDS").split("|");G[F]=[];for(var D=0;D<L.length;D++){if(L[D]=="%"){G[F][D]=G[F-1][D]}else{G[F][D]=L[D]}}}g_table_arrays[B]=G}function displayLocationTable(O,a,Z,S,f,E){logit("displayLocationTable",O,a,Z,S,f);var A=g_table_arrays[O];logit("GNL",g_nolist,"GUM",g_usemap,f);if(!g_nolist||!g_usemap){if(f){logit("SORTING");A.sort(f)}if(Z){var K=4}else{K=3}g_max_filter=K;g_max_sort=K;var e='<tr><th class="centre">Location Name</th><th class="centre">Type</th><th class="centre">State</th>';if(Z){e+='<th class="centre">Distance</th>'}var P='<table border="1"><tr><th colspan="'+K+'" class="centre">'+g_table_title[O];if(!a){var I=(g_display_filter[O]&&(g_display_filter[O].length>0));if(I){P+=" (Filtered)"}if(Z){var D=A.length-1;var C=g_table_total[O]-1}else{D=A.length;C=g_table_total[O]}P+=" ("+D+" OF "+C+") ";if(!S){P+='<input type="button" onclick="showFilterRows('+O+","+a+","+Z+')" value="Sort or Filter" onmouseover="Tip(\'Show the filter and sort controls will appear as extra rows at the top of this table.\')" onmouseout="UnTip()"/>'}else{if(A.length==0){P+='<input type="button" onclick="clearLocationFilter('+O+","+a+","+Z+')" value="Reset" onmouseover="Tip(\'Clear all filters.\')" onmouseout="UnTip()"/>'}}}P+="</th></tr>";if(I){P+='<tr><th colspan="'+K+'" class="centre">FILTERS: '+g_display_filter[O]+"</th></tr>"}if(g_display_sort[O]&&(g_display_sort[O].length>0)){P+='<tr><th colspan="'+K+'" class="centre">SORTED BY: '+g_display_sort[O]+"</th></tr>"}e+="</tr>";data_loop:for(var X=0;X<A.length;X++){if((X%linesPerHead)==0){if((X==0)&&S){var Q="";var G="";for(var W=0;W<K;W++){Q+='<tr><td colspan="'+(K-1)+'">Sort Priority '+(W+1)+': <select id="Sort'+W+'"  onmouseover="Tip(\'Use this to determine which is the ';switch(W+1){case 1:Q+="1st";break;case 2:Q+="2nd";break;case 3:Q+="3rd";break;default:Q+=(W+1)+"th";break}Q+=' priority column to sort on.\')" onmouseout="UnTip()"><option value="" >None</option>\n<option value="'+LOCATION_NAME_COL+'" >Location Name</option>\n<option value="'+ICON_COL+'" >Type</option>\n<option value="'+STATE_NAME_COL+'" >State</option>\n';if(Z){Q+='<option value="'+DISTANCE_COL+'" >Distance</option>\n'}Q+='</select><form id="SortForm'+W+'"> Asc:<INPUT type="radio" value="ASC" name="SortDir'+W+'" checked onmouseover="Tip(\'Sort in Ascending sequence\');" onmouseout="UnTip()" > Desc:<INPUT type="radio" value="DESC" name="SortDir'+W+'" onmouseover="Tip(\'Sort in Descending sequence\');" onmouseout="UnTip()" ></form></td>';if(W==0){Q+="<td rowspan="+2*K+'><input type="button" id="Apply'+O+'" onclick="applyLocationFilter('+O+","+a+","+Z+')" value="Apply" onmouseover="Tip(\'Apply the filter/sort parameters.\')" onmouseout="UnTip()"';if(E){Q+=" disabled"}Q+='/><br><input type="button" id="Reset'+O+'" onclick="clearLocationFilter('+O+","+a+","+Z+')" value="Reset" onmouseover="Tip(\'Clear all filters.\')" onmouseout="UnTip()"';if(!E){Q+=" disabled"}Q+='/><br><input type="button" id="Hide'+O+'" onclick="hideLocationFilter('+O+","+a+","+Z+')" value="Hide" onmouseover="Tip(\'Hide the filter/sort rows.\')" onmouseout="UnTip()"';if(E){Q+=" disabled"}Q+="/></td>"}Q+="</tr>"}G+='<tr><td colspan="'+(K-1)+'"><INPUT type="hidden" id="Filter'+LOCATION_NAME_COL+'" value="Filter'+LOCATION_NAME_COL+'"><INPUT type="checkbox" id="FilterUse'+LOCATION_NAME_COL+'" onclick="enableFilters('+LOCATION_NAME_COL+')" onmouseover="Tip(\'Select this to filter on the <b>Location Name</b> column.\')" onmouseout="UnTip()">Filter <b>Location Name</b>: <form id="Locname'+LOCATION_NAME_COL+'"> Starts<INPUT type="radio" value="Y" name="TextType'+LOCATION_NAME_COL+'" checked disabled onmouseover="Tip(\'Select to include only those locations where the Location Name starts with value you enter\')" onmouseout="UnTip()"> Contains<INPUT type="radio" value="N" name="TextType'+LOCATION_NAME_COL+'" disabled onmouseover="Tip(\'Select to include only those locations where the Location Name contains with value you enter\')" onmouseout="UnTip()"> <INPUT type="text" size="15" id="TextValue'+LOCATION_NAME_COL+'" disabled onmouseover="Tip(\'Enter string to use for search - case is not significant\')" onmouseout="UnTip()"></form></td></tr>';G+='<tr><td colspan="'+(K-1)+'"><INPUT type="hidden" id="Filter'+ICON_COL+'" value="Filter'+ICON_COL+'"><INPUT type="checkbox" id="FilterUse'+ICON_COL+'" onclick="enableFilters('+ICON_COL+')" onmouseover="Tip(\'Select this to filter on the <b>Type</b> column.\')" onmouseout="UnTip()">Filter <b>Type</b>: <select disabled multiple size="4" id="FilterSel'+ICON_COL+'" onmouseover="Tip(\'You may filter for one or more of the values in this column - to filter for two (or more) values hold down the CTRL key as you click the rows. Only locations where the Type matches one of the selected values will be included\')" onmouseout="UnTip()">';var b=[];for(var V=0;V<A.length;V++){var d=genName(A[V][ICON_COL],A[V][OWNER_NAME_COL]);var H=false;for(var U=0;U<b.length;U++){if(d==b[U]){H=true;break}}if(!H){b[b.length]=d}}b.sort();for(var L=0;L<b.length;L++){var T="";for(U=0;U<iconNames.length;U++){if(b[L]==iconNames[U]){T=U;break}}G+="<option>"+b[L]+"</option>"}G+="</select></td></tr>";G+='<tr><td colspan="'+(K-1)+'"><INPUT type="hidden" id="Filter'+STATE_NAME_COL+'" value="Filter'+STATE_NAME_COL+'"><INPUT type="checkbox" id="FilterUse'+STATE_NAME_COL+'" onclick="enableFilters('+STATE_NAME_COL+')" onmouseover="Tip(\'Select this to filter on the <b>State</b> column.\')" onmouseout="UnTip()">Filter <b>State</b>: <select disabled multiple size="4" id="FilterSel'+STATE_NAME_COL+'" onmouseover="Tip(\'You may filter for one or more of the values in this column - to filter for two (or more) values hold down the CTRL key as you click the rows. Only locations where the State matches one of the selected values will be included\')" onmouseout="UnTip()">';b=[];for(V=0;V<A.length;V++){d=A[V][STATE_NAME_COL];H=false;for(U=0;U<b.length;U++){if(d==b[U]){H=true;break}}if(!H){b[b.length]=d}}b.sort();for(L=0;L<b.length;L++){G+="<option>"+b[L]+"</option>"}G+="</select></td></tr>";if(Z){G+='<tr><td colspan="'+(K-1)+'"><INPUT type="hidden" id="Filter'+DISTANCE_COL+'" value="Filter'+DISTANCE_COL+'"><INPUT type="checkbox" id="FilterUse'+DISTANCE_COL+'" onclick="enableFilters('+DISTANCE_COL+')" onmouseover="Tip(\'Select this to filter on the <b>Distance</b> column.\')" onmouseout="UnTip()">Filter <b>Distance</b>: <form id="Distance'+DISTANCE_COL+'"> Less Than<INPUT type="radio" value="LT" name="TextType'+DISTANCE_COL+'" checked disabled onmouseover="Tip(\'Select to include only those locations where the Distance is less than the value you enter\')" onmouseout="UnTip()"> Equals<INPUT type="radio" value="EQ" name="TextType'+DISTANCE_COL+'" checked disabled onmouseover="Tip(\'Select to include only those locations where the Distance is equal to the value you enter\')" onmouseout="UnTip()"> Greater Than<INPUT type="radio" value="GT" name="TextType'+DISTANCE_COL+'" checked disabled onmouseover="Tip(\'Select to include only those locations where the Distance is greater than the value you enter\')" onmouseout="UnTip()"> <INPUT type="text" size="15" id="TextValue'+DISTANCE_COL+'" disabled onmouseover="Tip(\'Enter number to use for search\')" onmouseout="UnTip()"></form></td></tr>'}P+=Q+G}P+=e}if(Z){if(g_special_ids.length>0){var B=false;var M=A[X][LOCATION_ID_COL];for(var J=0;J<g_special_ids.length;J++){if(M==g_special_ids[J]){B=true;break}}if(!B){continue data_loop}}}var F="<tr>";var R=A[X][LOCATION_ID_COL];var c=A[X][LOCATION_NAME_COL];if(R==0){F+='<td><a href="javascript:expandGroup('+A[X][NORTH_COL]+","+A[X][EAST_COL]+","+A[X][WEST_COL]+","+A[X][SOUTH_COL]+')">'+printString(c,true)+"</a></td>"}else{var N="";if(g_special_ids.length>0){for(V=0;V<g_special_ids.length;V++){if(R==g_special_ids[V]){N=' class="red"';break}}}F+="<td ><a"+N+' href="javascript:reshowLoc('+R+')">'+printString(c,true)+"</a></td>"}F+="<td>"+genName(A[X][ICON_COL],A[X][OWNER_NAME_COL])+"</td>";F+="<td>"+printString(A[X][STATE_NAME_COL],true)+"</td>";if(Z){F+="<td>"+printInt(A[X][DISTANCE_COL])+"</td>"}F+="</tr>";P+=F}P+="</table>";try{document.getElementById(g_table_div_id[O]).innerHTML=P}catch(Y){}}return }function showFilterRows(C,A,B){displayLocationTable(C,A,B,true,false,false)}function enableFilters(C){var B=!document.getElementById("FilterUse"+C).checked;switch(+C){case +LOCATION_NAME_COL:var A=document.forms["Locname"+C].elements["TextType"+C];for(i=0;i<A.length;i++){A[i].disabled=B}document.getElementById("TextValue"+C).disabled=B;break;case +DISTANCE_COL:A=document.forms["Distance"+C].elements["TextType"+C];for(i=0;i<A.length;i++){A[i].disabled=B}document.getElementById("TextValue"+C).disabled=B;break;case +ICON_COL:case +STATE_NAME_COL:document.getElementById("FilterSel"+C).disabled=B;break}}function clearLocationFilter(C,A,B){g_display_sort[C]="";g_display_filter[C]="";if(g_save_table_arrays[C]){g_table_arrays[C]=g_save_table_arrays[C].clone();g_save_table_arrays[C]=false}displayLocationTable(C,A,B,false,false,false)}function hideLocationFilter(C,A,B){displayLocationTable(C,A,B,false,false,false)}function applyLocationFilter(J,Z,U){working("Sorting/filtering");g_display_filter[J]="";var a=((document.getElementById("FilterUse"+LOCATION_NAME_COL).checked)&&(document.getElementById("TextValue"+LOCATION_NAME_COL).value!=""));var H=document.getElementById("FilterUse"+ICON_COL).checked;var T=document.getElementById("FilterUse"+STATE_NAME_COL).checked;if(U){var G=((document.getElementById("FilterUse"+DISTANCE_COL).checked)&&(document.getElementById("TextValue"+DISTANCE_COL).value!=""))}else{G=false}var E=a||H||T||G;logit("BLNFILTER",E);g_save_table_arrays[J]=false;if(E){if(a){var S=document.getElementById("TextValue"+LOCATION_NAME_COL).value.toUpperCase();var Y=S.toUpperCase();var V=getCheckedValue(document.forms["Locname"+LOCATION_NAME_COL].elements["TextType"+LOCATION_NAME_COL])=="N";if(V){addFilterString(J,"Location Name contains '"+S+"'")}else{addFilterString(J,"Location Name starts with '"+S+"'")}logit("BLNLOCNAMEFILTER",S,Y,V)}if(H){var O=[];var N=document.getElementById("FilterSel"+ICON_COL);for(var P=0;P<N.options.length;P++){if(N.options[P].selected){O.push(N.options[P].value)}}var K="";for(var F=0;F<O.length;F++){if(K!=""){K+=" OR "}K+=O[F]}addFilterString(J,"Type is "+K)}if(T){var B=[];N=document.getElementById("FilterSel"+STATE_NAME_COL);for(P=0;P<N.options.length;P++){if(N.options[P].selected){B.push(N.options[P].value)}}K="";for(F=0;F<B.length;F++){if(K!=""){K+=" OR "}K+=B[F]}addFilterString(J,"State is "+K)}if(G){var I=+document.getElementById("TextValue"+DISTANCE_COL).value;var W=getCheckedValue(document.forms["Distance"+DISTANCE_COL].elements["TextType"+DISTANCE_COL]);switch(W){case"LT":addFilterString(J,"Distance less than "+I);break;case"EQ":addFilterString(J,"Distance equal "+I);break;case"GT":addFilterString(J,"Distance greater than "+I);break}logit("BLNDISTANCEFILTER",I,W)}logit("ORIG SIZE",g_table_arrays[J].length);g_save_table_arrays[J]=g_table_arrays[J].clone();logit("SAVE SIZE",g_save_table_arrays[J].length);var D=0;g_table_arrays[J]=[];for(var R=0;R<g_save_table_arrays[J].length;R++){var Q=true;if(a){var A=g_save_table_arrays[J][R][LOCATION_NAME_COL].toUpperCase();if(V){if(A.indexOf(Y)<0){Q=false}}else{if(A.indexOf(Y)!=0){Q=false}}}if(Q){if(H){A=genName(g_save_table_arrays[J][R][ICON_COL],g_save_table_arrays[J][R][OWNER_NAME_COL]);var C=false;for(P=0;P<O.length;P++){if(O[P]==A){C=true;break}}if(!C){Q=false}}}if(Q){if(T){A=g_save_table_arrays[J][R][STATE_NAME_COL];C=false;for(P=0;P<B.length;P++){if(B[P]==A){C=true;break}}if(!C){Q=false}}}if(Q){if(G){A=g_save_table_arrays[J][R][DISTANCE_COL];logit(A,W,I,A<=I);switch(W){case"LT":if(A>=I){Q=false}break;case"EQ":if(A!=I){Q=false}break;case"GT":if(A<=I){Q=false}break}}}if(Q){g_table_arrays[J][D]=g_save_table_arrays[J][R];D++}}}var X=false;g_display_sort[J]="";for(i=0;i<g_max_sort;i++){var M=document.getElementById("Sort"+i);K=M.value;if(K!=""){var L=getCheckedValue(document.forms["SortForm"+i].elements["SortDir"+i]);addSortString(J,M.options[M.selectedIndex].text+" "+L);X=true}}if(X){g_table_arrays[J].sort(tableLocationSort)}displayLocationTable(J,Z,U,true,false,true);finished()}Object.prototype.clone=function(){var A=(this instanceof Array)?[]:{};for(i in this){if(i=="clone"){continue}if(this[i]&&typeof this[i]=="object"){A[i]=this[i].clone()}else{A[i]=this[i]}}return A};function sortLocationByName(B,A){var D=B[LOCATION_NAME_COL];var C=A[LOCATION_NAME_COL];if(D){D=D.toUpperCase()}if(C){C=C.toUpperCase()}if(D<C){return -1}else{return 1}return 0}function sortLocationByDist(B,A){var D=+B[DISTANCE_COL];var C=+A[DISTANCE_COL];if(D<C){return -1}else{return 1}return 0}function tableLocationSort(B,A){for(var E=0;E<g_max_sort;E++){var H=document.getElementById("Sort"+E);var G=H.value;if(G!=""){var C=getCheckedValue(document.forms["SortForm"+E].elements["SortDir"+E]);switch(+G){case +ICON_COL:F=genName(B[ICON_COL],B[OWNER_NAME_COL]);D=genName(A[ICON_COL],A[OWNER_NAME_COL]);if(F!=D){if(F){F=F.toUpperCase()}if(D){D=D.toUpperCase()}if(C=="ASC"){if(F<D){return -1}else{return 1}}else{if(F>D){return -1}else{return 1}}}break;case +DISTANCE_COL:F=+B[DISTANCE_COL];D=+A[DISTANCE_COL];if(C=="ASC"){if(F<D){return -1}else{return 1}}else{if(F<D){return 1}else{return -1}}break;case +STATE_NAME_COL:var F=B[STATE_NAME_COL];var D=A[STATE_NAME_COL];if(F!=D){if(F){F=F.toUpperCase()}if(D){D=D.toUpperCase()}if(C=="ASC"){if(F<D){return -1}else{return 1}}else{if(F>D){return -1}else{return 1}}}break;case +LOCATION_NAME_COL:F=B[LOCATION_NAME_COL];D=A[LOCATION_NAME_COL];if(F!=D){if(C=="ASC"){if(F<D){return -1}else{return 1}}else{if(F>D){return -1}else{return 1}}}break}}}return 0}function printEMLine(A){var B='<tr class="noprint"><td><a href="http://www.eremaea.com/SiteSpeciesList.aspx?Site='+A.getAttribute("Eremaea")+'" target="_blank">'+A.getAttribute("SiteName")+"</a></td><td>";if(A.getAttribute("location_id")>0){B+='<a href="javascript:reshowLoc('+A.getAttribute("location_id")+')">Map ('+A.getAttribute("location_name")+")</a>"}B+"</td>";if((g_LocData.owner==g_user_id)||(g_userlevel==ADMIN_LEVEL)){B+='<td><a href="javascript:addEMToLoc('+A.getAttribute("Eremaea")+')">Add to site</a></td>'}B+="</tr>";return B}function addEMToLoc(A){loadRemoteXMLFile(false,"action="+ACTION_ADD_EM+"&locid="+g_BS_loc_id+"&EremaeaId="+A)}function initialiseScreen(){document.getElementById("BirdClubs").checked=true;document.getElementById("PublicLocations").checked=true;document.getElementById("Pelagics").checked=true;document.getElementById("Advertisers").checked=true;document.getElementById("Eremaea").checked=false;document.getElementById("FindLocation_Starts").checked=true;document.getElementById("FindLocation_Name").value="";g_mapstyle=0;document.getElementById("cboMapGrid").selectedIndex=0;setStates(document.getElementById("cboStates"),g_init_state)}function testMode(){return((g_sid=="test")||(g_host==LOCAL_HOST))};