function imgLoad(srcName, ovr) {
    (new Image()).src = srcName;
    if (ovr) (new Image()).src = imgStateSrc(srcName, "ovr");
}

function imgSet(imgName, srcName) {
    document.images[imgName].src = srcName;
}

function imgStateSrc(srcName, stName) {
    var ext = srcName.lastIndexOf(".");
    var state = srcName.lastIndexOf("-");
    var slash = srcName.lastIndexOf("/");
    if (state <= slash) state = ext;
    var stStr = "";
    if (stName.length > 0) stStr = "-" + stName;
    return srcName.substring(0, state) +
    		stStr + srcName.substring(ext, srcName.length);
}

function imgOvr(imgName) {
    var img = document.images[imgName];
    img.src = imgStateSrc(img.src, "ovr");
}

function imgOut(imgName) {
    var img = document.images[imgName];
    img.src = imgStateSrc(img.src, "");
}

var visSub = null;
var visSubTimer = null;
var visSubDefault = null;
function subHide() {
 if (visSub != null
   && visSub != visSubDefault) {
  imgOut('nav' + visSub.id);
  visSub.style.display = "none";
  if (visSubDefault != null) {
   visSubDefault.style.display = "";
  }
  visSub = null;
 }
}

function subShow(id) {
 clearTimeout(visSubTimer);
 var elem = document.getElementById(id);
 if (elem != visSub) {
  subHide();
  visSub = elem;
  if (visSubDefault != null
   && visSub != visSubDefault) {
   visSubDefault.style.display = "none";
  }
  imgOvr('nav' + id);
  visSub.style.display = "";
 }
}

function subDecay() {
  visSubTimer = setTimeout("subHide()", 1500);
}

function subRevive() {
 clearTimeout(visSubTimer);
}

function subSetDefault(id, doShow, hideId) {
 if (hideId) {
	 var elem = document.getElementById(hideId);
	 elem.style.display = "none";
 }
 if (doShow) subShow(id);
 visSubDefault = document.getElementById(id);
}

function popupWindow(url,width,height) {
 popup(url, null,"width=" + width + ",height=" + height);
}

function popup(url,name,props) {
 var newWin = window.open(url, name,
   props + ",toolbar=no,location=no,directories=no,status=no,menubar=no" +
   ",scrollbars=no,resizable=yes");
 newWin.focus();
}

// DOMEvent mouse X-point locator
function getMouseX(evt) {

    // IE and Gecko
    return evt.pageX ? evt.pageX : evt.clientX + document.body.scrollLeft;
}

// DOMEvent mouse Y-point locator
function getMouseY(evt) {

    // IE and Gecko
    return evt.pageY ? evt.pageY : evt.clientY + document.body.scrollTop;
}

function relatedOvr(evt, src) {
    imgSet('related', src);
    var elem = document.getElementById('relatedImg');
    elem.style.left = getMouseX(evt) + "px";
    //elem.style.top = (getMouseY(evt) - 120) + "px";
	elem.style.visibility = "visible";
}

function relatedOut() {
    var elem = document.getElementById('relatedImg');
    elem.style.visibility = "hidden";
}
