    /** meeting listing javascript **/

    function gotoURL(targetURL) {
        window.location = targetURL;
    }

    function toggleDimension(dimensionName, prefix) {

        // toggle the existing image that is there...
        toggleDimensionArrow(dimensionName);

        // hides or shows the content
        //Effect.toggle(dimensionName, 'slide', { duration: .5 });
        toggleSlide(dimensionName, prefix);

    }


    function toggleDimensionArrow(dimensionName) {
        var arrowName = dimensionName + 'Arrow';
        var newArrowState = 'plus.gif';
        if (MM_findObj(arrowName).src.indexOf('plus.gif') != -1) {
            newArrowState = 'minus.gif';
        }

        MM_findObj(arrowName).src = '/community/images/' + newArrowState;
    }

    function toggleSlide(dimensionName, prefix) {
        // let's find out what direction we need to move our div
        var dimState = '';
        if (MM_findObj(dimensionName + 'Arrow').src.indexOf('plus.gif') != -1) {
            // we need to collapse our div
            Effect.SlideUp(dimensionName+'Content', { duration: .5});
            dimState = 'collapsed';
        } else {
            Effect.SlideDown(dimensionName+'Content', { duration: .5});
            dimState = 'expanded';
        }
        sendDimensionState(dimensionName, dimState, prefix);
    }

    function sendDimensionState(dimensionName, dimensionState, prefix) {
  	var baseURL = prefix+'/searchDimensionState';

	var params = 'dname=' + dimensionName;
        params = params + '&dstate=' + dimensionState;

        var myAjax = new Ajax.Request(
                          baseURL,
                          {
                            method: 'post',
                            parameters: params
                          });
    }



    function disableSortButtons() {
        MM_findObj('dateSortButton').disabled = true;
        MM_findObj('titleSortButton').disabled = true;
        MM_findObj('locationSortButton').disabled = true;
    }

    // used by our disole mem info
    var currentTimeKey = 0;

    function disolveMemInfo(thisTimeKey) {
        if (thisTimeKey == currentTimeKey) {
            Effect.Puff(MM_findObj('memberInfoSearchDiv'));
            setTimeout('closeMemInfo()',4000);
        }
    }


    function getTimeKey() {
        var currentTime = new Date();
        var hours = currentTime.getHours();
        var minutes = currentTime.getMinutes();

        return hours + ":" + minutes + ":" + currentTime.getSeconds();
    }


    var previousEventTarget;


    function getScrollXY() {

      var scrOfX = 0, scrOfY = 0;
      if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
      } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
      } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
      }
      return [ scrOfX, scrOfY ];
}

var subdimParam;

function doMeetingSearch() {

    // figure out what search interface to use....
    // general is default and searches everything...
    var searchPrompt = 'Please enter search term(s)';
    var searchInterface = 'General';

    var searchTermField = MM_findObj('meetingSearchTerm');

    if (searchTermField && searchTermField.value.length > 0 &&
        searchTermField.value != searchPrompt) {
        var targetUrl = '/meeting/ml3/meetingListing.jsp?Ntt=';
        targetUrl = targetUrl + escape(splitWithPluses(searchTermField.value)) + '&Ntk=' + searchInterface + '&Ntx=' + escape('mode+matchallpartial');
        targetUrl += "&subdim="+subdimParam;
        window.location=targetUrl;
        return false;
    } else {
        searchTermField.value = searchPrompt;
        searchTermField.focus();
        searchTermField.select();
        return false;
    }
}

function doChangeResultMax(ps) {
    var targetUrl = '/meeting/ml3/meetingListing.jsp?Ntt=';
    var searchInterface = 'General';
    var searchTermField = MM_findObj('meetingSearchTerm');
    if (searchTermField != null) {
        targetUrl = targetUrl + escape(splitWithPluses(searchTermField.value));
    }
    targetUrl = targetUrl + '&Ntk=' + searchInterface + '&Ntx=' + escape('mode+matchallpartial')+'&N='+searchDimension_N;
    targetUrl = targetUrl+"&ps="+ps;
    window.location=targetUrl;
}

function submitMeetingSearch(ev) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (ev) keycode = ev.which;
    else return true;

    if (keycode == 13) {
        doMeetingSearch();
        return false;
    }
    else {
        return true;
    }
}

function meetingListingSetMemberAnswer(courseId, semtype, answer, code) {
    var control = MM_findObj("ml3_"+courseId);
    if (control != null) {
        control.value = answer;
    }
    doAddCart(courseId, semtype, code);
    return false;
}
 
