var mpArr = new Object();
var imArr = new Object();
var vdArr = new Object();
var lbArr = new Object();


function  drawTrnspFLASH(which, vars, color, w, h, id) {
    var Tag = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + w + '" height="' + h + '" id="' + id + '" align="middle">'
    + '<param name="allowScriptAccess" value="sameDomain" />'
    + '<param name="flashvars" value="' + vars + '"></param>'
    + '<param name="movie" value="' + which + '" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" /><embed src="' + which + '" quality="high" wmode="transparent" bgcolor="' + color + '" width="' + w + '" height="' + h + '" name="' + id + '" align="middle" allowScriptAccess="sameDomain"  flashvars="' + vars + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'
    + '</object>';
    document.write(Tag);
}



function toggle_visibility(id) {
   var e = document.getElementById(id);

   if ((typeof(e) != 'undefined' ) && e) {
       if(e.style.visibility == 'visible') {
          e.style.visibility = 'hidden';
       } else {
          e.style.visibility = 'visible';
       }
   } else { alert("No E!!!!!!!!!!!!!!!!!!!!"); }
}


function isNumeric(strString){
   //  check for valid numeric strings
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;
   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
}

function point_it(){
    //alert(typeof (this));
    //alert(show_propss(this, "obj"));
    //document.getElementById('ID_of_image').style.borderColor = '#cc0000';
}



function LoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

function show_propss(obj, objName) {
   var result = "";
   for (var i in obj) {
      //result += objName + "." + i + "::";
     if (typeof (obj[i]) == "object") {
      //    show_propss(obj[i], "\t" + i)
      result += objName + "." + i + " = " + show_propss(obj[i], "\t" + i) + "\n";
     } else {
     //alert(typeof(obj[i]));
      result += objName + "." + i + " = " + obj[i] + "\n";
     }
   }
   return result;
}

