<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://en.wikifur.com/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://pool.wikifur.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tanooki00</id>
		<title>WikiFur - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://pool.wikifur.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tanooki00"/>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Special:Contributions/Tanooki00"/>
		<updated>2026-10-16T17:01:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.16</generator>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T06:11:06Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: Undo revision 1937 by Tanooki00 (talk) - unneeded formatting tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn &amp;amp; Suites, North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23 2014', 55);&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T06:10:16Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: Undo revision 1938 by Tanooki00 (talk) - error during tweaking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn and Suites, North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23 2014', 55);&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T06:06:42Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: formatting tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn and Suites North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23 2014', 55);&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T06:02:26Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: formatting tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn and Suites, North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23 2014', 55);&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T05:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: fixed formatting for F3 Convention&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn &amp;amp; Suites, North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23 2014', 55);&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	<entry>
		<id>//pool.wikifur.com/wiki/Convention_map_script</id>
		<title>Convention map script</title>
		<link rel="alternate" type="text/html" href="https://pool.wikifur.com/wiki/Convention_map_script"/>
				<updated>2014-05-18T05:54:07Z</updated>
		
		<summary type="html">&lt;p&gt;Tanooki00: Added F3 Convention (Springfield, MO); updated &amp;quot;past attendance&amp;quot; fields for Oklacon and Wild Nights (Oklahoma conventions).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// This powers the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikifur.com/FurryConventionMap.html map of active conventions]&amp;lt;/span&amp;gt;. Edit events in the &amp;quot;Add map points&amp;quot; section below. &lt;br /&gt;
