// define array of objects to validate

var PageObjects = new Array();

function AddPageObject(elemname, tttext)
{
	var o = new Object();
	o.Name = elemname;
	o.regtipText = tttext;

	PageObjects.push(o);
}


//	Validate fields

function Validate(obj)
{
	doValidate(obj);

	regtip.Hide();

	return true;
}	

function doValidate(obj)
{
	if(obj.value == ""){
	  
		var val = document.getElementById(obj.id + "_Val");
		if(val != null)
		{
			val.style.visibility = "visible";
		}
	}else{
	  var val = document.getElementById(obj.id + "_Val");
		if(val != null)
		{
			val.style.visibility = "hidden";
		}
  }
	
}

// regtip functionality

var regtip = {
	Show :	function(obj)
			{
				//alert(obj.id);
				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(document.getElementById(obj.id))-150, DL_GetElementTop(obj)-141); // 200 / 67
					}
				}
	
				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;
			}
	}


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;                           
}