/* Profile Form Buttons */
$(document).ready(function() {
  $("#successMsg1").hide();
  $("#successMsg2").hide();
  $("#successMsg3").hide();
  $("#successMsg4").hide();
  initEditProfile();
  initEditExtendedProfile();
  initEditPaymentInfo();
  initCinemarkEmails();
  initCineartsEmails();
  initRemoveTheater();
  initTheaterRankUpdate();
  initAddTheater();
});

$.ajaxSetup({ 
    cache: false 
}); 

function initEditProfile() {
  $(".btn-EditProfile").click(function() {
    if ($(this).text() == "EDIT PROFILE/PASSWORD") {
      populateBasicControls();
      $("#profileForm").toggle();
      $("#profileInfo").toggle();
      
      $(this).text('SAVE PERSONAL INFO');
      $(this).css('width', '135px');
      $(this).css('background', 'url(/images/btn_SavePersonalInfo.png) no-repeat');
      $("#InfoProfile").toggle();
      $(".btn-CancelEditProfile").css('display', 'block');
    }
    else {
      var f = $("#basic-info-form");
      var serializedForm = f.serialize();
      var btn = $(this);

      if(ValidatePersonalInfo() == true) {
        $.ajax({
          type: "GET",
          url: "/mycinemarkservice/basic?" + serializedForm,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg){
            if (msg.ResponseType == true)
            {
              $("#first_name_info").text(f.find('input[name=first_name]').val());
              $("#last_name_info").text(f.find('input[name=last_name]').val());
              $("#email_info").text(f.find('input[name=email_address]').val());
              
              var fname = f.find('input[name=first_name]').val()
              if (fname.length > 10)
                $("#my_cinemark_name").text(fname.substring(0,10)+'...');
              else
                  $("#my_cinemark_name").text(fname); 
              
              $("#profileForm").toggle();
              $("#profileInfo").toggle();
              $('#update_profile').val('User Info');
              btn.css('width', '157px');
              btn.css('background', 'url(/images/btn_EditProfile.png) no-repeat');
              btn.text('EDIT PROFILE/PASSWORD');
              $(".btn-CancelEditProfile").css('display', 'none');
              $("#InfoProfile").toggle();
              $("#successMsg1").toggle();
              $("#successMsg1").fadeOut(3000);
            }
            else
            {
              if (msg.ResponseText == "User exists")
              {
                $('#email_address_error').text(" - User exists for the email address provided");
                $('#email_address_error').css({visibility: "visible"});
              }
            }
          },
          error:function(msg,a,b){}
        });
      }
    }
  });
  
  $(".btn-CancelEditProfile").click(function() {
    $("#profileForm").toggle();
    $("#profileInfo").toggle();
    
    $('.btn-EditProfile').css('width', '157px');
    $('.btn-EditProfile').css('background', 'url(images/btn_EditProfile.png) no-repeat');
    $('.btn-EditProfile').text('EDIT PROFILE/PASSWORD');
    $(".btn-CancelEditProfile").css('display', 'none');
    $("#InfoProfile").toggle();
  });
}


