// -----------------------------------------------------------------------------------
// Document Object Model Detection/Cross Browser Functions.
// -----------------------------------------------------------------------------------

var isDHTML = false;	// T/F - browser is DHTML capable
var isID = false;		// T/F - browser uses WC3 ID DOM
var isAll = false;		// T/F - browser uses MS All DOM
var isLayers = false;	// T/F - browser uses NS4 Layers DOM

// Test to see which DOM the browser is using
if (document.getElementById) {
	// WC3 ID DOM
	isID = true;
	isDHTML = true;
} else {
     // Not WC3 ID DOM
     if (document.all) {
     	// MS All DOM
     	isAll = true;
     	isDHTML = true;
     } else {
     	// Test for Netscape 4 Layer DOM
     	var browserVersion = parseInt(navigator.appVersion);
     	if ( (navigator.appName.indexOf('Netscape') != -1) && browserVersion == 4 ) {
     		isLayers=true;
     		isDHTML=true;
     	}
     }
}

// create a global object to save object references.
var ObjDomReferences = new Object;


function findDOM(objectID, withStyle) {
	// alert("findDOM: " + objectID);
    // alert("isDHMTL: " + isDHTML + "\nisID: " + isID + "\nisAll: " + isAll);
	if (withStyle == void(0)) withStyle=false;
	
	if (withStyle) {
          // check to see if it's been referenced before.  If so, get reference from object.
          if ( ObjDomReferences[objectID+"_style"] != void(0) ) {
               //alert('found style ref. to '+objectID);
               return ObjDomReferences[objectID+"_style"];
          }
		// previous reference not found -  find a reference to the style 
		// object associated with the object id passed in and store to object
		if (isID) {
			ObjDomReferences[objectID+"_style"] = document.getElementById(objectID).style;
		} else if (isAll)  {
			ObjDomReferences[objectID+"_style"] = document.all[objectID].style;
		} else if (isLayers) {
			ObjDomReferences[objectID+"_style"] = document.layers[objectID].style;
		}
		// return reference to requested object
		return ObjDomReferences[objectID+"_style"];
		
	} else {
          // check to see if it's been referenced before.  If so, get reference from object.
          if ( ObjDomReferences[objectID] != void(0) ) {
               //alert('found obj ref. to '+objectID);
               return ObjDomReferences[objectID];
          }

		// previous reference not found -  find a reference to the  
		// object associated with the object id passed in and store to object
		if (isID) {
            // alert("isId");
			ObjDomReferences[objectID] = document.getElementById(objectID);
		} else if (isAll)  {
			ObjDomReferences[objectID] = document.all[objectID];
		} else if (isLayers) {
			ObjDomReferences[objectID] = document.layers[objectID];
		}
		// return reference to requested object
        //		alert(typeof ObjDomReferences[objectID]);
        return ObjDomReferences[objectID];
	}
	// if you got here, it really didn't work
	return null;
}

function findLeft(strObjId) {
	 //alert(strObjId);
     var leftPos;
     var objStyle = findDOM(strObjId, false);
     
/*
     var msg ="";
     for (var prop in objStyle) {
          msg += prop+": "+objStyle[prop]+"<br>";    
     }

     var harry = window.open("", "harry");
     harry.document.writeln("<html><body>");
     harry.document.writeln(msg);
     harry.document.writeln("</body></html>");
*/
     if (objStyle.left != void(0)) leftPos = objStyle.left;
     if (objStyle.pixelLeft != void(0)) leftPos = objStyle.pixelLeft;
     if (objStyle.offsetLeft != void(0)) leftPos = objStyle.offsetLeft;
     
     if(leftPos != null) {
          return leftPos;
     } else {
          alert('findLeft(' + strObjId +'): Invalid value for object model');
     }
}

function setLeft(objIn, strPosIn) {
     //alert(objIn.id);
	 var strNewPos = ""+strPosIn+"px";
	 if (objIn.style) objIn.style.left = strNewPos;
     else alert('setLeft(): Styles not set up');
}

function findTop(strObjId) {
     var objStyle = findDOM(strObjId, false);
     if (objStyle.top != void(0)) return objStyle.top;
     if (objStyle.pixelTop != void(0)) return objStyle.pixelTop;
     if (objStyle.offsetTop != void(0)) return objStyle.offsetTop;
     alert('findTop(): Invalid value for object model');
}

