/*
	by Paul@YellowPencil.com and Scott@YellowPencil.com
	includes TextResizeDetector by Lawrence Carvalho <carvalho@uk.yahoo-inc.com>
	feel free to delete all comments except for the above credit
*/

var divs = new Array('main-column', 'main-column-transp');

function scriptInit() { if (!document.getElementById) { return; } }

function addEvent(elm, evType, fn, useCapture) { 
 if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } 
 else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r; }
 else { elm['on' + evType] = fn; }
}

function setTall() {
 if (document.getElementById) { var maxHeight = 0; for (var i = 0; i < divs.length; i++) {
  if (document.getElementById(divs[i]) != null)
   {var div = document.getElementById(divs[i]); div.style.height = null; if (div.offsetHeight > maxHeight) maxHeight = div.offsetHeight; }
  }
  for (var i = 0; i < divs.length; i++) {
   if (document.getElementById(divs[i]) != null)
    { var div = document.getElementById(divs[i]); div.style.height = maxHeight + 'px'; if (div.offsetHeight > maxHeight) { div.style.height = (maxHeight - (div.offsetHeight - maxHeight)) + 'px'; } }
  }
 }
}

function initTall() {
 if (document.getElementById) { for (var i = 0; i < divs.length; i++)
  { if (document.getElementById(divs[i]) != null) { TextResizeDetector.TARGET_ELEMENT_ID = divs[i]; break; } }
 setTall(); } 
}

addEvent(window, 'load', initTall, false);
addEvent(window, 'resize', setTall, false);

TextResizeDetector = function() {
 var el  = null;
 var iIntervalDelay  = 200;
 var iInterval = null;
 var iCurrSize = -1;
 var iBase = -1;
 var aListeners = [];
 var createControlElement = function() {
  el = document.createElement('span');
  el.id='textResizeControl';
  el.innerHTML='&nbsp;';
  el.style.position="absolute";
  el.style.left="-9999px";
  var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID);
  if (elC)
   elC.insertBefore(el,elC.firstChild);
   iBase = iCurrSize = TextResizeDetector.getSize();
  };

 function _stopDetector() {
  window.clearInterval(iInterval);
  iInterval=null;
 };
 function _startDetector() {
  if (!iInterval) {
   iInterval = window.setInterval('TextResizeDetector.detect()',iIntervalDelay);
  }
 };
 function _detect() {
  var iNewSize = TextResizeDetector.getSize();
   if(iNewSize!== iCurrSize) {
    for (var i=0;i <aListeners.length;i++) {
     aListnr = aListeners[i];
     var oArgs = {  iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize};
     if (!aListnr.obj) {
      aListnr.fn('textSizeChanged',[oArgs]);
     }
     else  {
      aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]);
     }
    }
   }
   return iCurrSize;
  };
  var onAvailable = function() {
   if (!TextResizeDetector.onAvailableCount_i ) {
    TextResizeDetector.onAvailableCount_i =0;
   }
   if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) {
    TextResizeDetector.init();
    if (TextResizeDetector.USER_INIT_FUNC){
     TextResizeDetector.USER_INIT_FUNC();
    }
    TextResizeDetector.onAvailableCount_i = null;
   }
   else {
    if (TextResizeDetector.onAvailableCount_i<600) {
     TextResizeDetector.onAvailableCount_i++;
     setTimeout(onAvailable,200)
    }
   }
  };
  setTimeout(onAvailable,500);
  return {
   init: function() {
    createControlElement();
    _startDetector();
   },
   addEventListener:function(fn,obj,bScope) {
    aListeners[aListeners.length] = {
     fn: fn,
     obj: obj
    }
    return iBase;
   },
  detect:function() {
 return _detect();
 },
 getSize:function() {
  var iSize;
  return el.offsetHeight;
 },
 stopDetector:function() {
  return _stopDetector();
 },
 startDetector:function() {
  return _startDetector();
 }
}
}();

TextResizeDetector.TARGET_ELEMENT_ID = 'doc';
TextResizeDetector.USER_INIT_FUNC = function() {
 var iBase = TextResizeDetector.addEventListener(setTall, null);
};
