var http_request;
var saveDiv;
var validated=false;
var submitWhenValidated = false;

//
// Define a list of Microsoft XML HTTP ProgIDs.
//
var XMLHTTPREQUEST_MS_PROGIDS = new Array(
  "Msxml2.XMLHTTP.7.0",
  "Msxml2.XMLHTTP.6.0",
  "Msxml2.XMLHTTP.5.0",
  "Msxml2.XMLHTTP.4.0",
  "MSXML2.XMLHTTP.3.0",
  "MSXML2.XMLHTTP",
  "Microsoft.XMLHTTP"
);

//
// Define ready state constants.
//
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

//
// Returns XMLHttpRequest object.
//
function getXMLHttpRequest()
{
  var httpRequest = null;

  // Create the appropriate HttpRequest object for the browser.
  if (window.XMLHttpRequest != null)
    httpRequest = new window.XMLHttpRequest();
  else if (window.ActiveXObject != null)
  {
    // Must be IE, find the right ActiveXObject.
    var success = false;
    for (var i = 0;
         i < XMLHTTPREQUEST_MS_PROGIDS.length && !success;
         i++)
    {
      try
      {
        httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
        success = true;
      }
      catch (ex)
      {}
    }
  }

  // Return it.
  return httpRequest;
}
var http_request;
//
// Define a list of Microsoft XML HTTP ProgIDs.
//
var XMLHTTPREQUEST_MS_PROGIDS = new Array(
  "Msxml2.XMLHTTP.7.0",
  "Msxml2.XMLHTTP.6.0",
  "Msxml2.XMLHTTP.5.0",
  "Msxml2.XMLHTTP.4.0",
  "MSXML2.XMLHTTP.3.0",
  "MSXML2.XMLHTTP",
  "Microsoft.XMLHTTP"
);

//
// Define ready state constants.
//
var XMLHTTPREQUEST_READY_STATE_UNINITIALIZED = 0;
var XMLHTTPREQUEST_READY_STATE_LOADING       = 1;
var XMLHTTPREQUEST_READY_STATE_LOADED        = 2;
var XMLHTTPREQUEST_READY_STATE_INTERACTIVE   = 3;
var XMLHTTPREQUEST_READY_STATE_COMPLETED     = 4;

//
// Returns XMLHttpRequest object.
//
function getXMLHttpRequest()
{
  var httpRequest = null;

  // Create the appropriate HttpRequest object for the browser.
  if (window.XMLHttpRequest != null)
    httpRequest = new window.XMLHttpRequest();
  else if (window.ActiveXObject != null)
  {
    // Must be IE, find the right ActiveXObject.
    var success = false;
    for (var i = 0;
         i < XMLHTTPREQUEST_MS_PROGIDS.length && !success;
         i++)
    {
      try
      {
        httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]);
        success = true;
      }
      catch (ex){
        alert("Your browser does not support AJAX.");
      }
    }
  }

  // Return it.
  return httpRequest;
}
function canceladdnew(drillID){
    if ( document.getElementById("new_"+drillID).style.display == "block" ){
        document.getElementById("new_"+drillID).style.display = "none";
        return;
    }
}
function addnew(butObj,drillID){
    if ( document.getElementById("newname_"+drillID).value == "" ){
        alert("Please enter a name");
        document.getElementById("newname_"+drillID).focus();
        return;
    }
    if ( document.getElementById("newcoment_"+drillID).value == "" ){
        alert("Please enter a comment");
        document.getElementById("newcoment_"+drillID).focus();
        return;
    }
    butObj.disabled = true;

    var parameters = "method=AddComment&drillid="+drillID+"&name="+escape(document.getElementById("newname_"+drillID).value)+"&comment="+escape(document.getElementById("newcoment_"+drillID).value);
    http_request = getXMLHttpRequest();

    if ( http_request != null ){
        http_request.open('POST', "/ajax.php", false);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", parameters.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(parameters);
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                if ( http_request.responseText.indexOf("ERROR::") != -1 ){
                    alert( http_request.responseText);
                }else{
                    viewComments(drillID,true);
                }
            }
        }
    }else{
              return;
    }

}
function newComment(drillID){
    if ( document.getElementById("new_"+drillID).style.display == "block" ){
        document.getElementById("new_"+drillID).style.display = "none";
        return;
    }
    document.getElementById("new_"+drillID).style.display = "block";


}
function displayComments(){
    document.body.style.cursor = 'default';
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            if ( http_request.responseText.indexOf("ERROR") != -1 ){
                alert( http_request.responseText);
            }else{
                var splitString = http_request.responseText.split("|");
                document.getElementById("cmt_"+splitString[0]).style.display = "block";
                document.getElementById("cmt_"+splitString[0]).innerHTML = splitString[1];
            }
        }
    }
}
function viewComments(drillID, ignoreDisplay){
    if ( ignoreDisplay==undefined || !ignoreDisplay ){
      if ( document.getElementById("cmt_"+drillID).style.display == "block" ){
          document.getElementById("cmt_"+drillID).style.display = "none";
          return;
      }
    }
    document.getElementById("cmt_"+drillID).style.display = "block";
    document.body.style.cursor = 'wait';
    document.getElementById("cmt_"+drillID).innerHTML = "Loading...<img src=\"/images/ajax-loader.gif\" width=\"16\" height=\"16\" alt=\"Please wait\" />";

    var parameters = "method=getDrillComments&drillid="+drillID;
    http_request = getXMLHttpRequest();

    if ( http_request != null ){
        http_request.open('POST', "/ajax.php", true);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", parameters.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(parameters);
        http_request.onreadystatechange = displayComments;
    }else{
              return;
    }

}

function reportLink(drillID){
    var parameters = "method=reportBadlink&drillid="+drillID;
    http_request = getXMLHttpRequest();

    if ( http_request != null ){
        http_request.open('POST', "/ajax.php", false);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", parameters.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(parameters);
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                if ( http_request.responseText.indexOf("ERROR::") != -1 ){
                    alert( http_request.responseText);
                }else{
                    alert( "The System Admin has been notified ");
                }
            }
        }
    }else{
       return;
    }
}
function report(commentID){
    var parameters = "method=reportBadComment&commentid="+commentID;
    http_request = getXMLHttpRequest();

    if ( http_request != null ){
        http_request.open('POST', "/ajax.php", false);
        http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http_request.setRequestHeader("Content-length", parameters.length);
        http_request.setRequestHeader("Connection", "close");
        http_request.send(parameters);
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                if ( http_request.responseText.indexOf("ERROR::") != -1 ){
                    alert( http_request.responseText);
                }else{
                    alert( "The System Admin has been notified ");
                }
            }
        }
    }else{
       return;
    }
}
function checkChars(obj){
   var illegalChars = /\W/;  // allow only letters, numbers, and underscores
    if (illegalChars.test(obj.value)) {
        alert( "Uh-oh! Special characters (like !@#.';?$%^&*) cannot be used in your URL. These characters have been removed.");
        obj.value = obj.value.replace(/[\W]/g,"");
        obj.focus();
        return false;
    }
    return true;
}

