



/* var submitForm = function () {

	if (checkForm()) {
  
  var f = $("opacForm");
  f.elements["query"].value = makeCQL(f);
  





	} else {
		return false;
	} // else
}

var checkForm = function() {

	if (document.getElementById) {

		// Neue Pflichtfelder koennen ueber das Array eingetragen werden
		var checker=0;
		var arrFields=new Array(
			"searchField#Searchfield",
			"opacQuery#Searchstring"
		);
		

					"pageRecords#pagerecords",
			"maximumRecords#maximum records"

var arrFehler=new Array();

		// Array durchgehen und Felder pruefen
		for (i=0;i<arrFields.length;i++) {
			// Daten aus dem Array mittels Trennzeichen auslesen
			var arrData=arrFields[i].split("#");
			var feldName=arrData[0]; // Input-Feld
			var feldText=arrData[1]; // Fehlertext
			var el=$(feldName);
			if (el.value.blank()) { // ist Input-Feld leer?
				if (checker==0) firstField=el; // fuer den Fokus
				el.className="opac-input-error"; // Class zuweisen
				arrFehler[arrFehler.length]=feldText; // Fehlertext zuweisen
				checker++;
			} else el.className="opac-input"; // falls alles OK ist
		} // for

		// Neuen Absatz anlegen, Fehler anzeigen und Fokus auf das erste Feld setzen
		if (checker>0) {

			var errorMsg=arrFehler.join(", "); // Fehlertext aus Array generieren

			if (!$("error_span")) { // wenn Element noch nicht vorhanden

				// Elemente anlegen und Attribute, Text, Knoten etc. zuweisen

				var p1=document.createElement("div");
				p1.style.width="400px";
				p1.className="alert";
				p1.setAttribute("id","error_display");
				p1.setAttribute("style","display:none");

				var strong1=document.createElement("strong");
				p1.appendChild(strong1);

				var txt1=document.createTextNode("AN ERROR OCCURED!");
				strong1.appendChild(txt1);

				var br1=document.createElement("br");
				strong1.appendChild(br1);

				var txt2=document.createTextNode("PLEASE FILL IN THE FOLLOWING FIELD: ");
				strong1.appendChild(txt2);

				var span1=document.createElement("span");
				span1.setAttribute("id","error_span");
				p1.appendChild(span1);

				var txt3=document.createTextNode(errorMsg); // Fehlertext zuweisen
				span1.appendChild(txt3);

				var br2=document.createElement("br");
				p1.appendChild(br2);

				// Neuen Absatz ins Dokument einfuegen
				$("opac_searchform").insertBefore(p1,$("opacForm"));

				new Effect.BlindDown($("error_display"),{duration:.6});

			} else {
				// Fehlertext zuweisen
				$("error_span").firstChild.data=errorMsg;
				new Effect.Pulsate($("error_display"));
			} // else

			if (firstField!="") firstField.focus(); // Fokus setzen
			return false;

		} else {
			return true;
		} // else

	} // if DOM

} // function

*/
var showDetails = function (id) {
	if ($(id)) {
	  var myParentDivId = id;
		var myDetails = document.getElementById(myParentDivId).getElementsByTagName("div");
		for (var i = 0; i < myDetails.length; i++)
		{
      if (myDetails[i].className == "record-details")
      {
        el = myDetails[i];
        if (el.style.display!="") {
			  new Effect.BlindDown(el,{duration:0.6});
			  $("LI"+id).firstChild.nodeValue="Hide details";
		    }
      else 
      {
			  new Effect.BlindUp(el,{duration:0.6});
			  $("LI"+id).firstChild.nodeValue="Show details";
		  } // else
	    
      } // if
  } // for
  } //if
    

} // function


