
var CONFLICTED_ELEMENTS = new Array();

function showMiniHelp(name, im){

	elem = document.getElementById(name);
	elem.style.visibility = 'visible';

	X = _ucalculateX(im);
	if (X < elem.offsetWidth) {
		elem.style.left = X + 20 + 'px';
	} else {
		elem.style.left = X - elem.offsetWidth - 5 +'px';
	}

	Y = _ucalculateY(im);
//	alert(Y + elem.offsetHeight +"-"+window.screen.height)
//	if (Y + elem.offsetHeight < window.screen.height) {
		elem.style.top = Y + 20 + 'px';
//	} else {
//		elem.style.top = Y - elem.offsetHeight - 5 +'px';
//	}
	
	_uhideSelectElements(elem, name);
}

function closeMiniHelp(name){
	elem = document.getElementById(name);
	elem.style.visibility = 'hidden';
	_ushowSelectElements(name);
}


function _uhideSelectElements(obj, id){

	if (CONFLICTED_ELEMENTS == null)
	  CONFLICTED_ELEMENTS = new Array();
	else if (CONFLICTED_ELEMENTS[id] == null) {
		CONFLICTED_ELEMENTS[id] = new Array();
	}
	  
  var X1 = _ucalculateX(obj);
  var X2 = X1 + obj.offsetWidth;
  var Y1 = _ucalculateY(obj);
  var Y2 = Y1 + obj.offsetHeight;
  var elements = document.getElementsByTagName("select");
  var elements2 = document.getElementsByTagName("input");
  var j = 0;
  for(i = 0; i < elements.length; i++){
    var elem = elements[i];
    var elemX1 = _ucalculateX(elem);
    var elemY1 = _ucalculateY(elem);
    var elemX2 = elemX1+elem.offsetWidth;
    var elemY2 = elemY1+elem.offsetHeight;
    //alert(elemX1 +">=" +X1+","+elemX1 +"<=" +X2+","+elemY1 +">=" +Y1+","+elemY1 +"<=" +Y2);
    //alert(elemX2 +">=" +X1+","+elemX2 +"<=" +X2+","+elemY2 +">=" +Y1+","+elemY2 +"<=" +Y2);

    if(elemX1 >= X1 && elemX1 <= X2 && elemY1 >= Y1 && elemY1 <= Y2 ||
        elemX2 >= X1 && elemX2 <= X2 && elemY2 >= Y1 && elemY2 <= Y2 ){
          CONFLICTED_ELEMENTS[id][j++]=(elem);
          elem.style.visibility="hidden";
    }
  }
  for(i = 0; i < elements2.length; i++){
    var elem = elements2[i];
    var elemX1 = _ucalculateX(elem);
    var elemY1 = _ucalculateY(elem);
    var elemX2 = elemX1+elem.offsetWidth;
    var elemY2 = elemY1+elem.offsetHeight;
    if(elemX1 >= X1 && elemX1 <= X2 && elemY1 >= Y1 && elemY1 <= Y2 ||
        elemX2 >= X1 && elemX2 <= X2 && elemY2 >= Y1 && elemY2 <= Y2 ){
          CONFLICTED_ELEMENTS[id][j++]=(elem);
          elem.style.visibility="hidden";
    }
  }
}

function _ushowSelectElements(id){
  for(i = 0; CONFLICTED_ELEMENTS[id].length > i; i++ ){
    CONFLICTED_ELEMENTS[id][i].style.visibility="visible";
  }
  CONFLICTED_ELEMENTS[id] = new Array();
}

function _ugetElemRefShowHideLayer(id) 
{
	var layerRef 
		= ( document.getElementById ) 
			? document.getElementById( id )
			: ( document.all ) 
				? document.all[ id ]
				: ( document.layers ) 
					? document[ id ] 
					: 0;

	return layerRef;
}

function _ucalculateX(elem){
		var X = elem.offsetLeft;
		
		var el = elem;
		while(el.offsetParent){
			el = el.offsetParent;
			X += el.offsetLeft;
		}
		return X;
}

function _ucalculateY(elem){
		var Y = elem.offsetTop;
		
		var el = elem;
		while(el.offsetParent){
			el = el.offsetParent;
			Y += el.offsetTop;
		}
		return Y;
}