function initEditExtendedProfile() {
  var monthDropDownDOB = $('#dob_month');
  var monthDropDownAnniv = $('#anniv_month');
  var yearDropDownDOB = $('#dob_month_day_year');
  var yearDropDownAnniv = $('#anniv_month_day_year');
  
  initMonthDropDown(monthDropDownDOB);
  initMonthDropDown(monthDropDownAnniv);
  
  initYearDropDown(yearDropDownDOB);
  initYearDropDown(yearDropDownAnniv);
  
  monthDropDownDOB.trigger('change');
  monthDropDownAnniv.trigger('change');
 
  if ($('#extended_info_exists').val() == 0)
  {
    showExtendedInfoEntry();
    $(".btn-CancelEditExtendedProfile").css('display', 'none');
  }
  
  $(".btn-EditExtendedProfile").click(function() {
    
    if ($(this).text() == "EDIT EXTENDED PROFILE") {
      populateExtendedControls();
      showExtendedInfoEntry();
    }
    else {
      if(ValidateExtendedInfo()) {
        var f = $("#extended-info-form");
        var gender = 0 + $("#gender").val();
        var marital_status = 0 + $("#marital_status").val();
        var dob="1900-01-01T00:00:00";
        var annivdate="1900-01-01T00:00:00";
        var postal_code = f.find('input[name=zipcode]').val();
        if ($("#dob_month").val().length > 0)
           dob = $("#dob_month").val() + '/' + $("#dob_month_day").val() + '/'+ $("#dob_month_day_year").val();        
        
        if ($("#anniv_month").val().length > 0)
           annivdate = $("#anniv_month").val() + '/' + $("#anniv_month_day").val() + '/' + $("#anniv_month_day_year").val();
        
        var params = "gender=" + gender + "&marital_status=" + marital_status + "&dob=" + dob + "&anniv_date=" + annivdate + "&postal_code=" + postal_code;
        var btn = $(this);

        $.ajax({
          type: "GET",
          url: "/mycinemarkservice/extended?" + params,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg){
            if (msg.ResponseType == true)
            {
              $("#genderInfo").text($('#gender :selected').text());
              $("#relStatusInfo").text($('#marital_status :selected').text());
              
              if($("#dob_month").val().length > 0 && $("#dob_month_day").val().length > 0 && $("#dob_month_day_year").val().length > 0)
                $("#dobInfo").text($("#dob_month").val() + '/' + $("#dob_month_day").val() + '/'+ $("#dob_month_day_year").val());
              else
                $("#dobInfo").text('');
              
              if($("#anniv_month").val().length > 0 && $("#anniv_month_day").val().length > 0 && $("#anniv_month_day_year").val().length > 0)
                $("#annivDateInfo").text($("#anniv_month").val() + '/' + $("#anniv_month_day").val() + '/' + $("#anniv_month_day_year").val());
              else
                $("#annivDateInfo").text('');
              
             
              $("#postalCodeInfo").text($.trim(f.find('input[name=zipcode]').val()));
            
              $('#update_profile').val('User Info');
              $("#extendedForm").toggle();
              $("#extendedInfo").toggle();
                
              btn.css('width', '157px');
              btn.css('background', 'url(/images/btn_EditExtendedProfile.png) no-repeat');
              btn.text('EDIT EXTENDED PROFILE');
              $(".btn-CancelEditExtendedProfile").css('display', 'none');
              $("#InfoExtended").toggle();
              $("#successMsg2").toggle();
              $("#successMsg2").fadeOut(3000);              
            }
          },
          error:function(msg,a,b){alert(a);}
        });        
      }
    }
  });
  
  $(".btn-CancelEditExtendedProfile").click(function() {
    $("#extendedForm").toggle();
    $("#extendedInfo").toggle();
    
    $('.btn-EditExtendedProfile').css('width', '157px');
    $('.btn-EditExtendedProfile').css('background', 'url(/images/btn_EditExtendedProfile.png) no-repeat');
    $('.btn-EditExtendedProfile').text('EDIT EXTENDED PROFILE');
    $(".btn-CancelEditExtendedProfile").css('display', 'none');
    $("#InfoExtended").toggle();
  });
}
function showExtendedInfoEntry(){
  $("#extendedForm").toggle();
  $("#extendedInfo").toggle();
  
  $('.btn-EditExtendedProfile').text('SAVE EXTENDED PROFILE');            
  $('.btn-EditExtendedProfile').css('width', '149px');
  $('.btn-EditExtendedProfile').css('background', 'url(/images/btn_SaveExtendedProfile.png) no-repeat');
  $("#InfoExtended").toggle();

  $(".btn-CancelEditExtendedProfile").css('display', 'block');
}
function initEditPaymentInfo() {
  var yearDropDown = $('#card_exp_year');
  initPaymentYearDropDown(yearDropDown);

  if ($('#card_exists').val() == 0)
  {
    showPaymentInfo();
    $(".btn-DeletePaymentInfo").css('display', 'none');
    $(".btn-CancelEditPaymentInfo").css('display', 'none');
  }
  
  $(".btn-EditPaymentInfo").click(function() {

    if ($(this).text() == "EDIT/DELETE PAYMENT INFO") {
      populatePaymentControls();
      showPaymentInfo();
    }
    else {
      if(ValidatePaymentInfo()) {
        var f = $("#payment-info-form");
        var serializedForm = f.serialize();
        var params = serializedForm + "&card_type=" + $("#card_type").val();
        params+= "&expiration_date=" + $("#card_exp_month").val() + "/" + $("#card_exp_year").val();
        var btn = $(this);

       $.ajax({
          type: "GET",
          url: "/mycinemarkservice/payment?" + params,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg){
            if (msg.ResponseType == true)
            {
              $("#card_type_info").text($('#card_type :selected').text());
              $("#card_name_info").text($('#card_name').val());
              $("#card_number_info").text('**** **** **** ' + $('#card_number').val().substring($('#card_number').val().length - 4));
              //$("#card_exp_info").text($('#card_exp_month').val() + '/' + $('#card_exp_year').val());
              $("#card_exp_info").text('XX/XXXX');
              $("#card_postal_code_info").text($('#card_postal_code').val());
              $("#card_exists").val('1');
              
              $('#update_profile').val('Payment Info');
              $("#paymentForm").toggle();
              $("#paymentInfo").toggle();
        
              btn.css('width', '174px');
              btn.css('background', 'url(/images/btn_EditPaymentInfo.png) no-repeat');
              btn.text('EDIT/DELETE PAYMENT INFO');
              $(".btn-DeletePaymentInfo").css('display', 'none');
              $(".btn-CancelEditPaymentInfo").css('display', 'none');
              $("#InfoPayment").toggle();
              $("#successMsg3").toggle();
              $("#successMsg3").fadeOut(3000);
            }
          },
          error:function(msg,a,b){}
        });                                   
                                 
      }
    }
  });
  
  $(".btn-CancelEditPaymentInfo").click(function() {
      $("#paymentForm").toggle();
      $("#paymentInfo").toggle();
      
      $('.btn-EditPaymentInfo').css('width', '174px');
      $('.btn-EditPaymentInfo').css('background', 'url(/images/btn_EditPaymentInfo.png) no-repeat');
      $('.btn-EditPaymentInfo').text('EDIT/DELETE PAYMENT INFO');
      $(".btn-DeletePaymentInfo").css('display', 'none');
      $(".btn-CancelEditPaymentInfo").css('display', 'none');
      $("#InfoPayment").toggle();
  });
  
  $(".btn-DeletePaymentInfo").click(function() {
      $.ajax({
          type: "GET",
          url: "/mycinemarkservice/deletecredit",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg){
            if (msg.ResponseType == true)
            {
              $("#card_exists").val('0');
              
              $("#card_type").val($("#card_type option:first").val());
              $('#card_name').val('');
              $('#card_number').val('');
              $("#card_exp_month").val($("#card_exp_month option:first").val());
              $("#card_exp_year").val($("#card_exp_year option:first").val());              
              $('#card_postal_code').val('');
              $(".btn-DeletePaymentInfo").css('display', 'none');
              $(".btn-CancelEditPaymentInfo").css('display', 'none');
              $("#successMsg4").toggle();
              $("#successMsg4").fadeOut(3000);              
            }
          
          },
          error:function(msg,a,b){}
      });
  });
}

