/**************************************************************************\ 
 * Name:	BrowserAPI()
 * Author:	Greg Miley
 * Date:	03April02
 * Description:	
 *		Provide clean access to browser objects.
 *		Right now you must provide a StringID for the element you wish
 *		to access. This API wrapper provides access to DOM as well as
 *		older version 4s of IE and NN. Read the internal documentation
 *		comments for further explanation of each method/property.
 * Usage:
 *		1) Create a new instance of the object.
 *			var Browser = new BrowserAPI();
 *		2) Access objects via Browser.ObjRef('ObjIDString')
 *			Browser.ObjRef('mySpan').id = "mySpan";
 *			2.1) Move Items to specified postions.
 *				Browser.ObjRef('mySpan').MoveTo(nX,nY);
 *			2.2) Show and Hide items in document.
 *				Browser.ObjRef('mySpan').Show();
 *				Browser.ObjRef('mySpan').Hide();
 *			2.3) Resize Items to specified size.
 *				Browser.ObjRef('mySpan').Resize(nX,nY);
 *		3) Access styles via Browser.StyleRef('ObjIDString')
 *			Browser.StyleRef('mySpan').border = "1px #000000 solid";
 * Notes:
 *		More to come on this development. I will be adding more 
 *		methods as I complete them. Comments or suggestions to 
 *		greg_s_miley@hotmail.com
 *
 *		As a rule you MUST have styles set for a lot of stuff
 *		to be accessed correctly. This is true whether you use
 *		this API or not. This API does NOT set up initial style
 *		for you. You have to do that yourself.
 *
 * Modification History:
 *	Name		When		Why
 **========================================================
 *	g miley		04.05.02	Added .Show() .Hide() and .MoveTo(X,Y)
 *	g miley		04.05.02	Added .Resize()
 *
\**************************************************************************/

function BrowserAPI() {
	var Root = this;
	this.BrowserID = function BrowserID() {
		if(parseInt(navigator.appVersion) >= 4) {
			if(document.getElementById) {
				return "DOM";
			} else if(document.layers) {
				return "NN";
			} else {
				return "IE";
			}
		}
		return "";
	}
	this.ObjRef = function GetObject(loObject) {
		var ObjID = loObject;
		var myObj;
		var lcAllAccess = "";
		var BrowType = Root.BrowserID();
		if(BrowType == "IE") {
			lcAllAccess = "all.";
		}
		if(typeof loObject == "string") {
			if( BrowType == "DOM") {
				myObj = eval(document.getElementById(loObject));
			} else {
				myObj = eval("document." + lcAllAccess + loObject);
			}
		} else {
			myObj = loObject;
		}
		// Move item method
		myObj.MoveTo = function MoveTo(Xpos, Ypos) {
			var movObj = Root.StyleRef(ObjID);
			movObj.top = Ypos;
			movObj.left = Xpos;
		}
		// Show Item method
		myObj.Show = function Show() {
			var showObj = Root.StyleRef(ObjID);
			showObj.visibility = "visible";
		}
		// Hide item method
		myObj.Hide = function Hide() {
			var showObj = Root.StyleRef(ObjID);
			showObj.visibility = "hidden";
		}
		// Resize item method
		myObj.Resize = function Resize(Xsize, Ysize) {
			var sizeObj = Root.StyleRef(ObjID);
			sizeObj.height = Ysize;
			sizeObj.width = Xsize;
		}
		return myObj
	}
	this.StyleRef = function GetStyleObject(loStyleObject) {
		var myObj;
		var lcStyleAccess = "";
		myObj = Root.ObjRef(loStyleObject);
		if(Root.BrowserID() != "NN") {
			myObj = myObj.style;
		}
		return myObj;
	}
}