function get_viewport() {
  var viewportwidth;
  var viewportheight;

  // the more standards compliant browsers (mozilla/netscape/opera/IE7)
  // use window.innerWidth and window.innerHeight

  if (typeof window.innerWidth != 'undefined') {
       viewportwidth = window.innerWidth,
       viewportheight = window.innerHeight
  }

 // IE6 in standards compliant mode (i.e. with a valid doctype as the
 // first line in the document)

  else if (typeof document.documentElement != 'undefined'
      && typeof document.documentElement.clientWidth !=
      'undefined' && document.documentElement.clientWidth != 0) {
        viewportwidth = document.documentElement.clientWidth,
        viewportheight = document.documentElement.clientHeight
  }

  // older versions of IE

  else {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
        viewportheight = document.getElementsByTagName('body')[0].clientHeight
  }

  return new Array(viewportwidth,viewportheight);
}

//define reference to the body object in IE
var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;

function get_dsoc() {
  var xPos = document.all? iebody.scrollLeft : pageXOffset;
  var yPos = document.all? iebody.scrollTop : pageYOffset;
  return [xPos,yPos];
}
