current_set = "";
output_string = "";
in_array = [];

function main(stylesheet) {
  var input = document.getElementById('draft_in');
  var output = document.getElementById('draft_out');
  var preview = document.getElementById('preview');

  output.value = "Working...";

  init_globals();

  in_array = trim_whitespace(input.value).split('\n');
  in_array.push("\n");
  
  //output_string += "[draftcap]";
  parse_draft();
  //output_string += "[/draftcap]";

  output.value = output_string;
}

function parse_draft() {
  var card_names = [];
  var my_pick = "";
  var card = "";
  var line = "";

  // get rid of the header, and grab first set symbol
  while (in_array.length > 0) {
    line = in_array.shift();

    if (line.match(/------/) != null) {
      current_set = line.replace(/-/g, "");
      current_set = current_set.replace(/ /g, "");

      in_array.shift();
      break;
    }
  }

  // parse the rest of the draft file
  while (in_array.length > 0) {
    line = in_array.shift();

    // pack is finished on a blank line...
    if (line.replace(/\s/g, "").length == 0) {
      while (card_names.length > 0) {
        card = card_names.shift();
        output_string += card + "%" + current_set + "%";
      }

      output_string = output_string.substring(0, output_string.length - 1);

      output_string += "\n" + my_pick + "\n" + current_set + "\n";
      my_pick = "";
      continue;
    }

    // ...or check for pick number...
    if (line.match(/Pack [0-9] pick 1?[0-9]:/) != null) {
      continue;
    }

    // ...or check for set symbol...
    if (line.match(/------/) != null) {
      current_set = line.replace(/-/g, "");
      current_set = current_set.replace(/ /g, "");

      in_array.shift();
      continue;
    }

    // ...or read the pack
    card_names.push(line.substring(4, line.length));

    if (line.substring(0, 4) == "--> ") {
      my_pick = line.substring(4, line.length);
    }
  }
}

function init_globals() {
  output_string = "";
  current_set = "";
  in_array = [];
}

function trim_whitespace(s) {
  while (s.charAt(0).match(/\s/)) {
    s = s.substring(1, s.length);
  }

  while (s.charAt(s.length - 1).match(/\s/)) {
    s = s.substring(0, s.length - 1);
  }

  return s;
}
