// Variables:

			var map_long = -154.00;
			var map_lat = 64.0;
			var map_zoom = 14;
			

    	var map;
    	var zoom;
    	var projectList = [];
    	var PROJECT_ID							=0;
    	var PROJECT_CODE						=1;
    	var PROJECT_TITLE						=2;
    	var PROJECT_STATUS					=3;
    	var PROJECT_STARTED					=4;				
    	var PROJECT_FINISHED				=5;
    	var PROJECT_WHERE						=6;
    	var PROJECT_CONTACT					=7;
    	var PROJECT_LINK						=8;
    	var PROJECT_STATEWIDE_FLAG	=9;
    	var PROJECT_UL_LAT					=10;
    	var PROJECT_UL_LON					=11;
    	var PROJECT_LR_LAT					=12;
    	var PROJECT_LR_LON					=13;
    	var PROJECT_MARKER					=14;
    	var PROJECT_TEXT						=15;
    	var first_refresh				= true;

    	var bounds;
			var northEast;
			var southWest;
			var boxBottom = 46;
			var boxTop = 75;
			var boxLeft = 162;
			var boxRight = -109;
			
			var filterMsg;

	function loadMap(){ 
 				if (GBrowserIsCompatible()) { 
  				map = new GMap(document.getElementById("map"));
  				map.addControl(new GLargeMapControl());
  				map.addControl(new GMapTypeControl());
  				map.centerAndZoom(new GPoint(top.map_long, top.map_lat), top.map_zoom);
//        	map.setCenter(new GLatLng(top.map_lat, top.map_long), top.map_zoom);
//					map.addControl(new GOverviewMapControl);
        	map.setMapType(G_HYBRID_TYPE);
        	GEvent.addListener(map, "zoom", function() {
  				zoomLevel = map.getZoomLevel();
  					if (zoomLevel > 15)
   					map.zoomTo(15);
  				});


      // Trigger for moveend event
      GEvent.addListener(map, 'moveend', function() {
        // Display current map center
        bounds = map.getBounds();
        northEast = bounds.getNorthEast();
        southWest = bounds.getSouthWest();
        
        document.getElementById("toplatitude").value = northEast.lat().toFixed(2);
        document.getElementById("leftlongitude").value = southWest.lng().toFixed(2);
        document.getElementById("bottomlatitude").value = southWest.lat().toFixed(2);
        document.getElementById("rightlongitude").value = northEast.lng().toFixed(2);
      }) // GEvent.addListener			
//  				initCoords();
  				initCoordDisplay();

//				   createMarkers2();
				createMarkers();
    if (document.images) {
        chevronUp   = new Image();  chevronUp.src   =  "images/chevronUp.gif"; 
        chevronDown = new Image();  chevronDown.src =  "images/chevronDown.gif"; 
    }


  			}
}
  		
// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}

function clearListOptions( multipleList) {
    for ( var i = 0; i < multipleList.options.length; i++)
        multipleList.options[i].selected = false;
}

function clearText( textInput) {
    textInput.value = "";
}
  
function show_hide( name) {
    with ( document.getElementById( name).style) {
      if ( display == "none") {
          display = "block";
          eval('document.'+name + "_bn"+'.src=chevronUp.src');
          if ( document.getElementsByName(name+"Hidden")[0])
              document.getElementsByName(name+"Hidden")[0].value = null;
      } else {
          display = "none";
          eval('document.'+name + "_bn"+'.src=chevronDown.src');
          if ( document.getElementsByName(name+"Hidden")[0])
              document.getElementsByName(name+"Hidden")[0].value = "true";
      }
    }
}

function initCoordDisplay(){

      // Trigger for moveend event
        bounds = map.getBounds();
        northEast = bounds.getNorthEast();
        southWest = bounds.getSouthWest();
        
        document.getElementById("toplatitude").value = northEast.lat().toFixed(2);
        document.getElementById("leftlongitude").value = southWest.lng().toFixed(2);
        document.getElementById("bottomlatitude").value = southWest.lat().toFixed(2);
        document.getElementById("rightlongitude").value = northEast.lng().toFixed(2);
}

function saveMapBoundingBox() {
      document.getElementById("HiddenMapType").value = currentMapTypeNumber(map);
      document.getElementById("HiddenCenterLatitude").value = document.getElementById("centerlatitude").value;
      document.getElementById("HiddenCenterLongitude").value = document.getElementById("centerlongitude").value;
      document.getElementById("HiddenCenterZoom").value = document.getElementById("zoom").value;
}

