var _MAP=null;
var _FAVOPTIONS=null;
var REG_ICON="http://www.google.com/intl/en_ALL/mapfiles/marker.png";
var FAV_ICON="http://dogpark.klick.com/local/images/pushpin/fave.png";
var ICONS=[];
ICONS["Shadow"]="http://dogpark.klick.com/local/images/pushpin/shadow2.png";
ICONS['Un-fenced off-leash dog park']='http://dogpark.klick.com/local/images/pushpin/red.png';
ICONS['Pet friendly accommodations']='http://dogpark.klick.com/local/images/pushpin/purple.png';
ICONS['Veterinarian clinics']='http://dogpark.klick.com/local/images/pushpin/pink.png';
ICONS['On-leash dog park']='http://dogpark.klick.com/local/images/pushpin/green.png';
ICONS['Fenced off-leash dog park']='http://dogpark.klick.com/local/images/pushpin/blue.png';
ICONS['Restaurant/cafe']='http://dogpark.klick.com/local/images/pushpin/yellow.png';
var SEARCH=null;
var DONE=false;
function load()
{ if (GBrowserIsCompatible())
{ var searchoptions = {
// searchFormHint : "search...",
suppressZoomToBounds : true,
suppressInitialResultSelection : true,
showOnLoad: false,
onSearchCompleteCallback : function(searcher)
{
var dbresults=[];
var strToSearchFor=searcher.Db;
var url="/facebook/search/.ssx?q="+escape(strToSearchFor)+"&s=95929ea3-ef39-4498-922f-766458c2cac8";
var res = getHTTP(url);
var xml = GXml.parse(res);
var results = xml.documentElement.getElementsByTagName("result");
if (results.length>0)
{
var prop=(results[0].getElementsByTagName("longtitude")[0].text ? "text" : "textContent");
for (var i = 0; !(i >= results.length); i++)
{ var r=results[i];
var iMadeIt=false;
var p=new GLatLng(Number(r.getElementsByTagName("latitude")[0][prop]),Number(r.getElementsByTagName("longtitude")[0][prop]));
var distance=(Math.round(p.distanceFrom(_MAP.Home)/100)/10);
dbresults.push(createSearchResult( searcher,
r.getElementsByTagName("id")[0][prop],
r.getElementsByTagName("longtitude")[0][prop],
r.getElementsByTagName("latitude")[0][prop],
r.getElementsByTagName("name")[0][prop],
r.getElementsByTagName("locationtype")[0][prop],
r.getElementsByTagName("locationtypeid")[0][prop],
r.getElementsByTagName("address")[0][prop],
(r.getElementsByTagName("fav")[0][prop]+"")!="0",
r.getElementsByTagName("hours")[0][prop],
r.getElementsByTagName("descr")[0][prop],
distance,
iMadeIt));
//,hours,descr,IMadeThis
}
}
insertSearchResults(dbresults,searcher.results);
}
};
var map = new GMap2(document.getElementById("map"), {googleBarOptions: searchoptions});
_MAP=map;
var favIcon = new GIcon(G_DEFAULT_ICON);
favIcon.image = FAV_ICON;
var favOptions = { icon:favIcon };
_FAVOPTIONS=favOptions;
var home=new GLatLng(45.5, -73.7);
map.setCenter(home, 10);
map.enableScrollWheelZoom();
map.setMapType(G_NORMAL_MAP);
map.Home=home;
map.Locations=[];
GEvent.addListener(map, "singlerightclick", function(point,src,overlay)
{
var p=_MAP.fromContainerPixelToLatLng(point);
editForm(p.x,p.y);
});
GEvent.addListener(map, "moveend", function()
{
updateLocations()
});
var point=null;
var marker=null;
var cur_win=null;
create_map_point(241,45.5064672064406, -73.7078762054443,"Parc Marcel-Laurin","Un-fenced off-leash dog park","1","2345 Boulevard Thimens","","Off-leash park",true,0==1, true);
create_map_point(229,45.5204810207787, -73.6918258666992,"Parc Cousineau","Un-fenced off-leash dog park","1","Rue Poirier et Avenue O’Brien","","Off-leash park",true,0==1, true);
create_map_point(745,45.5036700403817, -73.659725189209,"Baker Animal Hospital","Veterinarian clinics","3","8310 Mayrand St.","Mon - Fri 8am-7pm, Sat 10am-2pm, Sun Closed","Small animal hospital",true,0==1, true);
create_map_point(242,45.5366557196803, -73.6848735809326,"Parc Marcelin-Wilson","On-leash dog park","4","Boulevard de l’Acadie et Boulevard Henri-Bourassa","","On-leash park",true,0==1, true);
create_map_point(935,45.5360545129975, -73.683500289917,"asdf","Veterinarian clinics","3","fasdfafa","fdadf","sdfadf",true,0==1, true);
create_map_point(247,45.5143165752721, -73.7421226501465,"Parc-nature du Bois-de-Saraguay","On-leash dog park","4","Boulevard Gouin Ouest et Avenue Joseph-Saucier","","On-leash park",true,0==1, true);
create_map_point(222,45.5267349874682, -73.7336254119873,"Parc Beauséjour","On-leash dog park","4","Boulevard Gouin Ouest et Chemin du Golf","","On-leash park",true,0==1, true);
create_map_point(375,45.4590921419713, -73.723304271698,"Centre Vétérinaire DMV","Veterinarian clinics","3","2300, 54ième Avenue","24/24, 7/7, 365 jours par année","Hôpital vétérinaire urgence et services spécialisé",true,0==1, true);
create_map_point(237,45.5030384030041, -73.6331176757813,"Parc Kent","On-leash dog park","4","Avenue Van Horne et Avenue Decelles","","On-leash park",true,0==1, true);
create_map_point(263,45.4358489109977, -73.7058699131012,"Parc Stoney Point","Un-fenced off-leash dog park","1","Lachine Boulevard St-Joseph et 45e Avenue","","Off-leash park",true,0==1, true);
create_map_point(246,45.5082116052269, -73.7656831741333,"Parc-nature du Bois-de-Liesse","On-leash dog park","4","9432 Boulevard Gouin Ouest","","On-leash park",true,0==1, true);
create_map_point(228,45.4715678784409, -73.6418724060059,"Parc de la Confédération","Un-fenced off-leash dog park","1","Avenue Fielding et Avenue West Hill","","Off-leash park",true,0==1, true);
create_map_point(912,45.4386946136811, -73.7292909622192,"St Charles","Fenced off-leash dog park","5","Avenue St Charles, Dorval, Qc","7am to 10pm","About 1.5 acres, grassy with ramp to water ",true,0==1, true);
create_map_point(257,45.4279133100879, -73.6814832687378,"Parc René-Lévesque","On-leash dog park","4","1 Chemin du Musée","","On-leash park",true,0==1, true);
create_map_point(270,45.4575870414297, -73.6491358280182,"Parc William-Bowie","On-leash dog park","4","4951 Avenue Trenholme","","On-leash park",true,0==1, true);
create_map_point(593,45.4713722609389, -73.6266589164734,"Le Doggie Bag Cafe","Restaurant/cafe","6","5976 Monkland, NDG","","At the corner of Hampton",true,0==1, true);
create_map_point(265,45.4918858285028, -73.6054158210754,"Parc Summit","On-leash dog park","4","Summit Circle","","On-leash park",true,0==1, true);
create_map_point(234,45.5331686314461, -73.6295127868652,"Parc Jarry","On-leash dog park","4","Rue Faillon et Rue Jarry","","On-leash park",true,0==1, true);
create_map_point(268,45.4887193882945, -73.7936425209045,"Parc Westwood","Un-fenced off-leash dog park","1","Fin de la Blvd de Salaberry est de la Blvd Sources","","Off-leash park",true,0==1, true);
create_map_point(728,45.4634266070652, -73.6308646202087,"Trenholme Park","Fenced off-leash dog park","5","6800 Sherbrooke West","","",true,0==1, true);
create_map_point(729,45.4612594161718, -73.6318945884705,"Trenholme Park","Fenced off-leash dog park","5","6800 Sherbrooke West, Montreal, Quebec","","",true,0==1, true);
create_map_point(243,45.5009930523927, -73.59290599823,"Parc du Mont-Royal","On-leash dog park","4","1260 Chemin Remembrance","","On-leash park",true,0==1, true);
create_map_point(238,45.4838452797276, -73.6049652099609,"Parc King George","Un-fenced off-leash dog park","1","Chemin Cote St-Antoine et Avenue Murray","","Off-leash park",true,0==1, true);
create_map_point(250,45.4721697741884, -73.6150074005127,"Parc Notre-Dame-de-Grace","Un-fenced off-leash dog park","1","Avenue Girouard et Rue Sherbrooke Ouest","","Off-leash park",true,0==1, true);
create_map_point(906,45.4728318520864, -73.6140632629395,"NDG park","Fenced off-leash dog park","5","Giroud/Sherbrooke","","big dog run",true,0==1, true);
create_map_point(251,45.4990980288972, -73.5846662521362,"Parc Percy Walters","Un-fenced off-leash dog park","1","Avenue Docteur-Penfield et Rue Redpath","","Off-leash park",true,0==1, true);
create_map_point(543,45.5705383512351, -73.6537599563599,"parc a chien ahuntsic ","Fenced off-leash dog park","5","angle st-firmin et fleury est","toujours ouvert","grand parc pour chien sans laisse ",true,0==1, true);
create_map_point(262,45.5705158196889, -73.6535131931305,"Parc du Sault-au-Recollet","Un-fenced off-leash dog park","1","Rue de St-Firmin et Rue Fleury Est","","Off-leash park",true,0==1, true);
create_map_point(911,45.4541101055869, -73.7726783752441,"Surrey park","Un-fenced off-leash dog park","1","1945 Parkfield Ave, Dorval, QC H9P 1A1","7am to 10pm","About 2 acres, lots of trees and walking track",true,0==1, true);
create_map_point(261,45.5056250635409, -73.5799992084503,"Parc Rutherford","Un-fenced off-leash dog park","1","Avenue Docteur-Penfield et Avenue des Pins Ouest","","Off-leash park",true,0==1, true);
create_map_point(369,45.4983760984079, -73.5756540298462,"Loews Hotel Vogue","Pet friendly accommodations","2","1425 Rue de la Montagne","","Nice Montreal Hotel-Pets stay free & get treats!",true,0==1, true);
create_map_point(226,45.4619968724237, -73.6113166809082,"Parc du Canal de Lachine","On-leash dog park","4","Rue St-Ambroise et Chemin de la Cote-Saint-Paul","","On-leash park",true,0==1, true);
create_map_point(953,45.5247205644865, -73.5967683792114,"Le R?veil Du Ma?tre ","Restaurant/cafe","6","5377 Boulevard Saintt-Laurent","","Boutique sant? pour animaux",false,0==1, false);
create_map_point(236,45.5145872236384, -73.586254119873,"Parc Jeanne Mance","On-leash dog park","4","Avenue du Parc et Avenue de Mont-Royal Ouest","","On-leash park",true,0==1, true);
create_map_point(227,45.487997324748, -73.8174819946289,"Parc Centenaire","On-leash dog park","4","Chemin Mackle et Avenue Shalom","","On-leash park",true,0==1, true);
create_map_point(804,45.4793920217783, -73.8088989257813,"fgd","Un-fenced off-leash dog park","1","gdfgdfgdfgfd","","asdfsdfsdf",false,0==1, false);
create_map_point(232,45.574699021809, -73.6447048187256,"Parc des Hirondelles","On-leash dog park","4","Rue Sauvé Est et Avenue Larose","","On-leash park",true,0==1, true);
create_map_point(1079,45.486703604412, -73.8208293914795,"Centenial Park","Fenced off-leash dog park","5","Lake ","","",true,0==1, true);
create_map_point(510,45.553486897158, -73.7821197509766,"testing","Un-fenced off-leash dog park","1","testing","testing","testing",false,0==1, false);
create_map_point(233,45.4537488532057, -73.606424331665,"Parc Ignace-Bourget","On-leash dog park","4","Avenue Newman et Avenue Irwin","","On-leash park",true,0==1, true);
create_map_point(909,45.6207762225551, -73.7201607227325,"Parc Lausanne","Fenced off-leash dog park","5","Rue Lausanne","","",true,0==1, true);
create_map_point(1074,45.5321822121904, -73.5904893279076,"Parc Sir Wilfrid Laurier","Fenced off-leash dog park","5","St-Grégoire coin Boyer","","Parc cloturé pour Chien Seulement",true,0==1, true);
create_map_point(897,45.4764204798969, -73.5811471939087,"Parc Louis-Cyr","Fenced off-leash dog park","5","Corner St-Ferdinand et Ste-Emilie","","New, with water spigot, trees, grass and benches",true,0==1, true);
create_map_point(774,45.523848627693, -73.5801601409912,"Brandy's Holistic Centre & Canine Café","Restaurant/cafe","6","469 Marie-Anne E.","Tues-Fri: 10am-6pm, Sat: 10am-5pm, Sun: 12pm-5pm","Holistic Pet Boutique, Canine Café",true,0==1, true);
create_map_point(269,45.5320939033371, -73.587498664856,"Parc Wilfrid-Laurier","On-leash dog park","4","Rue de Mentana et Avenue Laurier Est","","On-leash park",true,0==1, true);
create_map_point(773,45.5322367005626, -73.5873913764954,"Parc Wilfred-Laurier","Fenced off-leash dog park","5","St.Grégoire and Christophe-Colomb","","",true,0==1, true);
create_map_point(253,45.5386095970081, -73.5936784744263,"Parc Père-Marquette","Un-fenced off-leash dog park","1","1555 Rue des Carrières","","Off-leash park",true,0==1, true);
create_map_point(217,45.5166922220549, -73.5702037811279,"Carrée Saint-Louis","On-leash dog park","4","Carrée St-Louis et Rue St-Denis","","On-leash park",true,0==1, true);
create_map_point(1363,45.538324034558, -73.5911464691162,"Parc du Père-Marquette","Fenced off-leash dog park","5","rue garnier","6am to 11pm","terrain de 25metres par 125metre cloturé",true,0==1, true);
create_map_point(480,45.422311037651, -73.6286544799805,"Clinique vétérinaire Lasalle","Veterinarian clinics","3","7559 Broadway, Lasalle, QC H8P 1G7","Lun au vend de 9h à 20h et sam de 9h30 à 14h","Chats, chiens et animaux exotiques",true,0==1, true);
//alert(G_ANCHOR_BOTTOM_RIGHT);
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl());
map.addControl(new GSmallMapControl()); //, new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(10, 10)));
//this is the OLD way of doing search - but we can position it top left, as per willer's request
//map.addControl(new google.maps.LocalSearch(searchoptions), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10)));
//this is the NEW way of doing search - but can't be positioned (that I can find)
map.enableGoogleBar();
displayFaves();
try
{ document.forms["citySearchForm"].cityInput.focus();
}catch(e)
{
}
}
}
function searchCallback(searcher)
{
var dbresults=[];
var strToSearchFor=searcher.Db;
var url="/facebook/search/.ssx?q="+escape(strToSearchFor)+"&s=95929ea3-ef39-4498-922f-766458c2cac8";
var res = getHTTP(url);
var xml = GXml.parse(res);
var results = xml.documentElement.getElementsByTagName("result");
if (results.length>0)
{
var prop=(results[0].getElementsByTagName("longtitude")[0].text ? "text" : "textContent");
for (var i = 0; !(i >= results.length); i++)
{ var r=results[i];
var iMadeIt=false;
var p=new GLatLng(Number(r.getElementsByTagName("latitude")[0][prop]),Number(r.getElementsByTagName("longtitude")[0][prop]));
var distance=(Math.round(p.distanceFrom(_MAP.Home)/100)/10);
dbresults.push(createSearchResult( searcher,
r.getElementsByTagName("id")[0][prop],
r.getElementsByTagName("longtitude")[0][prop],
r.getElementsByTagName("latitude")[0][prop],
r.getElementsByTagName("name")[0][prop],
r.getElementsByTagName("locationtype")[0][prop],
r.getElementsByTagName("locationtypeid")[0][prop],
r.getElementsByTagName("address")[0][prop],
(r.getElementsByTagName("fav")[0][prop]+"")!="0",
r.getElementsByTagName("hours")[0][prop],
r.getElementsByTagName("descr")[0][prop],
distance,
iMadeIt));
//,hours,descr,IMadeThis
}
}
insertSearchResults(dbresults,searcher.results);
}
function create_map_point(id,x,y,name,type,typeid,add,hours,desc,ismine,fav,imadeit,personid)
{ var point =new GLatLng(x, y);
point.ID =id;
point.Name =name;
point.Type =type;
point.LocationTypeID =typeid
point.Address =add;
point.IsFavorite =fav;
point.HoursOfOperation =hours;
point.Description =desc;
point.IMadeThis =imadeit;
point.Icon =ICONS[type];
point.IsMine =ismine;
var marker =(fav ? new GMarker(point,_FAVOPTIONS): new GMarker(point));
var icon=marker.getIcon();
icon.image =(fav ? FAV_ICON : ICONS[type]);
icon.shadow =ICONS["Shadow"];
icon.iconSize.width =37;
icon.iconSize.height =30
icon.shadowSize.width =37;
icon.shadowSize.height =24;
point.Marker =marker;
_MAP.Locations.push(point);
_MAP.addOverlay(marker);
GEvent.addListener(marker, "click", function()
{
var p=this.getPoint();
this.openInfoWindowHtml(getLocationContent(p));
});
}
function isPointAdded(id)
{ var rtn=false;
for (var i=0;i!=_MAP.Locations.length && !rtn;i++)
{ rtn=(String(id)==String(_MAP.Locations[i].ID))
}
return rtn;
}
function getLocationContent(p)
{ return getPointHTML(p.x,p.y,p.ID,p.Name,p.Type,p.Address,p.HoursOfOperation,(Math.round(p.distanceFrom(_MAP.Home)/100)/10),p.Description,p.IMadeThis,p.IsFavorite)
}
function editForm(x,y,point)
{ var frm=document.getElementById("NewParkForm");
var lat=document.getElementById("Latitude");
var lon=document.getElementById("Longtitude");
var f=document.getElementById("saveform");
f.reset();
if (point)
{ var p=null;
var mypoint=new GPoint(x,y);
for (var i=0;i!=_MAP.Locations.length;i++)
{ if (_MAP.Locations[i].x==x && _MAP.Locations[i].y==y)
{ mypoint=_MAP.Locations[i];
}
}
var name =document.getElementById("Name");
var addr =document.getElementById("Address");
var type =document.getElementById("LocationTypeID");
var id =document.getElementById("LocationID");
lat.value =mypoint.y;
lon.value =mypoint.x;
id.value =mypoint.ID;
name.value=mypoint.Name;
addr.value=mypoint.Address;
}else
{ lat.value=y;
lon.value=x;
}
frm.style.display="inline";
}
function toggleFavorite(link,ID)
{ var p=null;
for (var i=0;p==null && i!=_MAP.Locations.length;i++)
{ if (_MAP.Locations[i].ID==ID)
{ p=_MAP.Locations[i];
}
}
//do something to change the icon for P...
var frame=document.getElementById("saveframe");
if (link==null || link.innerHTML.toLowerCase().indexOf("remove")>=0)
{ if (link!=null)
{ link.innerHTML="Add As Favorite"
}
p.Marker.setImage(p.Icon);
p.IsFavorite=false;
frame.src="/facebook/remove_favorite/"+escape(ID)+"?s=95929ea3-ef39-4498-922f-766458c2cac8";
}else
{ link.innerHTML="Remove From Favorites"
p.Marker.setImage(FAV_ICON);
p.IsFavorite=true;
changeOldFavIcon(p)
frame.src="/facebook/add_favorite/"+escape(ID)+"?s=95929ea3-ef39-4498-922f-766458c2cac8";
}
displayFaves();
}
function displayFaves()
{ var faveNum=1;
for (var i=0;i!=_MAP.Locations.length;i++)
{ var loc=_MAP.Locations[i];
if (loc.IsFavorite)
{ var tr =document.getElementById("faveTr"+faveNum);
var lbl =tr.cells[0];
var go =tr.cells[1];
var del =tr.cells[2];
var delfunc =null;
var gofunc =null;
eval("delfunc =function (){toggleFavorite(null,'"+loc.ID+"');}");
eval("gofunc =function (){showInfoWindow('"+loc.ID+"');}");
lbl.innerHTML =loc.Name;
go.onclick =gofunc;
del.onclick =delfunc;
tr.style.display="";
faveNum++;
}
}
while (faveNum!=4)
{ var tr=document.getElementById("faveTr"+faveNum);
tr.style.display="none";
faveNum++;
}
}
function showInfoWindow(id)
{ var p=null;
for (var i=0;i!=_MAP.Locations.length;i++)
{ if (String(id)==_MAP.Locations[i].ID)
{ p=_MAP.Locations[i];
}
}
p.Marker.openInfoWindowHtml(getLocationContent(p));
}
function changeOldFavIcon(newPoint)
{ var otherfavorites=[];
for (var i=0;i!=_MAP.Locations.length;i++)
{ if (_MAP.Locations[i].IsFavorite && !newPoint.equals(_MAP.Locations[i]))
{ otherfavorites.push(_MAP.Locations[i]);
}
}
if (otherfavorites.length>=3)
{ var point=otherfavorites[otherfavorites.length-1]; //grab the furthest one away from the user's point of origin
point.Marker.setImage(REG_ICON);
point.IsFavorite=false;
}
}
function form_submit(form)
{ if (!validate(form))
{ return false;
}else if (form.LocationID.value.length==0)
{ create_map_point(form.Latitude.value.replace(/\./gi,"_")+"/"+form.Longtitude.value.replace(/\./gi,"_"),
form.Latitude.value,
form.Longtitude.value,
form.Name.value,
form.LocationTypeID.options[form.LocationTypeID.selectedIndex].text,
form.LocationTypeID.options[form.LocationTypeID.selectedIndex].value,
form.Address.value,
form.HoursOfOperation.value,
form.Description.value,
true,
false,
true)
}return true;
}
function findOrCreatePoint(id,x,y,name,type,typeid,addr,fav)
{ var point=new GPoint(x,y);
for (var i=0;i!=_MAP.Locations.length;i++)
{ if (_MAP.Locations[i].x==point.x && _MAP.Locations[i].y==point.y)
{ return _MAP.Locations[i];
}
}
point.x =x;
point.y =y;
point.ID =id;
point.Name =name;
point.Type =type;
point.LocationTypeID =typeid
point.Address =addr;
point.IsFavorite =fav;
_MAP.Locations.push(point);
return point;
}
function validate(form)
{ var req=['Name','Address'];
var nam=['Nom','Adresse'];
var erMsg=[ "Le [fieldname] est exigé et ne peut être laissé blanc",
"Le [fieldname] contient des mots qui sont suceptibles de blesser certaines personnes."];
var err=[];
for (var i=0;i!=req.length;i++)
{ var val=form.elements[req[i].replace(/\s/gi,'')].value;
if (val.length==0)
{ err.push(erMsg[0].replace(/\[fieldname\]/gi,nam[i]));
}else if (isBadWord(val))
{ err.push(erMsg[1].replace(/\[fieldname\]/gi,nam[i]));
}
}
if (err.length>0)
{ alert(err.join("\n"));
}
return err.length==0;
}
function validateAbuseForm(form)
{ if (form.AbuseTypeID.selectedIndex==0)
{ alert("The Type of abuse is required and cannot be left blank.");
return false;
}else if ( form.AbuseTypeID.options[form.AbuseTypeID.selectedIndex].value=="3" &&
form.NewLocationTypeID.selectedIndex==0)
{ alert("The New Location Type must be selected for an Abuse Type of Incorrect Type of Location.");
return false;
}
}
function isBadWord(s)
{ var bad=new Array("(",")",".cn",".com","=","script kiddie","£","??","º","»","÷","ã","afganastan","asshole","binladen","bitch","boris","browsing","bullshit","Ç","c**t","chick","cialis","cock","colors","cool","crook","cum","cunt","dead","design","dick","dirty","drunk","dyke","Ê","fag","failure","Fine","fine","fuck","fucker","gay","gimp","grave","hobble","homosexual","hot","HOT","html","http","Hussein","hussein","?","iraq","Iraq","jew","kiss","kool","loser","lover","matrix","Neo","neo","niger","nigger","Notify","Õ","Ø","online","prick","queer","rape","ROCK","rocks","rox","saddam","Saddam","sex","shit","site","sleep","stupid","suck","theif","Trinity","trinity","twat","vagina","Valentine","valentine's","valium","viagra","womanizer","www.","zzzz","slut","fake","Æ","¶","");
for (var i=0;i!=bad.length;i++)
{ if (bad[i].length>0 && s.indexOf(bad[i])>=0)
{ return true;
}
}return false;
}
function createSearchResult(searcher,id,x,y,name,type,typeid,addr,fav,hours,descr,distance,IMadeThis)
{ var r ={};
r.lat =y;
r.lng =x;
r.title =name;
r.titleNoFormatting =name;
r.streetAddress =addr;
r.GsearchResultClass="GlocalSearch"
r.html =document.getElementById("searchresulttoclone").cloneNode(true);
r.html.innerHTML =getPointHTML(x,y,id,name,type,addr,hours,distance,descr,IMadeThis,fav);
r.html.style.display="inline";
r.url ="";
r.ddUrl ="";
r.ddUrlToHere ="";
r.ddUrlFromHere ="";
r.staticMapUrl ="";
r.homeUrl ="";
return r;
}
function getPointHTML(x,y,id,name,type,addr,hours,distance,descr,IMadeThis,fav)
{ return ''+name+'
'+type+'
'+addr+(hours.length>0 ? '
Hours: '+hours : '')+'
'+descr+'
'+
'