function basicSearch()
{
  var userIndex = $("opacForm").elements["searchField"].options[$("opacForm").elements["searchField"].selectedIndex].value;
  var userQuery = $("opacForm").elements["opacQuery"].value;
  var cqlQuery = "";
  $("waitwhileloading").style.display = "block";
  if ((userIndex == 'tis') || (userIndex == 'fmo') || (userIndex == 'per') || (userIndex == 'idn'))
  {
    //userQuery = userQuery.replace(/\"/,"");
    cqlQuery = userIndex + '="' + userQuery +'"';  
  }
  else
  {
    userQueryTerms = userQuery.split(" ");
    for (var i = 0; i < userQueryTerms.length; i++)
    {
      userQueryTerms[i] = userQueryTerms[i].replace(/,/,"");
      if ((userQueryTerms[i] != " ") && (userQueryTerms[i] !=""))
      {
        if (cqlQuery != "")
        {
          cqlQuery = cqlQuery + " and ";
        }
        cqlQuery = cqlQuery + userIndex + '="' + userQueryTerms[i] +'"';
      }
    }
  }
  $("opacForm").elements["query"].value = cqlQuery;
  $("opacForm").elements["opacIndex"].value = $("opacForm").elements["searchField"].selectedIndex;
  $("opacForm").submit();
}

function indexBrowse()
{
  $("waitwhileloading").style.display = "block";
  var userIndex = $("opacFormIndex").elements["IndexField"].options[$("opacFormIndex").elements["IndexField"].selectedIndex].value;
  var userQuery = $("opacFormIndex").elements["opacQuery"].value;
  var cqlQuery = userIndex + '="' + userQuery +'"';
  $("opacFormIndex").elements["query"].value = cqlQuery;
  $("opacFormIndex").elements["opacIndex"].value = $("opacFormIndex").elements["IndexField"].selectedIndex;
  $("opacFormIndex").submit();
}

function retrieveByIndexentry(userIndex, userTerm)
{
  $("waitwhileloading").style.display = "block";
  $("opacFormExp").elements["query"].value = userIndex + '="' + userTerm + '"';
  $("opacFormExp").submit(); 
}

function retrieveByIndexlist(userIndex)
{
  $("waitwhileloading").style.display = "block";
  var allCheckboxes = document.getElementsByName("index_check");
  var cqlQuery = "";
  for (var i = 0; i < allCheckboxes.length; i++)
  {
    if (allCheckboxes[i].checked)
    {
      if (cqlQuery != "") cqlQuery = cqlQuery + " or ";
      cqlQuery = cqlQuery + userIndex + '="' + allCheckboxes[i].value + '"';
    }
  }
  $("opacFormExp").elements["query"].value = cqlQuery;
  $("opacFormExp").submit();
}

function getCtRecord(UserIndex, UserTerm)
{
  $("waitwhileloading").style.display = "block";
  var cqlQuery = UserIndex + '="' + UserTerm +'"';
  $("opacFormExp").elements["query"].value = cqlQuery;
  $("opacFormExp").elements["base"].value = 'ct';
  $("opacFormExp").elements["start"].value = '1';
  $("opacFormExp").submit();
}
/* Navigation */
allOpacRecords = new Array();


function prepare(selForm)
{
  $("waitwhileloading").style.display = "block";
  getOpacRecords();
  dedupHeadings();
  setBasicSearchIndex();
  setIndexBrowseIndex();
  markSet();
  if (selForm) selectForm(selForm); else selectForm('bsearch');
  $("waitwhileloading").style.display = "none";
}

/* Liste mit Headings bearbeiten */

function dedupHeadings()
{
  for (var i = 1; i < 4; i++)
  {
    var tempId = "relatedx" + i;
    if (rHeadingsSection = document.getElementById(tempId))
    {
      var rHeadingsEntries = rHeadingsSection.getElementsByTagName("div");
      for (var j = 1; j < (rHeadingsEntries.length -1); j++)
      {
        if (rHeadingsEntries[j].innerHTML == rHeadingsEntries[j-1].innerHTML)
        {
          rHeadingsEntries[j].style.display = "none";
        }
      }
    }
  
  }

}

/* Navigation */

