Water Sports

Daytona Beach Parasailing Outfitters

It’s a bird. It’s a plane. No, it’s you sailing free over Florida’s East Coast beaches. Parasailing is an exhilarating ride that can offer you a breathtaking view of the Daytona Beach area unlike any other. Local parasailing outfitters will take you for the trip of a lifetime where you will soar 600 – 1,200 feet above the beautiful Atlantic Ocean. This high-flying adventure can be enjoyed by the entire family or solo with the option of single-, double- and triple-seating.

<p>Your next family photo can be captured while parasailing over Daytona Beach. Check out our parasailing outfitters to get you ready to set sail for an unforgettable flight and vacation experience in Daytona Beach. </p>           0 && dtnargs.limit > 0 && dtn !== undefined);         var limit = 12;         var xhr;        var defaultHooks = [];      var randomize = widget.custom_enable_random == "true" ? true : false;       if (widget.detail_type !== undefined) {             defaultHooks.push({ name : "afterFind_custom_detail_type", args : { detail_type : widget.detail_type } });      }               if (widget.dtnlimit) {          // if a limit is specified in the widget, override that passed in config            dtnargs.limit = Number(widget.dtnlimit);        }               if (hasDtn) {           // we want the smaller of the limit and dtnargs.limit           dtnargs.limit = Math.min(dtnargs.limit, limit);         }               var allFilterTagItems = subcats.map(function(val) { return { site : site.site, subcatid : Number(val.value) } });               // the base filter is the minimum filter applied to all queries. This is *not* the same as a "default" query, or the initial query.         // this is the base. Any filter components that can be done in the UI are added to this object      var baseFilter = {          $and : [                {                   filter_tags : {                         $in : crmLib.getListingFilterTags({ items : allFilterTagItems })                    }               }           ]       }               if (regionsChosen) {            baseFilter.regionid = {                 $in : regions.map(function(val) { return Number(val.value) })           }       }       var masterFlow = new asyncLib.Flow();       masterFlow.series({             init: function(cb) {                var vue = layoutjs.getVue({                     rootNode : $("#layoutjs_f8229345-5ac2-4415-a73e-f5309ab3b9ed"),                     type : "listings",                  view : "grid",                  limit : limit,                  sort : "qualityScore",                  // if there is a defaultImageUrl defined in client config, use it. Else it will utilize the default declared in custom_layoutjs.js                  fallbackImageUrl : site.siteConfig.custom[site.site] && site.siteConfig.custom[site.site].defaultImageUrl,                  hasTripbuilder : site.siteConfig.plugins.tripbuilder.active,                    showFilter : true,                  baseFilter : baseFilter,                    filters : [                         {                           name : "keyword",                           label : "Keyword",                          type : "keyword",                           toFilter : function(value, filter, context) {                               filter.solrOptions = {                                  keyword : value                                 }                                                               return filter;                          }                       },                      {                           name : "subcats",                           label : "Categories",                           // since we implicitly filter on available subcats, we hide the checkboxes if there is one or less options                          show : subcats.length > 1,                          type : "checkbox",                          typeExtra : {                               options : subcats,                              countArgs : {                                   watchFilters : ["amenities", "regions"],                                    unsupportedFilters : ["keyword"],                                   field : "categories.subcatid",                                  unwind : "categories",                                  model : "plugins_listings_listings",                                    sort : true                                 }                           },                          toFilter : function(value, filter, context) {                               filter.$and.push({                                  filter_tags : {                                         $in : crmLib.getListingFilterTags({ items : this.custom_selectedSubcatItems })                                  }                               });                                                                 return filter;                          }                       },                      {                           name : "regions",                           label : "Locations",                            // we implicitly filter on regions if they have been selected in the widget, so no reason to display a region option with 1 choice                          // if no regions were selected, then a region option with 1 choice is valid and therefore we pass the whole array                           show : regionsChosen ? regions.length > 1 : regions.length > 0,                             type : "checkbox",                          typeExtra : {                               options : regions,                              countArgs : {                                   watchFilters : ["subcats", "amenities"],                                    unsupportedFilters : ["keyword"],                                   field : "regionid",                                     model : "plugins_listings_listings",                                    sort : true                                 }                           },                          toFilter : function(value, filter, context) {                               filter.$and.push({                                  regionid : { $in : value.map(function(val) { return Number(val) }) }                                });                                                                 return filter;                          }                       },                      {                           name : "amenities",                             label : "Amenities",                            // we do not implicitly filter on amenities so if there is only one available option we still want to show the checkbox                             show : amenities.length > 0,                            type : "checkbox",                          typeExtra : {                               options : amenities,                                countArgs : {                                   watchFilters : ["subcats", "regions", "amenities"],                                     unsupportedFilters : ["keyword"],                                   field : "amenities_array.uniquename",                                   unwind : "amenities_array",                                     model : "plugins_listings_listings",                                    sort : true                                 }                           },                          toFilter : function(value, filter) {                                value.forEach(function(val) {                                   filter["amenities." + val + ".value_raw"] = true;                               });                                                                 return filter;                          }                       }                   ],                  sortOptions : [                         { value : "qualityScore", label : "Alphabetical" },                         { value : "distance", label : "Near Me" }                   ],                  maxRangeMiles : 100,                    latitude : 29.2,                    longitude : -81.0333,                   data : {                        custom_catid : (widget.listingcats !== undefined) ? Number(widget.listingcats) : undefined,                         custom_dtnids : []                  },                  // computed allows the passing of computed and method properties, in cases where they may need to be unique to the template                     computed : {                        custom_selectedSubcatItems : function() {                           return this.filter_subcats_numberArray.map(function(val) { return { site : site.site, subcatid : val } });                      },                      custom_dtnFilterTagItems : function() {                             // if we have not chosen subcats in the widget, then we need to load via the category id                            // if we have chosen subcats then we utilize whatever the state of the                              if (this.custom_selectedSubcatItems.length > 0) {                               // if we have items selected in the UI, use them                                return this.custom_selectedSubcatItems;                             } else if (subcatsChosen) {                                 // if we have items chosen in the widget, use those                                 return allFilterTagItems;                           } else {                                // otherwise fall back to the chosen catid                              return [{ site : site.site, catid : this.custom_catid }];                           }                       }                   },                  methods : {},                   watch : {},                     query : function(cb) {                      var self = this;                                                var filter = self.getFilter("query");                       var options = {                             limit : self.args.limit,                            skip : self.skip,                           count : true,                           castDocs : false,                           fields : {                              recid : 1,                              title : 1,                              address1 : 1,                               city: 1,                                state: 1,                               zip: 1,                                 url : 1,                                isDTN : 1,                              latitude : 1,                               longitude : 1,                              primary_category : 1,                               primary_image_url : 1,                              qualityScore : 1,                               "dtn.rank" : 1,                                 "yelp.rating" : 1,                              "yelp.url" : 1,                                 "yelp.review_count" : 1,                                "listingudfs_object" : 1,                               "yelp.price" : 1,                               "listingudfs_object.229.value_raw" : 1 /* random number field */                            },                          hooks : defaultHooks                        };                          if (self.sort === "qualityScore") {                             if(randomize) {                                 options.sort = { 'listingudfs_object.229.value_raw' : 1, qualityScore : -1, sortcompany : 1 };                          } else {                                options.sort = { qualityScore : -1, sortcompany : 1 };                          }                       } else if (self.sort === "distance") {                          filter.solrOptions = filter.solrOptions || {};                          filter.solrOptions.sort = "distance";                           filter.solrOptions.point = [self.georesult.latitude, self.georesult.longitude].join(",");                           filter.solrOptions.radius = self.args.maxRangeMiles.toString();                         }                                               if (options.skip === 0) {                           // whenever the skip is 0, we reset the custom_dtnids back to scratch                           self.custom_dtnids = [];                        }                       var flow = new asyncLib.Flow();                         flow.series({                           dtn : function(cb) {                                if (hasDtn === false || options.skip > 0 || self.sort === "distance" || self.custom_catid === undefined) {                                  return cb(null, []);                                }                                                               var dtnFilter = self.getFilter("query");                                                                dtnFilter.$and.push({                                   filter_tags : {                                         $in : crmLib.getListingFilterTags({ items : self.custom_dtnFilterTagItems, dtn : true })                                    }                               });                                 // using 0000 and 2359 for caching purposes, otherwise we could just use Date().toISOString()                               var today0000 = clientMoment().startOf("day"); // send date as 00:00:00 in the client timezone in UTC                               var today2359 = clientMoment().endOf("day"); // send date as 23:59:59 in the client timezone in UTC                                 dtnFilter.$and.push(                                    {                                       $or : [                                             { "dtn.sdate" : { $lte : { $date : today0000.toISOString() } } },                                           { "dtn.sdate" : { $exists : false } }                                       ]                                   },                                  {                                       $or : [                                             { "dtn.edate" : { $gte : { $date : today2359.toISOString() } } },                                           { "dtn.edate" : { $exists : false } }                                       ]                                   }                               );                                  var dtnOptions = $.extend({}, options, {                                    // we allow DTN to oversell the first page by a factor of 2                                     // we will pull from this set a max of the limit                                    limit : self.limit * 2,                                     count : false,                                  hooks : defaultHooks.concat("afterFind_dtn")                                });                                 if (xhr) { xhr.abort(); }                               xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : dtnFilter, options : dtnOptions }), token : core.simpleToken });                                xhr.done(function(res) {                                    // randomize the result set, then trim it down to our desired limit                                     res.docs = arrayLib.randomize(res.docs);                                    res.docs = res.docs.splice(0, dtnargs.limit);                                                                       res.docs.forEach(function(val) {                                        self.custom_dtnids.push(val.recid);                                         val.dtnAuid = dtnargs.auid;                                         val.isDTN = true;                                   });                                                                     return cb(null, res.docs);                              }).fail(function(err, type, message) {                                  if (type === "abort") { return flow.halt({ total : 0, docs : [] }); } // another request has aborted this one, so halt this flow                                    return cb(new Error(message));                              });                             },                          data : function(cb) {                               if (flow.data.dtn.length > 0) {                                     // has DTN listings, need to adjust page 1 limit and store dtnids for exclusion from main query on all pages                                    options.limit -= self.custom_dtnids.length;                                 } else {                                    options.skip = (options.skip - self.custom_dtnids.length);                              }                               if (self.custom_dtnids.length > 0) {                                    filter.recid = { $nin : self.custom_dtnids }                                }                               if (xhr) { xhr.abort(); }                                                               if (self.custom_dtnids.length === self.limit) {                                     options.limit = 1;                              }                                                               xhr = $.get("/includes/rest_v2/plugins_listings_listings/find/", { json : JSON.stringify({ filter : filter, options : options }), token : core.simpleToken });                                  xhr.done(function(res) {                                    var returnData = {                                      total : res.docs.count + self.custom_dtnids.length,                                         docs : flow.data.dtn.concat(res.docs.docs).slice(0, self.limit)                                     };                                                                      returnData.docs = returnData.docs.map(function(val) {                                       return {                                            recid : val.recid,                                          title : val.title,                                          city: val.city,                                             crmc : val.primary_category.catname,                                            crmsc : val.primary_category.subcatname,                                            state: val.state,                                           zip: val.zip,                                           listingudfs_object : val.listingudfs_object !== undefined ? val.listingudfs_object : undefined,                                             image_url : val.primary_image_url,                                          url : val.url,                                          dtn : val.isDTN ? {                                                 auid : dtnargs.auid,                                                rank : val.dtn.rank                                             } : undefined,                                          yelp : val.yelp,                                            locations: [{                                               title : val.address1                                            }], // sets listing location                                            latitude : val.latitude,                                            longitude : val.longitude,                                          qualityScore : val.qualityScore,                                            button : {                                              title : "Read More",                                                url : val.url                                           } // call to action button                                      }                                   });                                                                         // place logic in here that needs to happen after render of items                                   self.$nextTick(function() {                                         if (hasDtn) {                                           gamClient.renderAds();                                      }                                   });                                                                         return cb(null, returnData);                                }).fail(function(err, type, message) {                                  if (type === "abort") { return flow.halt({ total : 0, docs : [] }); } // another request has aborted this one, so halt this flow                                    return cb(new Error(message));                              });                             }                       }, flow.cbLast(cb));                    }               });                 /* register available UI events */              var watcher = new UIWatcher(vue, $, document);              var uid = clientLib.uuid().toString();              var widgetEvents = [                    "change-page", "view-change", "value-change", "sort-change", "toggle-show-more",                        "scroll-into-view", "item-click", "title-click", "map-pin-click", "tripbuilder"                 ];              for (var i=0; i                 <p>         Find a Place to Stay    </p>            <p>             <i></i>             Sort ByHotelsHotel DealsVacation RentalsCondo RentalsCampgrounds & RV ParksMotelsBed & BreakfastPet FriendlySpecial Event Campground</p>                        <img src="https://assets.simpleviewinc.com/simpleview/image/upload/c_fill,g_xy_center,h_400,q_50,w_377,x_1260,y_559/v1/clients/daytonabeach/Beach_Aeriel_cx_af61e1fd-615c-4c57-8011-9689d196ae6b.jpg" />

Source

WaterSports
The water has always been a favorite place for outdoor recreation. Paddling a canoe along a rambling creek, jumping the wake behind a fast boat, or snorkeling among coral reefs, are just a few of the many ways you can have fun in the water. The one thing that these and every other form of water recreation have in common is that they can all be made more enjoyable with our water sports equipment. We have all types of inflatables from balls to boats, every kind of towable equipment from tubes to water skis, canoes and kayaks and the carriers and racks to get them to the water, snorkeling gear, pools, waterproof action cameras to record your aquatic adventures.
http://watersports.floridaboating.com