function showPaymentInfo(){
  $("#paymentForm").toggle();
  $("#paymentInfo").toggle();
  
  $(".btn-EditPaymentInfo").text('SAVE PAYMENT INFO');            
  $(".btn-EditPaymentInfo").css('width', '126px');
  $(".btn-EditPaymentInfo").css('background', 'url(/images/btn_SavePaymentInfo.png) no-repeat');
  $("#InfoPayment").toggle();
  $(".btn-DeletePaymentInfo").css('display', 'block');
  $(".btn-CancelEditPaymentInfo").css('display', 'block');
}

function initMonthDropDown(monthDropDown) {
  monthDropDown.change(function() {
    var monthID = monthDropDown.attr('id');
    var dayID = '#' + monthID + '_day';
    var dayVal = $(dayID).val();     
    
    if(monthDropDown.attr('value') == '2') {
      initDayDropDown(monthID, 28);
    }
    else if(monthDropDown.attr('value') == '4' || monthDropDown.attr('value') == '6' || monthDropDown.attr('value') == '9' || monthDropDown.attr('value') == '11') {
      initDayDropDown(monthID, 30);
    }
    else {
      initDayDropDown(monthDropDown.attr('id'), 31);
    }
    
    if(monthDropDown.val().length > 0)
      $(dayID  + " option[value='"+ dayVal +"']").attr('selected', 'selected');
    else
      $(dayID  + "_year option[value='']").attr('selected', 'selected');
  });

}

function initDayDropDown(monthID, numDays) {
  var dayID = '#' + monthID + '_day';
  var yearID = dayID + '_year';
  var dayDropDown = $(dayID);
  var yearDropDown = $(yearID);
  var options = '';

  if(numDays == 28) {
    if($(yearDropDown).attr('value') % 4 == 0) {
      numDays = 29;
    }
  }
  
  options += '<option value=""></option>';
  for (var i = 1; i <= numDays; i++) {
    options += '<option value="' + i + '">' + i + '</option>';
  }
    
  dayDropDown.html(options);
}

