function mElement(elementName) {
    if (document.layers) {
    //we want 1 object (not nested)
        //simple layer reference
        if (mElement.arguments.length == 1) {
            var cEl = eval("document.images['" + elementName + "']");
            //var cEl = eval("document.layers['" + elementName + "']");
        
        //refer document in layer: document.layers[layername].document
                // use 'strange' spelling to minimise conflicts with existing objects
        } else if (mElement.arguments[1] == 'DoC') {
            var cEl = eval("document.layers['" + elementName + "'].document");
        //refer an image: document.images[imageName]
        } else if (mElement.arguments[1] == 'iMageZ') {
            var cEl = eval("document.images['" + elementName + "']");
        
        //nested objects
        } else if (mElement.arguments.length>1) {
            var cEl = "document.layers['" + mElement.arguments[1] + "']";//start the string
            for (var i=2;i<mElement.arguments.length;i++) {//leave the first argument, because that's the one you're after, the second because you used that one to start the string
                if ( (mElement.arguments[i] != 'DoC') && (mElement.arguments[i] != 'iMageZ') && (mElement.arguments[i] != 'ForMz') ) {
                    //alert(mElement.arguments[i]);
                    cEl = cEl + ".document.layers['" + mElement.arguments[i] + "']";//get the next layer
                }
            }
            if (mElement.arguments[mElement.arguments.length-1] == 'iMageZ')  {
                cEl = cEl + ".document.images['" + elementName + "']";//in case you need the images in the layer rather than the layer or doc
            } else if (mElement.arguments[mElement.arguments.length-1] == 'ForMz')  {
                cEl = cEl + ".document.forms['" + elementName + "']";//in case you need the form in the layer rather than the layer or doc
            } else {
                cEl = cEl + ".document.layers['" + mElement.arguments[0] + "']";//add first element (the one you're after)
                if (mElement.arguments[mElement.arguments.length-1] == 'DoC') {
                cEl = cEl + ".document";//in case you need the document in the layer rather than the layer itself
                }
            } 
            cEl = eval(cEl);//wrap up and make string into an object
        } else {
            var cEl = eval("document.layers['" + mElement.arguments[1] + "'].document." + elementName);
        }
    
    //old IE browsers:
    } else if (document.all) {
        var cEl = eval('document.all.' + elementName);
    //W3C standard:
    } else {
        var cEl = document.getElementById(elementName);
    }
    return cEl;
}

function moveSizeElement(element,posX,posY,width,height) {
    if(document.layers) {
        element.left = parseInt(posX);
        element.top = parseInt(posY);
        element.width = parseInt(width);
        element.height = parseInt(height);
    } else {
        element.style.left = parseInt(posX);
        element.style.top = parseInt(posY);
        element.style.width = parseInt(width);
        element.style.height = parseInt(height);
    }
}

function alignElement(element,alignment) {
    if(document.layers) {
		element.align = alignment;
    } else {
		element.style.align = alignment;
    }
}

function showElement (element) {
    if(document.layers) {
		element.visibility = 'show';
    } else {
		element.style.visibility = 'visible';
    }
}

function hideElement (element) {
    if(document.layers) {
		element.visibility = 'hide';
    } else {
		element.style.visibility = 'hidden';
    }
}

function displayElement (element) {
    if(document.layers) {
		element.display = 'block';
    } else {
		element.style.display = 'block';
    }
}

function moveElement(element,posX,posY) {
    if(document.layers) {
        element.left = parseInt(posX);
        element.top = parseInt(posY);
		element.visibility = 'show';
    } else {
        element.style.left = posX+"px";
        element.style.top = posY+"px";
		element.style.visibility = 'visible';
    }
}

function scrollElement(element,posY) {
    if(document.layers) {
        element.top = parseInt(posY);
    } else {
        element.style.top = posY+"px";
    }
}

