// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Description : This library should contain OPAC specific functions.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Supervisor: Dave Dean
// Programmer: Enrique Larar
// Date: March 23, 2005
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	function doLogout() {
		var f = document.LogoutForm;
		f.submit();
	}

	function gotoLogin() {
		var f = document.GotoLogin;
		f.submit();
	}

    function gotoHelp() {
        var f = document.GotoHelp;
        f.submit();
    }

    function gotoHome() {
        var f = document.GotoHome;
        f.submit();
    }
    
    function gotoFindItFast() {
        var f = document.GotoFindItFast;
        f.submit();
    }

    function gotoPictureLibrary() {
        var f = document.GotoPictureLibrary;
        f.submit();
    }

    function gotoMyAccount() {
        var f = document.GotoMyAccount;
        f.submit();
    }

    function gotoContactUs() {
        var f = document.GotoContactUs;
        f.submit();
    }


	function gotoSearch(reset) {
		var f = document.GotoSearch;
        f.reset.value = reset;
		f.submit();
	}

	function gotoPowerSearch(reset) {
		var f = document.GotoPowerSearch;
        f.reset.value = reset;
		f.submit();
	}



    function browseResults(start) {
		var f = document.BrowseResults;
        f.start.value = start;
		f.submit();
    }


    function clearFilter(resultSetId, start) {
		var f = document.BrowseResults;
        f.resultSetId.value = resultSetId;
        f.start.value = start;
		f.submit();
    }
    
    function viewDocumentDetails(documentIndex, id, callNumber) {
		var f = document.DocumentDetails;
        f.documentIndex.value = documentIndex;
        f.id.value = id;
        f.callNumber.value = callNumber;
		f.submit();
    }

    function viewDocumentCatalogRecord(documentIndex, id, callNumber) {
		var f = document.DocumentCatalogRecord;
        f.documentIndex.value = documentIndex;
        f.id.value = id;
        f.callNumber.value = callNumber;
		f.submit();
    }

    function viewDocumentMarc(documentIndex, id, callNumber) {
		var f = document.DocumentMarc;
        f.documentIndex.value = documentIndex;
        f.id.value = id;
        f.callNumber.value = callNumber;
		f.submit();
    }


   
    function gotoCart() {
		var f = document.GotoCart;
		f.submit();
    }        

    function gotoSearchHistory() {
		var f = document.GotoSearchHistory;
		f.submit();
    }    

    function gotoGotoPatronChangePin() {
		var f = document.GotoPatronChangePin;
		f.submit();
    }        
	function gotoChooseReadersLists(peid) {
		var f = document.GotoChooseReadersLists;
		f.submit();
    }

	function viewReadersLists() {
		var f = document.ViewReadersLists;
		f.submit();
    }

    function gotoHeadingBrowse() {
		var f = document.GotoHeadingBrowse;
		f.submit();
    }

    function browseHeadingsResults(start) {
		var f = document.BrowseHeadingsResults;
        f.start.value = start;
		f.submit();
    }

    function doHeadingKeySearch(headingKey, headingIndex, term) {
		var f = document.HeadingKeySearch;
        f.headingKey.value = headingKey;
        f.headingIndex.value = headingIndex;

        f.terms.value = term;
        f.qualifiers.value = headingIndex;
		f.submit();
    }

    function doCatalogSearch(term, qualifier) {
        var f = document.HeadingKeySearch;
        f.terms.value = term;
        f.qualifiers.value = qualifier;
        f.submit();
    }

    function gotoReserveBrowse() {
		var f = document.GotoReserveBrowse;
		f.submit();
    }

    function browseReservesResults(start) {
		var f = document.BrowseReservesResults;
        f.start.value = start;
		f.submit();
    }
    

    function gotoCallNumberBrowse() {
		var f = document.GotoCallNumberBrowse;
		f.submit();
    }

    function browseCallNumberResults(start) {
		var f = document.BrowseCallNumbersResults;
        f.start.value = start;
		f.submit();
    }    



	function selectAllCheckboxes(theForm, name, checked) {
	        for(var i=0; i<theForm.elements.length; i++) {
				var element = theForm.elements[i];
				if(element.type=="checkbox" && element.name == name) {
					element.checked = checked;
				}
	        }
	}

	function selectOneCheckbox(theForm, name, value, checked) {
	        for(var i=0; i<theForm.elements.length; i++) {
				var element = theForm.elements[i];
				if(element.type=="checkbox" && element.name == name && element.value == value) {
					element.checked = checked;
				}
	        }
	}

	function testOneCheckbox(theForm, name) {
            var rtnValue = false;
	        for(var i=0; i<theForm.elements.length; i++) {
				var element = theForm.elements[i];
				if(element.type=="checkbox" && element.name == name) {
					rtnValue = element.checked;
                    break;
				}
	        }
            return rtnValue;
	}
    
    //test for any checkboxes checked
    function testCheckboxes(theForm, name) {
        var foundItem = false;
        for(var i=0; i<theForm.elements.length; i++) {
            var element = theForm.elements[i];
            if(element.type=="checkbox" && element.name == name && element.checked) {
                foundItem = true;
                break;
            }
        }
        return foundItem;
    }
    
    //test for all checkboxes checked
    function testAllCheckboxes(theForm, name) {
        var allSet = true;
        for(var i=0; i<theForm.elements.length; i++) {
            var element = theForm.elements[i];
            if(element.type=="checkbox" && element.name == name && !element.checked) {
                allSet = false;
                break;
            }
        }
        return allSet;
    }
    
    function gotoPlaceHold(documentIndex, id, callNumber, holdingIndex, libraryName) {
		var f = document.GotoPlaceHold;
        f.documentIndex.value = documentIndex;
        f.id.value = id;
        f.callNumber.value = callNumber;
        f.holdingIndex.value = holdingIndex;
        f.libraryName.value = libraryName;
		f.submit();
    }

    function doRelatedSearch(qualifier, term) {
		var f = document.RelatedSearch;
        f.qualifiers.value = qualifier;
        f.terms.value = term;
		f.submit();
    }    

    function doRelatedCallNumberBrowse(callNumber, library) {
		var f = document.RelatedCallNumberBrowse;
        f.callNumber.value = callNumber;
        f.library.value = library;
		f.submit();
    }    



    var enrichmentWindow;


    function openEnrichmentWindowViaURL(url, isbn, title, copyright, width, height, decorate) {
        if(decorate == "true") {
		enrichmentWindow = window.open('','','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=0,resizable=0,width=' + width + ',height=' + height);

        var frameHeight = height - 150;
        var frameWidth = width - 40;

        var text = '<html><head><title>[' + title + ' ' + isbn + ']</title></head><body>';
        text += '<b><FONT FACE=\"Garamond\" SIZE=5><p>' + title + '</p></font></b>';
        text += '<iframe src=\"' + url + '\" style=\"border:none; width:' + frameWidth + 'px; height:' + frameHeight + 'px;\"></iframe>';
        text += '<div><table width=\"100%\" bgcolor=\"#d8af79\" valign=\"top\"><tr valign=\"top\"><td colspan=\"3\" align=\"Right\"><font face=\"Arial\" size=\"1\" color=\"black\"><b>'; 
        text += copyright;
        text += '</b></font></td></tr></table></div>';
        text += '<FORM NAME=\"navbar\" method=\"GET\"><INPUT ALIGN=\"left\"COLOR=\"silver\"TYPE=\"button\"VALUE=\"Close Window\"onClick=\"self.close();\"></FORM>';
        text += '</body></html>';
		  enrichmentWindow.document.write(text);

        } else {
           enrichmentWindow = window.open(url,'','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=' + width + ',height=' + height);
        }
    
		setWindowFocus(enrichmentWindow);
    }

    function openEnrichmentWindow(text, width, height) {
		enrichmentWindow = window.open('','','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=' + width + ',height=' + height);
		enrichmentWindow.document.write(text);
		setWindowFocus(enrichmentWindow); 
    }

