

/****************************************************************************
	Parameters:
	debug - set it to true, if you debug application, otherwise set it to false
	speed, step - parameters of smoothly showing login form, speed - time between change height
*****************************************************************************/
		var debug = true;
		var speed = 50;
		var step = 140;
		var searchPhrase = "search articles";

// Height of login form, do not change this parameter
		var loginHeight = 140;

		var topMenuImages = new Array("menu/myBW-active.gif", "menu/products-active.gif", "menu/blogs-active.gif", "menu/journals-active.gif", "menu/news-active.gif");
		var menuImages = new Array("menu/button.gif", "menu/button-active.gif", "button/voted.gif");

var initDone = false;
//fire on load page
		function init(){
/*
	Add "Cited by" links dinamically
*/
var contentsObj = document.getElementById("contents");
if(!contentsObj){
	contentsObj = document.getElementById("riseup");
}
var pmidList = new Array();
if(contentsObj){	
	for(var i= 0; i< contentsObj.childNodes.length; i++){
		var divObj = contentsObj.childNodes[i]		
		if(divObj.nodeName == 'DIV' && divObj.className=='news-summary-container'){
			var id = divObj.id
			if(id.length > 0){
				pmidList[pmidList.length] = id.substring(12)
			}
		}
	}
	
	if(pmidList.length > 0){
		function createRequest(){
			var xmlhttp;
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				xmlhttp = new XMLHttpRequest();
				if (xmlhttp.overrideMimeType) {
					xmlhttp.overrideMimeType('text/xml');
				}
			} else if (window.ActiveXObject) { // IE
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} 
				catch (e) {
					try {
						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					} 
					catch (e) {}
				}
			}
			return xmlhttp;
		}
		var req = createRequest();
		if(req)	{
			req.open("GET", "pubmed/getscopuscount.php?pmid=" + pmidList + "&" + Math.random())
			
			req.onreadystatechange = function(){
				if (req.readyState == 4 && req.responseXML) {
					var counts = req.responseXML.getElementsByTagName("count");
					for(var j = 0; j< counts.length; j++){
						var divObj = document.getElementById("story-linksbox_" + counts[j].getAttribute("pmid"));
						if(divObj){
							var aObj = document.createElement("a");
							aObj.appendChild(document.createTextNode("Cited by (" + counts[j].getAttribute("count") + ")"))
							aObj.setAttribute("href", "pmcitedby.php?eid=" + counts[j].getAttribute("eid") + "&pmid=" + counts[j].getAttribute("pmid"));
							aObj.setAttribute("target", "_blank");
							aObj.className = "link_citedby";
							var pdfLink = null;
							var aList = divObj.getElementsByTagName("a");
							for(var k = 0; k< aList.length; k++){
								if(aList[k].className == 'link_viewpdfdirect' || aList[k].className == 'link_discuss'){
									pdfLink = aList[k]
									break;
								}
							}
							divObj.insertBefore(aObj, pdfLink)
						}
					}					
				}
			}
			req.send(null);
		}
	}

	var iconPanel = document.getElementById("iconspanel")
	if(iconPanel){
		var sUrl = "pubmed/get.php?action=icons&pmid=" + pmidList[0] + "&rand=" + Math.random();	
		Zapatec.Transport.fetchXmlDoc({
			url: sUrl,
			onLoad: function (doc){
			
				var iconUrls = doc.getElementsByTagName("ObjUrl");
				if(iconUrls.length>0){
					var iconPanel = document.getElementById("iconspanel");
					for(var i = 0; i< iconUrls.length; i++){
						var a = document.createElement("a")
						a.setAttribute("href", iconUrls[i].getElementsByTagName("Url").item(0).childNodes.item(0).nodeValue)
						a.setAttribute("target", "_blank");
						var img = document.createElement("img")
						img.setAttribute("src", iconUrls[i].getElementsByTagName("IconUrl").item(0).childNodes.item(0).nodeValue)
						a.appendChild(img)
						iconPanel.appendChild(a)
						if(iconUrls.item(i).getAttribute("pdf") == "true"){
							var obj = document.getElementById("linkstbl_")
							var tr = obj.getElementsByTagName("tr").item(0)				
							var td = document.createElement("td")
							var a = document.createElement("a")
							a.setAttribute("href", iconUrls[i].getElementsByTagName("Url").item(0).childNodes.item(0).nodeValue)
							a.setAttribute("target", "_blank")
							a.className = "pdf"
							a.appendChild(document.createTextNode("View PDF Direct"))
							td.appendChild(a)
							tr.appendChild(td)
						}
					}
				}
			},
			onError: function(e){
				switch(e.errorCode){
				case 0:
					//it is OK
					break;
					default:
					
				}
			}
		})
	}
	var providerObj = document.getElementById("providerlink")
	if(providerObj){
		var sUrl = "pubmed/get.php?action=provider&lib=" + lib + "&ip=" + ip + "&pmid=" + pmidList[0] + "&rand=" + Math.random();	
		Zapatec.Transport.fetchXmlDoc({
			url: sUrl,
		
			onLoad: function (doc){
				
				var providers = doc.getElementsByTagName("provider")
				if(providers.length > 0){
					providerObj.style.display = "block"
				}
				for(var i = 0; i< providers.length; i++){
					providerObj.style.display = "block"
					var div = document.createElement("div");
					div.className = "providerbox"
					if(document.all){
						div.style.width = "100px";
					}
					var img = document.createElement("img");
					img.setAttribute("src", providers[i].getAttribute("iconurl"));
					img.setAttribute("alt", providers[i].getAttribute("pmname"))				
					var a = document.createElement("a")
					var active = providers[i].getAttribute("active")
					if(active=="false"){
						a.className = "providernotactive"
					}
					a.setAttribute("href", providers[i].getAttribute("url"));
					a.setAttribute("target", "_blank")
					a.appendChild(img);
					div.appendChild(a)
					providerObj.appendChild(div);
				}
				var br = document.createElement("br");
				br.style.clear = "left";
				providerObj.appendChild(br);
			},
			onError: function(e){
				switch(e.errorCode){
				case 0:
					break;
					default:
				}
			}
		})
	}
	
	var relatedlinks = document.getElementById("relatedlinks");
	if(relatedlinks){
	
		var sUrl = "pubmed/get.php?action=relatedlinks&pmid=" + pmidList[0] + "&rand=" + Math.random();	
		Zapatec.Transport.fetchXmlDoc({
			url: sUrl,
		
			onLoad: function (doc)	{
				var loading = document.getElementById("relatedLinks-loading");
				loading.style.display = "none";
				var relatedLinksDiv = document.getElementById("relatedlinks");
			
			
			
				var relatedLinks = doc.getElementsByTagName("DocSum");
				if(relatedLinks.length == 0){
					relatedLinksDiv.innerHTML = '<div class="norelated">(No Related Articles yet for this citation.)</div>'
					return;
				}
			
				for(var i = 0; i < relatedLinks.length; i++){
					var cur_pmid = relatedLinks.item(i).getElementsByTagName("pmid").item(0).childNodes.item(0).nodeValue
					var full_title = relatedLinks.item(i).getElementsByTagName("title").item(0).childNodes.item(0).nodeValue
					var title = full_title
					if(title.length > 70){
						title = title.substring(0, 70) + "..."
					}
					var source = relatedLinks.item(i).getElementsByTagName("source").item(0).childNodes.item(0).nodeValue
					
					var yearNode = relatedLinks.item(i).getElementsByTagName("year").item(0).childNodes;
					var year = "";
					if(yearNode.length > 0){
						year = yearNode.item(0).nodeValue
					}
					var so = source + ". " +relatedLinks.item(i).getElementsByTagName("so").item(0).childNodes.item(0).nodeValue
				
					var div = document.createElement("div");
					div.className = "relatedLink"
				
					var divpopup = document.createElement("div");
					divpopup.className = "popup"
					if(document.all){
						divpopup.onmousemove = function(){hideRelatedHint()}
					}else{
						divpopup.setAttribute("onmousemove", "hideRelatedHint()")
					}
					var divpopupinner = document.createElement("div");
					divpopupinner.className = "popupinner"
					var divpopuptext = document.createElement("div");
					divpopuptext.className = "text"
					divpopuptext.appendChild(document.createTextNode(full_title))
					divpopupinner.appendChild(divpopuptext)
				
					var divpopupinfo = document.createElement("div");
					divpopupinfo.className = "moreinfo"
					divpopupinfo.appendChild(document.createTextNode(so))
					divpopupinner.appendChild(divpopupinfo)
				
				
					divpopup.appendChild(divpopupinner)
					div.appendChild(divpopup)
				
					var a = document.createElement("a")
					a.setAttribute("href", "pmabstract.php?pmid=" + cur_pmid)				
					a.appendChild(document.createTextNode(title))
					if(document.all){
						div.onmouseover = function() {showRelatedHint(this)} 
						div.onmouseout = function(){hideRelatedHint()}
					}else{
						div.setAttribute("onmouseover", "showRelatedHint(this)")
						div.setAttribute("onmouseout", "hideRelatedHint()")
					}
					div.appendChild(a);
					
					var adddiv = document.createElement("div")
					adddiv.className = "additionalinfo"
					var info = "["+source+"."+year+"]"
					adddiv.appendChild(document.createTextNode(info))
					div.appendChild(adddiv);
					relatedLinksDiv.appendChild(div)
				}
				var a = document.createElement("a")
				a.setAttribute("href", "pmsearch.php?q="+pmidList[0]+"&p=1&type=relatedlinks");
				a.className = "seeallrelated"
				a.appendChild(document.createTextNode("See all Related Articles..."))
				relatedLinksDiv.appendChild(a)
				//relatedLinksDiv.style.display = "block"
			},
			onError: function(e){
				switch(e.errorCode){
				case 0:
					//it is OK
					break;
					default:
				}
			}
		})	
	}
	
	
	//ajax request
}


