// begin Form namespace
var Form = {};

Form.MoveCursorToEnd =      	
	function ( inputId ) {
	    var inputObj = Page.GetObject( inputId );
	    with ( inputObj ) {
	        focus();	  
	        if ( value.length > 0 && value.charAt( value.length-1 ) != ' ' ) {
	            value += ' ';
	        }	          
	        value = value;
	    }
   	};

// reset forms on page to default state
// keep browser from persisting form values when back/forward buttons are used
Form.ResetAll =
	function() {
		var forms = document.getElementsByTagName("form");
		for ( var n = 0; n < forms.length; n++ ) {
			forms[n].reset();
		}		
	};
	
// end Form namespace
	
// begin Evt namespace
//* ToDo Add event mapping for Moz and IE *//

var Evt = {};

/* void */
Evt.AddEventHndlr =
	function( obj, evtType, evtHndlr ) {
	
	    var srcObj = Page.GetObject( obj );
	    
		if ( srcObj.attachEvent ) { //IE
			srcObj.attachEvent( evtType, evtHndlr );
		}
		if ( srcObj.addEventListener ) { //Moz
			srcObj.addEventListener( evtType, evtHndlr, false );
		}
	};
	
// end Evt namespace

// begin Page namespace
var Page = {}; // interact with elements on the page

Page.GetObject =
    function( objOrStr ) { // objOrStr = object or string
        if ( typeof( objOrStr ) == "string" ) {
            return document.getElementById( objOrStr );
        }
        return objOrStr;
    };

Page.GetObjectYPos = 
	function ( obj ) {	
		var srcObj = Page.GetObject( obj );
		var currObj = srcObj;
		
		var ypos = 0;
		while ( currObj.offsetParent ) {
		    ypos += currObj.offsetTop;
		    currObj = currObj.offsetParent;
		}
		return ypos;
	};
	
Page.GetObjectXPos = 
	function ( obj ) {	
		var srcObj = Page.GetObject( obj );
		var currObj = srcObj;
		
		var xpos = 0;
		while ( currObj.offsetParent ) {
		    xpos += currObj.offsetLeft;
		    currObj = currObj.offsetParent;
		}
		return xpos;
	};

Page.HideObject = 
	function ( objId, dispStyle ) { // objId = object or string
	
	    var objToDisp = Page.GetObject( objId );

		var displayValue = ( dispStyle != undefined )? dispStyle : "none";
		if ( objToDisp ) {
			objToDisp.style.display = displayValue;		
		}
	};

Page.ShowObject = 
	function ( objId, dispStyle ) { // objId = object or string
	
	    var objToDisp = Page.GetObject( objId );	

	    var displayValue = ( dispStyle != undefined )? dispStyle : "block";
		
		if ( objToDisp ) {
			objToDisp.style.display = displayValue;		
		}
	};
	
Page.OpenCenteredPopUpWin =
	function( url, name, width, height, addlParams ) {
	
		var d = document;
		
		// strict doctype changes our clientHeight & clientWidth
		var docHeight = ( ( d.documentElement && d.documentElement.clientHeight ))? d.documentElement.clientHeight : d.body.clientHeight;
		var docWidth  = ( ( d.documentElement && d.documentElement.clientWidth  ))? d.documentElement.clientWidth  : d.body.clientWidth ;
		
		var popupWidth  = width;
		var popupHeight = height;
		var titleBarHeight = 24;
		
		// Moz and IE have different properties
		var screenLeft = ( window.screenLeft != null ) ? window.screenLeft : window.screenX;
		var screenTop  = ( window.screenTop  != null ) ? window.screenTop  : window.screenY;

		var leftCoord = parseInt( ( docWidth  / 2 ) - ( popupWidth  / 2 ) + screenLeft );
		var topCoord  = parseInt( ( docHeight / 2 ) - ( popupHeight / 2 ) + screenTop  ) - titleBarHeight;
		
		var params = "height="+ popupHeight + ",width=" + popupWidth + ",top=" + topCoord + ",left=" + leftCoord;
		if (addlParams != null) {
			params += "," + addlParams;
		}

		window.open( url, name, params );	
	};
	
// end Page namespace