function popFinder(name) {
   w = window.open("","CERES_GeoFinder","width=600,height=450,status=yes,resizable=yes,scrollbars=yes,modal=yes");
   w.location = "placefinder.html";
   return;
}

function zoomClip(c) {
   TB_show('','api/spotshape?zoom=1&clip=' + c + '&ptBuffer=1000&size=200&width=200&height=200');
}

function chkTypes(x) {
   var Ary;
//   Obj = {"a":"gisbox","b":"wmsbox","c":"projectbox","d":"databasebox","e":"documentbox","f":"orgbox","g":"otherbox"};
   Ary = ['gisbox','wmsbox','projectbox','databasebox','documentbox','orgbox','otherbox'];
   for (var i = 0; i < Ary.length; i++) {
      MWJ_findObj(Ary[i]).checked = x
   }
}

function chkCats(x) {
   var Ary;
//   Obj = {"a":"biotaBox","b":"agBox","c":"envBox","d":"oceanBox","e":"inlandBox","f":"physBox","g":"socBox","h":"builtBox"};
   Ary = ['biotaBox','agBox','envBox','oceanBox','inlandBox','physBox','socBox','builtBox'];
   for (var i = 0; i < Ary.length; i++) {
      MWJ_findObj(Ary[i]).checked = x
   }
}

function relateClip(c) {
	TB_show('','api/related.php?name=' + c + '&width=200&height=200');
}

function setClipFilter(c,l,lat,lon) {

	clip = c;
        reCenter(lon,lat,9);

	myRE = new RegExp("counties|sen_law|cng_law", "i");
 	MWJ_findObj('placeNameMatchDiv').innerHTML = '';
	changeObjectVisibility('placeNameMatchDiv','hidden');
        MWJ_findObj("placename").value = l;
//        MWJ_findObj("geoImage").src = "/ceic/images/loading.gif";

//	if (clip.match(myRE)){
//        	MWJ_findObj("geoImage").src = "/ceic/api/spotshape?clip=" + clip + "&size=120";
//	}
//	else {
//       	MWJ_findObj("geoImage").src = "api/spotpoint?clip=" + clip + "&size=120";	
//	}
//	divHighlight(MWJ_findObj('geofilter'),1);

	ceicQuery();
}
function setOrgFilter(l) {

	orgname = l;
 	MWJ_findObj('orgNameMatchDiv').innerHTML = '';
	changeObjectVisibility('orgNameMatchDiv','hidden');
        MWJ_findObj("orgname").value = l;
	ceicQuery();
}

function clearClipFilter() {
	clip = '';
	MWJ_findObj("placeForm").term.value = '';
        MWJ_findObj("currentClip").innerHTML = '';
        MWJ_findObj("geoImage").src = "/ceic/images/cal120.jpg";
	document.getElementById('placeNameMatchDiv').innerHTML = '';
	changeObjectVisibility('placePickerDiv','hidden');
	changeObjectVisibility('placeNameMatchDiv','hidden');
	divHighlight(MWJ_findObj('geofilter'));
	ceicQuery();
}


function MM_findObj(n, d) { //v3.0
  var p,i,x;  

  if(!d) d=document; 
  if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; 
    n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; 
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); 
  return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; 
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
//      alert(a[i+2]);
    if ((x=MWJ_findObj(a[i]))!=null){
//	alert('found');
        document.MM_sr[j++]=x; 
        if(!x.oSrc) x.oSrc=x.src; x.src='http://casil.ucdavis.edu/geofinder/images/' + a[i+2];
  }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src='http://casil.ucdavis.edu/geofinder/images/' + a[i];}}
}

function divHighlight(div,checked) {

   if (checked) {
        div.style.border = "solid medium #CC6633";
        div.style.backgroundColor = "#FFFFFF";
        }
   else {
        div.style.border = "solid medium #CCCCCC";
        div.style.backgroundColor = "#FFFFFF";
        }
}


// function getStyleObject(string) -> returns style object
//  given a string containing the id of an object
//  the function returns the stylesheet of that object
//  or false if it can not find a stylesheet.  Handles
//  cross-browser compatibility issues.
//
function getStyleObject(objectId) {
  // checkW3C DOM, then MSIE 4, then NN 4.
  //
  if(document.getElementById && document.getElementById(objectId)) {
return document.getElementById(objectId).style;
   }
   else if (document.all && document.all(objectId)) {  
return document.all(objectId).style;
   } 
   else if (document.layers && document.layers[objectId]) { 
return document.layers[objectId];
   } else {
return false;
   }
}

function changeObjectVisibility(objectId, newVisibility) {
    // first get a reference to the cross-browser style object 
    // and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	    return false;
    }
}

