var isDHTML = 0;
 var isLayers = 0;
 var isAll = 0;
 var isID = 0;
 var isBusy = false;

 if (document.getElementById) {
 isID = 1; isDHTML = 1;
 } else {
 browserVersion = parseInt(navigator.appVersion);
 if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {
 isLayers = 1; isDHTML = 1;
 } else {
 if (document.all) {
 isAll = 1; isDHTML = 1;
 }
 }
 }

 function findDOM(objectID,withStyle) {
 if (withStyle == 1) {
 if (isID) {
 return (document.getElementById(objectID).style);
 } else {
 if (isAll) {
 return (document.all[objectID].style);
 } else {
 return getObjNN4(top.document,objectID);
 }
 }
 } else {
 if (isID) {
 return (document.getElementById(objectID));
 } else {
 if (isAll) {
 return (document.all[objectID]);
 } else {
 if (isLayers) {
 return getObjNN4(top.document,objectID);
 }
 }
 }
 }
 }

 function getObjNN4(obj,name)
 {
 var x = obj.layers;
 for (var i=0;i<x.length;i++)
 {
 if (x[i].id == name)
 return x[i];
 else if (x[i].layers.length)
 var tmp = getObjNN4(x[i],name);
 if (tmp) return tmp;
 }
 return null;
 }

 function writeToLayer ( id, text )
 {
 // first we get a reference to the layer we want
 // to modify
 x = findDOM( id, 0 );

 if ( !x )
 return;
 if ( isLayers ) {
 // NS4 only allows you to have
 // one output stream open at a time
 // so if we are already writing to one
 // we will try this again in 250 ms.
 if ( isBusy ) {
 setTimeout ( "writeToLayer( '" + id + "', '" + text + "' )", 20 );
 } else {
 isBusy = true;
 // write does open for us
 x.document.write(text);
 x.document.close();
 isBusy = false;
 }
 } else {
 x.innerHTML = text;
 }
 }