// kpg 01.09.07
// plm test below needed due to removal of form for Featured Discussion
/*if ( typeof document.getElementById("pollsrc") != "undefined" ){
	//alert(typeof document.getElementById("pollsrc"));
	var psrc = document.getElementById("pollsrc");  
	pollheight = psrc.offsetHeight; 
	psrc.innerHTML = "";
}*/
// kpg 01.10.07
if(self.poll2)
{ poll2();
}
			if(document.getElementById('name')){//load cookie, if login form on the page
				if(loadCookie('biowizardLogin')){
					document.getElementById('name').value = loadCookie('biowizardLogin')
					document.getElementById('password').value = loadCookie('biowizardPassword')
					document.getElementById('remember').checked = true;
				}
			}
			preloadImages(topMenuImages)
			preloadImages(menuImages)
// kpg 06.04.07
initDone = true;
		}
/* Start loginPopup box functionality */		
var popupLoginBox = null;
function showPopupLoginBox(event, obj, pos){
	if(popupLoginBox == null){
		function initPopupLoginBox(){
			
		}
	}
	alert(pos[0])
}
/* End loginPopup box functionality */				
		function processLogin(){
			var chkObj = document.getElementById('remember');
			if(chkObj.checked){
				saveCookie('biowizardLogin', document.getElementById('name').value)
				saveCookie('biowizardPassword', document.getElementById('password').value)
			}
			else{
				removeCookie('biowizardLogin');
				removeCookie('biowizardPassword');
			}
			return true;
		}
