// define array of objects to validate

var PageObjects = new Array();

function AddPageObject(elemname, tttext, tttextposition)
{
	var o = new Object();
	o.Name = elemname;
	o.regtipText = tttext;
	o.LeftPosition = tttextposition;

	PageObjects.push(o);
}

// regtip functionality
var regtip = {
	Show :	function(obj)
			{
				var i;
				for(i = 0; i < PageObjects.length; i++)
					if(PageObjects[i].Name == obj.id) {
						break;
					}

				if(i < PageObjects.length)
				{
					tt = PageObjects[i].regtipText;
					
					if(tt != null)
					    this.Set(tt, (DL_GetElementLeft(obj) + PageObjects[i].LeftPosition) , DL_GetElementTop(obj) - 4);
				}
				return true;
			},
	Hide :	function() { this.Set("", -1000, -1000); },
	Set :	function(text, x, y)
			{
				var content = document.getElementById('regtipcontent');
				content.innerHTML = text;
				var tt = document.getElementById('regtip');
				var ttend = document.getElementById('regtipend');
				var h = DL_GetElementTop(ttend)+3 - DL_GetElementTop(tt);
				tt.style.left = x;
				// tt.style.top = y - h/2;
				tt.style.top = y;
			}
	}

function DL_GetElementLeft(eElement)
{
   if (!eElement && this)  eElement = this;
   
   var DL_bIE = document.all ? true : false; 
   var nLeftPos = eElement.offsetLeft;       
   var eParElement = eElement.offsetParent;  

   while (eParElement != null)
   {                                         
      if(DL_bIE)                             
      {
         if( (eParElement.tagName != "TABLE") && (eParElement.tagName != "BODY") )
         {                                   
            nLeftPos += eParElement.clientLeft; 
         }
      }
      else                                   
      {
         if(eParElement.tagName == "TABLE")  
         {                                   
            var nParBorder = parseInt(eParElement.border);
            if(isNaN(nParBorder))            
            {                                
               var nParFrame = eParElement.getAttribute('frame');
               if(nParFrame != null)         
               {
                  nLeftPos += 1;             
               }
            }
            else if(nParBorder > 0)          
            {
               nLeftPos += nParBorder;       
            }
         }
      }
      nLeftPos += eParElement.offsetLeft;    
      eParElement = eParElement.offsetParent; 
   }                                         
   return nLeftPos;                          
}

/* returns true topPos */
function DL_GetElementTop(eElement)
{
   if (!eElement && this) eElement = this; 
   
   var DL_bIE = document.all ? true : false; 
   var nTopPos = eElement.offsetTop;         
   var eParElement = eElement.offsetParent;  

   while (eParElement != null)
   {                                         
      if(DL_bIE)                             
      {
         if( (eParElement.tagName != "TABLE") && (eParElement.tagName != "BODY") )
         {                                   
            nTopPos += eParElement.clientTop; 
         }
      }
      else                                   
      {
         if(eParElement.tagName == "TABLE")  
         {                                   
            var nParBorder = parseInt(eParElement.border);
            if(isNaN(nParBorder))            
            {                                
               var nParFrame = eParElement.getAttribute('frame');
               if(nParFrame != null)         
               {
                  nTopPos += 1;              
               }
            }
            else if(nParBorder > 0)          
            {
               nTopPos += nParBorder;        
            }
         }
      }

      nTopPos += eParElement.offsetTop;      
      eParElement = eParElement.offsetParent; 
   }                                         
   return nTopPos;                           
}