﻿function $() {
var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);	
		if (arguments.length == 1)
			return element;	
		elements.push(element);
	}	
	return elements;
}


function checkObjType(objOrId)
{
	if (objOrId!=null){                     
						if(typeof objOrId=="object"){
									whichObj=objOrId;                                  
						}
						else if(typeof objOrId=="string"){
									whichObj=document.getElementById(objOrId)                              
						}           
			}
			else 
			{                       
						whichObj=false;
			}
			return whichObj;
}


// these functions prevent mouseovers from bubbling up into
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 checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}



		function areElementsOverlapping(element1,element2){
	         var ele1LeftBorder=xPageX(element1);
	         var ele1RightBorder=xPageX(element1)+element1.offsetWidth;
	         var ele1TopBorder=xPageY(element1);
	         var ele1BottomBorder=xPageY(element1)+element1.offsetHeight;
	         
	         var ele2LeftBorder=xPageX(element2);
	         var ele2RightBorder=xPageX(element2)+element2.offsetWidth;
	         var ele2TopBorder=xPageY(element2);
	         var ele2BottomBorder=xPageY(element2)+element2.offsetHeight;
	        	        	              
			 var horizontalOverlap=(
	                        (ele1LeftBorder<ele2LeftBorder &&  ele1RightBorder>ele2LeftBorder) || (ele1LeftBorder<ele2RightBorder && ele1RightBorder>ele2RightBorder) || ( ele1LeftBorder>ele2LeftBorder && ele1RightBorder<ele2RightBorder) ||
	                        (ele2LeftBorder<ele1LeftBorder &&  ele2LeftBorder>ele1RightBorder) || (ele2RightBorder<ele1LeftBorder&& ele2RightBorder>ele1RightBorder) || ( ele2LeftBorder>ele1LeftBorder && ele2RightBorder<ele1RightBorder)
	                       );
						   
			 var verticalOverlap=(
	                        (ele1TopBorder<ele2TopBorder &&  ele1BottomBorder>ele2TopBorder) || (ele1TopBorder<ele2BottomBorder && ele1BottomBorder>ele2BottomBorder) || (ele1TopBorder>ele2TopBorder && ele1BottomBorder<ele2BottomBorder) ||
	                        (ele2TopBorder<ele1TopBorder &&  ele2TopBorder>ele1BottomBorder) || (ele2BottomBorder<ele1TopBorder && ele2BottomBorder>ele1BottomBorder) || (ele2TopBorder>ele1TopBorder && ele2BottomBorder<ele1BottomBorder)
	                     );
					
         // check for the 5 cases of overlap         
         if (horizontalOverlap && verticalOverlap){
                return true;
            }
            else
            {
                return false;
            }
        }
        
        function hideSelectsIfOverlapping(elementsArray){
            if (is_ie6){
                 var allSelects=document.getElementsByTagName("select");             
                 //iterate through elements and hide them if they overlap
                 for (var x=0;x<elementsArray.length;x++){
                    for (var y=0;y<allSelects.length;y++){  
						var overlapElement=checkObjType(elementsArray[x]);
						if (areElementsOverlapping(overlapElement,allSelects[y])){
                            allSelects[y].style.visibility="hidden";
                        }
                    }
                 }
           }
        }
        
        function showSelectBox(){
            if (is_ie6){
                //show selects to fix annoying select bug in ie
                var allSelects=document.getElementsByTagName("select");
                for(var x=0;x<allSelects.length;x++){		
	                allSelects[x].style.visibility="visible";	
                }
            }
        }