var mh_general = {
	sToolTipImg : 'typo3conf/ext/mh_lib/lib/js/tooltiparrow.gif',
	
	show : function(_sId) {
		$(_sId).show();
	},

	hide : function(_sId) {
		$(_sId).hide();
	},

	toggle : function(_sId) {
		$(_sId).toggle();
	},

	inArray : function(_mNeedle, _aHaystack, _bStrict) {
	    var bStrict = !!_bStrict, sKey;
	    for(sKey in _aHaystack) 
			if((bStrict && _aHaystack[sKey] === _mNeedle) || (!bStrict && _aHaystack[sKey] == _mNeedle))
				return true;
		return false;
	},
	
	defined : function(_oElem) {
		return (typeof(_oElem) != 'undefined');
	},
	
	getParent : function(_oElem, _sChild, _sChildAlternative) {
		if (_oElem !== null && _oElem.nodeName) {
			_sChild = _sChild.toUpperCase();
			var sChild2 = (!!_sChildAlternative ? _sChildAlternative.toUpperCase() : false);
			if (_oElem.nodeName.toUpperCase() == _sChild || (sChild2 && sChild2 == _oElem.nodeName.toUpperCase())) return _oElem;
			while(_oElem = _oElem.parentNode) if(_oElem.nodeName && (_oElem.nodeName.toUpperCase() == _sChild || (sChild2 && sChild2 == _oElem.nodeName.toUpperCase()))) return _oElem;
		}
		alert('An error appeared in JSlib mh_general.\nIf this happens regularly please inform your system administrator.');
		return null;
	},

	getAbsoluteOffsetTop : function(_oElem) {
		if(typeof(_oElem) != 'object') return 0;
		var nTop = _oElem.offsetTop, oParent = _oElem.offsetParent;
		while(oParent != document.body) {
			nTop += oParent.offsetTop;
			oParent = oParent.offsetParent;
		}
		return nTop;
	},

	getAbsoluteOffsetLeft : function(_oElem) {
		if(typeof(_oElem) != 'object') return 0;
		var nLeft = _oElem.offsetLeft, oParent = _oElem.offsetParent;
		while (oParent != document.body) {
			nLeft += oParent.offsetLeft;
			oParent = oParent.offsetParent;
		}
		return nLeft;
	},
	
	enableTitleToolTips : function() {
		$$('.mh_tooltip[title]').each(function(oElem, i) {
			if(i == 0) {
				if(!$('mh_tooltip')) {
					/*
					$(oElem).insert({ bottom: '<div id="mh_tooltip"></div>' + 
						'<img id="mh_tooltipimg" src="' + mh_general.sToolTipImg + '" alt="Tooltip pointer" />' });
					$('mh_tooltip').setStyle({
						position: 'absolute',
						width: '150px',
						border: '2px solid #C0C09F',
						padding: '6px 0px 0px 10px',
						backgroundColor: '#FFFFCC',
						zIndex: '100'
					});
					$('mh_tooltipimg').setStyle({
						position: 'absolute',
						zIndex: '101'
					});
					mh_general.hide('mh_tooltip');
					mh_general.hide('mh_tooltipimg');
					*/
					$(document.body).insert({ bottom: '<div id="mh_tooltip"><div id="mh_tooltip-box-top"></div><div id="mh_tooltip-box"></div><div id="mh_tooltip-box-bottom"></div></div>' });
					$('mh_tooltip').setStyle({
					    position: 'absolute',
					    width: '149px',
					    fontSize: '10px',
					    zIndex: '400',
					    textAlign: 'left'
					});
					$('mh_tooltip-box-top').setStyle({
					    background: 'transparent no-repeat scroll 0 0',
					    width: '145px',
					    height: '12px',
					    backgroundImage: 'url("typo3conf/ext/mh_lib/res/tooltip.gif")'
					});
					$('mh_tooltip-box').setStyle({
					    backgroundColor: '#FFC',
					    borderLeft: '1px solid #000',
					    borderRight: '1px solid #000',
					    padding: '0',
					    margin: '0',
					    fontSize: '11px',
					    width: '142px',
					    color: '#000',
					    fontWeight: 'normal',
					    textAlign: 'center'
					});
					$('mh_tooltip-box-bottom').setStyle({
					    background: 'transparent no-repeat scroll 0 -95px',
					    backgroundImage: 'url("typo3conf/ext/mh_lib/res/tooltip.gif")',
					    width: '145px',
					    height: '5px'
					});
					mh_general.hide('mh_tooltip');
				}
			}
			var aTooltip = oElem.readAttribute('title').split('::');
			if(aTooltip.size() > 1) oElem.writeAttribute({ tooltip: (aTooltip[0] + '<br />' + aTooltip.slice(1).join('::')), title: '' });
			else oElem.writeAttribute({ tooltip: (aTooltip[0]), title: '' });
			oElem.observe('mouseover', function() {
				/*
				$('mh_tooltip').innerHTML = oElem.readAttribute('tooltip');
				var oOffset = this.cumulativeOffset(), oDim = this.getDimensions();
				$('mh_tooltip').setStyle({ left: (oOffset.left + oDim.width - 20) + 'px', top: (oOffset.top + oDim.height + 13) + 'px' });
				$('mh_tooltipimg').setStyle({ left: (oOffset.left + oDim.width - 8) + 'px', top: (oOffset.top + oDim.height) + 'px' });
				//alert('hovered\nleft: '+oOffset.left+'\ntop: '+oOffset.top+'\nwidth: '+oDim.width+'\nheight: '+oDim.height);
				mh_general.show($('mh_tooltip'));
				mh_general.show('mh_tooltipimg');
				*/
				var sHtml = oElem.readAttribute('tooltip');
				if(sHtml != '') {
				    $('mh_tooltip-box').innerHTML = sHtml;
				    var oOffset = $(this).cumulativeOffset(), oDim = $(this).getDimensions();
				    $('mh_tooltip').setStyle({ left: (oOffset.left - 99) + 'px', top: (oOffset.top + oDim.height) + 'px' });
				    mh_general.show('mh_tooltip');
				}
			});
			//oElem.observe('mouseout', function() { mh_general.hide('mh_tooltip'); mh_general.hide('mh_tooltipimg'); });
			oElem.observe('mouseout', function() { mh_general.hide('mh_tooltip'); });
		});
	}
};

