/* Promocode uses jQuery to Run. */

// Set the code that runs when the page is ready
$(document).ready(function () {
                      // Add events
                      $('#continue').click(validateMembership);
                      $('#nopromo').click(noPromoCode);
                      $('#myaaucode').focus();
                  });

// This function validates membership
function validateMembership() {
    // Make sure we haven't ran out of attempts
    if (ATTEMPTS >= 5) {
        showFaderMsg({msg: 'Please try again later. [GT_E0278]',
                 msgContainer: '#errMsg', msgIsErr: true});
        $('#tooManyAttemps').css('display','');
        return;
    }

    // Get the info we need
    var aauCode = $('#myaaucode').val();
    var zip = $('#myzip').val();

    if (aauCode.length < 1) {
        showFaderMsg({msg: 'An AAU Membership must be specified. [GT_E0276]',
                 msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
        return;
    }
    if (zip.length < 1) {
        showFaderMsg({msg: 'A Zip Code must be specified. [GT_E0277]',
                 msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
        return;
    }

    // Increment the attempts
    ATTEMPTS++;

    // Validate the promo code
    jQuery.getJSON(BASEURL+'aau/validateAAUMembership',
                   {aaucode: aauCode, zip: zip, syn: SYN, ack: ACK,
                   synlist:genS(['aaucode','zip']), acklist:genH(aauCode,zip), rand: Math.random()},
                   function(data, textStatus) {
                       // Decode the JSON
                       results = data;

                       // Check to make sure there was no error
                       if (!results.success) {
                           // Show a message
                           showFaderMsg({msg: 'The AAU Membership is not valid, or an error occurred validating the Membership.&nbsp;[' + results.errorNumber + ']&nbsp;' + results.extendedText,
                                        msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
                           return;
                       }

                       // The membership should be valid at this point. We need
                       // We should have some extra data to decode and use.
                       var json = eval('(' + results.additionalData + ')');
                       if ((!json.assocmembershipid) || (!json.promocode)) {
                           // Show a message
                           showFaderMsg({msg: 'The AAU Membership data is faulty. [GT_E0291].',
                                        msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
                           return;
                       }

                       if (json.assocmembershipid.length < 1) {
                           // Show a message
                           showFaderMsg({msg: 'The AAU Membership data is faulty. [GT_E0291].',
                                        msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
                           return;
                       }

                       // Now that we know the ID is valid, inject some
                       // stuff on the form. Doing things this way prevents
                       // us from "showing our cards" to potential snoopers
                       $('#regForm').append('<input type="hidden" name="assocmemdbid" value="' + json.assocmembershipid + '" />');
                       $('#regForm').append('<input type="hidden" name="promocode" value="' + json.promocode + '" />');
                       $('#regForm').append('<input type="hidden" name="promocodevalid" value="y" />');
                       $('#regForm').submit();
                   });
}

// This function just skips validating a promo code and moves
// the user to the next step in registration
function noPromoCode() {
    $('#regForm').submit();
}
