//------------------------------------------------
// chris d. added
//------------------------------------------------

function encodeMyHtml(str) {
     encodedHtml = encodeURI(str);
     //encodedHtml = encodedHtml.replace(/\//g,"%2F");
     //encodedHtml = encodedHtml.replace(/\?/g,"%3F");
     //encodedHtml = encodedHtml.replace(/=/g,"%3D");
     encodedHtml = encodedHtml.replace(/&/g,"%26");
     //encodedHtml = encodedHtml.replace(/@/g,"%40");
     return encodedHtml;
} 

// returns an array of "fields" from "str" where fields are separated by any character
// contained in the string "delimeters"
function collect_fields(str, delimeters) {
	var words = new Array();
	var numWords = 0;
	var ch;
	var len = str.length;
	var i = 0;

	while (1) {
		if (i > len - 1) {
			if (numWords == 0) return null;
			return words;
		}
		ch = str.charAt(i);

		if (delimeters.indexOf(ch) != -1) {
			i++;
			continue;
		}
		str = str.substring(i);
		len = str.length;
		i = 0;

		// any whitespace at beginning is now gone.
		// grab chars until eof or whitespace.
		while (1) {
			if (i > len - 1) {
				// ran outta string.  save this last one and return.
				words[numWords++] = str;
				return words;
			}

			ch = str.charAt(i);
			if (delimeters.indexOf(ch) == -1) {
				i++;
				continue;
			} else break;
		}

		// found end of word
		words[numWords++] = str.substring(0, i);
		str = str.substring(i);
		len = str.length;
		i = 0;

	}
	return null; // should never get here

}


function set_parm_str(parm, val, strUrl)
{
   var pid = "";
   var inx = -1;
   var newUrl = "";


   // first split off from first question mark
   inx = strUrl.indexOf('?');
   if (inx != -1) {
      newUrl = strUrl.substring(0, inx+1);
      strUrl = strUrl.substring(inx);

      // strip all extraneous question marks
      while (newUrl.length > 1 && newUrl.charAt(newUrl.length-1) == '?') {
         newUrl = newUrl.substring(0, newUrl.length-1);
      }
      while (strUrl.length > 1 && strUrl.charAt(0) == '?') {
         strUrl = strUrl.substring(1);
      }
   }
   newUrl += '?';
   
   var fields = collect_fields(strUrl, "&");
   for (var i=0; i<fields.length; i++) {
      inx = fields[i].indexOf(parm);
      if (inx != -1) {
         newUrl += val;
      } else {
         newUrl += fields[i];
      }
      if (i < fields.length-1) newUrl += '&';
   }
   return newUrl;
}

//------------------------------------------------


var GetStatusList = new Array();
var GetSaveStatusList = new Array();

function createRequestObject() {  
    // find the correct xmlHTTP, works with IE, FF and Opera
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlhttp = null;
        }
    }
    
    if (!xmlhttp && typeof XMLHttpRequest!="undefined") {
        xmlhttp = new XMLHttpRequest();
    }
    
    return xmlhttp;
}

function getElem(id)
{
    if (document.getElementById) {
        return document.getElementById(id);
    } else if (document.all) {
        return document.all[id];
    }
}

function getThumbnail(id, imgname)
{
    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=GetThumbnail&isn="+id+"&size=small", true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            if (response.getElementsByTagName('image').item(0)) {
                var url = response.getElementsByTagName('image').item(0).firstChild.data;
                //alert(url);
                // write out response
                if (url) {
                    document[imgname].src = url;
                } else {
                    document[imgname].src = path + '/images/noCover2.gif';
                }
            } else {
                document[imgname].src = path + '/images/noCover2.gif';
            }
        }
    }
    http.send(null);
}

