<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script><!-- [et_pb_line_break_holder] --><script type="application/javascript"><!-- [et_pb_line_break_holder] -->//set var for latest jQuery Divi uses 1.12.4 <!-- [et_pb_line_break_holder] -->var $j321 = jQuery.noConflict(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->console.log($j321.fn.jquery);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->/**<!-- [et_pb_line_break_holder] --> * @author Daniel Shope<!-- [et_pb_line_break_holder] --> * @company Purple Deck Media, Inc.<!-- [et_pb_line_break_holder] --> * @date 6/21/2017.<!-- [et_pb_line_break_holder] --> *<!-- [et_pb_line_break_holder] --> * Created to feed homepage and surf report widgets for<!-- [et_pb_line_break_holder] --> * Ocean Surf Shop site, June 2017.<!-- [et_pb_line_break_holder] --> *<!-- [et_pb_line_break_holder] --> * Does not perform any error handling for substitute API source. Does allow<!-- [et_pb_line_break_holder] --> * loading via cached object using the load() method.<!-- [et_pb_line_break_holder] --> */<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function SurfWidget(url, tides, swell, winds, weather, water, forecast, load_callback) {<!-- [et_pb_line_break_holder] --> this.url = url;<!-- [et_pb_line_break_holder] --> this.data = {};<!-- [et_pb_line_break_holder] --> this.load_callback = load_callback;<!-- [et_pb_line_break_holder] --> this.blocks = {<!-- [et_pb_line_break_holder] --> tides: tides,<!-- [et_pb_line_break_holder] --> swell: swell,<!-- [et_pb_line_break_holder] --> winds: winds,<!-- [et_pb_line_break_holder] --> weather: weather,<!-- [et_pb_line_break_holder] --> water: water,<!-- [et_pb_line_break_holder] --> forecast: forecast<!-- [et_pb_line_break_holder] --> };<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->SurfWidget.prototype = {<!-- [et_pb_line_break_holder] --> constructor: SurfWidget,<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> update: function () {<!-- [et_pb_line_break_holder] --> $j321.ajax({<!-- [et_pb_line_break_holder] --> url: this.url,<!-- [et_pb_line_break_holder] --> dataType: 'json',<!-- [et_pb_line_break_holder] --> type: 'GET',<!-- [et_pb_line_break_holder] --> success: $j321.proxy(function (data) {<!-- [et_pb_line_break_holder] --> if (data) {<!-- [et_pb_line_break_holder] --> this.data = data;<!-- [et_pb_line_break_holder] --> this.display();<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> if (typeof(this.load_callback) == "function") {<!-- [et_pb_line_break_holder] --> this.load_callback(data);<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --> }, this)<!-- [et_pb_line_break_holder] --> });<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> load: function(data) {<!-- [et_pb_line_break_holder] --> this.data = data;<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> display: function () {<!-- [et_pb_line_break_holder] --> this.blocks.tides.show().html(<!-- [et_pb_line_break_holder] --> "LO " + this.data.tide.low.time + "<br>" +<!-- [et_pb_line_break_holder] --> "HI " + this.data.tide.high.time + "<br>" +<!-- [et_pb_line_break_holder] --> "<small>Now " + this.data.tide.now.height.value + " " + this.data.tide.now.height.units + " " +<!-- [et_pb_line_break_holder] --> ((this.data.tide.now.height.value > 0) ? "above" : "below") + " average</small>"<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> this.blocks.winds.show().html(<!-- [et_pb_line_break_holder] --> "<span class=\"large\">" + this.deg2cardinal(this.data.wind.direction.value) + "</span><br>" +<!-- [et_pb_line_break_holder] --> "@ " + this.mps2knots(this.data.wind.speed.value) + "-" +<!-- [et_pb_line_break_holder] --> this.mps2knots(this.data.wind.gust.value) + " KNOTS"<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> //this.blocks.water.show().html(<!-- [et_pb_line_break_holder] --> // "<span class=\"large\">" + // // //this.degC2F(this.data.water.temperature.value) + "° F</span>"<!-- [et_pb_line_break_holder] --> // );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> this.blocks.swell.show().html(<!-- [et_pb_line_break_holder] --> "<span class=\"large\">" + this.data.swell.direction + "</span><br>" +<!-- [et_pb_line_break_holder] --> this.m2ft(this.data.swell.height.value) + " FT @ " +<!-- [et_pb_line_break_holder] --> this.data.swell.period.value + " SEC"<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> var weather_lut_keys = [<!-- [et_pb_line_break_holder] --> 'wi wi-day-sunny', 'wi wi-night-clear', 'wi wi-showers', 'wi wi-snow', 'wi wi-rain-mix',<!-- [et_pb_line_break_holder] --> 'wi wi-cloudy-gusts', 'wi wi-fog', 'wi wi-cloudy', 'wi wi-day-cloudy', 'wi wi-night-cloudy',<!-- [et_pb_line_break_holder] --> 'wi wi-hail', 'wi wi-thunderstorm', 'wi wi-tornado'<!-- [et_pb_line_break_holder] --> ];<!-- [et_pb_line_break_holder] --> var weather_lut_vals = [<!-- [et_pb_line_break_holder] --> 'sunny', 'sunny', 'rainy', 'snow', 'sleet', 'windy', 'foggy', 'cloudy', 'partly cloudy',<!-- [et_pb_line_break_holder] --> 'partly cloudy', 'hail', 'thunderstorm', 'tornado'<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> ];<!-- [et_pb_line_break_holder] --> var weather = weather_lut_vals[$j321.inArray(this.data.weather.icon, weather_lut_keys)];<!-- [et_pb_line_break_holder] --> var temp = (this.data.air.temperature.value == 'MM') ? this.data.weather.treal : this.degC2F(this.data.air.temperature.value);<!-- [et_pb_line_break_holder] --> this.blocks.weather.show().html(<!-- [et_pb_line_break_holder] --> "<span class=\"large\">" + temp + "° F " + "</span><br>" +<!-- [et_pb_line_break_holder] --> weather.toUpperCase() + "<br>" +<!-- [et_pb_line_break_holder] --> "<small>LO " + this.data.weather.tmin + "° / HI " + this.data.weather.tmax + "°</small>"<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> this.blocks.forecast.show().html(<!-- [et_pb_line_break_holder] --> "RISE " + this.data.sunrise + "<br>" +<!-- [et_pb_line_break_holder] --> "SET " + this.data.sunset<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> m2ft: function (val) { //convert m to ft<!-- [et_pb_line_break_holder] --> return Math.round(10 * val * 3.28084) / 10; //up to 1 decimal place<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> degC2F: function (val) { //convert C to F<!-- [et_pb_line_break_holder] --> return Math.round(val * 9 / 5 + 32);<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> mps2knots: function (val) {//convert m/s to knots<!-- [et_pb_line_break_holder] --> return Math.round(val * 1.94384);<!-- [et_pb_line_break_holder] --> },<!-- [et_pb_line_break_holder] --> deg2cardinal: function (deg) {<!-- [et_pb_line_break_holder] --> if (deg > 11.25 && deg < 33.75) {<!-- [et_pb_line_break_holder] --> return "NNE";<!-- [et_pb_line_break_holder] --> } else if (deg > 33.75 && deg < 56.25) {<!-- [et_pb_line_break_holder] --> return "ENE";<!-- [et_pb_line_break_holder] --> } else if (deg > 56.25 && deg < 78.75) {<!-- [et_pb_line_break_holder] --> return "E";<!-- [et_pb_line_break_holder] --> } else if (deg > 78.75 && deg < 101.25) {<!-- [et_pb_line_break_holder] --> return "ESE";<!-- [et_pb_line_break_holder] --> } else if (deg > 101.25 && deg < 123.75) {<!-- [et_pb_line_break_holder] --> return "ESE";<!-- [et_pb_line_break_holder] --> } else if (deg > 123.75 && deg < 146.25) {<!-- [et_pb_line_break_holder] --> return "SE";<!-- [et_pb_line_break_holder] --> } else if (deg > 146.25 && deg < 168.75) {<!-- [et_pb_line_break_holder] --> return "SSE";<!-- [et_pb_line_break_holder] --> } else if (deg > 168.75 && deg < 191.25) {<!-- [et_pb_line_break_holder] --> return "S";<!-- [et_pb_line_break_holder] --> } else if (deg > 191.25 && deg < 213.75) {<!-- [et_pb_line_break_holder] --> return "SSW";<!-- [et_pb_line_break_holder] --> } else if (deg > 213.75 && deg < 236.25) {<!-- [et_pb_line_break_holder] --> return "SW";<!-- [et_pb_line_break_holder] --> } else if (deg > 236.25 && deg < 258.75) {<!-- [et_pb_line_break_holder] --> return "WSW";<!-- [et_pb_line_break_holder] --> } else if (deg > 258.75 && deg < 281.25) {<!-- [et_pb_line_break_holder] --> return "W";<!-- [et_pb_line_break_holder] --> } else if (deg > 281.25 && deg < 303.75) {<!-- [et_pb_line_break_holder] --> return "WNW";<!-- [et_pb_line_break_holder] --> } else if (deg > 303.75 && deg < 326.25) {<!-- [et_pb_line_break_holder] --> return "NW";<!-- [et_pb_line_break_holder] --> } else if (deg > 326.25 && deg < 348.75) {<!-- [et_pb_line_break_holder] --> return "NNW";<!-- [et_pb_line_break_holder] --> } else {<!-- [et_pb_line_break_holder] --> return "N";<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] -->};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->var surf_widget;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> $j321(function() {<!-- [et_pb_line_break_holder] --> surf_widget = new SurfWidget(<!-- [et_pb_line_break_holder] --> 'https://dev.purpledeck.com/api/v1/test/surf',<!-- [et_pb_line_break_holder] --> $j321("#tide-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] -->$j321("#swell-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] --> $j321("#wind-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] -->$j321("#weather-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] --> $j321("#water-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] --> $j321("#forecast-info .et_pb_blurb_content .et_pb_blurb_container p.surf-widget"),<!-- [et_pb_line_break_holder] --> log<!-- [et_pb_line_break_holder] --> );<!-- [et_pb_line_break_holder] --> surf_widget.update();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --> function log(data) {<!-- [et_pb_line_break_holder] --> console.log(data);<!-- [et_pb_line_break_holder] --> }<!-- [et_pb_line_break_holder] --> });<!-- [et_pb_line_break_holder] --></script>