var med = { cd: 'CD', dvd: 'DVD', gdr: 'GD-ROM', blr: 'Blu-Ray disk', 'in':'Internet download', pa: 'Patch', otc: 'Other (console)' }; var vrel = [ 'Sequel', 'Prequel', 'Same setting', 'Alternative setting', 'Alternative version', 'Same characters', 'Side story', 'Parent story', 'Summary', 'Full story', 'Other' ]; var md;var pd;var rl;var vn;var ct; function dInit() { md = x('md_select'); if(md) { md.onclick = mdChangeSel; mdLoad(); md.selectedIndex = 0; mdChangeSel(); } pd = x('pd_select'); if(pd) { pd.onclick = pdChangeSel; pdLoad(); pd.selectedIndex = 0; pdChangeSel(); } rl = x('rl_select'); if(rl) { rl.onclick = rlChangeSel; rlLoad(); rl.selectedIndex = 0; rlChangeSel(); } vn = x('vn_select'); if(vn) { vn.onclick = vnChangeSel; vnLoad(); vn.selectedIndex = 0; vnChangeSel(); } ct = x('categories'); if(ct) catLoad(); } function qq(v) { return v.replace(/&/g,"&").replace(//,">").replace(/'/g,/*'*/ "\\'").replace(/"/g,/*"*/'"'); } // small AJAX wapper var hr = false; function ajax(url, func) { if(hr) hr.abort(); hr = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); if(hr == null) { alert("Your browse does not support the functionality this website requires."); return; } hr.onreadystatechange = func; hr.open('GET', url, true); hr.send(null); } /************************\ * M E D I A * \************************/ function mdChangeSel() { var sel = md.options[md.selectedIndex || 0]; var o = x('md_conts'); var i; if(sel.value == '0_new') { var l = ''; var q = ''; for(i in med) l += ''; for(i=1;i<10;i++) q += ''; o.innerHTML = '' + '' + '
' + '' + '
Qty is only required for CD & DVD'; } else { o.innerHTML = 'Selected "' + sel.text + '"
' + ''; } } function mdAddRem(id) { var i; var d = 0; var o = id ? null : x('md_S').options[x('md_S').selectedIndex]; var qty = id ? null : x('md_Q').options[x('md_Q').selectedIndex].value; var v = id ? id : (o.value != 'cd' && o.value != 'dvd' && o.value != 'gdr' && o.value != 'blr' ? o.value : (o.value + '_' + qty)); for(i=0;i= 0 && qty == 0) { alert('Please specify the quantity'); return; } md.options[md.options.length] = new Option(mdString(qty, o.value), v); } else if(id) { md.options[0].selected = true; mdChangeSel(); } mdSerialize(); } function mdSerialize() { var dest = x('media'); var str = ''; var i; for(i=0;i0 ? ',' : '') + md.options[i].value); dest.value = str; } function mdLoad() { var me = x('media').value.split(','); var i, j; for(i=0;i 1 ? 's' : ''); } /************************\ * P R O D U C E R S * \************************/ function pdChangeSel() { var sel = pd.options[pd.selectedIndex || 0]; var o = x('pd_conts'); var i; if(sel.value == '0_new') { o.innerHTML = '' + '
' + '' + 'Add new producer'; pdDoSearch(''); } else { o.innerHTML = 'Selected "' + sel.text + '"
' + ''; } } function pdEnter(ev) { var c = document.layers ? ev.which : document.all ? event.keyCode : ev.keyCode; if(c == 13) { pdDoSearch(0); return false; } return true; } function pdDoSearch(f) { var v = x('pd_S').value; var d = x('pd_R'); if(v.length < 1) d.innerHTML = 'Hint: type pX if you know the producer id.'; else { if(f) d.innerHTML = '...searching...'; ajax('/xml/producers.xml?q='+escape(v)+'&r='+(Math.floor(Math.random()*999)+1), function () { if(!hr || hr.readyState != 4 || !hr.responseText) return; if(hr.status != 200) return alert('Whoops, error! :('); var items = hr.responseXML.getElementsByTagName('item'); if(!items || items.length < 1) { d.innerHTML = 'No results'; return false; } var res = ''; var i,j; for(i=0; i' + '
'; } d.innerHTML = res; }); } } function pdAddRem(id, name) { var i; var d = 0; for(i=0;i0 ? '|||' : '') + pd.options[i].value); dest.value = str; } function pdLoad() { var pds = x('producers').value.split('|||'); if(!pds[0]) return; var i; for(i=0;i'+vrel[i]+''; if(sel.value == '0_new') { o.innerHTML = '' + '
' + '' + ''; rlDoSearch(''); } else { o.innerHTML = sel.value.split(',', 3)[2] + '
' + ''; } } function rlEnter(ev) { var c = document.layers ? ev.which : document.all ? event.keyCode : ev.keyCode; if(c == 13) { rlDoSearch(0); return false; } return true; } function rlDoSearch(f) { var v = x('rl_S').value; var d = x('rl_R'); if(v.length < 1) d.innerHTML = 'Search for a visual novel to add a relation.

' + 'Hint: type vX if you know the VN id.'; else { if(f) d.innerHTML = '...searching...'; ajax('/xml/vn.xml?q='+escape(v)+'&r='+(Math.floor(Math.random()*999)+1), function () { if(!hr || hr.readyState != 4 || !hr.responseText) return; if(hr.status != 200) return alert('Whoops, error! :('); rlsel = ''; var items = hr.responseXML.getElementsByTagName('item'); if(!items || items.length < 1) { d.innerHTML = 'No results'; return false; } var res = ''; var i,j; for(i=0; i' + '
'; } d.innerHTML = res; }); } } function rlAddRem(id, name) { var i; var rs = x('rl_L').selectedIndex; if(id && name) { rlsel = id; rlname = name; } else if(id) { if(!rs) return; if(rs == x('rl_L').options.length-1) { // remove for(i=0;i0 ? '|||' : '') + rl.options[i].value); dest.value = str; } function rlLoad() { var rls = x('relations').value.split('|||'); if(!rls[0]) return; var i; for(i=0;i'+vrel[i]+''; if(sel.value == '0_new') { o.innerHTML = '' + '
' + ''; vnDoSearch(''); } else { o.innerHTML = 'Selected "' + sel.text + '"
' + ''; } } function vnEnter(ev) { var c = document.layers ? ev.which : document.all ? event.keyCode : ev.keyCode; if(c == 13) { vnDoSearch(0); return false; } return true; } function vnDoSearch(f) { var v = x('vn_S').value; var d = x('vn_R'); if(v.length < 1) d.innerHTML = 'Hint: type vX if you know the visual novel id.'; else { if(f) d.innerHTML = '...searching...'; ajax('/xml/vn.xml?q='+escape(v)+'&r='+(Math.floor(Math.random()*999)+1), function () { if(!hr || hr.readyState != 4 || !hr.responseText) return; if(hr.status != 200) return alert('Whoops, error! :('); var items = hr.responseXML.getElementsByTagName('item'); if(!items || items.length < 1) { d.innerHTML = 'No results'; return false; } var res = ''; var i,j; for(i=0; i' + '
'; } d.innerHTML = res; }); } } function vnAddRem(id, title) { var i; var d = 0; for(i=0;i0 ? '|||' : '') + vn.options[i].value + ',' + vn.options[i].text); dest.value = str; } function vnLoad() { var vns = x('vn').value.split('|||'); if(!vns[0]) return; var i; for(i=0;i 0) r+=(r?',':'')+l[i]+cats[l[i]]; ct.value = r; return false; }; } } function catSet(id, rnk) { var c = rnk == 0 ? '#000' : rnk == 1 ? '#090' : rnk == 2 ? '#990' : '#900'; x('b_'+id).style.color = c; x('cat_'+id).style.color = c; x('b_'+id).innerHTML = rnk; }