function findPosX(obj){
    var curleft = 0;
    if (obj.offsetParent){
        while (obj.offsetParent) {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    } else if (obj.x) {
        curleft += obj.x - 5;
    }
    return curleft;
}

function findPosY(obj){
    var curtop = 0;
    if (obj.offsetParent){
        while (obj.offsetParent){
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    } else if (obj.y) {
        curtop += obj.y;
    }
    return curtop;
}

function swap(imgName, newImg) {
    if (document.images) {
        if (typeof(document.images[imgName]) == 'undefined') {
            //alert(imgName);
            /*for (var j = 0; j < document.images.length; j++) {
                alert(document.images[j].src);
            }*/
        } else {
            //alert(imgName + "," + document.images[imgName].src + ", " + newImg);
            document.images[imgName].src = loaded[newImg].src;
        }
    }
}

function swaPunk(imgName, newImg, dim) {
    if (document.images) {
        document.images[imgName].src = newImg;
        document.images[imgName].width = dim;
        document.images[imgName].height = dim;
    }
}

var wait = null;
//wait = setTimeout(spin(), 200);
function spin (){
}

function enablehref(){
    //alert("Current map cursor is " + myMap.cursor);
    if ((typeof(myMap) != "undefined") && myMap) {
    myMap.setCursor(curMapCursor);
    }
    var input = document.getElementsByTagName("a");
    var count = input.length;
    for(var i =0; i < count; i++){
    document.getElementsByTagName("a")[i].disabled = false;// Does not disable the link it just gives it a grey color, but works with buttons
    //document.getElementsByTagName("a")[i].removeAttribute("href"); //OBS this works but also stops the request and the next page does not get loaded, just    hangs in the first page
    document.getElementsByTagName("a")[i].style.cursor='pointer';// just to give the mousepointer the wait symbol instead of the hand
    }
    return true;
}

var curMapCursor = "";
function disablehref(){
    //alert('Disabling hrefs');
    var input = document.getElementsByTagName("a");
    var count = input.length;
    for(var i =0; i < count; i++){
        document.getElementsByTagName("a")[i].disabled = true;// Does not disable the link it just gives it a grey color, but works with buttons
        //document.getElementsByTagName("a")[i].removeAttribute("href"); //OBS this works but also stops the request and the next page does not get loaded, just    hangs in the first page
        document.getElementsByTagName("a")[i].style.cursor='wait';// just to give the mousepointer the wait symbol instead of the hand
    }
    if ((typeof(myMap) != "undefined") && myMap) {
    if (myMap.cursor != 'wait') {
        curMapCursor = myMap.cursor;
    }
    myMap.setCursor('wait');
    }
    return true;
}


function pressDIV (what,dir, href) {
    //alert(what + ":" + dir + ":" + href);
    var colorDIV = document.getElementById(what);
    var anchor = document.getElementById(href);
    if ((typeof(colorDIV) != "undefined") && colorDIV){
        if (dir > 0) {
            if ((typeof(anchor) != "undefined") && anchor){
            //alert(typeof(anchor));
            anchor.innerHTML = "unMap It";
            }
            colorDIV.style.background = '#eeeeee';
            colorDIV.style.borderTop = '4px #999999 solid';
            colorDIV.style.borderRight = '4px #d2d2d2 solid';
            colorDIV.style.borderBottom = '4px #d2d2d2 solid';
            colorDIV.style.borderLeft = '4px #999999 solid';
        } else {
            if ((typeof(anchor) != "undefined") && anchor) {
            //alert(typeof(anchor));
            anchor.innerHTML = "Map It";
            }
            colorDIV.style.background = '#ffffff';
            colorDIV.style.borderTop = '0px';
            colorDIV.style.borderRight = '0px';
            colorDIV.style.borderBottom = '0px';
            colorDIV.style.borderLeft = '0px';
        }
    }
}

function pushDIV (what,dir,a) {
    var colorDIV = document.getElementById(what);
    var anchor = document.getElementById(a);
    if ((typeof(colorDIV) != "undefined") && colorDIV){

        //alert(what);
        if (dir > 0) {
        if ((typeof(anchor) != "undefined") && anchor){
        //alert(typeof(anchor));
        anchor.innerHTML = "unMap It";
        }
        colorDIV.style.background = '#eeeeee';
        colorDIV.style.borderTop = '4px #999999 solid';
        colorDIV.style.borderRight = '4px #d2d2d2 solid';
        colorDIV.style.borderBottom = '4px #d2d2d2 solid';
        colorDIV.style.borderLeft = '4px #999999 solid';
        } else {
        if ((typeof(anchor) != "undefined") && anchor) {
        //alert(typeof(anchor));
        anchor.innerHTML = "Map It";
        }
        colorDIV.style.background = '#ffffff';
        colorDIV.style.borderTop = '4px #d2d2d2 solid';
        colorDIV.style.borderRight = '4px #999999 solid';
        colorDIV.style.borderBottom = '4px #999999 solid';
        colorDIV.style.borderLeft = '4px #d2d2d2 solid';
        }
    }
}



function setState(state) {
    if ((typeof(state) == 'undefined') || (state == '') || (state == null) || (state == undefined)) {
        state = mystate;
        //alert('Setting state to current value: ' + mystate );
    } else {
        if (myMap) {
            myMap.setState(state);
        }
        mystate = state;
        //swap(state, state+'-on');
    }
    /*for (var i=0; i<states.length; i++) {
        if (states[i] != mystate) {
            //swap(states[i], states[i]+'_off');
            swap(states[i], states[i]);
        }
    }*/
}

function loadMe() {
    if (document.splashLoaded) {
        //alert("document.isLoaded = true");
        document.isLoaded = true;
    } else {
        timer = setTimeout("loadMe()", 500);
    }
}

/* Layers */
var timer = setTimeout("",0);
function setLayers(layers) {
    //alert(layers);
    if (layers.length > 0) {
        if ((typeof(document.layerselect) != 'undefined') && document.layerselect) {
            //alert("Setting :" + layers + ":");
            for (var j=0; j<document.layerselect.elements.length; j++) {
                document.layerselect.elements[j].checked = false;
                /*for (var i=0; i<layers.length; i++) {
                    if (layers[i] == document.layerselect.elements[j].name) {
                        //alert("setting " + layers[i]);
                        document.layerselect.elements[j].checked = true;
                        //break;
                    } //else {
                    //}
                }*/
            }
            //new
            for (var i=0; i<layers.length; i++) {
                if ((typeof(document.layerselect.elements[layers[i]]) != "undefined") && document.layerselect.elements[layers[i]]) {
                //alert("setting " + layers[i]);
                document.layerselect.elements[layers[i]].checked = true;
                }
            }
        }
    }
}

function getLayers() {
    var j = 0;
    var setvector = false;
    var myLayers = new Array();
    var rivers = '';
    var comStr = "";
    if ((typeof(document.layerselect) != 'undefined') && document.layerselect) {
        //alert("Layer Select was found");
        for (var i=0; i<document.layerselect.elements.length; i++) {
            if (document.layerselect.elements[i].type == 'checkbox' && document.layerselect.elements[i].checked == true) {
                if (document.layerselect.elements[i].name.indexOf('pointdata') < 0) {
                    myLayers[j] = document.layerselect.elements[i].name;
                    j++;
                    //comStr += "::" + document.layerselect.elements[i].name;
                }
            }
        }
    }
    /*if ((typeof(document.atlasselect) != "undefined") && document.atlasselect){
        for (var i=0; i<document.atlasselect.elements.length; i++) {
            if (document.atlasselect.elements[i].type == 'checkbox' && document.atlasselect.elements[i].checked == true) {
            if (document.atlasselect.elements[i].name.indexOf('pointdata') < 0) {
                myLayers[j] = document.atlasselect.elements[i].name;
                //comStr += "::" + document.atlasselect.elements[i].name;
                j++;
            }
            }
        }
    }*/
    //alert("GetLayers returns " + myLayers);
    return myLayers;
}

function loadLayers(how) {
    clearTimeout(timer);
    myMap.setLayers(getLayers());
}

function setqlayer() {
        var qselect = document.queryselect.qlayer;
        myMap.setQueryLayer(qselect.options[qselect.selectedIndex].value);
}

function isMapLoaded() {
        //if (document.map.document.isLoaded && document.refmap.document.isLoaded) {
        if (document.isLoaded) {
            //alert("Loading Layers ...");
                timer = setTimeout("loadLayers(0)", 200);
        } else {
                timer = setTimeout("isMapLoaded()", 200);
        }
}

function isNumeric(value) {
  if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false;
  return true;
}

function zoomSite (code) {
    //dtdb 01.25.05
    //myMap.itemquery('sitesq','&sitezoom=on&map_sitesq_filter=(\'[CODE]\'=~/^'+code+'/)',false,false);
    //myMap.itemquery('sitesq','&sitezoom=on&qlayer=sites&qitem=CODE&qstring=' +code,false,false);
    myMap.itemquery('sitesq','&sitezoom=on&map_sitesq_filter=(\'[CODE]\'=~/^'+code+'/)&qlayer=sites&qitem=CODE&qstring=' +code,false,false);
}

function filterSites (filter) {
    if (filter == 'all') filter = '';
    myMap.setOptions(filter);
    myMap.redraw();
}

function setqlayer() {
    var qselect = document.queryselect.qlayer;
    myMap.setQueryLayer(qselect.options[qselect.selectedIndex].value);
}

function getAltRatio ()  {
    this.history.views[this.history.current];
    var options = currentview['layers'].join('+');
    return (Math.abs(this.mapExtents[0]- this.mapExtents[2]));
}

function toggleLayer(dLayer) {

    if (eval ("document.layerselect." + dLayer + ".checked")) {
        eval ("document.layerselect." + dLayer + ".checked = false;");
    } else {
        eval ("document.layerselect." + dLayer + ".checked = true;");
    }
    loadLayers(1);
}

function togglePointLayer(dLayer, arr, which) {

    if (eval ("document.layerselect." + dLayer + ".checked")) {
        eval ("document.layerselect." + dLayer + ".checked = false;");
    } else {
        eval ("document.layerselect." + dLayer + ".checked = true;");
    }

    toggleUSGSMON(arr, which);
}


function openToolBar() {
    myMap.navDockLayer.glideTo(myMap.mapw - 381, -120, 5, 3);
    if (typeof (myMap.navFloatLayer) != "undefined") {
        myMap.navFloatLayer.glideTo(myMap.mapx + 25, myMap.maph - 25, 5, 3);
    } else {
        makeRequest("/delta-live/getData.php?datasrc=nav", "outd", goFloatNav);
    }
}


function goFloatNav() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        myMap.buildFloatNav(http_request.responseText);
        myMap.navFloatLayer.glideTo(myMap.mapx + 25, myMap.maph - 25, 5, 3);
        } else {
        document.getElementById(reportDIV).setHTML ("There was a problem with the request.");
        //alert("There was a problem with the request.");
        }
    }
    enablehref();
}


function closeToolBar() {
    myMap.navDockLayer.glideTo(myMap.mapw - 381, 5, 5, 3);
    myMap.navFloatLayer.glideTo(myMap.mapx - 500, myMap.maph - 25, 5, 3);
}

function goLayerNav() {
    if (myMap.navLayers.getVisible() == false) {
        myMap.navLayers.setVisible(true);
    } else {
        myMap.navLayers.setVisible(false);
    }
}

function goLegendNav() {
    if (myMap.Legend.getVisible() == false) {
        myMap.Legend.setVisible(true);
    } else {
        myMap.Legend.setVisible(false);
    }
}

function goSearchNav() {
    if (myMap.Search.getVisible() == false) {
        myMap.Search.setVisible(true);
    } else {
        myMap.Search.setVisible(false);
    }
}

function goDeltaNav(what) {

    if (what.getVisible() == false) {
        what.setVisible(true);
    } else {
        what.setVisible(false);
    }

}

