function AjaxRequest(url, callback_function) {
  var req = null;
  var msxmlhttp = new Array(
    'Msxml2.XMLHTTP.5.0',
    'Msxml2.XMLHTTP.4.0',
    'Msxml2.XMLHTTP.3.0',
    'Msxml2.XMLHTTP',
    'Microsoft.XMLHTTP');
  for (var i = 0; i < msxmlhttp.length; i++) {
    try {
      req = new ActiveXObject(msxmlhttp[i]);
    } catch (e) {
      req = null;
    }
  }

  if(!req && typeof XMLHttpRequest != "undefined") {
    req = new XMLHttpRequest();
  }
  if (req != null) {
    req.open("POST", url, true);
    req.onreadystatechange = function() {
      if ((req.readyState == 4) && (req.status == 200)) {
        var json = req.responseText.parseJSON();
        var callback = callback_function + '(json)';
        eval(callback);
      }
    }
    req.send(null);
    delete req;
  }
  return true;
}

function UpdateForm(objects) {
  document.forms['add_frm']['fetch_meta'].disabled = false;
  for (var i in objects) {
    if (i != "toJSONString") {
      if (document.forms['add_frm'][i]) {
        document.forms['add_frm'][i].value = objects[i];
      }
    }
  }
}

function FetchMeta() {
  var url = document.forms['add_frm']['url'].value;
  document.forms['add_frm']['fetch_meta'].disabled = true;
  AjaxRequest('ajax.php?cmd=fetch_meta&url=' + url, 'UpdateForm');
}

function UpdateSubCategory(objects) {
  document.getElementById(objects['div_tag']).innerHTML = objects['select_box'];
}

function FetchSubCategory(cat, selected_cat, div_tag) {
  document.getElementById(div_tag).innerHTML = "loading...";
  AjaxRequest('ajax.php?cmd=fetch_sub_category&cat=' + cat + "&selected_cat=" + selected_cat+ "&div_tag=" + div_tag, 'UpdateSubCategory');
}

function UpdatePricing(objects) {
  document.getElementById("listing_type_div").innerHTML = objects;
}

function FetchPricing() {
  var cat = document.forms['add_frm']['cat'].options[document.forms['add_frm']['cat'].selectedIndex].value;
  var cat1 = document.forms['add_frm']['add_cat1'].options[document.forms['add_frm']['add_cat1'].selectedIndex].value;
  var cat2 = document.forms['add_frm']['add_cat2'].options[document.forms['add_frm']['add_cat2'].selectedIndex].value;
  if (document.forms['add_frm']['periodprice']) {
    var periodprice = document.forms['add_frm']['periodprice'].options[document.forms['add_frm']['periodprice'].selectedIndex].value;
  }
  document.getElementById("listing_type_div").innerHTML = "loading...";
  AjaxRequest('ajax.php?cmd=fetch_pricing&cat=' + cat + "&cat1=" + cat1 + "&cat2=" + cat2 + "&periodprice=" + periodprice, 'UpdatePricing');
}
