// viewer.js
// JavaScript for Typee viewing device.
// TJF
// 2005-12-15

// functions

function go_home() {
  try {
    top.location = "default.xqy";
  }
  catch (ex) {
    alert(ex)
  }
}

function init() {
  try {
    var upper_view = top.menu.document.upper_menu.view;
    var upper_item = top.menu.document.upper_menu.item;
    var lower_view = top.menu.document.lower_menu.view;
    var lower_item = top.menu.document.lower_menu.item;
    // parse search term
    var search_terms = parse(top.location.search);
    // set upper and lower views so that relevant objects exist
    set_view("upper");
    set_view("lower");
    // switch off coordination for initialization
    top.menu.document.coord.checkbox.checked = false;
    // configure viewer
    if (is_valid(search_terms)) {
      // use search terms if valid
      upper_view.selectedIndex = search_terms[0];
      set_view("upper");
      upper_item.selectedIndex = search_terms[1];
      set_item("upper");
      lower_view.selectedIndex = search_terms[2];
      set_view("lower");
      lower_item.selectedIndex = search_terms[3];
      set_item("lower");
    }
    else {
      // use defaults if search terms not valid
      upper_view.selectedIndex = 0;
      set_view("upper");
      upper_item.selectedIndex = 0;
      set_item("upper");
      lower_view.selectedIndex = 1;
      set_view("lower");
      lower_item.selectedIndex = 0;
      set_item("lower");
    }
    // set coordination if upper and lower items are the same
    if (upper_item.selectedIndex == lower_item.selectedIndex) {
      top.menu.document.coord.checkbox.checked = true;
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function is_coordinated() {
  try {
    return top.menu.document.coord.checkbox.checked;
  }
  catch (ex) {
    alert(ex);
  }
}

function is_real_scroll(obj, interval) {
  try {
    var current_event_time = (new Date).getTime();
    var real = true;
    if (obj.previous_event_time != null) {
      delta = current_event_time - obj.previous_event_time;
      (delta > interval) ? real = true : real = false;
    }
    obj.previous_event_time = current_event_time;
    return real;
  }
  catch (ex) {
    alert(ex);
  }
}

function is_upper_or_lower(obj) {
  try {
    if (obj.name == "upper") { return true; } 
    else if (obj.name == "lower") { return true; } 
    else { return false; } 
  }
  catch (ex) {
    alert(ex);
  }
}

function is_valid(terms) {
  // a valid array of terms has the following elements:
  // 0 <= terms[0, 2] <= 6
  // 0 <= terms[1, 3] <= 39
  // (Insertion slip adds an extra page, so there are 39 altogether.)
  try {
    if (
      (terms[0] < 0) ||
      (terms[0] > 6) ||
      (terms[2] < 0) || 
      (terms[2] > 6) ||
      (terms[1] < 0) || 
      (terms[1] > 38 ) ||
      (terms[3] < 0) ||
      (terms[3] > 38 )
    ) { return false; }
    else { return true; }
  }
  catch (ex) {
    alert(ex);
  }
}

function load_options(frame, option_array) {
  try {
    var options;
    var upper_selector = top.menu.document.upper_menu.item;
    var lower_selector = top.menu.document.lower_menu.item;
    if (frame == "upper") {
      options = upper_selector.options;
      options.length = 0;
      for (i = 0; i < option_array.length; i++) {
        options[i] = option_array[i];
      }
      upper_selector.selectedIndex = lower_selector.selectedIndex;
    }
    else {
      options = lower_selector.options;
      options.length = 0;
      for (i = 0; i < option_array.length; i++) {
        options[i] = option_array[i];
      }
      lower_selector.selectedIndex = upper_selector.selectedIndex;
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function next(frame) {
  try {
    var selector;
    if (frame == "upper") {
      selector = top.menu.document.upper_menu.item;
    }
    else {
      selector = top.menu.document.lower_menu.item;
    }
    if (selector.selectedIndex < selector.options.length - 1) {
      selector.selectedIndex++;
      set_item(frame);
    }
    else
    {
      alert("Already at the end.");
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function parse(search_term) {
  try {
    return search_term.match(/\d+/g);
  }
  catch (ex) {
    alert(ex);
  }
}

function pop_up(href, is_rev_site, count) {
  try {
    var name = "";
    if (is_rev_site) {
      name = "rev_site" + count
    }
    else {
      var result = href.match(/\w+/g);
      for (var i = 0; i < result.length; i++) {
        name += result[i];
      }
    }
    if (is_rev_site) {
      var w = window.open(href, name, 
        "width=600,height=400,resizable,scrollbars", true);
    }
    else {
      var w = window.open(href, name, 
        "width=950,height=600,resizable,scrollbars", true);
    }
    w.onerror = function() { alert("error") }
    w.moveTo(100 + (count*7),100 + (count*7));
    if (w.focus) { w.focus(); }
    return false;
  }
  catch (ex) {
    alert(ex);
  }
}

function prev(frame) {
  try {
    var selector;
    if (frame == "upper") {
      selector = top.menu.document.upper_menu.item;
    }
    else {
      selector = top.menu.document.lower_menu.item;
    }
    if (selector.selectedIndex > 0) {
      selector.selectedIndex--;
      set_item(frame);
    }
    else
    {
      alert("Already at the beginning.");
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function register(e) {
  this.onscroll = scroll;
}

function resize(width, height) {
  try {
    if (top.innerWidth) {
      width += top.outerWidth - top.innerWidth;
      height += top.outerHeight - top.innerHeight;
      top.resizeTo(width, height);
    }
    else if (top.document.body) {
      var delta_x = width - top.document.body.clientWidth;
      var delta_y = height - top.document.body.clientHeight;
      top.resizeBy(delta_x, delta_y);
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function scroll(event) {
  try {
    // Do nothing if event not from upper or lower frame
    if (!is_upper_or_lower(this)) { return; }
    // Do nothing if coordination not on
    if (!is_coordinated()) { return; }
    // Assign master and slave
    if (this.name == "upper") {
      master = top.upper;
      slave = top.lower;
    }
    else {
      master = top.lower;
      slave = top.upper;
    }
    // Calculate parameters
    // (See http://www.quirksmode.org : Viewport : Browser
    // Compatibility.)
    // 1: master Y
    if (self.pageYOffset != null) { 
      // all except Explorer
      //alert("1.1");
      master.Y = self.pageYOffset;
    }
    else if (document.documentElement.scrollTop != null) { 
      // Explorer 6 Strict
      //alert("1.2");
      master.Y = document.documentElement.scrollTop;
    }
    else if (document.body != null) {
      // all other Explorers
      //alert("1.3");
      master.Y = document.body.scrollTop;
    }
    else {
      alert("Coordinated scrolling is not supported in this browser.");
      master.Y = 0;
    }
    //alert(master.Y);
    // 2: document heights
    if (
      (document.height != null) &&
      (innerHeight != null)
    ) {
      // all except Explorer
      //alert("2.1");
      master.H = master.document.height - master.innerHeight;
      slave.H = slave.document.height - slave.innerHeight;
    }
    else if (
      (document.documentElement.scrollHeight != null) &&
      (document.documentElement.clientHeight != null)
    ) {
      // Explorer 6 Strict
      //alert("2.2");
      master.H = 
        master.document.documentElement.scrollHeight -
        master.document.documentElement.clientHeight;
      slave.H = 
        slave.document.documentElement.scrollHeight -
        slave.document.documentElement.clientHeight;
    }
    else if (
      (document.body.scrollHeight != null) &&
      (document.body.clientHeight != null)
    ) {
      // all other Explorers
      //alert("2.3");
      master.H = 
        master.document.body.scrollHeight -
        master.document.body.clientHeight;
      slave.H = 
        slave.document.body.scrollHeight -
        slave.document.body.clientHeight;
    }
    else {
      master.H = slave.H = 1;
    }
    // 3: slave Y
    slave.Y = Math.round(master.Y * slave.H / master.H);
    //alert(slave.Y);
    // Scroll to slave Y if appropriate
    if (true) {
      slave.scrollTo(0, slave.Y);
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function set_item(frame) {
  try {
    var upper_selector, lower_selector, upper_index, lower_index;
    upper_selector = top.menu.document.upper_menu.item;
    upper_index = upper_selector.selectedIndex;
    lower_selector = top.menu.document.lower_menu.item;
    lower_index = lower_selector.selectedIndex;
    if (frame == "upper") {
      top.upper.location.replace(upper_selector.options[upper_index].value);
      if (is_coordinated()) {
        lower_selector = top.menu.document.lower_menu.item;
        lower_selector.selectedIndex = upper_index;
        top.lower.location.replace(lower_selector.options[upper_index].value);
      }
    }
    else {
      top.lower.location.replace(lower_selector.options[lower_index].value);
      if (is_coordinated()) {
        upper_selector = top.menu.document.upper_menu.item;
        upper_selector.selectedIndex = lower_index;
        top.upper.location.replace(upper_selector.options[lower_index].value);
      }
    }
  }
  catch (ex) {
    alert(ex);
  }
}

function set_view(frame) {
  try {
    var selector, choice, option_array;
    if (frame == "upper") {
      selector = top.menu.document.upper_menu.view;
    }
    else {
      selector = top.menu.document.lower_menu.view;
    }
    choice = selector.options[selector.selectedIndex].value;
    switch (choice) {
      case "manuscript":
        option_array = new Option_array(folios, manuscript_urls);
        break;
      case "transcript":
        option_array = new Option_array(pages, transcript_urls);
        break;
      case "base":
        option_array = new Option_array(pages, base_urls);
        break;
      case "print":
        option_array = new Option_array(pages, print_urls);
        break;
      case "ms_revs":
        option_array = new Option_array(pages, ms_rev_urls);
        break;
      case "later_revs":
        option_array = new Option_array(pages, later_rev_urls);
        break;
      case "all_revs":
        option_array = new Option_array(pages, all_rev_urls);
        break;
      default:
        alert("Invalid option: " + choice);
        option_array = new Option_array(folios, manuscript_urls);
        break;
    }
    load_options(frame, option_array);
    set_item(frame);
  }
  catch (ex) {
    alert(ex);
  }
}      

function show(obj) {
  try {
    var w = window.open("", "show", "resizable,scrollbars,width=600,height=400");
    if (window.focus) { w.focus(); }
    var doc = w.document;
    doc.write("<html><head><title>Show Object</title></head><body><ol>");
    for (var prop in obj) {
      try {
        doc.write("<li>" + prop + " = " + obj[prop] + "</li>");
      }
      catch (ex) {
        doc.write("<li>error: " + ex + "</li>");
      }
    }
    doc.write("</ol></body></html>");
    doc.close();
  }
  catch (ex) {
    alert(ex);
  }
}

function show_site() {
  try {
    // arrays named 'sites' and 'site_urls' should already exist
    // 'arguments' is the function's Arguments object.
    // clear arrays
    sites.length = 0;
    site_urls.length = 0;
    for (var i = 0; i < arguments.length; i++) { 
      sites[i] = arguments[i];
      site_urls[i] = "get-site.xqy?site=" + sites[i];
    }
    // open revision site window
    pop_up(site_urls[0], true);
    return false;
  }
  catch (ex) {
    alert(ex);
  }
}

// option arrays

// constructor

function Option_array(items, urls) {
  try {
    this.length = items.length;
    for (var i = 0; i < this.length; i++) {
      this[i] = new Option(items[i], urls[i]);
    }
  }
  catch (ex) {
    alert(ex);
  }
}

// arrays

var folios = new Array(
  "Front r",
  "Front v",
  "F 01 r",
  "F 01 v",
  "F 02 r",
  "Insert",
  "F 02 v",
  "F 03 r",
  "F 03 v",
  "F 04 r",
  "F 04 v",
  "F 05 r",
  "F 05 v",
  "F 06 r",
  "F 06 v",
  "F 07 r",
  "F 07 v",
  "F 08 r",
  "F 08 v",
  "F 09 r",
  "F 09 v",
  "F 10 r",
  "F 10 v",
  "F 11 r",
  "F 11 v",
  "F 12 r",
  "F 12 v",
  "F 13 r",
  "F 13 v",
  "F 14 r",
  "F 14 v",
  "F 15 r",
  "F 15 v",
  "F 16 r",
  "F 16 v",
  "F 17 r",
  "F 17 v",
  "Back r",
  "Back v"
);

var pages = new Array(
  "Front r",
  "Front v",
  "P 01",
  "P 02",
  "P 03",
  "Insert",
  "P 04",
  "P 05",
  "P 06",
  "P 07",
  "P 08",
  "P 09",
  "P 10",
  "P 11",
  "P 12",
  "P 13",
  "P 14",
  "P 15",
  "P 16",
  "P 17",
  "P 18",
  "P 19",
  "P 20",
  "P 21",
  "P 22",
  "P 23",
  "P 24",
  "P 25",
  "P 26",
  "P 27",
  "P 28",
  "P 29",
  "P 30",
  "P 31",
  "P 32",
  "P 33",
  "P 34",
  "Back r",
  "Back v"
);

var sites = new Array(
  "10ms1"
);

var manuscript_urls = new Array(
  "get-manuscript.xqy?folio=fr-r",
  "get-manuscript.xqy?folio=fr-v",
  "get-manuscript.xqy?folio=f01r",
  "get-manuscript.xqy?folio=f01v",
  "get-manuscript.xqy?folio=f02r",
  "get-manuscript.xqy?folio=f01Br",
  "get-manuscript.xqy?folio=f02v",
  "get-manuscript.xqy?folio=f03r",
  "get-manuscript.xqy?folio=f03v",
  "get-manuscript.xqy?folio=f04r",
  "get-manuscript.xqy?folio=f04v",
  "get-manuscript.xqy?folio=f05r",
  "get-manuscript.xqy?folio=f05v",
  "get-manuscript.xqy?folio=f06r",
  "get-manuscript.xqy?folio=f06v",
  "get-manuscript.xqy?folio=f07r",
  "get-manuscript.xqy?folio=f07v",
  "get-manuscript.xqy?folio=f08r",
  "get-manuscript.xqy?folio=f08v",
  "get-manuscript.xqy?folio=f09r",
  "get-manuscript.xqy?folio=f09v",
  "get-manuscript.xqy?folio=f10r",
  "get-manuscript.xqy?folio=f10v",
  "get-manuscript.xqy?folio=f11r",
  "get-manuscript.xqy?folio=f11v",
  "f12r.html",
  "f12v.html",
  "get-manuscript.xqy?folio=f11Br",
  "get-manuscript.xqy?folio=f11Bv",
  "get-manuscript.xqy?folio=f12r",
  "get-manuscript.xqy?folio=f12v",
  "get-manuscript.xqy?folio=f13r",
  "get-manuscript.xqy?folio=f13v",
  "get-manuscript.xqy?folio=f14r",
  "get-manuscript.xqy?folio=f14v",
  "get-manuscript.xqy?folio=f15r",
  "get-manuscript.xqy?folio=f15v",
  "get-manuscript.xqy?folio=bk-r",
  "get-manuscript.xqy?folio=bk-v"
);

var transcript_urls = new Array(
  "get-transcript.xqy?page=fr-r",
  "get-transcript.xqy?page=fr-v",
  "get-transcript.xqy?page=01",
  "get-transcript.xqy?page=02",
  "get-transcript.xqy?page=03",
  "get-transcript.xqy?page=03i",
  "get-transcript.xqy?page=04",
  "get-transcript.xqy?page=05",
  "get-transcript.xqy?page=06",
  "get-transcript.xqy?page=07",
  "get-transcript.xqy?page=08",
  "get-transcript.xqy?page=09",
  "get-transcript.xqy?page=10",
  "get-transcript.xqy?page=11",
  "get-transcript.xqy?page=12",
  "get-transcript.xqy?page=13",
  "get-transcript.xqy?page=14",
  "get-transcript.xqy?page=15",
  "get-transcript.xqy?page=16",
  "get-transcript.xqy?page=17",
  "get-transcript.xqy?page=18",
  "get-transcript.xqy?page=19",
  "get-transcript.xqy?page=20",
  "get-transcript.xqy?page=21",
  "get-transcript.xqy?page=22",
  "get-transcript.xqy?page=23-24",
  "get-transcript.xqy?page=23-24",
  "get-transcript.xqy?page=25",
  "get-transcript.xqy?page=26",
  "get-transcript.xqy?page=27",
  "get-transcript.xqy?page=28",
  "get-transcript.xqy?page=29",
  "get-transcript.xqy?page=30",
  "get-transcript.xqy?page=31",
  "get-transcript.xqy?page=32",
  "get-transcript.xqy?page=33",
  "get-transcript.xqy?page=34",
  "get-transcript.xqy?page=bk-r",
  "get-transcript.xqy?page=bk-v"
);

var base_urls = new Array(
  "get-base.xqy?page=fr-r",
  "get-base.xqy?page=fr-v",
  "get-base.xqy?page=1",
  "get-base.xqy?page=2",
  "get-base.xqy?page=3",
  "get-base.xqy?page=3i",
  "get-base.xqy?page=4",
  "get-base.xqy?page=5",
  "get-base.xqy?page=6",
  "get-base.xqy?page=7",
  "get-base.xqy?page=8",
  "get-base.xqy?page=9",
  "get-base.xqy?page=10",
  "get-base.xqy?page=11",
  "get-base.xqy?page=12",
  "get-base.xqy?page=13",
  "get-base.xqy?page=14",
  "get-base.xqy?page=15",
  "get-base.xqy?page=16",
  "get-base.xqy?page=17",
  "get-base.xqy?page=18",
  "get-base.xqy?page=19",
  "get-base.xqy?page=20",
  "get-base.xqy?page=21",
  "get-base.xqy?page=22",
  "f12r.html",
  "f12v.html",
  "get-base.xqy?page=25",
  "get-base.xqy?page=26",
  "get-base.xqy?page=27",
  "get-base.xqy?page=28",
  "get-base.xqy?page=29",
  "get-base.xqy?page=30",
  "get-base.xqy?page=31",
  "get-base.xqy?page=32",
  "get-base.xqy?page=33",
  "get-base.xqy?page=34",
  "get-base.xqy?page=bk-r",
  "get-base.xqy?page=bk-v"
);

var print_urls = new Array(
  "get-print.xqy?page=fr-r",
  "get-print.xqy?page=fr-v",
  "get-print.xqy?page=1",
  "get-print.xqy?page=2",
  "get-print.xqy?page=3",
  "get-print.xqy?page=3i",
  "get-print.xqy?page=4",
  "get-print.xqy?page=5",
  "get-print.xqy?page=6",
  "get-print.xqy?page=7",
  "get-print.xqy?page=8",
  "get-print.xqy?page=9",
  "get-print.xqy?page=10",
  "get-print.xqy?page=11",
  "get-print.xqy?page=12",
  "get-print.xqy?page=13",
  "get-print.xqy?page=14",
  "get-print.xqy?page=15",
  "get-print.xqy?page=16",
  "get-print.xqy?page=17",
  "get-print.xqy?page=18",
  "get-print.xqy?page=19",
  "get-print.xqy?page=20",
  "get-print.xqy?page=21",
  "get-print.xqy?page=22",
  "get-print.xqy?page=23",
  "get-print.xqy?page=24",
  "get-print.xqy?page=25",
  "get-print.xqy?page=26",
  "get-print.xqy?page=27",
  "get-print.xqy?page=28",
  "get-print.xqy?page=29",
  "get-print.xqy?page=30",
  "get-print.xqy?page=31",
  "get-print.xqy?page=32",
  "get-print.xqy?page=33",
  "get-print.xqy?page=34",
  "get-print.xqy?page=bk-r",
  "get-print.xqy?page=bk-v"
);

var ms_rev_urls = new Array(
  "get-ms-revs.xqy?page=fr-r",
  "get-ms-revs.xqy?page=fr-v",
  "get-ms-revs.xqy?page=1",
  "get-ms-revs.xqy?page=2",
  "get-ms-revs.xqy?page=3",
  "get-ms-revs.xqy?page=3i",
  "get-ms-revs.xqy?page=4",
  "get-ms-revs.xqy?page=5",
  "get-ms-revs.xqy?page=6",
  "get-ms-revs.xqy?page=7",
  "get-ms-revs.xqy?page=8",
  "get-ms-revs.xqy?page=9",
  "get-ms-revs.xqy?page=10",
  "get-ms-revs.xqy?page=11",
  "get-ms-revs.xqy?page=12",
  "get-ms-revs.xqy?page=13",
  "get-ms-revs.xqy?page=14",
  "get-ms-revs.xqy?page=15",
  "get-ms-revs.xqy?page=16",
  "get-ms-revs.xqy?page=17",
  "get-ms-revs.xqy?page=18",
  "get-ms-revs.xqy?page=19",
  "get-ms-revs.xqy?page=20",
  "get-ms-revs.xqy?page=21",
  "get-ms-revs.xqy?page=22",
  "f12r.html",
  "f12v.html",
  "get-ms-revs.xqy?page=25",
  "get-ms-revs.xqy?page=26",
  "get-ms-revs.xqy?page=27",
  "get-ms-revs.xqy?page=28",
  "get-ms-revs.xqy?page=29",
  "get-ms-revs.xqy?page=30",
  "get-ms-revs.xqy?page=31",
  "get-ms-revs.xqy?page=32",
  "get-ms-revs.xqy?page=33",
  "get-ms-revs.xqy?page=34",
  "get-ms-revs.xqy?page=bk-r",
  "get-ms-revs.xqy?page=bk-v"
);

var later_rev_urls = new Array(
  "get-later-revs.xqy?page=fr-r",
  "get-later-revs.xqy?page=fr-v",
  "get-later-revs.xqy?page=1",
  "get-later-revs.xqy?page=2",
  "get-later-revs.xqy?page=3",
  "get-later-revs.xqy?page=3i",
  "get-later-revs.xqy?page=4",
  "get-later-revs.xqy?page=5",
  "get-later-revs.xqy?page=6",
  "get-later-revs.xqy?page=7",
  "get-later-revs.xqy?page=8",
  "get-later-revs.xqy?page=9",
  "get-later-revs.xqy?page=10",
  "get-later-revs.xqy?page=11",
  "get-later-revs.xqy?page=12",
  "get-later-revs.xqy?page=13",
  "get-later-revs.xqy?page=14",
  "get-later-revs.xqy?page=15",
  "get-later-revs.xqy?page=16",
  "get-later-revs.xqy?page=17",
  "get-later-revs.xqy?page=18",
  "get-later-revs.xqy?page=19",
  "get-later-revs.xqy?page=20",
  "get-later-revs.xqy?page=21",
  "get-later-revs.xqy?page=22",
  "f12r.html",
  "f12v.html",
  "get-later-revs.xqy?page=25",
  "get-later-revs.xqy?page=26",
  "get-later-revs.xqy?page=27",
  "get-later-revs.xqy?page=28",
  "get-later-revs.xqy?page=29",
  "get-later-revs.xqy?page=30",
  "get-later-revs.xqy?page=31",
  "get-later-revs.xqy?page=32",
  "get-later-revs.xqy?page=33",
  "get-later-revs.xqy?page=34",
  "get-later-revs.xqy?page=bk-r",
  "get-later-revs.xqy?page=bk-v"
);

var all_rev_urls = new Array(
  "get-all-revs.xqy?page=fr-r",
  "get-all-revs.xqy?page=fr-v",
  "get-all-revs.xqy?page=1",
  "get-all-revs.xqy?page=2",
  "get-all-revs.xqy?page=3",
  "get-all-revs.xqy?page=3i",
  "get-all-revs.xqy?page=4",
  "get-all-revs.xqy?page=5",
  "get-all-revs.xqy?page=6",
  "get-all-revs.xqy?page=7",
  "get-all-revs.xqy?page=8",
  "get-all-revs.xqy?page=9",
  "get-all-revs.xqy?page=10",
  "get-all-revs.xqy?page=11",
  "get-all-revs.xqy?page=12",
  "get-all-revs.xqy?page=13",
  "get-all-revs.xqy?page=14",
  "get-all-revs.xqy?page=15",
  "get-all-revs.xqy?page=16",
  "get-all-revs.xqy?page=17",
  "get-all-revs.xqy?page=18",
  "get-all-revs.xqy?page=19",
  "get-all-revs.xqy?page=20",
  "get-all-revs.xqy?page=21",
  "get-all-revs.xqy?page=22",
  "f12r.html",
  "f12v.html",
  "get-all-revs.xqy?page=25",
  "get-all-revs.xqy?page=26",
  "get-all-revs.xqy?page=27",
  "get-all-revs.xqy?page=28",
  "get-all-revs.xqy?page=29",
  "get-all-revs.xqy?page=30",
  "get-all-revs.xqy?page=31",
  "get-all-revs.xqy?page=32",
  "get-all-revs.xqy?page=33",
  "get-all-revs.xqy?page=34",
  "get-all-revs.xqy?page=bk-r",
  "get-all-revs.xqy?page=bk-v"
);

var site_urls = new Array(
  "get-site.xqy?site=10ms1"
);
