//Core Functions
function DEBUG()
{
   var a=DEBUG.arguments;
   for(i=0;i<a.length;i++)
   {
      alert(a[i].toSource());
   }
}

function isDef()
{
   for(var i=0;i<arguments.length;i++)
   {
      if('undefined' == typeof(arguments[i]))
         return false;
   }
	return true;
}

var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
var ie=(document.all)?1:0;
var ns6=(document.getElementById&&!document.all)?1:0;

function getPageX(e)
{
	var x = 0;
   while (e)
   {
      if( e.offsetLeft )
         x += e.offsetLeft;
      e = e.offsetParent ? e.offsetParent: null;
   }
	return x;
}

function getPageY(e)
{
	var y = 0;
   while (e)
   {
      if( e.offsetLeft )
         y += e.offsetTop;
      e = e.offsetParent ? e.offsetParent: null;
   }
	return x;
}

function getOffsetX(a_e)
{
   var offsetX, pageX;
   var oe;
	var e = a_e || window.event;
	if(!e) return;
   if(e.target)
   {
      oe = e.target;
   }
   else if(e.srcElement)
   {
       oe = e.srcElement;
   }
   if(e.pageX)
   {
   	pageX = e.pageX;
   }
   else if(e.clientX)
   {
   	pageX = e.clientX + e.scrollLeft;
   }
   if(e.offsetX)
   {
   	offsetX = e.offsetX;
   }
   else if(e.layerX)
   {
   	offsetX = e.layerX;
   }
   else
   {
	  offsetX = pageX - getPageX(oe);
   }
   return offsetX;
}

function getOffsetY(a_e)
{
   var offsetY, pageY;
   var oe;
	var e = a_e || window.event;
	if(!e) return;
   if(e.target)
   {
      oe = e.target;
   }
   else if(e.srcElement)
   {
       oe = e.srcElement;
   }
   if(e.pageX)
   {
   	pageX = e.pageX;
   }
   else if(e.clientX)
   {
   	pageX = e.clientY + e.scrollTop;
   }
   if(e.offsetX)
   {
   	offsetY = e.offsetY;
   }
   else if(e.layerY)
   {
   	offsetY = e.layerY;
   }
   else
   {
	  offsetY = pageY - getPageY(oe);
   }
   return offsetY;
}

function ei(id)
{
   if(id == null)
   {
      return null;
   }
   if('string' != typeof(id))
   {
      return id;
   }
   if(document.getElementById && document.getElementById(id))
   {
      return document.getElementById(id);
   }
   else if (document.all && document.all(id))
   {  
      return document.all(id);
   } 
   else if (document.layers && document.layers[id])
   { 
      return document.layers[id];
   }
   else
   {
      return null;
   }
}

function en(name)
{
   if(name == null)
   {
      return null;
   }
   if('string' != typeof(name))
   {
      return name;
   }
   if(document.getElementsByName && document.getElementsByName(name))
   {
      return document.getElementsByName(name);
   }
   else if (document.all && document.all(name))
   {  
      return document.all(name);
   } 
   else if (document.layers && document.layers[name])
   { 
      return document.layers[name];
   }
   else
   {
      return null;
   }
}

function et(tag)
{
   return document.getElementsByTagName(tag)
}

function etn(tag, name)
{
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function etc(a_szTag, a_szClassName)
{
      var oElementCollection = document.getElementsByTagName(a_szTag);
      var oCollecction = new Array();
      var szClassName;
      for(var i = 0, iCollection = 0; i < oElementCollection.length; i++)
      {
         szClassName = oElementCollection[i].className;
         if(szClassName == a_szClassName)
         {
            oCollecction[iCollection] = oElementCollection[i];
            iCollection++;
         }
     }
     return oCollecction;
}

function eta(tag, attrib, value)
{
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute(attrib);
          if(att == value) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function insertElement(a_oContainer, a_szTag, a_arrTagAttr)
{
   var newElement = document.createElement(a_szTag);
   if('undefined' == typeof(a_oContainer)) return null;
   
   for(oTagAttr in a_arrTagAttr)
   {
      newElement.setAttribute(oTagAttr,a_arrTagAttr[oTagAttr]);
      if(oTagAttr == "style")
      {
         var aStyles = String(a_arrTagAttr[oTagAttr]).split(";");
         var oStyle = newElement.getAttribute("style");
         for(var i = 0; i < aStyles.length; i++)
         {
            var aParts = String(aStyles[i]).split(':');
            try
            {
            	newElement.style.setAttribute(aParts[0],aParts[1],0);
            	newElement.style[aParts[0]] = aParts[1];
            }
            catch(e)
            {
            }
         } //End for
      } 
   } //End for
   a_oContainer.appendChild(newElement);
   
   return newElement;
}

function getElementFromEvent(a_e)
{
   a_e = a_e || window.event;
	if('undefined' != typeof(a_e.srcElement))
	{
		 return a_e.srcElement;
	}
	else if('undefined' != typeof(a_e.target))
	{
		return a_e.target;
	}
   return null;
}
