ns4 = (document.layers) ? true : false;
ie = (document.all) ? true : false;
ns6 = (window.navigator.userAgent.toLowerCase().match("gecko")) ? true : false;
	
var i = 1;
var schicht = "layer";

var newWin = null;
function popup(url, windowtype, strWidth, strHeight) {
	if (newWin != null && !newWin.closed)
		newWin.close();
	var winOptions="";
	if (windowtype=="fixed")
		winOptions="resizable=0,width="+strWidth+",height="+strHeight;
	if (windowtype=="flex")
		winOptions="scrollbars,"+
	"resizable,width="+strWidth+",height="+strHeight;
	newWin = window.open(url, 'newWin', winOptions);
	newWin.focus();
}

function newWindow(url, windowname, breite, hoehe) {
	fenster=window.open(url,windowname,"menubar=0,status=0,location=0,width="+breite+",height="+hoehe+",toolbar=0,scrollbars=0,resizable=1");
	//in some browsers yes or no do not work correctly, they need to be substituted by 1 for yes and zero for no; status=no == status=0
	fenster.focus();  //doesn't work in IE, so popupwindow has also it's own focus function
//	alert("newWindow: " + fenster);
	return fenster;
}

function popup_window(url, windowname, breite, hoehe) {
//	 form = document.getElementById('mapform');
	 fenster=window.open(url,windowname,"menubar=0,status=0,location=0,width="+breite+",height="+hoehe+",toolbar=0,scrollbars=1,resizable=1");
	 fenster.focus();
//	alert("popup_window: " + fenster);
//	 form.target = windowname;
//	 return fenster;
}

function popup_animation(url, windowname, breite, hoehe) {
//	 form = document.getElementById('mapform');
	 fenster=window.open(url,windowname,"menubar=0,status=0,location=0,width="+breite+",height="+hoehe+",toolbar=0,scrollbars=0,resizable=1");
	 fenster.focus();
//	 form.target = windowname;
//	 return fenster;
}

function popup_description(url, windowname, breite, hoehe) {
//	 form = document.getElementById('mapform');
	 fenster=window.open(url,windowname,"menubar=0,status=0,location=0,width="+breite+",height="+hoehe+",toolbar=0,scrollbars=0,resizable=1");
	 fenster.focus();
//	 form.target = windowname;
//	 return fenster;
}