function reset_all(){
	var theForm = gid('filterForm');
	clearListOptions(theForm.elements.namedItem('contacts'));
	clearText(theForm.elements.namedItem('searchText'));
	load_preset('statewide');
	var searchString="searchText=&contacts=";	
	doMyRefresh(searchString);
}

function doMyRefresh(myQuery){
var myURL = 'projectlist3.php?' + myQuery ;
//	alert (myURL);
GDownloadUrl(myURL, function(data, responseCode) {
  eval(data);
  project_drop_down_list2('selectionList');
  searchMsg();
  make_list_view('currentList');

  if (!first_refresh){
  	map.clearOverlays();
  	createMarkers();

  }
  first_refresh=false; 
});
;
}

function getProjectList2(){
var request = GXmlHttp.create();
request.open("GET", "projectlist2.php", true);
request.onreadystatechange = function() {
  if (request.readyState == 4) {
    alert(request.responseText);
  }
}
request.send(null);
}



// Creates a marker whose info window displays the project info
function createMarker( point, project) {
		var baseIcon = new GIcon(G_DEFAULT_ICON);
    if (project[PROJECT_STATEWIDE_FLAG]==1){
    	var state_icon = new GIcon(baseIcon);
    	state_icon.image="images/yellow_key.gif";
    	state_icon.iconSize=new GSize(20,20);
    	var marker = new GMarker(point, {icon:state_icon, title:"Statewide Projects"});
    } else {  
    	var marker = new GMarker(point, {title:project[PROJECT_TITLE]});
    }
    
    // Show this marker's index in the info window when it is clicked
    var html =  
    '<div id="project1" style=" height: auto; width:300px; border:0px blue solid; background-color: #FFFFFF">'
    +'<table width="300px" border=0 cellspacing="2px" cellpadding="2px" style="font-size:12px">'
    +  '<tr class="tile" align="left">'
    +    '<td class="tile" align="left" colspan="2">'
    +      '<span style="font-size: x-small"><b><i>Project: </i>'   + project[PROJECT_TITLE] + '</b></span>'
    +    '</td>'
    +  '</tr>'
    +  '<tr align="left">'
    +    '<td align="left">'
    +      '<table cellspacing="2px" align="left">'
    +      '<tr align="left">'
    +        '<td align="right"><strong><i><span style="font-size: x-small">Where:</span></i></strong></td>'
    +        '<td align="left"><span style="font-size: x-small">' + project[PROJECT_WHERE] + '</span></td>'
    +      '</tr>'
    +      '<tr align="left">'
    +        '<td align="right"><strong><i><span style="font-size: x-small">Status:</span></i></strong></td>'
    +        '<td><span style="font-size: x-small">' + project[PROJECT_STATUS] + '</span></td>'
    +      '</tr align="left">'
    +      '<tr align="left">'
    +        '<td align="right"><strong><i><span style="font-size: x-small">Contact:</span></i></strong></td>'
    +        '<td align="left"><span style="font-size: x-small">' + project[PROJECT_CONTACT] + '</span></td>'
    +      '</tr>'
    +      '<tr align="left">'
    +        '<td></td>'
//    +        '<td align="left"><a style="color: #993333; font-weight: bolder; text-decoration: none" target="_projectWin" href="' + project[PROJECT_LINK] + '"><span style="font-size: x-small">see more...</span></a></td>'
    +        '<td align="left"><a style="color: #993333; font-weight: bolder; text-decoration: none" target="_blank" href="' + project[PROJECT_LINK] + '"><span style="font-size: x-small">see more...</span></a></td>'
    +      '</tr>'
    +      '</table>'
    ;

    html +=
         '</td>'
    +  '</tr>'
    +'</table>'
    ;
    html += '</div>'
    ;
    
    project[PROJECT_MARKER] = marker;
    project[PROJECT_TEXT] = html;
    
    
    GEvent.addListener( project[PROJECT_MARKER]
                      , "click"
                      , function() {
                          project[PROJECT_MARKER].openInfoWindowHtml( project[PROJECT_TEXT]);
                        }
                      );
//    GEvent.addListener( project[PROJECT_MARKER]
//                      , "mouseover"
//                      , function() {
//                          project[PROJECT_MARKER].openInfoWindowHtml( project[PROJECT_TITLE]);
//                        }
//                      ); 
                      
 		if (project[PROJECT_STATEWIDE_FLAG]==1){
 			    GEvent.addListener( project[PROJECT_MARKER]
                      , "infowindowclose"
                      , function() {
                          map.removeOverlay(project[PROJECT_MARKER]);
                        }
                      ); 
    }	else {                       
    	map.addOverlay(marker); 	
    }
}