function initYearDropDown(yearDropDown) {
  var currentYear = (new Date).getFullYear();
  var firstYear = currentYear;
  var options = '';
  
  options += '<option value=""></option>';
  for (currentYear; currentYear >= firstYear - 100; currentYear--) {
    options += '<option value="' + currentYear + '">' + currentYear + '</option>';
  }

  yearDropDown.html(options);
  
  yearDropDown.change(function() {
    var monthDropDown = '#' + $(yearDropDown).attr('id').substring(0, $(yearDropDown).attr('id').length - 9);
    
    if($(monthDropDown).attr('value') == '02') {
      if($(yearDropDown).attr('value') % 4 == 0) {
        initDayDropDown($(monthDropDown).attr('id'), 29);
      }
      else {
        initDayDropDown($(monthDropDown).attr('id'), 28);
      }
    }
  });
}

function initPaymentYearDropDown(yearDropDown) {
  var currentYear = (new Date).getFullYear();
  var options = '';
  
  options += '<option value="XX">XXXX</option>';
  for (var i=0; i < 11; i++) 
  {
    options += '<option value="' + (currentYear + i) + '">' + (currentYear + i)  + '</option>';
  }
  
  yearDropDown.html(options);
}

function ValidatePersonalInfo() {
  var _success = true;
  
  if($.trim($('#first_name').val()).length == 0) {
    _success = false;

    $('#first_name_error').text(" - Required");
    $('#first_name_error').css({visibility: "visible"});
  }
  else {
    $('#first_name_error').css({visibility: "hidden"});
  }
  
  if($.trim($('#last_name').val()).length == 0) {
    _success = false;
   
    $('#last_name_error').text(" - Required");
    $('#last_name_error').css({visibility: "visible"});
  }
  else {
    $('#last_name_error').css({visibility: "hidden"});
  }
  
  if($.trim($('#email_address').val()).length == 0) {
    _success = false;
   
    $('#email_address_error').text(" - Required");
    $('#email_address_error').css({visibility: "visible"});
  }
  else {
    if(ValidateEmail()) {
      $('#email_address_error').css({visibility: "hidden"});
    }
    else {
      _success = false;
    }
  }

  if($.trim($('#password').val()).length > 0 || $.trim($('#confirm_password').val()).length > 0) {
    if($.trim($('#password').val()) != $.trim($('#confirm_password').val())) {
      _success = false;
      
      $('#confirm_password_error').text(" - Passwords do not match");
      $('#confirm_password_error').css({visibility: "visible"});
    }
    else {
      $('#confirm_password_error').css({visibility: "hidden"});
    }
  }
  
  return _success;
}
  
function ValidateEmail() {
  var _tfld = $.trim($('#email_address').val());
  //var _email = /^[^@]+@[^@.]+\.[^@]*\w\w$/  ;
  var _email = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
  var _success = true;
  
  if (!_email.test(_tfld))
  {
    $('#email_address_error').text(" - Invalid Email");
    $('#email_address_error').css({visibility: "visible"});
    _success = false;
  }
  return _success;
}
  
function ValidateExtendedInfo() {
  var _success = true;
  var otherFields = $("#gender").val().length + $("#marital_status").val().length + $("#zipcode").val().length;
  var dobLength = $("#dob_month").val().length + $("#dob_month_day").val().length + $("#dob_month_day_year").val().length;
  var annivLength = $("#anniv_month").val().length + $("#anniv_month_day").val().length + $("#anniv_month_day_year").val().length;
  
    if (dobLength > 0)
    {
      if (! ($("#dob_month").val().length > 0 && $("#dob_month_day").val().length > 0 && $("#dob_month_day_year").val().length > 0))
      {
        _success = false;
  
        $('#dob_error').text(" - Invalid date of birth");
        $('#dob_error').css({visibility: "visible"});
      }
      else
        $('#dob_error').css({visibility: "hidden"});
    }
    else
      $('#dob_error').css({visibility: "hidden"});
    
    if (annivLength > 0)
    {
      if (! ($("#anniv_month").val().length > 0 && $("#anniv_month_day").val().length > 0 && $("#anniv_month_day_year").val().length > 0))
      {
        _success = false;
  
        $('#anniv_error').text(" - Invalid anniversary date");
        $('#anniv_error').css({visibility: "visible"});
      }
      else
        $('#anniv_error').css({visibility: "hidden"});
    }
    else
      $('#anniv_error').css({visibility: "hidden"});

  return _success;
}

