/*
 *
 *	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);
};
 
 
// on load
$(document).ready(function(){
   // scroll to same-page anchors
	 $('a[href^=#]:not(.noscroll)').click(function() {
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
		&& location.hostname == this.hostname) {
			var $target = $(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if ($target.length) {
				var targetOffset = $target.offset().top;
				$('html,body').animate({scrollTop: targetOffset}, 1000, 'easeInOutCirc');
			  return false;
			}
		}
	});
	
	// init fancybox
	$("a[class$='fancybox']").fancybox({ 
		'frameWidth'      : 800, 
		'frameHeight'     : 600,
		'overlayShow'     : false,
		'easingIn'        : 'easeInOutCirc',
		'easingOut'       : 'easeInOutCirc',
		'easingChange'    : 'easeInOutCirc',
		'zoomOpacity'     : '0.5',
		'zoomSpeedChange' : '100',
		'zoomSpeedIn'     : 300, 
		'zoomSpeedOut'    : 300
	});
});
