var user_seat_number = 0;
/**
 * These images will be preloaded
 */
/*
var imagesToPreLoad = Array ("bottomleft-hover.png",
                             "bottomright-hover.png",
                             "bottomright-selected.png",
                             "bottomleft-selected.png",
                             "bottomright-reserved.png",
                             "bottomleft-reserved.png",
                             "bottomright.png",
                             "bottomleft.png"
                            );
function prelaodImages() {
  var temp = new Image(500,19);
  for (var count = 0; count < imagesToPreLoad.length; count++) {
    // "http://wordpress-lan.test.btrb.net/wp-content/plugins/LANprty/" +
    temp.src = imagesToPreLoad[count];
  }
  //temp = null;
}
prelaodImages();
*/
function addClass(what, classString) {
  var classN = "";
  /*
  if (what.hasAttribute("class")) {
    class = what.getAttribute("class") + " ";
  }
  class += classString;
  what.setAttribute("class", class);
  */
  if (what.className != null) {
    classN = what.className + " ";
  }
  classN += classString;
  what.className = classN;
}

function removeClass(what, classString) {
  var classN = "";
  /*
  if (what.hasAttribute("class")) {
    classN = what.getAttribute("class") + " ";
  }
  classN = class.replace(new RegExp(classString, "ig"), "");
  what.setAttribute("class", class);
  */
  if (what.className != null) {
    classN = what.className + " ";
  }
  classN = classN.replace(new RegExp(classString, "ig"), "");
  what.className = classN;

}

function seatmap_mouseover(what) {
  var classN = "";
  var seatnum = /-([0-9]{2})$/.exec(what.getAttribute("id"));
  seatnum = seatnum[1];
  /* // used for rounded seats
  if (/^(br|bl)\-/.test(what.getAttribute("id"))) {
    parentElement = document.getElementById("seatmap-seat-" + seatnum);
    addClass(parentElement, "seatmap-hover");
    if (/^(br)\-/.test(what.getAttribute("id"))) {
      otherElement = document.getElementById("bl-seatmap-seat-" + seatnum);
      addClass(otherElement, "seatmap-hover");
    }
    else {
      otherElement = document.getElementById("br-seatmap-seat-" + seatnum);
      addClass(otherElement, "seatmap-hover");
    }
  }
  */
  addClass(what, "seatmap-hover");
  classN = what.className;
  /* // used for rounded seat
  if (/seatmap-round[^\-brl]/.test(classN)) {
    bottomright = document.getElementById("br-" + what.getAttribute("id"));
    bottomleft = document.getElementById("bl-" + what.getAttribute("id"));
    addClass(bottomright, "seatmap-hover");
    addClass(bottomleft, "seatmap-hover");
  }
  */
}
function seatmap_mouseout(what) {
  var classN = "";
  var seatnum = /-([0-9]{2})$/.exec(what.getAttribute("id"));
  seatnum = seatnum[1];
  /* // used for rounded seat
  if (/^(br|bl)\-/.test(what.getAttribute("id"))) {
    parentElement = document.getElementById("seatmap-seat-" + seatnum);
    removeClass(parentElement, "seatmap-hover");
    if (/^(br)\-/.test(what.getAttribute("id"))) {
      otherElement = document.getElementById("bl-seatmap-seat-" + seatnum);
      removeClass(otherElement, "seatmap-hover");
    }
    else {
      otherElement = document.getElementById("br-seatmap-seat-" + seatnum);
      removeClass(otherElement, "seatmap-hover");
    }
  }
  */
  removeClass(what, "seatmap-hover");
  classN = what.className;
  /* // used for rounded seat
  //if (/seatmap-round[^\-brl]/.test(classN)) {
  if (/seatmap-round/.test(classN)) {
    bottomright = document.getElementById("br-" + what.getAttribute("id"));
    bottomleft = document.getElementById("bl-" + what.getAttribute("id"));
    removeClass(bottomright, "seatmap-hover");
    removeClass(bottomleft, "seatmap-hover");
  }
  */
}

function seatmap_click(what) {
  var classN = "";
  var seatnum = /-([0-9]{2})$/.exec(what.getAttribute("id"));
  seatnum = seatnum[1];
  if (user_seat_number > 0 || user_seat_number == seatnum) {
    removeClass(document.getElementById("seatmap-seat-" + user_seat_number), "seatmap-selected");
    /* // used for rounded seat
    if (document.getElementById("br-seatmap-seat-" + user_seat_number) != null) {
      removeClass(document.getElementById("br-seatmap-seat-" + user_seat_number), "seatmap-selected");
    }
    if (document.getElementById("bl-seatmap-seat-" + user_seat_number) != null) {
      removeClass(document.getElementById("bl-seatmap-seat-" + user_seat_number), "seatmap-selected");
    }
    */
  }
  if (user_seat_number != seatnum) {
    /* // used for rounded seat
    if (/^(br|bl)\-/.test(what.getAttribute("id"))) {
      parentElement = document.getElementById("seatmap-seat-" + seatnum);
      addClass(parentElement, "seatmap-selected");
      if (/^(br)\-/.test(what.getAttribute("id"))) {
        otherElement = document.getElementById("bl-seatmap-seat-" + seatnum);
        addClass(otherElement, "seatmap-selected");
      }
      else {
        otherElement = document.getElementById("br-seatmap-seat-" + seatnum);
        addClass(otherElement, "seatmap-selected");
      }
    }
    */
    addClass(what, "seatmap-selected");
    classN = what.className;
    /* // used for rounded seat
    if (/seatmap-round[^\-brl]/.test(classN)) {
      bottomright = document.getElementById("br-" + what.getAttribute("id"));
      bottomleft = document.getElementById("bl-" + what.getAttribute("id"));
      addClass(bottomright, "seatmap-selected");
      addClass(bottomleft, "seatmap-selected");
    }
    */
    user_seat_number = seatnum;
  }
  else {
    user_seat_number = 0;
  }
  if (user_seat_number > 0) {
    document.getElementById("seatmap-selected-seat").value = user_seat_number;
  }
  else {
    document.getElementById("seatmap-selected-seat").value = "";
  }
}
function fakeClick(seatnum) {
  seatmap_click(document.getElementById("seatmap-seat-" + seatnum));
}
function seatmap_form_change(what) {
  what.value = what.value.replace(/\D/ig, "");
  if (what.value.length >= 1) {
    if (what.value <= 9 && what.value.length < 2) {
      what.value = "0" + what.value;
    }
    if (typeof allReservedSeats != "undefined") {
      for (var count = 0; count < allReservedSeats.length; count++) {
        if (allReservedSeats[count] == what.value) {
          // error
          what.value = user_seat_number;
        }
      }
    }
    if (what.value == user_seat_number) {
      user_seat_number = 0;
    }
    // fake a click
    if (what.value > 0) {
      fakeClick(what.value);
    }
  }
}

