var GetWeatherHazards3 = function (WeatherParameters) { var ZoneId = WeatherParameters.ZoneId; var HazardUrls = []; var HazardCounter = 0; WeatherParameters.WeatherHazardConditions = { ZoneId: WeatherParameters.ZoneId, Hazards: [], }; var Url = 'https://alerts.weather.gov/cap/wwaatmget.php?x=' + ZoneId + '&y=0'; // Load the xml file using ajax $.ajaxCORS({ type: 'GET', url: Url, dataType: 'text', crossDomain: true, cache: false, success: function (text) { // IE doesn't support XML tags with colons. text = text.replaceAll('= (70 * RatioX) && e.offsetX <= (565 * RatioX)) { //if (e.offsetY >= (105 * RatioY) && e.offsetY <= (350 * RatioY)) if (e.offsetY >= (100 * RatioY) && e.offsetY <= (385 * RatioY)) { // Show hand cursor. canvasProgress.css('cursor', 'pointer'); } } }; var PopulateHazardConditions = function (WeatherParameters) { if (WeatherParameters === null || (_DontLoadGifs && WeatherParameters.Progress.Hazards !== LoadStatuses.Loaded)) { return; } var WeatherHazardConditions = WeatherParameters.WeatherHazardConditions; var ZoneId = WeatherHazardConditions.ZoneId; var Text; var Line; var SkipLine; var DontLoadGifs = _DontLoadGifs; divHazards.empty(); $(WeatherHazardConditions.Hazards).each(function () { //Text = this.replaceAll("\n", "
"); //divHazards.html(divHazards.html() + "

" + Text); Text = this.toString(); SkipLine = false; Text = Text.replaceAll('\n', ' '); //Text = Text.replaceAll("*** ", ""); //$(Text.split("\n")).each(function () $(Text.split(' ')).each(function () { Line = this.toString(); Line = Line.toUpperCase(); if (Line.startsWith('&&')) { return false; } else if (Line.startsWith('$$')) { return false; } if (SkipLine) { if (Line === '') { SkipLine = false; return true; } return true; } if (Line.startsWith(ZoneId)) { SkipLine = true; return true; } else if (Line.indexOf('>') !== -1) { SkipLine = true; return true; } else if (Line.indexOf('LAT...LON ') !== -1) { SkipLine = true; return true; } //divHazards.html(divHazards.html() + "
" + Line); if (Line.indexOf('.') === 0 || Line.indexOf('*') === 0) { divHazards.html(divHazards.html() + '

'); if (Line.indexOf('.') === 0 && Line.indexOf('...') !== 0) { Line = Line.substr(1); } } divHazards.html(divHazards.html() + Line + ' '); }); divHazards.html(divHazards.html() + '

'); }); var DrawHazards = function () { // Draw canvas var canvas = canvasHazards[0]; var context = canvas.getContext('2d'); var BackGroundImage = new Image(); BackGroundImage.onload = function () { context.drawImage(BackGroundImage, 0, 0); if (DontLoadGifs) { UpdateHazards(); } if (WeatherHazardConditions.Hazards.length > 0) { WeatherParameters.Progress.Hazards = LoadStatuses.Loaded; } else { WeatherParameters.Progress.Hazards = LoadStatuses.NoData; } UpdateWeatherCanvas(WeatherParameters, canvasHazards); }; BackGroundImage.src = 'images/BackGround7.png'; }; var HazardsText = divHazards.html(); HazardsText = HazardsText.replaceAll('
', '\n'); HazardsText = HazardsText.replaceAll('
', '\n'); HazardsText = HazardsText.replaceAll('
', '\n'); HazardsText = HazardsText.replaceAll('

', '\n'); WeatherHazardConditions.HazardsText = HazardsText; WeatherHazardConditions.HazardsTextC = ConvertConditionsToMetric(HazardsText); if (_Units === Units.Metric) { HazardsText = WeatherHazardConditions.HazardsTextC; } var HazardsWrapped = HazardsText.wordWrap(32); var cnvHazardsScroll; var ShowHazardsScroll = function () { var cnvHazardsScrollId; var context; cnvHazardsScrollId = 'cnvHazardsScroll'; var HazardsWrappedLines = HazardsWrapped.split('\n'); var MaxHazardsWrappedLines = 365; if (_OperatingSystem === OperatingSystems.Andriod) { MaxHazardsWrappedLines = 92; } if (HazardsWrappedLines.length > MaxHazardsWrappedLines) { HazardsWrappedLines = HazardsWrappedLines.splice(0, MaxHazardsWrappedLines - 1); } var height = 0 + (HazardsWrappedLines.length * 45); if (DontLoadGifs === false) { // Clear the current image. divHazardsScroll.empty(); divHazardsScroll.html(''); cnvHazardsScroll = $('#' + cnvHazardsScrollId); cnvHazardsScroll.attr('width', '640'); // For Chrome. cnvHazardsScroll.attr('height', height); // For Chrome. } cnvHazardsScroll = $('#' + cnvHazardsScrollId); context = cnvHazardsScroll[0].getContext('2d'); DrawBox(context, 'rgb(112, 35, 35)', 0, 0, 640, height); //var y = 0; var y = 45; $(HazardsWrappedLines).each(function () { var HazardLine = this.toString(); DrawText(context, 'Star4000', '24pt', '#FFFFFF', 80, y, HazardLine, 1); y += 45; }); DrawHazards(); }; ShowHazardsScroll(); }; var UpdateHazards = function (Offset) { var canvas = canvasHazards[0]; var context = canvas.getContext('2d'); var cnvHazardsScroll = $('#cnvHazardsScroll'); switch (Offset) { case undefined: break; case 0: _UpdateHazardsY = 0; break; case Infinity: _UpdateHazardsY = cnvHazardsScroll.height(); break; default: _UpdateHazardsY += (385 * Offset); if (_UpdateHazardsY > cnvHazardsScroll.height()) { _UpdateHazardsY = cnvHazardsScroll.height(); } else if (_UpdateHazardsY < 0) { _UpdateHazardsY = 0; } break; } DrawBox(context, 'rgb(112, 35,35)', 0, 0, 640, 385); context.drawImage(cnvHazardsScroll[0], 0, _UpdateHazardsY, 640, 385, 0, 0, 640, 385); };