function getSFXLink(id, linkurl, imageurl, librarycode)
{
    var url = doc_src(document.location.href) + '/public/sfxFullText.pl?d=' + librarycode + 'db&u=' + linkurl;

    var http = createRequestObject();
    http.open("GET", url, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            var isFullText = 0;
            var item = response.getElementsByTagName('sfxFullText');
            if (item != null && item[0].firstChild.data == 'true') {
               isFullText = 1;
            }
            // If there's SFX full text, show the SFX link _instead of_ the 856 links
            if (isFullText) {
               // First, blank out availability info since it doesn't apply anymore
               getElem('status' + id).innerHTML = '';

               getElem('the856s' + id).innerHTML = '<a href="' + unescape(linkurl) + '" class="fulltext" onClick="window.open(\'' + unescape(linkurl) + "', 'SFXmenu', 'toolbar=no,location=no,directories=no,buttons=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=550,height=600'); return false;\"><img src=\"" + unescape(imageurl) + '" border="0"></a><br>';
            }
        }
    }
    http.send(null);
}


function getStatuses(id)
{
    GetStatusList[GetStatusList.length] = id;
}

function doGetStatuses()
{
    var now = new Date();
    var ts = Date.UTC(now.getFullYear(),now.getMonth(),now.getDay(),now.getHours(),now.getMinutes(),now.getSeconds(),now.getMilliseconds());
    var http = createRequestObject();

    var url = path + "/Search/AJAX?method=GetItemStatuses";
    for (var i=0; i<GetStatusList.length; i++) {
       url += "&id" + i + "=" + GetStatusList[i];
    }
    url += "&time="+ts;

    http.open("GET", url, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            var items = response.getElementsByTagName('item');
            var elemId;
            var statusDiv;
            var status;
            var status_desc;

            for (i=0; i<items.length; i++) {
                elemId = items[i].getAttribute('id');
                statusDiv = getElem('status' + elemId);
               
                // I added the check for an empty string:
                //     && statusDiv.innerHTML != ""
                // because another ajax call may have purposely set it to blank
                // and we don't want to undo this purposeful blank.
                if (statusDiv && statusDiv.innerHTML != "") {
                    if (items[i].getElementsByTagName('availability')) {
                        if (items[i].getElementsByTagName('availability').item(0).firstChild) {
                            status = items[i].getElementsByTagName('availability').item(0).firstChild.data;
                            status_desc = items[i].getElementsByTagName('status').item(0).firstChild.data;
                            requestable = items[i].getElementsByTagName('requestable').item(0).firstChild.data;

                            if (status_desc.length) {
                               // write out response
                               if (status_desc == "Not Available") {
                                   statusDiv.innerHTML = '<span class="checkedout">' + status_desc + '</span>';
                               } else if (status_desc == "Some Items Available") {
                                  if (requestable == "1") {
                                   statusDiv.innerHTML = '<span class="someavailable"><a href="../Record/' + elemId + '/Request" onClick="popupMenu(\'connectLocal\'); return true;">' + status_desc + '</a></span>';
                                  } else {
                                   statusDiv.innerHTML = '<span class="someavailable">' + status_desc + '</span>';
                                  }
                               } else {
                                  if (requestable == "1") {
                                   statusDiv.innerHTML = '<span class="available"><a href="../Record/' + elemId + '/Request" onClick="popupMenu(\'connectLocal\'); return true;">' + status_desc + '</a></span>';
                                  } else {
                                   statusDiv.innerHTML = '<span class="available">' + status_desc + '</span>';
                                  }
                               }
                            } else {
                               statusDiv.innerHTML = '';
                            }

                        } else {
                            statusDiv.innerHTML = '';
                        }
                    } else {
                        statusDiv.innerHTML = '';
                    }

                    if (items[i].getElementsByTagName('location')) {
                        var callnumber = items[i].getElementsByTagName('callnumber').item(0).firstChild.data;
                        var location = items[i].getElementsByTagName('location').item(0).firstChild.data;
                        var the_856s = items[i].getElementsByTagName('the_856s').item(0).firstChild.data;
                        var multiple_856s = items[i].getElementsByTagName('multiple_856s').item(0).firstChild.data;
                        if (location.length) {
                           if (location == 'Click for details') {
                              getElem('location' + elemId).innerHTML = '<strong>Location: ' + '<a href="../Record/' + elemId + '">' + location + '</a></strong>';
                           } else {
                              getElem('location' + elemId).innerHTML = '<strong>Location: ' + location + '</strong>';
                           }
                        }
                        if (callnumber.length) {
                           if (callnumber == 'Click for details') {
                              getElem('callnumber' + elemId).innerHTML = '<strong>Call Number: </strong>' + '<a href ="../Record/' + elemId + '">' + callnumber + '</a>';
                           } else {
                              getElem('callnumber' + elemId).innerHTML = '<strong>Call Number: </strong>' + callnumber;
                           }
                        }
                        if (the_856s.length) {
                           if(getElem('the856s' + elemId)) {
                              // First, blank out availability info since it doesn't apply anymore
                              getElem('status' + elemId).innerHTML = '';

                              var more_856s = '';
                              if (multiple_856s == 'yes') {
                                 more_856s = ' <a href="../Record/' + elemId + '">(More...)</a>';
                              }
                              getElem('the856s' + elemId).innerHTML = '<a href="' + the_856s + '">Get it online</a>' + more_856s;
                           }
                        }
                    }
                }
            }
        }
    }
    http.send(null);
}

