//  citation-export.js
//	Curran Riley
//	Script to take parameters on url and turn them into a form to export to RefWorks and a form for RIS format

function createCitationServiceURL() {

	// Initialize OpenURL variables
	
	var openURLLead = 'http://ezproxy.library.wisc.edu/login?url=http://www.library.wisc.edu/citation/?';

	var accno = '';
	var au = '';
	var aucorp = '';
	var callnumber = '';
	var coden = '';
	var contents = '';
	var database = '';
	var date = '';
	var edition = '';
	var genre = '';
	var isbn = '';
	var issn = '';
	var issue = '';
	var oclc = '';
	var notes = '';
	var pages = '';
	var place = '';
	var pub = '';
	var series = '';
	var stitle = '';
	var subjects = '';
	var summary = '';
	var title = '';
	var url = '';

	var re1 = / /g;
	var re2 = /\n/g;
	var re3 = /&amp;/g;
	var re4 = /\?/g;
	var re5 = /\=/g;
	var re6 = /\"/g;

	// Iterate through every TR
	
	var tr = document.getElementsByTagName('TR');
	
	for(i = 0; i < tr.length; i++) {

		var marcLabel = tr[i].getElementsByTagName('TH');
		var marcData = tr[i].getElementsByTagName('TD');
		
		if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Accession Number:') {
			accno = marcData[0].innerHTML;
			accno = accno.replace(re1,"%20");
			accno = accno.replace(re2,"");
			//alert (accno);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Author:') {
			au = marcData[0].innerHTML;
			au = au.replace(re1,"%20");
			au = au.replace(re2,"");
			//alert (au);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Call Number:') {
			callnumber = marcData[0].innerHTML;
			callnumber = callnumber.replace(re1,"%20");
			//alert (callnumber);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'CODEN:') {
			coden = marcData[0].innerHTML;
			coden = coden.replace(re1,"%20");
			//alert (coden);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Contents:') {
			contents = marcData[0].innerHTML;
			contents = contents.replace(re1,"%20");
			contents = contents.replace(re2,"");
			contents = contents.replace(re3,"ampersand");
			contents = contents.replace(re4,"qmark");
			//alert (contents);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Database:') {
			database = marcData[0].innerHTML;
			database = database.replace(re1,"%20");
			//alert (database);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Date of Publication:') {
			date = marcData[0].innerHTML;
			date = date.replace(re1,"%20");
			date = date.replace(re2,"");
			date = date.replace(re4,"qmark");
			date = date.replace(re5,"eqsign");
			date = date.replace(".","");
			date = date.replace("[","%5B");
			date = date.replace("]","%5D");
			//alert (date);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Edition:') {
			edition = marcData[0].innerHTML;
			edition = edition.replace(re1,"%20");
			//alert (edition);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Genre:') {
			genre = marcData[0].innerHTML;
			genre = genre.replace(re1,"%20");
			genre = genre.replace(re2,"");
			//alert (genre);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'ISBN:') {
			isbn = marcData[0].innerHTML;
			isbn = isbn.replace(re1,"%20");
			isbn = isbn.replace(re2,"");
			isbn = isbn.replace("%20:","");
			//alert (isbn);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'ISSN:') {
			issn = marcData[0].innerHTML;
			issn = issn.replace(re1,"%20");
			//alert (issn);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Notes:') {
			notes = marcData[0].innerHTML;
			notes = notes.replace(re1,"%20");
			notes = notes.replace(re2,"");
			notes = notes.replace(re3,"ampersand");
			notes = notes.replace(re4,"qmark");
			notes = notes.replace(re6,"%22");
			//alert (notes);
		}
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'OCLC:') {
			oclc = marcData[0].innerHTML;
			oclc = oclc.replace(re1,"%20");
			oclc = oclc.replace(re2,"");
			//alert (oclc);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Pages:') {
			pages = marcData[0].innerHTML;
			pages = pages.replace(re1,"%20");
			pages = pages.replace("%20:","");
			pages = pages.replace("p.%20;","");
			//alert (pages);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Place of Publication:') {
			place = marcData[0].innerHTML;
			place = place.replace(re1,"%20");
			place = place.replace(re2,"");
			place = place.replace("%20:","");
			//alert (place);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Publisher:') {
			pub = marcData[0].innerHTML;
			pub = pub.replace(re1,"%20");
			pub = pub.replace(re2,"");
			pub = pub.replace(",","");
			//alert (pub);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Series:') {
			series = marcData[0].innerHTML;
			series = series.replace(re1,"%20");
			//alert (series);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Short Title:') {
			stitle = marcData[0].innerHTML;
			stitle = stitle.replace(re1,"%20");
			stitle = stitle.replace(re4,"qmark");
			//alert (stitle);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Subjects:') {
			subjects = marcData[0].innerHTML;
			subjects = subjects.replace(re1,"%20");
			subjects = subjects.replace(re2,"");
			subjects = subjects.replace(re3,"ampersand");
			subjects = subjects.replace(re4,"qmark");
			//alert (subjects);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Summary:') {
			summary = marcData[0].innerHTML;
			summary = summary.replace(re1,"%20");
			summary = summary.replace(re2,"");
			summary = summary.replace(re3,"ampersand");
			summary = summary.replace(re4,"qmark");
			//alert (summary);
		}
		
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Title:') {
			title = marcData[0].innerHTML;
			title = title.replace(re1,"%20");
			title = title.replace(re2,"");
			title = title.replace(re3,"ampersand");
			title = title.replace(re4,"qmark");
			//alert (title);
		}
		else if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Permalink:') {
			url = marcData[0].innerHTML;
			url = url.replace(re4,"qmark");
			url = url.replace(re5,"eqsign");
			//alert (url);
		}
		
	}
	
	//	openURL = openURLLead + 'genre=' + genre + '&amp;accno=' + accno + '&amp;au=' + au + '&amp;btitle=' + title + '&amp;stitle=' + stitle + '&amp;callnumber=' + callnumber + '&amp;coden=' + coden + '&amp;database=' + database + '&amp;edition=' + edition + '&amp;oclc=' + oclc + '&amp;pub=' + pub + '&amp;tpages=' + pages + '&amp;date=' + date + '&amp;place=' + place + '&amp;isbn=' + isbn + '&amp;series=' + series + '&amp;url=' + url;

	openURL = openURLLead + 'genre=' + genre;
	
	if (accno != '')		{openURL = openURL + '&amp;accno=' + accno}
	if (au != '') 			{openURL = openURL + '&amp;au=' + au}
	if (aucorp != '') 		{openURL = openURL + '&amp;aucorp=' + aucorp}
	if (callnumber != '')	{openURL = openURL + '&amp;callnumber=' + callnumber}
	if (contents != '')		{openURL = openURL + '&amp;contents=' + contents}
	if (coden != '')		{openURL = openURL + '&amp;coden=' + coden}
	if (database != '')		{openURL = openURL + '&amp;database=' + database}
	if (date != '')			{openURL = openURL + '&amp;date=' + date}
	if (edition != '')		{openURL = openURL + '&amp;edition=' + edition}
	if (isbn != '')			{openURL = openURL + '&amp;isbn=' + isbn}
	if (issn != '')			{openURL = openURL + '&amp;issn=' + issn}
	if (issue != '')		{openURL = openURL + '&amp;issue=' + issue}
	if (notes != '')		{openURL = openURL + '&amp;notes=' + notes}
	if (oclc != '')			{openURL = openURL + '&amp;oclc=' + oclc}
	if (pages != '')		{openURL = openURL + '&amp;tpages=' + pages}
	if (place != '')		{openURL = openURL + '&amp;place=' + place}
	if (pub != '')			{openURL = openURL + '&amp;pub=' + pub}
	if (series != '')		{openURL = openURL + '&amp;series=' + series}
	if (stitle != '')		{openURL = openURL + '&amp;stitle=' + stitle}
	if (subjects != '')		{openURL = openURL + '&amp;subjects=' + subjects}
	if (summary != '')		{openURL = openURL + '&amp;summary=' + summary}
	if (title != '')		{openURL = openURL + '&amp;btitle=' + title}
	if (url != '')			{openURL = openURL + '&amp;url=' + url}

	//alert(openURL);

	for(i = 0; i < tr.length; i++) {

		var marcLabel = tr[i].getElementsByTagName('TH');
		var marcData = tr[i].getElementsByTagName('TD');
		
		if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Export:') {
			marcData[0].innerHTML = '<a href="' + openURL + '">Export Record</a>';
		}
		
	}
	
}

function createCitationLink() {

	// test if it is the refworks display or bail out
	
	var tr = document.getElementsByTagName('TR');
	
	for(i = 0; i < tr.length; i++) {

		var marcLabel = tr[i].getElementsByTagName('TH');
		var marcData = tr[i].getElementsByTagName('TD');
		
		if (marcLabel.length == 1 && marcLabel[0].innerHTML == 'Genre:') {
			createCitationServiceURL();	
		}
		else {
		}
	}
	
}
