<!--  Copyright (c) 1997 - 2009, SirsiDynix - JavaScript functions for enriched content. -->

function addDetailCover(elem,altText,url) {
	var childElem=document.createElement("img");
	childElem.src=url;
	childElem.border="0";
	childElem.alt="["+altText+"]";
	elem.appendChild(childElem);
}

function addDetailCoverShrinkToFitHeight(elem,altText,url) {
	var childElem=document.createElement("img");
	childElem.style.height="97%";
	childElem.src=url;
	childElem.border="0";
	childElem.alt="["+altText+"]";
	elem.appendChild(childElem);
}

function addDetailCoverShrinkToFitWidth(elem,altText,url) {
	var childElem=document.createElement("img");
	childElem.style.width="100%";
	childElem.src=url;
	childElem.border="0";
	childElem.alt="["+altText+"]";
	elem.appendChild(childElem);
}

function addHitlistCover(elem,altText,url,ord) {
    var childElem=document.createElement("input");
    childElem.type="image";
    childElem.name="VIEW^" + ord;
    childElem.src=url;
    childElem.alt="["+altText+"]";
    elem.appendChild(childElem);
}

function addHref(elem,link,text,altText) {
    var childElem=document.createElement("a");
    childElem.href=link;
    childElem.alt=altText;
    childElem.title=altText;
    addTextNode(childElem,text);
    var childLi=document.createElement("li");
    childLi.appendChild(childElem);
    elem.appendChild(childLi);
}

function addTextNode(elem,text) {
    var txtNode=document.createTextNode(text);
    elem.appendChild(txtNode);
}

function buildSyndeticsUrl(baseUrl,clientId,controlTriple,type) {
	var url = baseUrl+createParam("isbn",controlTriple.isbn+"/"+type)+createParam("client",clientId)+createParam("type","xw12")+createParam("upc",controlTriple.upc)+createParam("oclc",controlTriple.oclc);
	return url;
}

function createParam(name,value) {
	var param = "";
    	param+=name.toString();
    	param+="=";
    	param+=value.toString();
    	param+="&";
    	return param;
}

function getDetailCover(baseUrl,clientId,
		isbns,upcs,oclcs,
		coverDivName,coverAltText) {
	var isbnArr = isbns.split(",");
	var upcArr = upcs.split(",");
	var oclcArr = oclcs.split(",");
	var controlTriple = new Array();
	controlTriple.isbn = isbnArr[0];
	controlTriple.upc = upcArr[0];
	controlTriple.oclc = oclcArr[0];
	getDetailCoverSingleControls(baseUrl,clientId,
			controlTriple,
			coverDivName,coverAltText);
}

function getDetailCoverSingleControls(baseUrl,clientId,
		controlTriple,
		coverDivName,coverAltText) {
	if (!(controlTriple.isbn==""&&controlTriple.upc==""&&controlTriple.oclc=="")) {
		var divNode = document.getElementById(coverDivName);
		if (divNode) {
			validateDetailCover(divNode,coverAltText,buildSyndeticsUrl(baseUrl,clientId,controlTriple,'LC.GIF'),buildSyndeticsUrl(baseUrl,clientId,controlTriple,'MC.GIF'));
		}
	}
	else {
		var divNode = document.getElementById(coverDivName);
		if (divNode) {
			divNode.style.height = "0px";
		}
	}
}

function getHitCover(baseUrl,clientId,
		isbns,upcs,oclcs,
		coverDivName,coverAltText,
		ord) {
	var isbnArr = isbns.split(",");
	var upcArr = upcs.split(",");
	var oclcArr = oclcs.split(",");
	var controlTriple = new Array();
	controlTriple.isbn = isbnArr[0];
	controlTriple.upc = upcArr[0];
	controlTriple.oclc = oclcArr[0];
	getHitCoverSingleControls(baseUrl,clientId,
			controlTriple,
			coverDivName,coverAltText,
			ord);
}

