var HOST_CORE = "http://cc.w-weather.com"; var STATIC_HOST_MAPIMAGES = "http://map-icons.w-weather.com"; if (typeof String.prototype.startsWith != 'function') { String.prototype.startsWith = function (str){ return this.indexOf(str) == 0; }; }; var bPop = {opacity: 0.6, speed: 20, zIndex: 100}; pageInit = function() {}; var ajx = { request: function(params) { jQuery.ajax({ data: params.data, error: function(data, status, request) { if (params.error!=undefined) { params.error(data, status, request); } else { ajx.defaultError(data, status, request); } }, success: function(data, status, request) { if (data.length>=4 && data.substring(0,4)=='err:') { ajx.displayErrorMessage(data.substring(4)); } else { params.success(data, status, request); } }, type: 'POST', url: params.url }); }, defaultError: function(data, status, request) { }, displayErrorMessage: function(msg) { } }; var divClick = function(e) { var a = $(this).find('a'); if (e.ctrlKey) { window.open(a.attr('href'), a.attr('href')+Math.random()); } else { if (a.attr('target')!=undefined) { window.open(a.attr('href'), a.attr('href')+Math.random()); } else { window.location=a.attr('href'); } } e.preventDefault(); }; var divClickOut = function(e) { var href = $(this).find('a').attr('href'); if (!href.startsWith('javascript')) { window.open(href, href); e.preventDefault(); } }; function preload(arrayOfImages) { $(arrayOfImages).each(function(){ $('')[0].src = this; }); } $(document).ready(function() { /* $('.leadia').click(function() { $('#leadia').bPopup(); ajx.request({ url: '/ajax/leadia/' }); }); */ $('.menuItem').hover( function () { $(this).addClass('selected'); }, function () { $(this).removeClass('selected'); } ); $('.menuItem').click(divClick); $('#sortResortName').click(sort.sortResort); $('#sortResortTemp').click(sort.sortResort); $('#sortCountryName').click(sort.sortCountry); $('#sortCountryPop').click(sort.sortCountry); $('#resortsList tr').hover( function () { $(this).addClass('selected'); }, function () { $(this).removeClass('selected'); } ); $('#resortsList tr').click(divClick); $('#countryList tr').hover( function () { $(this).addClass('selected'); }, function () { $(this).removeClass('selected'); } ); $('#countryList tr').click(divClick); $('#offersMenu tr').hover( function () { $(this).addClass('selected'); $(this).find('div').addClass('selected'); }, function () { $(this).removeClass('selected'); $(this).find('div').removeClass('selected'); } ); $('#offersMenu tr').click(divClickOut); $('.blockLnk').hover( function () { $(this).addClass('bck-over'); $(this).find('div').eq(0).addClass('left-over'); $(this).find('div').eq(1).addClass('right-over'); }, function () { $(this).removeClass('bck-over'); $(this).find('div').eq(0).removeClass('left-over'); $(this).find('div').eq(1).removeClass('right-over'); } ).click(divClick); $('.mesureOption').hover( function () { $(this).addClass('mesureOptionOver'); }, function () { $(this).removeClass('mesureOptionOver'); } ); $('#daysPanel .day14,.day10,.day7').hover( function () { $(this).addClass('sel'); }, function () { $(this).removeClass('sel'); } ).click( function() { window.location=$(this).find('a').attr('href'); } ); // $('#forecastBlock .pipka').click(divClick); $('#currentShort').click(divClick); $('#cWeatherLink').click(divClick); $('#mainMap').click(divClick); $('#weatherMapTabs div').click(tabs.click); $('#slider .slideRow td.a').click(function(el) { $(this).append($('#slide')); map.switchMapType(map.type,'m'+slider.getMonthId()); }); $('#slider .months td.a').click(function(el) { var index = $('#slider .months td.a').index(this); $('#slider .slideRow td.a').eq(index).append($('#slide')); map.switchMapType(map.type,'m'+slider.getMonthId()); }); $('.typeahead').typeahead({ name: 'countries', local: RESORTS, limit: 10 }); $('#reviewBtn').click(divClick); $('#pgn td').click(divClick); $('#reviewsFilter select').change(function() { window.location=$(this).val(); }); $('#addReviewBtn').click(function() { if ($('#selYear').val()>0 && $('#selMonth').val()>0 && $('#selCountries').val()>0 && $('#selResorts').val()>0 && $('#reviewTxt').val().length>0 && $('#userName').val().length>0) { $('#reviewForm').submit(); } else { $('#err').show(); } }); var i = 0; $('#monthSel td.month').each(function() { i++; $(this).click(function() { $('#monthSel td.month').each(function() {$(this).removeClass('sel');}); $(this).addClass('sel'); $("#monthDivs div.monthDiv").hide(); $('#'+$(this).attr('tab')).show(); }); }); $('#measureUS').click(cmn.switchToUs); $('#measureNonUS').click(cmn.switchToNonUs); pageInit(); }); var sort = new Object(); sort.resortSortType='nameAsc'; sort.sortResort = function() { var buttonId = $(this).attr('id'); var sortByName = true; var asc = true; if (buttonId=='sortResortTemp') sortByName=false; if (buttonId=='sortResortName') { if (sort.resortSortType=='nameAsc') { sort.resortSortType='nameDesc'; asc = false; } else { sort.resortSortType='nameAsc'; asc = true; } } else { if (sort.resortSortType=='tempDesc') { sort.resortSortType='tempAsc'; asc = true; } else { sort.resortSortType='tempDesc'; asc = false; } } $('#sortResortName').attr('class','sort-none'); $('#sortResortTemp').attr('class','sort-none'); if (sort.resortSortType=='tempAsc') { $('#sortResortTemp').attr('class','sort-up'); } else if (sort.resortSortType=='tempDesc') { $('#sortResortTemp').attr('class','sort-down'); } else if (sort.resortSortType=='nameAsc') { $('#sortResortName').attr('class','sort-up'); } else if (sort.resortSortType=='nameDesc') { $('#sortResortName').attr('class','sort-down'); } var mylist = $('#resortsList'); var listitems = mylist.find('tr').get(); listitems.sort(function(a, b) { var aVal = sortByName?$(a).children('td').eq(0).text():parseInt($(a).children('td').eq(1).attr('temp')); var bVal = sortByName?$(b).children('td').eq(0).text():parseInt($(b).children('td').eq(1).attr('temp')); return sortByName? asc?aVal.toUpperCase().localeCompare(bVal.toUpperCase()):bVal.toUpperCase().localeCompare(aVal.toUpperCase()): (asc?aVal>bVal?1:(bVal>aVal?-1:0):bVal>aVal?1:(aVal>bVal?-1:0)); }); $.each(listitems, function(idx, itm) { mylist.append(itm); }); }; sort.countrySortType='nameAsc'; sort.sortCountry = function() { var buttonId = $(this).attr('id'); var sortByName = true; var asc = true; if (buttonId=='sortCountryPop') sortByName = false; if (buttonId=='sortCountryName') { if (sort.countrySortType=='nameAsc') { sort.countrySortType='nameDesc'; asc = false; } else { sort.countrySortType='nameAsc'; asc = true; } } else { if (sort.countrySortType=='popDesc') { sort.countrySortType='popAsc'; asc = true; } else { sort.countrySortType='popDesc'; asc = false; } } $('#sortCountryName').attr('class','sort-none'); $('#sortCountryPop').attr('class','sort-none'); if (sort.countrySortType=='popAsc') { $('#sortCountryPop').attr('class','sort-up'); } else if (sort.countrySortType=='popDesc') { $('#sortCountryPop').attr('class','sort-down'); } else if (sort.countrySortType=='nameAsc') { $('#sortCountryName').attr('class','sort-up'); } else if (sort.countrySortType=='nameDesc') { $('#sortCountryName').attr('class','sort-down'); } var mylist = $('#countryList'); var listitems = mylist.find('tr').get(); listitems.sort(function(a, b) { var aVal = sortByName?$(a).children('td').eq(1).text():parseInt($(a).children('td').eq(1).attr('pop')); var bVal = sortByName?$(b).children('td').eq(1).text():parseInt($(b).children('td').eq(1).attr('pop')); return sortByName? (asc?aVal.toUpperCase().localeCompare(bVal.toUpperCase()):bVal.toUpperCase().localeCompare(aVal.toUpperCase())): (asc?aVal>bVal?1:(bVal>aVal?-1:0):bVal>aVal?1:(aVal>bVal?-1:0)); }); $.each(listitems, function(idx, itm) { mylist.append(itm); }); }; var map = { type: 'weather', subtype: '', resortId: 0, markers: [], map: {}, degreeDef: 'C', initializeCountryMap: function(x1, y1, x2, y2, type, subtype) { map.degreeDef = $('#measurementsBlock').attr('def'); if (type!=undefined) map.type=type; if (subtype!=undefined) map.subtype=subtype; var dx = (x2-x1)/30; var dy = (y2-y1)/30; map.init(); map.map.fitBounds(L.latLngBounds(L.latLng(y2+dy, x1-dx), L.latLng(y1-dy, x2+dx))); }, initializeWeatherMap: function() { map.degreeDef = $('#measurementsBlock').attr('def'); var x = 24.89333; var y = 35.30972; var z = 5; var hash = window.location.hash; if (hash.length>0) { hash = hash.substring(1); var pos = hash.indexOf(','); if (pos>0) { x = hash.substring(0,pos); y = hash.substring(pos+1); z = 8; }; } map.init(); map.map.setView([y, x], z); }, init: function() { map.map = L.map('weatherMapCanvas', {scrollWheelZoom: false}); L.tileLayer('https://tiles.turtella.ru/v1/{z}/{y}/{x}', { attribution: 'Tiles © Esri — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri', minZoom: 2, maxZoom: 10 }).addTo(map.map); map.map.on('moveend', map.drawIcons); }, drawIcons: function() { var markers = []; var bounds = map.map.getBounds(); jQuery.ajax({ data: {x1: bounds.getWest(), x2: bounds.getEast(), y1: bounds.getSouth(), y2: bounds.getNorth(), width: map.map.getSize().x, height: map.map.getSize().y}, success: function(data, status, request) { var json = jQuery.parseJSON(data); var newMarkers = []; $.each(map.markers, function(index, m) { m.remove(); }); $.each(json, function(index, resort) { map.markers.push(L.marker([ resort.y, resort.x], {icon: L.icon({iconUrl: map.getIconUrl(resort), iconAnchor: [30, 15]}), data: resort.lnkMain}).addTo(map.map).on('click', map.markerClick)); }); }, type: 'POST', url: '/ajax/getBoundsResorts/' }); if (map.postProcessor!=undefined) map.postProcessor(); }, markerClick: function(evt) { window.location = evt.target.options.data; }, getIconUrl: function(r) { if (map.type=='weather') { return STATIC_HOST_MAPIMAGES+'/w/'+encodeURIComponent(r.name)+'/'+r.temp+'/'+r.code+'/'; } else if (map.type=='avg') { return STATIC_HOST_MAPIMAGES+'/a/'+encodeURIComponent(r.name)+'/'+eval('r.avg.'+map.subtype)+'/'; } else { if (!r.isMarine) return CORE_HOST+'/img/s.gif'; if (map.subtype=='') { return STATIC_HOST_MAPIMAGES+'/s/'+encodeURIComponent(r.name)+'/'+r.seaTemp+'/'; } else { return STATIC_HOST_MAPIMAGES+'/s/'+encodeURIComponent(r.name)+'/'+eval('r.msst.'+map.subtype)+'/'; } } }, switchMapType: function(type, subtype) { map.type=type; map.subtype=subtype; map.drawIcons(); } }; var chart = new Object(); chart.months = ['january','february','march','april','may','june','july','august','september','october','november','december']; chart.mTicks = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; chart.monthTicks = ['January','February','March','April','May','June','July','August','September','October','November','December']; chart.seasonTicks = ['','January','','','February','','','March','','','April','','','May','','','June','','','July','','','August','','','September','','','October','','','November','','','December','']; chart.drawTemp = function(elementId, monthTitle, dayTemp, nightTemp, ticks) { if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); $.jqplot(elementId, [dayTemp, nightTemp], { axes:{ xaxis:{ ticks: [[0,''],[1,'1'],[3,'3'],[5,'5'],[7,'7'],[9,'9'],[11,'11'],[13,'13'],[15,'15'],[17,'17'],[19,'19'],[21,'21'],[23,'23'],[25,'25'],[27,'27'],[29,'29'],[31,'31'],[32,'']], tickOptions: { formatString: monthTitle+' %d' } }, yaxis:{ ticks: ticks, tickOptions: { formatString: '%s°C' } } }, highlighter: { show: true, sizeAdjust: 5, useAxesFormatters: true, tooltipLocation: 'ne' }, cursor: { show: false }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label:'Day Temperature   ', color: '#eaa228'}, {label:'Night Temperature', color: '#4bb2c5'}, {markerOptions: { size: 10 }, showLine:false } ] }); }; chart.drawSeaTemp = function(elementId, monthTitle, seaTemp, ticks) { if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); $.jqplot(elementId, [seaTemp], { axes:{ xaxis:{ ticks: [[0,''],[1,'1'],[3,'3'],[5,'5'],[7,'7'],[9,'9'],[11,'11'],[13,'13'],[15,'15'],[17,'17'],[19,'19'],[21,'21'],[23,'23'],[25,'25'],[27,'27'],[29,'29'],[31,'31'],[32,'']], tickOptions: { formatString: monthTitle+' %d' } }, yaxis:{ ticks: ticks, tickOptions: { formatString: '%s°C' } } }, highlighter: { show: true, sizeAdjust: 5, useAxesFormatters: true, tooltipLocation: 'ne' }, cursor: { show: false } }); }; chart.drawMBars = function(elementId, values, yTicks, color1, color2) { if (('#'+elementId).length == 0) return; $.jqplot(elementId, values, { stackSeries: true, captureRightClick: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 10 }, pointLabels: {show: false, hideZeros: true, stackedValue: true} }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.mTicks }, yaxis: { ticks: yTicks, padMin: 0 } }, series:[ {color: color1===undefined?'#4bb2c5':color1}, {color: color2===undefined?'#eaa228':color2} ] }); }; chart.drawYBars = function(elementId, values, yTicks, lnk, color, hash) { if (('#'+elementId).length == 0) return; $.jqplot(elementId, values, { captureRightClick: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 5 }, pointLabels: {show: true, ypadding: 2, formatString: function(){return '%s';}()} }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.mTicks }, yaxis: { ticks: yTicks, padMin: 0 } }, series:[{color: color===undefined?'#4bb2c5':color}] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { window.location=lnk+chart.months[pointIndex]+'/'+(hash==undefined?'':hash); }); }; chart.drawYTempBars = function(elementId, values, yTicks, lnk) { if (('#'+elementId).length == 0) return; $.jqplot(elementId, values, { captureRightClick: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 4, barPadding: 0, shadowDepth: 0 }, pointLabels: {show: true, ypadding: 2} }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.mTicks }, yaxis: { ticks: yTicks, padMin: 0 } }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label:'Day Temperature   ', color: '#eaa228'}, {label:'Night Temperature', color: '#4bb2c5'}, {markerOptions: { size: 10 }, showLine:false } ] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { window.location=lnk+chart.months[pointIndex]+'/'; }); }; chart.drawYCloudsBars = function(elementId, values, lnk) { if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); $.jqplot(elementId, values, { captureRightClick: true, stackSeries: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 10 }, pointLabels: {show: true, ypadding: 2, formatString: function(){return '%s';}()} }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.mTicks }, yaxis: { ticks: [[0,'0'],[5,'5'],[10,'10'],[15,'15'],[20,'20'],[25,'25'],[30,'30'],[35,'35']], padMin: 0 } }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label:'Gloomy days   ', color: '#7f9498'}, {label:'Cloudy days   ', color: '#73b5c1'}, {label:'Sunny days', color: '#3fd5f1'}, {markerOptions: { size: 10 }, showLine:false } ] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { window.location=lnk+chart.months[pointIndex]+'/'; }); }; chart.drawPies = function(elementId, values) { if (('#'+elementId).length == 0) return; $.jqplot(elementId, [values], { seriesDefaults: { renderer: jQuery.jqplot.PieRenderer, rendererOptions: { showDataLabels: true, sliceMargin: 8, lineWidth: 5 } }, legend: { show:true, location: 'ne', placement: 'inside' }, seriesColors: [ "#3fd5f1", "#73b5c1", "#7f9498" ] }); }; chart.drawRCompareBars = function(elementId, values, yTicks, label1, label2, lnk1, lnk2, color1, color2) { if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); $.jqplot(elementId, values, { captureRightClick: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 3, barPadding: 6, shadowDepth: 0 } }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.mTicks }, yaxis: { ticks: yTicks, padMin: 0 } }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label: label1+'    ', color: color1===undefined?'#eaa228':color1, pointLabels: {show: true, ypadding: 2, location: 'n', xpadding: 5}}, {label: label2, color: color2===undefined?'#4bb2c5':color2, pointLabels: {show: true, ypadding: 2, location: 'n'}}, {markerOptions: { size: 10 }, showLine:false } ] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { if (seriesIndex==0) { window.location=lnk1+chart.months[pointIndex]+'/'; } else { window.location=lnk2+chart.months[pointIndex]+'/'; } }); }; chart.drawSeasonChart = function(elementId, object) { // properties: values, yTicks, link, color, hash, labels if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); var labels = {show: true, ypadding: 2}; if (object.labels!=undefined) { labels.labels=object.labels; }; $.jqplot(elementId, object.values, { captureRightClick: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { shadowDepth: 3, barMargin: 4 }, pointLabels: labels }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.seasonTicks }, yaxis: { ticks: object.yTicks, padMin: 0 } }, series:[{color: object.color===undefined?'#4bb2c5':object.color}] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { window.location=object.link+chart.months[Math.ceil((pointIndex+1)/3)-1]+'/'+(object.hash==undefined?'':object.hash); }); }; chart.drawSeasonStackedChart = function(elementId, object) { // properties: values, yTicks, link, hash, labels if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); var labels = {show: true, ypadding: 2}; if (object.labels!=undefined) { labels.labels=object.labels; }; $.jqplot(elementId, object.values, { captureRightClick: true, stackSeries: true, seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions: { barMargin: 5 }, pointLabels: labels }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: chart.monthTicks }, yaxis: { ticks: object.yTicks, padMin: 0 } }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label:'Heavy Rains   ', color: '#7f9498'}, {label:'Moderate Rains   ', color: '#73b5c1'}, {label:'Light Rains', color: '#3fd5f1'}, {markerOptions: { size: 10 }, showLine:false } ] }); $('#'+elementId).bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) { window.location=object.link+chart.months[pointIndex]+'/'+(object.hash==undefined?'':object.hash); }); }; chart.drawSeasonTemp = function(elementId, object) { // yTicks values if (('#'+elementId).length == 0) return; $('#'+elementId).html(''); var seasonTempChartValues = object; $.jqplot(elementId, object.values, { axes:{ xaxis:{ ticks: [[1,''],[2,'January'],[3,''],[4,''],[5,'February'],[6,''],[7,''],[8,'March'],[9,''],[10,''],[11,'April'],[12,''],[13,''],[14,'May'],[15,''],[16,''],[17,'June'],[18,''],[19,''],[20,'July'],[21,''],[22,''],[23,'August'],[24,''],[25,''],[26,'September'],[27,''],[28,''],[29,'October'],[30,''],[31,''],[32,'November'],[33,''],[34,''],[35,'December'],[36,'']] }, yaxis:{ ticks: object.yTicks } }, highlighter: { show: true, sizeAdjust: 5, tooltipContentEditor: function(str, seriesIndex, pointIndex) { var decade = seasonTempChartValues.values[seriesIndex][pointIndex][0]; var value = seasonTempChartValues.values[seriesIndex][pointIndex][1]; return ''+chart.decade2Str(decade)+', '+value+'°'+(typeof seasonTempChartValues.degreeDef === "undefined"?'C':seasonTempChartValues.degreeDef); }, tooltipLocation: 'nw', useAxesFormatters: false }, cursor: { show: false }, legend: { renderer: $.jqplot.EnhancedLegendRenderer, show:true, rendererOptions: { numberRows: 1 }, location: 's', placement: 'outsideGrid' }, series:[ {label:'Day Air Temperature   ', color: '#eaa228'}, {label:'Night Air Temperature', color: '#4bb2c5'}, {markerOptions: { size: 10 }, showLine:false } ] }); }; chart.decade2Str = function(decade) { var monthId = Math.ceil(decade/3); var monthStr = chart.monthTicks[monthId-1]; var decadeId = decade%3; if (decadeId==0) decadeId=3; var dateStr = ''; if (decadeId==1) { dateStr = '1-10'; } else if (decadeId==2) { dateStr = '11-20'; } else { if (monthId==1 || monthId==3 || monthId==5 || monthId==7 || monthId==8 || monthId==10 || monthId==12) { dateStr = '21-31'; } else if (monthId==2) { dateStr = '21-28'; } else { dateStr = '21-30'; } } return dateStr+' '+monthStr; }; chart.drawChart = function(chartObject) { eval('chart.'+chartObject.fnName+'(\''+chartObject.elName+'\',chartObject);'); }; var years = new Object(); years.click = function(el) { $(el).closest('table').find('td.year').removeClass('sel'); $(el).parent().parent().find('td.year2').removeClass('sel2'); var parent = $(el).parent();; if (parent.attr("wide")=='true') { parent.addClass('sel2'); } else { parent.addClass('sel'); } }; years.seaClick = function(el) { $(el).parent().parent().find('td.year').removeClass('sel'); $(el).parent().parent().find('td.year2').removeClass('sel2'); var parent = $(el).parent();; if (parent.attr("wide")=='true') { parent.addClass('sel2'); } else { parent.addClass('sel'); } }; var tabs = new Object(); tabs.click = function(el) { var tab = $(this).attr('id'); if ('tab2'==tab) { map.switchMapType('sst',''); $('#sliderPanel').hide(); $('#tab1').removeClass('weatherMapTabSel'); $('#tab3').removeClass('weatherMapTabSel2'); $('#tab4').removeClass('weatherMapTabSel'); $('#tab2').addClass('weatherMapTabSel'); } else if ('tab3'==tab) { map.switchMapType('sst','m'+slider.getMonthId()); $('#sliderPanel').show(); $('#tab1').removeClass('weatherMapTabSel'); $('#tab2').removeClass('weatherMapTabSel'); $('#tab4').removeClass('weatherMapTabSel'); $('#tab3').addClass('weatherMapTabSel2'); } else if ('tab4'==tab) { map.switchMapType('avg','m'+slider.getMonthId()); $('#sliderPanel').show(); $('#tab1').removeClass('weatherMapTabSel'); $('#tab2').removeClass('weatherMapTabSel'); $('#tab3').removeClass('weatherMapTabSel2'); $('#tab4').addClass('weatherMapTabSel'); } else { map.switchMapType('weather',''); $('#sliderPanel').hide(); $('#tab2').removeClass('weatherMapTabSel'); $('#tab3').removeClass('weatherMapTabSel2'); $('#tab4').removeClass('weatherMapTabSel'); $('#tab1').addClass('weatherMapTabSel'); } }; var slider = new Object(); slider.getMonthId = function() { var index = 0; var month = 0; $('#slider .slideRow td.a').each(function(i, el) { index++; if ($(el).find('div').length>0) { month = index; } }); return month; }; var comfortBtn = new Object(); comfortBtn.weightOpen = function() { var btnId = $(this).closest('.comfortBtn').attr('id');; if (comfortBtn.openedWeightButtonId==btnId) { comfortBtn.weightClose(); } else { if (comfortBtn.weightOpened) { comfortBtn.weightClose(); } var x = $(this).offset().left; var y = $(this).offset().top+30; $(this).addClass('bot-sel'); $('#comfortButtons .selection').show().offset({ top: y, left: x}); comfortBtn.openedWeightButtonId = btnId; comfortBtn.weightOpened = true; } }; comfortBtn.weightClose = function() { if (comfortBtn.weightOpened) { $('#'+comfortBtn.openedWeightButtonId+' .bot').removeClass('bot-sel'); $('#comfortButtons .selection').hide(); comfortBtn.weightOpened = false; comfortBtn.openedWeightButtonId = ''; comfortBtn.refresh(); } }; comfortBtn.updateBtnWeight = function(optionEl) { if (comfortBtn.weightOpened) { var val = optionEl.attr('level')*1; if (val>3 || val<0) val=0; var botEl = $('#'+comfortBtn.openedWeightButtonId+' .bot'); botEl.attr('level',val); var txt = optionEl.html(); botEl.html(txt); } }; comfortBtn.contentOpen = function() { comfortBtn.openedContentButtonId = $(this).closest('.comfortBtn').attr('id'); comfortBtn.openedContentButtonType = $(this).closest('.comfortBtn').attr('type'); if ('tempFull'==comfortBtn.openedContentButtonType) { // select current value var currVal = $('#'+comfortBtn.openedContentButtonId+' span.val').html().replace('+',''); $('.tempPicker td').removeClass('sel'); $('.tempPicker td[val="'+currVal+'"]').addClass('sel'); // show table $('.tempPicker tr').show(); $('#tempPicker').bPopup(bPop); } else if ('tempShort'==comfortBtn.openedContentButtonType) { // select current value var currVal = $('#'+comfortBtn.openedContentButtonId+' span.val').html().replace('+',''); $('.tempPicker td').removeClass('sel'); $('.tempPicker td[val="'+currVal+'"]').addClass('sel'); // show table $('.tempPicker tr.full').hide(); $('#tempPicker').bPopup(bPop); } else if ('rain'==comfortBtn.openedContentButtonType) { $('#rainPicker').bPopup(bPop); } }; comfortBtn.contentClose = function() { if ('tempFull'==comfortBtn.openedContentButtonType || 'tempShort'==comfortBtn.openedContentButtonType) { var val = $(this).html()*1; if (val>=0) val='+'+val; $('#tempPicker').bPopup().close(); $('#'+comfortBtn.openedContentButtonId+' span.val').html(val); } else if ('rain'==comfortBtn.openedContentButtonType) { var val = $(this).attr('val'); $('#rainPicker').bPopup().close(); var btnIco = $('#'+comfortBtn.openedContentButtonId+' .top-icon div'); var btnContent = $('#'+comfortBtn.openedContentButtonId+' .content-rain-cell'); if ('1'==val) { btnIco.attr('class','icon-heavy-rain'); btnContent.attr('val',1).html('No Heavy Rains'); } else if ('2'==val) { btnIco.attr('class','icon-rain'); btnContent.attr('val',2).html('Light Rains Only'); } else { // 3 btnIco.attr('class','icon-no-rain'); btnContent.attr('val',3).html('No Rains'); } } comfortBtn.openedContentButtonType=''; comfortBtn.refresh(); }; comfortBtn.refresh = function() { var o = comfortBtn.getValues(); ajx.request({ data: {resortId: $('#comfortButtons').attr('val'), dayTemp: o.dayTemp, dayTempWeight: o.dayTempWeight, nightTemp: o.nightTemp, nightTempWeight: o.nightTempWeight, seaTemp: o.seaTemp, seaTempWeight: o.seaTempWeight, precipLevel: o.precipLevel, precipLevelWeight: o.precipLevelWeight}, success: function(data, status, request) { $('#comfortTableContainer').html(data); }, error: function(data, status, request) { }, url: '/ajax/comfortUpdate/' }); }; comfortBtn.getValues = function() { var o = new Object(); o.dayTemp = $('#cBtnDayTemp .val').html().replace('+',''); o.dayTempWeight = $('#cBtnDayTemp .bot').attr('level'); o.nightTemp = $('#cBtnNightTemp .val').html().replace('+',''); o.nightTempWeight = $('#cBtnNightTemp .bot').attr('level'); if ($('#cBtnSeaTemp').length!=0) { o.seaTemp = $('#cBtnSeaTemp .val').html().replace('+',''); o.seaTempWeight = $('#cBtnSeaTemp .bot').attr('level'); } o.precipLevel = $('#cBtnRain .content-rain-cell').attr('val'); o.precipLevelWeight = $('#cBtnRain .bot').attr('level'); return o; }; var cmn = new Object(); cmn.switchToUs = function() { cmn.switchMeasurement('US'); }; cmn.switchToNonUs = function() { cmn.switchMeasurement('-'); }; cmn.switchMeasurement = function(val) { ajx.request({ data: {measurement: val}, success: function(data, status, request) { var url = ''+window.location; var pos = url.indexOf("#"); if (pos>0) url = url.substr(0,pos); window.location=url; }, error: function(data, status, request) { }, url: '/ajax/switchMeasurement/' }); };