jQuery('document').ready(function(){

    // Setup form
    var selectMaximum   = 3;
    var selectCount     = 0;

    _hideButtons();
    _recalculate();
    _detectEmktg();



    // Modal Dialog
    if(jQuery('input#dob').val() == '') {
        jQuery('#pcform').hide();
    } else {
        jQuery('#pcmodal').hide();
    }

    jQuery('input.clearable').focus(function(){
        if (this.value == this.defaultValue){ this.value = ''; }
    });

    jQuery('input.clearable').blur(function(){
        if(!this.value) { this.value = this.defaultValue; }
    });





    jQuery("#enter").click(function(){

        var day = jQuery("#dayCheck").val();
        var month = jQuery("#monthCheck").val();
        var year = jQuery("#yearCheck").val();
        var age = 18;

        var mydate = new Date();
        mydate.setFullYear(year, month-1, day);

        if(mydate == 'Invalid Date' || mydate == 'NaN') {
            alert('Please enter a valid date (Format: DD - MM - YYYY)');

            return false;
        }

        var currdate = new Date();
        currdate.setFullYear(currdate.getFullYear() - age);
        if ((currdate - mydate) < 0){
            alert("Sorry, only persons over the age of " + age + " may enter this site");
            return false;
        }

        jQuery('#pcmodal').hide();
        jQuery('#pcform').show();
        jQuery('input#dob').val(jQuery("#dayCheck").val() + '-' + jQuery("#monthCheck").val() + '-' + jQuery("#yearCheck").val());

        return true;
    });


    // Select Emarketing Options
    jQuery('input[name=emailmktg[]]').change(function(){

        _detectEmktg();
    });



    // Selection Form
    jQuery('select#chooseshow').change(function(){

        _recalculate();

        var allowadd = true;

        jQuery('input.showvote').each(function(){
            if(jQuery(this).val() == jQuery('select#chooseshow').val()) {
                allowadd = false;
            }
        });

        if(selectCount >= selectMaximum) {
            alert('You have already selected ' + selectMaximum + ' shows');
        } else if(!allowadd) {
            alert('You have already voted for this show!');
        } else if(jQuery(this).val() == '') {
        } else {
            _showButtons();
            jQuery('select#chooseshow').attr('disabled', 'disabled');
        }

    });



    // Change Show
    jQuery('div#buttons a.changeShow').click(function(){
        jQuery('select#chooseshow').removeAttr('disabled');

        _hideButtons();

        return false;
    });



    // Add Show
    jQuery('div#buttons a.addShow').click(function(){

        var selectval = jQuery('select#chooseshow :selected').text();
        var selectid  = jQuery('select#chooseshow').val();

        jQuery('table#selection').show();
        jQuery('table#selection tbody').append('<tr class="voterow_' + selectCount + '"><td width="400"><input type="hidden" class="showvote" name="vote[]" value="' + selectid + '" />' + selectval + '</td><td><a href="#" class="deletevote" rel="' + selectCount + '">Remove</a></td></tr>');

        jQuery('select#chooseshow').val('');
        jQuery('select#chooseshow').removeAttr('disabled');

        _recalculate();

        _hideButtons();

        return false;
    });



    // Delete vote / selection
    jQuery('.deletevote').live("click", function(){
        jQuery('tr.voterow_' + jQuery(this).attr('rel')).remove();

        _recalculate();

        return false;
    });


    // Setup marketing radio buttons
    function _detectEmktg()
    {
        if(jQuery('input#emailmktg-none').is(':checked')) {
            jQuery('input#emailmktg-bulmers').attr('disabled', 'disabled');
            jQuery('input#emailmktg-micf').attr('disabled', 'disabled');

            jQuery('input#emailmktg-bulmers').removeAttr('checked');
            jQuery('input#emailmktg-micf').removeAttr('checked');


        } else {
            jQuery('input#emailmktg-bulmers').removeAttr('disabled');
            jQuery('input#emailmktg-micf').removeAttr('disabled');
        }
    }

    // Hide add show / change show buttons
    function _hideButtons()
    {
        jQuery('div#confirm').hide();
        jQuery('div#buttons').hide();
    }

    // Display add show / change show buttons
    function _showButtons()
    {
        jQuery('div#confirm').show();
        jQuery('div#buttons').show();
    }

    // Recalculate selections
    function _recalculate()
    {
        selectCount = 0;

        jQuery('input.showvote').each(function(){
            selectCount++;
        });

        jQuery('tr#nothing').hide();

        if(selectCount == 0) {
            jQuery('tr#nothing').show();
        }
    }

});