function getHitCoverSingleControls(baseUrl,clientId,
		controlTriple,
		coverDivName,coverAltText,
		ord) {
	if (!(controlTriple.isbn==""&&controlTriple.upc==""&&controlTriple.oclc=="")) {
		var divNode = document.getElementById(coverDivName+ord);
		if (divNode) {
			validateImage(divNode,coverAltText,buildSyndeticsUrl(baseUrl,clientId,controlTriple,'SC.GIF'),ord);
		}
	}
	else {
		var divNode = document.getElementById(coverDivName+ord);
		if (divNode) {
			divNode.style.height = "0px";
		}
	}
}

function getNovelistSimilarAuthors(ord,webcat,session,isbns,url,prof,pswd) {
	var isbn=isbns.split(",")[0];
//	var url="http://nr-beta-eit.ebscohost.com/Services/NovelistSelect.asmx/FindSimilarAuthors?prof=demo.eit.sirsi&pwd=ebs2898&authType=profile&isbn="+isbn+"&";
//	SdCommon.lnk("click similar authors: ", url);
	var xmlHttp=getXMLHTTPRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var similar=document.getElementById("similar"+ord);
			removeChildren(similar);
			var responseXML = xmlHttp.responseXML;
			if (responseXML) {
				var authNodes=responseXML.getElementsByTagName("author");
				for(x=0;x<authNodes.length;x++) {
					var plink=authNodes[x].getElementsByTagName("plink")[0].firstChild.data;
					var authName=authNodes[x].getElementsByTagName("authorName")[0].firstChild.data;
					if (plink && authName) {
						var similar=document.getElementById("similar"+ord);
						var searchName = authName.replace(/ /g,"+");
						searchName = escape(searchName);
                                                var link=webcat+"/"+session+"/123?srchfield1=AU^AUTHOR^AUTHORS^Author Processing^author&library=ALL&searchdata1="+searchName;
						addHref(similar, link, authName, "Author's Name ");
					}
				}
				if (authNodes.length < 1)
				{
					showNoSimilar(ord);
				}
			}
		}
	}
	if (xmlHttp) {
//		xmlHttp.open("GET", "/cgi-bin/ptp.sh?"+url, true);
		xmlHttp.open("GET",                    url, true);
		xmlHttp.send(null);
	}
}

function getNovelistSimilarTitles(ord,webcat,session,isbns,url) {
	var isbn=isbns.split(",")[0];
	if (isbn == "") {
		var similar=document.getElementById("similar"+ord);
		removeChildren(similar);
		addTextNode(similar, "No similar titles found");
		return;
	}
//	var url="http://nr-beta-eit.ebscohost.com/Services/NovelistSelect.asmx/FindSimilarSearch?prof=demo.eit.sirsi&pwd=ebs2898&authType=profile&isbn="+isbn+"&";
//	SdCommon.lnk("click similar titles: ", url);
	var xmlHttp=getXMLHTTPRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var similar=document.getElementById("similar"+ord);
			removeChildren(similar);
			var responseXML = xmlHttp.responseXML;
			if (responseXML) {
				var titleNodes=responseXML.getElementsByTagName("record");
				for(x=0;x<titleNodes.length;x++) {
					var title=titleNodes[x].getElementsByTagName("title")[0].firstChild.data;
					var authName=titleNodes[x].getElementsByTagName("author")[0].firstChild.data;
					var matchReasons=titleNodes[x].getElementsByTagName("criteriaMatches");
					var matches="";
					for (y=0;y<matchReasons.length;y++) {
						matches += matchReasons[y].getElementsByTagName("match")[0].firstChild.data+" ";
					}
					var isbnlist=titleNodes[x].getElementsByTagName("isbnList");
					var isbn=isbnlist[0].getElementsByTagName("isbn")[0].firstChild.data;
					if (title) {
						var similar=document.getElementById("similar"+ord);
						var searchTitle = title.replace(/ /g,"+");
						searchTitle = escape(searchTitle);
                                                var link=webcat+"/"+session+"/123?srchfield1=TI^TITLE^SERIES^Title Processing^title&library=ALL&searchdata1=\""+searchTitle+"\"";
						addHref(similar, link, title+": "+authName+"; "+matches, "Title link");
					}
				}
				if (titleNodes.length < 1)
				{
					showNoSimilar(ord);
				}
			}
		}
	}
	if (xmlHttp) {
//		xmlHttp.open("GET", "/cgi-bin/ptp.sh?"+url, true);
		xmlHttp.open("GET",                    url, true);
		xmlHttp.send(null);
	}
}

