isDOM=document.getElementById?1:0; // DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera=(window.opera && isDOM)?1:0; // Opera 5+
isMSIE=(document.all && document.all.item && !isOpera)?1:0; // IE 4+
isMSIE5=(isDOM && isMSIE)?1:0; // IE 5+
isMozilla=(isDOM && navigator.appName=="Netscape")?1:0;

function controllerAddOption(wnd, widget, widgetID, widgetName)
{
newElem=wnd.document.createElement("OPTION");
newElem.text=widgetName;
newElem.value=widgetID;
	for(i=0; i<widget.options.length; i++)
	{
		if(widget.options[i].text>widgetName)
		{
		widget.options.add(newElem, i);
		// widget.options.selectedIndex=i;
		break;
		}
	}
	if(i==widget.options.length)
	{
	widget.options.add(newElem, i);
	// widget.options.selectedIndex=i;
	}
}


function controllerRemoveOption(widget, widgetID)
{
	for(i=0; i<widget.options.length; i++)
	{
		if(widget.options[i].value==widgetID)
		{
		widget.remove(i);
		widget.selectedIndex=i;
		break;
		}
	}
}


function controllerRemoveOptions(widget)
{
	while(widget.options.length)
	{
	widget.remove((widget.options.length-1));
	}
}


function controllerGetWidgetType(widget)
{
var type="";
	if(isDOM)
	{
	eval('type=document.getElementById("' + widget + '").type;');
	}
	else if(isMSIE)
	{
	eval('type=document.all.' + widget + '.type;');
	}
return type;
}


function controllerSetFocus(widget)
{
var type;
var range;
type=controllerGetWidgetType(widget);
	switch(type)
	{
	case "text":
		if(isMSIE)
		{
		eval('range=document.getElementById("' + widget + '").createTextRange();');
		range.moveEnd("textedit");
		range.collapse(false);
		range.select();
		}
	}
document.getElementById(widget).focus();
}


function controllerCreateXMLHTTPObject()
{
var request = null;
/*
	if(isOpera)
	{
	return request;
	}
*/
	if(!request)
	try
	{
	request=new ActiveXObject('Msxml2.XMLHTTP');
	} catch(e){}
	if(!request)
	try
	{
	request=new ActiveXObject('Microsoft.XMLHTTP');
	} catch (e){}
	if(!request)
	try
	{
	request=new XMLHttpRequest();
	} catch (e){}
return request;
}


function controllerXMLHTTPRequest(method, url, data, callback)
{
var request = controllerCreateXMLHTTPObject();
if(!request) return false;
request.onreadystatechange = function()
{
	if(request.readyState == 4 && callback)
	{
	callback(request);
	}
};
request.open(method, url, true);
request.send(data);
return true;
}