<head><title>scheduling.html</title></head>
<script src=../window.js></script>
<script src=../examples.js></script>

<body>

<input value="Send Query" type=button onclick="submitAll()">
<br>
<br>
Enter filter:
<input type=text id="filterexpr">

<script>

w = new win(50,100,700,400,"query window","querywindow.html")


function submitAll() {
    s1.setVar("map_countries_class_color",
        Math.round(Math.random() * 255) + " "  +
        Math.round(Math.random() * 255) + " "  +
        Math.round(Math.random() * 255)
    ) 
	var queryString = document.getElementById("filterexpr").value
	if (queryString != "" ) s2.setVar("qstring",queryString)
	else s2.setVar("qstring","/.*/")
    s2.submit()
	s5.schedule()
	s5.scheduleAfter(new Array(s3,s4))
}

function displayMap(s) {
}

function displayAll() {
    var mapimg = w.contentWindow.document.getElementsByTagName("img")[0]
    var mapurl = s3.getVar("img")
    mapimg.src = mapurl
	var windowSpan = w.contentWindow.document.getElementsByTagName("span")[0]
	var extentSpan = w.contentWindow.document.getElementsByTagName("span")[1]
	var serverFrameBody =s4.contentWindow.document.body
	windowSpan.innerHTML = serverFrameBody.innerHTML
	extentSpan.innerHTML = "Returned extent: " + s3.getVar("mapext")
}

function processQuery(s) {
	var tbl = s.contentWindow.document.getElementsByTagName("table")[0]
	minx = miny = Number.POSITIVE_INFINITY
	maxx = maxy = Number.NEGATIVE_INFINITY
	for (var i=1;i<tbl.rows.length;i++) {
		var r = tbl.rows[i].cells[1].innerHTML.split(" ")
		for (var j=0;j<4;j++) r[j] = parseInt(r[j])
		if (r[0]<minx) minx = r[0]
		if (r[1]<miny) miny = r[1]
		if (r[2]>maxx) maxx = r[2]
		if (r[3]>maxy) maxy = r[3]
	}
	s1.setVar("mapext",minx + " " + miny + " " + maxx + " " + maxy)
	s1.submit()
}

s1 = w.addServerFrame()
s1.setServerURL(MSURL)
s1.setVar("map",MSMAP)

s2 = w.addServerFrame()
s2.setServerURL(MSURL)
s2.setVar("map",MSMAP)
s2.setVar("mode","itemnquery")
s2.setVar("qlayer","countries")
s2.setVar("qitem","NAME")

s3 = w.addServerFrame()

s4 = w.addServerFrame()
s4.setExecOnReturn(processQuery)

s1.setTarget(s3)
s2.setTarget(s4)


s5 = new serverFrame()
s5.setExecOnReturn(displayAll)

</script>
</body>