summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-10-03 10:03:43 +0200
committerYorhel <git@yorhel.nl>2009-10-03 10:03:43 +0200
commit73161140fba0d7775beca37deaffb78d766f42cd (patch)
tree2932d5f011fb3d4edd1cbcac8cf5d5808ed7c15a
parentacf2bf6be93125689e2f72d7360e5a5a8033d05b (diff)
JS: Rewrote date selector and fixed onclick bug added in c7f7fdbf
-rw-r--r--static/f/script.js85
1 files changed, 45 insertions, 40 deletions
diff --git a/static/f/script.js b/static/f/script.js
index 9b82fa33..06aa0d8f 100644
--- a/static/f/script.js
+++ b/static/f/script.js
@@ -458,40 +458,51 @@ tvsInit();
-/* date input */
+/* D A T E I N P U T */
+
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
-function dtLoad(obj) {
- var r = Math.floor(obj.value) || 0;
- var v = [ Math.floor(r/10000), Math.floor(r/100)%100, r%100 ];
- var i;
- r = '<select onchange="dtSerialize(this)" style="width: 70px"><option value="0">-year-</option>';
- for(i=1980; i<=(new Date()).getFullYear()+5; i++)
- r += '<option value="'+i+'"'+(i == v[0] ? ' selected="selected"':'')+'>'+i+'</option>';
- r += '<option value="9999"'+(v[0] == 9999 ? ' selected="selected"':'')+'>TBA</option>';
- r += '</select><select onchange="dtSerialize(this)" style="width: 100px"><option value="99">-month-</option>';
- for(i=1; i<=12; i++)
- r += '<option value="'+i+'"'+(i == v[1] ? ' selected="selected"':'')+'>'+months[i-1]+'</option>';
- r += '</select><select onchange="dtSerialize(this)" style="width: 70px"><option value="99">-day-</option>';
- for(i=1; i<=31; i++)
- r += '<option value="'+i+'"'+(i == v[2] ? ' selected="selected"':'')+'>'+i+'</option>';
- r += '</select>';
- v = document.createElement('div');
- v.obj = obj;
- v.innerHTML = r;
- obj.parentNode.insertBefore(v, obj);
-}
-function dtSerialize(obj) {
- obj = obj.parentNode;
- var l = obj.getElementsByTagName('select');
- var v = [ l[0].options[l[0].selectedIndex].value*1, l[1].options[l[1].selectedIndex].value*1, l[2].options[l[2].selectedIndex].value*1 ];
- obj = obj.obj;
- if(v[0] == 0) obj.value = 0;
- else if(v[0] == 9999) obj.value = 99999999;
- else obj.value = v[0]*10000 + v[1]*100 + (v[1]==99?99:v[2]);
+
+function dateLoad(obj) {
+ var val = Math.floor(obj.value) || 0;
+ val = [ Math.floor(val/10000), Math.floor(val/100)%100, val%100 ];
+
+ var year = tag('select', {style: 'width: 70px', onchange: dateSerialize}, tag('option', {value:0}, '-year-'));
+ for(var i=1980; i<=(new Date()).getFullYear()+5; i++)
+ year.appendChild(tag('option', {value: i, selected: i==val[0]}, i));
+ year.appendChild(tag('option', {value: 9999, selected: val[0]==9999}, 'TBA'));
+
+ var month = tag('select', {style: 'width: 100px', onchange: dateSerialize}, tag('option', {value:99}, '-month-'));
+ for(var i=1; i<=12; i++)
+ month.appendChild(tag('option', {value: i, selected: i==val[1]}, months[i-1]));
+
+ var day = tag('select', {style: 'width: 70px', onchange: dateSerialize}, tag('option', {value:99}, '-day-'));
+ for(var i=1; i<=31; i++)
+ day.appendChild(tag('option', {value: i, selected: i==val[2]}, i));
+
+ obj.parentNode.insertBefore(tag('div', {date_obj: obj}, year, month, day), obj);
+}
+
+function dateSerialize() {
+ var div = this.parentNode;
+ var sel = byName(div, 'select');
+ var val = [
+ sel[0].options[sel[0].selectedIndex].value*1,
+ sel[1].options[sel[1].selectedIndex].value*1,
+ sel[2].options[sel[2].selectedIndex].value*1
+ ];
+ div.date_obj.value = val[0] == 0 ? 0 : val[0] == 9999 ? 99999999 : val[0]*10000+val[1]*100+(val[1]==99?99:val[2]);
+ alert(div.date_obj.value);
+}
+
+{
+ var l = byClass('input', 'dateinput');
+ for(i=0; i<l.length; i++)
+ dateLoad(l[i]);
}
+
// search box
var i = x('sq');
i.onfocus = function () {
@@ -589,7 +600,7 @@ function dtSerialize(obj) {
// Advanced search
if(x('advselect'))
- x('advselect').onload = function() {
+ x('advselect').onclick = function() {
var e = x('advoptions');
e.className = e.className.indexOf('hidden')>=0 ? '' : 'hidden';
this.getElementsByTagName('i')[0].innerHTML = e.className.indexOf('hidden')>=0 ? '&#9656;' : '&#9662;';
@@ -622,9 +633,9 @@ function dtSerialize(obj) {
// update spoiler cookie on VN search radio button
if(x('sp_0')) {
- x('sp_0').onload = function(){setCookie('tagspoil',0)};
- x('sp_1').onload = function(){setCookie('tagspoil',1)};
- x('sp_2').onload = function(){setCookie('tagspoil',2)};
+ x('sp_0').onclick = function(){setCookie('tagspoil',0)};
+ x('sp_1').onclick = function(){setCookie('tagspoil',1)};
+ x('sp_2').onclick = function(){setCookie('tagspoil',2)};
if((i = getCookie('tagspoil')) == null)
i = 1;
x('sp_'+i).checked = true;
@@ -644,7 +655,7 @@ function dtSerialize(obj) {
// NSFW toggle for screenshots
if(x('nsfwhide'))
- x('nsfwhide').onload = function() {
+ x('nsfwhide').onclick = function() {
var s=0;
var l = x('screenshots').getElementsByTagName('div');
for(var i=0;i<l.length;i++) {
@@ -706,12 +717,6 @@ function dtSerialize(obj) {
document.body.appendChild(d);
}
- // date selector
- l = document.getElementsByTagName('input');
- for(i=0;i<l.length;i++)
- if(l[i].className == 'dateinput')
- dtLoad(l[i]);
-
// make some fields readonly when patch flag is set
if(x('jt_box_rel_geninfo')) {
var func = function() {