// creating XmlHttpRequest object
// double check for IE/ActiveX and then try to use
// native object (Safari, Firefox)

var mobj_ajax = createRequestObject();
function createRequestObject() {  
// find the correct xmlHTTP, works with IE, FF and Opera
  var xmlhttp;
  try {
  	xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
    try {
    	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e) {
    	xmlhttp=null;
    }
  }
  if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
  	xmlhttp=new XMLHttpRequest();
  }
  return  xmlhttp;
}
	
//arg 0              1     2                3           4
//    xml_obj_name   file, update_function, parameters, form_name
function ajaxRead() {
  if((arguments[0].readyState == 0) || (arguments[0].readyState == 4)) {
    // Open a connection to the server
    arguments[0].open("POST", arguments[1], true);
    // Setup a function for the server to run when it's done
    //reset on ready state change function
    arguments[0].onreadystatechange = function() {};
    if(arguments[2]) {
      var update_function=arguments[2];
      if(arguments[4]) {
        var form_name=arguments[4];
        arguments[0].onreadystatechange = function() { eval(update_function+"('"+form_name+"');"); };
      } else {
        arguments[0].onreadystatechange = eval(update_function);
      }
    }

    arguments[0].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //arguments[0].setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
    //arguments[0].setRequestHeader("Content-length", arguments[3].length);
    //arguments[0].setRequestHeader("Connection", "close");
    arguments[0].send(arguments[3]);
    //alert(arguments[3]);

  } else { //retry if ajax obj busy
    xmlHttp=arguments[0];
    var cmd="ajaxRead(xmlHttp";
    if(arguments[1]) {
      cmd=cmd + ", '"+arguments[1]+"'";
      if(arguments[2]) {
        cmd=cmd + ", '"+arguments[2]+"'";
        if(arguments[3]) {
          cmd=cmd + ", '"+arguments[3]+"'";
          if(arguments[4]) {
            cmd=cmd + ", '"+arguments[4]+"'";
          }
        }
      }
    }
    cmd=cmd + ");";
    //alert(cmd);
    setTimeout(cmd, 1);
  }
}

//arg 0      1            2
//xml_doc,   xml_elem,    item_nr
function get_xml_elem_value() {
  var xml_elem=arguments[0].getElementsByTagName(arguments[1]);
  var item_nr=0;
  if(arguments[2]) {
    item_nr=arguments[2];
  }

  var elem_value='';
  if(xml_elem) {
    try {
      elem_value=xml_elem[item_nr].childNodes[0].nodeValue;
    } catch(err) {
      //alert(arguments[1] + " " + err);
    }
  }
  return elem_value;
}

//arg 0        1            2          3
//xml_doc,     xml_elem,    item_nr    attribute_name
function get_xml_elem_attrib_value() {

  var xml_elem=arguments[0].getElementsByTagName(arguments[1]);

  var item_nr=0;
  if(arguments[2]) {
    item_nr=arguments[2];
  }

  var attrib_value='';
  if(xml_elem) {
    attrib_value=xml_elem[item_nr].getAttribute(arguments[3]);
  }
  return attrib_value;
}

function clearList(obj){
  while(obj.childNodes.length>0){
    obj.removeChild(obj.childNodes[0]);
  }
}

function getTagText(node,name){
  var element = node.getElementsByTagName(name)[0];
  if(element.hasChildNodes()){
    return element.firstChild.nodeValue;
  }else{
    return "";
  }
}

function url_element() {
  var str='';
  str =  '&' + encodeURIComponent(arguments[0]) + '=' + encodeURIComponent(arguments[1]);
  return str;
}

function getParameters(frm_id){
  queryString="";
  var frm = document.getElementById(frm_id);
  var numberElements =  frm.elements.length;
  for(var i = 0; i < numberElements; i++) {
    if(i < numberElements-1) {
      queryString+=frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
    }else{
      queryString += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
    }
  }
  return queryString
}