

// requires jquery
jQuery(document).ready( function () {
if ( jQuery('#bc-schedule').length > 0 ) {
    // add links to filter div
    jQuery('div.bc-view-option').html('<a href="#" class="bc-all">All</a> | <a href="#" class="bc-filter">By Type +</a>');
    // add form in filter form

    var _filterOptions = [];
    if (!BcSchedParams.formCategory) {
        
    } else {
        _filterOptions.push('<option value=""></option>');
        jQuery.each(BcSchedParams.formCategory, function(key, cat) {
            _filterOptions.push('<option value="'+cat['class_type_id']+'">'+cat['class_type_name']+'</option>'); 
        });
    }
    
    var _categoryOptions = '';
    if (_filterOptions.length > 0) {
        _categoryOptions = '<label>Category: </label><select name="category">' + _filterOptions.join('') + '</select> &nbsp; ';
    }
    
   /* jQuery('div.bc-filter-form').html('<form method="post" action=""><label>Class: </label> <input type="text" name="class_name" /> &nbsp;' +
                        _categoryOptions +
                        '<label>Fitness Level: </label><select name="fitness_level">' +
                        '<option value="" selected="selected"></option><option value="beginner">Beginner</option><option value="intermediate">Intermediate</option><option value="advanced">Advanced</option>' +
                        '</select> <input type="hidden" name="themescheduler" value="selectschedule" /> <input type="submit" value="show" name="show" /></form>')
                           
                           .addClass('bc-hide')
                           
                           .find('form')
                           
                           .submit( function() {
                                var _options = jQuery(this).serialize();
                                BcSchedRequest.fetch(_options);
                                return false;
                           }); */

    //  filter links
    jQuery('div.bc-view-option').click( function(e) {
        var _target = e.target;
        if (_target.nodeName.toLowerCase() != 'a') return;
        // if view all
        if ( jQuery(_target).hasClass('bc-all') == true ) {
            jQuery('div.bc-filter-form').addClass('bc-hide');
            jQuery('a.bc-filter').text('By Type +');
            BcSchedRequest.fetch('class_name=&fitness_level=&themescheduler=selectschedule');
            return false;
        }
        
        // view by filter
        jQuery('div.bc-filter-form').toggleClass('bc-hide');
        if ( jQuery('div.bc-filter-form').hasClass('bc-hide') == true ) {
            jQuery('a.bc-filter').text('By Type +');
        } else {
            jQuery('a.bc-filter').text('By Type -');
        }
        return false;
    });

    BcSchedRequest.setTrOdd();
 } // end if
});

var BcSchedParams;
var BcSchedRequest = {
    onLoad : function() {
        jQuery('#bc-schedule tbody').html('');
        jQuery('#bc-tableloader').removeClass('bc-hide');
    },
    
    onLoaded : function() {
        jQuery('#bc-tableloader').addClass('bc-hide');
    },
    
    fetch : function(options) {
        jQuery.ajax({
            url : BcSchedParams['url'],
            data : options + '&day=' + BcSchedParams['currentDay'] + '&.rand=' + new Date().getTime(),
            dataType : 'json',
            type : 'POST',
            beforeSend : function() {
                BcSchedRequest.onLoad();
            },
            error : function() {
                BcSchedRequest.onLoaded();
                alert('Request failed. Please try again.');
            },
            success : function(data) {
                BcSchedRequest.fetchResponse(data);
                BcSchedRequest.onLoaded();
            }
        });
    },
    
    fetchResponse : function(response) {
        
        if (!response) {
            jQuery('#bc-schedule tbody').html('<tr><td colspan="4">No schedule.</td></tr>');
            return;
        }
        
        if (response.length < 1) {
            jQuery('#bc-schedule tbody').html('<tr><td colspan="4">No schedule.</td></tr>');
            return;
        }
        
        var _html = [];
        jQuery.each( response, function (key, sched) {
            _html.push('<tr>' + BcSchedRequest.formatTd(sched) + '</tr>');
        });
        
        jQuery('#bc-schedule tbody').html(_html.join('\n'));
    },
    
    formatTd : function(sched) {
		var _time = sched['from_time'] + ' - ' + sched['to_time'];
        var _className = (!sched['url'] && sched['url'] != '') ? '<a href="'+sched['url']+'" target="_blank">' + sched['class_name'] + '</a>' : sched['class_name'];
		var _html = '<td>' + _time + '</td>' +
                '<td>'+_className+'</td>' +
                '<td>' + sched['room'] + '</td>' +
                '<td>' + sched['instructor'] + '</td>'
		return _html;
	},
    
    setTrOdd : function() {
        jQuery('#schedule tr:odd').addClass('bc-odd');
    }
};