function createMarkers() {
	  var offset = 0;
	  var statewide_count = 0;
    var statewide_long = -153;
    var statewide_lat = 64;
    var offset_increment = .4;
 		var statewidehtml ='';
 		var html_index = 0;
 		var label = ["1-10", "11-20", "21-30", "31-40", "41-50"];
 		var infoTabs =[];

			statewidehtml += 
//			'<div style=" height: 300; width:350; border:0px blue solid; background-color: #FFFFFF">'
			  '<h3>Statewide Projects:</h3>'
			+ '<div style=" height:150px; width:350px;  overflow:auto; border:0px blue solid; background-color: #FFFFFF">'

			+ '<ul>'
			;
    for( var i=0; i<projectList.length; i++) {
    	var project = projectList[i];
			

			if (project[PROJECT_STATEWIDE_FLAG]==1){
					statewide_count +=1;
					statewidehtml +=
					'<li><a target="_projectWin" href="' + project[PROJECT_LINK] + '">' + project[PROJECT_TITLE] + '</a></li>'
					;
					mylong = statewide_long ;
					mylat =  statewide_lat ;
					createMarker( new GLatLng(mylat,mylong), project);
			} else {
				if (!(project[PROJECT_UL_LAT])){
					mylong = statewide_long;
					mylat = statewide_lat;
				} else {
					top_limit = Math.min(boxTop,parseFloat(project[PROJECT_UL_LAT]));
					bottom_limit = Math.max(boxBottom, parseFloat(project[PROJECT_LR_LAT]));
					left_limit = Math.min(boxLeft, parseFloat(project[PROJECT_UL_LON]),-179.9);
					right_limit = Math.min(boxRight, parseFloat(project[PROJECT_LR_LON]));
					
					mylong = parseFloat(project[PROJECT_UL_LON]) - ((parseFloat(project[PROJECT_UL_LON]) - parseFloat(project[PROJECT_LR_LON]))/2);
//					mylat = parseFloat(project[PROJECT_UL_LAT]) - ((parseFloat(project[PROJECT_UL_LAT]) - parseFloat(project[PROJECT_LR_LAT]))/2);
					mylat = top_limit - ((top_limit - bottom_limit)/2);
//					mylong = left_limit + ((left_limit + right_limit)/2);
				}

        createMarker( new GLatLng( mylat,mylong), project);
      }

    }

		if (statewide_count > 0){		
				statewidehtml +=
				'</ul>'
				+ '</div>'
				;

   	  var baseIcon = new GIcon(G_DEFAULT_ICON);
    	var state_icon = new GIcon(baseIcon);
   		state_icon.image = "images/yellow_key.gif";
			state_icon.iconSize=new GSize(20,20);
   		var marker = new GMarker(map.getCenter(),{icon:state_icon, title:"Statewide Projects"});  
    	GEvent.addListener( marker
                     	  , "click"
                      	, function() {
                        	  marker.openInfoWindowHtml(statewidehtml);
                        	}
                      	);

    	map.addOverlay(marker); 

		}		   	  
}


function focusToProject2( projectID) {
    if ( -1 == projectID)
        map.closeInfoWindow();
    else {
    		var projectIndex = projectLookUp(projectID);
    		var project = projectList[projectIndex];
    		if (project[PROJECT_STATEWIDE_FLAG]==1)
    			map.addOverlay(project[PROJECT_MARKER]);  
        project[PROJECT_MARKER].openInfoWindowHtml( project[PROJECT_TEXT]);
    	}
    return;
}

function projectLookUp (project_id) {
	    for( var i=0; i<projectList.length; i++) {
	    	if (projectList[i][PROJECT_ID] == project_id) {
	    		return i;
	    	}
	    }
	 return -1;
}
  