function getStatus(id, elemId)
{
    var now = new Date();
    var ts = Date.UTC(now.getFullYear(),now.getMonth(),now.getDay(),now.getHours(),now.getMinutes());
    // ts is used as a cache preventer for IE

    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=GetItemStatus&id="+id+"&time="+ts,true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            if (response.getElementsByTagName('availability')) {
                if (response.getElementsByTagName('availability').item(0).firstChild) {
                    var status = response.getElementsByTagName('availability').item(0).firstChild.data;
                    // write out response
                    if (status == "true") {
                        getElem(elemId).innerHTML = '<span class="available">' + response.getElementsByTagName('status').item(0).firstChild.data + '</span>';
                    } else {
                        getElem(elemId).innerHTML = '<span class="checkedout">' + response.getElementsByTagName('status').item(0).firstChild.data + '</span>';
                    }
                } else {
                    getElem(elemId).innerHTML = '<span class="unknown">Unknown</span>';
                }
            } else {
                getElem(elemId).innerHTML = '<span class="unknown">Unknown</span>';
            }
            
            if (response.getElementsByTagName('location')) {
                var callnumber = response.getElementsByTagName('callnumber').item(0).firstChild.data;
                var location = response.getElementsByTagName('location').item(0).firstChild.data;
                var reserves = response.getElementsByTagName('reserve').item(0).firstChild.data;
                
                if (reserves == 'Y') {
                    getElem('location' + id).innerHTML = 'Reserves - Ask at Circulation';
                } else {
                    getElem('location' + id).innerHTML = location;
                }
                
                getElem('callnumber' + id).innerHTML = callnumber;
            }
        }
    }
    http.send(null);
}

function showSaveForm()
{
    var now = new Date();
    var ts = Date.UTC(now.getFullYear(),now.getMonth(),now.getDay(),now.getHours(),now.getMinutes());
    // ts is used as a cache preventer for IE

    var id = document.forms['listForm'].elements['recordId'].value;

    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=IsLoggedIn"+"&time="+ts, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var result = http.responseXML.documentElement.getElementsByTagName('result').item(0).firstChild.data;
            if (result == "True") {
                var http2 = createRequestObject();
                http2.open("GET", path + "/Search/AJAX?method=GetSavedData&id=" + id + "&time=" + ts, true);
                http2.onreadystatechange = function()
                {
                    if ((http2.readyState == 4) && (http2.status == 200)) {
                        var response = http2.responseXML.documentElement;
                        if (response.getElementsByTagName('result')) {
                            var notes = response.getElementsByTagName('Notes');
                            if (notes.length) {
                                notes = notes.item(0).firstChild.data;
                                document.forms['listForm'].elements['notes'].value=notes;
                            } else {
                                document.forms['listForm'].elements['notes'].value='';
                            }

                            tags = response.getElementsByTagName("Tag");
                            if (tags.length > 0) {
                                var output = '';
                                for(i = 0; i < tags.length; i++) {
                                    if (i > 0) {
                                        output = output + " ";
                                    }
                                    output = output + tags.item(i).firstChild.data;
                                }
                                document.forms['listForm'].elements['tags'].value=output;
                            } else {
                                document.forms['listForm'].elements['tags'].value='';
                            }
                        }
                    }
                }
                http2.send(null);
                popupMenu('listForm');
            } else {
                //popupMenu('loginBox');
                window.location = path + "/MyResearch/Home?message=You+must+be+logged+in+for+this+action&followup=" + escape(fullpath + "&followupJS=document.forms['listForm'].elements['recordId'].value='" + id + "';showSaveForm()");
            }
        }
    }
    http.send(null);
}

