1function Rating(mId) { 2 "use strict"; 3 4 var self = this, 5 mediaId = mId, 6 isUser, 7 wish, 8 best, 9 grade, 10 11 $star1 = $('#star1_' + mediaId), 12 $star2 = $('#star2_' + mediaId), 13 $star3 = $('#star3_' + mediaId), 14 $star4 = $('#star4_' + mediaId), 15 $star5 = $('#star5_' + mediaId), 16 17 $cross = $('#cross_' + mediaId), 18 19 $heart = $('#heart_' + mediaId) 20 21 self.init = function () { 22 23 return new Promise((resolve, reject) => { 24 wish = false; 25 best = false; 26 27 getRatings() 28 .then(initLikeEvents) 29 .then(showLikes) 30 .then(getWish) 31 .then(showCross) 32 .then(initEvents) 33 .then(() => resolve()) 34 }); 35 36 }; 37 38 function initLikeEvents() { 39 $(".likes .like").on("click", function () { 40 if ($(".likes .like").hasClass("likeUnselected")) 41 setRatings(5); 42 else 43 setRatings(0); 44 }); 45 46 $(".likes .nLike").on("click", function () { 47 if ($(".likes .nLike").hasClass("nLikeUnselected")) 48 setRatings(2); 49 else 50 setRatings(0); 51 }); 52 } 53 54 function showLikes() { 55 $(".likes .like").removeClass("nLoaded"); 56 $(".likes .nLike").removeClass("nLoaded"); 57 58 switch (grade) { 59 case 0: 60 showUnselectedLike(); 61 break; 62 case 2: 63 showUserNLike(); 64 break; 65 case 5: 66 showUserLike(); 67 break; 68 } 69 } 70 71 function showUnselectedLike() { 72 $(".likes .like").removeClass("likeSelected"); 73 $(".likes .nLike").removeClass("nLikeSelected"); 74 75 $(".likes .like").addClass("likeUnselected"); 76 $(".likes .nLike").addClass("nLikeUnselected"); 77 } 78 function showUserNLike() { 79 $(".likes .like").removeClass("likeSelected"); 80 $(".likes .nLike").removeClass("nLikeUnselected"); 81 82 $(".likes .like").addClass("likeUnselected"); 83 $(".likes .nLike").addClass("nLikeSelected"); 84 } 85 function showUserLike() { 86 $(".likes .like").removeClass("likeUnselected"); 87 $(".likes .nLike").removeClass("nLikeSelected"); 88 89 $(".likes .like").addClass("likeSelected"); 90 $(".likes .nLike").addClass("nLikeUnselected"); 91 } 92 93 94 function initEvents() { 95 $cross.on('mouseover', function () { 96 crossOn(); 97 }); 98 $cross.on('mouseout', function () { 99 showCross(); 100 }); 101 $cross.on('click', function () { 102 settWish(); 103 }); 104 105 $heart.on('mouseover', function () { 106 heartOn(); 107 }); 108 $heart.on('mouseout', function () { 109 showheart(); 110 }); 111 $heart.on('click', function () { 112 settBest(); 113 }); 114 } 115 116 function initEvents_stars() { 117 $star1.on('mouseover', function () { 118 starsOn(1); 119 }); 120 $star1.on('mouseout', function () { 121 showStars(); 122 }); 123 $star1.on('click', function () { 124 settRatings(2); 125 }); 126 127 128 $star2.on('mouseover', function () { 129 starsOn(2); 130 }); 131 $star2.on('mouseout', function () { 132 showStars(); 133 }); 134 $star2.on('click', function () { 135 settRatings(4); 136 }); 137 138 139 $star3.on('mouseover', function () { 140 starsOn(3); 141 }); 142 $star3.on('mouseout', function () { 143 showStars(); 144 }); 145 $star3.on('click', function () { 146 settRatings(6); 147 }); 148 149 $star4.on('mouseover', function () { 150 starsOn(4); 151 }); 152 $star4.on('mouseout', function () { 153 showStars(); 154 }); 155 $star4.on('click', function () { 156 settRatings(8); 157 }); 158 159 $star5.on('mouseover', function () { 160 starsOn(5); 161 }); 162 $star5.on('mouseout', function () { 163 showStars(); 164 }); 165 $star5.on('click', function () { 166 settRatings(10); 167 }); 168 169 $cross.on('mouseover', function () { 170 crossOn(); 171 }); 172 $cross.on('mouseout', function () { 173 showCross(); 174 }); 175 $cross.on('click', function () { 176 settWish(); 177 }); 178 179 $heart.on('mouseover', function () { 180 heartOn(); 181 }); 182 $heart.on('mouseout', function () { 183 showheart(); 184 }); 185 $heart.on('click', function () { 186 settBest(); 187 }); 188 189 }; 190 function starsOn(n) { 191 removeStarCss(); 192 addStarCss(); 193 if(n>=1){ 194 $star1.addClass("onU"); 195 } 196 if(n>=2){ 197 $star2.addClass("onU"); 198 } 199 if(n>=3){ 200 $star3.addClass("onU"); 201 } 202 if(n>=4){ 203 $star4.addClass("onU"); 204 } 205 if(n>=5){ 206 $star5.addClass("onU"); 207 } 208 }; 209 210 function getRatings() { 211 return new Promise((resolve, reject) => { 212 $.ajax({ 213 dataType: 'json', 214 url: "/Details/GetRating/?smediaId=" + mediaId, 215 cache: false 216 }).done(data => {
217 if (data.ValueUser > 0) { 218 grade = data.ValueUser; 219 isUser = true; 220 221 resolve() 222 } else { 223 grade = 0 224 isUser = false; 225 226 resolve(); 227 } 228 }).catch(error => reject('Erro inesperado')); 229 }); 230 }; 231 function setRatings(val) { 232 var aux, promise; 233 aux = grade; 234 grade = val; 235 isUser = true; 236 237 promise = new Promise(function (resolve, reject) { 238 $.ajax({ 239 dataType: 'json', 240 url: "/Details/SetRating/?smediaId=" + mediaId+"&srate="+val, 241 cache: false 242 }) 243 .done(function (data) { 244 if (data.r == "login") { 245 isUser = false; 246 grade = aux; 247 Helpers.showLogin(); 248 } 249 showLikes(); 250 resolve(); 251 }) 252 .error(function (data) { 253 isUser = false; 254 grade = aux; 255 reject('Erro inesperado'); 256 }); 257 }); 258 return promise; 259 }; 260 261 function getWish() { 262 263 return new Promise((resolve, reject) => { 264 $.ajax({ 265 dataType: 'json', 266 url: "/Details/GetWish/?smediaId=" + mediaId, 267 cache: false 268 }).done(result => { 269 wish = result.IsWish; 270 showCross(); 271 272 resolve(); 273 }).catch(e => { 274 wish = false; 275 reject(); 276 }) 277 }) 278 }; 279 function getBest() { 280 281 return new Promise((resolve, reject) => { 282 $.ajax({ 283 dataType: 'json', 284 url: "/Details/GetBest/?smediaId=" + mediaId, 285 cache: false 286 }).done(data => { 287 288 best = data.IsBest; 289 showheart(); 290 resolve(); 291 292 }).catch(err => { 293 best = false; 294 reject(); 295 }) 296 }); 297 }; 298 function settWish() { 299 var promise; 300 wish= ! wish; 301 302 promise = new Promise(function (resolve, reject) { 303 $.ajax({ 304 dataType: 'json', 305 url: "/Details/SetWish/?smediaId=" + mediaId + "&sstate=" + wish, 306 cache: false 307 }) 308 .done(function (data) { 309 if (data.r == "login") { 310 wish = false; 311 Helpers.showLogin(); 312 } 313 showCross(); 314 resolve(); 315 }) 316 .error(function (data) { 317 wish = false; 318 reject('Erro inesperado'); 319 }); 320 }); 321 return promise; 322 }; 323 function settBest() { 324 best = !best; 325 326 try { 327 $.getJSON("/Details/SetBest/?smediaId=" + mediaId + "&sstate=" + best, (result) => { 328 if (result.r) { 329 if (result.r == "login") { 330 best = false; 331 Helpers.showLogin(); 332 } 333 } else { 334 if (best) showheart(); 335 else removeheartCss(); 336 } 337 }) 338 } catch (e) { 339 340 } 341 }; 342 function removeCrossCss() { 343 $cross.removeClass(); 344 }; 345 function addCrossCss() { 346 $cross.addClass("cross"); 347 }; 348 function showCross() { 349 removeCrossCss(); 350 addCrossCss(); 351 if (wish) { 352 $cross.addClass('on'); 353 } 354 }; 355 function crossOn() { 356 removeCrossCss(); 357 addCrossCss(); 358 $cross.addClass("on"); 359 }; 360 361 function removeheartCss() { 362 $heart.removeClass(); 363 }; 364 function addheartCss() { 365 $heart.addClass("cross heart"); 366 }; 367 function showheart() { 368 removeheartCss(); 369 addheartCss(); 370 371 if(best) 372 $heart.addClass('on'); 373 }; 374 function heartOn() { 375 removeheartCss(); 376 addheartCss(); 377 $heart.addClass("on"); 378 }; 379 380 function removeStarCss() { 381 $star1.removeClass(); 382 $star2.removeClass(); 383 $star3.removeClass(); 384 $star4.removeClass(); 385 $star5.removeClass(); 386 }; 387 function addStarCss() { 388 $star1.addClass("star"); 389 $star2.addClass("star"); 390 $star3.addClass("star"); 391 $star4.addClass("star"); 392 $star5.addClass("star"); 393 394 }; 395 function showStars() { 396 var val = grade, 397 u = '', 398 zer = '', 399 on = 'on'; 400 401 removeStarCss(); 402 addStarCss(); 403 404 if (isUser == true) { 405 u = 'U'; 406 on = 'onU'; 407 } 408 if (val < 1.8) { 409 zer = "zero" +u+ deci(val); 410 $star1.addClass(zer); 411 } else if (val < 3.8) { 412 zer = "zero" + u + deci(val-2); 413 $star1.addClass(on); 414 $star2.addClass(zer); 415 } else if (val < 5.8) { 416 zer = "zero" + u + deci(val-4); 417 $star1.addClass(on); 418 $star2.addClass(on); 419 $star3.addClass(zer); 420 } else if (val < 7.8) { 421 zer = "zero" + u + deci(val-6); 422 $star1.addClass(on); 423 $star2.addClass(on); 424 $star3.addClass(on); 425 $star4.addClass(zer); 426 } else if (val < 9.8) { 427 zer = "zero" + u + deci(val-8); 428 $star1.addClass(on); 429 $star2.addClass(on); 430 $star3.addClass(on); 431 $star4.addClass(on); 432 $star5.addClass(zer); 433 } else { 434 $star1.addClass(on); 435 $star2.addClass(on); 436 $star3.addClass(on); 437 $star4.addClass(on); 438 $star5.addClass(on); 439 } 440 441 442 443 444 }; 445 function deci(val) { 446 if (val >=1.5) { 447 return ' p75'; 448 }else if (val >= 1) { 449 return ' p50'; 450 } if (val >= 0.5) { 451 return ' p25'; 452 }else 453 { 454 return ''; 455 } 456 }; 457}
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.