<!--

var currentStudy=null;

function createXMLHTTPObject() {
    // Create an xmlhttp object
    var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
     try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
	try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
	   xmlhttp = false;
	}
     }
    @end @*/

    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}




function getSelectedOption(element) {
    //alert("Getting option for " + element.id);
    for(var i = 0; i < element.options.length; i++) {
	 if (element.options[i].selected) {
             //if ( element.id == "study" ) alert("Selected option " + element.options[i].value);
  	     return element.options[i].value;
         }
    }
    return "";
}

function getRemoteText(url) {
    var contents = "";
    var xmlhttp = createXMLHTTPObject();
    xmlhttp.open("GET",url,false);
    xmlhttp.send(null);
    if ( xmlhttp.status == 200 ) {
        contents = xmlhttp.responseText;
    } else {
        alert("FIXME: ajax request failed!");
    }
    return contents;
}


function replaceInnerContents(url,block,asynchronous,execAfter) {
    var xmlhttp = createXMLHTTPObject();
    var wrapper = document.getElementById(block);
    if ( asynchronous ) {
        xmlhttp.open("GET",url,true);
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4) {
                wrapper.innerHTML = xmlhttp.responseText;
                if ( execAfter ) eval(execAfter);
            }
        }
        xmlhttp.send(null);
    } else {
        xmlhttp.open("GET",url,false);
        xmlhttp.send(null);
        if ( xmlhttp.status == 200 ) {
            wrapper.innerHTML = xmlhttp.responseText;
            if ( execAfter ) eval(execAfter);
        } else {
            alert("FIXME: ajax request failed!");
        }
    }
}

function clearSelectedList(parent) {
    children = parent.childNodes;
    for ( var i = 0; i < children.length; i++ ) {
         child = children[i];
         if ( child.nodeType == 1 ) {
             child.removeAttribute("class");
            
         }
    }

}

function selectListElement(elem) {
    if ( ! elem ) {
        alert("No list element provided to select.");
        return;
    }
    clearSelectedList(elem.parentNode.parentNode);
    elem.parentNode.setAttribute("class","selected");
}

var metadata = "project";
function showProjectMetadata(event) {
    var rd = document.getElementById("rd").getAttribute("value");
    var project = document.getElementById("project").getAttribute("value");
    var url = "request.php?action=editProjectMetadata&project=" + project + "&rd=" + rd;
    replaceInnerContents(url,'metadataContainer',false);
    return false;
}

function showStationMetadata(event) {
    var project = "SIO ASBS Monitoring Program";

    if ( typeof(event) != 'string' ) {
        if ( !event ) var event = window.event;
        var station = (event.target) ? event.target : event.srcElement; 
        station = station.id.replace(/^coll-.*-(.*)-.*$/,"$1");
    } else {
        var station = event;        
    }

    var rd = document.getElementById("rd").getAttribute("value");
    var url = "request.php?action=editStationMetadata&project=" + project + "&sta=" + station + "&rd=" + rd;
    replaceInnerContents(url,'metadataContainer',false);
    return false;
}


function showStationDetails(station) {
    var project = "SIO ASBS Monitoring Program";
    currentsta = station;
    var url = "request.php?action=showStationDetails&project=" + project + "&sta=" + station;
    replaceInnerContents(url,'stationdetails',true);
    document.getElementById("stationdetails").style.display = "block";
    return false;
}

function getStationInformation(station) { 
    var project = "SIO ASBS Monitoring Program";
    var url = "request.php?action=showWQStationInformationIW&project=" + project + "&sta=" + station;
    return getRemoteText(url);
}

function getFieldObservations(station) { 
    var project = "SIO ASBS Monitoring Program";
    var url = "request.php?action=showWQFieldObservationsIW&project=" + project + "&sta=" + station;
    return getRemoteText(url);
}


function hideStationDetails() {
    currentsta = "";
    document.getElementById("stationdetails").style.display="none";
}