function changeImages() 
{
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function newImage(arg) 
{
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

var preloadFlag = false;
function preloadImages() 
{
	if (document.img) {
		zoomin1 = newImage("/public/data/_buttons/zoomin1.gif");
		zoomin2 = newImage("/public/data/_buttons/zoomin2.gif");
		zoomout1 = newImage("/public/data/_buttons/zoomout1.gif");
		zoomout2 = newImage("/public/data/_buttons/zoomout2.gif");
		pan1 = newImage("/public/data/_buttons/pan1.gif");
		pan2 = newImage("/public/data/_buttons/pan2.gif");
		info1 = newImage("/public/data/_buttons/info1.gif");
		info2 = newImage("/public/data/_buttons/info2.gif");
		fullextent1 = newImage("/public/data/_buttons/fullextent1.gif");
		fullextent2 = newImage("/public/data/_buttons/fullextent2.gif");
		refresh1 = newImage("/public/data/_buttons/refresh1.gif");
		refresh2 = newImage("/public/data/_buttons/refresh2.gif");
		download1 = newImage("/public/data/_buttons/download1.gif");
		download2 = newImage("/public/data/_buttons/download2.gif");
		preloadFlag = true;
	}
}

function verify_layers() 
{
	form = document.forms['mapform'];
//	alert("verify_layers: " + form.mode.value);
	if (form.mode.value == "query") {
//		alert("verify_layers: " + form.mode.value);
		newWindow('','query_result',querymap_sizex,querymap_sizey);
	}
	else {
		if (document.layers) {
			var wait_layer = document.waitmessage;
			if (wait_layer != null) {
				wait_layer.visibility = 'show';
			}
		} else if (document.all) {
			var wait_layer = document.all.waitmessage;
			if (wait_layer != null) {
				wait_layer.style.visibility = 'visible';
			}
		} else if (document.getElementById) {
			var wait_layer = document.getElementById("waitmessage");
			if (wait_layer != null) {
				wait_layer.style.visibility = 'visible';
			}
		}
	}
	return true;
}

function update_map() 
{
	form = document.forms['mapform'];
	if (form.mode.value == "browse" && form.zoomdir.value != 0) 
		form.zoomdir.value = 0;
	else
		form.mode.value = "browse";
	form.target = "_top";
	form.imgxy.value = imgxy;
    if (verify_layers()) form.submit();
}

function zoomfull() 
{
	form = document.forms['mapform'];
	form.mode.value="browse";
	form.mapext.value=fullextent;
	form.imgbox.value = "-1 -1 -1 -1";
	form.imgxy.value = imgxy;
	form.target = "_top";
	if (verify_layers()) form.submit();
}

function pan(x) 
{
	form = document.forms['mapform'];
	pf = 3; // pan factor
	form.mapext.value="";
	form.mode.value="browse";
	form.target = "_top";
	switch (x) {
	case "n" :
		form.imgxy.value = mw/2+" "+mh/pf;	
		break;
	case "s" :
		form.imgxy.value = mw/2+" "+(mh-mh/pf);		
		break;
	case "w" :
		form.imgxy.value = mw/pf+" "+mh/2;		
		break;
	case "e" :
		form.imgxy.value = (mw-mw/pf)+" "+mh/2;		
		break;
	case "ne" :
		form.imgxy.value = (mw-mw/pf)+" "+mh/pf;	
		break;
	case "nw" :
		form.imgxy.value = mw/pf+" "+mh/pf;	
		break;
	case "se" :
		form.imgxy.value = (mw-mw/pf)+" "+(mh-mh/pf);	
		break;
	case "sw" :
		form.imgxy.value = (mw/pf)+" "+(mh-mh/pf);	
		break;
	default :
		break;
	}
	//alert(form.imgxy.value);
	form.zoomdir.value="0";
	if (verify_layers()) form.submit();
}

function changetools() 
{
	form = document.forms['mapform'];
	//form.map.value=currentmapfile;
	switch (changetools.arguments[0])
	{
	case 1:
		changeImages('zoomin','/public/data/_buttons/zoomin2.gif');
		changeImages('zoomout','/public/data/_buttons/zoomout1.gif');
		changeImages('pan','/public/data/_buttons/pan1.gif');
		changeImages('query','/public/data/_buttons/info1.gif');
		form.mode.value="browse";
		form.target = "_top";
		form.zoomdir.value = 1;
		break;
	case -1:
		changeImages('zoomin','/public/data/_buttons/zoomin1.gif');
		changeImages('zoomout','/public/data/_buttons/zoomout2.gif');
		changeImages('pan','/public/data/_buttons/pan1.gif');
		changeImages('query','/public/data/_buttons/info1.gif');
		form.mode.value="browse";
		form.zoomdir.value = -1;
		form.target = "_top";
		break;
	case 0:
		changeImages('zoomin','/public/data/_buttons/zoomin1.gif');
		changeImages('zoomout','/public/data/_buttons/zoomout1.gif');
		changeImages('pan','/public/data/_buttons/pan2.gif');
		changeImages('query','/public/data/_buttons/info1.gif');
		form.mode.value="browse";
		form.zoomdir.value = 0;
		form.target = "_top";
		break;
	case 2:
		changeImages('zoomin','/public/data/_buttons/zoomin1.gif');
		changeImages('zoomout','/public/data/_buttons/zoomout1.gif');
		changeImages('pan','/public/data/_buttons/pan1.gif');	
		changeImages('query','/public/data/_buttons/info2.gif');
		form.mode.value="query";
		form.target = "query_result";
		form.zoomdir.value = 0;
		break;
	}
}

function selectMapSize(obj)
{
	size = obj[obj.selectedIndex].value;
	if (size != "")
	{
		form = document.forms['mapform'];
		comma = size.indexOf( " " );
		width = size.substr( 0, comma );
		height = size.substr( comma + 1 );

		form.zoomdir.value = 0;
		form.target = "_top";
		form.imgxy.value = width/2 + " " + height/2;
		form.mapext.value = "";
		form.mode.value="browse";
		if (verify_layers()) 
			form.submit();
	}
}

function addDefault(obj)
{
	var i = obj.length;
	obj[i] = new Option("");
	obj[i].value = "default";
	obj.selectedIndex = i;
}

function selectAttribute(obj)
{
    value = obj[obj.selectedIndex].value;
	if (value != "")
	{
		form = document.forms['mapform'];

		form.zoomdir.value = 0;
		form.mapext.value = "";
		form.imgxy.value = "";
		form.mode.value="browse";
		form.target = "_top";
		if (value == "benefits") {
			form.action = "../data/benefits/benefits.html"
		}
		else {
			form.action = "/cgi-" + form.security.value + "/" + value + ".cgi"
		}
		if (null != form.scenario) {
			addDefault(form.scenario);
		}
		if (null != form.layer0) {
			addDefault(form.layer0);
		}
		resetSelectedItem(form.layer);
		resetSelectedItem(form.layer1);
		resetSelectedItem(form.layer2);
		if (verify_layers()) 
			form.submit();
	}
}

function selectLayer(obj)
{
	value = obj[obj.selectedIndex].value;
	if (value != "")
	{
		form = document.forms['mapform'];

		form.zoomdir.value = 0;
		form.mapext.value = "";
		form.imgxy.value = "";
		form.mode.value="browse";
		form.target = "_top";
		if (verify_layers()) 
			form.submit();
	}
}

function selectScenario(obj)
{
	value = obj[obj.selectedIndex].value;
	if (value != "")
	{
		form = document.forms['mapform'];

		form.zoomdir.value = 0;
		form.mapext.value = "";
		form.imgxy.value = "";
		form.mode.value="browse";
		form.target = "_top";
//		if (null != form.layer0) {
//			form.layer0.selectedIndex = -1;
//		}
		if (verify_layers()) 
			form.submit();
	}
}

function resetSelectedItem(obj) 
{
	// This if statment is needed if no items are displayed
	if (obj) {
	// This if statement is needed if more then one item is displayed.
		if (obj.length) {
			for (i = 0; i < obj.length; i++) {
				if (obj[i].checked) {
					obj[i].checked = 0;
				}
			}
		} else if (obj.checked) {
			// If statement is needed if only one item is displayed
			obj.checked = 0;
		}
	}
}

function selectModel(obj)
{
	value = obj[obj.selectedIndex].value;
	if (value != "")
	{
		form = document.forms['mapform'];

		form.mapext.value = "";
		form.imgext.value = "";
		form.imgxy.value = "";

		form.zoomdir.value = 0;		
		form.mode.value="browse";
		form.target = "_top";
		if (value == "benefits") {
			form.action = "../data/benefits/benefits.html"
		}
		else {
			form.action = "/cgi-" + form.security.value + "/" + value + ".cgi"
//			form.action = "/cgi-" + form.security.value + "/" + form.attribute.value + ".cgi"
		}
		if (null != form.attribute) {
			addDefault(form.attribute);
		}
		if (null != form.scenario) {
			addDefault(form.scenario);
		}
		if (null != form.layer0) {
			addDefault(form.layer0);
		}
		resetSelectedItem(form.layer);
		resetSelectedItem(form.layer1);
		resetSelectedItem(form.layer2);
		if (verify_layers()) 
			form.submit();
	}
}

// get current scenario selection (for animation)
function get_scenario()
{
	form = document.forms['mapform'];
	return form.scenario.value
}
// get current attribute selection (for animation)
 function get_attribute()
{
	form = document.forms['mapform'];
	return form.attribute.value
}