var searchwindow = '';
function cForm(form, w, h){
    var winl = (screen.width-w)/4;
    var wint = (screen.height-h)/2;
    var settings  ='status=yes,resizable=yes,scrollbars=yes,height='+h+',';
    settings +='width='+w+',';
    settings +='top='+wint+',';
    settings +='left='+winl+',';

    if (!searchwindow.closed && searchwindow.location) {
        //searchwindow.location.href = url;
        searchwindow.opener = self;
    } else {
        searchwindow=window.open('','myWin',settings);
        if (!searchwindow.opener) searchwindow.opener = self;
    }
    form.target='myWin';
    form.action='/maps/Locate.maphp';
    if(parseInt(navigator.appVersion) >= 4){searchwindow.window.focus();}
    if (window.focus) {searchwindow.focus()}
    return false;
}


var uwindow = '';
function uForm(form, w, h){
    var winl = (screen.width-w)/4;
    var wint = (screen.height-h)/2;
    var settings  ='status=yes,resizable=yes,scrollbars=yes,height='+h+',';
    settings +='width='+w+',';
    settings +='top='+wint+',';
    settings +='left='+winl+',';

    if (!uwindow.closed && uwindow.location) {
        uwindow.location.href = url;
    } else {
        uwindow=window.open('','myWin',settings);
        if (!uwindow.opener) uwindow.opener = self;
    }
    form.target='myWin';
    form.action='/maps/upload2.php';
    if(parseInt(navigator.appVersion) >= 4){uwindow.window.focus();}
    if (window.focus) {uwindow.focus()}
    return false;
}


var http_request = false;
var reportDIV = '';
function makeRequest(url, targetdiv, callback) {
    http_request = false;
    reportDIV = targetdiv;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/text');
        // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
        try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }

    if (typeof(disablehref) != "undefined") {
    disablehref();
    }
    http_request.onreadystatechange = callback;
    http_request.open('GET', url, true);
    http_request.send(null);
}

   function makePOSTRequest(url, parameters, targetdiv, callback) {
      http_request = false;
      reportDIV = targetdiv;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }

      http_request.onreadystatechange = callback;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   /*function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;
         } else {
            alert('There was a problem with the request.');
         }
      }
   }*/

   function get(obj) {
      var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) +
                    "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
      makePOSTRequest('post.php', poststr);
   }


var waitStr = "<div  class=\"envelope\">";
waitStr += "<div id=\"placeviewer\" class=\"viewer\">";
waitStr += "<div class=\"box\" id=\"imag\">";
waitStr += "<img src=\"/images/ani-busy.gif\" alt=\"Progress\" title=\"Progress\" width=\"32\" height=\"32\" />";
waitStr += "</div></div></div>";

var waitStr2 = "<div  class=\"envelope\">";
waitStr2 += "<div class=\"box\" id=\"imag\">";
waitStr2 += "<img src=\"/images/ani-busy.gif\" alt=\"Progress\" title=\"Progress\" width=\"32\" height=\"32\" />";
waitStr2 += "</div></div>";


var followMe = "<a href=\"/\" class=\"brown\">Home</a>";
var followMeSep = " &#8226; ";
function getProjectDeliverables() {
    setWait("stompbox");
    makeRequest("/tasks.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
    followMe = "Home" + followMeSep + "My Profile" + followMeSep + "My Projects" + followMeSep +  projectArr[currentProjectID].project_ti + followMeSep + "Tasks";
    setInnerHtml("followMe", followMe);
}
function getProjectSchedule() {
    setWait("stompbox");
    makeRequest("/schedule.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
    followMe = "Home" + followMeSep + "My Profile" + followMeSep + "My Projects" + followMeSep +  projectArr[currentProjectID].project_ti + followMeSep + "Schedule";
    setInnerHtml("followMe", followMe);
}
function getProjectTeam() {
    setWait("stompbox");
    makeRequest("/team.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
    followMe = "Home" + followMeSep + "My Profile" + followMeSep + "My Projects" + followMeSep +  projectArr[currentProjectID].project_ti + followMeSep + "Team";
    setInnerHtml("followMe", followMe);
}

function deleteTeamMember(varURL) {
    if (confirm("Remove the member from this team?")) {
    setWait("stompbox");
    makeRequest(varURL, "stompbox", evalContents);
    }
}

function getProjectOverview() {
    setWait("stompbox");
    makeRequest("/myprojects.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
    followMe = "Home" + followMeSep + "My Profile" + followMeSep + "My Projects" + followMeSep +  projectArr[currentProjectID].project_ti + followMeSep + "Overview";
    setInnerHtml("followMe", followMe);
}

function getProjectLibrary() {
    setWait("stompbox");
    makeRequest("/project.library.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
    followMe = "Home" + followMeSep + "My Profile" + followMeSep + "My Projects" + followMeSep +  projectArr[currentProjectID].project_ti + followMeSep + "Overview";
    setInnerHtml("followMe", followMe);
}

function turnTopicPage(what) {
    setWait2("browser");
    //alert(what);
    //makeRequest("/cms/browser.php?view=" + view + "&" + what, "browser", evalContents);
    makeRequest("/cms/browser.php?" + what, "browser", evalContents);
}

function turnEditPage(what,where) {
    setWait("stompbox");
    //alert(where + "&ctype=" + what);
    makeRequest(where + "&ctype=" + what + "&inner=true", "stompbox", evalContents);
}

function changeTopic (which) {

//for (n in tinyMCE.instances) {  inst = tinyMCE.instances[n]; alert(inst.getHTML()); }
    //var me = tinyMCE.execCommand('mceRemoveControl', false, 'description');
    //for (n in tinyMCE.instances){tinyMCE.removeInstance(tinyMCE.instances[n]);}
    //delete(tinyMCE);
    //setWait("stompbox");
    //alert(which);
    var r = pruneArrs();
    //makeRequest(document.location + "?inner=true&id=" + which, "stompbox", evalContents);
    document.location = document.location.pathname + "?&id=" + which;
}

var selectionList = new Array();
function setSelection (which) {
    var what = document.getElementById(which);
    if ((typeof(what) != "undefined") && what) {
        if (what.style.backgroundcolor == "#ffffff") {
            what.style.backgroundcolor == "#ffff32";
        } else {
            what.style.backgroundcolor == "#ffffff";
        }
    }
}

function setInnerHtml(who, what) {
    var which = document.getElementById(who);
    if ((typeof(which) != "undefined") && which ) {
            which.innerHTML = what;
    }
}

function setWait(who) {
    var which = document.getElementById(who);
    if ((typeof(which) != "undefined") && which ) {
    which.innerHTML = waitStr;
    }
}

function setWait2(who) {
    var which = document.getElementById(who);
    if ((typeof(which) != "undefined") && which ) {
    which.innerHTML = waitStr2;
    }
}

function alertContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        document.getElementById(reportDIV).innerHTML = http_request.responseText;
        //alert(http_request.responseText);
        } else {
        document.getElementById(reportDIV).innerHTML = "There was a problem with the request.";
        //alert("There was a problem with the request.");
        }
    }
    if (typeof(enablehref) != "undefined") {
    enablehref();
    }
}

function evalContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        var which = document.getElementById(reportDIV);
        if ((typeof(which) != "undefined") && which ) {
            //alert(http_request.responseText);
            document.getElementById(reportDIV).innerHTML = http_request.responseText;
            var scripts = which.getElementsByTagName("script");
            for(var i=0; i < scripts.length;i++){
            //alert (scripts[i].innerHTML);
            eval(unescape(scripts[i].innerHTML));
            //eval(scripts[i].innerHTML);
            }
        }
        } else {
        document.getElementById(reportDIV).innerHTML = "There was a problem with the request.";
        //alert("There was a problem with the request.");
        }
    }
    if (typeof(enablehref) != "undefined") {
    enablehref();
    }
}

function slideContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        var closeMe = '<div style="width: 720px; margin:1px;" ><img src="/images/clear.gif" width="700" height="15" alt="CLOSE" title="CLOSE" style="display: inline;" />';
        closeMe += '<a href="javascript:closeInfo();" ><img src="/images/win_min.gif" width="14" height="15" alt="CLOSE" title="CLOSE"  style="display: inline;"/></a>';
        closeMe += '</div>';

        if (typeof(imgArr) != "undefined") { imgArr = undefined; }
        myMap.infoLayer.setHTML (closeMe + http_request.responseText);
        openInfo();
        //alert(http_request.responseText);
        } else {
        document.getElementById(reportDIV).setHTML ("There was a problem with the request.");
        //alert("There was a problem with the request.");
        }
    }
    enablehref();
}

function openInfo() {
    myMap.infoLayer.glideTo(myMap.mapx + 265, bsize + 5, 50, 3);
    if (typeof(imgArr) == "undefined") {

        var pageid = myMap.infoLayer.id;
        var page = document.getElementById(pageid);
        var scripts = page.getElementsByTagName('script');
        for (scr=0;scr<scripts.length;scr++) {
            eval(scripts[scr].innerHTML);
        }
    }
}

function closeInfo() {
    myMap.infoLayer.glideTo(myMap.mapx - 800, bsize + 5, 50, 3);
}

function Search() {
    //var qselect = document.search.layer;
    //qselect.options[qselect.selectedIndex].value
    var searchLayer = document.search.layer.options[document.search.layer.selectedIndex].value
    var searchParam = document.search.criteria.value
    //javascript:alert(document.search.layer.selectedIndex);
    //javascript:alert(document.search.criteria.value);
    var searchDIV = document.getElementById("searchoutput")
    searchDIV.innerHTML = "locate.php?criteria=" + searchParam + "&layer=" + searchLayer;
    makeRequest("/locate.php?criteria=" + searchParam + "&layer=" + searchLayer, "searchoutput", alertContents);
    return false;
}

function handleMap() {
    var serverResponse = http_request.responseText;
    //alert(serverResponse);
    //alert(opener.myMap.toString());
    var temp = new Array();
    temp = serverResponse.split(',');
    //alert ("Mapping extents:" + temp[0] + ":" + temp[1] + ":" + temp[2] + ":" + temp[3]);
    myMap.centerOnBBox(temp[0],temp[1],temp[2],temp[3]);
}

function mapIt() {
    //grab the selected index id
    //grab the selected index layer
    //send that id to the server
    //receive the new bbox
    //send that new bbox to opener.myMap.centerOnBBox(gX1,gY1,gX2,gY2);
    //var layerItem     = document.main.layer.selectedIndex;
    //var layerText     = document.main.layer.options[layerItem].text;
    var layerValue  = document.search.layer.options[document.forms[1].layer.selectedIndex].value;

    var idItem  = document.mapit.id.selectedIndex;
    var idText  = document.mapit.id.options[idItem].text;
    var idValue     = document.mapit.id.options[idItem].value;
    //alert(layerValue + "::" + idValue);
    //parent.map.myMap.
    makeRequest("/calculate.php?layer=" + layerValue + "&id=" + idValue, "searchoutput", handleMap);
    return false;
}

function goForm() {
    document.filterForm.action = "/catalog/index.php";
    document.filterForm.submit();
}

function goMyForm() {
    document.filterForm.action = "/mycatalog.php";
    document.filterForm.submit();
}

function goSearchForm(where) {
    document.filterForm.action = where;
    document.filterForm.submit();
}


function imaj (id, src, title, thumb, source) {

    this.id = id;
    this.src = src;
    this.title = title;
    this.thumb = thumb;
    this.source = source;
    this.source = source;

}

function video (id, src, title, thumb, source, file_type,doc_type) {
    this.id = id;
    this.src = src;
    this.title = title;
    this.thumb = thumb;
    this.source = source;
    this.file_type = file_type;
    this.doc_type = doc_type;
}


function message (recipient, subject, body, sender, posted_by, community, viewed, modified) {
    this.recipient = recipient;
    this.subject = subject;
    this.body = body;
    this.sender = sender;
    this.posted_by = posted_by;
    this.community = community;
    this.viewed = viewed;
    this.modified = modified;

}


function bookmark (id, title, description, extent, layers, conditions, url) {
    this.id = id;
    this.title = title;
    this.description = description;
    this.extent = extent;
    this.layers = layers;
    this.conditions = conditions;
    this.url = url;
}

function project (id,
project_ti,
descriptio,
milestone_,
location__,
project_ph,
region___,
total_proj,
funding_so,
percent_co,
beneficiar,
project_type,
whos_involved,
modified,
project_history,
project_term,
keywords,
shorttitle,
publish,
posted_by,
publish_homepage,
public,
year,
agency) {

    this.id =  id ;
    this.project_ti =  project_ti ;
    this.descriptio = descriptio  ;
    this.milestone_ =  milestone_ ;
    this.location__ =  location__ ;
    this.project_ph = project_ph  ;
    this.region___ =  region___ ;
    this.total_proj =  total_proj ;
    this.funding_so =  funding_so ;
    this.percent_co = percent_co  ;
    this.beneficiar =  beneficiar ;
    this.project_type =  project_type ;
    this.whos_involved =  whos_involved ;
    this.modified =  modified ;
    this.project_history = project_history  ;
    this.project_term = project_term  ;
    this.keywords = keywords  ;
    this.shorttitle =  shorttitle ;
    this.publish =  publish ;
    this.posted_by =  posted_by ;
    this.publish_homepage = publish_homepage  ;
    this.public =  public ;
    this.year = year  ;
    this.agency  =  agency ;
}

 function findLinkByHref(href) {

  for (var i=0; i<document.links.length; i++) {
    if (document.links[i].href == href) return i;
  }
  return -1;

 }

 function changeLinkHref(id,newHref) {
  if (document.links.length > 0) {
    if (document.getElementById) {
    var dHref = document.getElementById(id);
    if ((typeof(dHref) != "undefined")   && dHref) {
        dHref.href = newHref;
    }
    } else if (document.all) {
      document.all[id].href = newHref;
    }
  }
 }