function showCollectionMetadata(event) {
    var rd = document.getElementById("rd").getAttribute("value");
    if ( typeof(event) != 'string' ) {
        if ( !event ) var event = window.event;
        var target = (event.target) ? event.target.id : event.srcElement.id; 
    } else {
        var target = event;
    }
    var project = "SIO ASBS Monitoring Program";

    station = target.replace(/^coll-.*-(.*)-.*$/,"$1");
    chan = target.replace(/^coll-.*-.*-(.*)$/,"$1");
    start = target.replace(/^coll-(.*)-.*-.*$/,"$1");
 
    var url = "request.php?action=editCollectionMetadata&project=" + project + "&sta=" + station + "&analyte=" + chan + "&start=" + start + "&rd=" + rd;
    replaceInnerContents(url,'metadataContainer',false,'readTimes();');
    return false;
}

var loff = 55;
var roff = 54;
var pwidth = 291;
var times = null;
var firsttime = null;
var lasttime = null;
var tspan = null;
var ns = null;
var timemarker = 0;
var mwidth = 7;
var halfmwidth=4;

function readTimes() {
    if ( document.getElementById("plotwrapper") ) {
        times = document.getElementById("plottimes").innerHTML.split(",");
        nicetimes = document.getElementById("niceplottimes").innerHTML.split(",");
        values = document.getElementById("plotvalues").innerHTML.split(",");
        ns = times.length;
        firsttime = times[0];
        lasttime = times[ns-1];
        tspan = lasttime - firsttime;
        timemarker = 0;
    }
}


function moveToTime( ts ) {
    if ( ! ns ) {
        alert("No times loaded!");
        return;
    }
    var plotmarker = document.getElementById("plotmarker");
    var newloc = loff + Math.round(( ( (ts - firsttime ) / tspan ) * pwidth)) - halfmwidth;
    var newwidth = Math.min(newloc-loff, Math.min(pwidth+loff-newloc,mwidth) );
    if ( newloc < loff ) {
        newloc = loff;
    }
    plotmarker.style.width = newwidth + "px";
    plotmarker.style.left = newloc + "px";
}

function selectNextSample(event) {
    if ( ! ns ) readTimes();
    if ( (timemarker+1) >= ns ) {
        //alert("At last sample");
        return false;
    }
    moveToTime(times[timemarker+1]);     
    timemarker = timemarker + 1;
    var timestmt = document.getElementById("currentsampletime");
    timestmt.innerHTML = nicetimes[timemarker];

    var smplstmt = document.getElementById("currentsample");
    smplstmt.innerHTML = values[timemarker];
    return false;
}

function selectPreviousSample(event) {
    if ( ! ns ) readTimes();
    if ( timemarker <= 0 ) {
        //alert("At first sample");
        return false;
    }
    moveToTime(times[timemarker-1]);     
    timemarker = timemarker - 1;

    var timestmt = document.getElementById("currentsampletime");
    timestmt.innerHTML = nicetimes[timemarker];

    var smplstmt = document.getElementById("currentsample");
    smplstmt.innerHTML = values[timemarker];
    return false;
}

function updateBookmarkLink(newurl) {
    document.getElementById("bookmarklink").href = newurl;
}

function loadWQStationPlot(event) {
    var project = "SIO ASBS Monitoring Program";

    if ( typeof(event) != 'string' ) {
        if ( !event ) var event = window.event;
        var station = (event.target) ? event.target : event.srcElement; 
        station = station.id.replace(/^sta_anchor_(.*)$/,"$1");
    } else {
        var station = event;        
    }

    var stationplot = document.getElementById("wqstationplot");
    stationplot.src="../../plots/collections/" + project + "/" + station + "-combined_collection.png";
    return false;
}

function openInNewWindow(event) {
    if ( !event ) var event = window.event;
    var target = (event.target) ? event.target : event.srcElement; 
    var newloc = target.href;
    newwindow=window.open(newloc,'Nearshore GIS','height=700,width=700');
    if (window.focus) {newwindow.focus()}
    return false;
}

//-->