function sizeElement(element,width,height) {
    if(document.layers) {
        element.width = parseInt(width);
        element.height = parseInt(height);
    } else {
        element.style.width = parseInt(width);
        element.style.height = parseInt(height);
    }
}

function getHeight (element) {
    if(document.layers) {
        return (element.clientHeight);
    } else {
        return (element.offsetHeight);
    }
}
function writetoLyr(id, message) {
if (document.layers) {
document.layers[id].document.write(message)
document.layers[id].document.close()
} else if (document.all) {
eval("document.all."+id+".innerHTML='"+message+"'")
} else {
document.getElementById(id).innerHTML = message;
}
}

 rnd.today=new Date();
rnd.seed=rnd.today.getTime();

function rnd() {
        rnd.seed = (rnd.seed*9301+49297) % 233280;
        return rnd.seed/(233280.0);
};

function rand(number) {
        return Math.ceil(rnd()*number);
};

function highlight(imgloc, imgnew)
{
	button = mElement (imgloc);
	button.src = eval(imgnew + ".src")
}

function highlight2(imgloc, imgnew, imgloc2, imgnew2)
{
	button = mElement (imgloc);
	button.src = eval(imgnew + ".src")
	image = mElement (imgloc2);
	image.src = eval(imgnew2 + ".src")
}

function popup_fix_size ()
{
	// Non-IE (document.width or height not supported in IE)
	if (document.width)
	{
		window.sizeToContent();
		self.resizeBy(20,10);
	}
	// IE
	else
	{
		// IE < 7
		w = document.body.offsetWidth + 10;
		h = document.body.offsetHeight + 50;
		
		// Cheap trick for detecting IE7
		if (window.XMLHttpRequest && document.all)
		{
			w = document.body.scrollWidth+10;
			h = document.body.scrollHeight+90;
		}
		self.resizeTo(w,h);
		//alert ("set to " + w + " x " + h);
	}
}

function popup (url, name, params)
{
	// this should set a variable named "name" but for now we'll hard code it
	// to EditWin
	EditWin = window.open (url, name, params);
}

function popupvr (id, width, height)
{
	url = "vrtour.php?id=" + id;
	window.open (url, "vrtour",
"toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" +
width + ",height=" + height);
}

function popupphoto (lid, pid, width, height)
{
	url = "photo.php?lid=" + lid + "&pid=" + pid;
	window.open (url, "photo",
"toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=" +
width + ",height=" + height);
}

function clearForm (formname)
{
	form = mElement (formname, "ForMz");
	form.reset();
}

function confirmDelete ()
{
    var is_confirmed = confirm("Are you sure you want to delete the current record?");

    return is_confirmed;
}

// dump an object for debugging
function dump (o)
{
	s = "";
	for (var prop in o)
		s += prop + " = " +  o[prop] + "\n";
	alert (s);
}

function setInitialFocus ()
{
  var bFound = false;

  // for each form
  for (f=0; f < document.forms.length; f++)
  {
    // for each element in each form
    for(i=0; i < document.forms[f].length; i++)
    {
      // if it's not a hidden element
      if (document.forms[f][i].type != "hidden")
      {
        // and it's not disabled
        if (document.forms[f][i].disabled != true)
        {
            // set the focus to it
            document.forms[f][i].focus();
            var bFound = true;
        }
      }
      // if found in this element, stop looking
      if (bFound == true)
        break;
    }
    // if found in this form, stop looking
    if (bFound == true)
      break;
  }
}

var onloadHandlers = new Object();
onloadHandlers.length = 0;

function addOnload (func)
{
	onloadHandlers[onloadHandlers.length] = func;
	onloadHandlers.length++
}

function runOnload ()
{
	setInitialFocus ();
	for (var i=0; i<onloadHandlers.length; i++)
	{
		onloadHandlers[i]();
	}
}

//tricky tricky ;-)
//add existing onload handlers to the new onload handler array.
if (window.onload != null)
{
	addOnload(window.onload);
}
window.onload=runOnload;
