function cvnLoad() { // load current links var l = byId('vns').value.split(' '); var v = {}; // vid -> { rid: [ role, spoil ], .. } var q = []; // list of v=X parameters for(var i=0; i 1) t.removeChild(e); else if(!e && l.length < 1) t.appendChild(tag('tr', {id:'vns_empty',colspan:3}, tag('td', 'No visual novels selected.'))); } function cvnVNAdd(vn, rel) { var vid = vn.getAttribute('id'); var rels = byName(vn, 'release'); byId('vns_tbl').appendChild(tag('tr', {id:'cvn_v'+vid, cvn_vid:vid, cvn_rels:rels}, tag('td', {'class':'tc_vn',colspan:4}, 'v'+vid+':', tag('a', {href:'/v'+vid}, vn.getAttribute('title')), tag('i', '(', tag('a', {href:'#', onclick:cvnRelNew}, 'add release'), ')') ) )); if(rel) cvnRelAdd(vid, 0, 'primary', 0); cvnEmpty(); } function cvnRelAdd(vid, rid, role, spoil) { var rels = byId('cvn_v'+vid).cvn_rels; var rsel = tag('select', {onchange:cvnRelChange}, tag('option', {value:0}, 'All / others')); for(var i=0; i