var ElementMaxHeight = function() {

  this.initialize.apply(this, arguments);

}



ElementMaxHeight.prototype = {

  initialize: function(className) {

    this.elements = document.getElementsByClassName(className || 'maxheight');    

    this.textElement = document.createElement('span');

    this.textElement.appendChild(document.createTextNode('A'));

    this.textElement.style.display = 'block';

    this.textElement.style.position = 'absolute';

    this.textElement.style.fontSize = '1em';

    this.textElement.style.top = '-1000px';

    this.textElement.style.left = '-1000px';

    document.body.appendChild(this.textElement);

    this.textElementHeight = document.getDimensions(this.textElement).height;

    var __object = this;

    var __checkFontSize = this.checkFontSize;

    this.checkFontSizeInterval = window.setInterval(function() {return __checkFontSize.apply(__object)}, 500);



    this.expand();



    // Refresh elements height onResize event

    var __expand = this.expand;

    if (window.addEventListener) {

      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);

    } else if (window.attachEvent) {

      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});

    }

  },



  expand: function() {

    this.reset();

  	for (var i = 0; i < this.elements.length; i++) {  	
      this.elements[i].style.height 
= document.getDimensions(this.elements[i].parentNode).height + 'px';

  	}

  },



  reset: function() {

    for (var i = 0; i < this.elements.length; i++) {    

      this.elements[i].style.height = 'auto';

    }

  },



  checkFontSize: function() {

  	var height = document.getDimensions(this.textElement).height;

  	if(this.textElementHeight != height) {

  		this.textElementHeight = height;

  		this.expand();

  	}

  }  

}





if (!!document.evaluate) {

  document._getElementsByXPath = function(expression, parentElement) {

    var results = [];

    var query = document.evaluate(expression, parentElement || document,

      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

    for (var i = 0, length = query.snapshotLength; i < length; i++)

      results.push(query.snapshotItem(i));

    return results;

  }

}



document.getElementsByClassName = function(className, parentElement) {

  if (!!document.evaluate) {

    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";

    return document._getElementsByXPath(q, parentElement);

  } else {

    var children = (parentElement || document.body).getElementsByTagName('*');

    var elements = [], child;

    for (var i = 0, length = children.length; i < length; i++) {

      child = children[i];

      if (child.className.length != 0 &&

          (child.className == className ||

           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        e
lements.push(child);

      }

    }

    return elements;

  }

}



document.getDimensions = function (element) {

  var display = element.style.display;

  if (display != 'none' && display != null) { // Safari bug

    return {width: element.offsetWidth, height: element.offsetHeight};

  }



  return {width: originalWidth, height: originalHeight};

}= height) {

  		this.textElementHeight = height;

  		this.expand();

  	}

  }  

}





if (!!document.evaluate) {

  document._getElementsByXPath = function(expression, parentElement) {

    var results = [];

    var query = document.evaluate(expression, parentElement || document,

      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

    for (var i = 0, length = query.snapshotLength; i < length; i++)

      results.push(query.snapshotItem(i));

    return results;

  }

}



document.getElementsByClassName = function(className, parentElement) {

  if (!!document.evaluate) {

    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";

    return document._getElementsByXPath(q, parentElement);

  } else {

    var children = (parentElement || document.body).getElementsByTagName('*');

    var elements = [], child;

    for (var i = 0, length = children.length; i < length; i++) {

      child = children[i];

      if (child.className.length != 0 &&

          (child.className == className ||

           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
<!-- 
-->