﻿$.fn.pulse=function(prop,speed,times,easing,callback){if(isNaN(times)){callback=easing;easing=times;times=1;}
var optall=jQuery.speed(speed,easing,callback),queue=optall.queue!==false,largest=0;for(var p in prop){largest=Math.max(prop[p].length,largest);}
optall.times=optall.times||times;return this[queue?'queue':'each'](function(){var counts={},opt=jQuery.extend({},optall),self=jQuery(this);pulse();function pulse(){var propsSingle={},doAnimate=false;for(var p in prop){counts[p]=counts[p]||{runs:0,cur:-1};if(counts[p].cur<prop[p].length-1){++counts[p].cur;}else{counts[p].cur=0;++counts[p].runs;}
if(prop[p].length===largest){doAnimate=opt.times>counts[p].runs;}
propsSingle[p]=prop[p][counts[p].cur];}
opt.complete=pulse;opt.queue=false;if(doAnimate){self.animate(propsSingle,opt);}else{optall.complete.call(self[0]);}}});};

// custom implementation
$(document).ready(function()
{
	$('#apple').pulse(
	{
		top: ['10%','5%']
	}, 1000, 99999);
});
