Mercurial > epgrec.yaz
annotate templates/index.html @ 121:ea54c3128da3
mod: ???????????????????????????
| author | Sushi-k <epgrec@park.mda.or.jp> |
|---|---|
| date | Tue, 16 Mar 2010 12:46:37 +0900 |
| parents | cb04c9ca1cb0 |
| children | 709bc9c69318 |
| rev | line source |
|---|---|
| 1 | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
| 2 "http://www.w3.org/TR/html4/loose.dtd"> | |
| 3 | |
| 4 <html> | |
| 5 <head> | |
| 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
| 7 <title>{$sitetitle}</title> | |
| 8 <meta http-equiv="Content-Style-Type" content="text/css"> | |
| 9 | |
| 10 {literal} | |
| 11 | |
| 12 <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> | |
| 13 <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script> | |
| 14 <link rel="stylesheet" href="start/jquery-ui-1.7.2.custom.css" type="text/css"> | |
| 15 <script type="text/javascript" src="js/mdabasic.js"></script> | |
| 16 <script type="text/javascript"> | |
| 17 function tvtimes_scroll(){ | |
| 18 var t2max = $('#tvtimes2').position().left; | |
| 19 var ftmin = $('#float_titles').position().top; | |
| 20 tvtimes2scrl(); | |
| 21 $(window).scroll(function () { | |
| 22 $('#tvtimes').css('left', parseInt($(document ).scrollLeft())); | |
| 23 var newTop = parseInt($(document ).scrollTop()); | |
| 24 if(newTop < ftmin) {newTop = ftmin;} | |
| 25 $('#float_titles').css('top', newTop); | |
| 26 tvtimes2scrl(); | |
| 27 $('#float_follows').css('left', parseInt($(document ).scrollLeft())); | |
| 28 }); | |
| 29 $(window).resize(function () { tvtimes2scrl();}); | |
| 30 function tvtimes2scrl(){ | |
| 31 var inwidth = parseInt($('body').innerWidth()); | |
| 32 // IE6 | |
| 33 if ($.browser.msie && $.browser.version == 6){ inwidth = document.documentElement.clientWidth;} | |
| 34 var newLeft = inwidth - parseInt($('#tvtimes2').width()) + parseInt($( document ).scrollLeft()); | |
| 35 if(newLeft > t2max ) {newLeft = t2max} | |
| 36 $('#tvtimes2').css('left', newLeft); | |
| 37 $('#float_follows').width(inwidth); | |
| 38 } | |
| 39 } | |
| 40 function prg_hover(){ | |
| 41 function aClick(){ | |
| 42 var TG = $(this).children('.prg_dummy'); | |
| 43 var startTime = new Date(TG.children('.prg_start').html()); | |
| 44 var duration = parseInt(TG.children('.prg_duration').html()); | |
| 45 var endTime = new Date(startTime.getTime() + duration * 1000); | |
| 46 var prgID = parseInt(TG.children('.prg_id').html()); | |
| 47 | |
| 48 var str = '<div class="prg_title">' + TG.children('.prg_title').html() +'</div>' + | |
| 49 '<div class="prg_rec_cfg ui-corner-all"><div class="prg_channel"><span class=" labelLeft">チャンネル:</span><span class="bold">' + TG.children('.prg_channel').html() + '</span></div>' + | |
| 50 '<div class="prg_startTime" style="clear: left"><span class=" labelLeft">日時:</span>' + MDA.Days.time4Disp(startTime) + ' ~ ' + MDA.Days.time4DispH(endTime) + '</div>' + | |
| 51 '<div class="prg_duration" style="clear: left"><span class=" labelLeft">録画時間:</span><span class="bold">' + parseInt(duration / 60) +'</span>分' + ((duration % 60)>0?'<span class="bold">' + parseInt(duration % 60) + '</span>秒':'') + '</div>' + | |
| 52 '</div>'; | |
| 53 if ($(this).hasClass('prg_rec')) { | |
| 54 str += '<div style="margin:2em 0 1em 0;text-align:center;"><a href="javascript:PRG.cancel(' + prgID + ')" class="ui-state-default ui-corner-all ui-dialog-buttonpane button">予約キャンセル</a></div>'; | |
| 55 } else { | |
|
23
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
56 str += '<div style="margin:2em 0 1em 0;text-align:center;"><a href="javascript:PRG.rec(' + prgID + ')" class="ui-state-default ui-corner-all ui-dialog-buttonpane button">簡易予約</a> <a href="javascript:PRG.customform(' + prgID + ')" class="ui-state-default ui-corner-all ui-dialog-buttonpane button">予約カスタマイズ</a></div>'; |
| 1 | 57 } |
| 58 $('#floatBox4Dialog').html(str); | |
| 59 $('#floatBox4Dialog').dialog('open', 'center'); | |
| 60 }; | |
| 61 $('.prg').hover( | |
| 62 function(){ | |
| 63 $('#tv_chs .prg_hover').removeClass('prg_hover'); | |
| 64 if($(this).hasClass('prg_none')) return ; | |
| 65 $(this).addClass('prg_hover'); | |
| 66 var TG = $(this).children('.prg_dummy'); | |
| 67 var startTime = new Date(TG.children('.prg_start').html()); | |
| 68 var duration = parseInt(TG.children('.prg_duration').html()); | |
| 69 var endTime = new Date(startTime.getTime() + duration * 1000); | |
| 70 var str = '<div class="prg_title">' + TG.children('.prg_title').html() + '</div>' + | |
| 71 '<div class="prg_desc"><span class="prg_sub">' + TG.children('.prg_channel').html() + ':' + MDA.Days.time4Disp(startTime) + '~' + MDA.Days.time4DispH(endTime) + ' </span>' + TG.children('.prg_desc').html() + '</div>'; | |
| 72 $('#prg_info').html('<div class="prg_dummy">' + str + '</div>').show(); | |
| 73 $(this).click(aClick); | |
| 74 }, | |
| 75 function(){ | |
| 76 $(this).removeClass('prg_hover');$('#prg_info').hide(); | |
| 77 $(this).unbind('click',aClick); | |
| 78 } | |
| 79 ); | |
| 80 } | |
| 81 var PRG = { | |
| 77 | 82 chdialog:function(disc){ |
| 83 $('#channelDialog').dialog('close'); | |
| 84 $.get('channelInfo.php', { channel_disc: disc },function(data) { | |
| 85 if(data.match(/^error/i)){ | |
| 86 alert(data); | |
| 87 } | |
| 88 else { | |
| 89 var str = data; | |
| 90 str += '<div style="margin:2em 0 1em 0;text-align:center;"><a href="javascript:PRG.chupdate()" class="ui-state-default ui-corner-all ui-dialog-buttonpane button">更新</a></div>'; | |
| 91 $('#channelDialog').html(str); | |
| 92 $('#channelDialog').dialog('open', 'center'); | |
| 93 | |
| 94 } | |
| 95 }); | |
| 96 | |
| 97 }, | |
| 98 chupdate:function() { | |
| 99 var v_sid = $('#id_sid').val(); | |
| 100 var v_channel_disc = $('#id_disc').val(); | |
| 101 $.post('channelSetSID.php', { channel_disc: v_channel_disc, | |
| 102 sid: v_sid }, function(data) { | |
| 103 | |
| 104 $('#channelDialog').dialog('close'); | |
| 105 }); | |
| 106 }, | |
| 1 | 107 rec:function(id){ |
| 108 $.get(INISet.prgRecordURL, { program_id: id } ,function(data){ | |
| 109 if(data.match(/^error/i)){ | |
| 110 alert(data); | |
|
18
19cd7816b2c1
change: draw main program table too fast.
Sushi-k <epgrec@park.mda.or.jp>
parents:
1
diff
changeset
|
111 $('#floatBox4Dialog').dialog('close'); |
| 1 | 112 }else{ |
| 113 $('#prgID_' + id).addClass('prg_rec'); | |
| 114 $('#floatBox4Dialog').dialog('close'); | |
| 115 } | |
| 116 }); | |
| 117 }, | |
| 118 cancel:function(id){ | |
| 119 $.get(INISet.prgCancelURL, { program_id: id } ,function(data){ | |
| 120 if(data.match(/^error/i)){ | |
| 121 alert(data); | |
|
18
19cd7816b2c1
change: draw main program table too fast.
Sushi-k <epgrec@park.mda.or.jp>
parents:
1
diff
changeset
|
122 $('#floatBox4Dialog').dialog('close'); |
| 1 | 123 }else{ |
| 124 $('#prgID_' + id).removeClass('prg_rec'); | |
| 125 $('#floatBox4Dialog').dialog('close'); | |
| 126 } | |
| 127 }); | |
|
23
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
128 }, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
129 customform:function(id) { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
130 $('#floatBox4Dialog').dialog('close'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
131 $.get('reservationform.php', { program_id: id }, function(data) { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
132 if(data.match(/^error/i)){ |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
133 alert(data); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
134 } |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
135 else { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
136 var str = data; |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
137 str += '<div style="margin:2em 0 1em 0;text-align:center;"><a href="javascript:PRG.customrec()" class="ui-state-default ui-corner-all ui-dialog-buttonpane button">予約する</a></div>'; |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
138 $('#floatBox4Dialog').html(str); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
139 $('#floatBox4Dialog').dialog('open', 'center'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
140 } |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
141 }); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
142 }, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
143 customrec:function() { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
144 var id_syear = $('#id_syear').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
145 var id_smonth = $('#id_smonth').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
146 var id_sday = $('#id_sday').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
147 var id_shour = $('#id_shour').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
148 var id_smin = $('#id_smin').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
149 var id_eyear = $('#id_eyear').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
150 var id_emonth = $('#id_emonth').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
151 var id_eday = $('#id_eday').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
152 var id_ehour = $('#id_ehour').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
153 var id_emin = $('#id_emin').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
154 var id_channel_id = $('#id_channel_id').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
155 var id_record_mode = $('#id_record_mode').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
156 var id_title = $('#id_title').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
157 var id_description = $('#id_description').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
158 var id_category_id = $('#id_category_id ').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
159 var id_program_id = $('#id_program_id').val(); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
160 var with_program_id = $('#id_program_id').attr('checked'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
161 |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
162 if( ! with_program_id ) id_program_id = 0; |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
163 |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
164 $.post('customReservation.php', { syear: id_syear, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
165 smonth: id_smonth, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
166 sday: id_sday, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
167 shour: id_shour, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
168 smin: id_smin, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
169 eyear: id_eyear, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
170 emonth: id_emonth, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
171 eday: id_eday, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
172 ehour: id_ehour, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
173 emin: id_emin, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
174 channel_id: id_channel_id, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
175 record_mode: id_record_mode, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
176 title: id_title, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
177 description: id_description, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
178 category_id: id_category_id, |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
179 program_id: id_program_id }, function(data) { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
180 if(data.match(/^error/i)){ |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
181 $('#floatBox4Dialog').dialog('close'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
182 alert(data); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
183 } |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
184 else { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
185 var id = parseInt(data); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
186 if( id ) { |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
187 $('#prgID_' + id).addClass('prg_rec'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
188 } |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
189 $('#floatBox4Dialog').dialog('close'); |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
190 } |
|
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
191 }); |
| 120 | 192 }, |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
193 CH_Skip: 1, |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
194 chSkipShow:function() { |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
195 $('#float_titles').width(INISet.num_all_ch * INISet.ch_width + 80); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
196 $('#tv_chs').width(INISet.num_all_ch * INISet.ch_width ); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
197 $('#tvtimes2').css( { left: INISet.num_all_ch * INISet.ch_width + 40 } ).show(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
198 tvtimes_scroll(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
199 $('#ch_title_bar div.ch_title_skip').show(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
200 $('#tv_chs div.ch_set_skip').show(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
201 this.CH_Skip = 0; |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
202 }, |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
203 chSkipHide:function() { |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
204 $('#ch_title_bar div.ch_title_skip').hide(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
205 $('#tv_chs div.ch_set_skip').hide(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
206 $('#float_titles').width( INISet.num_ch * INISet.ch_width + 80 ); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
207 $('#tv_chs').width( INISet.num_ch * INISet.ch_width ); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
208 $('#tvtimes2').css( { left: INISet.num_ch * INISet.ch_width + 40 }).show(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
209 tvtimes_scroll(); |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
210 this.CH_Skip = 1; |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
211 }, |
| 120 | 212 toggle:function() { |
| 213 if( this.CH_Skip ) { | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
214 this.chSkipShow(); |
| 120 | 215 } |
| 216 else { | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
217 this.chSkipHide(); |
| 120 | 218 } |
| 1 | 219 } |
| 220 } | |
| 221 var CTG = { | |
| 222 CN:'ctg', | |
| 223 CV:'0.1', | |
| 224 defaultCk:[], | |
| 225 INI:function(){ | |
| 226 var Ck = this.CkGet()[1]; | |
| 227 if(Ck){ $.each(Ck.split(','), function(){CTG.select(this);})} | |
| 228 }, | |
| 229 select:function(ctg){ | |
| 230 if($('#category_select .ctg-hide.ctg_'+ctg).length){ | |
| 231 $('#tv_chs .ctg_'+ctg).removeClass('ctg-hide'); | |
| 232 $('#category_select a.ctg_'+ctg).removeClass('ctg-hide'); | |
| 233 } else { | |
| 234 $('#tv_chs .ctg_'+ctg).addClass('ctg-hide'); | |
| 235 $('#category_select a.ctg_'+ctg).addClass('ctg-hide'); | |
| 236 } | |
| 237 this.oCk(); | |
| 238 }, | |
| 239 toggle:function (){$('#category_select ul').toggle();}, | |
| 240 oCk:function(){ | |
| 241 var T=$('#category_select ul li a.ctg-hide'); | |
| 242 var X=[]; | |
| 243 $.each(T.get(), function(){ | |
| 244 $(this).attr('class').match(/ctg_([^ ]+)/); | |
| 245 var TMC=RegExp.$1; | |
| 246 X.push(TMC); | |
| 247 }); | |
| 248 this.CkSet([X.join(',')]); | |
| 249 }, | |
| 250 CkGet:function (){ | |
| 251 var Ck = MDA.Cookie.get(this.CN); | |
| 252 if(!Ck){return this.defaultCk}; | |
| 253 Ck=Ck.replace(/^([^;]+;)/,''); | |
| 254 return Ck.split('+'); | |
| 255 }, | |
| 256 CkSet:function(V){ | |
| 257 MDA.Cookie.set(this.CN,'ver='+this.CV+'+'+V.join('+')); | |
| 258 } | |
| 259 }; | |
| 260 var nowBar = { | |
| 261 defaultID:'tableNowBas', | |
| 262 startTime:null, | |
| 263 endTime:null, | |
| 264 INI:function(){ | |
| 265 if (INISet.tableStartTime && INISet.tableStartTime && INISet.dotMin) { | |
| 266 $('#tvtable').append('<div id="' + this.defaultID + '" style="display:none">now</div>'); | |
| 267 this.startTime = new Date(INISet.tableStartTime); | |
| 268 this.endTime = new Date(INISet.tableEndTime); | |
| 269 $('#' + this.defaultID).width($('#float_titles').width()); | |
| 270 this.ch(); | |
| 271 } | |
| 272 }, | |
| 273 ch:function(){ | |
| 274 var now = new Date(); | |
| 275 if(this.startTime){ | |
| 276 if((now >= this.startTime) && (this.endTime >= now)){ | |
| 277 // console.log((now - this.startTime) / 60000); | |
| 278 $('#' + this.defaultID).css({top:(now - this.startTime) / 60000 * INISet.dotMin}).show() | |
| 279 } else { | |
| 280 $('#' + this.defaultID).hide() | |
| 281 } | |
| 282 } | |
| 283 } | |
| 284 } | |
| 285 | |
| 286 MDA.SCR = { | |
| 287 CN:'scr', | |
| 288 CV:'0.1', | |
| 289 defaultCk:{md:'',x:0,y:0}, | |
| 290 jqSel:[{sel:'#jump-time a.jump',md:'x'},{sel:'#jump-day a.jump',md:'xy'},{sel:'#jump-day a.jump-today',md:'x'},{sel:'#jump-broadcast a.jump',md:'y'}], | |
| 291 INI:function(){ | |
| 292 // this.defaultCk.y = $('#float_titles').position().top; | |
| 293 $.each(this.jqSel, function(){ | |
| 294 var md = this.md; | |
| 295 $(this.sel).click(function(){MDA.SCR.oCk(md)}) | |
| 296 }); | |
| 297 var Ck = this.CkGet(); | |
| 298 // console.log(Ck); | |
| 299 var x = (Ck.md.indexOf('x')>-1)?Ck.x:this.defaultCk.x; | |
| 300 var y = (Ck.md.indexOf('y')>-1)?Ck.y:this.defaultCk.y; | |
| 301 if (Ck.md) { | |
| 302 window.scrollBy(x, y); | |
| 303 } | |
| 304 this.CkClear(); | |
| 305 }, | |
| 306 channel:{ | |
| 307 save:function(){}, | |
| 308 load:function(){} | |
| 309 }, | |
| 310 time: { | |
| 311 }, | |
| 312 oCk:function(xy){ | |
| 313 this.CkSet(['md=' + ((!xy)?'xy':xy), | |
| 314 'x=' + $(document ).scrollLeft(), | |
| 315 'y=' + $(document ).scrollTop()]); | |
| 316 }, | |
| 317 CkGet:function (){ | |
| 318 var Ck = MDA.Cookie.get(this.CN); | |
| 319 if(!Ck){return this.defaultCk}; | |
| 320 Ck=Ck.replace(/^([^;]+;)/,'').split('+'); | |
| 321 var ret = {}; | |
| 322 $.each(Ck, function(){ | |
| 323 var str = this.split('=', 2); | |
| 324 ret[str[0]] = str[1]; | |
| 325 }) | |
| 326 return ret; | |
| 327 }, | |
| 328 CkSet:function(V){ | |
| 329 MDA.Cookie.set(this.CN,'ver='+this.CV+'+'+V.join('+')); | |
| 330 }, | |
| 331 CkClear:function(){ | |
| 332 MDA.Cookie.del(this.CN); | |
| 333 } | |
| 334 }; | |
| 335 | |
| 336 $(document).ready(function () { | |
| 337 MDA.Cookie.CookieName = 'tvProgmas_'; | |
| 338 CTG.toggle(); | |
| 339 tvtimes_scroll(); | |
| 340 prg_hover(); | |
| 341 var DG = $('#floatBox4Dialog'); | |
|
23
f3bf1be1a51b
Change: using ajax in custom reservation method
yoneda <yoneda@recorder.localnet.mda.or.jp>
parents:
18
diff
changeset
|
342 DG.dialog({title:'録画予約',width:600}); |
| 1 | 343 DG.dialog('close'); |
| 77 | 344 |
| 345 var DG2 = $('#channelDialog'); | |
| 346 DG2.dialog({title:'チャンネル情報',width:600}); | |
| 347 DG2.dialog('close'); | |
| 348 | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
349 // PRG.toggle(); |
| 120 | 350 |
| 1 | 351 nowBar.INI(); |
| 352 CTG.INI(); | |
| 353 MDA.SCR.INI(); // 番組表の位置保存 | |
| 354 }); | |
| 355 | |
| 356 | |
| 357 </script> | |
| 358 | |
| 359 <style type="text/css"> | |
| 360 <!-- | |
| 361 body {padding:0;margin:0;font-size:10pt;} | |
| 362 a {text-decoration:none;} | |
| 363 | |
| 364 .bold {font-weight:bold;} | |
| 365 .small {font-size:75%;} | |
| 366 | |
| 367 h2 {padding: 4px} | |
| 368 | |
| 369 #float_titles {position:absolute;background-image: url(imgs/trancBG50.png);} | |
| 370 | |
| 371 #float_titles div.set.ctg_sel {background-color:#BBB;color:#3CF} | |
| 372 #float_titles .ctg_sel a{color:#111;} | |
| 373 | |
| 374 #float_titles div.set {float:left;background-color:#444;padding:4px;margin:4px;} | |
| 375 #float_titles span.title {float:left;color:#ACF;} | |
| 376 #float_titles ul {float:left;padding:0;margin:0;} | |
| 377 #float_titles ul li {float:left;list-style:none;margin:0 0 0 4px;} | |
| 378 #float_titles li a{padding:1px 4px;background-color:#555;color:#FFF;} | |
| 379 #float_titles li.selected a{background-color:#48B;} | |
| 380 #float_titles li a:hover{background-color:#28D;} | |
| 381 | |
| 382 #float_titles, #tvtable {} | |
| 383 #tvtable {line-height:1.2em;width:100%;position:relative;} | |
| 384 #tvtimes,#tvtimes2 {position:absolute; background-image: url(imgs/trancBG70.png);} | |
| 385 #tvtimes,#tvtimes2, .tvtimeDM {width:40px;} | |
| 386 #tv_chs {padding-left:40px;padding-right:40px;} | |
| 387 .tvtime { | |
| 34 | 388 height:{/literal}{$height_per_hour}{literal}px; |
| 1 | 389 color:#EEE; |
| 390 text-align:center; | |
| 391 font-weight:bold; | |
| 392 font-size:120%; | |
| 393 background-image: url(imgs/dot2.gif); | |
| 394 background-repeat: repeat-x; | |
| 395 background-position: left bottom; | |
| 396 } | |
| 397 #tvtable div.tvtimetop {padding:8px 0px;} | |
| 34 | 398 |
| 399 #tvtable div.ch_set {width:{/literal}{$ch_set_width}{literal}px;float:left;background-color:#BBB;} | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
400 .ch_set_skip { display: none; } |
| 34 | 401 |
| 402 | |
| 1 | 403 #tvtable div.ch_title, #tvtable div.prg {margin-right:2px;} |
| 404 #tvtable div.ch_title {padding:8px 0px;background-color:#333;color:#DDD;font-weight:bold;text-align:center} | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
405 .ch_title_skip {display: none;} |
| 120 | 406 |
| 1 | 407 #tvtable div.prg { |
| 408 overflow:hidden; | |
| 409 color:#444; | |
| 410 background-image: url(imgs/dot2.gif); | |
| 411 background-image: url(imgs/prg_bg2.png); | |
| 412 background-repeat: repeat-x; | |
| 413 background-position: left bottom; | |
| 414 -moz-border-radius: 0.6em 0.6em 0.3em 0.3em; | |
| 415 -webkit-border-radius: 0.6em; | |
| 416 -webkit-border-bottom-right-radius: 0.3em; | |
| 417 -webkit-border-bottom-left-radius: 0.3em; | |
| 418 } | |
| 419 #tvtable div.prg_none {background-color:#eee;} | |
| 420 #tvtable div.prg_dummy {margin:3px 6px;} | |
| 421 #tvtable div.prg_title {color:#111;font-weight:bold;} | |
| 422 #tvtable div.prg_subtitle {font-size:80%;} | |
| 423 #tvtable div.prg_desc {font-size:80%;} | |
| 424 | |
| 425 #tvtable div.prg_start,#tvtable div.prg_duration,#tvtable div.prg_channel ,#tvtable div.prg_id {display: none;} | |
| 426 | |
| 427 #tvtable div.ctg_news, #category_select a.ctg_news {background-color: #FFFFD8;} | |
| 428 #tvtable div.ctg_etc, #category_select a.ctg_etc {background-color: #FFFFFF;} | |
| 429 #tvtable div.ctg_information, #category_select a.ctg_information {background-color: #F2D8FF;} | |
| 430 #tvtable div.ctg_sports, #category_select a.ctg_sports {background-color: #D8FFFF;} | |
| 431 #tvtable div.ctg_cinema, #category_select a.ctg_cinema {background-color: #FFD8D8;} | |
| 432 #tvtable div.ctg_music, #category_select a.ctg_music {background-color: #D8D8FF;} | |
| 433 #tvtable div.ctg_drama, #category_select a.ctg_drama {background-color: #D8FFD8;} | |
| 434 #tvtable div.ctg_anime, #category_select a.ctg_anime {background-color: #FFE4C8;} | |
| 435 #tvtable div.ctg_variety, #category_select a.ctg_variety {background-color: #FFD2EB;} | |
| 436 #tvtable div.ctg_10, #category_select a.ctg_10 {background-color: #E4F4F4;} | |
| 437 #tvtable div.ctg-hide, #category_select a.ctg-hide {background-color: #F8F8F8;color:#888;} | |
| 438 #tvtable div.ctg-hide .prg_title, #category_select a.ctg-hide .prg_title{color:#666;} | |
| 439 #tvtable div.prg_rec {background-color: #F55;color:#FEE} | |
| 440 #tvtable div.prg_rec .prg_title,#tvtable div.prg_hover .prg_title {color:white;} | |
| 441 #tvtable div.prg_hover {background-color: #28D;color:#EFF} | |
| 442 | |
| 443 #float_titles { z-index:100} | |
| 34 | 444 #float_titles div.ch_title {width:{/literal}{$ch_set_width}{literal}px;float:left;color:#FFF;font-weight:bold;text-align:center} |
| 1 | 445 #float_titles div.ch_title div{padding:8px 0px;margin:0 6px 0 4px;background-image: url(imgs/trancBG50.png);} |
| 446 | |
| 120 | 447 |
| 1 | 448 #float_follows {position:absolute;} |
| 449 #prg_info { | |
| 450 display:none; | |
| 451 position:absolute; | |
| 452 top:0;left:0; | |
| 453 width:100%; | |
| 454 background-color:#246; | |
| 455 color:#BDF; | |
| 456 height:80px; | |
| 457 } | |
| 458 #prg_info div.prg_dummy{margin:4px 20px;} | |
| 459 #prg_info div.prg_title {font-weight:bold;font-size:120%;color:#FFF;} | |
| 460 #prg_info span.prg_sub {color:#FFF;} | |
| 461 | |
| 462 #tableNowBas {position:absolute;background:red;width:100%;top:190px;height:2px;overflow:hidden;} | |
| 463 | |
| 464 | |
| 465 #floatBox4Dialog .prg_title{font-size:120%;font-weight:bold;padding:0.4em 0;text-align:center;} | |
| 466 #floatBox4Dialog .prg_rec_cfg{background:#EEE;padding:1em 2em;margin:0.4em 0;} | |
| 467 #floatBox4Dialog .labelLeft {width:8em;float:left;text-align:right;} | |
| 468 #floatBox4Dialog .button {padding:0.4em 1em;} | |
| 77 | 469 |
| 470 #channelDialog .prg_title{font-size:120%;font-weight:bold;padding:0.4em 0;text-align:center;} | |
| 471 #channelDialog .prg_rec_cfg{background:#EEE;padding:1em 2em;margin:0.4em 0;} | |
| 472 #channelDialog .labelLeft {width:8em;float:left;text-align:right;} | |
| 473 #channelDialog .button {padding:0.4em 1em;} | |
| 474 | |
| 1 | 475 --> |
| 476 </style> | |
| 477 | |
| 478 | |
| 479 {/literal} | |
| 480 | |
| 481 | |
| 482 </head> | |
| 483 | |
| 484 <body> | |
| 485 | |
| 486 <h2>{$sitetitle}</h2> | |
| 487 | |
| 488 | |
| 120 | 489 <div id="float_titles" style="width: {math equation="x + 80" x=$chs_width }px;height:120px;"> |
| 1 | 490 <div id="float_follows"> |
| 491 | |
| 41 | 492 <div class="set"> |
| 493 <ul> | |
| 494 <li><a href="envSetting.php">環境設定</a></li> | |
| 495 </ul> | |
| 496 </div> | |
| 497 | |
| 1 | 498 <div class="set ctg_sel" id="category_select"> |
| 499 <span class="title"><a href="javascript:CTG.toggle()">強調表示</a></span> | |
| 500 | |
| 501 <ul> | |
| 502 {foreach from=$cats item=cat} | |
| 503 <li><a href="javascript:CTG.select('{$cat.name_en}');" class="ctg_{$cat.name_en}">{$cat.name_jp}</a></li> | |
| 504 {/foreach} | |
| 505 </ul> | |
| 506 </div> | |
| 507 | |
| 508 <div id="time_selects"> | |
| 509 <div class="set" id="jump-broadcast" > | |
| 510 <span class="title">放送波選択</span> | |
| 511 <ul> | |
| 512 {foreach from=$types item=type } | |
| 513 <li {$type.selected}><a class="jump" href="{$type.link}">{$type.name}</a></li> | |
| 514 {/foreach} | |
| 515 </ul><br style="clear:left;" /> | |
| 516 </div> | |
| 517 | |
| 518 <div class="set" id="jump-time"> | |
| 519 <span class="title">時間</span> | |
| 520 <ul> | |
| 521 {foreach from=$toptimes item=top} | |
| 522 <li><a class="jump" href="{$top.link}">{$top.hour}~</a></li> | |
| 523 {/foreach} | |
| 524 </ul><br style="clear:left;" /> | |
| 525 </div> | |
| 120 | 526 |
| 527 <div class="set"> | |
| 528 <ul><li><a class="jump" href="javascript:PRG.toggle()">チャンネル表示</a></li></ul> | |
| 529 </div> | |
| 530 | |
| 1 | 531 <br style="clear:left;" /> |
| 532 | |
| 533 <div class="set"> | |
| 534 <ul> | |
| 535 <li><a href="programTable.php">番組検索</a></li> | |
| 536 <li><a href="reservationTable.php">録画予約一覧</a></li> | |
| 537 <li><a href="recordedTable.php">録画済一覧</a></li> | |
| 538 </ul> | |
| 539 </div> | |
| 540 | |
| 541 <div class="set" id="jump-day" > | |
| 542 <span class="title">日付</span> | |
| 543 <ul> | |
| 544 {foreach from=$days item=day} | |
| 545 <li {$day.selected}><a {if $day.d eq "現在" } class="jump-today" {else} class="jump" {/if} href="{$day.link}">{$day.d}{$day.ofweek}</a></li> | |
| 546 {/foreach} | |
| 547 </ul><br style="clear:left;" /> | |
| 548 </div> | |
| 549 | |
| 550 | |
| 551 </div> | |
| 552 <br style="clear:left;" /> | |
| 553 <div id="prg_info"><div class="dummy">test</div></div> | |
| 554 </div> | |
| 555 | |
| 120 | 556 |
| 557 <!-- チャンネル局名 --> | |
| 558 <div id="ch_title_bar" style="position:absolute;bottom:0;"> | |
| 1 | 559 <div class="tvtimeDM" style="float:left;"> </div> |
| 560 {foreach from=$programs item=program } | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
561 <div id="ch_title_{$program.channel_disc}" class="ch_title{if $program.skip == 1 } ch_title_skip{/if}" > |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
562 <div style="cursor: pointer" onClick="javascript:PRG.chdialog('{$program.channel_disc}')" >{$program.station_name}</div> |
| 120 | 563 </div> |
| 1 | 564 {/foreach} |
| 565 </div> | |
| 120 | 566 |
| 1 | 567 <br style="clear:left;" /> |
| 568 <div id="prg_info"><div class="dummy"> </div></div> | |
| 569 </div> | |
| 570 | |
| 571 <div id="float_titles_dummy" style="width:1410px;height:120px;"> </div> | |
| 572 | |
| 573 | |
| 574 <div id="tvtable"> | |
| 575 | |
| 576 <div id="tvtimes"> | |
| 577 {foreach from=$tvtimes item=time} | |
| 578 <div class="tvtime">{$time}</div> | |
| 579 {/foreach} | |
| 580 </div> | |
| 581 | |
| 582 <div id="tv_chs" style="width: {$chs_width}px" > | |
| 583 {foreach from=$programs item=program } | |
|
121
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
584 <div id="tv_chs_{$program.channel_disc}" class="ch_set{if $program.skip == 1 } ch_set_skip{/if}" > |
|
ea54c3128da3
mod: ???????????????????????????
Sushi-k <epgrec@park.mda.or.jp>
parents:
120
diff
changeset
|
585 <div class="ch_programs" > |
| 1 | 586 {foreach from=$program.list item=item } |
| 587 <div {if $item.id}id="prgID_{$item.id}"{/if} class="prg {if ! $item.id}prg_none {/if} ctg_{$item.category_name}{if $item.rec gt 0 } prg_rec{/if}" style="height:{$item.height}px;"> | |
| 588 <div class="prg_dummy"> | |
| 589 <div class="prg_title">{$item.title|escape}</div> | |
| 590 <div class="prg_subtitle">{$item.starttime}</div> | |
| 591 <div class="prg_desc">{$item.description|escape}</div> | |
| 592 <div class="prg_channel">{$item.channel}</div> | |
| 593 <div class="prg_start">{$item.prg_start}</div> | |
| 594 <div class="prg_duration">{$item.duration}</div> | |
| 595 <div class="prg_id">{$item.id}</div> | |
| 596 </div> | |
| 597 </div> | |
| 598 {/foreach} | |
| 599 </div> | |
| 600 </div> | |
| 601 {/foreach} | |
| 602 </div> | |
| 603 | |
| 604 <div id="tvtimes2" style="top : 0px; left: {math equation="x + 40" x=$chs_width}px" > | |
| 605 {foreach from=$tvtimes item=time} | |
| 606 <div class="tvtime">{$time}</div> | |
| 607 {/foreach} | |
| 608 </div> | |
| 609 </div> | |
| 610 | |
| 611 | |
| 612 | |
| 613 <div id="floatBox4Dialog">jQuery UI Dialog</div> | |
| 77 | 614 <div id="channelDialog">jQuery UI Dialog</div> |
| 1 | 615 |
| 616 {literal} | |
| 617 <script type="text/javascript"> | |
| 618 var INISet = { | |
| 120 | 619 {/literal} |
| 1 | 620 prgRecordURL : 'simpleReservation.php', // 簡易予約 |
| 621 prgRecordPlusURL : 'recordp.php', // 詳細予約 | |
| 622 prgCancelURL : 'cancelReservation.php', // 予約キャンセル | |
| 120 | 623 dotMin : {$height_per_min}, |
| 624 tableStartTime : '{$top_time}', | |
| 625 tableEndTime : '{$last_time}', | |
| 626 ch_width : {$ch_set_width}, | |
| 627 num_ch : {$num_ch}, | |
| 628 num_all_ch : {$num_all_ch} | |
| 629 {literal} | |
| 1 | 630 } |
| 631 </script> | |
| 632 {/literal} | |
| 633 </body> | |
| 634 </html> |
