<!--	
// var pLst; // I assume that html-file includes getpublist.cgi as javascript. 
var pObj;

// ----
function makeURLsBlock(rcd) {
	var os='';

	os+='<div class="pubTool-URLs">'
	if (rcd.urloffile) {
		os+='<span class="pubTool-URL">'
		os+='<a href="'+rcd.urloffile+'">Download paper</a>';
		os+='</span>'
	}
	if (rcd.urlofDL) {
		os+='<span class="pubTool-URL">'
		os+='<a href="'+rcd.urlofDL+'">Digital Library</a>';
		os+='</span>'
	}
	if (rcd.urlofconf) {
		os+='<span class="pubTool-URL">'
		os+='<a href="'+rcd.urlofconf+'">Conference web page</a>';
		os+='</span>'
	}

	// add google search 
	if (rcd.type=='Paper' || rcd.type=='Reviewed Paper' || rcd.type=='Book' || rcd.type=='Journal' || rcd.type=='Demonstration' || rcd.type=='Poster') {
		os+='<span class="pubTool-URL">'
		os+='<a href="http://scholar.google.com/scholar?q='+rcd.title+'">Search by Google Scholar</a>';
		os+='</span>'
	}
	os+='</div>'

	return os;
}

// ----
function makeCategoryTitle(categoryValue, numPubs) {
	var html='';

	html='<div class="pubTool-categoryTitle">'+categoryValue;

	html+=' <span class="pubTool-publicationNumber">';
	if (numPubs > 1) {
		html+='('+numPubs+' publications)';
	} else {
		html+='('+numPubs+' publication)';
	}
	html+='</span>';
	html+='</div>';

	return html;
}

// ----
function makeAuthorBlock(rcd) {
	var names='';
	var as=rcd.author.split(',');

  if (rcd.author.length<1 || as.length<1) { return rcd.author; }

	for (var idx=0; idx<as.length; ++idx) {
		var aObj=null;
		var nm=as[idx];

		// find same name object from an author list.
		for (var v=0; v<pLst.authors.length; ++v) {
			if (nm==pLst.authors[v].name || nm==pLst.authors[v].nname) {
				aObj=pLst.authors[v];
				break;
			}
		}

		if (aObj) {
			// もし自分ならば，強調表示
			if (1==aObj.id) {
				nm='<span class="pubTool-myself">'+nm+'</span>'
			}
			// もしWebページがあるのなら，リンクを作成
			if (aObj.url) {
				nm='<a href="'+aObj.url+'">'+nm+'</a>';
			}
		}

		names+=nm+',&nbsp;';
	}

	return names;
}

// ----
function convertPubrecordToHTML(rcd) {
	var os='';

	os+='<div class="pubTool-Record">'

	os+='<div class="pubTool-type">'+rcd.type+'</div>';
	os+='<div class="pubTool-title">'+rcd.title+'</div>';
	os+='<div class="pubTool-author">'+makeAuthorBlock(rcd)+'</div>';
	os+='<div class="pubTool-desc">';
	if (rcd.desc) { os+=rcd.desc+', '; }
	if (rcd.pages) { os+=rcd.pages+', '; }
	os+=rcd.date;
	os+='</div>';

	os+=makeURLsBlock(rcd);

	os+='</div>'

	return os;
}

// ----
function convertPubrecordToHTMLwithoutType(rcd) {
	var os='';

	os+='<div class="pubTool-Record">'

	os+='<div class="pubTool-title">'+rcd.title+'</div>';
	os+='<div class="pubTool-author">'+makeAuthorBlock(rcd)+'</div>';
	os+='<div class="pubTool-desc">';
	if (rcd.desc) { os+=rcd.desc+', '; }
	if (rcd.pages) { os+=rcd.pages+', '; }
	os+=rcd.date;
	os+='</div>';

	os+=makeURLsBlock(rcd);

	os+='</div>'

	return os;
}

//
// make oObj data structure from pList data object.
// 
function initpObj() {
	// re-initialize pObj object.
	pObj=null;
	pObj=new Object();
	pObj.type     =new Array();
	pObj.year     =new Array();
	pObj.yeartype =new Array();
	pObj.lang     =new Array();
	pObj.project  =new Array();
	pObj.abbrconf =new Array();

	// make some data unique
	for (var idx=0; idx<pLst.pubs.length; ++idx) {
		var dobj=pLst.pubs[idx];

		// make unique in type
		var datatype=dobj.type;
		if (!pObj.type[datatype]) { pObj.type[datatype]=new Array; }
		pObj.type[datatype][pObj.type[datatype].length]=dobj;

		// make unique in year
		var datayear=dobj.year;
		if (!pObj.year[""+datayear]) { pObj.year[""+datayear]=new Array; }
		pObj.year[""+datayear][pObj.year[""+datayear].length]=dobj;

		// make unique in lang
		var datalang=dobj.lang;
		if (!pObj.lang[datalang]) { pObj.lang[datalang]=new Array; }
		pObj.lang[datalang][pObj.lang[datalang].length]=dobj;

		// make unique in conf
		var dataconf=dobj.abbrconf;
		if (!pObj.abbrconf[dataconf]) { pObj.abbrconf[dataconf]=new Array; }
		pObj.abbrconf[dataconf][pObj.abbrconf[dataconf].length]=dobj;

		// make unique in project
		var dataproj=dobj.project;
		if (!pObj.project[dataproj]) { pObj.project[dataproj]=new Array; }
		pObj.project[dataproj].push(dobj);

		// make unique in year and type
		if (!pObj.yeartype[""+dobj.year])
			{ pObj.yeartype[""+dobj.year]=new Array; }
		if (!pObj.yeartype[""+dobj.year][dobj.type]) {
			pObj.yeartype[""+dobj.year][dobj.type]=new Array;
		}
		pObj.yeartype[""+dobj.year][dobj.type].push(dobj);
	}
}

