
<!-- script -->
<!--
function CSGI(form, object)
{
	this.form		= form;
	this.object		= object;

	CSGI.prototype.action		= CSGI_action;
	CSGI.prototype.target		= CSGI_target;
	CSGI.prototype.submit		= CSGI_submit;
	CSGI.prototype.setVar		= CSGI_setVar;

	CSGI.prototype.addMethod	= CSGI_addMethod;
	CSGI.prototype.editKey		= CSGI_editKey;
	CSGI.prototype.queryMetadata= CSGI_queryMetadata;
	CSGI.prototype.setContext	= CSGI_setContext;
	CSGI.prototype.pan			= CSGI_pan;
	CSGI.prototype.centerMap	= CSGI_centerMap;
	CSGI.prototype.zoomFeature	= CSGI_zoomFeature;
	CSGI.prototype.queryFeature	= CSGI_queryFeature;
	CSGI.prototype.featureInfo	= CSGI_featureInfo;
	CSGI.prototype.setSize		= CSGI_setSize;
	CSGI.prototype.updateKey	= CSGI_updateKey;
	CSGI.prototype.addKey		= CSGI_addKey;

	CSGI.prototype.csMode			= CSGI_csMode;
	CSGI.prototype.ssMode			= CSGI_ssMode;

	CSGI.prototype.setControlMode	= CSGI_setControlMode;
	CSGI.prototype.setActiveLayer	= CSGI_setActiveLayer;

	CSGI.prototype.updateFilterLayer	= CSGI_updateFilterLayer;
}


function CSGI_setVar(name, value)
{
	var		element;

	if((element = elementByName(this.form, name)) == null)
		return;

	element.value = value;
}

function CSGI_action(action)
{
	this.form.action = action;
}

function CSGI_target(target)
{
	this.form.target = target;
}

function CSGI_submit()
{
	var		date;

	date = new Date();

	this.setVar("timestamp", date.getTime());
	this.form.submit();
}

function CSGI_addMethod(action)
{
	var		method, label, list;

	if((method = elementByName(this.form, label = this.object + ".method")) == null)
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	if(method.value == "")
	{
		/* No methods been set yet. */
		method.value	= action;
	}
	else
	{
		/* Check is the method has already been set. */

		list = method.value.split(",");
		for(listitem = 0; listitem < list.length; listitem++)
		{
			if(list[listitem] == action)
				return;		// Already set ... drop out.
		}

		method.value = method.value + "," + action;
	}
}


		/*
		 * editkey
		 */

function CSGI_editKey(layer_list)
{
	var		label, method, layer;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((layer = elementByName(this.form, label = this.object + ".editkey.layer")) == null))
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	method.value	= "editkey";
	layer.value		= layer_list;
}


		/*
		 * updatekey
		 */

function CSGI_updateKey(layer_list, image_list, display_list, filter_list, name_list)
{
	var		label, method, layer, symbol, display, filter, name;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((layer = elementByName(this.form, label = this.object + ".updatekey.layer")) == null) ||
	   ((symbol = elementByName(this.form, label = this.object + ".updatekey.symbol")) == null) ||
	   ((display = elementByName(this.form, label = this.object + ".updatekey.display")) == null) ||
	   ((name = elementByName(this.form, label = this.object + ".updatekey.name")) == null) ||
	   ((filter = elementByName(this.form, label = this.object + ".updatekey.filter")) == null))
	{
		alert("CSGI.updateKey(): " + label + " not found.");
		return;
	}

	method.value	= "updatekey";

	layer.value		= layer_list;
	symbol.value	= image_list;
	display.value	= display_list;
	filter.value	= filter_list;
	name.value		= name_list;
}


		/*
		 * addkey
		 */

function CSGI_addKey(layer_list)
{
	var		label, method, layer;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((layer = elementByName(this.form, label = this.object + ".addkey.layer")) == null))
	{
		alert("CSGI.addKey(): " + label + " not found.");
		return;
	}

	method.value	= "addkey";
	layer.value		= layer_list;
}


		/*
		 * querymetadata
		 */

