jQuery(document).ready(function ($) {
	
	
	//only begin if we're sure it's the right page
	if($('h3:contains("Typography")').length > 0 && $('#redux-opts-form-wrapper').length  > 0){
		
		//add font loading gif
		$('.typography-table tbody tr:nth-child(6n+0) td').append('<span class="font-attrs-loading"></span>');
		
		//turn selects into chosen
		$('.font-family select').chosen();
		
	

		$('.typography-table .font-family select').change(function(){

			updateFontAttrs($(this),'false');
			
			//auto select first option in visible list
			$(this).closest('tr').next('tr').next('tr').find('select option').attr('selected','');
			$(this).closest('tr').next('tr').next('tr').find('select option:visible:first').attr('selected','selected');
			
			$(this).closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('select option').attr('selected','');
			$(this).closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('select option:visible:first').attr('selected','selected');

		});//change event
		
		
		
		
		//on load only show the corresponding weights
		//if($('input[name="salient[use-custom-fonts]"]').is(':checked')){
		$('.typography-table .font-family select').each(function(){
			updateFontAttrs($(this),'true');
		});
		//}

		
	
	}//if typography h3
	
	
	
	
	function updateFontAttrs(element,firstLoad){
		
		//unhide all
		element.closest('tr').next('tr').next('tr').find('select option').show();
		

		var $that = element;
		
		//check what weights are available for font
		var $dataToPass = {
			action: 'nectar_check_font_attrs', 
			font_family: element.val(), 
		}
		
		//show loading
		$that.closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('.font-attrs-loading').stop().animate({'opacity':'1'},350);
		
		$.post(fontData.ajaxurl, $dataToPass, function(data){
			
			//hide loading
			$('.font-attrs-loading').stop().animate({'opacity':'0'},250);
			
			//parse returned JSON
			$json = $.parseJSON(data);
			
			//hide all options expect the placeholder
			$that.closest('tr').next('tr').next('tr').find('select option:not(:first)').hide().attr("disabled", "true");
			$that.closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('select option:not(:first)').hide().attr("disabled", "true");
			
			if(firstLoad == 'false'){		
				$that.closest('tr').next('tr').next('tr').find('select').val('-');
				$that.closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('select').val('subset');
			}
			
			//loop through the json obj and show the applicable attrs
			$.each($json,function(i,v){
				
				 $.each(v.subsets,function(i,v){
				 	$that.closest('tr').next('tr').next('tr').next('tr').next('tr').next('tr').find('td option[value='+v+']').show().removeAttr("disabled");; 
				 });
				 
				 $.each(v.weights,function(i,v){
				 	$that.closest('tr').next('tr').next('tr').find('td option[value='+v+']').show().removeAttr("disabled");; 
				 });
				 
			});
			
		});
		

		
	}
	
	
	
	
	
})
