var ElementCenterParent = function() {
  this.initialize.apply(this, arguments);
}

ElementCenterParent.prototype = {
  initialize: function(className) {
    this.elements = document.getElementsByClassName(className || 'centerparent');
    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.textElementWidth = document.getDimensions(this.textElement).width;
    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++) {
		var parentNodeWidth = parseInt(document.getDimensions(this.elements[i].parentNode.parentNode).width);
		var elementWidth = parseInt(document.getDimensions(this.elements[i]).width);
		var parentNodePaddingLeft = parseInt(((parentNodeWidth - elementWidth) / 2));
		this.elements[i].parentNode.style.paddingLeft = parentNodePaddingLeft + 'px';
		this.elements[i].parentNode.style.visibility = 'visible';
	}
  },

  reset: function() {
	for (var i = 0; i < this.elements.length; i++) {
		this.elements[i].parentNode.style.visibility = 'hidden';
		this.elements[i].parentNode.style.paddingLeft = 0 + 'px';
	}
  },

  checkFontSize: function() {
  	var width = document.getDimensions(this.textElement).width;
  	if(this.textElementWidth != width) {
  		this.textElementWidth = width;
  		this.expand();
  	}
  }  
}