var carousel_start = -3812;

$(document).ready(function() {
    $('#Carousel .left').click(function() {
        $('ul.panels').animate({left: '+=953'}, 500, function() {
            var left = $('ul.panels').offset().left;
            console.log(left);
            
            if (left >= 0) {
                $('ul.panels').css('left', carousel_start + 'px');
            }
        });
    });
    
    $('#Carousel .right').click(function() {
        $('ul.panels').animate({left: '-=953'}, 500, function() {
            var left = $('ul.panels').offset().left;
            console.log(left);
        
            if (left <= -7489) {
                $('ul.panels').css('left', carousel_start + 'px');
            }
        });
    });
    
    $('form').submit(function() {
        var missing_fields = new Array();
        var first_missing_field_element = null;
        var result = true;
        var this_form = this;
        
        
        // check for missing values for required fields...
        $(this_form).find('input, textarea').each(function(index, this_input) {
            var this_input_value = $(this_input).val();
            
            // check if this_input requres a value
            if (this_input_value == '' && $(this_input).attr('data-required') != undefined) {
                // if this is the first required field that is missing, give it focus
                if (first_missing_field_element == null) {
                    first_missing_field_element = this;
                    $(first_missing_field_element).focus();
                }
                
                // collect the name of the required field
                var required_field = $(this_input).attr('data-required_field');
                missing_fields.push(required_field);
                
                // dont allow the form to be submitted
                result = false;
            }
        });
        
        
        // build the alert message...
        if (missing_fields.length > 0) {
            var missing_fields_string = '';
            for (var i=0; i < (missing_fields.length -1); i++) {
                if (missing_fields_string != '') {
                    missing_fields_string += ', ';
                }
                
                missing_fields_string += missing_fields[i];
            }
            
            if (missing_fields_string != '') {
                missing_fields_string += ' and ';
            }
            
            var last_missing_field = missing_fields[missing_fields.length - 1];
            missing_fields_string += last_missing_field;
            
            // show the alert box
            alert('Please provide a valid ' + missing_fields_string + ' before submitting this form.');
        }
        
        return result;
    });
});