function focusToProject2_temp( projectId) {
		var mylong;
		var mylat;
		
    if ( -1 == projectId)
        map.closeInfoWindow();
    else
    	{
    		projectIndex = projectLookUp(projectId);
    		var project = projectList[projectIndex];
//  			map.clearOverlays();

				if (!(project[PROJECT_UL_LAT])){
					mylong = -152;
					mylat = 61;
				} else {
					mylong = parseFloat(project[PROJECT_UL_LON]) - ((parseFloat(project[PROJECT_UL_LON]) - parseFloat(project[PROJECT_LR_LON]))/2);
					mylat = parseFloat(project[PROJECT_UL_LAT]) - ((parseFloat(project[PROJECT_UL_LAT]) - parseFloat(project[PROJECT_LR_LAT]))/2);
				}
				createMarker( new GLatLng(mylat, mylong), project);
				projectList[projectIndex][PROJECT_MARKER].openInfoWindowHtml( projectList[projectIndex][PROJECT_TEXT]);
				
    	}
    return;
}


function updateMap() {
	createMarkers();
}

function clear_map(){
	map.clearOverlays();
}

function project_drop_down_list(){
	var d = gid('helpview').document;
	d.write('<select name="projectDropDownList" id="projectDropDownList" onchange="javascript:focusToProject2(this.value);"  style="width: 500px">');
	for( var i=0; i< projectList.length; i++) {
		var project = projectList[i];
		d.write('<option value="' + project[PROJECT_ID] + '">' + project[PROJECT_TITLE] + '</option>');
	}
	d.write('</select>');
	d.close();
	
	return true;
}

function project_drop_down_list2(theTag){
  var d = gid(theTag);
  var aString = '';
	aString += '\n<select name="projectDropDownList" id="projectDropDownList" onchange="javascript:focusToProject2(this.value);" style="width:500px">';
	aString += '<option value="-1">Current Project List</option>\n';
	for( var i=0; i< projectList.length; i++) {
		var project = projectList[i];
		aString += '<option value="' + project[PROJECT_ID] + '">' + project[PROJECT_TITLE] + '</option>\n';
	}
	aString += '</select>\n';
	d.innerHTML = aString;
	return true;
}

function make_list_view(theTag){
  var d = gid(theTag);
  var aString = '';
  aString += '\n<table width="80%">';
	aString += '\n<tr>';
	aString += '<td><h2>Current Project List</h2></td>';
	aString += '\n<td align="right"><a href="javascript:printPage()"><img border=0 src="images/print.gif" alt="Show printer friendly page"></a></td>';
	aString += '\n</tr>';
  aString += '\n</table>';
  aString += '\n' + filterMsg ;
	aString += '\n<p>';
	for( var i=0; i< projectList.length; i++) {
		var project = projectList[i];							
  		aString += '\n<h3><a target="_projectWin" href=\"project_details.php?project_id=' + project[PROJECT_ID]+ '">' + project[PROJECT_TITLE]+ '</a></h3>';
  		aString += '\n&nbsp;&nbsp;<strong>Project area: </strong>' + project[PROJECT_WHERE] + '<br>';
  		aString += '\n&nbsp;&nbsp;<strong>Primary contact(s): </strong>' + project[PROJECT_CONTACT];
  		aString += '\n<p>'; 
  }

  aString += '\n<table width="80%">';
	aString += '\n<tr>';
	aString += '<td>&nbsp</td>';
	aString += '\n<td align="right"><a href="javascript:printPage()"><img border=0 src="images/print.gif" alt="Show printer friendly page"></a></td>';
	aString += '\n</tr>';
  aString += '\n</table>';
	 
	d.innerHTML = aString;
	return true;
}

