
function $_(elementId)
{
	return document.getElementById(elementId);
}

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

//function checks if mouse pointer has just left element
function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function ExpanderMouseOver(elementRef,evt,DropDownClientId) 
{
	$_(DropDownClientId+"_ItemsContainer").style.display="block";
} 

function ExpanderClick(elementRef,evt,DropDownClientId) 
{
	HideItems(elementRef,evt,DropDownClientId,'N'); 	
}

function HideItems(elementRef,evt,DropDownClientId,CheckMousePointer) 
{
	if (checkMouseLeave($_(DropDownClientId+"_Container"),evt) || CheckMousePointer!="Y")
	{
		$_(DropDownClientId+"_ItemsContainer").style.display="none";	
	}
}

function ItemMouseOver(elementRef,evt,DropDownClientId,ItemIndex) 
{
	$_(DropDownClientId+"_"+ItemIndex+"_ListItem").className="HooveredListItem";	
}

function ItemMouseOut(elementRef,evt,DropDownClientId,ItemIndex) 
{
	$_(DropDownClientId+"_"+ItemIndex+"_ListItem").className="ListItem";	
}
function ItemClick(elementRef,evt,DropDownClientId,ItemIndex,CausesPostBack) 
{
	HideItems(elementRef,evt,DropDownClientId,'N'); 
	$_(DropDownClientId).selectedIndex= parseInt(ItemIndex);
	$_(DropDownClientId+"_SelectedListItem").childNodes[0].innerHTML = $_(DropDownClientId+"_"+ItemIndex+"_ListItem").innerHTML; 
	if ($_("ResponsePanel")!=null)
	{
		$_("ResponsePanel").style.display="none";
	}
	if (CausesPostBack == "Y")
	{
		__doPostBack('__Page', 'MyCustomArgument');
	}
}