1/** 2 * @author Garda Informatica <[email protected]> 3 * @copyright Copyright (C) 2015 Garda Informatica. All rights reserved. 4 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 5 * @package giWeather Wordpress Widget 6 * @link http://www.gardainformatica.it 7 */ 8 9 10function GIWeatherWidget(giweather_element,options) 11{ 12 13 giweather_element=jQuery(giweather_element); 14 15 16 17 var self = this; 18 var carousel_element = jQuery(".giw-fc-thumb-list-container", giweather_element); 19 20 var giw_btns_element= jQuery(".giw-btns", giweather_element); 21 var giw_btns = jQuery(".giw-btn", giw_btns_element); 22 23 24 var giw_ts_btns_element= jQuery(".giw-ts-btns", giweather_element); 25 var giw_ts_btns = jQuery(".giw-ts-btn", giw_ts_btns_element); 26 27 var giw_arrow_left = jQuery(".giw-arrow-left", giweather_element); 28 var giw_arrow_right = jQuery(".giw-arrow-right", giweather_element); 29 30 var giwlist = jQuery(">div", carousel_element); 31 var giwthumbs = jQuery(">div>div", carousel_element); 32 33 var giwthumb_width = giwthumbs.first().outerWidth(); 34 var giwthumb_count = giwthumbs.length; 35 36 giwlist.width(giwthumb_width*giwthumb_count); 37 38 var num_visible_giwthumb=Math.ceil(carousel_element.width()/giwthumb_width); 39 40 var px=0; 41 42 var current_giwthumb = 0; 43 44 this.setCurrentThumb=function(thumb){ 45 var num_to_slide=(carousel_element.width()/giwthumb_width)/2; 46 47 var num_prev=thumb.prevAll().length; 48 px=-num_prev*giwthumb_width-giwthumb_width*0.5+giwthumb_width*num_to_slide; 49 50 px=Math.round(px/giwthumb_width)*giwthumb_width; 51 52 var ww=Math.floor(carousel_element.width()/giwthumb_width)*giwthumb_width; 53 var minpx=ww-giwthumb_width*giwthumb_count; 54 var maxpx=0; 55 56 57 px=Math.max(px,minpx); 58 px=Math.min(px,0); 59 60 giwlist.css("left", px+"px"); 61 giwlist.addClass("animate"); 62 63 giwthumbs.removeClass('giw-fc-thumb-current'); 64 thumb.addClass('giw-fc-thumb-current'); 65 66 //setCurrentThumb 67 jQuery('.giw-fc-current-date',giweather_element).text(jQuery('.giw-fc-thumb-day',thumb).text()); 68 jQuery('.giw-fc-current-desc',giweather_element).text(jQuery('.giw-fc-thumb-img',thumb).attr("title")); 69 jQuery('.giw-fc-current-temp .giw-tc',giweather_element).text(jQuery('.giw-fc-thumb-perc-temp .giw-tc',thumb).text().slice(0, - 1));//max 70 jQuery('.giw-fc-current-temp .giw-tf',giweather_element).text(jQuery('.giw-fc-thumb-perc-temp .giw-tf',thumb).text().slice(0, - 1));//max 71 72 var el=jQuery('.giw-fc-thumb-humidity-val',thumb); 73 if (el.length==1){ 74 jQuery('.giw-fc-cur-humidity > span',giweather_element).text(el.text()); 75 jQuery('.giw-fc-cur-humidity',giweather_element).show(); 76 }else{ 77 jQuery('.giw-fc-cur-humidity',giweather_element).hide(); 78 } 79 80 var el_metric=jQuery('.giw-fc-thumb-pressure-val > .giw-metric',thumb); 81 var el_imperial=jQuery('.giw-fc-thumb-pressure-val > .giw-imperial',thumb); 82 if (el_metric.length==1){ 83 jQuery('.giw-fc-cur-pressure > span.giw-metric',giweather_element).text(el_metric.text()); 84 jQuery('.giw-fc-cur-pressure > span.giw-imperial',giweather_element).text(el_imperial.text()); 85 jQuery('.giw-fc-cur-pressure',giweather_element).show(); 86 }else{ 87 jQuery('.giw-fc-cur-pressure',giweather_element).hide(); 88 } 89 90 el_metric=jQuery('.giw-fc-thumb-wind-val > .giw-metric',thumb); 91 el_imperial=jQuery('.giw-fc-thumb-wind-val > .giw-imperial',thumb); 92 if (el_metric.length==1){ 93 jQuery('.giw-fc-cur-wind > span.giw-metric',giweather_element).text(el_metric.text()); 94 jQuery('.giw-fc-cur-wind > span.giw-imperial',giweather_element).text(el_imperial.text()); 95 jQuery('.giw-fc-cur-wind',giweather_element).show(); 96 }else{ 97 jQuery('.giw-fc-cur-wind',giweather_element).hide(); 98 } 99 100 var full_img=jQuery('.giw-fc-full-img',thumb).clone(); 101 full_img.removeClass('giw-fc-full-img'); 102 full_img.addClass('giw-fc-current-icon'); 103 104 jQuery('.giw-fc-current-icon',giweather_element).replaceWith(full_img); 105 106 107 } 108 109
110 var hc=new Hammer(carousel_element[0]); 111 hc.get('pan').set({ direction: Hammer.DIRECTION_HORIZONTAL }); 112 hc.on("panleft panright panend pancancel tap", function (ev){ 113 switch(ev.type) { 114 case 'panend': 115 case 'pancancel': 116 //console.log("end"+ev.deltaX+" vel"+ev.velocityX); 117 px=px+ev.deltaX; 118 px=Math.round(px/giwthumb_width)*giwthumb_width; 119 120 var ww=Math.floor(carousel_element.width()/giwthumb_width)*giwthumb_width; 121 var minpx=ww-giwthumb_width*giwthumb_count; 122 var maxpx=0; 123 124 125 px=Math.max(px,minpx); 126 px=Math.min(px,0); 127 128 giwlist.css("left", px+"px"); 129 giwlist.addClass("animate"); 130 break; 131 case 'panleft': 132 case 'panright': 133 //console.log("pan"+ev.deltaX+" vel"+ev.velocityX); 134 //break; 135 var tmpx=px+ev.deltaX; 136 137 var ww=Math.floor(carousel_element.width()/giwthumb_width)*giwthumb_width; 138 var minpx=ww-giwthumb_width*giwthumb_count; 139 var maxpx=0; 140 141 if (tmpx<minpx){ 142 tmpx=minpx+(tmpx-minpx)*0.3; 143 }else if (tmpx>maxpx){ 144 tmpx=maxpx+(tmpx-maxpx)*0.3; 145 } 146 147 giwlist.removeClass("animate"); 148 giwlist.css("left", (tmpx)+"px"); 149 150 break; 151 case 'tap': 152 153 var thumb=jQuery(ev.target).closest('.giw-fc-thumb'); 154 if (thumb.length==1){ 155 self.setCurrentThumb(thumb); 156 } 157 158 159 160 break; 161 162 } 163 }); 164 165 166 167 this.setBtnView=function(btn){ 168 giw_btns.removeClass('giw-btn-clicked'); 169 giw_btns.addClass('giw-btn-notclicked'); 170 btn.addClass('giw-btn-clicked'); 171 btn.removeClass('giw-btn-notclicked'); 172 173 if (btn.hasClass('giw-btn-temp')){ 174 jQuery('.giw-fc-thumb-temp-hist',giwthumbs).show();
175 jQuery('.giw-fc-thumb-wind',giwthumbs).hide(); 176 }else{ 177 jQuery('.giw-fc-thumb-temp-hist',giwthumbs).hide(); 178 jQuery('.giw-fc-thumb-wind',giwthumbs).show(); 179 } 180 181 } 182 183 184 var hb=new Hammer(giw_btns_element[0]); 185 hb.on("tap", function(ev){ 186 187 var btn=jQuery(ev.target).closest('.giw-btn'); 188 if (btn.length==1){ 189 self.setBtnView(btn); 190 } 191 }); 192 193 this.setTemperatureScaleBtnView=function(btn){ 194 giw_ts_btns.removeClass('giw-ts-btn-active'); 195 btn.addClass('giw-ts-btn-active'); 196 197 if (btn.hasClass('giw-ts-btn-celsius')){ 198 jQuery('.giw-imperial',giweather_element).hide(); 199 jQuery('.giw-metric',giweather_element).show(); 200 jQuery('.giw-tf',giweather_element).hide(); 201 jQuery('.giw-tc',giweather_element).show(); 202 }else{ 203 jQuery('.giw-imperial',giweather_element).show(); 204 jQuery('.giw-metric',giweather_element).hide(); 205 jQuery('.giw-tf',giweather_element).show(); 206 jQuery('.giw-tc',giweather_element).hide(); 207 } 208 209 } 210 211 var ht=new Hammer(giw_ts_btns_element[0]); 212 ht.on("tap", function(ev){ 213 214 var btn=jQuery(ev.target).closest('.giw-ts-btn'); 215 if (btn.length==1){ 216 self.setTemperatureScaleBtnView(btn); 217 } 218 }); 219 220 this.prevOrNext=function(is_prev){ 221 222 var num_visible_thumb=Math.floor(carousel_element.width()/giwthumb_width); 223 224 var num_to_slide=Math.max(Math.floor(num_visible_thumb/2),1); 225 226 var ww=num_visible_thumb*giwthumb_width; 227 var minpx=ww-giwthumb_width*giwthumb_count; 228 var maxpx=0; 229 230 deltax=-num_to_slide*giwthumb_width; 231 if (is_prev){ 232 //prev 233 deltax=deltax*-1;; 234 } 235 236 px=px+deltax; 237 px=Math.round(px/giwthumb_width)*giwthumb_width; 238 239 px=Math.max(px,minpx); 240 px=Math.min(px,0); 241 242 giwlist.css("left", px+"px"); 243 giwlist.addClass("animate"); 244 245 } 246 247 var hl=new Hammer(giw_arrow_left[0]); 248 hl.on("tap", function(ev){ 249 //left 250 self.prevOrNext(true); 251 }); 252 253 var hr=new Hammer(giw_arrow_right[0]); 254 hr.on("tap", function(ev){ 255 //right 256 self.prevOrNext(false); 257 }); 258 259 self.setCurrentThumb(jQuery('.giw-fc-thumb:first',giwlist)); 260 self.setBtnView(jQuery('.giw-btn-temp',giw_btns_element)); 261 262 if (options['unitofmeasure']=='metric'){ 263 self.setTemperatureScaleBtnView(jQuery('.giw-ts-btn-celsius',giw_ts_btns_element)); 264 }else{ 265 self.setTemperatureScaleBtnView(jQuery('.giw-ts-btn-fahrenheit',giw_ts_btns_element)); 266 } 267 268 if (!options['show_head_details']){ 269 jQuery('.giw-fc-current-city',giweather_element).hide(); 270 jQuery('.giw-fc-current-date',giweather_element).hide(); 271 jQuery('.giw-fc-current-desc',giweather_element).hide(); 272 273 jQuery('.giw-fc-current-main',giweather_element).css('padding-top',0); 274 } 275 if (!options['show_right_details']){ 276 jQuery('.giw-fc-current-right',giweather_element).hide(); 277 } 278 if (!options['show_forecasts']){ 279 jQuery('.giw-fc-thumb-list-pane',giweather_element).hide(); 280 } 281 if (!options['show_forecasts_tempwind']){ 282 jQuery('.giw-fc-thumb-temp',giweather_element).hide(); 283 jQuery('.giw-fc-thumb-wind',giweather_element).hide(); 284 jQuery('.giw-fc-thumb-temp-hist',giweather_element).hide(); 285 jQuery('.giw-btns',giweather_element).hide(); 286 } 287 288 289 290 var list_height=jQuery('.giw-fc-thumb-list',giweather_element).outerHeight(true); 291 292 293 294 var arrow_height=jQuery('.giw-arrow:first',giweather_element).outerHeight(); 295 296 jQuery('.giw-fc-thumb-list-pane',giweather_element).height(list_height); 297 298 var arrow_top=(list_height-arrow_height)/2; 299 jQuery('.giw-arrow',giweather_element).css('top',arrow_top+'px'); 300 301 /* 302 if (options['show_mode']=='full'){ 303 //all displayed 304 }else if (options['show_mode']=='no_thumbs'){ 305 jQuery('.giw-fc-thumb-list-pane',giweather_element).hide(); 306 jQuery('.giw-btns',giweather_element).hide(); 307 }else if (options['show_mode']=='minimal'){ 308 jQuery('.giw-fc-thumb-list-pane',giweather_element).hide(); 309 jQuery('.giw-fc-current-right',giweather_element).hide(); 310 } 311 */ 312 313 var initial_width=giweather_element.outerWidth(); 314 315 316 jQuery(window).on("load resize orientationchange", function() { 317 var list_width = jQuery('.giw-fc-thumb-list',giweather_element).width(); 318 var list_container_width = jQuery('.giw-fc-thumb-list-pane',giweather_element).width(); 319 if (list_width<=list_container_width){ 320 jQuery('.giw-fc-thumb-list-container',giweather_element).css('left','0'); 321 jQuery('.giw-fc-thumb-list-container',giweather_element).css('right','0'); 322 jQuery('.giw-arrow',giweather_element).hide(); 323 }else{ 324 jQuery('.giw-fc-thumb-list-container',giweather_element).css('left','28px'); 325 jQuery('.giw-fc-thumb-list-container',giweather_element).css('right','28px'); 326 jQuery('.giw-arrow',giweather_element).show(); 327 } 328 329 330 //aggiusto il px! 331 px=Math.round(px/giwthumb_width)*giwthumb_width; 332 333 var ww=Math.floor(carousel_element.width()/giwthumb_width)*giwthumb_width;
334 var minpx=ww-giwthumb_width*giwthumb_count; 335 var maxpx=0; 336 337 338 px=Math.max(px,minpx); 339 px=Math.min(px,0); 340 341 giwlist.css("left", px+"px"); 342 giwlist.addClass("animate"); 343 344 if (options['widget_align']=='right'){ 345 var container_width=giweather_element.parent().width(); 346 347 var margin_left=Math.max(container_width-initial_width,0); 348 giweather_element.css("margin-left",margin_left+"px"); 349 350 } 351 352 353 354 355 }).resize(); 356 357 358} 359 360
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.