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(/>/,">").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;
}