var flag = 0;

$(function(){
    $.cncInit();
    if ($('#mask').length > 0) {
        $('#mask').css('min-height', $(document).height());
        $('nav ul').children('li').eq(1).css('z-index', '11');
        $('nav ul').children('li').eq(2).css('z-index', '10');
    }
    if ($('.slides').length > 0) {
        setInterval("cascadeFadeInOut('.slides', '.slide', 'div')", 5000);
    }
});

$.extend({
    cncInit: function() {
        if ($('input.date').length > 0) {
            $('input.date').datepicker({
                changeMonth: true,
                changeYear: true,
                showOtherMonths: true,
                selectOtherMonths: true,
                dateFormat: 'yy-mm-dd'
            });
        }
        if ($('input.date-range').length > 0) {
            var dateRange = $('input.date-range').datepicker({
                changeMonth: true,
                changeYear: true,
                showOtherMonths: true,
                selectOtherMonths: true,
                dateFormat: 'yy-mm-dd',
                onSelect: function(selectedDate) {
                    var option = this.id == 'start' ? "minDate" : "maxDate",
                    instance = $(this).data("datepicker"),
                    date = $.datepicker.parseDate(
                        instance.settings.dateFormat ||$.datepicker._defaults.dateFormat,
                        selectedDate,
                        instance.settings
                    );
                    dateRange.not(this).datepicker( "option", option, date );
                }
            });
        }
        if ($('input.phone').length > 0) {
            $('input.phone').mask('999-999-9999');
        }
        if ($('input.zip').length > 0) {
            $('input.zip').mask('99999');
        }
        if ($('.alert-message .close').length > 0) {
            $('.alert-message .close').click(function(e) {
                $(this).parent().slideUp();
                e.preventDefault();
            });
        }
        if ($('.embed').length > 0) {
            $('.embed').each(function(index, elem) {
                $(this).click(function(e) {
                    e.preventDefault();
                });
                $(this).flashembed({
                    src: $(this).attr('href'),
                    width: '100%',
                    height: '100%',
                    wmode: 'opaque',
                    bgcolor: '#1B2A56'
                });
            });
        }
    },
    triggerMessage: function (wrapper, message, type) {
        $.clearMessage(wrapper);
        $(wrapper).before('<div class="alert-message ' + type + '">' + message + '</div>');
    },
    clearMessage: function (wrapper) {
        $(wrapper).siblings('.alert-message').remove();
    },
    cncConfim: function() {
        return confirm('Are you sure you want to proceed?');
    },
    cncFormatLength: function(num, length) {
        var buffer = '' + num;
        while (buffer.length < length) {
            buffer = '0' + buffer;
        }
        return buffer;
    },
    cncFormatSeconds: function(secs) {
        var hours = Math.floor(secs / (60 * 60));
        
        var divisor_for_minutes = secs % (60 * 60);
        var minutes = Math.floor(divisor_for_minutes / 60);

        var divisor_for_seconds = divisor_for_minutes % 60;
        var seconds = Math.ceil(divisor_for_seconds);

        return $.cncFormatLength(hours, 2) + ':' + $.cncFormatLength(minutes, 2) + ':' + $.cncFormatLength(seconds, 2);
    }
});

// See: http://jonraasch.com/blog/a-simple-jquery-slideshow
function cascadeFadeInOut(base, group, selector) {
    var numChildren = $(base).children(group).length;
    var selected = $(base).children(group).eq(flag % numChildren);
    flag++;

    var $active = selected.children(selector + '.active');
    if ( $active.length == 0 ) $active = selected.children(selector + ':last');
    var $next =  $active.next().length ? $active.next() : selected.children(selector + ':first');
    $active.addClass('last-active');
    $next.css({
        opacity: 0.0
    })
    .addClass('active')
    .animate({
        opacity: 1.0
    }, 1000, function() {
        $active.removeClass('active last-active');
    });
}

