
function doOnMouseDown( e )
{
	var i;

	for ( i = 0; i < ecs__onMouseDown.length; i++ )
	{
		ecs__onMouseDown[ i ]( e );
	}

	if ( ECS__NS )
	{
		routeEvent( e );
	}
}


function doOnMouseMove( e )
{
	var i;

	for ( i = 0; i < ecs__onMouseMove.length; i++ )
	{
		ecs__onMouseMove[ i ]( e );
	}

	if ( ECS__NS )
	{
		routeEvent( e );
	}
}


function doOnMouseUp( e )
{
	var i;

	for ( i = 0; i < ecs__onMouseUp.length; i++ )
	{
		ecs__onMouseUp[ i ]( e );
	}

	if ( ECS__NS )
	{
		routeEvent( e );
	}
}


function doOnDialogClose()
{
	var i;

	for ( i = 0; i < ecs__onDialogClose.length; i++ )
	{
		ecs__onDialogClose[ i ]();
	}
}


function doOnSelectStart( e )
{
	var i;

	for ( i = 0; i < ecs__onSelectStart.length; i++ )
	{
		ecs__onSelectStart[ i ]( e );
	}
}


document.onselectstart = doOnSelectStart;


function doLoad()
{
	ECS__PageLoaded = true;

	window.defaultStatus = '';

	if ( ECS__NS )
	{
		document.captureEvents( Event.MOUSEDOWN | Event.MOUSEUP | Event.MOUSEMOVE );
	}

	document.onmousedown = doOnMouseDown;
	document.onmousemove = doOnMouseMove;
	document.onmouseup = doOnMouseUp;

	for ( var i = 0; i < ecs__doLoad.length; i++ )
	{
		eval( ecs__doLoad[ i ] );
	}

	if ( ecs__doLoadFocus )
	{
		setTimeout( 'doLoadFocus()', ecs__doLoadFocusTimeout );
	}
}

function doLoadFocus()
{
	try { ecs__doLoadFocus.select(); } catch ( e ) {}
	try { ecs__doLoadFocus.focus(); } catch ( e ) {}
}

function doUnLoad()
{
	ECS__PageLoaded = false;

	for ( var i = 0; i < ecs__doUnLoad.length; i++ )
	{
		eval( ecs__doUnLoad[ i ] );
	}

	doUnload_Opener()
}

function doUnload_Opener()
{
	try
	{
		if ( opener && !opener.closed && opener.doOpener && ( typeof( opener.doOpener ) != "unknown" ) )
		{
			opener.doOpener();
		}
	}
	catch ( e )
	{
	}
}


function doBeforeUnLoad()
{
	for ( var i = 0; i < ecs__doBeforeUnLoad.length; i++ )
	{
		eval( ecs__doBeforeUnLoad[ i ] );
	}
}


function doOpener()
{
}


function doOpenerUtil( wait )
{
	setTimeout( "window.location.reload( true )", wait ? wait : 200 );
}


function doReset()
{
	for ( var i = 0; i < ecs__doReset.length; i++ )
	{
		eval( ecs__doReset[ i ] );
	}

	resetDirty();
}

var doSubmit_InProgress = false;

function doSubmit()
{
	var		retval = false;

	if ( !doSubmit_InProgress )
	{
		doSubmit_InProgress = true;

		retval = true;

		for ( var i = 0; i < ecs__doSubmit.length; i++ )
		{
			if ( !eval( ecs__doSubmit[ i ] ) )
			{
				retval = false;
				break;
			}
		}

		if ( retval )
		{
			clearDirty();

			for ( var i = 0; i < ecs__doAfterSubmit.length; i++ )
			{
				if ( !eval( ecs__doAfterSubmit[ i ] ) )
				{
					break;
				}
			}
		}
		else
		{
			doSubmit_InProgress = false;
		}
	}

	return retval;
}


function doOpenWindow( turl, target, features, addUrl )
{
	return doOpenWindowUtil( turl, target, features, addUrl );
}

