// ********** Page ready functions **********
var SelectedCount = 0;

function initSeatMap()
{
  $("#divScreen").css('width',$("#reservedseatmapform input[name=screen_size]").attr('value') + 'px');
  jQuery('div.seats-container').css('width',$("#reservedseatmapform input[name=screen_size]").attr('value') + 'px');

  SelectedSeatCheck()
      
  jQuery('div.seats').each(function ()
  {
    var _holder = $(this);
    var _ajaxLinks = _holder.find('span');
    var _ajaxLinkIndex;
   
    // ajax content loaders
    _ajaxLinks.each(function (ind)
    {
      var _link = $(this);
     
      if(_link.attr('id').length > 0)
      {
        _link.click(function ()
        {
          if(_link.attr('id').indexOf('LS') > -1)
            ToggleLoveSeatStatus(_link);
          else
            ToggleSeatStatus(_link);
          return false;
        });
      }
     
    });//end _ajaxLinks each
  });//end jquery div.seat

  var _openers = jQuery('a.open-popup');
  initPopups(_openers);
}//end function

function SelectedSeatCheck()
{
  var seatholder = $("#reservedseatmapform input[name=seatholder]").attr('value');
  if ( seatholder.length > 0)
  {
    var lseatarray = seatholder.split("|");
    SelectedCount = lseatarray.length;
  }
 /* if ( $("#reservedseatmapform input[name=failedseats]").attr('value').length = 0)
  {
     if(SelectedCount == 0)
     {
        var CountHolder = document.getElementById("spanCountHolder");
        SelectedCount = parseInt(CountHolder.innerHTML)
     }    
  }

  document.getElementById("divReservedSeatingPage").style.display = "inline";*/
  $("#selected-seats").text(SelectedCount);
}

     
function ToggleSeatStatus(link)
{
  var lParams = link.attr('info').split(",");

  if (lParams.length > 6)
  {
    var Quantity = lParams[6];
    if(link.css("background-image").toLowerCase().indexOf("selected") > -1)
    {
      link.css("background-image", "url(" + lParams[4] + ")");
      SelectedCount -= 1;
      RemoveSeatFromSelectedList(lParams[0],lParams[1],lParams[2],lParams[3]);
    }
    else
    {
      if (Quantity > SelectedCount)
      {      
        if(lParams[4].indexOf("wheelchair") > -1)
          $('div.messagenonerror').css('display', 'block');
                
        link.css("background-image", "url(" + lParams[5] + ")");
        SelectedCount += 1;
        AddSeatToSelectedList(lParams[0],lParams[1],lParams[2],lParams[3]);
      }
    }
    $("#selected-seats").text(SelectedCount);
    ToggleSubmit(Quantity);
  }
}

function ToggleSubmit(Quantity)
{
    if (Quantity == SelectedCount) {
        $("#reservedseatmapform input[name=submit]").attr('disabled', false);
        $('.btn-reserve').css('background', 'url(images/btn-reserve.gif) no-repeat');
    }
    else {
        $("#reservedseatmapform input[name=submit]").attr('disabled', true);
        $('.btn-reserve').css('background', 'url(images/btn-reserve.gif) no-repeat');
    }
}

function ToggleLoveSeatStatus(link)
{
  var nextColumnID = 0;
  var nextLinkName = 'LS';
  var nextLink;
  var lParams = link.attr('info').split(",");
  var Quantity = lParams[6];

  if(Quantity == SelectedCount && link.css("background-image").toLowerCase().indexOf("selected") < 0)
  {
    //alert ("All of your seats have been selected.");
    return;
  }
  
  if(Quantity < 2 || Quantity-SelectedCount < 2 && link.css("background-image").toLowerCase().indexOf("selected") < 0)
  {
    alert("You must have at least 2 tickets remaining to select a love seat.");
  }
  else
  {
    ToggleSeatStatus(link);
  
    if(link.attr('id').indexOf('Left') > -1)
    {
      nextColumnID = parseInt(lParams[3]) + 1;
      nextLinkName += "Right" 
    }
    else
    {
      nextColumnID = parseInt(lParams[3]) - 1;
      nextLinkName += "Left" 
    }
    nextLinkName += "row" + lParams[2] + "col" + nextColumnID;
      
    nextLink = $('#' + nextLinkName);
    ToggleSeatStatus(nextLink);
  }
}
  
function AddSeatToSelectedList(rowlabel,collabel,rowid,colid)
{
  var seats = $("#reservedseatmapform input[name=seatholder]").attr('value');
  if (seats.length > 0)
    $("#reservedseatmapform input[name=seatholder]").attr('value',seats + "|" + rowid + "," + colid + "," + rowlabel + "," + collabel);
  else
    $("#reservedseatmapform input[name=seatholder]").attr('value',rowid + "," + colid + "," + rowlabel + "," + collabel);
}

function RemoveSeatFromSelectedList(rowlabel,collabel,rowid,colid)
{
   var seats = "|" + $("#reservedseatmapform input[name=seatholder]").attr('value') + "|";
   var failedseats = $("#reservedseatmapform input[name=failedseats]").attr('value');
   var addSeatsToReleaseList = $("#reservedseatmapform input[name=addSeatsToReleaseList]").attr('value');
  
   var selectedseat = "|" + rowid + "," + colid + "," + rowlabel + "," + collabel + "|";

   if (seats.indexOf(selectedseat) > -1)
     seats = seats.replace(selectedseat, "|");
  
   $("#reservedseatmapform input[name=seatholder]").attr('value', ltrim(rtrim(seats, "|"), "|"));

   if (failedseats.length > 0 || addSeatsToReleaseList > 0)
     AddSeatToReleaseList(rowlabel,collabel,rowid,colid)
}

function AddSeatToReleaseList(rowlabel,collabel,rowid,colid)
{
  var seats = $("#reservedseatmapform input[name=releaseseats]").attr('value');

  if (seats.length > 0)
    $("#reservedseatmapform input[name=releaseseats]").attr('value', seats + "|" + rowid + "," + colid + "," + rowlabel + "," + collabel);
  else
    $("#reservedseatmapform input[name=releaseseats]").attr('value', rowid + "," + colid + "," + rowlabel + "," + collabel);
}

function ltrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