function ValidatePaymentInfo() {
  var _success = true;
  var numcheck = /^\d{15,16}$/;
  var yearcheck = /^\d{4}$/;
  
  if($.trim($('#card_name').val()).length == 0) {
    _success = false;
    
    $('#card_name_error').text(" - Required");
    $('#card_name_error').css({visibility: "visible"});
  }
  else {
    $('#card_name_error').css({visibility: "hidden"});
  }

  if($.trim($('#card_number').val()).length == 0) 
  {
    _success = false;
    $('#card_number_error').text(" - Required");
    $('#card_number_error').css({visibility: "visible"});
  }
  else if(! numcheck.test($.trim($('#card_number').val())))
  {
     _success = false;
    $('#card_number_error').text(" - Invalid number");
    $('#card_number_error').css({visibility: "visible"});
  }
  else {
    $('#card_number_error').css({visibility: "hidden"});
  }
  
  //see why this is not working, year seems to be messing this logic up
  //alert($.trim($('#card_exp_year').val()));
  //|| !_numcheck.test($.trim($('#card_exp_year').val()))
  if ($.trim($('#card_exp_month').val()).indexOf('X') > -1 || ! yearcheck.test($.trim($('#card_exp_year').val())))
  {
     _success = false;
    $('#card_exp_month_error').text(" - Invalid expiration date");
    $('#card_exp_month_error').css({visibility: "visible"});
  }
  else
  {
    $('#card_exp_month_error').css({visibility: "hidden"});
  }

  return _success;
}


/* Custom Drop Down and Search */

$(document).ready(function() {

    $(".btn-close").click(function() {
        $(this).parent().parent().toggle();
    });

    $(".DDLFieldAction").click(function() {
        $(this).parent().next().toggle();
    });

    $(".searchTextField").keyup(function() {
        $(this).parent().next(".DDLOptions:hidden").toggle();
    });

    $(".optionLight").click(function() {
        var value = $(this).text();
        $(this).parent().toggle();
        $(this).parent().parent().children().children(".searchTextField").val(value);
    });
    $(".optionDark").click(function() {
        var value = $(this).text();
        $(this).parent().toggle();
        $(this).parent().parent().children().children(".searchTextField").val(value);
    });

});

function populateBasicControls(){
  var f = $("#basic-info-form");
  f.find('input[name=first_name]').val(document.getElementById("first_name_info").innerHTML);
  f.find('input[name=last_name]').val(document.getElementById("last_name_info").innerHTML)
  f.find('input[name=email_address]').val(document.getElementById("email_info").innerHTML)
}

function populateExtendedControls(){
  var gender =  $.trim(document.getElementById("genderInfo").firstChild.data);
  var relStatus = $.trim(document.getElementById("relStatusInfo").firstChild.data);
  var dobArray = document.getElementById("dobInfo").firstChild.data.split('/');
  var annivDateArray = document.getElementById("annivDateInfo").firstChild.data.split('/');
  var postalCode = $.trim(document.getElementById("postalCodeInfo").innerHTML);
  
  if (gender == 'Male')
    $("#gender option[value='1']").attr('selected', 'selected');
  else if (gender == 'Female')
    $("#gender option[value='2']").attr('selected', 'selected');
  else
    $("#gender option[value='']").attr('selected', 'selected');
  
  if (relStatus == 'Single')
     $("#marital_status option[value='1']").attr('selected', 'selected');
  else if (relStatus == 'Married')
    $("#marital_status option[value='2']").attr('selected', 'selected');
  else
    $("#marital_status option[value='']").attr('selected', 'selected');
  
  if (dobArray.length > 1)
  {      
    $("#dob_month option[value='" + dobArray[0] + "']").attr('selected','selected');
    $("#dob_month_day option[value='" + dobArray[1] + "']").attr('selected','selected');
    $("#dob_month_day_year option[value='" + $.trim(dobArray[2]) + "']").attr('selected', 'selected');
  }
  
  if (annivDateArray.length > 1)
  {
    $("#anniv_month option[value='" + annivDateArray[0] + "']").attr('selected','selected');
    $("#anniv_month_day option[value='" + annivDateArray[1] + "']").attr('selected','selected');
    $("#anniv_month_day_year option[value='" + $.trim(annivDateArray[2]) + "']").attr('selected','selected');
  }
  
  $("#extended-info-form").find('input[name=zipcode]').val(postalCode);
}

