
// Collection of functions needed for the interactive talking with the server



function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
		  if( obj.id == "all_content_div" ) break;
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}




function getXY(el) {
    if ((el.parentNode === null || el.offsetParent === null || el.style.display == 'none') && el != el.ownerDocument.body) {
        return false;
    }
    else {
        var pos = [el.offsetLeft, el.offsetTop];
        var parentNode = el.offsetParent;

        if (parentNode != el) {
            while (parentNode) {
                pos[0] += parentNode.offsetLeft;
                pos[1] += parentNode.offsetTop;
                parentNode = parentNode.offsetParent;
            }
        }

        parentNode = el.parentNode;

        // account for any scrolled ancestors
        while (parentNode.tagName && !/^body|html$/i.test(parentNode.tagName)) {
            if (parentNode.scrollTop || parentNode.scrollLeft) {
                // work around opera inline/table scrollLeft/Top bug (false reports offset as scroll)
                if (!/^(?:inline|table-row)$/i.test(parentNode.style.display)) { 
                    pos[0] -= parentNode.scrollLeft;
                    pos[1] -= parentNode.scrollTop;
                }
            }
                    
            parentNode = parentNode.parentNode; 
        }

        return pos;
    }
}




var closeTimerId;

// function to close the popup window
function closeAfterWhile( event ) {
  if( !event ) event = window.event;
   if( event.type == "mouseover" ) {
     clearTimeout( closeTimerId );
   } else if( event.type == "mouseout" ) {
     closeTimerId = setTimeout( "document.getElementById( 'ajaxPopup' ).style.display = 'none'", 500 );
   }
}



function nameComplete( elem ) {
    if(elem.value.length>1){
	if( elem.name.indexOf( "searchname" ) > -1 ) {
	 	YAHOO.util.Connect.asyncRequest('POST', 'quickList.jsp',
        { success: function(o) {
            
	         createList(o.responseText,elem);
    	  },
            
          failure: function(o) {
             
      	  },
          argument: null
    }, "type=DynamicTerm&query="+elem.value+"&list=Participant name" );
					
	} else if( elem.name.indexOf( "searchcontr" ) > -1 ) {
	 	YAHOO.util.Connect.asyncRequest('POST', 'quickList.jsp',
        { success: function(o) {
            
	         createList(o.responseText,elem);
    	  },
            
          failure: function(o) {
            
      	  },
          argument: null
    }, "type=DynamicTerm&query="+elem.value+"&list=Contributor name" );
	
	}
  }
}


function roleComplete( elem ) {
    if(elem.value.length>1){
	if( elem.name.indexOf( "searchname" ) > -1 ) {
	 	YAHOO.util.Connect.asyncRequest('POST', 'quickList.jsp',
        { success: function(o) {
            
	         createList(o.responseText,elem);
    	  },
            
          failure: function(o) {
             
      	  },
          argument: null
    }, "type=DynamicTerm&query="+elem.value+"&list=Participant role" );
					
	} else if( elem.name.indexOf( "searchcontr" ) > -1 ) {
	 	YAHOO.util.Connect.asyncRequest('POST', 'quickList.jsp',
        { success: function(o) {
            
	         createList(o.responseText,elem);
    	  },
            
          failure: function(o) {
            
      	  },
          argument: null
    }, "type=DynamicTerm&query="+elem.value+"&list=Contributor role" );
	
	}
  }
}

function createList( response, elem ) {
  var pos = getXY( elem );
  var popup = document.getElementById( "ajaxPopup" );
  var content = "";
  var lines = response.split( "<br/>" );
  var count = 0;
  
  for( var i=0; i<lines.length; i++ ) {
  	if( lines[i].match( /^\S*$/ )) continue;
    var cols = lines[i].split( " | " );
	 if(cols[1]!=null && cols[1].length>0 && cols[1]!='undefined'){
	  var nv=cols[1].replace("'","\\'");
	  content+="<div style=\"cursor: pointer; width:100%; opacity:0.9; background-color: #FFFFFF; border-collapse: collapse; border-top: 1px solid #C6C6C6; padding: 1px; color:#000000; font-size: 8pt; font-family: Verdana;\"";
      content+="  onmouseover=\"this.style.backgroundColor='#e2e2e2'\" "; 
	  content += " onmouseout=\"this.style.backgroundColor = '#ffffff'\" ";
	  content += "   onclick=\"zs(\'" + elem.name+  "\',\'" + nv + "\');\">";
	  content += cols[1] +  "</div>";
		  count++; 
    }
  }
  if( count > 0 ) {
    popup.innerHTML = content; 
    popup.style.top = pos[1]+elem.offsetHeight+"px";
    popup.style.left = pos[0]+"px";
    popup.style.display = "";
  	popup.scrollIntoView( true );
    popup.onmouseout = closeAfterWhile;
    popup.onmouseover = closeAfterWhile;
  } else {
	popup.style.display = "none";
  }
}



