document.write("<div id=\"msg_box\">Log-in or subscribe to access a larger version of this image, and get full access to all features.</div>");

var curleft = 0;
var curtop = 0;
var imageTimerID;
var dwrStatusIndex = 0 
var elementDiv;
var parentDiv;
var query;
    function adjustScrollPosition() {
    var browser=navigator.appName;
    if (browser=="Netscape") {
        for(var i = 0; i < 10; i++){
            var filmstrip = document.getElementById("filmstripDiv_"+i)
            if(filmstrip != null) {
                filmstrip.scrollLeft = 0;
            }
        }
    }
    }
    function getPosition(ourElementDiv, ourParentDiv) {
          parentDiv = ourParentDiv;
          elementDiv = ourElementDiv;
          var processingDivElement;
          var processingParentDiv;
          processingDivElement = document.getElementById(ourElementDiv);
          processingParentDiv = document.getElementById(ourParentDiv);
          var selectedPosX = 0;
          var selectedPosY = 0;
          while(processingDivElement != null){
            selectedPosX += processingDivElement.offsetLeft;
            selectedPosY += processingDivElement.offsetTop;
            processingDivElement = processingDivElement.offsetParent;
          } 
          var parentColumn;
          if(document.getElementById(ourElementDiv)) {
              parentColumn= document.getElementById(ourElementDiv).parentNode;
              var parentRow = document.getElementById(ourElementDiv).parentNode.parentNode;
              var scrollPosition = document.body.clientWidth + document.getElementById(ourParentDiv).scrollLeft; 
              if(scrollPosition > selectedPosX && dwrStatusIndex == 0) {
                  dwrStatusIndex = 1;
                  var imagesStartIndex = parentRow.childNodes.length;
                  var thumbnailSize = getThumbnailSize();
                  GroupedImageSearchResults.getImageSearchResults(thumbnailSize, imagesStartIndex, getPositionCallBack);
          }
     }
    }
    function getPositionCallBack(getImageSearchResults) {
      var searchReaultSize = getImageSearchResults.length;
      var i = 0;
      for(i=0; i<searchReaultSize; i++) {
        var processingImageIndex = i+1;
        var processingDivElement = document.getElementById("processing_image_"+processingImageIndex);
        if(processingDivElement != null){
            parentColumn = document.getElementById("processing_image_"+processingImageIndex).parentNode;
            parentRow = document.getElementById("processing_image_"+processingImageIndex).parentNode.parentNode;
            parentRow.removeChild(parentColumn);
            var newRow = parentRow.innerHTML + getImageSearchResults[i];
            var filmStripTable = parentRow.parentNode.parentNode;
            var filmStripDiv = filmStripTable.parentNode;
            var newTable='<table cellspacing="0" cellpadding="0" border="0"><tbody><tr>' + newRow + "</tr></tbody></table>" 
            filmStripDiv.innerHTML = unescape ( newTable.replace(/\+/g, " ") );
        }
      }
      var numberOfImagesLoaded = document.getElementById("display_image_results").getElementsByTagName("tr")[0].childNodes.length;
      unicaEventHandlerForImageResize("loadedNextSetOfImage-" + numberOfImagesLoaded)
      dwrStatusIndex = 0;
    }
    
    function getThumbnailSize() {
        var imageHeight = document.getElementById("1-1-img").height;
        var imageWidth = document.getElementById("1-1-img").width;
        if(imageWidth > imageHeight) {
            return imageWidth;
        } else {
            return imageHeight
        }
    }
    
    function atLeastOneCheckboxIsChecked (inputs) {
        for(var no=0;no<inputs.length;no++) {
            if(inputs[no].type=='checkbox') {
                if(inputs[no].checked) return true;
            }
        }
        return false;
    }
    
    function processFilterType (limitTo, inputType) {
        var inputs = inputType.getElementsByTagName('input');
        if (limitTo) {
            if (atLeastOneCheckboxIsChecked(inputs))
                for(var no=0;no<inputs.length;no++) {
                    if(inputs[no].type=='checkbox') {
                        if(inputs[no].checked) {
                            inputs[no+1].value = 'inc';
                        }
                        else {
                            inputs[no+1].value = 'exc';
                        }
                    }
                }   
        } else { //exclude checked
            if (atLeastOneCheckboxIsChecked(inputs))
                for(var no=0;no<inputs.length;no++){
                    if(inputs[no].type=='checkbox')
                            if(inputs[no].checked)
                                inputs[no+1].value = 'exc';
                            else
                                inputs[no+1].value = 'inc';
                }   
        }
    }

    function resetFilterForm() {
        if(isObject(document.filter_form)) {
            var inputs = document.filter_form.getElementsByTagName('input');
            //Bypass first hidden query param
            for(var no=1;no<inputs.length;no++) { 
                if (inputs[no].type == 'hidden') {
                    inputs[no].value = 'inc';
                }
            }
        }
    }
    
    function submitFilterForm(limitTo) {
        var inputs = document.filter_form.getElementsByTagName('input');
        var processForm = atLeastOneCheckboxIsChecked(inputs);
        if (processForm) {
            if (limitTo) { //include checked
                inputs[1].value='true';
                processFilterType(true,document.getElementById("filter_column_table_modality"));                
                processFilterType(true,document.getElementById("filter_column_table_anatomic"));                
            } else { //exclude checked
                inputs[1].value='false';
                processFilterType(false,document.getElementById("filter_column_table_modality"));               
                processFilterType(false,document.getElementById("filter_column_table_anatomic"));               
            }
        } else
            alert("Please check one item to Limit or Exclude.");

        if (processForm) document.filter_form.submit()
    }
    
    
    function toggleFilters() {
        if (document.getElementById('search_results_filter_container').style.display == "block") {
            hideSearchFilters();
        } else {
            showSearchFilters();
        }       
    }
    
    function showSearchFilters() {
        if(isObject(document.getElementById('search_results_filter_container'))) {
            document.getElementById('search_results_filter_container').style.display = 'block';
            document.getElementById('img_filters_outer_container').style.height = '1.8em';
            document.getElementById('filters_plusminus').src = "/ic/images/toc_minus.gif";
            setCookie("showFilters","true",365);
        }
    }

    function hideSearchFilters() {
        if(isObject(document.getElementById('search_results_filter_container'))) {
            document.getElementById('search_results_filter_container').style.display = 'none';
            document.getElementById('img_filters_outer_container').style.height = '1.8em';
            document.getElementById('filters_plusminus').src = "/ic/images/toc_plus.gif";
            setCookie("showFilters","false",365);
        }
    }

    function increasePics(downloadDomainName) {
        var arrayOfImages = document.getElementById("search_result_container").getElementsByTagName("img")
        var currentImage = arrayOfImages[0];
        var currentWidth = currentImage.width;
        var currentHeight = currentImage.height;
        var newWidth = currentWidth;
        var newHeight = currentHeight;
                
        for (var image = 0; image < arrayOfImages.length; image++) {
            if(findElementAttribute(arrayOfImages[image],'class') == 'result-img') {
                currentImage = arrayOfImages[image];
                currentWidth = currentImage.width;
                currentHeight = currentImage.height;
                newWidth = currentWidth;
                newHeight = currentHeight;
                if (currentHeight <= 120 && currentWidth <= 120) {
                        newWidth = currentWidth * (4/3);
                        newHeight = currentHeight * (4/3);
                } else if (currentHeight <= 160 && currentWidth <= 160) {
                        newWidth = currentWidth * (5/4);
                        newHeight = currentHeight * (5/4);
                } else if (currentHeight <= 200 && currentWidth <= 200) {
                        newWidth = currentWidth * (7/4);
                        newHeight = currentHeight * (7/4);
                } 
                    

                if (currentHeight <= 200 && currentWidth <= 200) {
                    updatePictureSizeAndContainers(newWidth, newHeight, currentImage);
                }
                
                if((newHeight > 200 || newWidth > 200) && currentImage.src.indexOf('midi.jpg') > -1 ) {
                    currentImage.src = currentImage.src.replace("midi", "med");
                }

                var divElement = currentImage.parentNode.parentNode;                
                divElement.style.left = currentImage.style.left
                divElement.style.top = currentImage.style.top;                                                  
            }   
        }
        if(currentHeight < newHeight){
            var eventHandlerName = newHeight;
            if(newWidth > newHeight)
            {
                eventHandlerName = newWidth;
            }
             unicaEventHandlerForImageResize("imageSizeIncreaseTo-" + eventHandlerName);
        }
        
    }

    function decreasePics(downloadDomainName) {
        var arrayOfImages = document.getElementById("search_result_container").getElementsByTagName("img")
        var currentImage = arrayOfImages[0];
        var currentWidth = currentImage.width;
        var currentHeight = currentImage.height;
        var newWidth = currentWidth;
        var newHeight = currentHeight;
        for (var image = 0; image < arrayOfImages.length; image++) {
            if(findElementAttribute(arrayOfImages[image], 'class') == 'result-img') {
                currentImage = arrayOfImages[image];
                currentWidth = currentImage.width;
                currentHeight = currentImage.height;
                
                newWidth = currentWidth;
                newHeight = currentHeight;
                
                if (currentHeight >= 350 || currentWidth >= 350) {
                        newWidth = currentWidth * (4/7);
                        newHeight = currentHeight * (4/7);
                        currentImage.src = currentImage.src.replace("med", "midi");    
                        updatePictureSizeAndContainers(newWidth, newHeight, currentImage);
                } else if (currentHeight >= 200 || currentWidth >= 200) {
                        newWidth = currentWidth * (4/5);
                        newHeight = currentHeight * (4/5);
                        updatePictureSizeAndContainers(newWidth, newHeight, currentImage);
                } else if (currentHeight >= 160 || currentWidth >= 160) {
                        newWidth = currentWidth * (3/4);
                        newHeight = currentHeight * (3/4);
                        updatePictureSizeAndContainers(newWidth, newHeight, currentImage);
                } 
                    
            }   
        }
        if(currentHeight > newHeight){
            var eventHandlerName = newHeight;
            if(newWidth > newHeight)
            {
                eventHandlerName = newWidth;
            }
            unicaEventHandlerForImageResize("imageSizeDecreaseTo-"+eventHandlerName);
        }
    }
    
    function updatePictureSizeAndContainers(newWidth, newHeight, currentImage) {
        currentImage.width = newWidth; 
        currentImage.height = newHeight; 
        
        var singleSearchImageDivContainer = currentImage.parentNode.parentNode;
        var singleSearchResultDivContainer = singleSearchImageDivContainer.parentNode;
        
        if(newWidth <= 120 && newHeight <= 120) {
            singleSearchResultDivContainer.className = "search-single-img-result-container";
            singleSearchImageDivContainer.className = "search-single-img-only-container";
        } else if(newWidth <= 160 && newHeight <= 160) {
            singleSearchResultDivContainer.className = "search-single-img-result-container-sm";
            singleSearchImageDivContainer.className = "search-single-img-only-container-sm";
        } else if(newWidth <= 200 && newHeight <= 200) {
            singleSearchResultDivContainer.className = "search-single-img-result-container-med";
            singleSearchImageDivContainer.className = "search-single-img-only-container-med";    
        } else if(newWidth <= 350 && newHeight <= 350) {
            singleSearchResultDivContainer.className = "search-single-img-result-container-lrg";
            singleSearchImageDivContainer.className = "search-single-img-only-container-lrg";    
        }
    }

    function findElementAttribute(element, attribute) {
        for( var x = 0; x < element.attributes.length; x++ ) {
            if( element.attributes[x].nodeName.toLowerCase() == attribute ) {
                return element.attributes[x].nodeValue; 
            }
        }       
    }

    function collapseAllResultGroups() {
        
        var divArray = document.getElementsByTagName('div');
        var groupcountx = 0; 
        for (var divToInspect = 0; divToInspect < divArray.length; divToInspect++) {
            if (findElementAttribute(divArray[divToInspect], 'class') == 'search-section') {
                groupcountx++;
            }
        }
        for (var searchSection = 1;  searchSection <= groupcountx; searchSection++) {
            document.getElementById('filmstripDiv_' + searchSection).style.display = 'none';
            if(isObject(document.getElementById('results_group_morelinks_' + searchSection))) {
                document.getElementById('results_group_morelinks_' + searchSection).style.display = 'none';
            }
            document.getElementById('plusminus_' + searchSection).src = "/ic/images/plus.gif";
        }
        document.getElementById('close_all_sections').style.display = 'none';
        document.getElementById('expand_all_sections').style.display = 'block';
    }

    function expandAllResultGroups() {
        
        var divArray = document.getElementsByTagName('div');
        var groupcountx = 0; 
        for (var divToInspect = 0; divToInspect < divArray.length; divToInspect++) {
            if (findElementAttribute(divArray[divToInspect], 'class') == 'search-section') {
                groupcountx++;
            }
        }
        for (var searchSection = 1;  searchSection <= groupcountx; searchSection++) {
            document.getElementById('filmstripDiv_' + searchSection).style.display = 'block';
            if(isObject(document.getElementById('results_group_morelinks_' + searchSection))) {
                document.getElementById('results_group_morelinks_' + searchSection).style.display = 'block';
            }
            document.getElementById('plusminus_' + searchSection).src = "/ic/images/minus.gif";
        }
        document.getElementById('close_all_sections').style.display = 'block';
        document.getElementById('expand_all_sections').style.display = 'none';
    }
    
    function toggleResultsGroup(plusMinusImageId,resultsGroupDivId,resultsGroupDivIdOtherLinks) {
        if (document.getElementById(resultsGroupDivId).style.display == 'block') {
            setResultsDisplayToHidden(plusMinusImageId, resultsGroupDivId, resultsGroupDivIdOtherLinks);        
        } else if (document.getElementById(resultsGroupDivId).style.display == 'none') {
            setResultsDisplayToShown(plusMinusImageId, resultsGroupDivId, resultsGroupDivIdOtherLinks);
        } else {
            setResultsDisplayToHidden(plusMinusImageId, resultsGroupDivId, resultsGroupDivIdOtherLinks);
        }
    }
    
    function setResultsDisplayToShown(plusMinusImageId, resultsGroupDivId, resultsGroupDivIdOtherLinks) {
            document.getElementById(resultsGroupDivId).style.display = 'block';
            document.getElementById(plusMinusImageId).src = '/ic/images/minus.gif';
            document.getElementById(resultsGroupDivIdOtherLinks).style.display = 'block';
    }
    
    function setResultsDisplayToHidden(plusMinusImageId, resultsGroupDivId, resultsGroupDivIdOtherLinks) {
            document.getElementById(resultsGroupDivId).style.display = 'none';
            document.getElementById(plusMinusImageId).src = '/ic/images/plus.gif';
            document.getElementById(resultsGroupDivIdOtherLinks).style.display = 'none';
    }

    function createImageSearchURLWithGroupByNodeName(url) {
        var groupByNodeNameValue = document.getElementById("group_results_dropdown").value;
        var imageSearchURLWithGroupByNodeName = url;
        
        var indexOfResultOffset = url.indexOf('resultOffset');
        if (indexOfResultOffset != -1) {
            var resultOffsetRegexStr = '\&resultOffset=[0-9]+';
            var resultOffsetRegex = new RegExp(resultOffsetRegexStr, 'gi') ;
            imageSearchURLWithGroupByNodeName = imageSearchURLWithGroupByNodeName.replace(resultOffsetRegex, '');
        }
        
        var indexOfGroupByNodeName = url.indexOf('groupByNode'); 
        if (indexOfGroupByNodeName != -1) {
            var groupByNodeNameRegexStr = 'groupByNode=[[a-z]*[A-Z]*]*';
            if (url.lastIndexOf('&') > indexOfGroupByNodeName) {
                groupByNodeNameRegexStr = groupByNodeNameRegexStr + '\&';
                groupByNodeNameValue = groupByNodeNameValue + '&';
            }
            
            var groupByNodeNameRegex = new RegExp(groupByNodeNameRegexStr, 'gi') ;
            imageSearchURLWithGroupByNodeName = imageSearchURLWithGroupByNodeName.replace(groupByNodeNameRegex, 'groupByNode=' + groupByNodeNameValue);
        } else {
            imageSearchURLWithGroupByNodeName = imageSearchURLWithGroupByNodeName + '&groupByNode=' + groupByNodeNameValue;         
        }
        return imageSearchURLWithGroupByNodeName;
    }

    function reloadImageTitleSearchWithGroupByNodeNameInURL() {
        window.location = createImageSearchURLWithGroupByNodeName(window.location.href);
        window.location.load();
    }
    
    function showHideVisitorMessage(ImgId){
            removeMessage('msg_box');
            var tmpstr, newtop, newleft;
            
            var position = findPos(document.getElementById(ImgId)); // get absolute position of the image

            newtop = position.curtop  + (document.getElementById(ImgId).height / 1.5) - 33; // 33 is about half the height of the popup message box
            document.getElementById("msg_box").style.top = newtop + "px";
            
            newleft =  position.curleft+ (document.getElementById(ImgId).width / 2) - 70; // 70 is half the width of the popup message box
            document.getElementById("msg_box").style.left = newleft + "px";
            
            document.getElementById('msg_box').style.display = 'block';
            imageTimerID = setTimeout("removeMessage('msg_box')", 3000);      
    }
    
    function removeMessage(msgid) {
        if (document.getElementById('msg_box').style.display == "block") {
            document.getElementById('msg_box').style.display = 'none';
            clearTimeout (imageTimerID);
        }
    }

    function unicaEventHandlerForImageResize(handlerName) {
        ntptEventTag('ev=' + handlerName);
    }
    