function clearMarked() {
  var request = new Ajax.Request(AppPath + '/ajax/marked/clear');
  var form = document.resultForm;
  for (var i = 0; i < form.elements.length; ++i) {
    var element = form.elements[i];
    if (element.tagName.toLowerCase() == 'input' && element.name == 'ids') {
      element.checked = false;
    }
  }
  return false;
}

function parseQueryString(queryString) {
  var result = {};
  if (queryString != null && queryString.charAt('?')) {
    var pairs = queryString.substring(1).split('&');
    if (pairs != null) {
      for (var i = 0; i < pairs.length; ++i) {
        var nameValue = pairs[i].split('=');
        if (nameValue && nameValue.length == 2) {
          result[nameValue[0]] = nameValue[1];
        }
      }
    }
  }
  return result;
}

function deleteMarked(form) {
  var qs = parseQueryString(document.location.search);
  form.method = "post";
  if (qs && qs.page) {
    var page = document.createElement("input");
    page.type = "hidden";
    page.name = "page";
    page.value = qs.page;
    form.appendChild(page);
  }
  var input = document.createElement("input");
  input.type = "hidden";
  input.name = "delete";
  form.appendChild(input);
  form.submit();
  return false;
}

function initResultList(form) {
  var clickHandler = function() {
     var checkRequest = new Ajax.Request(
       AppPath + '/ajax/check_result',
       { parameters: 'id=' + this.value + '&checked=' + this.checked }
     );
  };
  for (var i = 0; i < form.elements.length; ++i) {
    var element = form.elements[i];
    if (element.tagName.toLowerCase() == 'input' && element.name == 'ids') {
      element.onclick = clickHandler;
    }
  }
}

function getFirstChildElement(element) {
  if (element) {
    for (var i = 0; i < element.childNodes.length; ++i) {
      var child = element.childNodes[i];
      if (child.nodeType == 1) {
        return child;
      }
    }
  }
  return null;
}

function elementRemoveChildNodes(element) {
  for (var i = element.childNodes.length; --i >= 0;) {
    element.removeChild(element.childNodes[i]);
  }
}

function abbreviate(s, maxLen) {
  if (s && s.length > maxLen) {
    return s.substring(0, maxLen) + "...";
  }
  else {
    return s;
  }
}

function runExport(exportParams) {
  window.open(AppPath+'/results/export'+exportParams, 'export', 'scrollbars=yes,width=775,height=700,toolbar=yes,menubar=yes,resizable=yes');
  return false;
}

function initStatus() {
  var frame = document.getElementById('statusFrame');
  if (frame) {
    frame.src=AppStaticPath + '/admin/status';
  }
}