function assessENV() {

    if (window.parent.opener || window.opener) { 
	changeObjectVisibility("ez","visible");
    }
}

         function toggleFilter()
         {
             clear_div();
             if (filter) {
                 filter = false;
                 document.getElementById('matchListDiv').style.top = 40    
                 changeObjectVisibility("filter_div","hidden");
                 }
             else {
                 filter = true;
                 document.getElementById('matchListDiv').style.top = 85    
                 changeObjectVisibility("filter_div","visible");
                 }
         }

        function matchReq(e,matchType,term,mode,target)
        {
	   var url;

            if (term.length > 0) {
                // if there is at least on char in the input

	    if (matchType == 'title') {
             	__AjaxProcessFunction = __dsMatchObjFill;
             	url = "api/nameFill.php?src=" + matchType + "&mode=" + mode + "&name=" + escape(term) + "&resourcetype=" + listTypes();
		}
	    else if (matchType == 'org') {
             	__AjaxProcessFunction = __orgMatchObjFill;
             	url = "api/nameFill.php?src=org&mode=" + mode + "&name=" + escape(term);
		}
	    else if (matchType =='theme') {
             	__AjaxProcessFunction = __nameMatchObjFill;
             	url = "api/nameFill.php?src=theme&fmt=json&name=" + escape(term);
		}
	    else if (matchType =='place') {
             	__AjaxProcessFunction = __placeMatchObjFill;
             	url = "api/nameFill.php?name=" + escape(term);
		}
	    else if (matchType =='clip') {
             	__AjaxProcessFunction = __clipMatchObjFill;
//             	url = "api/nameFill.php?src=clip&fmt=json&name=" + escape(term);
             	url = "/cgi-bin/test/nameFillJson?src=clip&fmt=json&name=" + escape(term);
		}
	    else if (matchType =='thes') {
             	__AjaxProcessFunction = __thesMatchObjFill;
             	url = "api/thesaurus.php?src=theme&fmt=JSON&name=" + mode;
		}
	    else {
             	__AjaxProcessFunction = __nameMatchObjFill;

             	url = "api/objNameFill?mode=" + mode + "&name=" + escape(term);

		}

             clear_div();
             changeObjectVisibility(target,"visible");
             document.getElementById(target).innerHTML = '<p><img src="/ceic/images/loading.gif">';
              __AjaxGet(url);
            }
            else {
                // otherwise clear the search results
                document.getElementById(target).innerHTML = '<p><img src="/ceic/images/loading.gif">';
            }
        }

        function image_opt()
        {

            if (clip.indexOf("calwater") > -1) {
                __AjaxProcessFunction = __calwater_fill;
                document.getElementById('calwater_div').innerHTML = '<span class="blueLink">loading image...<\/span>';
                clear_div();
                changeObjectVisibility("map_div","hidden");
                changeObjectVisibility("calwater_div","visible");
                Url = "api/view_ws?clip=" + clip; 
            }
            else {
                __AjaxProcessFunction = __location_opt_fill;
                document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">loading image...<\/span>';
                clear_div();
                changeObjectVisibility("map_div","visible");
                changeObjectVisibility("location_opt_div","visible");
                Url = "api/view_location?clip=" + clip;
            }
            __AjaxGet(Url);
        }

        function base_view(md)
        {

            if (md) {mode = md}
            if (ext) {
                document.getElementById('location_opt_div').innerHTML = "<img src='api/spotshape?ext=" + ext + "&zoom=1&size=260&ptBuffer=" + ptBuffer + "&mode=" + mode + "'>";
            }
            else {
                document.getElementById('location_opt_div').innerHTML = "<img src='api/spotshape?clip=" + clip + "&zoom=1&size=260&ptBuffer=" + ptBuffer + "&mode=" + mode + "'>";
            }

         }

        function overlay(layer)
        {

        bbox = gmap.getBounds();

	minx = bbox.getSouthWest().lat();
	miny = bbox.getSouthWest().lng();
	maxx = bbox.getNorthEast().lat();
	maxy = bbox.getNorthEast().lng();

	ext = miny + "," + maxy + "," + minx + "," + maxx;

//alert(ext);
        if (bbox) {
	        changeObjectVisibility("gfDiv","visible");
                document.getElementById('gfDiv').innerHTML = "<img src='api/spotshape?ext=" + ext + "&zoom=1&size=350&ptBuffer=" + ptBuffer + "&mode=" + mode + "'>";
            }
         }

        function display_location()
        {
            __AjaxProcessFunction = __map_div_fill;
            document.getElementById('map_div').innerHTML = '<span class="blueLink">spoting...<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
            changeObjectVisibility("loc_div","visible");
            Url = "api/display_location?clip=" + clip;
            __AjaxGet(Url);
        }

        function map_opt()
        {
            __AjaxProcessFunction = __location_opt_fill;
//            document.getElementById('hint').innerHTML = 'Click on an intersecting place to go to that region.';
            document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">loading...<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
            changeObjectVisibility("image_tools_div","visible");
            Url = "api/view_location?clip=" + clip;
            __AjaxGet(Url);
        }

	function listTypes()
	{
	    var rt = '';	

	     if (MWJ_findObj('orgbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('orgbox').value;
		}
	     if (MWJ_findObj('projectbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('projectbox').value;
		}
	     if (MWJ_findObj('databasebox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('databasebox').value;
		}
	     if (MWJ_findObj('gisbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('gisbox').value;
		}
	     if (MWJ_findObj('wmsbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('wmsbox').value;
		}
	     if (MWJ_findObj('documentbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('documentbox').value;
		}
	     if (MWJ_findObj('otherbox').checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj('otherbox').value;
		}

	   return rt;
	}

	function listTopics()
	{
	   var rt = '';	
           var Ary;
   	   Ary = ['biotaBox','agBox','envBox','oceanBox','inlandBox','physBox','socBox','builtBox'];
           for (var i = 0; i < Ary.length; i++) {
	     if (MWJ_findObj(Ary[i]).checked == true) {
		if (rt.length > 1) { rt = rt + ',' }
             	rt = rt + MWJ_findObj(Ary[i]).value;
		}
	   }
	   return rt;
	}


        function ceicQueryGF(clip,type)
        {
          MWJ_findObj('gfQueryDiv').innerHTML = '';
	  var Url = '';
          changeObjectVisibility("gfQueryFrame","visible");
          MWJ_findObj('gfQueryDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';
	  if (type == 'related') {
             __AjaxProcessFunction = __relatedObjFillGF;
	     Url = "/cgi-bin/test/related?";
	     Url = Url + "clip=" + clip;
	  }
	  else {	  	
             __AjaxProcessFunction = __dsMatchObjFillGF;
	     Url = "/ceic/api/ceicQuerySpatial.php?";
	     Url = Url + "clip=" + clip + "&cat=" + type;
	  }
//alert(Url);
            __AjaxGet(Url);
        }

        function OBJ_show(src,id,targetDiv)
        {
          MWJ_findObj(targetDiv).innerHTML = '';
	  var Url = '';
          __AjaxProcessFunction = __objInfoFill;
          changeObjectVisibility("objInfoFrame","visible");
          MWJ_findObj(targetDiv).innerHTML = '<p><img src="/ceic/images/loading.gif">';
	  Url = "/ceic/api/objInfo.php?src=" + src + "&id=" + id;
//alert(Url);
            __AjaxGet(Url);
        }

        function info_show()
        {
//          MWJ_findObj('infoDiv').innerHTML = info;
          changeObjectVisibility("infoFrame","visible");
        }

        function link_show()
        {
//          MWJ_findObj('linkDiv').innerHTML = info;
          changeObjectVisibility("linkFrame","visible");
        }

        function CNDDB_show(id,name)
        {
          MWJ_findObj('gfQueryDiv').innerHTML = '';
	  var Url = '';
          __AjaxProcessFunction = __cnddbQueryFill;
          changeObjectVisibility("gfQueryFrame","visible");
          MWJ_findObj('gfQueryDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';
	  Url = "/ceic/api/cnddbQuery.php?quadcode=" + id + "&quadname=" + name;
//alert(Url);
            __AjaxGet(Url);
        }

        function DOQQ_show(id,name)
        {
          MWJ_findObj('gfQueryDiv').innerHTML = '';
	  var Url = '';
          __AjaxProcessFunction = __cnddbQueryFill;
          changeObjectVisibility("gfQueryFrame","visible");
          MWJ_findObj('gfQueryDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';
	  Url = "/ceic/api/doqq.php?cell=" + id + "&name=" + name;
//alert(Url);
            __AjaxGet(Url);
        }
        function DRG_show(id,name)
        {
          MWJ_findObj('gfQueryDiv').innerHTML = '';
	  var Url = '';
          __AjaxProcessFunction = __cnddbQueryFill;
          changeObjectVisibility("gfQueryFrame","visible");
          MWJ_findObj('gfQueryDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';
	  Url = "/ceic/api/drg.php?cell=" + id + "&name=" + name;
//alert(Url);
            __AjaxGet(Url);
        }

function ceicQuery(type,name)
{

   var term = MWJ_findObj('term').value; 
   var org = MWJ_findObj('orgname').value;
   var topics = listTopics();
   var topicArray = topics.split(",");
   var types = listTypes();
   var typeArray = types.split(",");

   var Url = "api/ceicQuerySpatial.php?";
   var qStr = ''; 

   if (!(extFull)) {qStr = qStr + 'ext=' + ext + '&'}
//alert(ext);
   if ((topicArray.length > 0) && (topicArray.length < 9)) {qStr = qStr + 'topic=' + escape(topics) + '&'}
   if ((typeArray.length > 0) && (typeArray.length < 8)) {qStr = qStr + 'cat=' + escape(types) + '&'}
   if (term.length > 0) {qStr = qStr + 'term=' + escape(term) + '&'}
   if (org.length > 0) {qStr = qStr + 'org=' + escape(org) + '&'}

   clear_div();
   document.getElementById('matchListDiv').innerHTML = '';

   if ((topics.length > 0) && (types.length > 0)) { 
	__AjaxProcessFunction = __dsMatchObjFill;
	changeObjectVisibility("matchListDiv","visible");
	document.getElementById('matchListDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';

       __AjaxGet(Url + qStr)
   }

   //reload the gmap rss overla
   gmap.clearOverlays();

//   if (gmap.ptOverlay) {
   if (0) {
   	loadGeoXml("http://casil.ucdavis.edu/cgi-bin/api/ceicQuerySpatial?fmt=rss&" + qStr)
	}
}

        function orgQuery(name)
        {
             __AjaxProcessFunction = __org2dsObjFill;
             clear_div();
             changeObjectVisibility("matchListDiv","visible");
             document.getElementById('matchListDiv').innerHTML = '<p><img src="/ceic/images/loading.gif">';
             var Url = "api/ceicQueryOrg?name=" + name;
//alert(Url);
            __AjaxGet(Url);
        }

        function ceic_opt()
        {
            __AjaxProcessFunction = __location_opt_fill;
//            document.getElementById('hint').innerHTML = 'Click on an CEIC Entry for download or metadata.';
            document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">finding catalog entries for ' + lbl + '<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
            Url = "api/ceic_query?clip=" + clip;
            __AjaxGet(Url);
        }

        function nrpi_opt()
        {
            __AjaxProcessFunction = __location_opt_fill;
//            document.getElementById('hint').innerHTML = 'Click on a project title to see the NRPI entry.';
            document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">finding NRPI entries for ' + lbl + '<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
            Url = "api/nrpi_query?clip=" + clip;
            __AjaxGet(Url);
        }

        function related()
        {
            relatedObj = {};
            MWJ_findObj("placename").innerHTML = '';
            MWJ_findObj("bbox").innerHTML = '';
            MWJ_findObj('relatedList').innerHTML = '';
      
            __AjaxProcessFunction = __relatedObjFill;
            if (ext) {
                Url = "api/related?ext=" + ext;
            }
            else {
                Url = "api/related?name=" + clip;
            }
            __AjaxGet(Url);
        }

        function shp2quads_opt(linkto)
        {
            __AjaxProcessFunction = __location_opt_fill;
//            document.getElementById('hint').innerHTML = 'Click on an intersecting place to go to that region.';
            document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">intersecting quads for ' + lbl + '<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
            Url = "api/quad_query?clip=" + clip + "&linkto=" + linkto;
            __AjaxGet(Url);
        }

        function shp_intersect_opt(toShp)
         {
             document.getElementById('intersect_div').innerHTML = "<img src='api/showOutline?layer=" + toShp + "&minx=" + minx + "&miny=" + miny + "&maxx=" + maxx + "&maxy=" +  maxy + "' usemap='#shpMap'>";
            changeObjectVisibility("intersect_div","visible");
             cross_map_generate(toShp);
         }

        function shp_intersect_optx(toShp)
        {
            __AjaxProcessFunction = __location_opt_fill;
//            document.getElementById('hint').innerHTML = 'Click on an intersecting place to go to that region.';
            document.getElementById('location_opt_div').innerHTML = '<span class="blueLink">intersecting ' + toShp + ' for ' + lbl + '<\/span>';
            clear_div();
            changeObjectVisibility("map_div","visible");
            changeObjectVisibility("location_opt_div","visible");
//          Url = "api/shp_intersect_query?clip=" + clip + "&toShp=" + toShp + "&size=350";
            Url = "api/showOutline?layer=" + toShp + "&minx=" + minx + "&miny=" + miny + "&maxx=" + maxx + "&maxy=" + maxy;
            __AjaxGet(Url);
        }
        function cross_map_generate(toShp)
        {
            __AjaxProcessFunction = __cross_map_fill;
            document.getElementById('hint').innerHTML = 'Click on an intersecting place to go to that region.';
            Url = "api/cross_map?clip=" + clip + "&toShp=" + toShp + "&ptBuffer=800&size=260";
            __AjaxGet(Url);
        }

        function overview_opt()
        {
            clear_div();
            changeObjectVisibility("map_div","visible");
            document.getElementById('hint').innerHTML = 'Begin typing a place name and pause for name completion. Click on Match Sub Strings to match substrings within names.';
            changeObjectVisibility("overview_div","visible");
        }

        function contacts_opt()
        {
            clear_div();
            changeObjectVisibility("map_div","visible");
//            document.getElementById('hint').innerHTML = 'Begin typing a place name and pause for name completion. Click on Match Sub Strings to match substrings within names.';
            changeObjectVisibility("contacts_div","visible");
        }
        function clear_div() 
         {
             changeObjectVisibility("overview_div","hidden");
             changeObjectVisibility("contacts_div","hidden");
             changeObjectVisibility("location_opt_div","hidden");
             changeObjectVisibility("map_div","hidden");
             changeObjectVisibility("calwater_div","hidden");
             changeObjectVisibility("intersect_div","hidden");
             changeObjectVisibility("image_tools_div","hidden");
             changeObjectVisibility("loc_div","hidden");
             changeObjectVisibility("related_div","hidden");
             changeObjectVisibility("relatedList","hidden");
             changeObjectVisibility("nav_frame","hidden");
             changeObjectVisibility("mapDiv","hidden");
         }
        function show_place() 
         {
             changeObjectVisibility("matchListDiv","hidden");
             changeObjectVisibility("location_opt_div","visible");
             changeObjectVisibility("map_div","visible");
             changeObjectVisibility("image_tools_div","visible");
             changeObjectVisibility("loc_div","visible");
             changeObjectVisibility("related_div","visible");
             changeObjectVisibility("relatedList","visible");
             changeObjectVisibility("nav_frame","visible");
         }

         function listRelatedGF()
         {
             var fill;
             var list;
             var str;
	     var Ary;
             fill = '';
             document.getElementById('gfQueryDiv').innerHTML = '';

             Ary = ['counties','city2k','calwater22','zip_codes'];
             for (var i = 0; i < Ary.length; i++) {
                list = eval('relatedObj.ResultSet.' + Ary[i]);
		if (list) {
                var len = list.length;
                for (var n = 0; n < len; n++) {
                    fill = fill + '<a href="#" onClick="window.location = \'geofinder?clip='+ list[n].id + '\'">' + list[n].label + '<\/a><br>';
		}   
		}
             }
             document.getElementById('gfQueryDiv').innerHTML = fill;
         }

         function listRelated(aryName)
         {
             var fill;
             var list;
             var str;

             // display place info
	
	     maxx = relatedObj.ResultSet.eastbc;
	     minx = relatedObj.ResultSet.westbc;
	     maxy = relatedObj.ResultSet.northbc;
	     miny = relatedObj.ResultSet.southbc;

             MWJ_findObj("placename").innerHTML = relatedObj.ResultSet.Label;
             MWJ_findObj("bbox").innerHTML = maxx + ",  " + minx + ",  " + maxy + ",  " + miny;

             document.getElementById('relatedList').innerHTML = '';
             fill = '';
             list = eval('relatedObj.ResultSet.' + aryName);
             var len = list.length;
             for (var n = 0; n < len; n++) {
                 fill = fill + '<a href="#" onClick="navigate(\'' + list[n].id + '\')" class="blueLink">' + list[n].label + '<\/a><br>';
             }
             document.getElementById('relatedList').innerHTML = fill;
         }

         function listThesMatchObj()
         {
             var Html;
             var broader;
             var narrower;
             var similar;
             var related;
             var alt;
             var top;
             var str;
	     var type;


//             TB_show(\'' + list[n].label + '\',\'/cgi-bin/gb/spotshape?clip=' + list[n].id +'&amp;zoom=1&amp;width=340&amp;height=400\')
             document.getElementById('matchListDiv').innerHTML = '';
             term = eval('thesMatchObj.ResultSet.Term');
             broader = eval('thesMatchObj.ResultSet.Broader');
             narrower = eval('thesMatchObj.ResultSet.Narrower');
             related = eval('thesMatchObj.ResultSet.Related');
             similar = eval('thesMatchObj.ResultSet.Similar');


	     Html = '<br><b>Thesuarus Term:&nbsp;' + term + '</b> <br><br>';
	     if (broader) {
	     Html = Html + '<br><b>Broader</b><br>';
             var len = broader.length;
             for (var n = 0; n < len; n++) {
          	Html = Html + '<a href="#" onClick="matchReq(event,\'thes\',\'' + broader[n].label + '\');">' + broader[n].label + '</a><br>';
		}
	     }
//alert(Html);
	     if (narrower) {
	     Html = Html + '<br><b>Narrower</b><br>';
             len = narrower.length;
             for (var n = 0; n < len; n++) {
          	Html = Html + '<a href="#" onClick="matchReq(event,\'thes\',\'' + narrower[n].label + '\');">' + narrower[n].label + '</a><br>';
		}
	     }

	     if (related) {
	     Html = Html + '<br><b>Related</b><br>';
             len = related.length;
             for (var n = 0; n < len; n++) {
          	Html = Html + '<a href="#" onClick="matchReq(event,\'thes\',\'' + related[n].label + '\');">' + related[n].label + '</a><br>';
		}
	     }

	     if (similar) {
	     Html = Html + '<br><b>Similar</b><br>';
             len = similar.length;
             for (var n = 0; n < len; n++) {
          	Html = Html + '<a href="#" onClick="matchReq(event,\'thes\',\'' + similar[n].label + '\');">' + similar[n].label + '</a><br>';
		}
	     }

	    if (Html == '') {
	       MWJ_findObj("matchListDiv").innerHTML = 'No matching names';
		}
	    else {
	       MWJ_findObj("matchListDiv").innerHTML = Html;
		}

         }

         function listNameMatch()
         {
             var Html;
             var list;
             var str;
	     var type;

	     Html = '<br>Matching Names<br><br>';
             document.getElementById('matchListDiv').innerHTML = '';
             fill = '';
             list = eval('nameMatchObj.ResultSet.Result');
	     type = eval('nameMatchObj.ResultSet.Type');
             var len = list.length;
             for (var n = 0; n < len; n++) {
		if (type == 'org') {
 	  	 Html = Html + '<b><a href="#" onClick="orgQuery(\'' + list[n].id + '\')">' + list[n].label + '</a><br>';
		}
		else if (type == 'theme') {
 	  	 Html = Html + '<b><a href="#" onClick="matchReq(event,\'thes\',\'' + list[n].label + '\');">' + list[n].label + '</a><br>';
		}
		else if ((type == 'place') || (type == 'oesplaces')) {
 	  	 Html = Html + '<b><a href="#" onClick="reCenter(' + list[n].lat + ',' + list[n].lon + ');">' + list[n].label + '</a><br>';
		}
		else {
 	  	 Html = Html + '<b><a href="#" onClick="ceicQuery(\'' + type + '\',\'' + list[n].id + '\')">' + list[n].label + '</a><br>';
		}
             }
	    if (Html == '') {
	       MWJ_findObj("matchListDiv").innerHTML = 'No matching names';
		}
	    else {
	       MWJ_findObj("matchListDiv").innerHTML = Html;
		}

         }

         function listOrg2Ds()
         {
             var Html;
             var list;
             var str;
	     var icon;

	     Html = '<br>Catalog Entries Associated with <b>' + org2dsObj.ResultSet.Organization + '</b><br><br>';
             document.getElementById('matchListDiv').innerHTML = '';
             fill = '';
             list = eval('org2dsObj.ResultSet.Result');
             var len = list.length;
             for (var n = 0; n < len; n++) {
		 if (list[n].cat == 'project') {
			icon = "/ceic/images/file-make.png";
		 }
		 else if (list[n].cat == 'document') {
                        icon = "/ceic/images/file-document.png";
                 }
  		 else if (list[n].cat == 'gis') {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
 		 else if (list[n].cat.indexOf('vector') > -1) {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
		 else if (list[n].cat == 'web') {
                        icon = "/ceic/images/file-html.png";
                 }
		 else if (list[n].cat == 'database') {
                        icon = "/ceic/images/file-cdtrack.png";
                 }
		 else  {
                        icon = "/ceic/images/file-unknown.png";
                 }

 	  	 Html = Html + '<b><img src="' + icon + '">&nbsp;<a href="#" onClick="TB_show(\'' + list[n].title + '\',\'api/objInfo.php?id=' + list[n].id  + '&amp;width=480&amp;height=440\')">' + list[n].title + '</a>&nbsp;(' + list[n].role + ')</b><br>' ;
             }
	    // alert(Html);
	    if (Html == '') {
	       MWJ_findObj("matchListDiv").innerHTML = 'No matching datasets';
		}
	    else {
	       MWJ_findObj("matchListDiv").innerHTML = Html;
		}

         }

         function listDsMatchObj(targetDiv)
         {
             var Html;
	     var line;
             var list;
             var str;
	     var icon;

	     try { 
		str = dsMatchObj.ResultSet.Result 
	     }
	     catch (err){ 
	       MWJ_findObj(targetDiv).innerHTML = '';
	       return 
	     }
             MWJ_findObj(targetDiv).innerHTML = '';
             fill = '';
	     Html = '';
             list = eval('dsMatchObj.ResultSet.Result');
	     where = eval('dsMatchObj.ResultSet.Where');
             if (targetDiv == 'gfQueryDiv') {
          	MWJ_findObj('gfQueryTitle').innerHTML = '(' + where + ')';			
	     }
	     else {
		Html = '<br>' + where + '<br><br>';
	     }
             var len = list.length;
             for (var n = 0; n < len; n++) {
		 if (list[n].cat == 'project') {
			icon = "/ceic/images/file-make.png";
		 }
		 else if (list[n].cat == 'document') {
                        icon = "/ceic/images/docs.gif";
                 }
		 else if (list[n].cat == 'gis') {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
 		 else if (list[n].cat.indexOf('vector') > -1) {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
 		 else if (list[n].cat.indexOf('raster') > -1) {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
 		 else if (list[n].cat.indexOf('spatial') > -1) {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
		 else if (list[n].cat == 'web') {
                        icon = "/ceic/images/file-html.png";
                 }
		 else if (list[n].cat == 'database') {
                        icon = "/ceic/images/file-cdtrack.png";
                 }
		 else if (list[n].cat == 'org') {
                        icon = "/ceic/images/group.gif";
                 }
		 else if (list[n].cat == 'place') {
                        icon = "/ceic/images/world.png";
                 }
		 else  {
                        icon = "/ceic/images/file-unknown.png";
                 }

		if (targetDiv == 'gfQueryDiv') {
 	  	 line = '<img src="' + icon + '">&nbsp;<a href="#" onClick="OBJ_show(\'' + list[n].cat + '\',\'' + list[n].id + '\',\'objInfoDiv\')">' + list[n].label + '</a><br>';
		}
		else {
// 	  	 line = '<img src="' + icon + '">&nbsp;<a href="#" onClick="TB_show(\'' + list[n].label + '\',\'api/objInfo.php?id=' + list[n].id  + '&amp;width=480&amp;height=440\')">' + list[n].label + '</a><br>';
 	  	 line = '<img src="' + icon + '">&nbsp;<a href="#" onClick="TB_show(\'' + list[n].label + '\',\'api/objInfo.php?id=' + list[n].id  + '&amp;width=480&amp;height=440\')">' + list[n].label + '</a><br>';

		Html = Html + line;
		if (0) {
			var point = new GLatLng(list[n].lat,list[n].lon);
  			gmap.addOverlay(createMarker(point, line));
		}
		}
             }
// alert(Html.substr(0,300));
	    if (Html == '') {
	       MWJ_findObj(targetDiv).innerHTML = 'No matching datasets';
		}
	    else {
	       MWJ_findObj(targetDiv).innerHTML = Html;
		}

         }
         function listPlaceNameMatch(targetDiv)
         {
             var Html;
             var list;

             document.getElementById('placeNameMatchDiv').innerHTML = '';
             list = eval('placeMatchObj.ResultSet.Result');
             var len = list.length;
	     Html = '';	
             for (var n = 0; n < len; n++) {
		if (targetDiv == 'gfQueryDiv') {
	  	 Html = Html + '<b><a href="#" onClick="window.location=\'geofinder?clip=' + list[n].id + ';">' + list[n].label + '</a><br>';
		}
		else {
	  	 Html = Html + '<b><a href="#" onClick="setClipFilter(\'' + list[n].id + '\',\'' + list[n].label + '\',\'' + list[n].lat + '\',\'' + list[n].lon + '\');">' + list[n].label + '</a><br>';
		}
             }
	    if (Html == '') {
	       MWJ_findObj("placeNameMatchDiv").innerHTML = 'No matching place names';
		}
	    else {
	       MWJ_findObj("placeNameMatchDiv").innerHTML = Html;
		}

         }
         function listOrgNameMatch()
         {
             var Html;
             var list;

             document.getElementById('orgNameMatchDiv').innerHTML = '';
             list = eval('orgMatchObj.ResultSet.Result');
             var len = list.length;
	     Html = '';	
             for (var n = 0; n < len; n++) {
	  	 Html = Html + '<b><a href="#" onClick="setOrgFilter(\'' + list[n].id + '\');">' + list[n].label + '</a><br>';
             }
	    if (Html == '') {
	       MWJ_findObj("orgNameMatchDiv").innerHTML = 'No matching org names';
		}
	    else {
	       MWJ_findObj("orgNameMatchDiv").innerHTML = Html;
		}

         }
         function listClipNameMatch()
         {
             var Html;
             var list;

             document.getElementById('placeNameMatchDiv').innerHTML = '';
             list = eval('placeMatchObj.ResultSet.Result');
             var len = list.length;
	     Html = '';	
             for (var n = 0; n < len; n++) {
	  	 Html = Html + '<b><a href="geofinder?clip=' + list[n].id + '&lbl=' + list[n].label + '" class="blueLink">' + list[n].label + '</a><br>';
             }
	    if (Html == '') {
	       MWJ_findObj("placeNameMatchDiv").innerHTML = 'No matching place names';
		}
	    else {
	       MWJ_findObj("placeNameMatchDiv").innerHTML = Html;
		}

         }

         function listMatchObj()
         {
             var Html;
             var list;
             var str;
	     var icon;

             document.getElementById('matchListDiv').innerHTML = '';
             fill = '';
             list = eval('nameMatchObj.ResultSet.Result');
	     Html = '<br>Matching Catalog Objects:<br><br>';
             var len = list.length;
             for (var n = 0; n < len; n++) {
		 if (list[n].cat == 'project') {
			icon = "/ceic/images/file-make.png";
		 }
		 else if (list[n].cat == 'document') {
                        icon = "/ceic/images/docs.gif";
                 }
		 else if (list[n].cat == 'gis') {
                        icon = "/ceic/images/file-vectorgfx.png";
                 }
		 else if (list[n].cat == 'web') {
                        icon = "/ceic/images/file-html.png";
                 }
		 else if (list[n].cat == 'database') {
                        icon = "/ceic/images/file-cdtrack.png";
                 }
		 else if (list[n].cat == 'org') {
                        icon = "/ceic/images/group.gif";
                 }
		 else if (list[n].cat == 'place') {
                        icon = "/ceic/images/world.png";
                 }
		 else  {
                        icon = "/ceic/images/file-unknown.png";
                 }

 	  	 Html = Html + '<b><img src="' + icon + '">&nbsp;<a href="#" onClick="TB_show(\'' + list[n].name + '\',\'api/objInfo.php?src=' + list[n].cat + '&id=' + list[n].id  + '&amp;width=480&amp;height=340\')">' + list[n].name + '</a><br>';
             }
//	     alert(Html);
	    if (Html == '') {
	       MWJ_findObj("matchListDiv").innerHTML = 'No matching objects';
		}
	    else {
	       MWJ_findObj("matchListDiv").innerHTML = Html;
		}

         }

         // functions for pan and zoom implementation

         function trackMove(e) {
             if( enableDrag ) {
                 if( resetPos ) {
                     resetPos = 0;
                     baseX = e.pageX;
                     baseY = e.pageY;
                 } else {
                     if( e.pageX > baseX ) {
                         diff = e.pageX - baseX;
                         curLeft = document.getElementById('location_opt_div').style.left;
                         curLeft = parseFloat( curLeft.replace(/px/, "") );
                         document.getElementById('location_opt_div').style.left = curLeft + diff;
                         baseX = e.pageX;
                     }
                     if( e.pageX < baseX ) {
                         diff = baseX - e.pageX;
                         curLeft = document.getElementById('location_opt_div').style.left;
                         curLeft = parseFloat( curLeft.replace(/px/, "") );
                         document.getElementById('location_opt_div').style.left = curLeft - diff;
                         baseX = e.pageX;
                     }
                     if( e.pageY > baseY ) {
                         diff = e.pageY - baseY;
                         curTop = document.getElementById('location_opt_div').style.top;
                         curTop = parseFloat( curTop.replace(/px/, "") );
                         document.getElementById('location_opt_div').style.top = curTop + diff;
                         baseY = e.pageY;
                     }
                     if( e.pageY < baseY ) {
                         diff = baseY - e.pageY;
                         curTop = document.getElementById('location_opt_div').style.top;
                         curTop = parseFloat( curTop.replace(/px/, "") );
                         document.getElementById('location_opt_div').style.top = curTop - diff;
                         baseY = e.pageY;
                     }
                 }
             }
         }

         function mDown(e) {
             startX = e.pageX;
             startY = e.pageY;
             resetPos = 1;
             enableDrag = 1;
         }

         function mUp(e) {
             document.onmousemove = null;
             enableDrag = 0;
             endX = e.pageX;
             endY = e.pageY;
             dxf = (endX - startX)/280;
             dyf = (endY - startY)/280;
             moveX = ((parseFloat(maxx) - parseFloat(minx)) * dxf);
             moveY = ((parseFloat(maxy) - parseFloat(miny)) * dyf);

             maxx = parseFloat(maxx) - moveX;
             minx = parseFloat(minx) - moveX;
             maxy = parseFloat(maxy) + moveY;
             miny = parseFloat(miny) + moveY;
             maxx = Math.round(maxx * 100000)/100000;
             minx = Math.round(minx * 100000)/100000;
             maxy = Math.round(maxy * 100000)/100000;
             miny = Math.round(miny * 100000)/100000;
             ext = maxx + "," + minx + "," + maxy + "," + miny;
             base_view();
             document.getElementById('location_opt_div').style.top = 0;
             document.getElementById('location_opt_div').style.left = 0;
             related();
         }

         function pan(way) {

             var moveX = 0;
             var moveY = 0;

             if (way == 'w') {
                 moveX = ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = 0;
             }
             else if (way == 'e') {
                 moveX = (-1) * ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = 0;
             }
             else if (way == 'n') {
                 moveY = ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
                 moveX = 0;
             }
             else if (way == 's') {
                 moveY = (-1) * ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
                 moveX = 0;
             }
             else if (way == 'nw') {
                 moveX = ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
             }
             else if (way == 'sw') {
                 moveX = ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = (-1) * ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
             }
             else if (way == 'ne') {
                 moveX = (-1) * ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
             }
             else if (way == 'se') {
                 moveX = (-1) * ((Math.abs(parseFloat(maxx)) - Math.abs(parseFloat(minx))) * .3);
                 moveY = (-1) * ((Math.abs(parseFloat(maxy)) - Math.abs(parseFloat(miny))) * .3);
             }

             maxx = parseFloat(maxx) + moveX;
             minx = parseFloat(minx) + moveX;
             maxy = parseFloat(maxy) + moveY;
             miny = parseFloat(miny) + moveY;
             maxx = Math.round(maxx * 100000)/100000;
             minx = Math.round(minx * 100000)/100000;
             maxy = Math.round(maxy * 100000)/100000;
             miny = Math.round(miny * 100000)/100000;
             ext = maxx + "," + minx + "," + maxy + "," + miny;
//             ext = minx + "," + maxx + "," + miny + "," + maxy;
             base_view();

             related();
         }

         function zoom(factor) {

             mX = parseFloat(maxx);
             nX = parseFloat(minx);
             mY = parseFloat(maxy);
             nY = parseFloat(miny);

             if (factor == 'out') {
                 // expand by a factor of 2
                 maxx = mX + (mX - nX)/2;
                 minx = nX - (mX - nX)/2;
                 maxy = mY + (mY - nY)/2;
                 miny = nY - (mY - nY)/2;
             }
             else if (factor == 'in'){
                if ((mX - nX) > 0.004) {
                   // zoom by a factor of 1/4
                   maxx = mX - (mX - nX)/4;
                   minx = nX + (mX - nX)/4;
                   maxy = mY - (mY - nY)/4;
                   miny = nY + (mY - nY)/4;
               }
             }
             else {
    		if (factor == 'max') {
	        	maxx = -124.40960;
                	maxy = 32.53401;
                	minx = -114.13147;
                	miny = 42.00983;
                	}
		else {
			for (i = 1; i <= 9; i++) {
				pos = 'zoombar' + i;				
	                	MWJ_findObj(pos).src = '/chameleon/htdocs/images/zoom_b_' + i +'.gif';		
			}
			// define steps of degree changes
			steps = [.005,.01,.05,.08,.1,.2,.5,.8,1,5,];
			i = parseInt(factor) - 1;
			// current centroid
			x = maxx - ((maxx - minx)/2)
			y = maxy - ((maxy - miny)/2)
		
	        	maxx = x - steps[i]/2;
                	minx = x + steps[i]/2;
                	maxy = y + steps[i]/2;
                	miny = y - steps[i]/2;
			pos = 'zoombar' + factor;
	                MWJ_findObj(pos).src = '/chameleon/htdocs/images/zoom_' + factor + '.gif';
			}
		}
             maxx = Math.round(maxx * 100000)/100000;
             minx = Math.round(minx * 100000)/100000;
             maxy = Math.round(maxy * 100000)/100000;
             miny = Math.round(miny * 100000)/100000;
             ext = maxx + "," + minx + "," + maxy + "," + miny;
             base_view();

             MWJ_findObj("placename").innerHTML = 'Bounding Box:';
             MWJ_findObj("bbox").innerHTML = maxx + ',&nbsp;&nbsp;' + minx + ',&nbsp;&nbsp;' + maxy + ',&nbsp;&nbsp;' + miny;

             related();
}

function navigate(_clip,_ext) {
    if (_clip) { 
        clip = _clip;
        ext = '';
    }
    if (_ext) { 
        ext = _ext;
        clip = '';
    }

    show_place();
    base_view();
//    MWJ_findObj("placename").innerHTML = 'Bounding Box:';
//    MWJ_findObj("bbox").innerHTML = maxx + ',&nbsp;&nbsp;' + minx + ',&nbsp;&nbsp;' + maxy + ',&nbsp;&nbsp;' + miny;
    related();
}

function change(_script,_mode,_idnum,name,size) {
    if (_mode != '') { mode = _mode }
    if (_script != '') { script = _script }
    if (_idnum != '') { idnum = _idnum }

    var url = 'http://casil.ucdavis.edu/cgi-bin/gb/' + script + '?' + 'idnum=' + idnum + '&amp;mode=' + mode + '&amp;name=' + name + '&amp;height=' + size + '&amp;width=' + size;
        if (document.images)
        document.images['mainImage'].src = url;
}