function getOpacRecords()
{
  if (document.getElementById("displayOfSearchResults"))
  {
  allDivs = document.getElementById("displayOfSearchResults").childNodes;

  for (var i = 0; i < allDivs.length; i++)
  {
    if(allDivs[i].className == "opac-record")   //allDivs[i].nodeType == 1
    {
      allOpacRecords.push(allDivs[i]);
    }
  }
  displayOpacRecords(0,diffPos);
  }
}

function displayOpacRecords(startPos, endPos)
{
 
  for (var i = 0; i < allOpacRecords.length; i++)
  {
    if ((i >= startPos) && (i <= endPos))
    {
      allOpacRecords[i].style.display = "block";
    }
    else
    {
      allOpacRecords[i].style.display = "none";
    }
  }
  var naviHTML = "";
  var pos1 = startPos - (diffPos +1);
  var pos2 = startPos - 1;
  if (pos1 < 0)
  {
    pos1 = 0;
    pos2 = diffPos;
  }
  var pos3 = endPos + 1;
  var pos4 = endPos + diffPos + 1;
  var pos5 = (allOpacRecords.length - (allOpacRecords.length % (diffPos + 1))); // + 1;
  if (pos5 >= allOpacRecords.length)
  {
    pos5 = allOpacRecords.length - (diffPos + 1);
  }
  if (startPos + (diffPos + 1) < allOpacRecords.length)
  {
    naviHTML =  naviHTML + "<a href='javascript:displayOpacRecords("+pos5+","+allOpacRecords.length+")'>&gt;&gt;</a>";
    if (! (pos3 > pos5)){naviHTML = naviHTML + "<a href='javascript:displayOpacRecords("+pos3+","+pos4+")'>&gt;</a>";}
    
  }  
  
  var maxPosi = endPos + 1;
  if (maxPosi > pos5){maxPosi = allOpacRecords.length;}
  if ((startPos + 1) < maxPosi)
  {
  naviHTML = naviHTML +"<span class='navi_currentpage'>"+(startPos+1)+" &ndash; "+maxPosi+"</span>";
  }
  else
  {
  naviHTML = naviHTML +"<span class='navi_currentpage'>"+maxPosi+"</span>";
  } 
  if (startPos > 0)
  {
        naviHTML = naviHTML + "<a href='javascript:displayOpacRecords("+pos1+","+pos2+")'>&lt;</a>";
        naviHTML =  naviHTML + "<a href='javascript:displayOpacRecords(0,"+diffPos+")'>&lt;&lt;</a>";

  }


  naviHTML = naviHTML +"<span style='display:block;clear:both;height:1px;line-height:1px;'>&nbsp;</span>";
  document.getElementById("SearchResultNavigation_top").innerHTML = naviHTML;
  document.getElementById("SearchResultNavigation_bottom").innerHTML = naviHTML;
}


/* Suchformular */

function selectForm(Tab)
    {
      var allTabs = document.getElementById("tabs").getElementsByTagName("div");
      var allForms = document.getElementById("forms").getElementsByTagName("div");
      
      // reset Tabs and Forms
      for (var i = 0; i < allTabs.length; i++)
      {
        allTabs[i].style.backgroundColor = "#f5f4f1";
      } 
      for (var i = 0; i < allForms.length; i++)
      {
        allForms[i].style.display = "none";
      }

      // display selected Tab
      document.getElementById(Tab+"_tab").style.backgroundColor = "#E8E7E4";
      var currentForm = document.getElementById(Tab+"_form");    // .style.display = "block";
      currentForm.style.display = "block";
      var allFormDivs = currentForm.getElementsByTagName("div");
      for (var i = 0; i < allFormDivs.length; i++)
      {
        //allFormDivs[i].style.display = "block";
        allFormDivs[i].style.backgroundColor = "#E8E7E4";
        new Effect.BlindDown(allFormDivs[i],{duration:0.6});
      }
      //new Effect.BlindDown(currentForm, {duration:0.6});
      

    }

