function checkSFXServices(id,ctxObj) {
	var url = 'sfx?' + ctxObj;
	var node = document.getElementById(id);
	
	new Ajax.Request(url, {
	       method: 'get' ,
	       requestHeaders: { Accept: 'application/xml' } ,
	       onLoading: function(response) {
	    	   node.innerHTML = "<div class=\"sfxloading\">One moment please, searching related links...</div>";
	       } ,
	       onSuccess: function(response) {
	         var xml = response.responseXML;
	     
	         var targets = $A(xml.getElementsByTagName('target'));
	       
	         node.innerHTML = "";
	       
	         if (targets) {
	        	 targets.each( function(i) {
	        		var serviceName;
	        		var serviceType = getNodeValue(i, 'service_type');
	        		var publicName  = getNodeValue(i, 'target_public_name');
	        		var targetUrl   = getNodeValue(i, 'target_url');
	        		var thresholdText = getNodeValue(i,'coverage_statement');
	        		var embargoText   = getNodeValue(i,'embargo_statement');
	        		
	        		if (serviceType == "getFullTxt") {
	        		    serviceName = "<b>Full text</b> @ ";
	        		}
	        		else if (serviceType == "getCitedJournal") {
	        		    serviceName = "<b>Impact Factor</b> ";
	        		}
	        		else {
	        		    serviceName = "Related material @ ";
	        		}
	        		
	        		if (serviceType == "getMessageNoFullTxt" || 
	        		    serviceType == "getHolding" || 
	        		    serviceType == "getWebService" ||
	        		    serviceType == "getWebSearch" ||
	        		    serviceType == "getReference") {
        		    }
        		    else {
	        		    node.innerHTML += "<div class=\"sfxservice\">" + 
	        		                      "<a href=\"" + targetUrl + "\">" + 
	        		                      serviceName + " " + publicName +
	        		                      "</a>" + 
	        		                      "</div>" +
	        		                      "<div class=\"sfxholding\">" + thresholdText + "<br>" + embargoText + "</div>";
        		    }
	        	 });
	         }
	         else {
	        	 node.innerHTML = "<div class=\"sfxservice\">nothing interesting found</div>";
	         }
	       },
	       onFailure: function(response) {
	         node.innerHTML += 'failed';
	       }
	  });
}

function getNodeValue(node, name) {
    if (node.getElementsByTagName(name).length > 0 ) {
	    if (node.getElementsByTagName(name).item(0).firstChild) {
		    return node.getElementsByTagName(name).item(0).firstChild.nodeValue;
	    }
    }
	
	return "";
}

function checkAvailability(barcode,id) {
  var url  = 'availability?barcode=' + barcode;
  var node = document.getElementById(id);

  new Ajax.Request(url, {
       method: 'get' ,
       onSuccess: function(response) {
         var json = response.responseText.evalJSON();
         node.innerHTML += json.loan.code;
         if (json.loan.available == '0') {
             node.innerHTML = json.loan.code;
	     node.style.color = '#990000';
         }
         else {
	      node.style.color = '#009900';
	 }
       },
       onFailure: function(response) {
         node.innerHTML += 'failed';
       }
  });
}

function submitComment(obj) {
  var url_params = 'action=add&id=' + encodeURIComponent(obj.id.value) + '&message=' + encodeURIComponent(obj.message.value);
  url_params += '&email=' + encodeURIComponent(obj.email.value);
  url_params += '&captcha=' + encodeURIComponent(obj.captcha.value);
    
  new Ajax.Request('comments?' + url_params, {
    	onSuccess: function(transport){
      		obj.message.value = '';
    		obj.email.value   = '';
    		obj.captcha.value = '';
      		window.location.reload();
    	},
    	onFailure: function(){ 
   			obj.captcha.value = '';
    		window.location.reload(); 
    	}
  });
}

function mailBasket(form) {
 var to   = form.to.value;
 var from = form.from.value;
 var msg  = form.msg.value;

 if (to.length == 0) {
   $('mailresp').innerHTML = "'To' address required";
   return;
 }
 
 form.send.disabled=true;

 new Ajax.Request('basket-mail?to=' + escape(to) + '&from=' + escape(from) + '&message=' + escape(msg), {
    	onSuccess: function(transport){
  	  form.send.disabled=false;
	  $('mailresp').innerHTML = 'Mail sent!';
	  form.to.value = '';
 	  form.from.value = '';
 	  form.msg.value = '';
	  centered.close();
    	},
    	onFailure: function(){ 
  	  form.send.disabled=false;
	  $('mailresp').innerHTML = 'Failed to send mail';
	  form.to.value = '';
 	  form.from.value = '';
 	  form.msg.value = '';
	  centered.close();
    	}
  });
}

function clearSelected() {
  var url_params = 'action=clear'; 
  new Ajax.Request('select?' + url_params, {
    	onSuccess: function(transport){
	  window.location.reload();
    	},
    	onFailure: function(){ 
    	}
  });
}

