YAHOO.namespace('TE_HImageHighlight.panel');YAHOO.TE_HImageHighlight.panel.panels = [];

function createHImageHighlight(id_in, title_in, thumb_url, context_in,iwidth,iheight, closeOnMouseOut){
    YAHOO.util.Event.addListener(document, 'mouseover', HImageHighlightMouseOver, [id_in, title_in, thumb_url, context_in,iwidth,iheight, closeOnMouseOut]);
}
function HImageHighlightMouseOver(evt, k){

    var 
    id_in = k[0],
    title_in = k[1], 
    thumb_url = k[2], 
    context_in = k[3],
    iwidth = k[4],
    iheight = k[5],
    closeOnMouseOut = k[6];
    
    var $E   = YAHOO.util.Event;
    var tec = YAHOO.TE_HImageHighlight.panel.panels;    
    
	evt = (evt) ? evt : (window.event) ? window.event : null;		
	if (evt) 
	{
		mX = $E.getPageX(evt); 
		mY = $E.getPageY(evt);
		
	}
	if(!tec[id_in]){
	    
		tec[id_in] = new YAHOO.widget.Panel(id_in, { width:iwidth, height:(iheight+23), visible:true, draggable:true, close:((closeOnMouseOut)?false:true),
											constraintoviewport:true,x:mX,y:mY, context:[context_in], underlay:'matte',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.01}} );   
		
		tec[id_in].setHeader("<div class='tl'></div><span>"+title_in+"<span><div class='tr'></div>"); 
		tec[id_in].setBody("<img src='"+thumb_url+"' width='"+iwidth+"' height='"+iheight+"'>");   
		tec[id_in].render(document.body);
	}else{
		tec[id_in].show();
	}
	for (key in tec){if(key != id_in){tec[key].hide();}}
	if(closeOnMouseOut){
		YAHOO.util.Event.addListener(document, 'mousemove', closeHImageHighlight, id_in);
	}
	$E.removeListener(document, 'mouseover', HImageHighlightMouseOver);
}


function closeHImageHighlight(evt, key){
	var $E   = YAHOO.util.Event,
		$D	 = YAHOO.util.Dom,
		mX, mY, regImgTh,
		tec = YAHOO.TE_HImageHighlight.panel.panels;
	
	function getThumb(node) {
        if(node.nodeType == 1 && node.tagName == 'IMG'){return node;}; 
        node = node.firstChild; 
        while (node) { 
          result = getThumb(node); 
          if(result){	return result;}
          node = node.nextSibling; 
        } 
        return;
  	} 
    
	try{
		if(!tec[key]){return;}
		thumb = getThumb(tec[key].cfg.getProperty('context')[0]);
		if(thumb){
			regImgTh = $D.getRegion(thumb);
			if (evt) {
			  mX = $E.getPageX(evt); mY = $E.getPageY(evt);
			  if((mX < regImgTh['left']) || (mX > regImgTh['right']) || (mY < regImgTh['top']) || (mY > regImgTh['bottom'])){
				if(tec[key]){tec[key].hide(); $E.removeListener(document, 'mousemove', closeHImageHighlight);}
			  }	
			}
		}
				
	}catch(e){} 
}
function createHImageHighlight_t(id_in, title_in, body_in, context_in,closeOnMouseOut){
	var tec = YAHOO.TE_HImageHighlight.panel.panels;
	
	YAHOO.util.Event.addListener(document, 'mouseover', HImageHighlight_tMouseOver, [id_in, title_in, body_in, context_in, closeOnMouseOut]);
}

function HImageHighlight_tMouseOver(evt, k){

    var 
    id_in = k[0],
    title_in = k[1], 
    body_in = k[2], 
    context_in = k[3],
    closeOnMouseOut = k[4];
    
    var $E   = YAHOO.util.Event;
    var tec = YAHOO.TE_HImageHighlight.panel.panels;
    
	evt = (evt) ? evt : (window.event) ? window.event : null;		
	if (evt) 
	{
		mX = $E.getPageX(evt); 
		mY = $E.getPageY(evt);
		
	}
	if(!tec[id_in]){
		tec[id_in] = new YAHOO.widget.Panel(id_in, { visible:true, draggable:true, close:true,
											constraintoviewport:true, x:mX, y:mY, context:[context_in], underlay:'shadow',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.01}} );   
		tec[id_in].setHeader("<div class='tl'></div><span>"+title_in+"<span><div class='tr'></div>");  
		tec[id_in].setBody("<div class='gd'>"+body_in+"</div>");   
		tec[id_in].render(document.body);
	}else{
		tec[id_in].show();
	}
	for (key in tec){if(key != id_in){tec[key].hide();}}
	if(closeOnMouseOut){
		YAHOO.util.Event.addListener(document, 'mousemove', closeHImageHighlight_t, id_in);
	}
	$E.removeListener(document, 'mouseover', HImageHighlight_tMouseOver);
	
	
}


function closeHImageHighlight_t(evt, key){
	var $E   = YAHOO.util.Event;
	var tec = YAHOO.TE_HImageHighlight.panel.panels;
	try{
		if (key){tec[key].hide();$E.removeListener(document, 'mousemove', closeHImageHighlight_t);}
		else{for (key in tec){tec[key].hide();}}
	}catch(e){} 
	
    
	
}