var currentMessage = null;
var currentMessageID;
function getMessage(which) {
    currentMessageID = which;
    currentMessage = inboxArr[which];
    //recipient, subject, body, sender, posted_by, community, viewed, modified
    curMsg = document.getElementById("message");
    if ((typeof(curMsg) != "undefined") && curMsg) {
        //alert ("Found an envelope.");
        var msg = "";
        msg += '<div style="width: 450px; margin: 0px 0px 5px 0px;">';
        msg += '<p  class="bold14" style="margin-left: 0px;">' + currentMessage['subject'] + '</p>';
        msg += '<div style="margin-top: 5px;">' + currentMessage['body'] + '</div>';
        msg += '</div>';
        curMsg.innerHTML  = msg;
    } else {
        //alert ("no envelope");
    }
}

var currentImage = null;
var currentImageID;
function setMainImg(which, what, why, title, source) {
    currIMg = which;
    currentImageID = which;
    currentImage = imgArr[which];

    changeLinkHref("enlarge","javascript:getWindow('" + why + "', 600, 600);");
    changeLinkHref("download","/catalog/download.php?f=" + why);
    changeLinkHref("mailit","/catalog/email.php?id=" + currentImage.id + "&jnsp=1");
    changeLinkHref("mapit","/delta-live/?item="  + currentImage.id);
    changeLinkHref("edit","/catalog/view?id=" + currentImage.id + "&jnsp=1");
    changeLinkHref("meta","/catalog/view?id=" + currentImage.id + "&jnsp=1");

    curImg = document.getElementById("mainimg");
    if ((typeof(curImg) != "undefined") && curImg) {
    curImg.src = what;
    }
    curTitle = document.getElementById("maintitle");
    if ((typeof(curTitle) != "undefined") && curTitle) {
    curTitle.innerHTML = "&nbsp;&nbsp;" + title;
    }
    curSource = document.getElementById("mainsource");
    if ((typeof(curSource) != "undefined") && curSource) {
        if (source != "") {
        curSource.innerHTML = '&copy;'  + source + '&nbsp;';
        curSource.style.display = 'block';
        } else {
        curSource.style.display = 'none';
        }
    }
}

function animImages() {
    currImg++;
    if (currImg >= (imgArr.length -1)) {
    currImg = 0;
    }
    if ((typeof(imgArr) != "undefined") && imgArr) {
        if (imgArr.length > 0) {
        setMainImg(currImg, imgArr[currImg].src, imgArr[currImg].src.replace('438x280/', ''), imgArr[currImg].title, imgArr[currImg].source);
        } else {
        clearInterval(animProcess);
        }
    } else {
        clearInterval(animProcess);
    }
}

function goLibrary(which, what, why, title, source) {
    currentImageID = which;
    currentImage = libArr[which];

    changeLinkHref("enlarge","javascript:getWindow('" + why + "', 600, 600);");
    changeLinkHref("download","/catalog/download.php?f=" + why);
    changeLinkHref("mailit","/catalog/email.php?id=" + currentImage.id + "&jnsp=1");
    changeLinkHref("mapit","/delta-live/?item="  + currentImage.id);
    changeLinkHref("edit","/catalog/view?id=" + currentImage.id + "&jnsp=1");
    changeLinkHref("meta","/catalog/view?id=" + currentImage.id + "&jnsp=1");

    curImg = document.getElementById("mainimg");
    if ((typeof(curImg) != "undefined") && curImg) {
    curImg.src = what;
    }
    curTitle = document.getElementById("maintitle");
    if ((typeof(curTitle) != "undefined") && curTitle) {
    curTitle.innerHTML = "&nbsp;&nbsp;" + title;
    }
    curSource = document.getElementById("imagesource");
    if ((typeof(curSource) != "undefined") && curSource) {
        if (source != "") {
        curSource.innerHTML = "" + source + "&nbsp;";
        curSource.style.display = 'block';
        } else {
        curSource.style.display = 'none';
        }
    }
}

function goVideo(idx, file_extension, img, url, title, author) {
    curSource = document.getElementById("ufo2");
    if ((typeof(curSource) != "undefined") && curSource) {
        if (vidArr[idx].doc_type == 'video::utube') {
        drawUTUBE(vidArr[idx]['src'], 'ufo2');
        } else if (file_extension == 'flv') {
        curSource.style.height='300px';
        drwTrnspFLSHID('/video/flvplayer.swf', 'file=' + url + '&amp;autostart=true&amp;displayheight=280', "#fffff", 450, 300, "player", "ufo2");
        } else if ((file_extension == 'wms') || (file_extension == 'avi') || (file_extension == 'wmv') || (file_extension == 'wma') || (file_extension == 'mpg') || (file_extension == 'mpeg')){
        //Write out windows media player

        curSource.style.height='338px';
        var Tag = '<object id="MediaPlayer1" width=450 height=338 classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject" align="middle">';
        Tag += '<param name="FileName" value="http://' + document.location.host + url + '">';
        Tag += '<param name="AutoStart" value="true">';
        Tag += '<param name="ShowStatusBar" value="True">';
        //Tag += '<param name="DefaultFrame" value="mainFrame">';
        Tag += ' <embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="http://' + document.location.host + url + '" align="middle" width=450 height=338  showstatusbar=true></embed>';
        //defaultframe="rightFrame"
        Tag += '</object>';

        //alert(Tag);
        curSource.innerHTML = Tag;
        //document.write(Tag);

        } else if ((file_extension == 'mov') || (file_extension == 'mp4') || (file_extension == 'm4v') || (file_extension == 'm4p')){
        //Write out quicktime player

        }
    }
}

var currentView = null;
function goView(which) {
    //alert(which);
    currentProject = which;
    if (which != "map") {
    if (typeof(myMap) != 'undefined') {
        if (myMap.map && !myMap.buildExtendedInterface) {
            //alert("hiding map!");
            myMap.map.setVisible(0);
        }
    }
    }
    var tb = "";
    if ((typeof(category) != 'undefined') && category) {
    tb = "&category=" + category;
    }
    setWait2("view");
    makeRequest("/viewer.php?view=" + which + tb, "view", evalContents);
}

var currentView = null;
function goBrowser(which) {
    //alert(which);
    currentProject = which;
    setWait2("browser");
    var tId = "";
    if ((typeof(topic) != 'undefined') && topic) {
     tId = "&id=" + topic.id;
    }
    if ((typeof(id) != 'undefined') && id) {
     tId = "&id=" + id;
    }

    var params = "/cms/browser.php?view=" + which + tId;
    if ((typeof(category) != "undefined") && category) {
    params += "&category=" + category;
    }
    //alert(params);
    makeRequest(params, "browser", evalContents);
}