function getSimilarAuthors(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd) {
	var ncdiv=document.getElementById("ncdiv"+ord);
	var similar=document.getElementById("similar"+ord);
	removeChildren(similar, isbns);

	if (isbns == "") {
		showNoSimilar(ord);
	}
	else {
		hideDivs(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd);
		showSimAuthOpen(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd);
		addTextNode(similar, SdEcValues.getTranslation("Similar Loading"));
		getNovelistSimilarAuthors(ord,webcat,session,isbns,authorUrl,prof,pswd);
	}

	ncdiv.style.display = "block";
	similar.style.display = "block";
}

function getSimilarTitles(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd) {
	var ncdiv=document.getElementById("ncdiv"+ord);
	var similar=document.getElementById("similar"+ord);
	removeChildren(similar);

	if (isbns == "") {
		showNoSimilar(ord);
	}
	else {
		hideDivs(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd);
		showSimTitleOpen(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd);
		addTextNode(similar, SdEcValues.getTranslation("Similar Loading"));
		getNovelistSimilarTitles(ord,webcat,session,isbns,titleUrl);
	}
		
	ncdiv.style.display = "block";
	similar.style.display = "block";
}

function getXMLHTTPRequest() {
    	var xRequest = null;
    	if (window.XMLHttpRequest)
    	{
		xRequest= new XMLHttpRequest();
    	}
    	else if (typeof ActiveXObject != "undefined")
    	{
		xRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}
    	return xRequest;
}

function hideDivs(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd) {
	var ncdiv=document.getElementById("ncdiv"+ord);
	var similar=document.getElementById("similar"+ord);
	ncdiv.style.display = "none";
	removeChildren(similar);
	similar.style.display = "none";

	var authorLabel = SdEcValues.getTranslation("Similar Authors");
	var titlesLabel = SdEcValues.getTranslation("Similar Titles" );
	var altText4Icon= SdEcValues.getTranslation("Expand Icon"    );
	var  expandPng  = SdEcValues.getParameter  ("down-gif"       );
	var useSimAuth  = SdEcValues.getParameter  ("use-novelist-authors");
	var useSimTitle = SdEcValues.getParameter  ("use-novelist-titles");

	if (useSimAuth == 1) {
	    var simAuthLink = document.getElementById("novelist_similar_author_link"+ord);
	    simAuthLink.innerHTML='<img src="' + expandPng + '" alt="' + altText4Icon + '" title="Display Similar Authors">'+authorLabel;
	    simAuthLink.href = "javascript:getSimilarAuthors('"+ord+"','"+webcat+"','"+session+"','"+isbns+"','"+authorUrl+"','"+titleUrl+"','"+prof+"','"+pswd+"')";
	}
	if (useSimTitle != 0) {
	    var simTitleLink = document.getElementById("novelist_similar_title_link"+ord);
	    simTitleLink.innerHTML='<img src="' + expandPng + '" alt="' + altText4Icon + '" title="Display Similar Authors">'+titlesLabel ;
	    simTitleLink.href = "javascript:getSimilarTitles('"+ord+"','"+webcat+"','"+session+"','"+isbns+"','"+authorUrl+"','"+titleUrl+"','"+prof+"','"+pswd+"')";
	}

}

function removeChildren(node) {
	while (node.hasChildNodes()) {
		node.removeChild(node.firstChild);
	}
}