function CSGI_queryMetadata(layer_list)
{
	var		label, method;

	if((method = elementByName(this.form, label = this.object + ".method")) == null)
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	method.value	= "querymeta";
}


		/*
		 * setContext
		 */

function CSGI_setContext(proj, x1, y1, x2, y2)
{
	var		label, method, extent, projection;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((extent = elementByName(this.form, label = this.object + ".setcontext.extent")) == null) ||
	   ((projection = elementByName(this.form, label = this.object + ".setcontext.projection")) == null))
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("setcontext");
	extent.value		= x1 + "," + y1 + "," + x2 + "," + y2;
	projection.value	= proj;
}


		/*
		 * pan
		 */

function CSGI_pan(dx, dy)
{
	var		label, method, pan;


	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((pan = elementByName(this.form, label = this.object + ".pan")) == null))
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("pan");

	pan.value = dx + "," + dy;
}


		/*
		 * zoom
		 */

function CSGI_centerMap(mag, xpt, ypt)
{
	var		label, method, factor;

	if((factor = elementByName(this.form, label = this.object + ".center.factor")) == null)
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("center");

	if(xpt && ypt)
		factor.value		= mag + "," + xpt + "," + ypt;
	else
		factor.value		= mag;
}


		/*
		 * zoomFeature
		 */

function CSGI_zoomFeature()
{
	var		label, method, zoom;

	this.addMethod("zoomfeature");
}


		/*
		 * queryFeature
		 */

function CSGI_queryFeature(x, y)
{
	var		label, method, query;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((query = elementByName(this.form, label = this.object + ".queryfeature")) == null))
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("queryfeature");
	query.value = x + "," + y;
}


		/*
		 * featureInfo
		 */

function CSGI_featureInfo()
{
	var		label, method, zoom;

	this.addMethod("featureinfo");
}



		/*
		 * csMode
		 */

function CSGI_csMode(layer)
{
	var		label, layerelem;

	if((layerelem = elementByName(this.form, label = this.object + ".csmode.layer")) == null)
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("csmode");
	layerelem.value = layer;
}

function CSGI_ssMode()
{
	var		label, method, zoom;

	this.addMethod("ssmode");
}


		/*
		 * setSize
		 */

function CSGI_setSize(width, height)
{
	var		label, method, mapsize;

	if(((method = elementByName(this.form, label = this.object + ".method")) == null) ||
	   ((mapsize = elementByName(this.form, label = this.object + ".setmapsize")) == null))
	{
		alert("CSGI.editKey(): " + label + " not found.");
		return;
	}

	this.addMethod("setmapsize");

	mapsize.value = width + "," + height;
}


function CSGI_setControlMode(mode)
{
	var		label, control;

	if((control = elementByName(this.form, label = this.object + ".mode")) == null)
	{
		alert("CSGI.setControlMode(): " + label + " not found.");
		return;
	}

	control.value = mode;
}


function CSGI_setActiveLayer(layer)
{
	var		label, active;

	if((active = elementByName(this.form, label = this.object + ".setactivelayer")) == null)
	{
		alert("CSGI.setActiveLayer(): " + label + " not found.");
		return;
	}

	this.addMethod("setactivelayer");

	active.value = layer;
}


function CSGI_updateFilterLayer(layer, name, mode, value)
{
	var		label;
	var		layer_elem, name_elem, mode_elem, value_elem;

	if(((layer_elem = elementByName(this.form, label = this.object + ".setfilter.layer")) == null) ||
	   ((name_elem = elementByName(this.form, label = this.object + ".setfilter.name")) == null) ||
	   ((mode_elem = elementByName(this.form, label = this.object + ".setfilter.mode")) == null) ||
	   ((value_elem = elementByName(this.form, label = this.object + ".setfilter.value")) == null))
	{
		alert("CSGI.updateFilterLayer(): " + label + " not found.");
		return;
	}

	this.addMethod("setFilter");

	layer_elem.value	= layer;
	name_elem.value		= name;
	mode_elem.value		= mode;
	value_elem.value	= value;
}

//-->
<!-- /script-->