/****************************************************************************
	Change image to -active.gif image.
	Use this function only with .gif images.
*****************************************************************************/
		function activateImage(obj){
			if(obj.nodeName.toLowerCase() != "img"){
				if(debug) alert("Error. function activateImage(obj). obj is not image.")
				return;
			}
			obj.onmouseout = function(){this.src = this.src.substr(0, this.src.length-11)+".gif"}
			obj.src = obj.src.substr(0, obj.src.length-4) + "-active.gif";
		}
// Current state of login form
		var openLoginForm = false
//This function start showing of hiding login form
		function showLoginForm(){
			openLoginForm = !openLoginForm;
			try{
				moveLogin();
			}catch(ex){
				if(debug) alert(ex);
			}
		}
//This function change current height of menu
		function moveLogin(){
			var o = document.getElementById("menuLogin");
			var delta = openLoginForm?step:-step;
			var currHeight = parseFloat(o.style.height);
			if(!currHeight)currHeight = 0;
			if(currHeight + delta < 0){
				o.style.height = "0";
				openLoginForm = false;
			}else if(currHeight + delta > loginHeight){
				o.style.height = loginHeight + "px";
				openLoginForm = true;
			}else{
				o.style.height = currHeight + delta + "px";
				window.setTimeout("moveLogin()", speed)
			}
		}
	function showLoginFormImmediatly(){
		var o = document.getElementById("menuLogin");
/*For different browsers*/
		if(!document.all)
			openLoginForm = !openLoginForm;

		if(openLoginForm){
			o.style.height = loginHeight + "px";
		}else{
			o.style.height = "0";
		}
	}
//Load cookie, if not exists, return null
	function loadCookie(sName)
	{
	  	// cookies are separated by semicolons
  		var aCookie = document.cookie.split("; ");
	  	for (var i=0; i < aCookie.length; i++){
    		// a name/value pair (a crumb) is separated by an equal sign
    		var aCrumb = aCookie[i].split("=");
	    	if (sName == aCrumb[0])
      			return unescape(aCrumb[1]);
  		}
	  	// a cookie with the requested name does not exist
  		return null;
	}
//Save cookie for year
	function saveCookie(sName, sValue)
	{
	  	date = new Date();
	  	date.setYear(date.getFullYear() + 1);
	  	document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();
	}
	function removeCookie(sName)
	{
	  	document.cookie = sName + "=" + escape('') + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
	}
//Return true only if obj is array
	function isArray(obj) {
		if (obj.constructor.toString().indexOf("Array") == -1)
			return false;
      	return true;
	}

//Preload images
	function preloadImages(imgs){
		if(!imageBase)
			alert("imageBase is empty, please, contact administrator.");

		if(document.images){
			var img;
			if(isArray(imgs)){
				for(var i = 0; i< imgs.length; i++){
					img = new Image();
					img.src = imageBase + imgs[i];
/*					if(debug){
						if(img.width == 0)
							alert("Image does not exist. url: " + imgs[i])
					}
*/				}
			}else
			{
				img = new Image();
				img.src = imageBase + imgs[i];
/*					if(debug){
						if(img.width == 0)
							alert("Image does not exist. url: " + imgs)
					}
	*/		}
		}
	}
