text: /*
    file name : price.js
  */
  
  jQuery(document).ready(function($){
  	//hide the subtle gradient layer (.pricing-list > li::after) when pricing table has been scrolled to the end (mobile version only)
  	checkScrolling($('.pricing-body'));
  	$(window).on('resize', function(){
  		window.requestAnimationFrame(function(){checkScrolling($('.pricing-body'))});
  	});
  	$('.pricing-body').on('scroll', function(){ 
  		var selected = $(this);
  		window.requestAnimationFrame(function(){checkScrolling(selected)});
  	});
  
  	
  
  	function checkScrolling(tables){
  		tables.each(function(){
  			var table= $(this),
  				totalTableWidth = parseInt(table.children('.pricing-features').width()),
  		 		tableViewport = parseInt(table.width());
  			if( table.scrollLeft() >= totalTableWidth - tableViewport -1 ) {
  				table.parent('li').addClass('is-ended');
  			} else {
  				table.parent('li').removeClass('is-ended');
  			}
  		});
  	}
  
  	//switch from monthly to annual pricing tables
  	bouncy_filter($('.pricing-container'));
  
  	function bouncy_filter(container) {
  		container.each(function(){
  			var pricing_table = $(this);
  			var filter_list_container = pricing_table.children('.pricing-switcher'),
  				filter_radios = filter_list_container.find('input[type="radio"]'),
  				pricing_table_wrapper = pricing_table.find('.pricing-wrapper');
  
  			//store pricing table items
  			var table_elements = {};
  			filter_radios.each(function(){
  				var filter_type = $(this).val();
  				table_elements[filter_type] = pricing_table_wrapper.find('li[data-type="'+filter_type+'"]');
  			});
  
  			//detect input change event
  			filter_radios.on('change', function(event){
  				event.preventDefault();
  				//detect which radio input item was checked
  				var selected_filter = $(event.target).val();
  
  				//give higher z-index to the pricing table items selected by the radio input
  				show_selected_items(table_elements[selected_filter]);
  
  				//rotate each pricing-wrapper 
  				//at the end of the animation hide the not-selected pricing tables and rotate back the .pricing-wrapper
  				
  				if( !Modernizr.cssanimations ) {
  					hide_not_selected_items(table_elements, selected_filter);
  					pricing_table_wrapper.removeClass('is-switched');
  				} else {
  					pricing_table_wrapper.addClass('is-switched').eq(0).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function() {		
  						hide_not_selected_items(table_elements, selected_filter);
  						pricing_table_wrapper.removeClass('is-switched');
  						//change rotation direction if .pricing-list has the .bounce-invert class
  						if(pricing_table.find('.pricing-list').hasClass('bounce-invert')) pricing_table_wrapper.toggleClass('reverse-animation');
  					});
  				}
  			});
  		});
  	}
  	function show_selected_items(selected_elements) {
  		selected_elements.addClass('is-selected');
  	}
  
  	function hide_not_selected_items(table_containers, filter) {
  		$.each(table_containers, function(key, value){
  	  		if ( key != filter ) {	
  				$(this).removeClass('is-visible is-selected').addClass('is-hidden');
  
  			} else {
  				$(this).addClass('is-visible').removeClass('is-hidden is-selected');
  			}
  		});
  	}
  });