/* Multiple Result Sets */

function retrieveNextSet()
  {
  $("waitwhileloading").style.display = "block";
  $("multiset").elements["start"].value = parseInt($("multiset").elements["start"].value) + parseInt($("multiset").elements["recs"].value);
  $("multiset").submit();
  }

function retrievePreviousSet()
  {
  $("waitwhileloading").style.display = "block";
  $("multiset").elements["start"].value = parseInt($("multiset").elements["start"].value) - parseInt($("multiset").elements["recs"].value);
  $("multiset").submit();
  }   


/* Scholar's Notepad */

function showAnnotations(record,elm)
{
  // das ist nur vorübergehend, das lässt sich später noch eleganter lösen
  record = "cerl/ebob/" + record;
  var myUrl = "http://www.alexjahnke.de/cgi-bin/np_usrdsp.pl?recnum=" + record;
  var myWindow = window.open(myUrl, "snwindow", "dependent=yes,height=500,width=400,resizable=yes");
}


/* Clipboard Funktionen */

function saveToSet(record, elm)
{
  var allForms = document.getElementsByTagName("form");
  for (var i = 0; i < allForms.length; i++)
  {
    if (allForms[i].elements["userset"])
    {
      allForms[i].elements["userset"].value = allForms[i].elements["userset"].value + ":" + record;
    }
  }
  $(elm).innerHTML = "Remove from Clipboard";
  $(elm).setAttribute("href","javascript:removeFromSet('"+record+"','"+elm+"')");
}

function removeFromSet(record,elm)
{
  var allForms = document.getElementsByTagName("form");
  var re_record = ":"+record;
  for (var i = 0; i < allForms.length; i++)
  {
    if (allForms[i].elements["userset"])
    {
      allForms[i].elements["userset"].value = allForms[i].elements["userset"].value.replace(re_record,"");
    }
  }
  $(elm).innerHTML = "Save to Clipboard";
  $(elm).setAttribute("href","javascript:saveToSet('"+record+"','"+elm+"')");
}

function markSet()
{
  if ($("opacFormExp").elements["userset"].value)
  {
    var allRecordsInSet = $("opacFormExp").elements["userset"].value.split(":");
    for (var i = 1; i < allRecordsInSet.length; i++)
    {
      var linkID = "rm1_"+allRecordsInSet[i];
      if ($(linkID))
      {
        $(linkID).innerHTML = "Remove from Clipboard";
        $(linkID).setAttribute("href","javascript:removeFromSet('"+allRecordsInSet[i]+"','"+linkID+"')");
      }
    }
  }
}

function retrieveUserSet()
{
  if ($("opacFormExp").elements["userset"].value)
  {
    $("waitwhileloading").style.display = "block";
    $("opacFormExp").elements["query"].value = 'id any "'+$("opacFormExp").elements["userset"].value.replace(/:/g, " ")+'"';
    $("opacFormExp").submit();
  }
  else
  {
    alert("There are no records on the clipboard.");
  }
}

/* Related Records */
function searchRelated(ind,trm)
{
  $("waitwhileloading").style.display = "block";
  $("opacFormExp").elements["query"].value = ind+'="'+trm+'"';
  $("opacFormExp").submit();
}

/* Formular */
function setBasicSearchIndex()
{
  if ($("opacForm").elements["opacIndex"].value)
  {
    $("opacForm").elements["searchField"].selectedIndex = $("opacForm").elements["opacIndex"].value; 
  }
  else
  {
  $("opacForm").elements["searchField"].selectedIndex = 0;
  }
}

function setIndexBrowseIndex()
{
  if ($("opacFormIndex").elements["opacIndex"].value)
  {
    $("opacFormIndex").elements["IndexField"].selectedIndex = $("opacFormIndex").elements["opacIndex"].value; 
  }
  else
  {
  $("opacFormIndex").elements["IndexField"].selectedIndex = 0;
  }
}