function switchSelection(id) {
  var url_params = 'action=switch&id=' + encodeURIComponent(id);
  new Ajax.Request('select?' + url_params, {
    	onSuccess: function(transport){
    	},
    	onFailure: function(){ 
    	}
  });
}

function isSelected(objid, id) {
  var url_params = 'action=exists&id=' + encodeURIComponent(id);
 	
  new Ajax.Request('select?' + url_params, {
  	    contentType: 'application/json' ,
    	onSuccess: function(transport){
    	var response = transport.responseJSON;
    	  
    	if (response.selection.exists) {
    	  	$(objid).checked = "checked";
    	  }
    	},
    	onFailure: function(){ 
    	}
  });
}

function addLocalFacet(query, sort, filter, view, title, id) {  
   new Ajax.Request(libtigerBaseURL + '/facet?q=' + query + "|" + view + "&fq=" + query + "&fv=" + view + "&filter=" + filter + "&count=" + pagesize, {
       method:'get',
       onSuccess: function(transport){
         var response = transport.responseText || "";
         
         if (response.match(/^\s*$/)) {}
         else {
             var node = document.getElementById(id); 
             node.innerHTML += "<em>" + title + "</em><br>" + response + "<br>";
         }
       }
   });
}
        
function addElinFacet(query, id) {
   var elinLink = "http://elin.lub.lu.se/elin?func=simpleSearch&sessionId=&lang=en&query=" + query;
   new Ajax.Request(libtigerBaseURL + '/facet-elin?q=' + query, {
        method:'get',
        onSuccess: function(transport) {
            var response = transport.responseText || "";
            var node = document.getElementById(id); 
	        if (node.innerHTML.length == 0) {
		      node.innerHTML = externalFacet;
	        }
            node.innerHTML += " <a class=\"docdel\" href=\"" + elinLink + "\">Elin</a> (" + response + ")";
        }
    });
}

function addISIFacet(query, id) {
    var isiLink = "http://gateway.isiknowledge.com/gateway/Gateway.cgi?" + 
		  "GWVersion=2&SrcApp=SFX&SrcAuth=SFX&DestApp=WOS" + 
		  "&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary" + 
		  "&Func=Links&topic=" + query;
    new Ajax.Request(libtigerBaseURL + '/facet-isi?q=' + query, {
        method:'get',
        onSuccess: function(transport){
        	var response = transport.responseText || "";
            var node = document.getElementById(id); 
		    if (node.innerHTML.length == 0) {
			  node.innerHTML = externalFacet;
	        }
        	node.innerHTML += " <a class=\"docdel\" href=\"" + isiLink + "\">Web of Science</a> (" + response + ")";
        }
    });
}

function addWorldCatFacet(query, id) {
    var worldcatLink = "http://www.worldcat.org/search?&q=" + query;
    new Ajax.Request(libtigerBaseURL + '/facet-worldcat?q=' + query, {
        method:'get',
        onSuccess: function(transport){
           var response = transport.responseText || "";
           var node = document.getElementById(id); 
	       if (node.innerHTML.length == 0) {
		     node.innerHTML = externalFacet;
	       }
           node.innerHTML += " <a class=\"docdel\" href=\"" + worldcatLink + "\">WorldCat</a> (" + response + ") ;<br>";
        }
    });
}

function addGoogleScholarFacet(query, id) {
  var googlescholarLink = "http://scholar.google.com/scholar?&q=" + query;
  new Ajax.Request(libtigerBaseURL + '/facet-googlescholar?q=' + query, {
        method:'get',
        onSuccess: function(transport) {
         var response = transport.responseText || "";
         var node = document.getElementById(id); 
		 if (node.innerHTML.length == 0) {
			node.innerHTML = externalFacet;
		 }
         node.innerHTML += " <a class=\"docdel\" href=\"" + googlescholarLink + "\">Google Scholar</a> (" + response + ") <br>";
       }
  });
}
    
function addGoogleBooksFacet(query, id) {
   var googlebooksLink = "http://books.google.be/books?&q=" + query;
   new Ajax.Request(libtigerBaseURL + '/facet-googlebooks?q=' + query, {
        method:'get',
        onSuccess: function(transport){
        var response = transport.responseText || "";
        var node = document.getElementById(id); 
		if (node.innerHTML.length == 0) {
			node.innerHTML = externalFacet;
		}
        node.innerHTML += " <a class=\"docdel\" href=\"" + googlebooksLink + "\">Google Books</a> (" + response + ") <br>";
                }
        });
}

function addTicToc(query,id) {
   new Ajax.Request('http://search.ugent.be/cgi-bin/tictoc/resolve.cgi?issn=' + query , {
       method:'get',
       onSuccess: function(transport){
         var response = transport.responseText || "";
         var node = document.getElementById(id); 
         node.innerHTML += response;
       }
   });
}
 
function showElement(id) {
  var ele = document.getElementById(id);

  if (ele.style.display == "none") {
      ele.style.display = "block";
  } else {
      ele.style.display = "none";
  }
}