function compileArrVals(arr) {
    var Ids = "";
    var sep = "";
    for (obj in arr) {
        if (arr[obj].on == 1) {
        Ids += sep + arr[obj].id;
        sep = ":";
        }
    }
    return Ids;
}

function pruneArrs () {
    var outStr = delete(imgArr);
    outStr += delete(libArr);
    outStr += delete(mapArr);
    outStr += delete(vidArr);
    outStr += delete(docArr);
    return outStr;
}

function saveTopic() {
    var me = tinyMCE.execCommand('mceRemoveControl', false, 'description');
    //LOOP through imgArr
    var imgIds = compileArrVals(imgArr);
    //LOOP through libArr
    var libIds = compileArrVals(libArr);
    //LOOP through mapArr
    var mapIds  = compileArrVals(mapArr);
    //LOOP through vidArr
    var vidIds  = compileArrVals(vidArr);

    //getForm parameters
    /*var id = document.forms.library.id.value;
    var title = escape(document.forms.library.title.value);
    var description = escape(document.forms.library.description.value);

    //alert (description);
    var author = document.forms.library.author.value;
    var source = document.forms.library.source.value;
    var sourceURL = document.forms.library.sourceURL.value;
    var posted_by = document.forms.library.posted_by.value;
    var type = document.forms.library.type.value;
    var defaultviewer = document.forms.library.defaultviewer.options[document.forms.library.defaultviewer.selectedIndex].value
    */
    document.forms.library.imgIds.value = imgIds;
    document.forms.library.libIds.value = libIds;
    document.forms.library.mapIds.value = mapIds;
    document.forms.library.vidIds.value = vidIds;

    document.forms.library.submit();
    //var parameters = "inner=true&id=" + id + "&title=" + title + "&description=" + description + "&author=" + author + "&source=" + source + "&sourceURL=" + sourceURL + "&posted_by=" + posted_by + "&type=" + type + "&defaultviewer=" + defaultviewer + "&imgIds=" + imgIds + "&libIds=" + libIds + "&mapIds=" + mapIds + "&vidIds=" + vidIds;

    //alert(parameters);
    //var r = pruneArrs();
    //setWait("stompbox");
    //makePOSTRequest("/cms/index.php", parameters, 'stompbox', evalContents)
}


function saveNews() {
    //LOOP through imgArr
    var me = tinyMCE.execCommand('mceRemoveControl', false, 'description');
    var imgIds = compileArrVals(imgArr);
    //LOOP through libArr
    var docIds = compileArrVals(docArr);

    //getForm parameters
    /*var id = document.forms.library.id.value;
    var title = escape(document.forms.library.title.value);
    var description = escape(document.forms.library.description.value);
    var author = document.forms.library.author.value;
    var source = document.forms.library.source.value;
    var source_url = document.forms.library.source_url.value;
    var more_info_url = document.forms.library.more_info_url.value;
    var subtitle = document.forms.library.subtitle.value;
    var date_ = document.forms.library.date_.value;
    var posted_by = document.forms.library.posted_by.value;
    var type = document.forms.library.type.value;
    var defaultviewer = document.forms.library.defaultviewer.options[document.forms.library.defaultviewer.selectedIndex].value
    */
    document.forms.library.imgIds.value = imgIds;
    document.forms.library.docIds.value = docIds;

    document.forms.library.submit();

    //var parameters = "inner=true&id=" + id + "&title=" + title + "&description=" + description + "&author=" + author + "&source=" + source + "&source_url=" + source_url + "&more_info_url=" + more_info_url + "&date_=" + date_ + "&subtitle=" + subtitle + "&posted_by=" + posted_by + "&type=" + type + "&defaultviewer=" + defaultviewer + "&imgIds=" + imgIds + "&docIds=" + docIds;
    //alert(parameters);

    //var r = pruneArrs();

    //setWait("stompbox");

    //makePOSTRequest("/cms/news.php", parameters, 'stompbox', evalContents)
}


function saveFuture() {
    var me = tinyMCE.execCommand('mceRemoveControl', false, 'description');
    //LOOP through imgArr
    var imgIds = compileArrVals(imgArr);
    //LOOP through docArr
    var docIds = compileArrVals(docArr);

    //getForm parameters
    /*var id = document.forms.library.id.value;
    var title = escape(document.forms.library.title.value);
    var description = escape(document.forms.library.description.value);
    var author = document.forms.library.author.value;
    var source = document.forms.library.source.value;
    var source_url = document.forms.library.source_url.value;
    var more_info_url = document.forms.library.more_info_url.value;
    var subtitle = document.forms.library.subtitle.value;
    var date_ = document.forms.library.date_.value;
    var posted_by = document.forms.library.posted_by.value;
    var type = document.forms.library.type.value;
    var defaultviewer = document.forms.library.defaultviewer.options[document.forms.library.defaultviewer.selectedIndex].value
    */
    document.forms.library.imgIds.value = imgIds;
    document.forms.library.docIds.value = docIds;

    document.forms.library.submit();

    //var parameters = "inner=true&id=" + id + "&title=" + title + "&description=" + description + "&author=" + author + "&source=" + source + "&source_url=" + source_url + "&more_info_url=" + more_info_url + "&date_=" + date_ + "&subtitle=" + subtitle + "&posted_by=" + posted_by + "&type=" + type + "&defaultviewer=" + defaultviewer + "&imgIds=" + imgIds + "&docIds=" + docIds;
    //alert(parameters);

    //var r = pruneArrs();

    //setWait("stompbox");
    //makePOSTRequest("/cms/future.php", parameters, 'stompbox', evalContents)
}



function goTopicForm () {
    var choicebox = document.getElementById('choicebox');
    choicebox.style.display = 'none';
    var topicFormbox = document.getElementById('topicform');
    topicFormbox.style.display = 'block';
    setLinkSelected( "topicsnav", "#03a9e3", "brownbold", "#898385", "bold");

}

function chooseObj (id, title, url, on, position) {
    this.id = id;
    this.title = title;
    this.img = new Image();
    this.img.src = url;
    this.position = position;
    this.on = on;
}

