/home/arranoyd/magicraft/wp-content/plugins/imagify/assets/js/upload.js
jQuery(function($){
	/*
	 * Add a "Imagify'em all" in the select list	 
	 */
	var bulk_opt = '<option value="imagify-bulk-upload">' + imagifyUpload.bulkActionsLabels.optimize + '</option>';
	 	bulk_opt += '<option value="imagify-bulk-restore">' + imagifyUpload.bulkActionsLabels.restore + '</option>';

	$('.bulkactions select[name="action"]').find('option:last-child').before( bulk_opt );
	$('.bulkactions select[name="action2"]').find('option:last-child').before( bulk_opt );
	
	/*
	 * Process optimization for all selected images
	 */
	$('#doaction').add('#doaction2')
				  .on('click', function(e) {
					value = $(this).prev('select').val();
					value = value.split('-');

					if ( 'imagify' !== value[0] ) {
						return;
					}

					e.preventDefault();

					action = value[2];			
					ids    = $('input[name^="media"]:checked').map( function(){
					    return this.value;
					}).get();

					ids.forEach( function( id, index ) {
						setTimeout(function(){
							$('#imagify-' + action + '-' + id ).trigger('click');
						}, index*300);
					});
						
				});
	
	/*
	 * Process to one of these actions: restore, optimize or re-optimize	 
	 */	
	$(document).on('click', '.button-imagify-restore, .button-imagify-manual-upload, .button-imagify-manual-override-upload', function(e){
		e.preventDefault();

		var $obj 	= $(this);
		var $parent = ( $obj.parents('.column-imagify_optimized_file, .compat-field-imagify .field').length ) ? $obj.parents('.column-imagify_optimized_file, .compat-field-imagify .field') : $obj.closest('.column');
		var href 	= $obj.attr('href');

		$parent.html('<div class="button"><span class="imagify-spinner"></span>' + $obj.data('waiting-label') + '</div>');

		$.get( href.replace( 'admin-post.php', 'admin-ajax.php' ) )
		.done( function( response ){
			$parent.html( response.data );
			$parent.find('.imagify-datas-more-action a').addClass('is-open').find('.the-text').text( $parent.find('.imagify-datas-more-action a').data('close') );
			$parent.find('.imagify-datas-details').addClass('is-open');
			
			draw_me_a_chart( $parent.find('.imagify-chart-container').find('canvas') );
		} );
	} );

	/*
	 * Toggle slide in custom column	 
	 */
	$('.imagify-datas-details').hide();

	$(document).on('click', '.imagify-datas-more-action a', function(){
		if ( $(this).hasClass('is-open') ) {
			$( $(this).attr('href') ).slideUp('300').removeClass('is-open');
			$(this).removeClass('is-open').find('.the-text').text( $(this).data('open') );
		}
		else {
			$( $(this).attr('href') ).slideDown('300').addClass('is-open');
			$(this).addClass('is-open').find('.the-text').text( $(this).data('close') );
		}
		return false;
	});

	
	// Some usefull functions to help us with media modal

	var get_var = function (param) {
			var vars = {};
			window.location.href.replace( 
				/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
				function( m, key, value ) { // callback
					vars[key] = value !== undefined ? value : '';
				}
			);

			if ( param ) {
				return vars[param] ? vars[param] : null;	
			}
			return vars;
		},
		check_modal = function() {
			var tempTimer = setInterval( function(){
				if ( $('.media-modal').find('.imagify-datas-details').length ) {
					$('.media-modal').find('.imagify-datas-details').hide();
					draw_me_a_chart( $('.media-modal').find('#imagify-consumption-chart') );
					clearInterval(tempTimer);
					tempTimer = null;
				}
			}, 20 );
		};
	
	// Intercept the right moment if media details is clicked (mode grid)
	// Bear Feint
	 
	$('.upload-php').find('.media-frame.mode-grid').on('click', '.attachment', function(){
		check_modal();
	});

	// On page load in upload.php check if item param exists
	if ( $('.upload-php').length > 0 && get_var('item') ) {
		check_modal();
	}

	// On media clicked
	$('#insert-media-button').on('click.imagify', function() {
		var waitContent = setInterval( function() {
			if ( $('.media-frame-content').find('.attachments').length > 0 ) {
				$('.media-frame-content').find('.attachments').on('click.imagify', '.attachment', function(){
					check_modal();
				});
				clearInterval(waitContent);
			}
		}, 100);
	});

	/*
	 * Mini chart
	 *
	 * @param {element} canvas
	 */	
	function draw_me_a_chart( canvas ) {
		canvas.each(function(){
		
			var the_value = parseInt( $(this).closest('.imagify-chart').next('.imagify-chart-value').text() ),
				overviewData = [
				{
					value: the_value,
					color: '#00B3D3'
				},
				{
					value: 100 - the_value,
					color: '#D8D8D8'
				}
				],
				overviewDoughnut = new Chart( $(this)[0].getContext('2d')).Doughnut(overviewData, {
					segmentStrokeColor	: '#FFF',
					segmentStrokeWidth	: 1,
					animateRotate		: true,
					tooltipEvents		: []
				});
		});
	}
	draw_me_a_chart( $('.imagify-chart-container').find('canvas') );
});