summaryrefslogtreecommitdiff
path: root/data/js/relmedia.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/js/relmedia.js')
-rw-r--r--data/js/relmedia.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/data/js/relmedia.js b/data/js/relmedia.js
new file mode 100644
index 00000000..3b1a4f4a
--- /dev/null
+++ b/data/js/relmedia.js
@@ -0,0 +1,68 @@
+function medLoad() {
+ // load the selected media
+ var med = byId('media').value.split(',');
+ for(var i=0; i<med.length && med[i].length > 1; i++)
+ medAdd(med[i].split(' ')[0], Math.floor(med[i].split(' ')[1]));
+
+ medAdd('', 0);
+}
+
+function medAdd(med, qty) {
+ var qsel = tag('select', {'class':'qty', onchange:medSerialize}, tag('option', {value:0}, mt('_redit_form_med_quantity')));
+ for(var i=1; i<=20; i++)
+ qsel.appendChild(tag('option', {value:i, selected: qty==i}, i));
+
+ var msel = tag('select', {'class':'medium', onchange: med == '' ? medFormAdd : medSerialize});
+ if(med == '')
+ msel.appendChild(tag('option', {value:''}, mt('_redit_form_med_medium')));
+ for(var i=0; i<VARS.media.length; i++)
+ msel.appendChild(tag('option', {value:VARS.media[i][0], selected: med==VARS.media[i][0]}, VARS.media[i][1]));
+
+ byId('media_div').appendChild(tag('span', qsel, msel,
+ med != '' ? tag('input', {type: 'button', 'class':'submit', onclick:medDel, value:mt('_js_remove')}) : null
+ ));
+}
+
+function medDel() {
+ var span = this;
+ while(span.nodeName.toLowerCase() != 'span')
+ span = span.parentNode;
+ byId('media_div').removeChild(span);
+ medSerialize();
+ return false;
+}
+
+function medFormAdd() {
+ var span = this;
+ while(span.nodeName.toLowerCase() != 'span')
+ span = span.parentNode;
+ var med = byClass(span, 'select', 'medium')[0];
+ var qty = byClass(span, 'select', 'qty')[0];
+ if(!med.selectedIndex)
+ return;
+ medAdd(med.options[med.selectedIndex].value, qty.options[qty.selectedIndex].value);
+ byId('media_div').removeChild(span);
+ medAdd('', 0);
+ medSerialize();
+}
+
+function medSerialize() {
+ var r = [];
+ var meds = byName(byId('media_div'), 'span');
+ for(var i=0; i<meds.length-1; i++) {
+ var med = byClass(meds[i], 'select', 'medium')[0];
+ var qty = byClass(meds[i], 'select', 'qty')[0];
+
+ /* correct quantity if necessary */
+ if(VARS.media[med.selectedIndex][2] && !qty.selectedIndex)
+ qty.selectedIndex = 1;
+ if(!VARS.media[med.selectedIndex][2] && qty.selectedIndex)
+ qty.selectedIndex = 0;
+
+ r[r.length] = VARS.media[med.selectedIndex][0] + ' ' + qty.selectedIndex;
+ }
+ byId('media').value = r.join(',');
+}
+
+if(byId('jt_box_rel_format'))
+ medLoad();