function populatePaymentControls(){
  var card_type = document.getElementById("card_type_info").innerHTML;
  var card_exp = document.getElementById("card_exp_info").innerHTML;
  
  $("#card_type option[value='"+ card_type +"']").attr('selected', 'selected');
  $('#card_name').val(document.getElementById("card_name_info").innerHTML);
  $('#card_number').val(document.getElementById("card_number_info").innerHTML.replace(/ /g,''));
  //$("#card_exp_month option[value='"+ card_exp.substring(0,card_exp.indexOf('/')) +"']").attr('selected', 'selected');
  //$("#card_exp_year option[value='"+ card_exp.substring(card_exp.indexOf('/')+1) +"']").attr('selected', 'selected');

  $("#card_exp_month option[value='XX']").attr('selected', 'selected');
  $("#card_exp_year option[value='XX']").attr('selected', 'selected');

  $('#card_postal_code').val(document.getElementById("card_postal_code_info").innerHTML);
}

function initCinemarkEmails()
{
  var lCmkEmails = $('input.myCheckbox[id ^= cmkEmail]');
  
  lCmkEmails.each(function() {
    var lCheck = $(this);
    lCheck.click(function() { 
      
      sendCinemarkEmail(lCheck.attr('id').substr(8), lCheck.attr('checked'), null, null);
     
    })
  });
}

function initCineartsEmails()
{
  var lCmkEmails = $('input.myCheckbox[id ^= cineEmail]');
  
  lCmkEmails.each(function() {
    var lCheck = $(this)
    lCheck.click(function() { 
      sendCineartsEmail(lCheck.attr('id').substr(9), lCheck.attr('checked'), null, null);
    })
  });
}

function initRemoveTheater()
{
  var vLinks = $('div.listBoxRemove');
  vLinks.each(function() {
    var vLink = $(this);
    vLink.click(function() {
      sendRemoveFavTheater(vLink.attr('id').substr(7), onSuccessReloadPage);
    });
  });

}
               
function initAddTheater()
{
  var vLinks = $('div.btn-TheatreFavorite');

  vLinks.each(function() {
    var vLink = $(this);
    vLink.click(function() {
      sendAddFavTheater(vLink.attr('id').substr(11), onSuccessReloadPage, null);
    });
  });
}

function onSuccessReloadPage(vResponse)
{
  document.location.href = document.location.href;
}

function initTheaterRankUpdate()
{
  var vButton = $('div.btn-UpdateRank')
  
  vButton.click(function() {
    if( ValidateRank())
    {
      $.ajax({
        type: "POST",
        url: "/services/mycinemark.svc/FavTheatre/UpdateRank",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: BuildTheaterRankJSON(),
        success: function(vResponse) {
          document.location.href = document.location.href;
        },
        error: function(vMsg,a,b) {}
      });
    }
  });
}

function ValidateRank()
{
  var lReturn = true;

  $('input[id ^= rank]').each( function() {
    var lInput = $(this).val();
    var lIsNumeric = (lInput - 0) == lInput && lInput.length > 0;
    
    if (!lIsNumeric)
      $(this).css('border','1px #B4121B solid');
    
    lReturn = lReturn && lIsNumeric
  });

  if (!lReturn) {
    $('.rankErrorText').text('Invalid ranking, all ranks must be numbers.');
  }

  return lReturn;
}
  
function BuildTheaterRankJSON()
{
  var vJSON = ''
  
  $('input[id ^= rank]').each( function() {
    var vInput = $(this);
    vJSON += ',{"TheaterID":' + vInput.attr('id').substr(4) + ',"Rank":' + vInput.val()+ '}';
  });
  
  if (vJSON.length > 0)
    vJSON = vJSON.substr(1);
  
  return '{ "vTheaters" : [' + vJSON + ']}';
}
  