function showSimAuthOpen(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd) {
	var simAuthLink = document.getElementById("novelist_similar_author_link"+ord);
	simAuthLink.href = "javascript:hideDivs('"+ord+"','"+webcat+"','"+session+"','"+isbns+"','"+authorUrl+"','"+titleUrl+"','"+prof+"','"+pswd+"')";

	var label        = SdEcValues.getTranslation("Similar Authors");
	var altText4Icon = SdEcValues.getTranslation("Collapse Icon"  );
	var  png         = SdEcValues.getParameter  ("up-gif"         );

	simAuthLink.innerHTML='<img src="' + png + '" alt="' + altText4Icon + '" title="Hide Similar Authors">'+label;
}

function showSimTitleOpen(ord,webcat,session,isbns,authorUrl,titleUrl,prof,pswd) {
	var simTitleLink = document.getElementById("novelist_similar_title_link"+ord);
	simTitleLink.href = "javascript:hideDivs('"+ord+"','"+webcat+"','"+session+"','"+isbns+"','"+authorUrl+"','"+titleUrl+"','"+prof+"','"+pswd+"')";

	var label         = SdEcValues.getTranslation("Similar Titles");
	var altText4Icon  = SdEcValues.getTranslation("Collapse Icon" );
	var  png          = SdEcValues.getParameter  ("up-gif"        );

	simTitleLink.innerHTML='<img src="' + png + '" alt="' + altText4Icon + '" title="Hide Similar Titles">' + label;
}

function showNoSimilar(ord) {
	var similar=document.getElementById("similar"+ord);
	removeChildren(similar);
	addTextNode(similar, SdEcValues.getTranslation("Similar Nothing Found"));
}

function validateDetailCover(elem,altText,url,urlM) {
	var validator = new Image();
	validator.elem=elem;
	validator.altText=altText;
	validator.urlM=urlM;
	validator.onload=function() {
		//Add image if it is valid
		if(this.height > 1) {
			if((this.width/this.elem.clientWidth)>(this.height/this.elem.clientHeight)) {
				addDetailCoverShrinkToFitWidth(this.elem,this.altText,this.src);
			}
			else {
				addDetailCoverShrinkToFitHeight(this.elem,this.altText,this.src);
			}
		}
		else {
			var validatorM = new Image();
			validatorM.elem = this.elem;
			validatorM.altText=this.altText;
			validatorM.onload=function() {
				//Add image if it is valid
				if(this.height > 1) {
					// this.elem.style.height = "200px";
					addDetailCover(this.elem,this.altText,this.src);
				}
				else {
					this.elem.style.height = "0px";
				}
			};
			validatorM.onerror=function() {this.elem.style.height = "0px";};
			validatorM.src=this.urlM;
		}
	};
	validator.onerror=function() {
		var validatorM = new Image();
		validatorM.elem = this.elem;
		validatorM.altText=this.altText;
		validatorM.onload=function() {
			//Add image if it is valid
			if(this.height > 1) {
				this.elem.style.height = "200px";
				addDetailCover(this.elem,this.altText,this.src);
			}
			else {
				this.elem.style.height = "0px";
			}
		};
		validatorM.onerror=function() {this.elem.style.height = "0px";};
		validatorM.src=this.urlM;
	};
	validator.src=url;
}

function validateImage(elem,altText,url,ord) {

	var ajaxlet = new SdEcStats.Ajaxlet("load-image", "img", url);
	SdEcStats.topOfRequestingData(ajaxlet);
	SdEcStats.addNote(ajaxlet, "john");

	var validator = new Image();
	validator.elem=elem;
	validator.altText=altText;
	validator.ord=ord;

	validator.onload=function() {
		SdEcStats.endOfRequestingData(ajaxlet);
		SdEcStats.topOfProcessingData(ajaxlet);

		//Add image if it is valid
		if(this.height > 1) {
			addHitlistCover(this.elem,this.altText,this.src,this.ord);
		}
		else {
			this.elem.style.height = "0px";
		}

		SdEcStats.endOfProcessingData(ajaxlet);
	};

	validator.onerror=function() {
		SdEcStats.endOfRequestingData(ajaxlet);
		SdEcStats.topOfProcessingData(ajaxlet);

		this.elem.style.height = "0px";

		SdEcStats.endOfProcessingData(ajaxlet);
	};
	validator.src=url;
}