// jquery functions
jQuery.browser.konqueror = /konqueror/i.test(navigator.userAgent);
jQuery.fn.check = function(mode) {
  var mode = mode || 'on'; // if mode is undefined, use 'on' as default
  return this.each(function() {
    switch(mode) {
    case 'on':
      this.checked = true;
      break;
    case 'off':
      this.checked = false;
      break;
    case 'toggle':
      this.checked = !this.checked;
      break;
    }
  });
};
function showAndHidePaymentBox() {
  choice = jQuery("input[@name=online-payment-type]:checked").val();
  switch (choice) {
    case "ticket":
      jQuery.cookie("payment-type", "ticket", {expires: 0});
      // Konqueror doesn't like the .show() function
      if (jQuery.browser.konqueror) {
        jQuery("#online-payment-box").removeClass("hidden");
        jQuery("#ticket-payment-box").addClass("hidden");
      }
      else {
        //$("#message").show("slow");
        jQuery("#ticket-payment-box").slideDown("slow");
        jQuery("#online-payment-box").slideUp("slow");
      }
    break;
    case "online":
      jQuery.cookie("payment-type", "online", {expires: 0});
      // Konqueror doesn't like the .show() function
      if (jQuery.browser.konqueror) {
        jQuery("#ticket-payment-box").removeClass("hidden");
        jQuery("#online-payment-box").addClass("hidden");
      }
      else {
        //$("#message").show("slow");
        jQuery("#online-payment-box").slideDown("slow");
        jQuery("#ticket-payment-box").slideUp("slow");
      }
    break;
    default:
    break;
  }
}
jQuery(document).ready(function() {
  jQuery("#signup-ticketcode").change(function() {
    // remove any non-hex-digits, convert text to uppercase
    this.value = this.value.toUpperCase().replace(/[^0-9A-F]/ig, "");
  });
  jQuery("#signup-captcha").change(function() {
    // remove any non-digits
    this.value = this.value.replace(/[^\d|\*|\+|\-]/ig, "");
    if (/[\*|\+|\-]/.test(this.value)) {
      this.value=eval(this.value);
    }
  });
  /*
  if (typeof jQuery("#signup-postalcode").val() != "undefined") {
    var javascriptFile = document.createElement('script');
    javascriptFile.src = '/wp-content/plugins/LANprty/postalcodes.js';
    javascriptFile.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(javascriptFile);
  }
  */
  jQuery("#signup-postalcode").change(function() {
    // remove any non-digits
    this.value = this.value.replace(/\D/ig, "");
    this.value = this.value.substring(0,4);
    if (typeof postalCodes != "undefined") {
      if (typeof postalCodes[this.value] != "undefined") {
        place = postalCodes[this.value];
        jQuery("#signup-postalplace").val(place);
      }
      else {
        jQuery("#signup-postalplace").val("");
      }
    }
  });
  jQuery("#signup-age").change(function() {
    // remove any non-digits
    this.value = this.value.replace(/\D/ig, "");
  });
  jQuery("#signup-ticketcode").keydown(function(event) {
    switch (event.keyCode) {
      case 13:
        event.preventDefault();
        event.stopPropagation();
        jQuery("#signup-firstname").focus();
      break;
      default:
      break;
    }
  });
  jQuery("#signup-ticketcode").keypress(function(event) {
    switch (event.keyCode) {
      case 13:
        event.preventDefault();
        event.stopPropagation();
        jQuery("#signup-firstname").focus();
      break;
      default:
      break;
    }
  });
  jQuery("input[@name=online-payment-type]").change(function() {
    showAndHidePaymentBox();
  });
  if (jQuery.cookie("payment-type") == null) {
    jQuery.cookie("payment-type", "ticket", {expires: 0});
  }
  else {
    paymentType = jQuery.cookie("payment-type");
    if (paymentType == "online") {
      jQuery("#online-payment-type-online").check();
    }
    else {
      jQuery("#online-payment-type-ticket").check();
    }
  }
  x = window.setTimeout(showAndHidePaymentBox, 2000);
});