﻿var submitted = false;
var _currentInputFieldValue= ""; // also inputField value
var G = "";
var _highlightedSuggestionDiv = null; // currently highlighted suggestion div...
var _completeDiv = null;
var _completeDivRows = -1; // completeDiv rows at time of keypress...
var _completeDivRows2 = 5;
var _completeDivList = null; // completeDiv div list at time of keypress
var _documentForm = null;
var _inputField = null; // Input field on form...
var firstInit = true;
var _htmlDocument = document;
var Position=-1;
function initAjax(id,type,Ctype)
 { 
 	var gt=document.getElementById(id);
    Position=-1;	
    _inputField = document.getElementById(id);
    _inputField.onblur = onBlurHandler;
    _currentInputFieldValue = _inputField.value;
    if(firstInit)
    {
        _completeDiv = _htmlDocument.createElement("DIV");
        _completeDiv.id = "completeDiv";
        _completeDiv.style.borderRight = "black " + 1 + "px solid";
        _completeDiv.style.borderLeft = "black " + 1 + "px solid";
        _completeDiv.style.borderTop = "black " + 1 + "px solid";
        _completeDiv.style.borderBottom = "black " + 1 + "px solid";
        _completeDiv.style.position="absolute";
        _completeDiv.style.zIndex = "999999999";
        _completeDiv.style.paddingRight = "0";
        _completeDiv.style.paddingLeft = "0";
        _completeDiv.style.paddingTop = "0";
        _completeDiv.style.paddingBottom = "0";
        _htmlDocument.body.appendChild(_completeDiv);
        var s = _htmlDocument.createElement("DIV");
        s.style.visibility="hidden";
        s.style.position="absolute";
        s.style.left="-10000";
        s.style.top="-10000";
        s.style.width="0";
        s.style.height="0";
        _htmlDocument.body.appendChild(s);
        window.onresize = setCompleteDivSize;			
    }
    setCompleteDivSize();
    _completeDiv.style.visibility = "hidden";
    _completeDiv.style.position = "absolute";
    _completeDiv.style.backgroundColor = "white";
    firstInit = false;
}
function returnInt(size)
{
var x=size.split('p');
return x[0];
}
function setCompleteDivSize() 
{
    if(_completeDiv) 
    {
        _completeDiv.style.left = calculateOffset(_inputField, "offsetLeft")-1+"px";
        _completeDiv.style.top = calculateOffset(_inputField, "offsetTop")+2 + _inputField.offsetHeight + "px";
        _completeDiv.style.width = calculateWidth() + "px";		
    }
}
function calculateOffset(r, attr) 
{
    var kb = 0;
    while(r) 
    {
        kb += r[attr];
        r = r.offsetParent;
    }
return kb;
}
function calculateWidth() 
{	
    if(navigator && navigator.userAgent.toLowerCase().indexOf("msie") == -1) 
    {
        return _inputField.offsetWidth - 1 * 2
    }
    else 
    {	       
	 return _inputField.offsetWidth ;  		
    }	
}
function onBlurHandler(event) 
{
 Position=-1;	
 hideCompleteDiv();	
}
function valueOfAutoComplete(i, type) 
{
return i.getElementsByTagName("span")[1].childNodes[0].nodeValue
    if(!i) 
    {
        return null;
    }
    var ga = i.getElementsByTagName("span");
    if(ga) 
    {
        for(var f = 0; f < ga.length; ++f) 
        {
	        if(ga[f].className == type) 
	        {
		        var value = ga[f].innerHTML;
		        if(value==" ") 
		        {
			        return "";
		        }
		        else 
		        {
			        // strip CR from string...
			        for(var f = 0, fFinal = "", cr = "\n\r"; f < value.length; f++) 
			        {
				        if(cr.indexOf(value.charAt(f))==-1) 
				        {
					        fFinal += value.charAt(f);
				        }
				        else 
				        {
					        fFinal += " ";
				        }
			        }
			        return fFinal;
		        }
	        }
        }
    }
    else
    {
        return "";
    }
}
function hideCompleteDiv()
{	 
    _htmlDocument.getElementById("completeDiv").style.visibility = "hidden";
    var iframeSuggestion=_htmlDocument.getElementById("iframeSuggestion");
    if(iframeSuggestion!=null)
    iframeSuggestion.style.visibility = "hidden";
}
function showCompleteDiv() 
{	 	
    _htmlDocument.getElementById("completeDiv").style.visibility = "visible";
    setCompleteDivSize();	
}
sendRPCDone = function(fr, is, op, cs) 
{
 var b = _completeDiv;
//remove the previous contents of list
    while(b.childNodes.length > 0) 
    {
        b.removeChild(b.childNodes[0]);
    }
    b.completeStrings = cs;
    for(var f = 0; f < b.completeStrings.length; ++f) 
    {
        var u = _htmlDocument.createElement("DIV");
        setStyleForElement(u, "aAutoComplete");
        u.onmousedown = mouseDownHandle;
        u.onmouseover = mouseOverHandle;
        u.onmouseout = mouseOutHandle;
        u.style.textAlign="left";
        var ka = _htmlDocument.createElement("SPAN");
        setStyleForElement(ka,"lAutoComplete");
        var ua = _htmlDocument.createElement("SPAN");
        setStyleForElement(ua,"cAutoComplete");		
        ua.innerText = b.completeStrings[f]; // the text for the suggested names.
        ua.innerHTML = b.completeStrings[f];
        u.displaySpan = ua;
        ka.appendChild(ua);
        u.appendChild(ka);
        b.appendChild(u);
    }	
    loadDiv(b);
    if(_completeDivRows2 > 0) 
{
        b.height = 16 * _completeDivRows2 ;
        var Frame=document.getElementById("iframeSuggestion");
        if(Frame!=null)
        {
        var browserName=navigator.appName;

    if (browserName=="Microsoft Internet Explorer")
{
  Frame.style.visibility="visible";
   Frame.style.left=b.style.left;
   Frame.style.left=parseInt(returnInt(Frame.style.left))-15+"px";
   Frame.style.top=b.style.top;
   Frame.style.top=parseInt(returnInt(Frame.style.top))-0+"px";
   Frame.style.width=b.scrollWidth;
   Frame.style.height=b.scrollHeight;
   Frame.style.height=parseInt(returnInt(Frame.style.height))-0+"px";
   Frame.style.zIndex="99999";
  }
  else
  {
  Frame.style.visibility="visible";
   Frame.style.left=b.style.left;
   Frame.style.left=parseInt(returnInt(Frame.style.left))-23+"px";
   Frame.style.top=b.style.top;
   Frame.style.top=parseInt(returnInt(Frame.style.top))-0+"px";
   Frame.style.width=b.scrollWidth;
   Frame.style.height=b.scrollHeight;
   Frame.style.height=parseInt(returnInt(Frame.style.height))-0+"px";
   Frame.style.zIndex="99999";
  }
  }
}
    else 
    {
        hideCompleteDiv();
    }
}
var mouseDownHandle = function() 
{ 
    var t="";
    t=t+_inputField.value;	
    var i=t.indexOf(",");
    var tt=t.substring(0,i+1);
    _inputField.value = tt+ valueOfAutoComplete(this, "cAutoComplete");
    var b = _completeDiv;
    while(b.childNodes.length > 0) 
    {
        b.removeChild(b.childNodes[0]);
    }
    hideCompleteDiv();		
    return false;
};
// on mouseover...
var mouseOverHandle = function()
 {
    if(_highlightedSuggestionDiv) 
    {
        setStyleForElement(_highlightedSuggestionDiv,"aAutoComplete");	
    }	
    setStyleForElement(this,"bAutoComplete");
    var t=_inputField.value;	
        if(t.indexOf(",")>0)
        {		
	        var i=t.indexOf(",");
	        var tt=t.substring(0,i+1);	
	        _inputField.value = tt+ valueOfAutoComplete(this, "cAutoComplete");		
        }
        else
        {
	        _inputField.value =valueOfAutoComplete(this, "cAutoComplete");	
        }	
    };
