
function LayoutManager() {
   this.printStyle = '/rightsite/css/print.css';
   this.screenStyle = '/rightsite/css/main.css';
   this.getObject = function(obj) {
      if ( typeof obj != 'string') {
         return obj;
      }
      var newObj;
      if ( document.getElementById ) {
         newObj = document.getElementById(obj);
      }
      else if ( document.all ) {
         newObj = document.all(obj);
      }
      return newObj;
   }
   this.getLongestColumn = function(cols) {
      var longestColumn = new Object;
      longestColumn.offsetHeight = '0';
      for ( i = 0; i < cols.length; i++ ) {
         var obj = this.getObject(cols[i]);
         if ( obj && obj.offsetHeight && (obj.offsetHeight > longestColumn.offsetHeight) ) {
            longestColumn = obj;
         }
      }
      return longestColumn;
   }
   this.equalizeColumnHeight = function(cols) {
      if ( cols.length == '0' ) {
         return;
      }
      var longestColumn = this.getLongestColumn(cols);
      for ( i = 0; i < cols.length; i++ ) {
         var obj = this.getObject(cols[i]);
         if ( obj && ('offsetHeight' in obj) ) {
            obj.style.height = longestColumn.offsetHeight;
         }
      }
   }
   this.getQuery = function() {
      var qs = location.search.substring(1);
      var nv = qs.split('&');
      var url = new Object();
      for(i = 0; i < nv.length; i++) {
         eq = nv[i].indexOf('=');
         url[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
      }
      return url;
   }
   this.getQueryField = function(field) {
      var url = this.getQuery();
      if ( url[field] ) {
         return url[field];
      }
      return '';
   }
   this.getStyleSheet = function() {
      var query = this.getQuery();
      if ( this.isPrintVersion() ) {
         return "<link rel='stylesheet' type='text/css' href='" + this.printStyle + "' />";
      }
      return "<link rel='stylesheet' type='text/css' href='" + this.screenStyle + "' media='screen' />";
   }
   this.getLinks = function(containerID) {
      var container = this.getObject(containerID);
      var links = container.getElementsByTagName('A');
      var selected = new Array;
      for ( i in links ) {
         if ( links[i].href && links[i].href.length > 0 ) {
            selected.push(links[i]);
         }
      }
      return selected;
   }
   this.isPrintVersion = function() {
      var query = this.getQuery();
      if ( query['q'] && query['q'] == 'printme' ) {
         return true;
      }
      return false;
   }
   this.getFootnoteLinks = function(containers, properties) {
      if ( ! this.isPrintVersion() ) {
         return new Array;
      }
      var links = new Array;
      var number = 1;
      for ( i in containers ) {
         var clinks = this.getLinks(containers[i]);
         if ( clinks.length > 0 ) {
            links = links.concat(clinks);
         }
      }
      for ( i = 0; i < links.length; i++ ) {
         var note = document.createElement('span');
         note.setAttribute('class', 'note');
         note.innerHTML = "&nbsp;" + number;
         links[i].parentNode.insertBefore(note, links[i].nextSibling);
         number++;
      }
      return links;
   }
}