function initGiftCards()
{
    $("a.btn-Rename").click(function () {
        $(this).parent().parent().prev().children("input").val($(this).parent().parent().prev().children("span").text());
        $(this).parent().parent().prev().children("span").toggle();
        $(this).parent().parent().prev().children("input").toggle();
        $(this).next(".btn-Save").toggle();
        $(".btn-RegisterGiftCard").css('visibility', 'hidden');
        $(this).parent().next().children("a").toggle();    
        $(this).toggle();
    });

    $(".btn-Save").click(function () {
     if (ValidateGiftCard($(this)))
      {
        var btn = $(this);
        var params = "card_name=" + $(this).parent().parent().prev().children("input").val();
        params += "&card_number="
          
        if(btn.parent().parent().next().children("input").css('display').indexOf('inline') > -1 )
          params += btn.parent().parent().next().children("input").val();
        else
          params += btn.parent().parent().next().children("span").text();
       
         $.ajax({
          type: "GET",
          url: "/mycinemarkservice/savegift?" + params,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(msg){
            if (msg.ResponseType == true)
            {
              $("#invalidGiftField").css('display', 'none');
              if (btn.prev().hasClass("btn-Rename"))
              { 
                btn.parent().parent().prev().children("span").text(btn.parent().parent().prev().children("input").val());
                btn.parent().parent().prev().children("span").toggle();
                btn.parent().parent().prev().children("input").toggle();
                btn.prev(".btn-Rename").toggle();
                btn.parent().next().children("a").toggle();
                
                $(".btn-RegisterGiftCard").css('visibility', 'visible');
                btn.toggle();
        
                if(btn.parent().parent().next().children("input").css('display').indexOf('inline') > -1)
                {
                  var gcnum = btn.parent().parent().next().children("input").val();
                  btn.parent().parent().next().children("span").text("********" + gcnum.substring(8,gcnum.length));
                  btn.parent().parent().next().children("span").toggle();
                  btn.parent().parent().next().children("input").toggle();
                  btn.parent().parent().next().next().text("BALANCE: $" + msg.ResponseText);
                  btn.parent().next().find('a.btn-Reload').attr('href', 'reloadgiftcard.aspx?gc_number=********' + gcnum.substring(8,gcnum.length));
                  
                  initPopups(btn.parent().next().find('a.btn-Reload'));
                }
              }
            }
            else if(msg.ResponseText.indexOf('Invalid gift card number') > -1)
            {
              $("#invalidGiftField").css('display', 'block');
              $("#invalidGiftField").text('Either the gift card does not exist or is already associated with another email address');
            }
          },
          error:function(msg,a,b){alert (msg);}
        });
      }//Validate Gift Card
    });
              
    $("a.btn-CancelEditGiftCard").click(function () {
        if ($(this).parent().parent().next().children("span").css('display') == 'none')
        {
          $(this).parent().parent().parent().remove();
          $(".btn-RegisterGiftCard").css('visibility', 'visible');
          DisplayNoGiftCardMessage();
        }
        else
        {
          $(this).parent().parent().prev().children("span").toggle();
          $(this).parent().parent().prev().children("input").toggle();
          $(this).parent().prev().children("a.btn-Rename").toggle();
          $(this).parent().prev().children("a.btn-Save").toggle();
          $(this).prev("a.btn-Reload").toggle();
          $(".btn-RegisterGiftCard").css('visibility', 'visible');
          $(this).toggle();
        }
        $("#invalidGiftField").css('display', 'none');
        $("#requiredField").css('display', 'none');
        
    });
              
    $(".listBoxRemove").click(function (){
 
        if ($(this).parent().prev().prev().children("span").css('display') == 'none')
        {
          $(this).parent().parent().remove();
          $(".btn-RegisterGiftCard").css('visibility', 'visible');
          DisplayNoGiftCardMessage();
        }
        else
        {
          var params = "card_number=" + $(this).parent().prev().prev().children("span").text();

          $.ajax({
            type: "GET",
            url: "/mycinemarkservice/deletegift?" + params,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg){
              if (msg.ResponseType == true)
              {
                $.ajax({
                  url: "GiftCardsContent.aspx",
                  success: function (msg) {
                    var _divHolder = $('#GiftCardsContent');
                    
                    _divHolder.html(msg);
                    _divHolder.show();
                    
                    initPopups(_divHolder.find('a.btn-Reload'));
                  },
                  error: function () {alert('AJAX Error!');}
                });
              }
            },
            error:function(msg,a,b){}
          });
         
        }
        $("#invalidGiftField").css('display', 'none');
        $("#requiredField").css('display', 'none');
      });
      
    $(".btn-RegisterGiftCard").click(function(){
      registerGiftCard();
      $(this).css('visibility','hidden');
      
      if ($('#divNoData').length > 0)
      {
        if($('#divNoData').css('display').indexOf('block') > -1)
          $('#divNoData').css('display', 'none');
      }
      
    });
}

function registerGiftCard()
{
  var divSize = $("#containerDiv > div").size();

  var classToSelect;
  
  if (divSize % 2 == 1)
    classToSelect = "listRowGray";
  else
    classToSelect = "listRowWhite";

  jQuery('.listRowHidden').each(function ()
  {
    var divToCopy = $(this);
    var newDiv = divToCopy.clone(true);
    
    newDiv.removeClass('listRowHidden');
    newDiv.addClass(classToSelect);
    $("#containerDiv").append(newDiv);
    
    newDiv.find('div.listBoxField').children("span").toggle();
    newDiv.find('div.listBoxField').children("input").toggle();
    newDiv.find('a.btn-Save').toggle();
    newDiv.find('a.btn-Rename').toggle();
    newDiv.find('a.btn-Reload').toggle();
    newDiv.find('a.btn-CancelEditGiftCard').toggle();
    
    newDiv.find('div.listBoxCard').children("span").toggle();
    newDiv.find('div.listBoxCard').children("input").toggle();
    
    return false;
  });
}
          