function nodeToInt(node) {
    var rval = -1;

    if(node) {
        rval = parseInt(node.firstChild.nodeValue);
    }

    return rval;
}

function getListData(nodeList) {
    var rval = "";
    for (i = 0; i < nodeList.length; i++) {
        var node = nodeList[i];
        rval += "<li>" + node.firstChild.nodeValue + "</li>";
    }

    return rval;
}

    function resolveISBN(isbn, title, creator, genre) {
		var f = document.ResolveOpenURL;
        f.isbn.value = isbn;
        f.title.value = title;
        f.aulast.value = creator;
        f.genre.value = genre;
		f.submit();    
    
    }
    function resolveISSN(issn, eissn, title, genre) {
		var f = document.ResolveOpenURL;
        f.issn.value = issn;
        f.eissn.value = eissn;
        f.title.value = title;
        f.genre.value = genre;
		f.submit();    
    }

function addOpacEngine(basePath)
{
  if ((typeof window.sidebar == "object") &&
      (typeof window.sidebar.addSearchEngine == "function")) {
      window.sidebar.addSearchEngine(basePath + 'plugins/opac-plugin.src',
                                     basePath + 'pugins/opac-plugin.jpg',
                                     'Academic',
                                     'Academic');
      
  } else {
      alert("Cannot add Search Engine");
  }
}



function setMsg(elementId,msg){
    var msgEl = document.getElementById(elementId);
    if (msgEl){
        msgEl.innerHTML = msg;
    }
}

function hasValidSuspendDates(theForm,dateFormat){
    //uses compareDates in datepicker.js
    var rtnVal = false;
    for(var i=0; i<theForm.elements.length; i++) {
        var element = theForm.elements[i];
        if(element.name == "suspendBeginDate") {
            var startDate = element.value;
        }
        if(element.name == "suspendEndDate") {
            var endDate = element.value;
        }
    }
    var isStartBeforeEnd = compareDates(startDate,endDate,dateFormat,"LE");
    var rtnVal = isStartBeforeEnd;
    return rtnVal;
}

function hasValue(theForm,name)
{
    var rtnVal = true;
    for(var i=0; i<theForm.elements.length; i++) {
        var element = theForm.elements[i];
        if(element.name == name) {
            rtnVal = (element.value == "")?false:true;
            break;
        }
    }
    return rtnVal;
}


	function doMostPopularItemSearch(f, qualifier, term) {        
        f.qualifiers.value = qualifier;
        f.terms.value = term;
		f.submit();
	}

function doPictureLibrarySearch(f, qualifier, term) {        
    f.qualifiers.value = qualifier;
    f.terms.value = term;
    f.submit();
}

function replaceCharacters(qualifier, value) {
        var originalURL = value;
        var qualifier = qualifier;
        var inputURL = value;
        
        inputURL = inputURL.replace(/'/g,"&#39"); // apostrophe
        inputURL = inputURL.replace(/"/g,""); // quote
          
        var finalURL = "<a href='";
        finalURL += 'javascript:doRelatedSearch("'+qualifier+'", "'+inputURL+'")'
        finalURL += "'>";
        finalURL += originalURL;
        finalURL += "</a>";
        
        document.write(finalURL);
}

