rendered paste body<cfcomponent output="no" extends="streets.geo">
<cffunction name="getMarkerByID" access="remote" returntype="query">
<cfargument name="markerID" type="numeric" default="0" hint="Marker ID" displayname="The Marker ID to lookup">
<cfset var getMarkerByIDReturnQuery = "" />
<CFQUERY NAME="getMarkerByIDReturnQuery" DATASOURCE="streets">
SELECT
markers.id,
markers.uuid,
markers.view,
markers.markerdetails,
markers.latitude,
markers.longitude,
markers.iconid,
markers.streetsid,
markers.creationdate,
markers.markername,
markers.address1,
markers.address2,
markers.city,
markers.state,
markers.zip,
markers.country,
markers.LonLatMatch,
DATE_FORMAT(markers.eventdate,'%m/%d/%y') AS eventdate,
markers.event,
markers.fullAddress,
markers.forCrew,
markers.forUser,
icontypes.iconimgpath,
icontypes.iconimgname,
users.name as UsersName,
(SELECT users.name FROM users WHERE streetsid = markers.forUser) AS forUsersName,
(SELECT crews.name FROM crews WHERE id = markers.forCrew) AS forCrewName,
(SELECT count(id) FROM markeralbums WHERE markerid = markers.id AND streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">) AS MyLinkedAlbumsCount,
(SELECT count(id) FROM comments WHERE associated_id = markers.id AND postedby = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">) AS MyCommentsCount
FROM
markers
LEFT JOIN
icontypes ON markers.iconid = icontypes.id
LEFT JOIN
users ON markers.streetsid = users.streetsid
WHERE
markers.id = <cfqueryparam value="#arguments.markerID#" cfsqltype="cf_sql_bigint">
</CFQUERY>
<cfreturn getMarkerByIDReturnQuery />
</cffunction>
<cffunction name="getMapMarkers" access="remote" returntype="query">
<cfargument name="LatMin" type="numeric" required="yes" hint="Minimum Latitude">
<cfargument name="LatMax" type="numeric" required="yes" hint="Maximum Latitude">
<cfargument name="LonMin" type="numeric" required="yes" hint="Minimum Longitude">
<cfargument name="LonMax" type="numeric" required="yes" hint="Maximum Longitude">
<cfargument name="showTaggedTags" type="boolean" default="false" hint="If this is passed show Tagged tags">
<cfargument name="showFriendTags" type="boolean" default="false" hint="If this is passed show friends tags">
<cfargument name="showCrewTags" type="boolean" default="false" hint="If this is passed show crews tags">
<cfargument name="showMyTags" type="boolean" default="false" hint="If this is passed show My tags">
<cfargument name="showPublicTags" type="boolean" default="false" hint="If this is passed show Public">
<cfargument name="showThisCrewsTags" type="numeric" default="0" hint="If this is passed show Only tags from this crew">
<cfset var getMyMarkersQuery = '' />
<CFQUERY NAME="getMyMarkersQuery" DATASOURCE="streets">
SELECT
markers.id,
markers.latitude,
markers.longitude,
markers.markerdetails,
icontypes.id AS iconid,
icontypes.iconimgpath,
icontypes.iconimgname,
users.StreetsID,
users.name as UsersName
FROM
markers
LEFT JOIN
icontypes ON markers.iconid = icontypes.id
LEFT JOIN
users ON markers.streetsid = users.streetsid
JOIN crews
LEFT JOIN
crewuserlist ON crewuserlist.crewid = crews.ID
WHERE
latitude
BETWEEN <cfqueryparam value="#arguments.LatMin#" cfsqltype="cf_sql_float">
AND <cfqueryparam value="#arguments.LatMax#" cfsqltype="cf_sql_float">
AND
longitude
BETWEEN <cfqueryparam value="#arguments.LonMin#" cfsqltype="cf_sql_float">
AND <cfqueryparam value="#arguments.LonMax#" cfsqltype="cf_sql_float">
AND
(
0=1
<cfif arguments.showThisCrewsTags neq 0>
OR
markers.forCrew = <cfqueryparam value="#arguments.showThisCrewsTags#" cfsqltype="cf_sql_bigint">
OR
(
crewuserlist.userid IN(SELECT userid FROM crewuserlist WHERE crewid = <cfqueryparam value="#arguments.showThisCrewsTags#" cfsqltype="cf_sql_bigint">)
AND
markers.view = <cfqueryparam value="3" cfsqltype="cf_sql_bigint">
OR
markers.view = <cfqueryparam value="4" cfsqltype="cf_sql_bigint">
)
</cfif>
<cfif arguments.showTaggedTags EQ true>
OR
markers.forUser = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfif>
<cfif arguments.showPublicTags EQ true>
OR
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
</cfif>
<cfif arguments.showFriendTags EQ true>
OR
(
markers.StreetsID IN(SELECT FriendID FROM buddylist WHERE userid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">)
AND
markers.view = <cfqueryparam value="2" cfsqltype="cf_sql_bigint">
)
</cfif>
<cfif arguments.showCrewTags EQ true>
OR
(
crewuserlist.userid IN(SELECT userid FROM crewuserlist WHERE userid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">)
AND
markers.view = <cfqueryparam value="3" cfsqltype="cf_sql_bigint">
)
</cfif>
<cfif arguments.showFriendTags EQ true AND arguments.showCrewTags EQ true>
OR
(
markers.StreetsID IN(SELECT FriendID FROM buddylist WHERE userid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">)
AND
markers.view = <cfqueryparam value="3" cfsqltype="cf_sql_bigint">
OR
crewuserlist.userid IN(SELECT userid FROM crewuserlist WHERE userid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">)
AND
markers.view = <cfqueryparam value="3" cfsqltype="cf_sql_bigint">
)
</cfif>
<cfif arguments.showMyTags EQ true>
OR
(
<cfif StructKeyExists(Request,'StreetsUser.StreetsID')>
markers.StreetsID = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
AND
</cfif>
markers.view != <cfqueryparam value="0" cfsqltype="cf_sql_bigint">
)
</cfif>
)
GROUP BY markers.ID
ORDER BY markers.ID Desc
</CFQUERY>
<cfreturn markerSpread(getMyMarkersQuery) />
</cffunction>
<cffunction name="LiveUpdateTagIcon" access="remote" returntype="string">
<cfargument name="tagid" hint="TagID" displayname="ID of Tag Icon" type="numeric" required="yes">
<cfset var LiveUpdateTagiconReturn = "" />
<cfset var LiveUpdateTagiconResult = "" />
<CFQUERY NAME="LiveUpdateTagiconResult" DATASOURCE="streets">
SELECT id,iconImgPath,IconImgName FROM icontypes
WHERE
ID = <cfqueryparam value="#arguments.tagid#" cfsqltype="cf_sql_bigint">
</CFQUERY>
<cfset LiveUpdateTagiconReturn = "#LiveUpdateTagiconResult.IconImgPath#/#LiveUpdateTagiconResult.IconImgName#">
<cfreturn LiveUpdateTagiconResult />
</cffunction>
<cffunction name="getMarkersBrowse" access="remote" returntype="struct">
<cfargument name="searchstr" default="" hint="searchstr" displayname="Keyword to search for">
<cfargument name="car_make" default="" hint="car_make" displayname="The Car Make if defined">
<cfargument name="searchzip" required="no" hint="searchzip" displayname="Zip code if user is not dragging the map">
<cfargument name="radiusmiles" default="100" hint="radiusmiles" displayname="Search within this mile radius.">
<cfargument name="searchview" required="no" hint="searchview" displayname="1=Members,2=Cars,3=Crews,4=Events,5=Places">
<cfargument name="membersOnlineNow" required="no" hint="If Members are Online Now" type="boolean" default="false">
<cfargument name="lat" default="#Request.StreetsUser.Latitude#" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" default="#Request.StreetsUser.Longitude#" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="zoomlvl" required="no" hint="Zoom" displayname="Current Map Zoom Level">
<cfargument name="pan" default="0" hint="Pan" displayname="If this is 1 run ZipToCord">
<cfargument name="crewsortby" required="no" hint="CrewSortBy" displayname="Sort either New, Oldest, Largest Members if view is crew (3)">
<cfargument name="limit" default="5" hint="end" displayname="How many records per page">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="eventDateStart" default="#dateformat(now()-14, 'mm/dd/yyyy')#" hint="Start Date" displayname="Selectable Start Date, default -2 weeks from now">
<cfargument name="eventDateEnd" default="#dateformat(now()+14, 'mm/dd/yyyy')#" hint="End Date" displayname="Selectable End Date, default +2 weeks from now">
<cfscript>
var getBrowseResultsStruct = StructNew();
var GeoBoxed = "";
var getZipToCord = "";
var getCordToZip = StructNew();
if(arguments.pan EQ 1) {
getZipToCord = ZipToCord(arguments.searchzip);
arguments.lat = getZipToCord.lat;
arguments.lng = getZipToCord.lng;
}
getCordToZip.obj = CordToZip(arguments.lat,arguments.lng);
arguments.searchzip = getCordToZip.obj;
GeoBoxed = GeoBox(arguments.lat,arguments.lng,arguments.radiusmiles);
switch(arguments.searchview) {
case 1:
getBrowseResultsStruct = getMarkersBrowse_members
(
geoboxed:GeoBoxed,
lat:arguments.lat,
lng:arguments.lng,
searchstr:arguments.searchstr,
onlineNow:arguments.membersOnlineNow,
car_make:arguments.car_make,
page:arguments.page,
limit:arguments.limit
);
break;
case 2:
getBrowseResultsStruct = getMarkersBrowse_cars
(
geoboxed:GeoBoxed,
lat:arguments.lat,
lng:arguments.lng,
searchstr:arguments.searchstr,
car_make:arguments.car_make,
page:arguments.page,
limit:arguments.limit
);
break;
case 3:
getBrowseResultsStruct = getMarkersBrowse_crews
(
geoboxed:GeoBoxed,
lat:arguments.lat,
lng:arguments.lng,
searchstr:arguments.searchstr,
car_make:arguments.car_make,
page:arguments.page,
limit:arguments.limit,
crewsortby:arguments.crewsortby
);
break;
case 4:
getBrowseResultsStruct = getMarkersBrowse_events
(
geoboxed:GeoBoxed,
lat:arguments.lat,
lng:arguments.lng,
searchstr:arguments.searchstr,
car_make:arguments.car_make,
page:arguments.page,
limit:arguments.limit,
eventDateStart:arguments.eventDateStart,
eventDateEnd:arguments.eventDateEnd
);
break;
case 5:
getBrowseResultsStruct = getMarkersBrowse_places
(
geoboxed:GeoBoxed,
lat:arguments.lat,
lng:arguments.lng,
searchstr:arguments.searchstr,
page:arguments.page,
limit:arguments.limit
);
break;
}
return getBrowseResultsStruct;
</cfscript>
<!---
<CFQUERY NAME="getBrowseQueryResults" DATASOURCE="streets">
SELECT
markers.id,
markers.streetsid,
markers.latitude,
markers.longitude,
markers.markerdetails,
markers.view,
users.id AS UsersID,
users.name,
<cfif arguments.searchview EQ 1 or arguments.searchview EQ 2>
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
</cfif>
<cfif arguments.searchview EQ 3>
crews.id AS CrewID,
crews.name AS CrewName,
crews.zip AS CrewZip,
crews.bannerpath,
crews.bannerfilename,
crews.ownerid,
crews.created,
crews.bannerwidth,
crews.bannerheight,
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
(SELECT count(id) FROM crewuserlist WHERE crewuserlist.crewid = crews.id) AS CrewsSortBySize,
</cfif>
garage.car_name,
garage.id AS GarageID,
garage.userid AS GarageUID,
gallery.garageid AS GalleryGarageID,
gallery.userid AS GalleryUID,
gallery.filename,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM markers
LEFT JOIN users ON markers.streetsid = users.id
LEFT JOIN garage ON markers.streetsid = garage.userid
LEFT JOIN gallery_albums ON garage.id = gallery_albums.garageid
LEFT JOIN gallery ON gallery_albums.id = gallery.albumid
<cfif arguments.searchview EQ 3>
LEFT JOIN crews ON markers.streetsid = crews.ownerid
</cfif>
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="6" cfsqltype="cf_sql_bigint">
AND
<cfif arguments.searchview EQ 2>
gallery.filename != ''
AND
</cfif>
<cfif arguments.searchview EQ 3>
crews.ownerid != ''
AND
</cfif>
<cfif Len(arguments.car_make) NEQ 0>
markers.streetsid IN(select userid FROM garage WHERE garage.car_make = <cfqueryparam value="#arguments.car_make#" cfsqltype="cf_sql_varchar">)
AND
</cfif>
0=0
<cfif len(arguments.searchstr) NEQ 0>
AND
( users.name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
garage.car_name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
markers.streetsid IN(select streetsid FROM garagedescriptions WHERE garagedescriptions.details LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">)
)
</cfif>
<cfif arguments.searchview EQ 3>
GROUP BY crews.ownerid
<cfif arguments.crewsortby EQ 1>
ORDER BY crews.created desc
</cfif>
<cfif arguments.crewsortby EQ 2>
ORDER BY crews.created asc
</cfif>
<cfif arguments.crewsortby EQ 3>
ORDER BY CrewsSortBySize desc
</cfif>
<cfelse>
GROUP BY markers.streetsid
ORDER BY users.id desc, ID Desc
</cfif>
LIMIT <cfqueryparam value="#arguments.start#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.end#" cfsqltype="cf_sql_bigint">
</CFQUERY>
--->
</cffunction>
<cffunction name="getMarkersBrowse_members" access="public" returntype="Struct">
<cfargument name="geoboxed" type="struct" required="yes" hint="Geo Restrictions">
<cfargument name="lat" required="no" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" required="no" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="searchstr" required="no" hint="searchstr" displayname="Keyword to search for">
<cfargument name="onlineNow" required="no" hint="If Members are Online Now" type="boolean" default="false">
<cfargument name="car_make" required="no" hint="car_make" displayname="The Car Make if defined">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="limit" default="15" hint="end" displayname="How many records per page">
<cfscript>
var GetTotalCount = '';
var TotalResults = '';
var getBrowse_MembersQuery = '';
var getBrowse_MembersReturn = StructNew();
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
</cfscript>
<cftransaction>
<CFQUERY NAME="getBrowse_MembersQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.markerdetails,
markers.latitude,
markers.longitude,
users.id,
users.id AS IconID,
users.name,
users.StreetsID,
users.name as UsersName,
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
users.avatar AS DisplayImgName,
users.avatar_path AS DisplayImgPath,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM
markers
LEFT JOIN
users ON markers.id = users.MarkerID
LEFT JOIN
garage ON users.id = garage.userid
LEFT JOIN
garagedescriptions ON garage.id = garagedescriptions.garageid
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
<cfif arguments.onlineNow eq true>
AND
users.onlineNow = 1
</cfif>
<cfif Len(arguments.car_make) NEQ 0>
AND
garage.car_make = <cfqueryparam value="#arguments.car_make#" cfsqltype="cf_sql_varchar">
</cfif>
<cfif len(arguments.searchstr) NEQ 0>
AND
users.name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
garage.car_name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
garagedescriptions.details LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
</cfif>
GROUP BY users.id
ORDER BY users.id desc, ID Desc
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getBrowse_MembersReturn, "getBrowse_Query", markerSpread(getBrowse_MembersQuery));
StructInsert(getBrowse_MembersReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getBrowse_MembersReturn />
</cffunction>
<cffunction name="getMarkersBrowse_cars" access="public" returntype="Struct">
<cfargument name="geoboxed" type="struct" required="yes" hint="Geo Restrictions">
<cfargument name="lat" required="no" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" required="no" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="searchstr" required="no" hint="searchstr" displayname="Keyword to search for">
<cfargument name="car_make" required="no" hint="car_make" displayname="The Car Make if defined">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="limit" default="15" hint="end" displayname="How many records per page">
<cfscript>
var GetTotalCount = '';
var TotalResults = '';
var getBrowse_CarsQuery = '';
var getBrowse_CarsReturn = StructNew();
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
</cfscript>
<cftransaction>
<CFQUERY NAME="getBrowse_CarsQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.markerdetails,
markers.latitude,
markers.longitude,
users.id,
users.name,
users.StreetsID,
users.name as UsersName,
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
gallery.thumb_small AS DisplayImgName,
gallery.path AS DisplayImgPath,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM
markers
LEFT JOIN
users ON markers.streetsid = users.id
LEFT JOIN
garage ON markers.streetsid = garage.userid
LEFT JOIN
gallery_albums ON garage.id = gallery_albums.garageid
LEFT JOIN
gallery ON gallery_albums.id = gallery.albumid
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
AND
markers.id = users.MarkerID
AND
gallery.filename != ''
AND
<cfif Len(arguments.car_make) NEQ 0>
markers.streetsid IN(select userid FROM garage WHERE garage.car_make = <cfqueryparam value="#arguments.car_make#" cfsqltype="cf_sql_varchar">)
AND
</cfif>
0=0
<cfif len(arguments.searchstr) NEQ 0>
AND
( users.name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
garage.car_name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
markers.streetsid IN(select streetsid FROM garagedescriptions WHERE garagedescriptions.details LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">)
)
</cfif>
GROUP BY users.id
ORDER BY users.id desc, ID Desc
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getBrowse_CarsReturn, "getBrowse_Query", markerSpread(getBrowse_CarsQuery));
StructInsert(getBrowse_CarsReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getBrowse_CarsReturn />
</cffunction>
<cffunction name="getMarkersBrowse_crews" access="public" returntype="Struct">
<cfargument name="geoboxed" type="struct" required="yes" hint="Geo Restrictions">
<cfargument name="lat" required="no" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" required="no" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="searchstr" required="no" hint="searchstr" displayname="Keyword to search for">
<cfargument name="car_make" required="no" hint="car_make" displayname="The Car Make if defined">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="limit" default="15" hint="end" displayname="How many records per page">
<cfscript>
var GetTotalCount = '';
var TotalResults = '';
var getBrowse_CrewsQuery = '';
var getBrowse_CrewsReturn = StructNew();
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
switch(arguments.crewsortby) {
case 1:
pagedStruct.SortBy = "crews.created asc";
break;
case 2:
pagedStruct.SortBy = "crews.created desc";
break;
case 3:
pagedStruct.SortBy = "CrewsSortBySize desc";
break;
}
</cfscript>
<cftransaction>
<CFQUERY NAME="getBrowse_CrewsQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.latitude,
markers.longitude,
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
crews.id,
crews.name,
crews.zip,
crews.description AS markerdetails,
crews.bannerpath AS DisplayImgPath,
crews.bannerfilename AS DisplayImgName,
crews.ownerid,
DATE_FORMAT(crews.created,'%b %e, %Y') AS created,
crews.bannerwidth,
crews.bannerheight,
users.avatar AS IconImgName,
users.avatar_path AS IconImgPath,
users.StreetsID,
users.name as UsersName,
(SELECT count(id) FROM crewuserlist WHERE crewuserlist.crewid = crews.id) AS CrewsSortBySize,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM
markers
LEFT JOIN
users ON markers.streetsid = users.id
LEFT JOIN
crews ON markers.streetsid = crews.ownerid
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
AND
crews.bannerfilename != ''
AND
<cfif Len(arguments.car_make) NEQ 0>
markers.streetsid IN(select userid FROM garage WHERE garage.car_make = <cfqueryparam value="#arguments.car_make#" cfsqltype="cf_sql_varchar">)
AND
</cfif>
0=0
<cfif len(arguments.searchstr) NEQ 0>
AND
( users.name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
garage.car_name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
markers.streetsid IN(select streetsid FROM garagedescriptions WHERE garagedescriptions.details LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">)
OR
crews.name LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
crews.description LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
)
</cfif>
GROUP BY crews.id
ORDER BY #pagedStruct.SortBy#
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getBrowse_CrewsReturn, "getBrowse_Query", markerSpread(getBrowse_CrewsQuery));
StructInsert(getBrowse_CrewsReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getBrowse_CrewsReturn />
</cffunction>
<cffunction name="getMarkersBrowse_events" access="public" returntype="Struct">
<cfargument name="geoboxed" type="struct" required="yes" hint="Geo Restrictions">
<cfargument name="lat" required="no" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" required="no" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="searchstr" required="no" hint="searchstr" displayname="Keyword to search for">
<cfargument name="car_make" required="no" hint="car_make" displayname="The Car Make if defined">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="limit" default="15" hint="end" displayname="How many records per page">
<cfargument name="eventDateStart" default="#dateformat(now()-14, 'mm/dd/yyyy')#" hint="Start Date" displayname="Selectable Start Date, default -2 weeks from now">
<cfargument name="eventDateEnd" default="#dateformat(now()+14, 'mm/dd/yyyy')#" hint="End Date" displayname="Selectable End Date, default +2 weeks from now">
<cfscript>
var GetTotalCount = '';
var TotalResults = '';
var getBrowse_EventsQuery = '';
var getBrowse_EventsReturn = StructNew();
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
</cfscript>
<cftransaction>
<CFQUERY NAME="getBrowse_EventsQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.id,
markers.latitude,
markers.longitude,
markers.markerName as Name,
markers.markerdetails,
DATE_FORMAT(markers.eventdate,'%b %e, %Y') AS eventdate,
icontypes.IconImgName,
icontypes.IconImgPath,
icontypes.IconImgName AS DisplayImgName,
icontypes.IconImgPath AS DisplayImgPath,
users.name as UsersName,
users.streetsid as StreetsID,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM
markers
LEFT JOIN
icontypes ON markers.iconid = icontypes.id
LEFT JOIN
users ON markers.streetsid = users.streetsid
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
AND
markers.eventdate
BETWEEN
<cfqueryparam value="#arguments.eventDateStart#" cfsqltype="cf_sql_date">
AND
<cfqueryparam value="#arguments.eventDateEnd#" cfsqltype="cf_sql_date">
AND
markers.event = 1
<cfif len(arguments.searchstr) NEQ 0>
AND
markers.markerdetails LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
</cfif>
GROUP BY markers.id
ORDER BY markers.eventdate asc
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getBrowse_EventsReturn, "getBrowse_Query", markerSpread(getBrowse_EventsQuery));
StructInsert(getBrowse_EventsReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getBrowse_EventsReturn />
</cffunction>
<cffunction name="getMarkersBrowse_places" access="public" returntype="Struct">
<cfargument name="geoboxed" type="struct" required="yes" hint="Geo Restrictions">
<cfargument name="lat" required="no" hint="Latitude" displayname="Current Map Centered Latitude">
<cfargument name="lng" required="no" hint="Longitude" displayname="Current Map Centered Longitude">
<cfargument name="searchstr" required="no" hint="searchstr" displayname="Keyword to search for">
<cfargument name="page" type="numeric" default="1" hint="Page" displayname="what records to return based on page, 1 page = (arguments.limit) records">
<cfargument name="limit" default="15" hint="end" displayname="How many records per page">
<cfscript>
var streetsObj = CreateObject('component','streets.streets');
var GetTotalCount = '';
var TotalResults = '';
var getBrowse_PlacesQuery = '';
var getBrowse_PlacesReturn = StructNew();
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
</cfscript>
<cftransaction>
<CFQUERY NAME="getBrowse_PlacesQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.id,
markers.latitude,
markers.longitude,
markers.markerName as Name,
markers.markerdetails,
DATE_FORMAT(DATE_ADD(markers.creationdate, INTERVAL #streetsObj.getMyTimeZoneOffset()# HOUR),'%b %e, %Y %r') AS ddate,
icontypes.IconImgName,
icontypes.IconImgPath,
icontypes.IconImgName AS DisplayImgName,
icontypes.IconImgPath AS DisplayImgPath,
users.name as UsersName,
users.streetsid as StreetsID,
#arguments.lat# AS querySetLat,
#arguments.lng# AS querySetLng
FROM
markers
LEFT JOIN
icontypes ON markers.iconid = icontypes.id
LEFT JOIN
users ON markers.streetsid = users.streetsid
WHERE
markers.latitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.latmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.latmax#" cfsqltype="cf_sql_float">
AND
markers.longitude
BETWEEN
<cfqueryparam value="#arguments.geoboxed.lonmin#" cfsqltype="cf_sql_float">
AND
<cfqueryparam value="#arguments.geoboxed.lonmax#" cfsqltype="cf_sql_float">
AND
markers.view = <cfqueryparam value="5" cfsqltype="cf_sql_bigint">
AND
markers.event = 0
AND
markers.id NOT IN(SELECT MarkerID from users)
AND
0=0
<cfif len(arguments.searchstr) NEQ 0>
AND
(
markers.markerdetails LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
OR
markers.markerName LIKE <cfqueryparam value="%#arguments.searchstr#%" cfsqltype="cf_sql_varchar">
)
</cfif>
GROUP BY markers.id
ORDER BY markers.id desc
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getBrowse_PlacesReturn, "getBrowse_Query", markerSpread(getBrowse_PlacesQuery));
StructInsert(getBrowse_PlacesReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getBrowse_PlacesReturn />
</cffunction>
<cffunction name="getManageMarkers" access="remote" returntype="struct">
<cfargument name="searchKeyword" type="string" default="" hint="Keyword to search for">
<cfargument name="limit" type="numeric" default="8" hint="Limit of records per page">
<cfargument name="searchView" type="numeric" default="1" hint="1=All,2=Crew,3=Events,4=Places,5=Comments,6=Albums,7=Tagged My Map,8=Tagged Others Map">
<cfargument name="sort" type="numeric" default="1" hint="Sort By">
<cfargument name="page" type="numeric" default="1" hint="Page">
<cfscript>
var streetsObj = CreateObject('component','streets.streets');
var getManageMarkersReturn = StructNew();
var GetTotalCount = '';
var TotalResults = '';
var getManageMarkersQuery = '';
var pagedStruct = StructNew();
pagedStruct.RowEnd = arguments.page*arguments.limit;
pagedStruct.RowStart = pagedStruct.RowEnd-arguments.limit;
</cfscript>
<cftransaction>
<CFQUERY NAME="getManageMarkersQuery" DATASOURCE="streets">
SELECT
SQL_CALC_FOUND_ROWS
markers.id,
markers.latitude,
markers.longitude,
markers.markerdetails,
markers.iconid,
markers.streetsid,
markers.forCrew,
markers.forUser,
markers.markername,
markers.event,
markers.eventdate,
icontypes.iconimgname,
icontypes.iconimgpath,
users.name
FROM
markers
LEFT JOIN
icontypes ON markers.iconid = icontypes.id
LEFT JOIN
users ON markers.streetsid = users.streetsid
LEFT JOIN
crews ON markers.forCrew = crews.id
WHERE
0=0
<cfif len(arguments.searchKeyword) gt 1>
AND
(
markers.markername LIKE <cfqueryparam value="%#arguments.searchKeyword#%" cfsqltype="cf_sql_varchar">
OR
markers.markerdetails LIKE <cfqueryparam value="%#arguments.searchKeyword#%" cfsqltype="cf_sql_varchar">
)
</cfif>
<cfswitch expression="#arguments.searchView#">
<cfcase value="1">
AND
markers.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
<cfcase value="2">
AND
markers.forCrew != 0
AND
markers.view = 6
AND
markers.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
<cfcase value="3">
AND
markers.event = 1
AND
markers.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
<cfcase value="4">
AND
markers.event = 0
AND
markers.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
<cfcase value="5">
AND
markers.id IN
(
SELECT
comments.associated_id
FROM
comments
WHERE
comments.postedby = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
AND
comments.type = 2
)
</cfcase>
<cfcase value="6">
AND
markers.id IN
(
SELECT
markeralbums.markerid
FROM
markeralbums
WHERE
markeralbums.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
)
</cfcase>
<cfcase value="7">
AND
markers.forUser = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
<cfcase value="8">
AND
markers.forUser IN
(
SELECT
buddylist.userid
FROM
buddylist
WHERE
buddylist.friendid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
)
AND
markers.streetsid = <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint">
</cfcase>
</cfswitch>
LIMIT <cfqueryparam value="#pagedStruct.RowStart#" cfsqltype="cf_sql_bigint">,<cfqueryparam value="#arguments.limit#" cfsqltype="cf_sql_bigint">;
</CFQUERY>
<CFQUERY NAME="GetTotalCount" DATASOURCE="streets">
SELECT FOUND_ROWS() AS TotalResults
</CFQUERY>
</cftransaction>
<cfscript>
StructInsert(getManageMarkersReturn, "getManageMarkersQuery", markerSpread(getManageMarkersQuery));
StructInsert(getManageMarkersReturn, "totalResultCount", GetTotalCount.TotalResults);
</cfscript>
<cfreturn getManageMarkersReturn />
</cffunction>
<cffunction name="markerSpread" access="public" returntype="query">
<cfargument name="getBrowseQueryResults" type="query" required="yes" hint="Query object of browse results">
<cfscript>
var variables = StructNew();
variables.browseQueryObject = arguments.getBrowseQueryResults;
variables.getBrowseQueryResultsTMP = '';
variables.Step = 0;
variables.Reach = 0;
variables.Push = 0;
variables.Pre = 0;
variables.StepC = 0;
variables.ReachC = 1;
variables.PreC = 0;
variables.intRow = 1;
</cfscript>
<cfloop query="variables.browseQueryObject">
<CFQUERY NAME="getBrowseQueryResultsTMP" dbtype="query">
SELECT ID,LATITUDE AS TmpLat,LONGITUDE AS TmpLng FROM variables.browseQueryObject
WHERE Latitude = <cfqueryparam value="#Latitude#" cfsqltype="cf_sql_float">
AND Longitude = <cfqueryparam value="#LONGITUDE#" cfsqltype="cf_sql_float">
ORDER BY ID DESC
</CFQUERY>
<cfscript>
for(variables.intRow = 1; variables.intRow LTE getBrowseQueryResultsTMP.RecordCount; variables.intRow++) {
if(getBrowseQueryResultsTMP.recordCount) {
if(getBrowseQueryResultsTMP.id neq getBrowseQueryResults.id) {
variables.byLat = getBrowseQueryResultsTMP.TmpLat;
variables.ByLon = getBrowseQueryResultsTMP.TmpLng;
if(variables.Step EQ 5) {
variables.Step = 1;
variables.StepC = variables.StepC+1;
}
if(variables.Reach EQ 5) {
variables.Reach = 1;
variables.ReachC = variables.ReachC+1;
}
if(variables.Push EQ 5) {
variables.Push = 1;
}
if(variables.Pre EQ 0) {
variables.Pre = 1;
variables.PreC = variables.PreC+1;
}
switch(variables.Pre) {
case 1:
variables.byLat = variables.byLat+Sin(0)/(180 * PI());
variables.ByLon = variables.ByLon-Cos(0)/(180 * PI() / variables.PreC);
break;
case 2:
variables.byLat = variables.byLat+Cos(0)/(180 * PI() / variables.PreC);
variables.ByLon = variables.ByLon-Sin(0)/(180 * PI());
break;
case 3:
variables.byLat = variables.byLat-Sin(0)/(180 * PI());
variables.ByLon = variables.ByLon+Cos(0)/(180 * PI() / variables.PreC);
break;
case 4:
variables.byLat = variables.byLat-Cos(0)/(180 * PI() / variables.PreC);
variables.ByLon = variables.ByLon+Sin(0)/(180 * PI());
break;
}
switch(variables.Step) {
case 1:
variables.byLat = variables.byLat-Cos(0)/(180 * PI() / variables.StepC);
variables.ByLon = variables.ByLon+Cos(0)/(180 * PI() / variables.StepC);
break;
case 2:
variables.byLat = variables.byLat-Cos(0)/(180 * PI() / variables.StepC);
variables.ByLon = variables.ByLon-Cos(0)/(180 * PI() / variables.StepC);
break;
case 3:
variables.byLat = variables.byLat+Cos(0)/(180 * PI() / variables.StepC);
variables.ByLon = variables.ByLon+Cos(0)/(180 * PI() / variables.StepC);
break;
case 4:
variables.byLat = variables.byLat+Cos(0)/(180 * PI() / variables.StepC);
variables.ByLon = variables.ByLon-Cos(0)/(180 * PI() / variables.StepC);
break;
}
if(variables.Reach EQ 1) {
if(variables.Push EQ 1) {
variables.byLat = variables.byLat-Cos(0)/(180 * PI() / variables.ReachC);
variables.ByLon = variables.ByLon+Sin(1)/(180 * PI());
}
if(variables.Push EQ 2) {
variables.byLat = variables.byLat-Sin(1)/(180 * PI());
variables.ByLon = variables.ByLon+Cos(0)/(180 * PI() / variables.ReachC);
}
}
if(variables.Reach EQ 2) {
if(variables.Push EQ 1) {
variables.byLat = variables.byLat-Cos(0)/(180 * PI() / variables.ReachC);
variables.ByLon = variables.ByLon+Sin(-1)/(180 * PI());
}
if(variables.Push EQ 2) {
variables.byLat = variables.byLat+Sin(-1)/(180 * PI());
variables.ByLon = variables.ByLon-Cos(0)/(180 * PI() / variables.ReachC);
}
}
if(variables.Reach EQ 3) {
if(variables.Push EQ 1) {
variables.byLat = variables.byLat+Cos(0)/(180 * PI() / variables.ReachC);
variables.ByLon = variables.ByLon-Sin(1)/(180 * PI());
}
if(variables.Push EQ 2) {
variables.byLat = variables.byLat+Sin(1)/(180 * PI());
variables.ByLon = variables.ByLon-Cos(0)/(180 * PI() / variables.ReachC);
}
}
if(variables.Reach EQ 4) {
if(variables.Push EQ 1) {
variables.byLat = variables.byLat+Cos(0)/(180 * PI() / variables.ReachC);
variables.ByLon = variables.ByLon-Sin(-1)/(180 * PI());
}
if(variables.Push EQ 2) {
variables.byLat = variables.byLat-Sin(-1)/(180 * PI());
variables.ByLon = variables.ByLon+Cos(0)/(180 * PI() / variables.ReachC);
}
}
QuerySetCell(getBrowseQueryResults, "LATITUDE", variables.byLat, getBrowseQueryResults.currentRow);
QuerySetCell(getBrowseQueryResults, "LONGITUDE", variables.ByLon, getBrowseQueryResults.currentRow);
}
}
}
switch(variables.Pre) {
case 4:
variables.Pre = 6;
variables.Step = 5;
break;
case 3:
variables.Pre = 4;
break;
case 2:
variables.Pre = 3;
break;
case 1:
variables.Pre = 2;
break;
}
switch(variables.Step) {
case 4:
variables.Step = 6;
variables.Reach = 5;
variables.Push = 5;
break;
case 3:
variables.Step = 4;
break;
case 2:
variables.Step = 3;
break;
case 1:
variables.Step = 2;
break;
}
if(variables.Reach EQ 4 and variables.Push EQ 2) {
variables.Reach = 6;
variables.Push = 6;
variables.Pre = 0;
}
if(variables.Reach EQ 3 and variables.Push EQ 2) {
variables.Reach = 4;
variables.Push = 5;
}
if(variables.Reach EQ 2 and variables.Push EQ 2) {
variables.Reach = 3;
variables.Push = 5;
}
if(variables.Reach EQ 1 and variables.Push EQ 2) {
variables.Reach = 2;
variables.Push = 5;
}
if(variables.Push EQ 1) {
variables.Push = 2;
}
</cfscript>
</cfloop>
<cfreturn getBrowseQueryResults />
</cffunction>
<!--- --->
<cffunction name="doGetTagDetails" access="remote" returntype="struct">
<cfargument name="tagid" type="numeric" hint="Tag ID" displayname="The Tag ID">
<cfset var doGetTagDetailsReturn = StructNew()>
<cfset var ForCrewArray = "" />
<cfset var setqueryrowlat = "" />
<cfset var doGetTagDetailsQuery = "" />
<cfset var doGetCrewQuery = "" />
<cfif doCheckTagViewAuth(tagid:arguments.tagid,StreetsID:Request.StreetsUser.StreetsID) eq true>
<CFQUERY NAME="doGetTagDetailsQuery" DATASOURCE="streets">
SELECT
markers.id,
markers.latitude,
markers.longitude,
markers.iconid,
markers.markerdetails,
markers.streetsid,
markers.view,
icontypes.id as IconTypeID,
icontypes.IconImgPath,
icontypes.IconImgName,
group_concat(distinct CAST(`crewuserlist`.`crewid` as CHAR)) AS `FORCREW`
FROM markers
LEFT JOIN icontypes ON markers.iconid = icontypes.id
JOIN crewuserlist
WHERE markers.id = <cfqueryparam value="#arguments.tagid#" cfsqltype="cf_sql_bigint">
AND <cfqueryparam value="#Request.StreetsUser.StreetsID#" cfsqltype="cf_sql_bigint"> IN(crewuserlist.userid)
GROUP BY markers.id
</CFQUERY>
<cfset ForCrewArray = ListToArray(doGetTagDetailsQuery.FORCREW)>
<cfif ArrayLen(ForCrewArray) GT 0>
<CFQUERY NAME="doGetCrewQuery" DATASOURCE="streets">
SELECT
crews.id AS crewid,
crews.name
FROM crews
WHERE crews.id IN (<cfqueryparam value="#ArrayToList(ForCrewArray)#" cfsqltype="cf_sql_bigint" list="yes">)
</CFQUERY>
<cfset doGetTagDetailsReturn.doGetCrewQuery = doGetCrewQuery>
</cfif>
<cfset setqueryrowlat = QuerySetCell(doGetTagDetailsQuery, "FORCREW", '')>
<cfset doGetTagDetailsReturn.TagDetailsQuery = doGetTagDetailsQuery>
</cfif>
<cfreturn doGetTagDetailsReturn />
</cffunction>
<!--- 0=Hidden,1=MySelf(No One),2=Friends,3=Crews,4=Friends & Crews Only,5=Everyone(Public) --->
<cffunction name="doCheckTagViewAuth" access="public" returntype="boolean">
<cfargument name="tagid" required="yes" type="numeric" hint="Tag ID" displayname="The Marker ID to Check">
<cfargument name="StreetsID" required="yes" type="numeric" hint="StreetsID" displayname="The User ID">
<cfset var doCheckTagViewAuthReturn = StructNew()>
<cfset var doCheckTagViewAuthReturnQuery = "" />
<cfset var CheckUserForIsInSameCrew = "" />
<cfset var CheckUserInBuddyList = "" />
<cfset doCheckTagViewAuthReturn.auth = false>
<CFQUERY NAME="doCheckTagViewAuthReturnQuery" DATASOURCE="streets">
SELECT id,view,streetsid FROM markers where ID = <cfqueryparam value="#arguments.tagid#" cfsqltype="cf_sql_bigint">
</CFQUERY>
<cfif doCheckTagViewAuthReturnQuery.RecordCount>
<CFQUERY NAME="CheckUserForIsInSameCrew" DATASOURCE="streets">
SELECT crewid,userid FROM crewuserlist
WHERE userid = <cfqueryparam value="#arguments.StreetsID#" cfsqltype="cf_sql_bigint">
AND crewid IN (SELECT crewid FROM crewuserlist WHERE userid = <cfqueryparam value="#doCheckTagViewAuthReturnQuery.StreetsID#" cfsqltype="cf_sql_bigint">);
</CFQUERY>
<CFQUERY NAME="CheckUserInBuddyList" DATASOURCE="streets">
SELECT userid,friendid FROM buddylist
WHERE userid = <cfqueryparam value="#arguments.StreetsID#" cfsqltype="cf_sql_bigint">
AND friendid = <cfqueryparam value="#doCheckTagViewAuthReturnQuery.StreetsID#" cfsqltype="cf_sql_bigint">
</CFQUERY>
<cfswitch expression="#doCheckTagViewAuthReturnQuery.View#">
<cfcase value="0">
<cfset doCheckTagViewAuthReturn.auth = false>
</cfcase>
<cfcase value="1">
<cfif doCheckTagViewAuthReturnQuery.StreetsID eq doCheckTagViewAuthReturn.StreetsID>
<cfset doCheckTagViewAuthReturn.auth = true>
</cfif>
</cfcase>
<cfcase value="2">
<cfif CheckUserInBuddyList.RecordCount>
<cfset doCheckTagViewAuthReturn.auth = true>
</cfif>
</cfcase>
<cfcase value="3">
<cfif CheckUserForIsInSameCrew.RecordCount>
<cfset doCheckTagViewAuthReturn.auth = true>
</cfif>
</cfcase>
<cfcase value="4">
<cfif CheckUserForIsInSameCrew.RecordCount or CheckUserInBuddyList.RecordCount>
<cfset doCheckTagViewAuthReturn.auth = true>
</cfif>
</cfcase>
<cfcase value="5">
<cfset doCheckTagViewAuthReturn.auth = true>
</cfcase>
<cfcase value="6">
<cfset doCheckTagViewAuthReturn.auth = false>
</cfcase>
<cfdefaultcase>
<cfset doCheckTagViewAuthReturn.auth = false>
</cfdefaultcase>
</cfswitch>
</cfif>
<cfreturn doCheckTagViewAuthReturn.auth />
</cffunction>
<cffunction name="getBubbleNav" access="remote" returntype="string">
<cfset var getBubbleNavReturn = '' />
<cfsavecontent variable="getBubbleNavReturn"><div align="left" class="bubblenav" id="bubbleNavDiv"><img src="/images/bubble_shareit.gif" alt="Share it" border="0" OnClick="shareTag('JSTAGID','JSTAGADDRESS');" /><a href="/streets/locationcomments.cfm?tag=JSTAGID"><img src="/images/bubble_comments.gif" alt="Comments" border="0" /></a><a href="postbulletin.cfm?Tag=JSTAGID"><img src="/images/bubble_bulliten.gif" alt="Post Bulliten" border="0" /></a><a href="/streets/locationalbums.cfm?tag=JSTAGID"><img src="/images/bubble_pictures.gif" alt="Pictures" border="0" /></a></div><div class="bubblecontents" id="bubbleContentsDiv" style="position:relative;">JSTAGDETAILS</div><div id="bubblePostedBy" class="tah11" style="position:absolute; right:-5px; bottom:-10px;"><a href="/streets/viewprofile.cfm?user=JSPOSTEDBYSTREETSID">JSPOSTEDBYNAME</a></div></cfsavecontent>
<cfreturn getBubbleNavReturn />
</cffunction>
</cfcomponent>