function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};

ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
ajax.send=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.get=function(url,func){ajax.send(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};

function ajaxGetXmlHttp() {
  var xmlHttp;
  try {
    xmlHttp = new XMLHttpRequest();
  }
  catch (e) {
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
        return false;
      }
    }
  }
  return xmlHttp;
}

function ajaxSuggest(name, id, form, field, input) {
  var xmlHttp = ajaxGetXmlHttp();
  if (xmlHttp == null) {
    return;
  }
  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4) {
      var text = xmlHttp.responseText;
      var element = document.getElementById(id);
      element.style.visibility = 'hidden';
      element.innerHTML = text;
      if (text.length != 0) {
        element.style.visibility = 'visible';
      }
    }
  }
  xmlHttp.open("GET", "/global/ajax/"+name+".dtml?id_="+id+"&form_="+form+"&field_="+field+"&input_="+input, true);
  xmlHttp.send(null);
  return;
}

function ajaxSet(id, form, field, value) {
  var element = document.getElementById(id);
  element.style.visibility = 'hidden';
  element.innerHTML = '';
  document.forms[form].elements[field].value = value;
  return false;
}

function ajaxBlur(id) {
  var element = document.getElementById(id);
  element.style.visibility = 'hidden';
  element.innerHTML = '';
  return false;
}

