var su;
function redirectURL(u) {
var sr = u.toString();
if (sr==su) {
return u;
}
var mw = sr.match(new RegExp('^http://ja\\.wikipedia\\.org/wiki/([^:?#]+)$'));
if (!mw) {
return u;
}
createPopupString(mw[1]);
return null;
}
function findEndTag(sh,its,sp,ns) {
if (its<0) {
return -1;
}
var rt = new RegExp(sp,'ig');
rt.lastIndex = its + ns;
var nt=1;
var mt;
while ((mt=rt.exec(sh))!=null) {
if (mt[0].charAt(1)=='/') {
nt--;
if (nt==0) {
return rt.lastIndex+1;
}
} else {
nt++;
}
}
return -1;
}
function findTablesEnd(sh,its) {
if (its<0) {
return -1;
}
var ite;
while (true) {
ite = findEndTag(sh,its,'?table',6);
if (ite<0) {
return -1;
}
its = sh.indexOf('
ite+1)) {
return ite;
}
}
}
function createPopupString(sw) {
if (!sw) {
v2c.alert('検索語を取得できませんでした。');
return;
}
var su0 = 'http://ja.wikipedia.org/wiki/';
su = su0 + sw;
var sh = v2c.readURL(su);
if (!sh) {
v2c.alert('ページを取得できませんでした。');
return;
}
var vcx = v2c.context;
var rh = new RegExp('>([^<>]+)','ig');
var mh = rh.exec(sh);
if (mh) {
sw = mh[1];
} else {
sw = decodeURIComponent(sw);
}
var sr;
var ma = sh.match(new RegExp(' title="\\w+:曖昧さ回避"','i'));
if (ma) {
var ia = ma.index;
var rl = new RegExp('?[ou]l>','ig');
rl.lastIndex = rh.lastIndex;
sr = '';
var nu=0;
var iu=0;
var ml;
while ((ml=rl.exec(sh))!=null) {
if (ml.index>ia) {
break;
}
if (ml[0].length==4) {
if (nu==0) {
iu = ml.index;
}
nu++;
} else {
nu--;
if (nu<0) {
break;
}
if (nu==0) {
sr += sh.substring(iu,rl.lastIndex);
}
}
}
if (!sr) {
v2c.alert('曖昧さ回避の説明を抽出できませんでした。');
return;
}
sr = ''+sr;
} else {
var re = new RegExp('(?:[^]+?
|<[ou]l>[^]+?[ou]l>)\\n?','ig');
var id = sh.indexOf('-Disambig.');
if (id>0) {
re.lastIndex = id + 100;
} else {
re.lastIndex = rh.lastIndex;
}
var its = sh.indexOf('