// UPDATE THIS VARIABLE
// The URL where your Server-Side script is
var apiURL = "api/perl/";

// Some default global variables
var sqlLoaded = function(){}

// Handle a long SQL Submission
// This function is capable of sending large amounts of
// data (e.g. a large INSERT), but is only able to send
// to locations on the same server as the client
function sqlExec(q, p, callback) {

  // This function also handles dynamic arguments, putting
  // a question mark (?) in your code will replace it with
  // an argument, already nicely quoted and formatted

  // Go through each of the dynamic arguments
  for ( var i = 0; i < p.length; i++ ) {
    // Make sure that it's a string
    p[i] = p[i] + "";

    // Escape all question marks in the argument
    // (Otherwise things get wonky)
    p[i] = p[i].replace(/\?/g, "\\?");

    // Double-single-quote all single quotes (escapes them)
    p[i] = p[i].replace(/'/g, "''");

    // And now replace the first question mark in the
    // query with this argument, nicely quoted
    q = q.replace(/([^\\])\?/, "$1'" + p[i] + "'");
  }

  // Go back through the query and un-escape the extra
  // question marks
  q = q.replace(/\\\?/g, "?");

  // Submit the query to the server
  $.post( apiURL, { db: db, sql: q }, function(j) {

    // When the results come back, we have to eval them
    eval("var j = " + j);

    // If a callback was specified by the user, send the data back
    if (callback) callback(j);

  });

}