function form_input_classes(){
    jQuery('input[type="text"]').addClass('text');
    jQuery('input[type="password"]').addClass('text');
    jQuery('input[type="checkbox"]').addClass('checkbox');
    jQuery('input[type="radio"]').addClass('radiobutton');
    jQuery('input[type="submit"]').addClass('submit');
    jQuery('input[type="image"]').addClass('buttonImage');
}

function form_labelize(){  jQuery(".labelize input:text").clearingInput(); }   

function superfish(){
    jQuery('ul.sf-menu').superfish({
        speed: 'fast'
    });
}

function revealShowtimes() {
    jQuery(".showtime-reveal").click(function() {
        var target_href = jQuery(this).attr("href");
        var target_date = target_href.slice(1);
        jQuery(".showtime-reveal-" + target_date).slideToggle(100);
        jQuery(this).toggleClass("active");
        return false;
    });
    var showtime_children = jQuery("#showtimes-future").children();
    if (showtime_children.length == 0) {
        jQuery("#showtimes-future").html("<p class='showtime-p'>No upcoming showtimes.</p>");
    }
}

function scheduleFilter() {
    jQuery(".schedule-date").click(function() {
        var target_href = jQuery(this).attr("href");
        var target_class = target_href.slice(1);
        jQuery(".date-item").hide();
        jQuery("." + target_class).show();
        var entry_count = jQuery(".schedule-film." + target_class).length;
        jQuery(this).addClass("count-" + entry_count);
        jQuery("#showtimes-none").remove();
        if (entry_count == 0) {
            jQuery("#schedule-current").append("<p id='showtimes-none'>No showtimes on this date.</p>");
        }
        if (entry_count < 8) {
            jQuery(".schedule-toggle").hide();
            jQuery(".feature-schedule").removeClass("toggle-on");
        } else {
            jQuery(".schedule-toggle").show();
            jQuery(".feature-schedule").addClass("toggle-on");
        }
        jQuery(".schedule-date").removeClass("active");
        jQuery(this).addClass("active");
        return false;
    });
    jQuery(".schedule-toggle").click(function() {
        jQuery("#schedule-body").toggleClass("extended");
        return false;
    });
    jQuery(".schedule-date:first-child").trigger("click");
}

function scheduleCalendar() {
    jQuery("#schedule-nav-cal, #schedule-cal-close").click(function() {
        jQuery("#schedule-cal-display").toggle();
        return false;
    });
    jQuery('#schedule-cal-rotator').cycle({
        cleartype: 1,
        cleartypeNoBg: 1,
        speed: 120,
        prev: '#schedule-cal-prev',
        next: '#schedule-cal-next',
        after: onAfter,
        timeout: 0
    });
}

function onAfter(curr, next, opts) {
    var index = opts.currSlide;
    jQuery('#schedule-cal-prev')[index == 0 ? 'hide' : 'show']();
    jQuery('#schedule-cal-next')[index == opts.slideCount - 1 ? 'hide' : 'show']();
    jQuery("#schedule-cal-inner").removeClass();
    jQuery("#schedule-cal-inner").addClass("i-"+index);
}


jQuery(document).ready(function() {
    form_input_classes();
    form_labelize();
    superfish();
    jQuery('#nyff-rotator').cycle({
        pause: 1,
        cleartype: 1,
        cleartypeNoBg: 1,
        prev: '#nyff-hero-prev',
        next: '#nyff-hero-next'
    });  
    jQuery('#film-slideshow-rotator').cycle({
        pause: 1,
        cleartype: 1,
        cleartypeNoBg: 1,
        prev: '#film-slideshow-prev',
        next: '#film-slideshow-next',
        timeout: 10000
    });
    revealShowtimes();
    scheduleFilter();
    scheduleCalendar();
});