function printPage(){
  var htmlString = '';
  htmlString += '<html><head><title>USGS Science in Alaska - Project List</title>';
  htmlString += '<link rel="stylesheet" href="css/mydefault.css" type="text/css" />';
  htmlString += '</head><body>';
  htmlString += '<div id="content">';
  htmlString += '<img src="images/c_168_USGS.gif" alt="USGS logo" border="0">';
  htmlString += '<p>&nbsp;<p><p><h1>USGS Science in Alaska</h1>';
	htmlString += '\n<h2>Selected Project List</h2>';
	htmlString += '\n' + filterMsg ;
	htmlString += '\n<ol><br>';
	for( var i=0; i< projectList.length; i++) {
		var project = projectList[i];							
  		htmlString += '\n&nbsp;&nbsp;<li><h3><a target="_projectWin" href=\"project_details.php?project_id=' + project[PROJECT_ID]+ '">' + project[PROJECT_TITLE]+ '</a></h3></li>';
  		htmlString += '\n&nbsp;&nbsp;&nbsp;&nbsp;<strong>Project area: </strong>' + project[PROJECT_WHERE] + '<br>';
  		htmlString += '\n&nbsp;&nbsp;&nbsp;&nbsp;<strong>Primary contact(s): </strong>' + project[PROJECT_CONTACT];
  		htmlString += '\n<br>'; 
  }
  htmlString += '</ol></div></body></html>';
 
	printwindow=window.open();
	printdocument=printwindow.document;
	printdocument.write(htmlString);
	printdocument.close();
	
}

function searchMsg(){

	  var sText = trim(document.filterForm.searchText.value);
	  var myList = document.filterForm.contacts;
	  var contactList = "";
		var firstContact = true;
		
		if ((myList.options[0].selected)){

			} else {
	  	for (var i=0; i<myList.length; i++){
	  		if (myList.options[i].selected) {
	  			var lastname = trim(myList.options[i].text.split(",")[0]); 
	  			if (firstContact){ 
	  				contactList += '<em>' + lastname + '</em>';
	  				firstContact = false;
	  			} else { 
	  				contactList += ' or <em>' + lastname + '</em>';
	  			}
	  		}
	  	}
		}


		var boundingBox = 'Bounding Box=(' + boxTop + 'N,' + boxLeft + 'W; ' + boxBottom + 'N,' + boxRight + 'W) ';
		var msgHtml ='&nbsp;&nbsp;&nbsp;<b>Filter: </b>' + boundingBox;
		

		switch (sText.length){
			case 0:
				switch (contactList.length){
					case 0:
						msgHtml += '';
						break;
					default:
						msgHtml += 'Contacts= '  + contactList;
						break;
				}
				break;
			default:
				switch (contactList.length){
					case 0:
						msgHtml += 'Text= ' + '<em>' + sText + '</em>';
						break;
					default:
						msgHtml +=  'Contacts= ' +  contactList +  ' <b>AND</b> Text contains ' + '<em>"' + sText + '"</em> ' ;
 						break;
 				}
 			break;
 			}
 		
 		var numRecords = projectList.length;
 		var plural = 's';
 		if (numRecords == 1){
 			plural = '';
 		}
		msgHtml += '<br>&nbsp;<b>Results:</b> ' + numRecords + ' record' + plural + ' returned';

		var filterMsgWin=document.getElementById("currentFilter");	
	  filterMsgWin.innerHTML = msgHtml;
	  filterMsg = msgHtml;
	  
}

function runFilter(){

	  var sText = trim(document.filterForm.searchText.value);
	  var myList = document.filterForm.contacts;
	  var contactList = "";

		

        bounds = map.getBounds();
        northEast = bounds.getNorthEast();
        southWest = bounds.getSouthWest();

		if (!myList.options[0].selected){
	  	for (var i=0; i<myList.length; i++){
	  		if (myList.options[i].selected) {
	  				var lastname = trim(myList.options[i].text.split(",")[0]);  
	  				contactList += lastname + ",";
	  			}
	 	 		}

	  // remove the trailing comma
	  	contactList = contactList.substring(0,(contactList.length)-1);
	 	}
	 	
    bounds = map.getBounds();
    northEast = bounds.getNorthEast();
    southWest = bounds.getSouthWest();
    boxBottom = southWest.lat().toFixed(2);
    boxTop = northEast.lat().toFixed(2);
    boxLeft = southWest.lng().toFixed(2);
    boxRight = northEast.lng().toFixed(2);
    
	  theQuery = "searchText=" + encodeURIComponent(sText) + "&contacts=" + encodeURIComponent(contactList);
	  theQuery += "&boxBottom=" + encodeURIComponent(boxBottom);
	  theQuery += "&boxTop=" + encodeURIComponent(boxTop);
	  theQuery += "&boxRight=" + encodeURIComponent(boxRight);
	  theQuery += "&boxLeft=" + encodeURIComponent(boxLeft);


	  
		doMyRefresh(theQuery);
	return true;
}