1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
4 <title>MuvMuv - Muvie Review
</title>
5 <link rel=
"stylesheet" type=
"text/css" href=
"static/style.css" />
6 <script src=
"static/common.js" type=
"text/javascript"></script>
7 <script src=
"http://code.google.com/js/jquery.js" type=
"text/javascript">
9 <script src=
"static/json2.js" type=
"text/javascript"></script>
14 var muvmuv
= muvmuv
|| {};
16 muvmuv
.ITEM_PER_PAGE
= 16;
17 muvmuv
.ITEM_PER_ROW
= 4;
19 muvmuv
.URL_ARGS
= muvmuv
.getUrlArgs();
20 muvmuv
.USER
= '{{user}}' || 'None';
22 jQuery(document
).ready(function() {
26 muvmuv
.main = function() {
27 muvmuv
.initSortChooser();
31 muvmuv
.getPageUrlHtml = function(sortby
, pageIndex
) {
34 var linkUrl
= ['javascript:top.location.href=\'?sortby=', sortby
,
35 '&page=', pageIndex
, '\''].join('');
37 urlHtml
.push('<a href="');
38 urlHtml
.push(linkUrl
);
40 urlHtml
.push(pageIndex
);
43 return urlHtml
.join('');
46 muvmuv
.initPagination = function(movieTotal
) {
48 var totalPage
= Math
.ceil(movieTotal
/ muvmuv
.ITEM_PER_PAGE
);
50 var currentPage
= muvmuv
.getCurrentPage();
51 var sortby
= muvmuv
.getSortBy();
55 var pagination
= $('#pagination');
57 if (currentPage
> 1) {
58 var prevButton
= $('<input type="button" value="<<"/>');
60 pagination
.append(prevButton
);
61 pagination
.append(' ');
63 prevButton
.click(function() {
65 var prevIndex
= currentPage
- 1;
66 var prevUrl
= ['?sortby=', sortby
, '&page=', prevIndex
].join('');
67 top
.location
.href
= prevUrl
;
72 for (var i
= 0; i
< totalPage
; i
++) {
74 var pageIndex
= i
+ 1;
76 if (pageIndex
!= currentPage
) {
77 html
.push(muvmuv
.getPageUrlHtml(sortby
, pageIndex
));
85 $('#pagination').append(html
.join(''));
87 if (currentPage
< totalPage
) {
88 var nextButton
= $('<input type="button" value=">>"/>');
90 pagination
.append(' ');
91 pagination
.append(nextButton
);
93 nextButton
.click(function() {
94 var nextIndex
= currentPage
+ 1;
95 var nextUrl
= ['?sortby=', sortby
, '&page=', nextIndex
].join('');
96 top
.location
.href
= nextUrl
;
102 muvmuv
.getMovies = function() {
104 var sortby
= muvmuv
.getSortBy();
105 var currentPage
= muvmuv
.getCurrentPage();
107 var data
= ['sortby=', sortby
, '&page=', currentPage
].join('');
109 var callback = function(data
) {
111 var json
= JSON
.parse(data
);
112 var movies
= json
.movies
;
113 var movieTotal
= json
.total
;
115 muvmuv
.initPagination(movieTotal
);
119 var item_per_row
= muvmuv
.ITEM_PER_ROW
;
120 var row_count
= Math
.ceil(movies
.length
/ item_per_row
);
122 html
.push('<table border=0 cellspacing=5 cellpadding=5>');
124 for (var i
= 0; i
< row_count
; i
++) {
128 for (var j
= 0; j
< item_per_row
; j
++) {
130 html
.push('<td class="movieTd">');
134 if (movie_index
< movies
.length
) {
135 var movie
= movies
[movie_index
];
136 movieHtml
= muvmuv
.createMovieDiv(movie
);
138 html
.push(movieHtml
);
149 html
.push('</table>');
151 $('#moviescontent').append(html
.join(''));
153 $('.movieDiv').click(function() {
154 var movieTitle
= $(this).attr('id');
155 muvmuv
.gotoReview(movieTitle
);
158 $('.movieTd').mouseover(function() {
160 movie
.css({color
: 'white'});
161 movie
.css({background
: 'black'});
164 $('.movieTd').mouseout(function() {
166 movie
.css({color
: 'black'});
167 movie
.css({background
: 'white'});
174 data
: encodeURI(data
),
179 muvmuv
.createMovieDiv = function(movie
) {
181 var title
= movie
.title
;
182 var release_date
= new Date(Date
.parse(movie
.release_date
));
183 var release_date_label
= [release_date
.getMonth() + 1,
184 release_date
.getDate(),
185 release_date
.getFullYear()].join('/');
187 release_date_label
= ['<b>Release: </b>', release_date_label
].join('');
191 var image
= ['<img src="', pic
, '">'].join('');
194 movieHtml
.push('<div class="movieDiv" id="');
195 movieHtml
.push(encodeURI(title
));
196 movieHtml
.push('">');
197 movieHtml
.push('<b>');
198 movieHtml
.push(muvmuv
.textTruncate(title
,30));
199 movieHtml
.push('</b>');
200 movieHtml
.push('<br>');
201 movieHtml
.push(image
);
202 movieHtml
.push('<br><br>');
203 movieHtml
.push('<div>');
204 movieHtml
.push(release_date_label
);
205 movieHtml
.push('</div>');
206 movieHtml
.push('<br>');
207 movieHtml
.push('</div>');
209 return movieHtml
.join('');
212 muvmuv
.initSortChooser = function() {
214 var sortby
= muvmuv
.getSortBy();
215 var sortChooser
= $('#sortchooser');
216 var sortOptions
= sortChooser
.get(0).options
;
217 for (var i
=0; i
<sortOptions
.length
;i
++) {
218 var value
= sortOptions
[i
].value
;
219 if (value
== sortby
) {
220 sortChooser
.selectedIndex
= i
;
221 sortOptions
[i
].selected
= true;
226 sortChooser
.change(function() {
227 var index
= $(this).get(0).selectedIndex
;
228 var sortby
= $(this).get(0).options
[index
].value
;
230 top
.location
.href
= ["/?sortby=", sortby
,
231 '&page=', currentPage
].join('');
235 muvmuv
.gotoReview = function(title
) {
236 top
.location
.href
= ['http://', top
.location
.host
, '/review?title=',
243 <div align=
"center" id=
"main">
245 {% include
"header.html" %}
247 <select id=
"sortchooser">
248 <option value=
"release_date" selected=
"selected">release date
</option>
249 <option value=
"title">title
</option>
251 <span id=
"pagination"></span>
254 <div id=
"moviescontent"></div>