function getScreenCenterY() {
  var y = 0;
  y = getScrollOffset()+(getInnerHeight()/2);
  return(y);
}

function getScreenCenterX() {
//  return (centerElement().offsetWidth)/2+centerElement().scrollLeft;
  return(document.body.clientWidth/2);
}

function getInnerHeight() {
  var y;
  if (self.innerHeight) // all except Explorer
  {
    y = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
  {
    y = document.documentElement.clientHeight;
  }
  else if (document.body) // other Explorers
  {
    y = document.body.clientHeight;
  }
  return(y);
}

function getScrollOffset() {
  var y;
  if (self.pageYOffset) // all except Explorer
  {
    y = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop)
    // Explorer 6 Strict
  {
    y = document.documentElement.scrollTop;
  }
  else if (document.body) // all other Explorers
  {
    y = document.body.scrollTop;
  }
  return(y);
}

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

var ie = document.all;
var nn6 = document.getElementById &&! document.all;
var isdrag = false;
var x, y;
var dobj;
var dragid = '';
function movemouse( e ) {
  if( isdrag && dragid != '' ) {
    dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x;
    dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
    return false;
  }
}
var dragid;
function selectmouse( e ) {
  if (dragid != '' ) {
    isdrag = true;
    dobj = document.getElementById( dragid );
    tx = parseInt(dobj.style.left+0);
    ty = parseInt(dobj.style.top+0);
    x = nn6 ? e.clientX : event.clientX;
    y = nn6 ? e.clientY : event.clientY;
    document.onmousemove=movemouse;
    return false;
  }
}
document.onmousedown=selectmouse;
document.onmouseup=unselectmouse;
function unselectmouse() {
  isdrag = false;
  dragid = '';
}
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
            curleft = obj.offsetLeft
            curtop = obj.offsetTop
            while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft
                    curtop += obj.offsetTop
            }
    }
    return [curleft,curtop];
}
function HideContent(d) {
  if(d.length < 1) { return; }
    document.getElementById(d).style.visibility = "hidden";
  }
function ShowContent(obj,d,xoffset,yoffset) {
  var coors = findPos(obj);
  if(d.length < 1) { return; }
  document.getElementById(d).style.top = coors[1]-yoffset + 'px';
  document.getElementById(d).style.left = coors[0]-xoffset + 'px';
  document.getElementById(d).style.visibility = "visible";
}
function ShowContentCenter(d,xoffset,yoffset) {
  if(d.length < 1) { return; }
  document.getElementById(d).style.top = getScreenCenterY()-yoffset + 'px';
  document.getElementById(d).style.left = getScreenCenterX()-xoffset + 'px';
  document.getElementById(d).style.visibility = "visible";
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function count_bytes(countMe) {
    var escapedStr = encodeURI(countMe)
    if (escapedStr.indexOf("%") != -1) {
        var count = escapedStr.split("%").length - 1
        if (count == 0) count++  //perverse case; can't happen with real UTF-8
        var tmp = escapedStr.length - (count * 3)
        count = count + tmp
    } else {
        count = escapedStr.length
    }
    return count;
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function add_cookie(key, val) {
   var today = new Date();
   var notexpire = new Date();
   notexpire.setTime(today.getTime() + 3600000*24*365);

   var newcookie = key+'='+val+'; expires='+notexpire.toGMTString()+'; path=/';

   document.cookie = newcookie;
}

/*
function do_logout() {
   var newcookie;

   newcookie = 'user=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';

   alert(newcookie);
   document.cookie = newcookie;

   newcookie = 'pass=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';
   document.cookie = newcookie;
}
*/

