// returns an XMLHttp object. gets it in an IE/Mozilla friendly way.
function getXMLHTTP(){
  var A=null;
  try{
    A=new ActiveXObject("Msxml2.XMLHTTP")
  }catch(e){
    try{
      A=new ActiveXObject("Microsoft.XMLHTTP")
    } catch(oc){
      A=null
    }
  }
  if(!A && typeof XMLHttpRequest != "undefined") {
    A=new XMLHttpRequest()
  }
  return A
}
function resizeHandler(){
  if(document.getElementById('completeDiv'))
    setCompleteDivSize(_completeDiv,_inputField);

  if(document.getElementById('completeDivI'))
     setCompleteDivSize(_completeDivI,_SearchField);
}
function setCompleteDivSize(completeDiv,searchField){
  if(completeDiv){
    completeDiv.style.left=calculateOffsetLeft(searchField)+"px";
    completeDiv.style.top=calculateOffsetTop(searchField)+searchField.offsetHeight-1+"px";
    completeDiv.style.width=calculateWidth(searchField)+"px"
  }
}
function calculateWidth(searchField){
  if(navigator&&navigator.userAgent.toLowerCase().indexOf("msie")==-1){
    return searchField.offsetWidth-2
  }else{
    return searchField.offsetWidth
  }
}
function calculateOffsetLeft(r){
  return YaI(r,"offsetLeft")
}
function calculateOffsetTop(r){
  return YaI(r,"offsetTop")
}
function YaI(r,attr){
  var kb=0;
  while(r){
    kb+=r[attr]; 
    r=r.offsetParent
  }
  return kb
}
function bbI(n){
  var v=0;
  if(n.createTextRange){
    var fa=document.selection.createRange().duplicate();
    fa.moveEnd("textedit",1);
    v=n.value.length-fa.text.length
  }else if(n.setSelectionRange){
    v=n.selectionStart
  }else{
    v=-1
  }
  return v
}
function ccI(d){
  if(d.createTextRange){
    var t=d.createTextRange();
    t.moveStart("character",d.value.length);
    t.select() 
  } else if(d.setSelectionRange) {
    d.setSelectionRange(d.value.length,d.value.length)
  }
}
function lbI(n){
  var N=-1;
  if(n.createTextRange){
    var fa=document.selection.createRange().duplicate();
    N=fa.text.length
  }else if(n.setSelectionRange){
    N=n.selectionEnd-n.selectionStart
  }
  return N
}
// Return value of span cAutoComplete.
function valueOfCAutoComplete(i){
  if(!i) {
    return null;
  }
  return findSpanValueForClass(i,"cAutoComplete")
}
// Find span value with className = dc.
function findSpanValueForClass(i,dc){
  var ga=i.getElementsByTagName(_spanTag);
  if(ga){
    for(var f=0; f<ga.length; ++f){
      if(ga[f].className==dc){
        var value=ga[f].innerHTML;
        if(value=="&nbsp;") {
          return"";
        } else{
          var z=stripCRFromStringI(value);
          return z
        }
      }
    }
  }else{
    return""
  }
}
// strip CR from string.
function stripCRFromStringI(va){
  for(var f=0,oa="",zb="\n\r"; f<va.length; f++) {
    if (zb.indexOf(va.charAt(f))==-1) {
      oa+=va.charAt(f);
    } else {
      oa+=" ";
    }
  }
  return oa
}
