/*

 *

 *	jQuery Timer plugin v0.1

 *		Matt Schmidt [http://www.mattptr.net]

 *

 *	Licensed under the BSD License:

 *		http://mattptr.net/license/license.txt

 *

 */

 

 jQuery.timer = function (interval, callback)

 {

 /**

  *

  * timer() provides a cleaner way to handle intervals  

  *

  *	@usage

  * $.timer(interval, callback);

  *

  *

  * @example

  * $.timer(1000, function (timer) {

  * 	alert("hello");

  * 	timer.stop();

  * });

  * @desc Show an alert box after 1 second and stop

  * 

  * @example

  * var second = false;

  *	$.timer(1000, function (timer) {

  *		if (!second) {

  *			alert('First time!');

  *			second = true;

  *			timer.reset(3000);

  *		}

  *		else {

  *			alert('Second time');

  *			timer.stop();

  *		}

  *	});

  * @desc Show an alert box after 1 second and show another after 3 seconds

  *

  * 

  */



	var interval = interval || 100;



	if (!callback)

		return false;

	

	_timer = function (interval, callback) {

		this.stop = function () {

			clearInterval(self.id);

		};

		

		this.internalCallback = function () {

			callback(self);

		};

		

		this.reset = function (val) {

			if (self.id)

				clearInterval(self.id);

			

			var val = val || 100;

			this.id = setInterval(this.internalCallback, val);

		};

		

		this.interval = interval;

		this.id = setInterval(this.internalCallback, this.interval);

		

		var self = this;

	};

	

	return new _timer(interval, callback);

 };