function saveRecord()
{
    var id = document.forms['listForm'].elements['recordId'].value;
    var tags = document.forms['listForm'].elements['tags'].value;
    var notes = document.forms['listForm'].elements['notes'].value;

    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=SaveRecord&id=" + id + "&tags=" + tags + "&notes=" + notes, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var result = http.responseXML.documentElement.getElementsByTagName('result').item(0).firstChild.data;
            if (result != 'Unauthorized') {
                elem = getElem('saveLink' + id);
                elem.style.backgroundColor = '#FFFFCC';
                hideLightbox();
            } else {
                //popupMenu('loginBox');
                window.location = path + "/MyResearch/Home?message=You+must+be+logged+in+for+this+action&followup=" + escape(fullpath);
            }
        }
    }
    http.send(null);
}

function getSaveStatus(id, elemId)
{
    var now = new Date();
    var ts = Date.UTC(now.getFullYear(),now.getMonth(),now.getDay(),now.getHours(),now.getMinutes());
    // ts is used as a cache preventer for IE
    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=GetSaveStatus&id=" + id + "&time=" + ts, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var result = http.responseXML.documentElement.getElementsByTagName('result').item(0).firstChild.data;
            if (result == 'Saved') {
                getElem(elemId).style.backgroundColor = '#FFFFCC';
            }
        }
    }
    http.send(null);
}

function getSaveStatuses(id)
{
    GetSaveStatusList[GetSaveStatusList.length] = id;
}

function doGetSaveStatuses()
{
    if (GetSaveStatusList.length < 1) return;

    var http = createRequestObject();
    var now = new Date();
    var ts = Date.UTC(now.getFullYear(),now.getMonth(),now.getDay(),now.getHours(),now.getMinutes(),now.getSeconds(),now.getMilliseconds());

    var url = path + "/Search/AJAX?method=GetSaveStatuses";
    for (var i=0; i<GetSaveStatusList.length; i++) {
        url += "&id" + i + "=" + GetSaveStatusList[i];
    }
    url += "&time="+ts;

    http.open("GET", url, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {

            var response = http.responseXML.documentElement;
            var items = response.getElementsByTagName('item');

            for (var i=0; i<items.length; i++) {
                var elemId = items[i].getAttribute('id');

                var result = items[i].getElementsByTagName('result').item(0).firstChild.data;
                if (result == 'Saved') {
                    getElem('saveLink' + elemId).style.backgroundColor = '#FFFFCC';
                }
            }
        }
    }
    http.send(null);
}

function saveSearch(lookfor, type, limit, elemId)
{
    getElem(elemId).innerHTML = 'Saving ... <img src="' + path + '/images/loading.gif">';
    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=SaveSearch&lookfor=" + lookfor + "&type=" + type + "&limit=" + limit, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var result = http.responseXML.documentElement.getElementsByTagName('result').item(0).firstChild.data;
            if (result == "Done") {
                getElem(elemId).innerHTML = 'This Search Saved';
                alert('Your search has been saved.\nYou will recieve email updates of new search results.');
            } else {
                getElem(elemId).innerHTML = result;
            }
        }
    }
    http.send(null);
}

