gremmie@1
|
1 function dlRatingOver(event)
|
gremmie@1
|
2 {
|
gremmie@1
|
3 var div = $(this).parent('div');
|
gremmie@1
|
4 var stars = $('img', div);
|
gremmie@1
|
5 for (var i = 0; i <= event.data; ++i)
|
gremmie@1
|
6 {
|
gremmie@1
|
7 var star = $(stars[i]);
|
gremmie@1
|
8 star.attr('src', '/static/downloads/stars/rating_over.gif');
|
gremmie@1
|
9 }
|
gremmie@1
|
10 }
|
gremmie@1
|
11
|
gremmie@1
|
12 function dlRatingOut(event)
|
gremmie@1
|
13 {
|
gremmie@1
|
14 var div = $(this).parent('div');
|
gremmie@1
|
15 var stars = $('img', div);
|
gremmie@1
|
16 for (var i = 0; i <= event.data; ++i)
|
gremmie@1
|
17 {
|
gremmie@1
|
18 var star = $(stars[i]);
|
gremmie@1
|
19 star.attr('src', '/static/downloads/stars/rating_' + star.attr('class') + '.gif');
|
gremmie@1
|
20 }
|
gremmie@1
|
21 }
|
gremmie@1
|
22
|
gremmie@1
|
23 function dlRatingClick(event)
|
gremmie@1
|
24 {
|
gremmie@1
|
25 var star = $(this);
|
gremmie@1
|
26 var id = star.attr('id');
|
gremmie@1
|
27 if (id.match(/star-(\d+)-(\d+)/))
|
gremmie@1
|
28 {
|
gremmie@1
|
29 $.post('/downloads/rate/', { id: RegExp.$1, rating: parseInt(RegExp.$2) + 1},
|
gremmie@1
|
30 function(rating) {
|
gremmie@1
|
31 rating = parseFloat(rating);
|
gremmie@1
|
32 if (rating < 0)
|
gremmie@1
|
33 {
|
gremmie@1
|
34 alert("You've already rated this download.");
|
gremmie@1
|
35 return;
|
gremmie@1
|
36 }
|
gremmie@1
|
37 alert('Thanks for rating this download!');
|
gremmie@1
|
38 var div = star.parent('div');
|
gremmie@1
|
39 var stars = $('img', div);
|
gremmie@1
|
40 rating = parseFloat(rating);
|
gremmie@1
|
41 for (var i = 0; i < 5; ++i)
|
gremmie@1
|
42 {
|
gremmie@1
|
43 var s = $(stars[i]);
|
gremmie@1
|
44 s.removeClass(s.attr('class'));
|
gremmie@1
|
45 if (rating >= 1.0)
|
gremmie@1
|
46 {
|
gremmie@1
|
47 s.attr('src', '/static/downloads/stars/rating_on.gif');
|
gremmie@1
|
48 s.addClass('on')
|
gremmie@1
|
49 rating -= 1.0;
|
gremmie@1
|
50 }
|
gremmie@1
|
51 else if (rating >= 0.5)
|
gremmie@1
|
52 {
|
gremmie@1
|
53 s.attr('src', '/static/downloads/stars/rating_half.gif');
|
gremmie@1
|
54 s.addClass('half')
|
gremmie@1
|
55 rating = 0;
|
gremmie@1
|
56 }
|
gremmie@1
|
57 else
|
gremmie@1
|
58 {
|
gremmie@1
|
59 s.attr('src', '/static/downloads/stars/rating_off.gif');
|
gremmie@1
|
60 s.addClass('off')
|
gremmie@1
|
61 }
|
gremmie@1
|
62 }
|
gremmie@1
|
63 },
|
gremmie@1
|
64 'text');
|
gremmie@1
|
65 }
|
gremmie@1
|
66 }
|
gremmie@1
|
67
|
gremmie@1
|
68 $(document).ready(function() {
|
gremmie@1
|
69 $('.rating').each(function(n) {
|
gremmie@1
|
70 var div = $(this);
|
gremmie@1
|
71 var id = div.attr('id');
|
gremmie@1
|
72 var numeric_id = -1;
|
gremmie@1
|
73 if (id.match(/rating-(\d+)/))
|
gremmie@1
|
74 {
|
gremmie@1
|
75 numeric_id = RegExp.$1;
|
gremmie@1
|
76 }
|
gremmie@1
|
77 var rating = div.html();
|
gremmie@1
|
78 div.html('');
|
gremmie@1
|
79 for (var i = 0; i < 5; ++i)
|
gremmie@1
|
80 {
|
gremmie@1
|
81 var star = $('<img />');
|
gremmie@1
|
82 if (rating >= 1)
|
gremmie@1
|
83 {
|
gremmie@1
|
84 star.attr('src', '/static/downloads/stars/rating_on.gif');
|
gremmie@1
|
85 star.addClass('on')
|
gremmie@1
|
86 --rating;
|
gremmie@1
|
87 }
|
gremmie@1
|
88 else if (rating >= 0.5)
|
gremmie@1
|
89 {
|
gremmie@1
|
90 star.attr('src', '/static/downloads/stars/rating_half.gif');
|
gremmie@1
|
91 star.addClass('half')
|
gremmie@1
|
92 rating = 0;
|
gremmie@1
|
93 }
|
gremmie@1
|
94 else
|
gremmie@1
|
95 {
|
gremmie@1
|
96 star.attr('src', '/static/downloads/stars/rating_off.gif');
|
gremmie@1
|
97 star.addClass('off')
|
gremmie@1
|
98 }
|
gremmie@1
|
99 star.attr('alt', 'star');
|
gremmie@1
|
100 star.attr('id', 'star-' + numeric_id + '-' + i);
|
gremmie@1
|
101 star.bind('mouseover', i, dlRatingOver);
|
gremmie@1
|
102 star.bind('mouseout', i, dlRatingOut);
|
gremmie@1
|
103 star.click(dlRatingClick);
|
gremmie@1
|
104 div.append(star);
|
gremmie@1
|
105 }
|
gremmie@1
|
106 });
|
gremmie@1
|
107 });
|