function createXMLHttpRequest(cbFunc)
{
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
	return XMLhttpObject;
}

// document.getElementById
function $(tagId)
{
	return document.getElementById(tagId);
}
function searchDOI()
{
  textData = document.edit_metadata.dc_citation_doi.value;
  if (textData == "")
  {
    alert("DOIが未入力です");
    $("result_doi").innerHTML = "";
    return false;
  }

  var isPublished = false;
  for (i=0; i< document.edit_metadata.length; i++) {
	if ( document.edit_metadata.elements[i].name == "dc_date_issued_year" ) {
		isPublished = true;
	}
  }
  if (!isPublished) {
    alert("前画面で「出版済」にチェックしてからやり直して下さい");
    $("result_doi").innerHTML = "";
    return false;
  }
	


  httpObj = createXMLHttpRequest(displayData);
  if (httpObj)
  {
    httpObj.open("POST","/cgi-bin/doi.cgi",true);
    httpObj.send("doi="+encodeURI(textData));
  }

}
function displayData()
{
  if ((httpObj.readyState == 4) && (httpObj.status == 200))
  {

    textData = httpObj.responseText;

   if (textData.match(".*No DOI found.*")) {
        alert("no doi found");
   }
   else
   {

    xmlData = httpObj.responseXML;

    var titleTags = xmlData.getElementsByTagName("article_title");
    var journal_titleTags = xmlData.getElementsByTagName("journal_title");
    var yearTags  = xmlData.getElementsByTagName("year");
    var volumeTags  = xmlData.getElementsByTagName("volume");
    var issueTags  = xmlData.getElementsByTagName("issue");
    var first_pageTags  = xmlData.getElementsByTagName("first_page");

    if (titleTags.length > 0) {
      document.edit_metadata.dc_title.value = titleTags.item(0).childNodes[0].nodeValue;
    }
    if (yearTags.length > 0) {
         document.edit_metadata.dc_date_issued_year.value = yearTags.item(0).childNodes[0].nodeValue;
    }
    if (journal_titleTags.length > 0) {
          document.edit_metadata.dc_citation_jtitle.value = journal_titleTags.item(0).childNodes[0].nodeValue;
    }
    if (volumeTags.length > 0) {
       document.edit_metadata.dc_citation_volume.value = volumeTags.item(0).childNodes[0].nodeValue;
    }
    if (issueTags.length > 0) {
       document.edit_metadata.dc_citation_issue.value = issueTags.item(0).childNodes[0].nodeValue;
    }
    if (first_pageTags.length > 0) {
       document.edit_metadata.dc_citation_spage.value = first_pageTags.item(0).childNodes[0].nodeValue;
    }

    issnListTag = xmlData.getElementsByTagName("issn");

    for (i=0; i<issnListTag.length; i++) {
	if (issnListTag.item(i).getAttributeNode("type").nodeValue == "print") {
	   issn_tmp = issnListTag.item(i).childNodes[0].nodeValue;
	   if (issn_tmp.indexOf("-") == -1) {
	      issn = issn_tmp.substring(0,4) + "-" + issn_tmp.substring(4,8);
	   }
	   document.edit_metadata.dc_citation_issn.value = issn;
	} else if (issnListTag.item(i).getAttributeNode("type").nodeValue == "electronic") {
	   eissn_tmp = issnListTag.item(i).childNodes[0].nodeValue;
	   if (eissn_tmp != "00000000") {
	      if (eissn_tmp.indexOf("-") == -1) {
	         eissn = eissn_tmp.substring(0,4) + "-" + eissn_tmp.substring(4,8);
	      }
	      document.edit_metadata.dc_citation_eissn.value = eissn;
           }
	}	   
    }
   }
   $("result_doi").innerHTML = "";
  }else{
    $("result_doi").innerHTML = "<b>Wait...</b>";
  }
}
