<!--

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 replaceInnerContents(url,block,name) {
    var xmlhttp = createXMLHTTPObject();
    var wrapper = document.getElementById(block);
    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {
            if ( name == currentStudy ) {
                wrapper.innerHTML = xmlhttp.responseText;
            }
        }
    }
    xmlhttp.send(null);
}

function clearSelectedList(parent) {
    var children = parent.childNodes;
    for ( var i = 0; i < children.length; i++ ) {
         var 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");
}

function latlonToPixels(lat,lon,imageid,c1,c2,c3,c4) {
    var image = document.getElementById(imageid);
    var pixelwidth = image.width;
    var pixelheight = image.height;
    var point = new Object();

    var xscale = Math.abs(pixelwidth / ( c4 - c2 ));
    var yscale = Math.abs(pixelheight / ( c1 - c3 ));
    point.topoffset = ( c1 - lat ) * yscale ;
    point.leftoffset = ( lon - c2 ) * xscale ;
    //alert("topoffset: " + point.topoffset + ', leftoffset: ' + point.leftoffset);

    //point.topoffset = 250;
    //point.leftoffset = 150;
    return point; 
}

function showQueryMapComment(e) {   
    if ( !e) var event = window.event;
    var block = document.getElementById('querymapcomment');
    posx = 0;
    posy = 0;
    if ( e.pageX || e.pageY ) {
        posx = e.pageX;
        posy = e.pageY;
    } else if (e.clientX || e.clientY ) {
        posx = e.clientX + document.body.scrollLeft;
        posy = e.clientY + document.body.scrollRight;
    }
 
    block.style.top = (posy + 5) + 'px';
    block.style.left = (posx + 3) + 'px';
    block.style.visibility = 'visible';
}

function hideQueryMapComment(event) {
    var querymapcomment = document.getElementById('querymapcomment');
    querymapcomment.style.visibility = 'hidden';
}

function decimalDegreesToDegreesMinutes(lat,lon) {
    var coords = new Object();
    var latsign = 'N';
    var lonsign = 'E';
    if ( lat < 0 ) var latsign = 'S';
    if ( lon < 0 ) var latsign = 'W';
    lat = Math.abs(lat);
    lon = Math.abs(lon);
    min = Math.floor((lat % 180) * .60 );
    sec = Math.round((((lat % 180) * .60 ) - min) * 100);
    coords.latitude = Math.floor(lat) + '&deg; ' + min + '.' + sec + '&lsquo; ' + latsign;
    min = Math.floor((lon % 180) * .60 );
    sec = Math.round((((lon % 180) * .60 ) - min) * 100);
    coords.longitude = Math.floor(lon) + '&deg; ' + min + '.' + sec + '&lsquo ' + lonsign;
    return coords;
}

function showSiteDetails(e) {
    if ( !e ) var e = window.event;
    var study = (e.target) ? e.target : e.srcElement;
        study = study.parentNode;
    var name = study.id.split(',');

    var url = "request.php?fillin=metadata&project=" + name[0] + "&study=" + name[1];

    //alert("url to send is " + url);
    var sitedetails = document.getElementById('sitedetails');
    posx = 0;
    posy = 0;

    if ( e.pageX || e.pageY ) {
        posx = study.offsetLeft;
        posy = study.offsetTop;
    } 
    else if (e.clientX || e.clientY ) {
        //posx = e.clientX + document.body.scrollLeft;
        //posy = e.clientY + document.body.scrollTop;
        posx = study.offsetLeft;
        posy = study.offsetTop;
    }

    sitedetails.style.top = (posy + 18) + 'px';
    sitedetails.style.left = (posx + 15) + 'px';
    //alert('position is ' + posy + ',' + posx);
    sitedetails.innerHTML = 'loading ...';
    onSiteDetailsRetrieval(); 
    currentStudy = name[1];
    replaceInnerContents(url,'sitedetails',name[1]);
    return false;
}
function onSiteDetailsRetrieval() {
    var sitedetails = document.getElementById('sitedetails');
    sitedetails.style.visibility = 'visible';
}

function hideSiteDetails(event) {
    var sitedetails = document.getElementById('sitedetails');
    sitedetails.style.visibility = 'hidden';
}
var region = "";
function showAnimation(e) {
    if ( !e) var event = window.event;
    if (! region ) return;
    var measurement = ((e.target) ? e.target : e.srcElement).id.replace(/^animate-/,"").replace(' ','_');
    var animation = document.getElementById('bightmap');
    var stopanimation = document.getElementById('stopanimation');
    var map = document.getElementById('GmapC');
    var loading = document.getElementById('loadingAnim');
    var legend = document.getElementById('LegendButton');
    legend.style.display = 'none';
    loading.style.display = 'block';
    animation.style.display = 'none';
    stopanimation.style.display = 'none';
    animation.onError=hideAnimation();
    animation.onLoad=runAnimation();
    animation.src="../../plots/movies/cast-" + region.replace(/\//,"") + "-" + measurement + "-5m-interpolated.gif";
    map.style.display = 'none';
}

function runAnimation() {
    var loading = document.getElementById('loadingAnim');
    var stopanimation = document.getElementById('stopanimation');
    var animation = document.getElementById('bightmap');
    loading.style.display = 'none';
    animation.style.display = 'block';
    stopanimation.style.display = 'block';
}


function hideAnimation() {
    var animation = document.getElementById('bightmap');
    var map = document.getElementById('GmapC');
    var stopanimation = document.getElementById('stopanimation');
    var legend = document.getElementById('LegendButton');
    legend.style.display = 'block';
    map.style.display = 'block';
    animation.style.display = 'none';
    stopanimation.style.display = 'none';
}
function showRegion(e) {
    if ( !e) var event = window.event;
    var target = ((e.target) ? e.target : e.srcElement)
    var oldregion = region;
    region = target.id.replace(/region-/,"");
    selectListElement(target);

    if ( oldregion != "" ) {
        target = document.getElementById("measurements-" + oldregion);
        target.style.display = 'none';
    }
    target = document.getElementById("measurements-" + region);
    target.style.display = 'block';
    recenter(e,region);
}

//-->