function showSuggestions(elem)
{
    if ((elem.value != '') && (document.searchForm.suggest.checked)) {
        var http = createRequestObject();
        http.open("GET", path + "/Search/Search/AJAX?method=GetSuggestion&phrase=" + elem.value, true);
        http.onreadystatechange = function()
        {
            if ((http.readyState == 4) && (http.status == 200)) {
                document.getElementById('SuggestionList').style.visibility = 'visible';
                document.getElementById('SuggestionList').innerHTML = '';

                var result = http.responseXML.documentElement.getElementsByTagName('result').item(0).firstChild.data;
                var resultList = result.split("|");

                for (i=0; i<10; i++) {
                    if (i==0) {
                        document.getElementById('SuggestionList').innerHTML = document.getElementById('SuggestionList').innerHTML + '<li class="top"><a href="">' + resultList[i] + '</a></li>';
                    } else {
                        document.getElementById('SuggestionList').innerHTML = document.getElementById('SuggestionList').innerHTML + '<li><a href="">' + resultList[i] + '</a></li>';
                    }
                }
            }
        }
        http.send(null);
    } else {
        document.getElementById('SuggestionList').style.visibility = 'hidden';
        document.getElementById('SuggestionList').innerHTML = '';
    }
}

function getSubjects(phrase)
{
    var liList = '';
    var http = createRequestObject();
    http.open("GET", path + "/Search/AJAX?method=GetSubjects&lookfor=" + phrase, true);
    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            if (subjects = response.getElementsByTagName('Subject')) {
                for (i = 0; i < subjects.length; i++) {
                    if (subjects.item(i).firstChild) {
                        liList = liList + '<li><a href="">' + subjects.item(i).firstChild.data + '</a></li>';
                    }
                }
                document.getElementById('subjectList').innerHTML = liList;
            }
        }
    }
    http.send(null);
}

