UKTV.HomepageThumbnails = new function() {
	this.NS = 'UKTV.HomepageThumbnails';
	var _container = false;
	var _dtActive = false;
	var _ddActive = false;
	var _toolTip = false;
	var _toolTipInner = false;
	var _toolTipOffsetX = 0;
	var _toolTipOffsetY = 0;


	var showToolTip = function(elem) {
		var x = YAHOO.util.Dom.getX(elem);
		var y = YAHOO.util.Dom.getY(elem);

		YAHOO.util.Dom.setStyle(_toolTip, 'display', 'block');
		YAHOO.util.Dom.setX(_toolTip, x + _toolTipOffsetX);
		YAHOO.util.Dom.setY(_toolTip, y + _toolTipOffsetY);
	}
	
	
	var stateTrigger = function(e) {
		var ev = YAHOO.util.Event.getEvent(e);
		var node = YAHOO.util.Event.getTarget(ev);

		if(node.nodeName.toLowerCase() == 'img') {
			var dt = YAHOO.util.Dom.getAncestorByTagName(node, 'dt');
			var dd = YAHOO.util.Dom.getNextSibling(dt);
			
			YAHOO.util.Dom.removeClass(_dtActive, 'active');
			YAHOO.util.Dom.removeClass(_ddActive, 'active');

			YAHOO.util.Dom.addClass(dt, 'active');
			YAHOO.util.Dom.addClass(dd, 'active');
			
			_dtActive = dt;
			_ddActive = dd;

			showToolTip(_dtActive);
		}
	}
	

	this.init = function()  {
		_container = YAHOO.util.Dom.get('homepage-thumbnails');
		
		if(_container) {
			var activeNodes = YAHOO.util.Dom.getElementsByClassName('active', false,  _container);
			var i = activeNodes.length;
			
			while(i--) {
				if(activeNodes[i].nodeName.toLowerCase() == 'dd') {
					_ddActive = activeNodes[i];
				}

				if(activeNodes[i].nodeName.toLowerCase() == 'dt') {
					_dtActive = activeNodes[i];
				}
			}
			
			_toolTip = document.createElement('div');
			_toolTipInner = document.createElement('span');
			YAHOO.util.Dom.addClass(_toolTip, 'tooltip');
			_toolTip.appendChild(_toolTipInner);
			_container.appendChild(_toolTip);
			
			
			var regX = /offset-x-([0-9]+)/i;
			var regY = /offset-y-([0-9]+)/i;
			arrX = regX.exec(_container.className);
			arrY = regY.exec(_container.className);
			
			_toolTipOffsetX = (arrX && arrX[1]) ? parseInt(arrX[1]) : 0;
			_toolTipOffsetY = (arrY && arrY[1]) ? parseInt(arrY[1]) : 0;

			showToolTip(_dtActive);
			
			YAHOO.util.Event.addListener(_container, 'mouseover', stateTrigger);
		}
	}
	
	UKTV.loader.registerObj(this);
}

