var plan_key = ''; var meet_loc_url = '/vancouver/meet-location'; // handy images var img_zipmarker, img_youarehere, img_nomatch, img_expanded, img_unknown; img_youarehere = "/images/zipmarker-youarehere.png"; img_nomatch = "/images/zipmarker-reserved.png"; img_expanded = "/images/zipmarker-viewing.png"; img_zipmarker = "/images/zipmarker.png"; img_unknown = "/images/zipmarker-unknown.png"; img_shadow = "/images/zipshadow.png"; // create a data structure for all the locations var locs = [ [221312701,'1008+Cambie+street',49.27557485590866,-123.11811447143555],[162765398,'1131+Barclay+street',49.283655,-123.127671],[148281599,'1154+W%2e+Broadway%2c+%28Toys+%5cR%5c+Us+Rooftop%29',49.263532,-123.130175],[172018177,'12+th+and+Prince+Edward+Street',49.260033021422885,-123.09601306915283],[131277524,'1280+Haro+Street',49.285983,-123.129189],[67995939,'12th+Ave+%2f+Main+St+',49.26038311663168,-123.09910297393799],[127039018,'1550+West+11th',49.261755,-123.139846],[131116796,'1585+West+2nd++Avenue',49.26969,-123.14049],[42154117,'160+Water+St',49.2840158003369,-123.10787916183472],[65854633,'200+Burrard+St',49.28778086344885,-123.11564683914185],[149930663,'200+Granville',49.28598934510795,-123.1126856803894],[42163580,'2315+W+4th+Ave',49.26832960981896,-123.1590986251831],[66748299,'2660+Wesbrook+Mall',49.26037261381157,-123.23972582817078],[193799065,'553+West+7th',49.265018,-123.116035],[142708649,'711+Broughton+Street',49.288578628011834,-123.12985181808472],[171295626,'753+seymour+street',49.281351,-123.117785],[48591368,'7th+and+Granville',49.26528418878471,-123.13749074935913],[56308442,'Acadia%2fFairview',49.2635758703279,-123.23859930038452],[42579247,'Alma+St%2f4th+Ave',49.26837861505746,-123.18650007247925],[239367198,'Beatty+and+Pender',49.281347,-123.108913],[42580434,'Burrard+St%2fDavie+St+',49.278808622251205,-123.13021659851074],[46432684,'Cardero+St%2fRobson+St',49.28950233927377,-123.13189029693604],[46433040,'Coal+Harbour+Community+Centre+%28Underground+Parkade%29',49.28990820693109,-123.12508821487427],[42208801,'Commercial+Dr%2f11th+Ave',49.26129480370751,-123.06981820138812],[42209215,'Davie+St%2fBidwell+St+-+Safeway',49.285674423047595,-123.13903570175171],[42239503,'Davie+St%2fJervis+St',49.28237811811285,-123.13399314880371],[52358401,'Denman+St%2fNelson+St',49.28913845508505,-123.13927173614502],[45225817,'Esplanade%2fLonsdale+Ave',49.31158228247168,-123.08024168014526],[56307596,'Gage+Towers',49.26895267279794,-123.24988603591919],[42158978,'Georgia+St%2fRichards+St',49.28114632128545,-123.11652660369873],[42239952,'Granville+St%2fCordova+St',49.28575140418141,-123.11283588409424],[42239094,'Granville+St%2fDavie+St',49.27742274835182,-123.12547445297241],[42578825,'Il+Mercato+-+Commercial+Dr%2f1st+Ave',49.27003076318575,-123.07056427001953],[42205178,'Jervis+St%2fRobson+St',49.28702507458709,-123.12787771224976],[48592933,'Laurel+St%2f8th+Ave',49.264006456169504,-123.12399923801422],[45223409,'Lonsdale+Ave%2f13th+St',49.32015693097705,-123.07217359542847],[48595903,'MacDonald+St%2fBroadway+St',49.26461207054733,-123.16804647445679],[42157816,'Main+St%2f6th+Ave',49.26534019822459,-123.10150623321533],[42237742,'Main+St%2fBroadway+St',49.26270768582375,-123.1006908416748],[138341247,'Marine+Drive',49.261672,-123.254971],[42576983,'Nelson+St%2fSeymour+St',49.27887861484944,-123.12204122543335],[42156180,'Pacific+St%2fBurrard+St',49.27642881480863,-123.13214778900146],[42160396,'Richards+St+btwn+Pender+St+and+Dunsmuir+St',49.28300114488981,-123.11335382715778],[92576249,'Richards+St%2fSmithe+St',49.27907459359602,-123.11871528625488],[47878064,'Tolmie+St%2f10th+Ave',49.26434602121585,-123.21190595626831],[111279122,'Vancouver+Community+College',49.2644720447622,-123.08109998703003]]; // create a data structure for all the location groups var loc_grps = [ [42153567, 49.28990820693109, -123.12508821487427, 15],[42153579, 49.26526587055182, -123.073827486145893333333333333333333333, 15],[42153610, 49.264274214984738, -123.130554995791116666666666666666666667, 15],[42153537, 49.28344209607278428571428571428571428571, -123.115364160105268571428571428571428571, 15],[42153574, 49.2840158003369, -123.10787916183472, 15],[42153615, 49.26655305908475, -123.158796234423828, 15],[42153593, 49.262696404420581, -123.10266962359619, 15],[45231474, 49.315869606724365, -123.076207637786865, 15],[42153628, 49.26434602121585, -123.21190595626831, 15],[57263686, 49.2636432892343525, -123.2457955411186225, 15],[42153527, 49.2847172475178024, -123.132114480148316, 15],[42153552, 49.27830580477748, -123.1186357874603275, 15]]; // even though we have vehicle_id, it is not relevant at this stage since it will just be used for // counting up how many vehicles match said criteria. we will leave it out of the array. // make, model, location, amenity list var vehicles = [ [2190563,6869299,42239503,[49167247,'']],[2190563,6869299,172018177,[49167247,'']],[2190563,6869299,48592933,[49167247,'']],[2190563,6869299,42209215,[49167247,'']],[2190563,6869299,42158978,[49167247,'']],[2190563,6869299,48592933,[49167247,'']],[32061749,32062060,42580434,[49167247,'']],[32061749,32062060,171295626,[49167247,'']],[2968515,9878842,42576983,['']],[2968515,1014543,162765398,[485650,'']],[2968515,1014543,42237742,[485650,'']],[2968515,1014543,42580434,[485650,'']],[2968515,1014543,42239094,[485650,'']],[2190563,6869299,138341247,[49167247,'']],[2190563,6869299,42157816,[49167247,'']],[2190563,6869299,171295626,[49167247,'']],[2190563,6869299,131116796,[49167247,'']],[2190563,6869299,142708649,[49167247,'']],[2190563,6869299,42239094,[49167247,'']],[2190563,6869299,92576249,[49167247,'']],[2190563,6869299,239367198,[49167247,'']],[94564,2870368,142708649,['']],[94564,2870368,42163580,['']],[94564,2870368,42208801,['']],[94564,3398752,66748299,['']],[94564,3398752,42209215,['']],[94564,23278593,56307596,['']],[29744489,29744656,67995939,['']],[29744489,29744656,42239503,['']],[29744489,29744656,42156180,['']],[29744489,29744656,67995939,['']],[29744489,29744656,48595903,['']],[94564,742432,56308442,['']],[94564,742432,111279122,['']],[94564,742432,56308442,['']],[94564,742432,42160396,['']],[94564,742432,48591368,['']],[94563,94567,45225817,[49167247,'']],[94563,94567,42160396,[49167247,'']],[94563,94567,48591368,[49167247,'']],[94563,94567,42157816,[49167247,'']],[94563,94567,65854633,['']],[32061749,32062060,48595903,[49167247,'']],[32061749,32062060,42163580,[49167247,'']],[94564,2870368,42209215,['']],[2968515,1014543,42578825,[485650,'']],[2968515,1014543,46432684,[485650,'']],[94564,23278593,131277524,['']],[94564,742432,48595903,['']],[94564,742432,148281599,['']],[94564,742432,46433040,['']],[94564,742432,42579247,['']],[94564,742432,127039018,['']],[94563,23642479,131277524,[49167247,'']],[94563,94567,47878064,[49167247,'']],[94563,94567,52358401,[49167247,'']],[94564,23278593,47878064,['']],[94564,23278593,42208801,['']],[94563,23642479,148281599,[49167247,'']],[94564,2870368,42237742,['']],[29744489,29744656,42579247,['']],[29744489,29744656,42580434,['']],[29744489,29744656,162765398,['']],[29744489,29744656,42163580,['']],[29744489,29744656,162765398,['']],[29744489,29744656,142708649,['']],[94562,5107542,42209215,['']],[94562,5107542,42208801,['']],[94564,3398752,42237742,['']],[2190563,6869299,42156180,[49167247,'']],[2968515,9878842,52358401,['']],[94564,3398752,42208801,['']],[94565,18942988,42239952,['']],[94565,18942988,48595903,['']],[94565,18942988,42205178,['']],[94565,18942988,42576983,['']],[55522096,92844130,42239094,['']],[55522096,92844130,42154117,['']],[55522096,92844130,42158978,['']],[55522096,92844130,45223409,['']],[55522096,92844130,221312701,['']],[41073642,41073737,52358401,[49167247,'']],[41073642,41073737,42205178,['']],[41073642,41073737,42576983,['']],[94565,94569,42163580,[49167247,'']],[94564,3398752,149930663,['']],[94564,742432,42157816,['']],[94564,742432,92576249,['']],[94564,742432,48591368,['']],[94563,163026706,42156180,[49167247,'']],[94563,163026706,172018177,[49167247,'']],[94563,163026706,111279122,[49167247,'']],[2190563,6869299,193799065,[49167247,'']],[2190563,6869299,221312701,[49167247,'']],[94563,163026706,193799065,['']],[94563,163026706,48595903,['']],[94563,163026706,42163580,['']] ]; // local array of makes and models so we can tell which is which var mks_mos = [[41073642,1],[41073737,0],[2968515,1],[1014543,0],[9878842,0],[94562,1],[5107542,0],[94563,1],[94567,0],[23642479,0],[163026706,0],[2190563,1],[6869299,0],[29744489,1],[29744656,0],[55522096,1],[92844130,0],[32061749,1],[32062060,0],[94564,1],[742432,0],[3398752,0],[2870368,0],[23278593,0],[94565,1],[94569,0],[18942988,0]]; // get a local set of ids for the amenities (we dont really need the description, unless // we want to get really fancy and have the form adjust itself based on selections made // (only show relevant body styles / amenities / neighborhoods based on the chosen make/model) var amenities = [49167247,485650]; // get a local set of ids for the styles so we can easily figure out what styles are needed var styles = [8577467,8577468,142802904,8586495,8577471,8577470,8577472,8577473]; // get a local mapping of locations to location groups. this allows us to trim accordion // results by neighborhood. var lgmap = [[42156180,42153527],[42205178,42153527],[42209215,42153527],[42239503,42153527],[42580434,42153527],[46432684,42153527],[52358401,42153527],[131277524,42153527],[142708649,42153527],[162765398,42153527],[42158978,42153537],[42160396,42153537],[42239952,42153537],[65854633,42153537],[92576249,42153537],[149930663,42153537],[171295626,42153537],[42239094,42153552],[42576983,42153552],[221312701,42153552],[239367198,42153552],[46433040,42153567],[42154117,42153574],[42208801,42153579],[42578825,42153579],[111279122,42153579],[42157816,42153593],[42237742,42153593],[67995939,42153593],[172018177,42153593],[193799065,42153593],[48591368,42153610],[48592933,42153610],[148281599,42153610],[42163580,42153615],[42579247,42153615],[48595903,42153615],[127039018,42153615],[131116796,42153615],[47878064,42153628],[45223409,45231474],[45225817,45231474],[56307596,57263686],[56308442,57263686],[66748299,57263686],[138341247,57263686]]; // get a local mapping of models to styles. this allows us to trim accordion results by style var stylemap = [[94567,8577471],[94569,142802904],[742432,8577473],[1014543,8577468],[2870368,8577472],[3398752,8586495],[5107542,8577470],[6869299,8577471],[9878842,8577467],[9878842,8577468],[18942988,8577471],[23278593,142802904],[32062060,8577470],[32062060,8577473],[163026706,8586495],[163026706,142802904]]; // globals for finding your local address in the search box var closestaddr = new Object(); var firstaddr = new Object(); var addrstr; // TODO: right now, this just returns the coords for one address, // we should expand this to support multiple address geocoding function refreshCarsByAddress() { var addr = document.getElementById('gmaps-address').value; addrstr = addr; var new_addr; if (addr.match(/[ ]*/) != null && addr != "enter some or all of an address") { geocode(addrstr, function (p) { // see if this address is closer to the current fleet of a modified address is closer if (p) { firstaddr.lat = p.lat(); firstaddr.lng = p.lng(); } else { // this is kinda lame, but at least it is in the ocean firstaddr.lat = 0; firstaddr.lng = 0; } geocode(addrstr + ', British Columbia', function (s) { var old_dist, new_dist, e; if (!s && (firstaddr.lat == 0 && firstaddr.lng == 0)) { closestaddr.lat = 0; closestaddr.lng = 0; } else if (!s) { closestaddr.lat = firstaddr.lat; closestaddr.lng = firstaddr.lng; } else if (firstaddr.lat == 0 && firstaddr.lng == 0) { closestaddr.lat = s.lat(); closestaddr.lng = s.lng(); } else { old_dist = Math.sqrt(Math.pow(firstaddr.lat - 49.27623823, 2) + Math.pow(firstaddr.lng - -123.13258383, 2)); new_dist = Math.sqrt(Math.pow(s.lat() - 49.27623823, 2) + Math.pow(s.lng() - -123.13258383, 2)); if (old_dist >= new_dist) { closestaddr.lat = s.lat(); closestaddr.lng = s.lng(); } else { closestaddr.lat = firstaddr.lat; closestaddr.lng = firstaddr.lng; } } if (!(closestaddr.lat == 0 && closestaddr.lng == 0)) { find_loc.in_progress = 1; find_loc.retry = 1; place_home(closestaddr.lat, closestaddr.lng); recenter(eval(find_loc.map), closestaddr.lat, closestaddr.lng, 16, 0); e = document.getElementById('location_group_id'); if (e) { e.selectedIndex = 0; } $('#new-type-filter').hide(); find_loc.in_progress = 0; refreshAccordion(find_loc); } else { alert("sorry, we couldn't find that address"); } }); }); } }