﻿


function initTipPanel(caption, tip) {
    var oDv=document.createElement("div");
    var dvHdr=document.createElement("div");
    var dvBdy=document.createElement("div");
    
	oDv.appendChild(dvHdr);
	oDv.appendChild(dvBdy);
	document.body.appendChild(oDv);
	oDv.style.zIndex = 9999;
		
	dvHdr.style.fontWeight='bold';
	dvHdr.style.width='304px';
	dvHdr.style.fontFamily='Tahoma';
	dvHdr.style.border='1px solid #A5CFE9';
	dvHdr.style.padding='3';
	dvHdr.style.fontSize='11';
	dvHdr.style.color='#4B7A98';
	dvHdr.style.background='#D5EBF9';
//	dvHdr.style.filter='alpha(opacity=85)'; // IE
//	dvHdr.style.opacity='0.85'; // FF
	dvBdy.style.borderBottom='1px solid #A5CFE9';
	dvBdy.style.borderLeft='1px solid #A5CFE9';
	dvBdy.style.borderRight='1px solid #A5CFE9';
	dvBdy.style.width='304px';
	dvBdy.style.fontFamily='Tahoma';
	dvBdy.style.fontSize='11';
	dvBdy.style.padding='3';
	dvBdy.style.color='#1B4966';
	dvBdy.style.background='#F5F5F5';
//	dvBdy.style.filter='alpha(opacity=85)'; // IE
//	dvBdy.style.opacity='0.85'; // FF

	dvHdr.innerHTML = caption;
	dvBdy.innerHTML = tip;
	
	oDv.id = "divTT";
    return oDv;
}


function showTipPanel(e, caption, tip, dY) {
    var oDv = document.getElementById("divTT");
    if (oDv) return false; 
   

    var evt = e?evt=e:evt=event;
	
	var panel = initTipPanel(caption, tip);
	
	var sender = evt.target?evt.target:evt.srcElement;	
  
    var curleft = sender.offsetLeft;
    
    var curtop = sender.offsetTop;
    var curheight = sender.clientHeight;
    
    if (sender.type == "select-one") {curheight = 14}; 
          
    panel.style.position="absolute";
    panel.style.left = curleft + "px";
    panel.style.top = (curtop + curheight + 2 + dY) + "px";
    panel.style.visibility = "visible";
    
    document.body.appendChild(panel);
	
    
//    var cap = document.getElementById("lblCaption")
//    cap.innerHTML = caption;
//    var txt = document.getElementById("lblText")
//    txt.innerHTML = tip;
    
}

function hideTipPanel(e) {

//    var evt = e?evt=e:evt=event;	
//	var sender = evt.target?evt.target:evt.srcElement;	
//    alert(sender.name);
  
    var oDv = document.getElementById("divTT");
    if (oDv == null) return; 
    document.body.removeChild(oDv);
}

function Left(elem){	
	var x=0;
	if (elem.calcLeft)
		return elem.calcLeft;
	var oElem=elem;
	while(elem){
		 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderLeftWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderLeftWidth);
		 x+=elem.offsetLeft;
		 elem=elem.offsetParent;
	  } 
	oElem.calcLeft=x;
	return x;
	}

function Top(elem){
	 var x=0;
	 if (elem.calcTop)
	 	return elem.calcTop;
	 var oElem=elem;
	 while(elem){		
	 	 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderTopWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderTopWidth); 
		 x+=elem.offsetTop;
	         elem=elem.offsetParent;
 	 } 
 	 oElem.calcTop=x;
 	 return x;
 	 
}

function getPos(n) { 
var t = this, x = 0, y = 0, e, d = t.doc, r; 
n = t.get(n); 
// Use getBoundingClientRect on IE, Opera has it but it's not perfect 
if (n && isIE) {  
    n = n.getBoundingClientRect();  
    e = t.boxModel ? d.documentElement : d.body;  
    x = t.getStyle(t.select('html')[0], 'borderWidth'); // Remove border  
    x = (x == 'medium' || t.boxModel && !t.isIE6) && 2 || x;  
    n.top += t.win.self != t.win.top ? 2 : 0; // IE adds some strange extra cord if used in a frameset  
    alert(x);
    alert(y);
    return {x : n.left + e.scrollLeft - x, y : n.top + e.scrollTop - x}; 
} 
r = n; 
while (r) {  
    x += r.offsetLeft || 0;  
    y += r.offsetTop || 0;  
    r = r.offsetParent; 
} 
r = n; 
while (r) {  
    // Opera 9.25 bug fix, fixed in 9.50  
    if (!/^table-row|inline.*/i.test(t.getStyle(r, "display", 1))) {   
        x -= r.scrollLeft || 0;   
        y -= r.scrollTop || 0;  
    }  
    r = r.parentNode;  
    if (r == d.body)   
        break; 
    } 
    alert(x);
    alert(y);
return {x : x, y : y};
}