var currentPage = 0;
var start = 0;
function drawChoices (dir, type, div, title) {

    var topicFormbox = document.getElementById('topicform');
    topicFormbox.style.display = 'none';
    var choicebox = document.getElementById('choicebox');
    choicebox.style.display = 'block';
    var choosertitle = document.getElementById('choosertitle');
    choosertitle.innerHTML = title;

    //alert("." + whichArr + ".");
    var whArr = null;
    if (type == 'image') {
    whArr = imgArr;
    } else if (type == 'video') {
    whArr = vidArr;
    } else if (type == 'map') {
    whArr = mapArr;
    } else if (type == 'lib') {
    whArr = libArr;
    } else if (type == 'doc') {
    whArr = docArr;
    }

    start = dir * 40;
    var outStr = '';
    var row_open = 0;
    outStr += '<table class="catalog" style="width: 380px;">';
    //for (var th in whArr) {
    for (var j=start;j<whArr.length;j++) {
        if (j == start + 40) {break;}
        if (row_open == 0) {
            outStr += '<tr>\n';
            row_open = 1;
        }
        //alert(show_propss(th, "thumb"));
        outStr += '<td class="assetbox" valign="top">\n';
        outStr += '<div class="assetcontainer" style="width: 75px; margin: 0px; color: #444444; font-size: 10px; ">\n';
        var st = "margin:1px;";
        if (whArr[j].on == 1) {
        st = "margin:1px; border: 2px solid #0000ff;";
        }
        outStr += '<img src="' + whArr[j].img.src + '" width="70" height="70" alt="' + whArr[j].title + '" title="' + whArr[j].title + '"  class="assetimage"  style="' + st +  '" id="' + whArr[j].id + '" />\n';
        //outStr += '<script type="text/javascript">\n';
        //outStr += 'makeClickable(document.getElementById("' + whArr[j].id + '"));\n';
        //outStr += '</script>\n';
        outStr += '</div></td>\n';
        if (((j + 1) % 5) == 0) {
          outStr += '</tr>\n';
          row_open = 0;
        }
    }

    if (row_open) {
       outStr += '<td >&nbsp;</td></tr>\n';
    }

    outStr += '</table>\n';
    //alert(outStr);
    if (whArr.length > 40) {
        var sep = "";
        var pageNAV = "";
        pageNum = 1;
        for (i = 0; i < whArr.length; i += 40) {
            if (i > 0) { sep = " , "; }
            if (start == i) {
                pageNAV += sep + '<span style="font-size: 12px; font-weight: bold;">' + pageNum + '</span>';
            } else {
                pageNAV += sep + '<a  class="bold12" href="javascript:drawChoices(' + (pageNum - 1) + ', \'' + type + '\', \'' + div + '\' , \'' + title + '\');" >' + pageNum + '</a>';
            }
            pageNum++;
        }
        var advPage = '<table cellpadding="0" cellspacing="0" class="catalog" style="width: 380px; margin:5px 0px 0px 15px;">'
        advPage += '<tr style="height: 20px;"><td  style="padding: 0px 0px 0px 5px; text-align: left;">';
         if (dir > 0) {
            advPage += '<a  class="bold12" href="javascript:drawChoices(' + (dir - 1) + ', \'' + type + '\', \'' + div + '\' , \'' + title + '\');" >PREV</a> &nbsp; &nbsp;';
         }
        advPage += '</td><td>' + pageNAV + '</td>';
        advPage += '<td style="text-align: right;">';
        if ((start + 40) <= whArr.length) {
         advPage += '<a  class="bold12" href="javascript:drawChoices(' + (dir + 1) + ', \'' + type + '\', \'' + div + '\' , \'' + title + '\');" >NEXT</a>';
        }
        advPage += '</td></tr></table>';
        outStr = advPage + outStr + advPage;
    }

    var chooserPane = document.getElementById(div);
    chooserPane.innerHTML = outStr;
    for (var j=start;j<whArr.length;j++) {
        if (j == start + 40) {break;}
        var el = document.getElementById(whArr[j].id);
        makeClickable(el);
    }

    setLinkSelected(type + "nav", "#03a9e3", "brownbold", "#898385", "bold");
}


function setButtonState (num, state, arr) {
    //alert(arr.length);
    for (k=0;k<arr.length;k++) {
        //alert (arr[k].id + "::" + num);
        if (arr[k].id == num) {
        arr[k].on = state;
        //alert(arr[k].on);
        break;
        }

    }
}

function makeClickable(item){
    //alert(item);
    if(!item) return;
    item.onmousedown = function(ev){
        //alert(typeof (this));
        //alert(show_propss(this, "obj"));
        //alert(this.style.borderColor);
        if (this.on == 1) {
        this.on = 0;
        if (this.id.indexOf('img') > -1) {
            //imgArr[this.id].on = 0;
            setButtonState (this.id, 0, imgArr);
        } else if (this.id.indexOf('lib') > -1) {
            //libArr[this.id].on = 0;
            setButtonState (this.id, 0, libArr);
        } else if (this.id.indexOf('map') > -1) {
            //mapArr[this.id].on = 0;
            setButtonState (this.id, 0, mapArr);
        } else if (this.id.indexOf('vid') > -1) {
            //vidArr[this.id].on = 0;
            setButtonState (this.id, 0, vidArr);
        }
        this.style.borderColor = "#cccccc";
        this.style.borderWidth = "1px";
        } else {
        this.on = 1;
        //what[item] = 1;
        //alert(this.id);
        if (this.id.indexOf('img') > -1) {
            //imgArr[this.id].on = 1;
            setButtonState (this.id, 1, imgArr);
        } else if (this.id.indexOf('lib') > -1) {
            //libArr[this.id].on = 1;
            setButtonState (this.id, 1, libArr);
        } else if (this.id.indexOf('map') > -1) {
            //mapArr[this.id].on = 1;
            setButtonState (this.id, 1, mapArr);
        } else if (this.id.indexOf('vid') > -1) {
            //vidArr[this.id].on = 1;
            setButtonState (this.id, 1, vidArr);
        }
        this.style.borderColor = "#0000ff";
        this.style.borderWidth = "2px";
        }
    }
}