// On Mouse out...
var mouseOutHandle = function() {setStyleForElement(this,"aAutoComplete")};
function loadDiv(localCompleteDiv,arg) 
{
    var localInputField = _inputField;
    _completeDivList = localCompleteDiv.getElementsByTagName("div");
    // # of rows in list...
    _completeDivRows = _completeDivList.length;
    _completeDivRows2 = _completeDivList.length;
    G = _currentInputFieldValue;
    if(_currentInputFieldValue == "" || _completeDivList.length == 0) 
    {
        hideCompleteDiv()
    } 
    else 
    {
        showCompleteDiv()
    }
    for(var f = 0; f < _completeDivList.length; f++) 
    {
        setStyleForElement(_completeDivList.item(f), "aAutoComplete");
    }
    _highlightedSuggestionDiv = null
}
function setStyleForElement(element, name) 
{
var Sa=calculateWidth();
var spanRefWidth = (Sa-110)/Sa*100;
element.className = name;
switch(name.charAt(0)) {
    case "l":
        element.style.display="block";
        element.style.paddingLeft="3";
        element.style.paddingRight="3";
        element.style.height="16px";
        element.style.overflow="hidden";
        break;	
    case "a":
        element.style.backgroundColor="white";
        element.style.color="black";
        if(element.displaySpan) 
        {
	        element.displaySpan.style.color="#666666";
        }
        break;
    case "b":
        element.style.backgroundColor="#A3D3ED";
        element.style.color="white";
        if(element.displaySpan) 
        {
	        element.displaySpan.style.color="#4E4E4E";
        }	
        break;
    case "c":
        element.style.width=spanRefWidth+80+"%";
        element.style.cssFloat="left";	
        break;
       }
}		
function chkUpDown(event,txtid)
{
var result=true;
if(window.event)
{
if(window.event.keyCode == 38)
{
UpDown(-1,txtid);
result=false;
}
if(window.event.keyCode == 40)
{
UpDown(1,txtid);
result=false;
}
}
if(event)
{
if(event.which == 38)
{
UpDown(-1,txtid);
result=false;
}
if(event.which == 40)
{
UpDown(1,txtid);
result=false;
}
}
return result;
}
function UpDown(inc,txtID)
{
 var Parentdiv         = document.getElementById('completeDiv');
var Childlist        = Parentdiv.getElementsByTagName('div');
if(Position+inc >= 0 && Position+inc <Childlist.length)
{
setStyleForElement(Childlist[Position+inc],"bAutoComplete");
document.getElementById(txtID).value=valueOfAutoComplete(Childlist[Position+inc], "cAutoComplete")
if(Position!=-1)
{
setStyleForElement(Childlist[Position],"aAutoComplete");
}
Position=Position+inc;
}    
}