function doOpenWindowUtil( turl, target, features, addUrl )
{
	var		i;
	var		w;

	var		url = turl;

	if ( addUrl == null )
	{
		addUrl = '';
	}

	for ( i = 0; i < ecs__onOpenWindow.length; i++ )
	{
		addUrl += ecs__onOpenWindow[ i ]();
	}

	if ( target == "_blank" )
	{
		target = ( new Date() ).getTime();

		// add or replace any W= parameter

		i = turl.indexOf( '?' );

		if ( i < 0 )
		{
			url += '?';
		}

		i = turl.indexOf( '&W=' );

		if ( i < 0 )
		{
			i = turl.indexOf( '?W=' );
		}

		if ( i >= 0 )
		{
			url = turl.substring( 0, i + 3 ) + target;

			i = turl.indexOf( '&', i + 3 );

			if ( i >= 0 )
			{
				url += turl.substring( i );
			}
		}
		else
		{
			url += '&W=' + target;
		}
	}
	else if ( addUrl != '' )
	{
		i = turl.indexOf( '?' );

		if ( i < 0 )
		{
			url += '?';
		}
	}

	url += addUrl;

	if ( target == "_frameset" )
	{
		target = ( typeof( ECS__Frameset ) == 'undefined' ) ? '_self' : ECS__Frameset;
	}

	if ( target == '_blank_url' )
	{
		target = '_blank';
	}

	if ( target == '_parent' )
	{
		try { window.parent.location.href = url; } catch ( e ) {}
	}
	else if ( target == '_click' )
	{
		try { window.parent.location.replace( url ); } catch ( e ) {}
	}
	else if ( target == '_self' )
	{
		window.location.href = url;
	}
	else if ( target == '_top' )
	{
		top.location.href = url;
	}
	else
	{
		if ( ( features == null ) || ( features == '' ) )
		{
			w = window.open( url, target );
		}
		else
		{
			var	width = -1;
			var	height = -1;
			var	screenWidth = screen.availWidth;
			var	screenHeight = screen.availHeight;

			if( features.indexOf( "height=" ) >= 0 && features.indexOf( "width=" ) >= 0 )
			{
				height = getFeatureParam( "height", features );
				width = getFeatureParam( "width", features );
			}

			if( width <= 0 || height <= 0 )
			{
				if ( screenWidth < 1024 )
				{
					width = 800;
					height = 600;
				}
				else
				{
					width = 1024;
					height = 768;
				}

				height -= 28;
			}

			var		left = Math.floor( ( screenWidth - width ) / 2 );
			var		top = Math.floor( ( screenHeight - height ) / 2 );

			width -= ( 5 + 5 );
			height -= ( 24 + 24 );

			w = window.open( url + '&__height=' + screenHeight + '&__width=' + screenWidth, target, 'left=' + left + ',top=' + top + ',width=' + width + ',height=' + height + ',' + features );
		}
	}

	return false;
}


function getFeatureParam( featureName, featureString )
{
	var idxFrom = 0;
	var idxTo = 0;
	var tmp;
	var ret = null;

	idxFrom = featureString.search( featureName + "=" );

	if( idxFrom >= 0 )
	{
		featureString = featureString.slice( idxFrom );
	}

	idxFrom = featureString.search( "=" );
	++idxFrom;

	idxTo = featureString.search( "," );

	if( idxTo == -1 )
	{
		idxTo = featureString.search( "&" );
		if( idxTo == -1 )
		{
			ret = featureString.slice( idxFrom );
		}
	}

	if( ret == null )
	{
		ret = featureString.slice( idxFrom, idxTo )
	}

	if( ret == null )
	{
		ret = -1;
	}

	return ret;
}


function setDirtyKeyDown()
{
    if ( ECS__IE )
    {
	    var		c = event.keyCode;

	    if ( ( c == 8 ) || ( c == 46 ) )    // delete or backspace
	    {
		    setDirty();
	    }
	}
}


function setDirty()
{
    // set local and saved dirty status
}


function clearDirty()
{
    // clear local dirty status
}


function resetDirty()
{
    // clear local and saved dirty status
}


function restoreDirty()
{
    // restore dirty on load (must be registered)
}


function isDirty()
{
    return false;
}


function setDirtyBypass()
{
}


function clearDirtyBypass()
{
}


function isDirtyBypass()
{
	return false;
}


function doUrl( url )
{
	return doUrlUtil( url );
}


function doUrlUtil( url )
{
	try { window.parent.location = url; } catch ( e ) {}
	return false;
}


function doOpenUrl( url, target )
{
	return doOpenUrlUtil( url, target );
}


function doOpenUrlUtil( url, target )
{
	doOpenWindow( url, target, null, null )
	return false;
}


function doResize()
{
	if ( ECS__NS4 )
	{
		location.reload();
	}

	return false;
}

// Write an applet tag with the given attributes, params, and alternate text.
// attrs - attributes of the applet tag itself
// params - name/value parameters
// extraText - text to be included inside the applet tag (displayed if the object can't be loaded)
function ECSWriteAppletTag( attrs, params, extraText )
{
	ECSWriteTag( "applet", attrs, params, extraText );
}

// Write an object tag with the given attributes, params, and alternate text.
// attrs - attributes of the object tag itself
// params - name/value parameters
// extraText - text to be included inside the object tag (displayed if the object can't be loaded)
function ECSWriteObjectTag( attrs, params, extraText )
{
	ECSWriteTag( "object", attrs, params, extraText );
}

function ECSWriteTag( tagName, attrs, params, extraText )
{
	var s = '<' + tagName;

	for ( x in attrs )
	{
		s += ' ' + x + '="' + attrs[ x ] + '"';
	}

	s += ">\r\n";

	if ( params != undefined )
	{
		for ( x in params )
		{
			s += '<param name="' + x + '" value="' + params[ x ] + '">\r\n';
		}
	}

	if ( extraText != undefined )
	{
		s += extraText;
	}

	s += '</' + tagName + '>';

	document.write( s );
}

function ECSWriteString( div, s )
{
	div.innerHTML = s;
}