function ValidateGiftCard(control)
{
  var lReturn = true;
  var lGiftCardName = control.parent().parent().prev().children('input');
  var lGiftCardNumber = control.parent().parent().next().children('input');
  
  if ($.trim(lGiftCardName.val()).length == 0 || lGiftCardName.val() =='Card name')
  {
    lReturn = false;
    lGiftCardName.css('border','1px #B4121B solid');
  }
  else
  {
     lGiftCardName.css('border','1px #bbb solid');
  }
  
  if (lGiftCardNumber.css('display').indexOf('inline') > -1)
  {
    if ($.trim(lGiftCardNumber.val()).length == 0 || lGiftCardNumber.val() =='Card number')
    {
      lReturn = false;
      lGiftCardNumber.css('border','1px #B4121B solid');
    }
    else
       lGiftCardNumber.css('border','1px #bbb solid');
  }

  if (!lReturn)
     $("#requiredField").css('display', 'block');
  else
  {
    $("#requiredField").css('display', 'none');
  
    if (lGiftCardNumber.css('display').indexOf('inline') > -1)
    {
      var lIsNumeric = (lGiftCardNumber.val() - 0) == lGiftCardNumber.val();
      if (!lIsNumeric)
      {
        lReturn = false;
        lGiftCardNumber.css('border','1px #B4121B solid');
        $("#invalidGiftField").css('display', 'block');
        $("#invalidGiftField").text('Invalid gift card number');
      }
      else
      {
        $("#invalidGiftField").css('display', 'none');
        lGiftCardNumber.css('border','1px #bbb solid');
      }
      
      if (lReturn)
      {
        $('span[id ^= spanNumber]').each(function()
        {
          var span = $(this);
          
          
          if (span.text().length > 0)
          {
            if(span.text().substring(8,span.text().length) == lGiftCardNumber.val().substring(8, lGiftCardNumber.val().length))
            {
              lReturn = false;
              lGiftCardNumber.css('border','1px #bbb solid');
              $("#invalidGiftField").css('display', 'block');
              $("#invalidGiftField").text('Gift card already exists');
              return false;
            }
            else
            {
              lGiftCardNumber.css('border','1px #bbb solid');
            }
          }
        });
      }
    }
  }

  return lReturn;
}
      
function initReloadGiftCard()
{
  var _link = $('input[name=amount]');
  
  if (_link.length > 0 && parseInt(_link.val()) != 0) {
    if (ValidateAmount(_link)) {
      $('#reloadgiftcardform').submit();
    } else {
      return false;    
    }
  } else {
    return false;
  }
}
      
function ValidateReloadGiftCardAmount(link)
{
  $('.select-ticket .errormsg').html('');
  

  if (isNaN(link.val()))
  {
    $('.select-ticket .errormsg').html('Amount must be a number greater than 0').css('display','block');
    return false;  
  }
  else if (!(link.val() > 0))
  {
    $('.select-ticket .errormsg').html('Amount must be a number greater than 0').css('display','block');
    return false; 
  }
  else
  {
    $('.select-ticket .errormsg').html('');
    $('.select-ticket .errormsg').css('display','none');
    
    return true;
  }
}
      
function ValidateReloadGiftCardInput()
{
  var _link = $('input[name=amount]');
  
  if (_link.val().length > 0 && parseInt(_link.val()) != 0) {
    if (ValidateReloadGiftCardAmount(_link)) {
      $('#reloadgiftcardform').submit();
    } else {
      return false;
    }
  } else {
    return false;
  }
}

function DisplayNoGiftCardMessage()
{
  var divSize = $("#containerDiv > div").size();
  if(divSize == 1)
    $('#divNoData').css('display', 'block');
}

/* Input and Select field fix in Safari */
$(document).ready(function () {

    if ($.browser.webkit) {
        $("input").addClass("input-safari");
        $("select").addClass("select-safari");
        $(".dropDownField").addClass("dropDownField-ie7");
    }

});

/* Input and Select field fix in IE7 */
$(document).ready(function () {

    if ($.browser.msie && $.browser.version == "7.0") {
        $("input").addClass("input-ie7");
        $("select").addClass("select-ie7");
        $(".dropDownField").addClass("dropDownField-ie7");
        $(".searchResultsDDL").addClass("searchResultsDDL-ie7");
    }

});