var currentProject = null;
var currentProjectID;
function setMainProj(which) {
    //alert(which);
    currentProjectID = which;
    currentProject = projectArr[which];
    setWait("stompbox");
    makeRequest("/myprojects.php?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);

}


function setMainProjV(which, where) {
    var nextProj = which.options[which.selectedIndex].value
    currentProjectID = nextProj;
    currentProject = projectArr[nextProj];
    setWait("stompbox");
    //alert(where);
    makeRequest(where + "?inner=true&pridx=" + currentProjectID, "stompbox", evalContents);
}

var sensorProcessing;
var whichSensors = new Array();
function goConditions(){
    if ((typeof(currentBookMark) != "undefined") && currentBookMark ){
        //Loop Through and Turn on any currently defined conditions...
        whichSensors = currentBookMark.conditions.split(",");
        /* EXPERIMENTAL */
        if (whichSensors.length > 0) {
        sensorProcessing = whichSensors.pop();
        sensors.setMapped(sensorProcessing, 1);
        }
    }
}

//changed bookMarkArr to mapArr
function setBookMark (view) {
    currentBookMark = mapArr[view];
    currentBookMarkID = view;
    curTitle = document.getElementById("maintitle");
    if ((typeof(curTitle) != "undefined") && curTitle) {
    curTitle.innerHTML = "&nbsp;&nbsp;" + currentBookMark.title;
    }
    if ((typeof(cachedFunctions)!="undefined") && cachedFunctions) {
        if ((typeof(currentBookMark.conditions) != "undefined") && currentBookMark.conditions) {
            if (currentBookMark.conditions.length > 0) {
                cachedFunctions.push("goConditions();");
            }
        }
    }
    changeLinkHref("mapit","/delta-live/?view="  + view);
    myMap.setView(currentBookMark);
    var vid = document.getElementById("viewid");
    if ((typeof(vid) != "undefined") && vid) {
        vid.value=currentBookMark.id;
        document.forms['bookmark'].viewtitle.value = currentBookMark.title;
        document.forms['bookmark'].viewdescription.value = currentBookMark.description;
    }
}

function updateBlock(what, where) {
    var which = document.getElementById(what);
    if ((typeof(which) != "undefined") && which) {
        if ((typeof(currentProject) != "undefined") && (currentProject != null)) {
        which.innerHTML = currentProject[where];
        }
    }
}

function getInnerHtml(what) {
    var which = document.getElementById(what);
    if ((typeof(which) != "undefined") && which) {
    document.body.innerHTML = "<textarea>" + which.innerHTML + "</textarea>";
    }
}

function editCurrentProject() {
    var editLink = '/catalog/edit_project.php?jnsp=1&id=';
    document.location.href = editLink + currentProject['id'];
}

function printScales (div) {
    var scale = 3500000;
    var resSTR = scale;
    for (i = 0; i < 152; i=i+div) {
        scale = scale / 2;
        resSTR += "::" + scale + "\n";
    }
    var out = document.getElementById('outd');
    out.innerHTML = resSTR;
}

function getScale(x) {
    var max = 3500000;
    var newScale = max * (1 / Math.pow(2,(x / 11)) );
    return newScale;
}

function getKnobPlacement(y) {
    var pow = Math.pow(3500000 / y, 11);
    //var e = Math.exp(1);
    //var ln = Math.pow(e, log(2));
    //return DoLog(pow);
    return Math.ceil(DoLog(pow));
}

function DoLog( y ) {
   //var x = parseFloat(aform.x.value);
   var t = Math.log( y );
   return  t / Math.LN2;
}

function initCookie(){
    var cookieReturn = getCookie("armak_cookie");
    if (cookieReturn == ""){
        setCookie("armak_cookie","visited",365);
        return "fresh";
        }else{
        return "experienced";
        }
}

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 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 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 checkCookie() {
    acceptdatadisclaimer=getCookie('acceptdatadisclaimer');
    if (acceptdatadisclaimer!=null && acceptdatadisclaimer!="") {

        //??
    } else {
        acceptdatadisclaimer='yes';
        if (acceptdatadisclaimer!=null && acceptdatadisclaimer!="") {
        setCookie('acceptdatadisclaimer',acceptdatadisclaimer,60);
        }
    }
}

function acceptCookie() {

    acceptdatadisclaimer='yes';
    if (acceptdatadisclaimer!=null && acceptdatadisclaimer!="") {
    setCookie('acceptdatadisclaimer',acceptdatadisclaimer,60);
    }
    try {
    document.location = document.referrer;
    } catch(e) {
    parent.history.back(1);
    }
}

function verifyCookie() {
    acceptdatadisclaimer=getCookie('acceptdatadisclaimer');
    if (acceptdatadisclaimer!=null && acceptdatadisclaimer!="") {

    } else {
        document.location = "/disclaimer.php";
    }
}

////////////////////////////////////////////
// Parameters:
// - targetDocument is where the tree will be printed into
// - currentElement is the element that we want to print
// - depth is the depth of the current element
//   (it should be 1 for the initial element)
////////////////////////////////////////////
function traverseDOMTree(targetDocument, currentElement, depth)
{
  if (currentElement)
  {
    var j;
    var tagName=currentElement.tagName;
    // Prints the node tagName, such as <A>, <IMG>, etc
    if (tagName)
      targetDocument.writeln("&lt;"+currentElement.tagName+" "+ currentElement.id + " "+ currentElement.name + "&gt;");
    else
      targetDocument.writeln("[unknown tag]");

    // Traverse the tree
    var i=0;
    var currentElementChild=currentElement.childNodes[i];
    while (currentElementChild)
    {
      // Formatting code (indent the tree so it looks nice on the screen)
      targetDocument.write("<BR>\n");
      for (j=0; j<depth; j++)
      {
        // &#166 is just a vertical line
        targetDocument.write("&nbsp;&nbsp;&#166");
      }
      targetDocument.writeln("<BR>");
      for (j=0; j<depth; j++)
      {
        targetDocument.write("&nbsp;&nbsp;&#166");
      }
      if (tagName)
        targetDocument.write("--");

      // Recursively traverse the tree structure of the child node
      traverseDOMTree(targetDocument, currentElementChild, depth+1);
      i++;
      currentElementChild=currentElement.childNodes[i];
    }
    // The remaining code is mostly for formatting the tree
    targetDocument.writeln("<BR>");
    for (j=0; j<depth-1; j++)
    {
      targetDocument.write("&nbsp;&nbsp;&#166");
    }
    targetDocument.writeln("&nbsp;&nbsp;");
    if (tagName)
      targetDocument.writeln("&lt;/"+tagName+"&gt;");
  }
}

////////////////////////////////////////////
// This function accepts a DOM element as parameter and prints
// out the DOM tree structure of the element.
////////////////////////////////////////////
function printDOMTree(domElement, destinationWindow)
{
  // Use destination window to print the tree.  If destinationWIndow is
  //   not specified, create a new window and print the tree into that window
  var outputWindow=destinationWindow;
  if (!outputWindow)
    outputWindow=window.open();

  // make a valid html page
  outputWindow.document.open("text/html", "replace");
  outputWindow.document.write("<HTML><HEAD><TITLE>DOM</TITLE></HEAD><BODY>\n");
  outputWindow.document.write("<CODE>\n");
  traverseDOMTree(outputWindow.document, domElement, 1);
  outputWindow.document.write("</CODE>\n");
  outputWindow.document.write("</BODY></HTML>\n");

  // Here we must close the document object, otherwise Mozilla browsers
  //   might keep showing "loading in progress" state.
  outputWindow.document.close();
}

//-->

<!-- hide from old browsers
  function GetDay(intDay){
    var DayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday",
                         "Thursday", "Friday", "Saturday")
    return DayArray[intDay]
    }

  function GetMonth(intMonth){
    var MonthArray = new Array("January", "February", "March",
                               "April", "May", "June",
                               "July", "August", "September",
                               "October", "November", "December")
    return MonthArray[intMonth]
    }
  function getDateStrWithDOW(){
    var today = new Date()
    var year = today.getYear()
    if(year<1000) year+=1900
    var todayStr = GetDay(today.getDay()) + ", "
    todayStr += GetMonth(today.getMonth()) + " " + today.getDate()
    todayStr += ", " + year
    return todayStr
    }
//-->


/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/

var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}



