var Dom = YAHOO.util.Dom;
var Event=YAHOO.util.Event;
var tt_view_w;
var tt_view_h;
var screenPos;

function ttResetSize(e) {
	tt_view_w=Dom.getViewportWidth();
	tt_view_h=Dom.getViewportHeight();
    if (YAHOO.env.ua.ie == 6 )
    {
//	tt_view_w= document.getElementsByTagName('body')[0].clientTop;
//	tt_view_h= document.getElementsByTagName('body')[0].clientHeight;
}
}

function ttResetScroll(e) {
	screenPos={x:Dom.getDocumentScrollLeft(),y:Dom.getDocumentScrollTop()};
}



var yh_tt;


var tt_inner=document.createElement('div');
tt_inner.id='tt_inner';
tt_inner.className='yh_tooltip';

var tt_div=document.createElement('div');
tt_div.id='yh_tt';
tt_div.className='yh_tt_div';
tt_div.appendChild(tt_inner);

function init_tt() {
	document.body.appendChild ( tt_div );
	yh_tt=new YAHOO.widget.Overlay('yh_tt',{visible:false});
	yh_tt.setBody ( tt_div );
	yh_tt.render(document.body);
	tt_div.style.display='';
	Event.addListener ( window, 'resize', ttResetSize );
	Event.addListener ( window, 'scroll', ttResetScroll );
	ttResetSize();
	ttResetScroll();
}

Event.onDOMReady( init_tt );


function _moveNodes(dst,src) {
 var c; // tmp
 // empty dst
 while ( (c=dst.firstChild) ) {
  dst.removeChild(c);
 }
 // move src to dst
 while ( (c=src.firstChild) ) {
  dst.appendChild(src.removeChild(c));  
 }
}

var tt_curElem;
var tt_size={w:379,h:415}; // initial size..

function showTip(e,elem) {
	//elem=Event.getTarget(e);
	var reposition=tt_curElem != elem;
	if (tt_curElem != elem) {
		if (!elem.tt_div) return; // have to try again :)
		if (tt_curElem) {
			// put tt_inner children back in tt_curElem
			//var td=YAHOO.util.Dom.get(tt_curElem.tt_div);
			/*for (var x=0;x<tt_inner.childNodes.length;++x) {
			 td.appendChild ( tt_inner.removeChild(tt_inner.childNodes[x]) );
			} */
			_moveNodes(Dom.get(tt_curElem.tt_div),tt_inner);
			
		}
		tt_div.innerHTML=''; // just a safety check
		tt_curElem=elem;
				

		_moveNodes ( tt_inner, Dom.get(elem.tt_div) );
		tt_div.appendChild ( tt_inner );
		
	}
	
	yh_tt.show();
		
	var r=Dom.getRegion('yh_tt');	
	tt_size={w:r.right-r.left,h:r.bottom-r.top};
	var p=Event.getXY(e);
	var newPos=[p[0]+15,p[1]+15];
	// reposition higher if div goes beyond bottom of screen
	// bottom of viewable screen:
	var bs=screenPos.y+tt_view_h;
	var swap=0;
	if (newPos[1] + 415 > bs) {
		swap++;
		newPos[1] -= 415 + newPos[1]-bs;
	}
		
	// right of screen
	var ls=screenPos.x+tt_view_w;
	if (newPos[0] + 379 > ls) {
		swap++;
		newPos[0] -= 379 + newPos[0]-ls;
	}
	
	// instead of moving, redo the orientation
	if (swap>1) {
		newPos[0]=p[0]-15-379;
		newPos[1]=p[1]-300;
	}
//	document.title = screenPos.y +"=" + tt_view_h  +"="+ document.getElementsByTagName('body')[0].clientTop;
		
	//logDebug ( newPos );
	yh_tt.cfg.setProperty(
		'xy', newPos);

	
	
}

function hideTip(e) {	
//	document.getElementById('tooltip_img').src = 'None';
	document.getElementById('tooltip_img').alt = 'Loading...';
	yh_tt.hide();
}


function createTip ( elem,divid ) {
	
	if (!yh_tt || !elem || elem.tt_div ) return; // not yet initialized	
	elem.tt_div=divid;	
	Event.addListener ( elem, 'mouseover', showTip, elem );
	Event.addListener ( elem, 'mouseout', hideTip );
	Event.addListener ( elem, 'mousemove', showTip, elem );
	
}

var objImage = new Image();
//objImage.src = '/img/msg_arrow.gif'; 

var _title = '';

function imageLoaded()
{                                                                                                                                          
    document.getElementById('tooltip_img').src = objImage.src;
    document.getElementById('tooltip_title').innerHTML = _title;
}

function doTooltip(elem, title, image_path) {
if (document.getElementById('tooltip')!=null)
 { 
  document.getElementById('tooltip_title').innerHTML = '';
  _title = title;
  //document.getElementById('tooltip_img').src = '/img/msg_arrow.gif';  
  objImage.src = image_path;
  objImage.onLoad=imageLoaded();
  document.getElementById('tooltip_img').alt = title;
  createTip(elem, 'tooltip');
  };
}