// 
function debug_pObj() {
	var target=document.getElementById('PubTools');
	target.innerHTML='';
	if (target && pLst.pubs.length>0) {

		for (var x in pObj.yeartype) {
			for (var y in pObj.yeartype[x]) {
				target.innerHTML+='<h3>'+x+'-'+y+'</h3><h4>'+pObj.yeartype[x][y].length+'</h4>'; 
			}
		}
		//for (var x in pObj.year) { target.innerHTML+='<h3>'+x+'</h3><h4>'+pObj.year[x].length+'</h4>'; }
		//for (var x in pObj.lang) { target.innerHTML+='<h3>'+x+'</h3>'; }
		//for (var x in pObj.project) { target.innerHTML+='<h3>'+x+'</h3>'; }
		//for (var x in pObj.abbrconf) { target.innerHTML+='<h3>'+x+'</h3>'; }
					
	}
}

// ----
function loadPubList() {
	var target=document.getElementById('PubTools');
	target.innerHTML='';
	if (target && pLst.pubs.length>0) {

		// debug_pObj();
					
		for (var idx=pLst.pubs.length-1; idx>=0; --idx) {
			target.innerHTML+=convertPubrecordToHTML(pLst.pubs[idx]);
		}
	}
}

// ----
function loadPubListByYear () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {
		var ih='';

		for (var yr in pObj.year) {
			var yopt='';
			var ndat=pObj.year[yr].length;
			for (var idx=0; idx<ndat; ++idx) {
				yopt=convertPubrecordToHTML(pObj.year[yr][idx])+yopt;
			}

			yopt=makeCategoryTitle(yr, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadPubListByType () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {
					
		var ih='';
		for (var tp in pObj.type) {
			var yopt='';
			var ndat=pObj.type[tp].length;
			for (var idx=0; idx<ndat; ++idx) {
				yopt=convertPubrecordToHTMLwithoutType(pObj.type[tp][idx])+yopt;
			}

			yopt=makeCategoryTitle(tp, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadPubListByYearType () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {
		var ih='';

		for (var yr in pObj.yeartype) {
			var yopt='';
			var ndat=0;

			for (var tp in pObj.yeartype[yr]) {
				var nrcd=pObj.yeartype[yr][tp].length;
				for (var idx=0; idx<nrcd; ++idx) {
					yopt=convertPubrecordToHTMLwithoutType(pObj.yeartype[yr][tp][idx])+yopt;
				}
				yopt='<div class="pubTool-type">'+tp+' <span style="font-size:8pt;">('+nrcd+' publication(s))</span></div>'+yopt;
				ndat+=nrcd;
			}

			yopt=makeCategoryTitle(yr, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadPubListByLang () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {
					
		var ih='';
		for (var lg in pObj.lang) {
			var yopt='';
			var ndat=pObj.lang[lg].length;
			for (var idx=0; idx<ndat; ++idx) {
				yopt=convertPubrecordToHTML(pObj.lang[lg][idx])+yopt;
			}
			yopt=makeCategoryTitle(lg, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadPubListByConf () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {

		var ih='';
		for (var cf in pObj.abbrconf) {
			var yopt='';
			var ndat=pObj.abbrconf[cf].length;
			for (var idx=0; idx<ndat; ++idx) {
				yopt=convertPubrecordToHTML(pObj.abbrconf[cf][idx])+yopt;
			}
			yopt=makeCategoryTitle(cf, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadPubListByProject () {
	var target=document.getElementById('PubTools');
	target.innerHTML='';

	if (target && pLst.pubs.length>0) {

		var ih='';
		for (var pj in pObj.project) {
			var yopt='';
			var ndat=pObj.project[pj].length;
			for (var idx=0; idx<ndat; ++idx) {
				yopt=convertPubrecordToHTML(pObj.project[pj][idx])+yopt;
			}
			yopt=makeCategoryTitle(pj, ndat)+yopt;
			ih=yopt+ih;
		}

		target.innerHTML=ih;
	}
}

// ----
function loadAuthorsList (includeMe) {
	var target=document.getElementById('PubTools');
	var html='<h3 style="text-align:center;">Author List</h3>';

	if (!pLst.authors || pLst.authors.length<1) { return; }

	for (var v=0; v<pLst.authors.length; ++v) {
		var aObj=pLst.authors[v];

		// author name
		var nms=aObj.name;
		html+='<div class="pubTool-authorName">Name: ';
		if (aObj.nname) { nms+=' ('+aObj.nname+')'; }
		if (aObj.url) { html+='<a href="'+aObj.url+'">'+nms+'</a>'; }
		else { html+=nms; }
		html+='</div>';

		// affiliation of author
		if (aObj.org || aObj.norg) {
			html+='<div class="pubTool-authorAffiliation">Affiliation: '+aObj.org;
			if (aObj.norg) { html+=' / '+aObj.norg; }
			html+='</div>';
		}

		// link to google scholar search
		html+='<div class="pubTool-authorSearch">';
		html+='Google scholar search ';
		if (aObj.name) {
			html+='<a href="http://scholar.google.com/scholar?q=author%3A%22';
			html+=aObj.name;
			html+='%22">by English name</a> | ';
		}
		if (aObj.nname) {
			html+='<a href="http://scholar.google.com/scholar?q=author%3A%22';
			html+=aObj.nname;
			html+='%22">by Native name</a>';
		}
		html+='</div>';
	}

	target.innerHTML=html;
}

function initLoad() {
	initpObj();
	loadPubListByYearType();
}

window.onload=initLoad;
//
// ends here
// -->
