﻿$(function() {
    var current_year = (new Date).getFullYear();
    var start_year = current_year - 100;

    $('#dob').datepicker({changeMonth: true,
        changeYear: true, showButtonPanel: true,
        showOn: 'both', minDate: '-100Y', maxDate: 0,
        yearRange: start_year + ':' + current_year,
        buttonImageOnly: true, showAnim: 'fadeIn',
        buttonText: 'Click to select a date',
        buttonImage: imghost + 
            '/agkidzone/contact/calendar-blue.gif'
    });

    initialize_email_dialog(625, 475, 'Email AGKidZone',
        function(event, ui) {
            reset_email_dialog('Email AGKidZone');
            $('#dob').datepicker('hide');
        }
    );
});

function submit_contact_us_request() {
    $('#email_dialog .form_error').remove();

    var from_name = get_value('#email_dialog #from_name');
    if(is_blank(from_name)) {
        mark_invalid('#email_dialog #from_name');
        $('#email_dialog #from_name').parent().append(
            '<div class="form_error">\
            First name is blank!</div>');
    }
    else {
        mark_valid('#email_dialog #from_name');
    }

    var dob = get_value('#email_dialog #dob');
    if(has_date_format(dob)) {
        if(is_valid_date(dob)) {
            mark_valid('#email_dialog #dob');
        }
        else {
            mark_invalid('#email_dialog #dob');
            $('#email_dialog #dob').parent().append(
                '<div class="form_error">\
                Birthday does not exist!</div>');
        }
    }
    else if(is_blank(dob)) {
        mark_invalid('#email_dialog #dob');
        $('#email_dialog #dob').parent().append(
            '<div class="form_error">\
            Birthday is blank!</div>');
    }
    else {
        mark_invalid('#email_dialog #dob');
        $('#email_dialog #dob').parent().append(
            '<div class="form_error">\
            Birthday format must be MM/DD/YYYY.</div>');
    }

    var email_address = get_value(
        '#email_dialog #email_address');
    if(is_email_address(email_address)) {
        mark_valid('#email_dialog #email_address');
    }
    else if(is_blank(email_address)) {
        mark_invalid('#email_dialog #email_address');
        $('#email_dialog #email_address').parent().append(
            '<div class="form_error">\
            Email address is blank!</div>');
    }
    else {
        mark_invalid('#email_dialog #email_address');
        $('#email_dialog #email_address').parent().append(
            '<div class="form_error">\
            Email address is incorrectly formatted!</div>');
    }

    var comment = get_value('#email_dialog #comment');
    if(is_blank(comment)) {
        mark_invalid('#email_dialog #comment');
        $('#email_dialog #comment').parent().append(
            '<div class="form_error">\
            Your request is blank!</div>');
    }
    else {
        mark_valid('#email_dialog #comment');
    }

    if($('#email_dialog .form_error').length == 0) {
        var form_data = {from_name: from_name,
            dob: dob, email_address: email_address,
            comment: comment};
        submit_email_dialog(form_data, '/contact-srv');
    }
    else {
        set_email_dialog_attempt_message();
    }
    return false;
}

function has_date_format(value) {
    var regex = /(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])\/(19|20)\d\d/;
    return regex.test(value);
}

function is_valid_date(value) {
    var date_object = new Date()

    var year = parseInt(value.substring(6), 10);
    var month = parseInt(value.substring(0,2), 10) - 1;
    var day = parseInt(value.substring(3,5), 10);

    date_object.setFullYear(year, month, day);
    return (date_object.getMonth() ==
        month) ? true : false;
}