function changeSize(obj, state) {
   var amount    = (state) ? -35 : -5;
   var newwidth  = obj.offsetWidth + amount;

   obj.style.width = newwidth + "px";
}


function ShowHidden2(name, type, state, col1, col2) {
   var regex = new RegExp("^" + name + "_hide_");
   var items = document.getElementsByTagName(type);

   if (col1)
      changeSize(document.getElementById(col1), state);

   if (col2)
      changeSize(document.getElementById(col2), state);

   document.getElementById(name + "box").style.overflow  = (state) ? "scroll" : "hidden";
   document.getElementById(name + "_more").style.display = (state) ? "none" : "";
   document.getElementById(name + "_less").style.display = (state) ? "" : "none";
   
   if (document.getElementById(name + "_ellipse"))
      document.getElementById(name + "_ellipse").style.display = (state) ? "none" : "";

   for (var i = 0 ; i < items.length ; i++ ) {
      if (items[i].id.match(regex))
         items[i].style.display = (state) ? "" : "none";
   }
}


function ShowHidden(name, box, type, state) {
   var regex = new RegExp("^" + name + "_hide_");
   var items = document.getElementsByTagName(type);
   var box   = document.getElementById(box);

   if (! state)
      box.scrollTop = 0;

   box.style.overflow = (state) ? "scroll" : "hidden";
   document.getElementById(name + "_more").style.display = (state) ? "none" : "";
   document.getElementById(name + "_less").style.display = (state) ? "" : "none";
   
   if (document.getElementById(name + "_ellipse"))
      document.getElementById(name + "_ellipse").style.display = (state) ? "none" : "";

   for (var i = 0 ; i < items.length ; i++ ) {
      if (items[i].id.match(regex))
         items[i].style.display = (state) ? "" : "none";
   }
}


var offsetTop  = 0;
var offsetLeft = 0;

function getTopPos(objToMove, objClickObj, strLocation, strAlign) {
   var returnValue = objClickObj.offsetTop;

   if (strLocation == "bottom")
      returnValue += objClickObj.offsetHeight;
      
   if (strAlign == "bottom")
      returnValue -= objToMove.offsetHeight;

   while ((inputObj = objClickObj.offsetParent) != null) {
      objClickObj = inputObj;
      returnValue += objClickObj.offsetTop;
   }

   return returnValue + offsetTop;
}


function getLeftPos(objToMove, objBase, strLoc) {
   var returnValue = objBase.offsetLeft;
   
   switch (strLoc) {
      case "left": returnValue -= objToMove.offsetWidth;
                   break;

      case "right": returnValue += objBase.offsetWidth;
                    break;

      case "alignleft": break;
   }

   while ((inputObj = objBase.offsetParent) != null) {
      objBase = inputObj;
      returnValue += objBase.offsetLeft;
   }

   if (strLoc== "center") {
      returnValue -= objToMove.offsetWidth / 2;
//      returnValue += objBase.offsetWidth / 2;
   }

   return returnValue + offsetLeft;
}


function centerObject(objToCenter) {
   objToCenter.style.top  = (document.body.clientHeight - objToCenter.offsetHeight) / 2 + "px";
   objToCenter.style.left = (document.body.clientWidth - objToCenter.offsetWidth) / 2 + "px";
}

function tieObject(objTie, objBase, strTieX) {
   if (strTieX == "")
      strTieX = "right";

	objTie.style.left = getLeftPos(objTie, objBase, strTieX) + 'px';
	objTie.style.top  = getTopPos(objTie, objBase, "bottom") + 'px';
}

function showPopup(id, state, pos) {
   objPopup = document.getElementById(id);
   objImage = document.getElementById("img_" + id);

   if (state == undefined)
      state = (objPopup.style.display != "") ? true : false;

   objPopup.style.display = (state) ? "" : "none";
   
   tieObject(objPopup, objImage, pos);
}

function showLinks() {
   var objLinks   = document.getElementById("links");
   var objControl = document.getElementById("link_control");
   
   objControl.innerHTML   = (objLinks.style.display == "") ? "&gt;" : "&lt;";
   objLinks.style.display = (objLinks.style.display == "") ? "none" : "";
}

/////////////////////////////////////////////////////////////////////////////////////////////////


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}