function getNarrowOptions(query, fquery, limit, optionLimit)
{
    var narrowList = getElem('narrowList');
    var loading = getElem('narrowLoading');
    var responseHTML = '';
    var totalHTML = '';
    var facet;
    var facetText;
    var facetCnt;

    var http = createRequestObject();
    var parms = "method=GetNarrowOptions&query=" + query + "&filter=" + fquery + "&limit=" + limit + "&optionLimit=" + optionLimit;

    http.open("POST", path + "/Search/AJAX?method=GetNarrowOptions", true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length", parms.length);
    http.setRequestHeader("Connection", "close");

    http.onreadystatechange = function()
    {
        if ((http.readyState == 4) && (http.status == 200)) {
            var response = http.responseXML.documentElement;
            if (options = response.getElementsByTagName('Cluster')) {
                for (i=0; i<options.length; i++) {
                    facetCnt = 0;
                    facets = options.item(i).childNodes;
                    if (facets.length) {
if (options.item(i).getAttribute('display') == null) continue;
                        responseHTML += '<dt>' + options.item(i).getAttribute('display') + '</dt>';

                        for (j=0; j<facets.length; j++) {
                            // Darn browser non compliance!
                            dummy = document.createTextNode('test');
                            if (dummy.textContent) { // FF
                                facetText = facets[j].textContent;
                            } else if (dummy.innerText != undefined) { // IE6
                                facetText = facets[j].text;
                            } else if (facets[j].childNodes(0)) { // IE7, Safari1
                                facetText = facets[j].childNodes(0).nodeValue;
                            } else if (facets[j].firstNode) { // Safari2
                                facetText = facets[j].firstNode.nodeValue;
                            } else { // Anything Else
                                facetText = facets[j].innerHTML;
                            }
                            if (facetText == undefined) {
                                facetText = '';
                            }

                            //if (facets[j].attributes && (facets[j].getAttribute('count') > 0) && (facetText != '')) {
                            if (facets[j].attributes && (facetText != '')) {

                                var facetName = options.item(i).getAttribute('name');
                                var facetLink = facets[j].getAttribute('link');

                                if (facetCnt++ == 5) {
                                    totalHTML += '<dl class="narrowList navmenu narrow_begin" id="facet_begin_' + facetName + '">';
                                    totalHTML += responseHTML;
                                    totalHTML += '</dd><dd>';
                                    totalHTML += '<a href="" onclick="hideThese(\'facet_begin_' + facetName  + '\'); showThese(\'facet_end_' + facetName + '\'); return false;">more...</a></dd></dl>';
                                    totalHTML += '<dl class="narrowList navmenu narrow_end" id="facet_end_' + facetName + '">';
                                    totalHTML += responseHTML;
                                    responseHTML = '';
                                }

                                var fixpagevariable = set_parm_str('page=', 'page=1', window.location.toString());
                                if (facetLink) {

                                    responseHTML += '<dd><a href="'+fixpagevariable+'&filter[]='+options.item(i).getAttribute('name')+':%22'+encodeMyHtml(facetLink)+'%22">';
                                } else {
                                    responseHTML += '<dd><a href="'+fixpagevariable+'&filter[]='+options.item(i).getAttribute('name')+':%22'+encodeMyHtml(facetText)+'%22">';
                                }


                                responseHTML += facetText;
                                if (facets[j].getAttribute('count') == '') {
                                   responseHTML += '</a>'+facets[j].getAttribute('count')+'</dd>';
                                } else {
                                   responseHTML += '</a> ('+facets[j].getAttribute('count')+')</dd>';
                                }
                            }
                        }
                        totalHTML += responseHTML;
                        responseHTML = '';
                        if (facetCnt > 5) {
                           totalHTML += '<dd><a href="" onclick="hideThese(\'facet_end_' + facetName  + '\'); showThese(\'facet_begin_' + facetName + '\'); return false;">less...</a></dd></dl>';
                           totalHTML += '</dl>';
                        }
                    }
                }
            }
            
            loading.style.display = 'none';
            narrowList.innerHTML = totalHTML;
        }
    }
    http.send(parms);
}
            
function selectToPrint(recordId, elemId) {

    var recordsToPrint = unserialize(getCookie("narrow"));
    if(!recordsToPrint)
        recordsToPrint = new Array();
    
    element = document.getElementById("narrowText" + elemId);
    elemImg = document.getElementById("narrowButton" + elemId);
    if (element.innerHTML == "REMOVE") {
        recordsToPrint["" + recordId] = 0;
        element.innerHTML = "NARROW";
    } else {
        recordsToPrint["" + recordId] = 1;
        element.innerHTML = "REMOVE";
    }
    setCookie("narrow", serialize(recordsToPrint), 1);
}

function printRecords() {
    var recordsToPrint = unserialize(getCookie("narrow"));
    var ids = "";
    for (id in recordsToPrint) {
        if(recordsToPrint[id] != 0)
            ids = ids + "&id%5B%5D=" + id;
    }
    if(ids != "")
        window.location = "?print=1" + ids;
}

function getNarrowButtonStatus(recordId, elemId) {
    var recordsToPrint = unserialize(getCookie("narrow"));

    if (recordsToPrint["" + recordId] == 1) {
        element = document.getElementById("narrowText" + elemId);
        element.innerHTML = "REMOVE";
        elemImg = document.getElementById("narrowButton" + elemId);
        elemImg.checked = true;
    }
}

function setCookie(c_name,value,expiredays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate()+ expiredays);
    document.cookie = c_name + "=" + escape(value) +
        ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString())
}

function getCookie(c_name)
{
    if (document.cookie.length > 0)
    {
        c_start = document.cookie.indexOf(c_name + "=")
        if (c_start != -1)
        { 
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";",c_start);
            if (c_end == -1) 
                c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}

function parseQueryString(qs, term)
{
    qs = qs + "";
    var list = new Array();
    var elems = qs.split("&");
    for (var i=0; i<elems.length; i++) {
        var pair = elems[i].split("=");
        if (pair[0].substring(0, term.length) != term) {
            list.push(elems[i]);
        }
    }
    return list.join('&');
}

function showThese(elemId)
{
   var el = getElem(elemId);
   el.style.display='block';
}

function hideThese(elemId)
{
   var el = getElem(elemId);
   el.style.display='none';
}

function doc_src(doc)
{
   var inx = doc.indexOf("http://");
   var lenOfMatch = 7;
   if (inx == -1) {
      inx = doc.indexOf("https://");
      lenOfMatch = 8;
   }
   if (inx == -1) return '';
   var docsrc = doc.substring(0, lenOfMatch);

   inx = doc.indexOf('/', lenOfMatch);
   if (inx == -1) return doc;

   docsrc = doc.substring(0, inx);
   return docsrc;
}


