﻿/**
* jQuery.LocalScroll - Animated scrolling navigation, using anchors.
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 6/3/2008
* @author Ariel Flesler
* @version 1.2.6
**/
; (function($) { var g = location.href.replace(/#.*/, ''), h = $.localScroll = function(a) { $('body').localScroll(a) }; h.defaults = { duration: 1e3, axis: 'y', event: 'click', stop: 1 }; h.hash = function(a) { a = $.extend({}, h.defaults, a); a.hash = 0; if (location.hash) setTimeout(function() { i(0, location, a) }, 0) }; $.fn.localScroll = function(b) { b = $.extend({}, h.defaults, b); return (b.persistent || b.lazy) ? this.bind(b.event, function(e) { var a = $([e.target, e.target.parentNode]).filter(c)[0]; a && i(e, a, b) }) : this.find('a,area').filter(c).bind(b.event, function(e) { i(e, this, b) }).end().end(); function c() { var a = this; return !!a.href && !!a.hash && a.href.replace(a.hash, '') == g && (!b.filter || $(a).is(b.filter)) } }; function i(e, a, b) { var c = a.hash.slice(1), d = document.getElementById(c) || document.getElementsByName(c)[0], f; if (d) { e && e.preventDefault(); f = $(b.target || $.scrollTo.window()); if (b.lock && f.is(':animated') || b.onBefore && b.onBefore.call(a, e, d, f) === !1) return; if (b.stop) f.queue('fx', []).stop(); f.scrollTo(d, b).trigger('notify.serialScroll', [d]); if (b.hash) f.queue(function() { location = a.hash; $(this).dequeue() }) } } })(jQuery);

/**
* jQuery.ScrollTo - Easy element scrolling using jQuery.
* Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
* Date: 2/19/2008
* @author Ariel Flesler
* @version 1.3.3
*/
; (function($) { var o = $.scrollTo = function(a, b, c) { o.window().scrollTo(a, b, c) }; o.defaults = { axis: 'y', duration: 1 }; o.window = function() { return $($.browser.safari ? 'body' : 'html') }; $.fn.scrollTo = function(l, m, n) { if (typeof m == 'object') { n = m; m = 0 } n = $.extend({}, o.defaults, n); m = m || n.speed || n.duration; n.queue = n.queue && n.axis.length > 1; if (n.queue) m /= 2; n.offset = j(n.offset); n.over = j(n.over); return this.each(function() { var a = this, b = $(a), t = l, c, d = {}, w = b.is('html,body'); switch (typeof t) { case 'number': case 'string': if (/^([+-]=)?\d+(px)?$/.test(t)) { t = j(t); break } t = $(t, this); case 'object': if (t.is || t.style) c = (t = $(t)).offset() } $.each(n.axis.split(''), function(i, f) { var P = f == 'x' ? 'Left' : 'Top', p = P.toLowerCase(), k = 'scroll' + P, e = a[k], D = f == 'x' ? 'Width' : 'Height'; if (c) { d[k] = c[p] + (w ? 0 : e - b.offset()[p]); if (n.margin) { d[k] -= parseInt(t.css('margin' + P)) || 0; d[k] -= parseInt(t.css('border' + P + 'Width')) || 0 } d[k] += n.offset[p] || 0; if (n.over[p]) d[k] += t[D.toLowerCase()]() * n.over[p] } else d[k] = t[p]; if (/^\d+$/.test(d[k])) d[k] = d[k] <= 0 ? 0 : Math.min(d[k], h(D)); if (!i && n.queue) { if (e != d[k]) g(n.onAfterFirst); delete d[k] } }); g(n.onAfter); function g(a) { b.animate(d, m, n.easing, a && function() { a.call(this, l) }) }; function h(D) { var b = w ? $.browser.opera ? document.body : document.documentElement : a; return b['scroll' + D] - b['client' + D] } }) }; function j(a) { return typeof a == 'object' ? a : { top: a, left: a} } })(jQuery);