&lt;br /&gt;
// To get latitude and longitude, find the target on Google Maps, then click the link button, copy it into a text editor (like Notepad), and use the numbers after 'll='. &lt;br /&gt;
&lt;br /&gt;
// Reload the map to check it works after you edit! If there's an apostrophe in a name or location, put a backslash (\) in front of it.&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var map = null;&lt;br /&gt;
var infoWindow = null;&lt;br /&gt;
var meets = [];&lt;br /&gt;
&lt;br /&gt;
// number of conventions in different areas, displayed in drop down&lt;br /&gt;
var count = 0;&lt;br /&gt;
var count_na = 0;&lt;br /&gt;
var count_eu = 0; &lt;br /&gt;
var count_oceania = 0;&lt;br /&gt;
var count_japan = 0;&lt;br /&gt;
var count_others = 0;&lt;br /&gt;
&lt;br /&gt;
//constants specifying which region is selected in the drop down&lt;br /&gt;
var FILT_ALL = 0;&lt;br /&gt;
var FILT_NA = 1;&lt;br /&gt;
var FILT_EU = 2;&lt;br /&gt;
var FILT_OCEANIA = 3;&lt;br /&gt;
var FILT_JAPAN = 4;&lt;br /&gt;
var FILT_OTHERS = 5;&lt;br /&gt;
&lt;br /&gt;
//These functions are used to classify conventions into regions&lt;br /&gt;
//They are hacks; function only be accurate for existing data&lt;br /&gt;
function is_in_na(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 21 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -144 &amp;amp;&amp;amp; lng &amp;lt; -48);&lt;br /&gt;
}&lt;br /&gt;
function is_in_eu(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 36 &amp;amp;&amp;amp; lat &amp;lt; 75 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; -13 &amp;amp;&amp;amp; lng &amp;lt; 40);&lt;br /&gt;
}&lt;br /&gt;
function is_in_oceania(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; -50 &amp;amp;&amp;amp; lat &amp;lt; -5 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 110 &amp;amp;&amp;amp; lng &amp;lt; 180);&lt;br /&gt;
}&lt;br /&gt;
function is_in_japan(lat, lng){&lt;br /&gt;
    return (lat &amp;gt; 30 &amp;amp;&amp;amp; lat &amp;lt; 40 &amp;amp;&amp;amp; &lt;br /&gt;
                lng &amp;gt; 130 &amp;amp;&amp;amp; lng &amp;lt; 145);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var is_phone = false;&lt;br /&gt;
&lt;br /&gt;
// Used later when creating markers&lt;br /&gt;
var redIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png&amp;quot;);&lt;br /&gt;
var purpleIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png&amp;quot;);&lt;br /&gt;
var blueIcon = new google.maps.MarkerImage(&amp;quot;//www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png&amp;quot;);&lt;br /&gt;
var markerShadow = new google.maps.MarkerImage(&amp;quot;//maps.gstatic.com/intl/en_us/mapfiles/markers/marker_sprite.png&amp;quot;, new google.maps.Size(37,34), new google.maps.Point(20, 0), new google.maps.Point(10, 34)); &lt;br /&gt;
&lt;br /&gt;
function load() {&lt;br /&gt;
 var useragent = navigator.userAgent;&lt;br /&gt;
  is_phone = (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) //TODO support other phones that support tel: protocol?&lt;br /&gt;
  &lt;br /&gt;
  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {&lt;br /&gt;
  //working around Android Browser having no scroll bar (Fennec/Firefox Mobile has no bar, but can scroll inside divs)&lt;br /&gt;
//document.getElementById(&amp;quot;map&amp;quot;).style.position=&amp;quot;fixed&amp;quot;; //Google Maps will undo this&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.height=&amp;quot;auto&amp;quot;;&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).style.overflow=&amp;quot;auto&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 if (true) {&lt;br /&gt;
&lt;br /&gt;
var mapNode = document.getElementById(&amp;quot;map&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
markers = [];&lt;br /&gt;
&lt;br /&gt;
// Set initial position&lt;br /&gt;
// These values are assuming a 1280x800 monitor with 96dpi.&lt;br /&gt;
// it would be nice to scale this according to client area size&lt;br /&gt;
var centerLatLng = new google.maps.LatLng(40,-40);&lt;br /&gt;
var mapOpts = {&lt;br /&gt;
    zoom: 3,&lt;br /&gt;
    center: centerLatLng,&lt;br /&gt;
    mapTypeId: google.maps.MapTypeId.ROADMAP,&lt;br /&gt;
    streetViewControl: true&lt;br /&gt;
};&lt;br /&gt;
// creating map&lt;br /&gt;
map = new google.maps.Map(mapNode, mapOpts);&lt;br /&gt;
infoWindow = new google.maps.InfoWindow({});&lt;br /&gt;
&lt;br /&gt;
// Add map points&lt;br /&gt;
// Format: addLocation(latitude, longitude, 'Name', 'website', 'Place name&amp;lt;br&amp;gt;Street&amp;lt;br&amp;gt;City, State Code&amp;lt;br&amp;gt;Country', 'Phone Number', 'Mon[th] 1-3 20XX', attendance);&lt;br /&gt;
addLocation(-24.265278,-48.406944, 'Abando', 'abando.com.br', 'Parque Estadual Intervales&amp;lt;br&amp;gt;São Roque, São Paulo&amp;lt;br&amp;gt;Brazil', '', 'Mar 1-4 2013', 55);&lt;br /&gt;
//addLocation(-37.891950, -57.832850, 'Animales Sueltos', 'furrycamp.com.ar', 'Camping \'La Serranita\'&amp;lt;br&amp;gt;barrio Colinas Verdes&amp;lt;br&amp;gt;Mar del Plata&amp;lt;br&amp;gt;Argentina', '', 41);&lt;br /&gt;
addLocation(40.444334, -79.995532, 'Anthrocon', 'www.anthrocon.org', 'Westin Convention Center Pittsburgh&amp;lt;br&amp;gt;1000 Penn Avenue&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15222&amp;lt;br&amp;gt;USA', '+1 (412) 281-3700', 'Jul 3-6 2014', '5577');&lt;br /&gt;
addLocation(52.597652, 13.22226, 'BerliCon', 'www.berlicon.org', 'Zeltlagerplatz e.V.&amp;lt;br&amp;gt;Rallenweg 4,13505 Berlin-Heiligensee&amp;lt;br&amp;gt;Germany', '', 'Jun 12-15 2014', 89);&lt;br /&gt;
addLocation(39.523177, -119.78106, 'Biggest Little Fur Con', 'www.biggestlittlefurcon.org', 'Grand Sierra Resort&amp;lt;br&amp;gt;2500 East 2nd Street&amp;lt;br&amp;gt;Reno, Nevada 89595&amp;lt;br&amp;gt;USA', '+1 (77) YEAH-BLFC', 'Mar 28-30 2014', '704');&lt;br /&gt;
//addLocation(61.599498,   9.750860, 'CabinCon', 'swandog.livejournal.com', 'Vinstra&amp;lt;br&amp;gt;Norway', '');//not on list, website is private&lt;br /&gt;
//addLocation(39.077092, -74.830348, 'Cape May Fur Meet', 'capemayfurmeet.com', 'Middle Township Elementary School #2&amp;lt;br&amp;gt;101 West Pacific Ave, Cape May Court House&amp;lt;br&amp;gt;Middle, New Jersey 08210&amp;lt;br&amp;gt;USA', '', 'May 19-20 2012', 3);&lt;br /&gt;
addLocation(33.679673,-117.852488, 'Califur', 'califur.com', 'Irvine Marriott&amp;lt;br&amp;gt;18000 Von Karman Avenue&amp;lt;br&amp;gt;Irvine, California, 92614&amp;lt;br&amp;gt;USA', '+1 (949) 553-0100', 'May 30-Jun 1 2014', 1178);&lt;br /&gt;
addLocation(43.721056,-121.291552, 'Campfire Tails', 'campfiretails.com', 'Ogden Group Camp C&amp;lt;br&amp;gt;Paulina Lake&amp;lt;br&amp;gt;La Pine, Oregon&amp;lt;br&amp;gt;USA', '', 'Aug 1-5 2012', 143);&lt;br /&gt;
//addLocation(44.858188, -93.221054, 'Cat Days', 'www.mnfurs.org/cat-days', 'Crowne Plaza Hotel and Suites&amp;lt;br&amp;gt;Minneapolis International Airport&amp;lt;br&amp;gt;Appletree Square&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 877-859-5095', 'Aug 3-4 2012');&lt;br /&gt;
//addLocation(38.9439, -95.3385, 'Central Midwest Furmeet', 'cmfurmeet.webs.com', ' Bloomington West Group Camp at Clinton Lake near Lawrence, Kansas', '', 'Sep 14-16 2012', 22);&lt;br /&gt;
addLocation(49.638649,  15.298977, 'ČeSFuR', 'www.cesfur.org', 'Hotel Luna&amp;lt;br&amp;gt;Kouty 77&amp;lt;br&amp;gt;584 01 Kouty&amp;lt;br&amp;gt;Czech Republic', '', 'Jun 27-30 2013', 107);&lt;br /&gt;
addLocation(50.94149, 6.94651, 'Cologne Furdance', 'www.cologne-cfd.de', 'Zeughaus24, Zeughausstraße 24, 50667 Köln, Germany', '', 'Nov 10 2012'); //Colonge Fur-Dance, Germany, June/November&lt;br /&gt;
addLocation(42.930358, -81.218609, 'Condition', 'www.conditionfurry.ca', 'Four Points Sheraton&amp;lt;br&amp;gt;1150 Wellington Road South&amp;lt;br&amp;gt;London, Ontario N6E 1M3&amp;lt;br&amp;gt;Canada', '+1 (519) 681-0600', 'Aug 2-4 2013', 251);&lt;br /&gt;
addLocation(-37.825497,144.951725, 'ConFurgence', 'confurgence.com', 'Hilton South Wharf&amp;lt;br&amp;gt;2 Convention Centre Place&amp;lt;br&amp;gt;South Wharf, Melbourne&amp;lt;br&amp;gt;Australia 3006', '+61-3-9027-2000', 'Jan 10-12 2014', 474);&lt;br /&gt;
addLocation(52.450713,  -1.715519, 'ConFuzzled', 'confuzzled.org.uk', 'Hilton Birmingham Metropole&amp;lt;br&amp;gt;National Exhibition Centre&amp;lt;br&amp;gt;Birmingham B40 1PP&amp;lt;br&amp;gt;United Kingdom', '+44 (0)121 780-4242', 'May 23-27 2014', 873);&lt;br /&gt;
addLocation(42.150821, -87.911611, 'Duckon', 'www.duckon.org', 'Westin Chicago North Shore&amp;lt;br&amp;gt;601 N. Milwaukee Avenue&amp;lt;br&amp;gt;Wheeling, IL 60090&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;United States', '+1 (847) 777-6500', 'Jun 6-8 2013');&lt;br /&gt;
addLocation(51.689585, 11.274526, 'EAST', 'www.east-convention.de.vu', 'DJH Falkenstein/Harz&amp;lt;br&amp;gt;Falkensteiner Weg 2b&amp;lt;br&amp;gt;06463 Falkenstein/Harz&amp;lt;br&amp;gt;Germany', '+49 034743 8257', 'Sep 19-22 2013');&lt;br /&gt;
addLocation(28.33704,-81.587777, 'Elliott\'s Live Events', 'ele.furryhost.com', 'Radisson Resort Worldgate&amp;lt;br&amp;gt;3011 Maingate Lane, Kissimmee, FL 34747, United States','', &amp;quot;Year-round&amp;quot;, 215);//May21-23, Aug7-8, Oct30-31&lt;br /&gt;
addLocation(52.129813, 11.631281, 'Eurofurence', 'eurofurence.org', 'Maritim Hotel Magdeburg&amp;lt;br&amp;gt;Otto-von-Guericke-Straße 87&amp;lt;br&amp;gt;39104 Magdeburg&amp;lt;br&amp;gt;Germany', '+49 (0) 3915949-0', 'Aug 21-25 2013', 1376);&lt;br /&gt;
addLocation(37.247901,-93.259639, 'F3 Convention', 'www.f3con.com', 'Lamplighter Inn &amp;amp; Suites, North&amp;lt;br&amp;gt;2820 N Glenstone Ave&amp;lt;br&amp;gt;Springfield, MO 65803&amp;lt;br&amp;gt;USA', '+1 (417) 869-3900', 'Nov 20-23, 2014', '55');&lt;br /&gt;
addLocation(40.703546, -74.184279, 'FA: United', 'faunited.org', 'Hanover Marriott&amp;lt;br&amp;gt;1401 Rt 10 E&amp;lt;br&amp;gt;Whippany, NJ 07981&amp;lt;br&amp;gt;USA', '+1 (973) 538-8811 ', 'Aug 17-19 2012', 629);&lt;br /&gt;
addLocation(35.91979, -84.088551, 'Fangcon', 'fangcon.org', 'Holiday Inn Knoxville West&amp;lt;br&amp;gt;9134 Executive Park Dr&amp;lt;br&amp;gt;Knoxville, TN 37923&amp;lt;br&amp;gt;USA', '+1 (865) 693-1011', 'Nov 07-09 2014', 231);&lt;br /&gt;
addLocation(45.880449, -78.564606, 'Feral!', 'campferal.org', 'Camp Arowhon&amp;lt;br&amp;gt;Algonquin Park, Ontario P1H 2G6&amp;lt;br&amp;gt;Canada', '+1 (705) 633-5651', 'Aug 24-28 2012', 94);&lt;br /&gt;
addLocation(62.02209, 30.0185, 'FinFur', 'ffsc.finfur.net', '', '', 'Jul 11-15 2012');&lt;br /&gt;
addLocation(35.454262,139.638556, 'Fullmoff', 'www.fullmoff.com', 'Yokohama World Porters&amp;lt;br&amp;gt;2-2-1 Shinko, Naka-ku, &amp;lt;br&amp;gt;Yokohama, Kanagawa &amp;lt;br&amp;gt;Japan', '', 'Oct 25 2014', 0);&lt;br /&gt;
addLocation(-41.239835,174.980063, 'FurcoNZ', 'www.furconz.org.nz', 'Brookfield Outdoor Education Centre&amp;lt;br&amp;gt;Wainuiomata&amp;lt;br&amp;gt;Wellington&amp;lt;br&amp;gt;New Zealand', '', 'Feb 6-9 2014', 50);&lt;br /&gt;
addLocation(-28.00041, 153.4264, 'FurDU', 'www.furrydownunder.com', 'Vibe Hotel Gold Coast&amp;lt;br&amp;gt;42 Ferny Avenue,&amp;lt;br&amp;gt;Surfers Paradise, QLD 4217&amp;lt;br&amp;gt;Australia', '', 'Apr 27-29 2012', 246);&lt;br /&gt;
addLocation(53.541723, -113.625262, 'Fur-eh!', 'fureh.ca', 'Hilton Garden Inn&amp;lt;br&amp;gt;17610 Stony Plain Road&amp;lt;br&amp;gt;Edmonton, Alberta, T5S 1A2&amp;lt;br&amp;gt;Canada', '+1 (780) 443-2233', 'May 4-6 2012', 200);&lt;br /&gt;
addLocation(-33.859972, 151.211111, 'FurJam', 'www.furjam.org', ' Forresters Hotel&amp;lt;br&amp;gt;336 Riley Street&amp;lt;br&amp;gt;Surry Hills NSW 2010&amp;lt;br&amp;gt;Australia', '(02) 9212 3035', 'Oct 7-9 2012');&lt;br /&gt;
addLocation(39.983333, -82.983333, 'Furlaxation', 'furlaxation.org', 'Columbus, Ohio', '', 'Sep 12-14 2014', 241); //attendance for 2012&lt;br /&gt;
addLocation(28.542401, -81.347945, 'Furloween', 'www.furhold.org/furloween', 'Orlando Elks Lodge&amp;lt;br&amp;gt;12 North Primrose Dr.&amp;lt;br&amp;gt;Orlando, Florida 32803&amp;lt;br&amp;gt;USA', '+1 (407) 282-3900', 'Oct 27 2012', 148);&lt;br /&gt;
addLocation(43.689551, -79.586356, 'Furnal Equinox', 'furnalequinox.com', 'Sheraton Toronto Airport Hotel &amp;amp; Conference Centre&amp;lt;br&amp;gt;801 Dixon Road&amp;lt;br&amp;gt;Toronto, ON M9W 1J3&amp;lt;br&amp;gt;Canada', '+1 (416) 675-6100', 'Mar 8-10 2013', 750);&lt;br /&gt;
addLocation(28.401971, -80.618792, 'Furry Cruise', 'www.furrycruise.com', 'Royal Caribbean\'s &amp;lt;i&amp;gt;Freedom of the Seas&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;Port Canaveral, Florida&amp;lt;br&amp;gt;USA', '+1 (734) 340-4553', 'Nov 9-16 2014', 24);&lt;br /&gt;
addLocation(32.956825, -96.822896, 'Furry Fiesta', 'www.furryfiesta.org', 'Intercontinental Dallas Hotel&amp;lt;br&amp;gt;15201 Dallas Pkwy&amp;lt;br&amp;gt;Addison, Texas 75001&amp;lt;br&amp;gt;USA', '+1 (972) 386-6000', 'Feb 21-23 2014', 1492);&lt;br /&gt;
addLocation(44.86092, -93.23923, 'Furry Migration', 'www.furrymigration.org', 'Ramada Mall of America&amp;lt;br&amp;gt;American Blvd E&amp;lt;br&amp;gt;Bloomington, MN 55425&amp;lt;br&amp;gt;USA', '+1 952-854-3411', 'Sep 12-14 2014');&lt;br /&gt;
addLocation(33.761999, -84.383352, 'Furry Weekend Atlanta', 'furryweekend.com', 'Atlanta Marriott Marquis&amp;lt;br&amp;gt;265 Peachtree Center Ave NE&amp;lt;br&amp;gt;Atlanta, GA 30303&amp;lt;br&amp;gt;USA', '+1 (404) 521-0000', 'Apr 9-12 2015', 2488);&lt;br /&gt;
addLocation(52.775556,   6.801771, 'Furry Weekend Holland', 'furryweekend.nl', 'Het Labyrint&amp;lt;br&amp;gt;Brink 9 7841 CE&amp;lt;br&amp;gt;Sleen&amp;lt;br&amp;gt;Netherlands', '', 'Mar 15-18 2013', 57);&lt;br /&gt;
addLocation(51.40328, 5.95940, 'Furs on Fire', 'www.fursonfire.eu', 'Evertsoord, The Netherlands', '', 'Dec 29-Jan 1 2013', 66);&lt;br /&gt;
addLocation(52.588333, 14.65, 'Furstock', 'www.polfurs.org', '', '', 'Jul 31-Aug 2 2014', 45);&lt;br /&gt;
addLocation(57.05, 9.916667, 'Furtastic', 'www.furtastic.dk', 'Denmark', '', 'Jul 2012?');&lt;br /&gt;
addLocation(37.330294,-121.888375, 'Further Confusion', 'furtherconfusion.org', 'San Jose Mariott&amp;lt;br&amp;gt;301 South Market Street&amp;lt;br&amp;gt;San Jose, CA 95113&amp;lt;br&amp;gt;USA', '+1 408-280-1300', 'Jan 16-20 2014', 3380);&lt;br /&gt;
addLocation(51.388923,-115.784912, 'Furthest North', 'furthestnorth.ca', 'Deer Creek Provincial Recreation Area&amp;lt;br&amp;gt;Alberta&amp;lt;br&amp;gt;Canada', '+1 (403) 637-2229', 'Aug 2-5 2013', 63);&lt;br /&gt;
addLocation(35.559328, 139.723602, 'Fur-st', 'fur-st.com', '志ら井&amp;lt;br&amp;gt;1 Chome-20-28 Minamikamata&amp;lt;br&amp;gt;Ota, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Oct 18 2014', 144);&lt;br /&gt;
addLocation(39.283286,-84.466442, 'Fur Reality', 'www.furreality.org', 'Atrium Hotel&amp;lt;br&amp;gt;30 Tri-County Parkway&amp;lt;br&amp;gt;Cincinnati, OH 45246&amp;lt;br&amp;gt;USA', '513 771 7171', 'Oct 10-12, 2014');&lt;br /&gt;
addLocation(39.494658,-76.66367, 'Fur the \'More', 'furthemore.org', 'Hunt Valley Inn&amp;lt;br&amp;gt;245 Shawan Rd&amp;lt;br&amp;gt;Baltimore, MD&amp;lt;br&amp;gt;USA', '+1 (410) 785-7000', 'Mar 14-16 2014', 714);&lt;br /&gt;
addLocation(51.93180, 19.407, 'Futerkon', 'futerkon.pl', 'Municipal Cultural Center&amp;lt;br&amp;gt;95-001 Dzierżązna&amp;lt;br&amp;gt;Poland', '42 717 84 66', 'Aug 8-11 2013', 93);&lt;br /&gt;
addLocation(49.8954237, 5.080949, 'Fuzzcon', 'fuzzcon.be', 'Au pays de mon pere&amp;lt;br&amp;gt;Rue des Combattants 1&amp;lt;br&amp;gt;6850 Paliseul&amp;lt;br&amp;gt;Belgium', '', 'Aug 22-25 2013', 14);&lt;br /&gt;
addLocation(47.35016, 7.76123, 'Golden Leaves Con', 'glc.furry.ch', 'Baselbieter Chinderhus&amp;lt;br&amp;gt;Bachtalenstrasse 10&amp;lt;br&amp;gt;4438 Langenbruck&amp;lt;br&amp;gt;Switzerland', '062 390 12 24', 'Nov 15-18 2012');//&lt;br /&gt;
//addLocation(52.505369,  13.353882, 'Herbstcon', 'herbstcon.de', 'Sozialistische Jugend Deutschlands – Die Falken&amp;lt;br&amp;gt;Haus am Lützowplatz&amp;lt;br&amp;gt;Lützowplatz 9&amp;lt;br&amp;gt;10785 Berlin&amp;lt;br&amp;gt;Germany', '+49 030-261030-0', 'Oct 11-14 2012', 20);//Invite only&lt;br /&gt;
addLocation(49.616848,   8.826463, 'H-Con', 'h-con.afc-group.org', 'Gerhart-Hauptmann-Haus&amp;lt;br&amp;gt;Außerhalb 1-3&amp;lt;br&amp;gt;64689 Grasellenbach-Scharbach&amp;lt;br&amp;gt;Germany', '+49 06 2 07/1 22-1', 'Oct 3-7 2012', 50);&lt;br /&gt;
addLocation(49.26716,-123.010021, 'Howloween', 'howloween.ca', 'Burnaby Executive Hotel&amp;lt;br&amp;gt;4201 Lougheed Highway&amp;lt;br&amp;gt;Burnaby, BC&amp;lt;br&amp;gt;Canada', '', 'Nov 10-12 2011', 182);&lt;br /&gt;
addLocation(38.866200,  -0.406165, 'Ibercamp', 'ibercamp.es', 'Salem, Valencia&amp;lt;br&amp;gt;Spain', '', 'Nov 24-25 2012');&lt;br /&gt;
addLocation(39.768971, -86.160601, 'IndyFurCon', 'indyfurcon.com', 'Sheraton at Keystone Crossing&amp;lt;br&amp;gt;8787 Keystone Crossing&amp;lt;br&amp;gt;Indianapolis, IN 46240&amp;lt;br&amp;gt;USA', '+1 (317) 846-2700', 'Aug 9-11 2013', 482);&lt;br /&gt;
addLocation(34.743463, 137.370965, 'Japan Meeting of Furries', 'www.j-mof.org', 'Loisir Hotel Toyohashi&amp;lt;br&amp;gt;141 Fujisawacho&amp;lt;br&amp;gt;Toyohashi, Aichi&amp;lt;br&amp;gt;Japan', '', 'Jan 10-11 2015', 232);&lt;br /&gt;
addLocation(35.3334755,139.9891955, 'Kemocon', 'www.kemocon.com', 'Kasuza Akademia Hall&amp;lt;br&amp;gt;2 Chome-3-9 Kazusakamatari&amp;lt;br&amp;gt;Kisarazu, Chiba Prefecture&amp;lt;br&amp;gt;Japan', '', 'Nov 22-23 2014', 420);&lt;br /&gt;
addLocation(34.985692,138.417148, 'Kemono Square', 'eixinweb.jp/kemono-square.html', 'Shizuoka Convention &amp;amp; Arts Center &amp;quot;Granship&amp;quot; 7F&amp;lt;br&amp;gt;79-4 Ikeda, Suruga Ward, Shizuoka City&amp;lt;br&amp;gt;Japan', '', 'Jun 7 2014', 81); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(35.654685,139.761096, 'Kemoket', 'kemoket.com', 'Tokyo Metropolitan Industrial Trade Center Hamamastucho-kan&amp;lt;br&amp;gt;1 Chome-7-8 Kaigan&amp;lt;br&amp;gt;Minato, Tokyo&amp;lt;br&amp;gt;Japan', '', 'Apr 29 2014', 0);  //259 vendors from 246 circles confirmed for 2014&lt;br /&gt;
addLocation(34.6693, 135.476103, 'Kemoket', 'kemoket.com', 'Sky Hall D Block&amp;lt;br&amp;gt;Osaka Dome&amp;lt;br&amp;gt;Osaka&amp;lt;br&amp;gt;Japan', '', 'Oct 13 2013', 0);&lt;br /&gt;
addLocation(35.1584991,136.9298391, 'Kigukemo', 'kigukemo.jp', 'Nagoya Trade &amp;amp; Industry Center &amp;lt;br&amp;gt;2-6-3 Fukiage&amp;lt;br&amp;gt;Chikusa Ward, Nagoya, Aichi&amp;lt;br&amp;gt;Japan ', 'Phone Number', 'Aug 23, 2014', 91); //only attendees signed up from Twipla&lt;br /&gt;
addLocation(47.336284,  12.855555, 'Lakeside Furs', 'lakesidefurs.at', 'Zell am See&amp;lt;br&amp;gt;Talstr. 159, 5700 Thumersbach&amp;lt;br&amp;gt;Austria', '+43 (0)6542/73734', 'Jul 19-26 2014', 40);&lt;br /&gt;
addLocation(28.333938, -81.587638, 'Megaplex', 'megaplexcon.org', 'Worldgate Resort Hotel&amp;lt;br&amp;gt;3011 Maingate Lane&amp;lt;br&amp;gt;Kissimmee, FL 34747-2302&amp;lt;br&amp;gt;USA', '+1 (866) 705-7676', 'Jul 27-29 2012', 553);&lt;br /&gt;
addLocation(34.966572, -89.791608, 'Mephit Furmeet', 'mephitfurmeet.org', 'Whispering Woods Hotel &amp;amp; Conference Center&amp;lt;br&amp;gt;11200 Goodman Rd&amp;lt;br&amp;gt;Olive Branch, MS 38654-4212&amp;lt;br&amp;gt;USA', '+1 (662) 895-2941', 'Aug 30-Sep 1 2013', 548);&lt;br /&gt;
addLocation(50.825484,   7.887068, 'Mephit Mini Con', 'mmc.furcon.de', 'Freusburg, Seigen&amp;lt;br&amp;gt;Germany', '', 'May 9-12 2013', 200);&lt;br /&gt;
addLocation(35.6568544, 139.7351909, 'Metamore Generation V', 'www.metamor.jp/', 'Village&amp;lt;br&amp;gt;B1F, Fukao Bldg. 1-4-5 Azabu-juban, Minato-ku, Tokyo, Japan', '', 'Oct 5 2013', 0);&lt;br /&gt;
addLocation(41.981284, -87.859078, 'Midwest FurFest', 'furfest.org', 'Hyatt Regency O\'Hare&amp;lt;br&amp;gt;9300 Bryn Mawr Avenue&amp;lt;br&amp;gt;Rosemont, Illinois 60018&amp;lt;br&amp;gt;USA', '+1 (847) 696-1234', 'Nov 16-18 2012', 2600);&lt;br /&gt;
addLocation(35.7549142,139.7366338, 'Mofukai', 'twipla.jp/events/84157', '北とぴあ 14F　Sky Hall&amp;lt;br&amp;gt;1 Chome-11 Oji Kita Tokyo &amp;lt;br&amp;gt;Japan', '', 'May 5 2014', 54); //only attendees signed up from Twipla - 4 people over venue capacity&lt;br /&gt;
addLocation(40.105846, -83.017244, 'Morphicon', 'morphicon.org', 'Holiday Inn Columbus-Worthington&amp;lt;br&amp;gt;7007 N. High Street&amp;lt;br&amp;gt;Worthington, Ohio 43085&amp;lt;br&amp;gt;USA', '+1 (614) 436-0700', 'May 3-6 2012', 275);&lt;br /&gt;
addLocation(39.65924 , -75.75286, 'New Year\'s Furry Ball', 'www.ticketderby.com/innerindex.php?eventid=3505', 'Embassy Suites Newark-Wilmington/South&amp;lt;br&amp;gt;854 S College Ave&amp;lt;br&amp;gt;Newark, DE 19713&amp;lt;br&amp;gt;USA', '(302) 368-8000', 'Dec 30-Jan 1 2011', 146) // Was replaced by Furstivus in 2012, but planned to resume for 2013&lt;br /&gt;
addLocation(59.166046, 18.13522, 'NordicFuzzCon', 'nordicfuzzcon.org', 'Quality Hotel Winn Haninge&amp;lt;br&amp;gt;Rudsjoterassen 3&amp;lt;br&amp;gt;SE 136 40  Handen&amp;lt;br&amp;gt;Sweden', '', 'Mar 28-31 2013', 175);&lt;br /&gt;
addLocation(35.933888, -98.429604, 'Oklacon', 'oklacon.com', 'Roman Nose State Park&amp;lt;br&amp;gt;Rt 1 Box 2-2&amp;lt;br&amp;gt;Watonga, Oklahoma 73772&amp;lt;br&amp;gt;USA', '+1 (580) 623-4215', 'Oct 17-22 2012', 352);&lt;br /&gt;
addLocation(-31.952222, 115.858889, 'Perthfur Gathering', 'gathering.perthfurs.net', 'Perth, Western Australia', '', 'Aug 13 2011', 76);//&amp;quot;3rd qtr, 2010&amp;quot;&lt;br /&gt;
addLocation(47.444579,-122.293807, 'RainFurrest', 'rainfurrest.org', 'Hilton Seattle Airport&amp;lt;br&amp;gt;17620 International Boulevard&amp;lt;br&amp;gt;Seattle, WA 98188&amp;lt;br&amp;gt;USA', '+1 (206) 244-4800', 'Sep 27-30 2012', 1424);&lt;br /&gt;
addLocation(-27.467778, 153.027778, 'RivFur', 'www.rivfur.org', 'Brisbane, Queensland, Australia', '', 'Jun 29-Jul 2 2012', 50);&lt;br /&gt;
addLocation(34.6701,  -86.577759, 'Rocket City FurMeet', 'rcfm.net', 'Hilton Garden Inn Huntsville South&amp;lt;br&amp;gt;301 Boulevard South SW&amp;lt;br&amp;gt;Huntsville, Alabama 35802&amp;lt;br&amp;gt;USA', '+1 (256) 881-4170', 'May 24-26 2013', 242);&lt;br /&gt;
addLocation(39.762235,-104.900293, 'Rocky Mountain Fur Con', 'rockymountainfurcon.org', 'Doubletree Hotel Denver&amp;lt;br&amp;gt;3203 Quebec Street&amp;lt;br&amp;gt;Denver, Colorado 80207&amp;lt;br&amp;gt;USA', '+1 (303) 321-3333', 'Aug 2-4 2013', 863);&lt;br /&gt;
addLocation(56.050627,36.823576, 'Rusfurrence', 'rusfurrence.ru', 'РАН &amp;quot;Авантель Клаб Истра&amp;quot; (RAS &amp;quot;Avantel Club Istra&amp;quot;)&amp;lt;br&amp;gt;ЗИстринское Водохранилище (Istra Reservoir), Moscow&amp;lt;br&amp;gt;Russian Federation', '', 'Feb 5-10 2013', 286);&lt;br /&gt;
addLocation(57.478307, -4.22672, 'ScotiaCon', 'www.scotiacon.com', 'Mercure Inverness Hotel&amp;lt;br&amp;gt;Church Street&amp;lt;br&amp;gt;Inverness, IV1 1QY&amp;lt;br&amp;gt;Inverness-shire, United Kingdom', '', 'Jul 27-30 2012', 123);&lt;br /&gt;
addLocation(-26.201, 28.046, 'South Afrifur meet', 'forum.zafur.co.za/viewtopic.php?f=53&amp;amp;t=1330', '', '', 'Dec 2012?', 0);&lt;br /&gt;
addLocation(40.769163,-111.897349, 'Unthrocon', 'www.unthrocon.org', ' Salt Lake City Radisson Hotel&amp;lt;br&amp;gt;215 W South Temple&amp;lt;br&amp;gt;Salt Lake City, Utah 84101&amp;lt;br&amp;gt;USA', '+1 (801) 531-7500', '30 Aug-1 Sep 2013', 126);&lt;br /&gt;
addLocation(49.266323,-123.011509, 'VancouFur', 'vancoufur.ca', 'Executive Hotel &amp;amp; Conference Centre Burnaby&amp;lt;br&amp;gt;4201 Lougheed Hwy&amp;lt;br&amp;gt;Burnaby, British Columbia, V5C 3Y6&amp;lt;br&amp;gt;Canada', '', 'Mar 1-3 2013', 479);&lt;br /&gt;
addLocation(45.499474, -73.562801, 'What The Fur', 'whatthefur.ca', 'Delta Centre-Ville&amp;lt;br&amp;gt;777 University Street&amp;lt;br&amp;gt;Montreal, Quebec&amp;lt;br&amp;gt;H3C 3Z7, Canada', '+1 (514) 879-1370', 'May 17-19 2013', 282);&lt;br /&gt;
addLocation(40.538786, -79.830565, 'Western Pennsylvania Furry Weekend', 'wpafw.org', 'Quality Inn Pittsburgh North&amp;lt;br&amp;gt;2801 Freeport Road&amp;lt;br&amp;gt;Pittsburgh, Pennsylvania 15238&amp;lt;br&amp;gt;USA', '+1 (412) 828-9400', 'Sep 28-30 2012', 116);&lt;br /&gt;
addLocation(35.042611, -95.317672, 'Wild Nights', 'wildnights.org', 'Robbers Cave State Park&amp;lt;br&amp;gt;Wilburton, Oklahoma 74578&amp;lt;br&amp;gt;USA', '+1 (918) 465-2565', 'Apr 25-29 2013', 302);&lt;br /&gt;
addLocation(50.456309, 30.504819, 'WUFF', 'wuff.org.ua/2013', 'Kiev, Ukraine', '', 'May 9-12 2013', 164)&lt;br /&gt;
addLocation(44.520806, 11.401609, 'Zampacon', 'zampacon.forumfree.it', 'Ostello SanSisto&amp;lt;br&amp;gt;via Viadagola 5&amp;lt;br&amp;gt;Bologna, 40127&amp;lt;br&amp;gt;Italy', '', 'Sep 3-7 2014', 39);&lt;br /&gt;
addLocation(47.503095, 12.190969, 'Zillercon', '', 'Wörgl, Tyrol&amp;lt;br&amp;gt;Austria', '', 'Jan 25-Feb 1 2014', 40);&lt;br /&gt;
addLocation(50.773040, 15.311701, 'ZodiaCon', 'zodiacon.org', 'Hotel Emilka&amp;lt;br&amp;gt;Na Novině 401&amp;lt;br&amp;gt;468 61 Desná III&amp;lt;br&amp;gt;Czech Republic', '+420 483 300 335', 'May 30-June 2, 2014', 74);&lt;br /&gt;
&lt;br /&gt;
// convert textual dates to numbers for sorting.&lt;br /&gt;
for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	meet.datev=(v=getmonthvalue(meet.date))?v:3000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// adds or rearranges meets in the side bar.&lt;br /&gt;
function refresh(f){&lt;br /&gt;
	for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
		addLocation1(meet, f);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// comparison functions, those decide the order meetups are listed&lt;br /&gt;
function compare_name(a, b){&lt;br /&gt;
	return a.name?(b.name?a.name.localeCompare(b.name):-1):1;&lt;br /&gt;
}&lt;br /&gt;
function compare_date(a,b){&lt;br /&gt;
	var d = a.datev - b.datev;&lt;br /&gt;
	return (d == 0)? compare_name(a, b) : d;&lt;br /&gt;
}&lt;br /&gt;
function compare_attendance(a,b){&lt;br /&gt;
	if (a.attendance){&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return b.attendance - a.attendance;&lt;br /&gt;
		} else {&lt;br /&gt;
			return -1;&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if (b.attendance){&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else {&lt;br /&gt;
			return compare_name(a,b);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// assigning functionality to sort buttons&lt;br /&gt;
document.getElementById(&amp;quot;bydate&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_date);&lt;br /&gt;
	refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byname&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_name);&lt;br /&gt;
	refresh();&lt;br /&gt;
	}&lt;br /&gt;
document.getElementById(&amp;quot;byattendance&amp;quot;).onclick=function(){&lt;br /&gt;
	meets.sort(compare_attendance);&lt;br /&gt;
	refresh(function (meet){return meet.name + (meet.attendance?&amp;quot; (&amp;quot;+meet.attendance+&amp;quot;)&amp;quot;:&amp;quot;&amp;quot;);});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
meets.sort(function (a,b){&lt;br /&gt;
	return a.datev - b.datev;&lt;br /&gt;
	})&lt;br /&gt;
refresh(function(meet){return meet.date?(meet.date + &amp;quot; &amp;quot; + meet.name):meet.name;});&lt;br /&gt;
&lt;br /&gt;
// add drop-down options&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Everywhere (&amp;quot;+count+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_ALL;&lt;br /&gt;
opt.selected=true;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;North America (&amp;quot;+count_na+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_NA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Europe (&amp;quot;+count_eu+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_EU;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Oceania (&amp;quot;+count_oceania+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OCEANIA;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Japan (&amp;quot;+count_japan+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_JAPAN;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
opt = document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
opt.innerHTML = &amp;quot;Rest of the World (&amp;quot;+count_others+&amp;quot;)&amp;quot;;&lt;br /&gt;
opt.value = FILT_OTHERS;&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).appendChild(opt);&lt;br /&gt;
&lt;br /&gt;
document.getElementById(&amp;quot;filter&amp;quot;).onchange = function(){&lt;br /&gt;
    opts = document.getElementById(&amp;quot;filter&amp;quot;).firstChild;&lt;br /&gt;
    selection = 0;&lt;br /&gt;
    while(opts != null){&lt;br /&gt;
        if (opts.selected) {&lt;br /&gt;
            selection = opts.value;&lt;br /&gt;
        }&lt;br /&gt;
        opts = opts.nextSibling;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    filter_func = null;&lt;br /&gt;
    switch(Number(selection)){&lt;br /&gt;
        case FILT_NA:&lt;br /&gt;
            filter_func = is_in_na; break;&lt;br /&gt;
        case FILT_EU:&lt;br /&gt;
            filter_func = is_in_eu; break;&lt;br /&gt;
        case FILT_OCEANIA:&lt;br /&gt;
            filter_func = is_in_oceania; break;&lt;br /&gt;
        case FILT_JAPAN:&lt;br /&gt;
            filter_func = is_in_japan; break;            &lt;br /&gt;
        case FILT_OTHERS:&lt;br /&gt;
            filter_func = function(lat, lng){&lt;br /&gt;
                return !(is_in_na(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_eu(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_oceania(lat, lng)) &amp;amp;&amp;amp; &lt;br /&gt;
                            !(is_in_japan(lat, lng))&lt;br /&gt;
                ;&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
        case FILT_ALL:&lt;br /&gt;
        default:&lt;br /&gt;
            filter_func = function(lat, lng){return true;}&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    bounds = null;&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
&lt;br /&gt;
        //only show those that pass filter_func&lt;br /&gt;
        visible = filter_func(meet.lat, meet.lng);&lt;br /&gt;
        meet.marker.setVisible(visible);&lt;br /&gt;
        meet.li.style.display = visible ? &amp;quot;&amp;quot;: &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        if (visible) {&lt;br /&gt;
            if (bounds){&lt;br /&gt;
                bounds.extend(meet.marker.getPosition());&lt;br /&gt;
            } else {&lt;br /&gt;
            pos = meet.marker.getPosition();&lt;br /&gt;
            bounds = new google.maps.LatLngBounds(pos, pos);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if (bounds) {map.fitBounds(bounds);} //zoom to include in the viewport all markers if there are any&lt;br /&gt;
}&lt;br /&gt;
} //if (true)&lt;br /&gt;
footnote = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
footnote.innerHTML = '&amp;lt;a href=&amp;quot;//pool.wikifur.com/w/index.php?title=Convention_map_script&amp;amp;action=edit&amp;quot;&amp;gt;Edit data on WikiFur&amp;lt;/a&amp;gt; or &amp;lt;a href=&amp;quot;//pool.wikifur.com/wiki/Talk:Convention_map_script&amp;quot;&amp;gt;discuss&amp;lt;/a&amp;gt;';&lt;br /&gt;
document.getElementById(&amp;quot;side&amp;quot;).appendChild(footnote);&lt;br /&gt;
} //load()&lt;br /&gt;
&lt;br /&gt;
// convert textual dates into numbers for sorting&lt;br /&gt;
// Might benefit from also parsing years.&lt;br /&gt;
function getmonthvalue(s){&lt;br /&gt;
	if (!s) {return 4001;}&lt;br /&gt;
&lt;br /&gt;
	//automatically generate these for i18n and l10n extensibility?&lt;br /&gt;
	x = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[A-Za-z]*(?: )?([0-9]*)/.exec(s);&lt;br /&gt;
	if (!x || !x[1]) return 4000;&lt;br /&gt;
	day = (v=parseInt(x[2]))?v:0;&lt;br /&gt;
	if (day &amp;gt; 1980) {day = 40;}&lt;br /&gt;
	switch (x[1]){&lt;br /&gt;
		case &amp;quot;Jan&amp;quot;: month = 1; break;&lt;br /&gt;
		case &amp;quot;Feb&amp;quot;: month = 2; break;&lt;br /&gt;
		case &amp;quot;Mar&amp;quot;: month = 3; break;&lt;br /&gt;
		case &amp;quot;Apr&amp;quot;: month = 4; break;&lt;br /&gt;
		case &amp;quot;May&amp;quot;: month = 5; break;&lt;br /&gt;
		case &amp;quot;Jun&amp;quot;: month = 6; break;&lt;br /&gt;
		case &amp;quot;Jul&amp;quot;: month = 7; break;&lt;br /&gt;
		case &amp;quot;Aug&amp;quot;: month = 8; break;&lt;br /&gt;
		case &amp;quot;Sep&amp;quot;: month = 9; break;&lt;br /&gt;
		case &amp;quot;Oct&amp;quot;: month = 10; break;&lt;br /&gt;
		case &amp;quot;Nov&amp;quot;: month = 11; break;&lt;br /&gt;
		case &amp;quot;Dec&amp;quot;: month = 12; break;&lt;br /&gt;
		default:	month = 20;&lt;br /&gt;
	}//switch&lt;br /&gt;
	return month * 100 + day;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//returns the text to be displayed in info window&lt;br /&gt;
function getLocationHTML(name, url, address, tel, date, attendance) {&lt;br /&gt;
  return '&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;//en.wikifur.com/wiki/' + name + '&amp;quot;&amp;gt;' + name + '&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;' + &lt;br /&gt;
	(url?('&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;http://' + url + '&amp;quot;&amp;gt;' + url + '&amp;lt;/a&amp;gt;'):'') + '&amp;lt;/p&amp;gt;&amp;lt;p class=&amp;quot;smaller&amp;quot;&amp;gt;' +&lt;br /&gt;
	address +&lt;br /&gt;
	 (tel?&lt;br /&gt;
		('&amp;lt;br&amp;gt;Phone: ' + &lt;br /&gt;
			(is_phone? &lt;br /&gt;
				('&amp;lt;a href=&amp;quot;tel:' + tel.replace(/\s/g, &amp;quot;&amp;quot;) + '&amp;quot;&amp;gt;' + tel + '&amp;lt;/a&amp;gt;')&lt;br /&gt;
				:tel))&lt;br /&gt;
		:'') + &lt;br /&gt;
&lt;br /&gt;
	(date?'&amp;lt;br&amp;gt;'+date:'') +&lt;br /&gt;
	(attendance? &amp;quot; Past atnd. &amp;quot;+ attendance:&amp;quot;&amp;quot;) +&lt;br /&gt;
	&amp;quot;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addLocation(lat, lng, name, url, address, tel, date, attendance){&lt;br /&gt;
meets.push({'lat':lat, 'lng': lng, 'name':name, 'url': url, 'address': address, 'tel': tel, 'date':date, 'attendance': attendance});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//this is called to add markers as well as to sort markers.&lt;br /&gt;
//this takes advantage of the fact that when adding a child to a DOM node, if the child is already in the document, it is removed from its original location first.&lt;br /&gt;
//lat, lng, name, url, address, tel, date, attendance&lt;br /&gt;
function addLocation1(a, f) {&lt;br /&gt;
    if (!f) {f = function(meet){return meet.date? (meet.name + &amp;quot; &amp;quot; + meet.date) : meet.name;}};&lt;br /&gt;
    if (!a.marker || !a.li){&lt;br /&gt;
&lt;br /&gt;
        //make the marker&lt;br /&gt;
        markerOpts = {&lt;br /&gt;
            position: new google.maps.LatLng(a.lat, a.lng),&lt;br /&gt;
            map: map,&lt;br /&gt;
            title: name&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        markerOpts.icon = (a.attendance &amp;gt;= 1000 ? redIcon : (a.attendance &amp;gt;= 200 ? purpleIcon : blueIcon ) );&lt;br /&gt;
        markerOpts.shadow = markerShadow;&lt;br /&gt;
        markerOpts.title = a.name;&lt;br /&gt;
&lt;br /&gt;
        a.marker = new google.maps.Marker(markerOpts);&lt;br /&gt;
        fn =  function() {&lt;br /&gt;
            //if we can't see the marker, show it in the center&lt;br /&gt;
            if (!map.getBounds().contains(a.marker.getPosition())){&lt;br /&gt;
                map.panTo(a.marker.getPosition());&lt;br /&gt;
            }&lt;br /&gt;
            infoWindow.setContent(getLocationHTML(a.name, a.url, a.address, a.tel, a.date, a.attendance));&lt;br /&gt;
            infoWindow.open(map, a.marker);&lt;br /&gt;
        }&lt;br /&gt;
        google.maps.event.addListener(a.marker, &amp;quot;click&amp;quot;,fn);&lt;br /&gt;
        &lt;br /&gt;
        link = document.createElement(&amp;quot;A&amp;quot;);&lt;br /&gt;
        link.innerHTML = f(a);&lt;br /&gt;
	    link.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
        link.onclick = fn;&lt;br /&gt;
        &lt;br /&gt;
        //clean up this on unload!&lt;br /&gt;
        a.li = document.createElement(&amp;quot;LI&amp;quot;);&lt;br /&gt;
        a.li.appendChild(link);&lt;br /&gt;
&lt;br /&gt;
        count++;&lt;br /&gt;
        if      (is_in_na(a.lat, a.lng)){&lt;br /&gt;
            count_na++;&lt;br /&gt;
        } else if (is_in_eu(a.lat, a.lng)) {&lt;br /&gt;
            count_eu++;&lt;br /&gt;
        } else if (is_in_oceania(a.lat, a.lng)){&lt;br /&gt;
            count_oceania ++; &lt;br /&gt;
        } else if (is_in_japan(a.lat, a.lng)) {&lt;br /&gt;
	    count_japan ++; &lt;br /&gt;
        } else {&lt;br /&gt;
            count_others ++;&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        //only change the label text&lt;br /&gt;
        a.li.firstChild.innerHTML = f(a);&lt;br /&gt;
    }&lt;br /&gt;
          //(re)insert the item into list&lt;br /&gt;
          document.getElementById(&amp;quot;list&amp;quot;).appendChild(a.li);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function unload(){&lt;br /&gt;
    for(var i = 0, meet; meet = meets[i]; i++){&lt;br /&gt;
	    meet.marker=null;&lt;br /&gt;
	    meet.li=null;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tanooki00</name></author>	</entry>

	</feed>