jQuery.noConflict();

jQuery(document).ready(function () {

    //Loading Thumbs
    jQuery('.entry-portfolio-img a ').each(

    function () {
        var img_path = jQuery(this).attr('title'),
            l = jQuery(this),
            img = new Image();

        jQuery(img).css('opacity', '0.0').load(

        function () {
            l.append(this);
            jQuery(this).css('opacity', '0.0').animate({
                opacity: 1.0
            },
            800, function () {
                l.removeAttr('title').css('background-image', 'none');

                jQuery(this).hover(function () {
                    jQuery(this).parent().prev().css('display', 'block');
                    jQuery(this).stop().animate({
                        opacity: 0.8
                    },
                    400);
                },

                function () {
                    jQuery(this).parent().prev().css('display', 'none');
                    jQuery(this).stop().animate({
                        opacity: 1
                    },
                    400);
                })
            });
        }).attr('src', img_path);
    });

    //ie link fix
    if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 8) jQuery('a img').parent().addClass('iefix');

    //Top button
    jQuery('a#top').click(function (e) {
        e.preventDefault();
        var target = (window.opera) ? (document.compatMode == 'CSS1Compat' ? jQuery('html') : jQuery('body')) : jQuery('html,body');
        target.animate({
            scrollTop: jQuery(jQuery(this).attr('href')).offset().top
        },
        500);
    });

    //FP BUTTON
    jQuery('a#fp-stcs-button').hover(function () {
        jQuery(this).stop().animate({
            paddingRight: 50
        },
        400);
    },


    function () {
        jQuery(this).stop().animate({
            paddingRight: 0
        },
        400);
    })

    //RSlider - Home Slider
    var rs_delay = parseInt(jQuery('input#rs_delay').val())
    var rs_duration = parseInt(jQuery('input#rs_duration').val())
    var rs_easing = jQuery('input#rs_easing').val();
    var rs_transition = jQuery('input#rs_transition').val();


    if (jQuery('div#hs-projects').length > 0) jQuery('div#hs-projects').RSlider({
        'delay': rs_delay,
        'duration': rs_duration,
        'transition': rs_transition,
        'easing': rs_easing
    });

    //RDM - Dropdown Menu
    jQuery('ul#nav').rdm();

    //RF - Forms
    var cp = jQuery('input#cp').val();
    if (jQuery('div#rf').length > 0) jQuery('div#rf').rf({
        'path': cp,
        'req_val': 'This field is required',
        'req_mail': 'Invalid email address',
        'req_question': 'Invalid answer!',
        'success': 'Thank you!',
        'error': 'Cant send message!',
        'sending': 'Sending please wait...'
    });

    /*
 * jQuery Highlight plugin
 *
 * Based on highlight v3 by Johann Burkard
 * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
 *
 * Code a little bit refactored and cleaned (in my humble opinion).
 * Most important changes:
 *  - has an option to highlight only entire words only (wordsOnly - false by default),
 *  - has an option to be case sensitive (caseSensitive - false by default)
 *  - highlight element tag and class names can be specified in options
 *
 * Usage:
 *   // wrap every occurrance of text 'lorem' in content
 *   // with <span class='highlight'> (default options)
 *   $('#content').highlight('lorem');
 *
 *   // search for and highlight more terms at once
 *   // so you can save some time on traversing DOM
 *   $('#content').highlight(['lorem', 'ipsum']);
 *   $('#content').highlight('lorem ipsum');
 *
 *   // search only for entire word 'lorem'
 *   $('#content').highlight('lorem', { wordsOnly: true });
 *
 *   // don't ignore case during search of term 'lorem'
 *   $('#content').highlight('lorem', { caseSensitive: true });
 *
 *   // wrap every occurrance of term 'ipsum' in content
 *   // with <em class='important'>
 *   $('#content').highlight('ipsum', { element: 'em', className: 'important' });
 *
 *   // remove default highlight
 *   $('#content').unhighlight();
 *
 *   // remove custom highlight
 *   $('#content').unhighlight({ element: 'em', className: 'important' });
 *
 *
 * Copyright (c) 2009 Bartek Szopka
 *
 * Licensed under MIT license.
 *
 */

    jQuery.extend({
        highlight: function (node, re, nodeName, className) {
            if (node.nodeType === 3) {
                var match = node.data.match(re);
                if (match) {
                    var highlight = document.createElement(nodeName || 'span');
                    highlight.className = className || 'highlight';
                    var wordNode = node.splitText(match.index);
                    wordNode.splitText(match[0].length);
                    var wordClone = wordNode.cloneNode(true);
                    highlight.appendChild(wordClone);
                    wordNode.parentNode.replaceChild(highlight, wordNode);
                    return 1; //skip added node in parent
                }
            } else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
            ! /(script|style)/i.test(node.tagName) && // ignore script and style nodes
            ! (node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
                for (var i = 0; i < node.childNodes.length; i++) {
                    i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
                }
            }
            return 0;
        }
    });

    jQuery.fn.unhighlight = function (options) {
        var settings = {
            className: 'highlight',
            element: 'span'
        };
        jQuery.extend(settings, options);

        return this.find(settings.element + "." + settings.className).each(function () {
            var parent = this.parentNode;
            parent.replaceChild(this.firstChild, this);
            parent.normalize();
        }).end();
    };

    jQuery.fn.highlight = function (words, options) {
        var settings = {
            className: 'highlight',
            element: 'span',
            caseSensitive: false,
            wordsOnly: false
        };
        jQuery.extend(settings, options);

        if (words.constructor === String) {
            words = [words];
        }

        var flag = settings.caseSensitive ? "" : "i";
        var pattern = "(" + words.join("|") + ")";
        if (settings.wordsOnly) {
            pattern = "\\b" + pattern + "\\b";
        }
        var re = new RegExp(pattern, flag);

        return this.each(function () {
            jQuery.highlight(this, re, settings.element, settings.className);
        });
    };


}) //end custom scripts

;(function ($) {

    /* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RF - Rascals Forms
*/

    jQuery.fn.rf = function (options) {
        var opts = jQuery.extend({
            'path': 'contact-form.php',
            'req_val': 'This field is required',
            'req_mail': 'Invalid email address',
            'req_question': 'Invalid answer!',
            'success': 'Thank you!',
            'error': 'Cant send message!',
            'sending': 'Sending please wait...'
        },
        options);

        function isEmpty(val) {
            var re = /\s/g;
            var str = val.replace(re, '');
            if (str.length == 0) {
                return true;
            } else {
                return false;
            }
        }

        function isEmail(val) {
            var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (!val.match(re)) {
                return true;
            } else {
                return false;
            }
        }

        function f_check() {
            var f_check = false;
            var req_num = $('p.rf .req').size();

            $('p.rf .req').each(function (i) {
                if (isEmpty($(this).val())) {
                    $(this).next().text(opts.req_val).css('display', 'block');
                    return false;
                } else {
                    $(this).next().css('display', 'none');
                }
                if ($(this).is('.email')) {
                    if (isEmail($(this).val())) {
                        $(this).next().text(opts.req_mail).css('display', 'block');
                        return false;
                    } else {
                        $(this).next().css('display', 'none');
                    }
                }

                if ($('p.rf .req').size() == (i + 1)) f_check = true;

            });

            if (f_check == true) return true;
        }

        function inputs() {
            var inputs = new Object;

            $('p.rf .val').each(function (i) {
                var name = $(this).attr('name');
                var value = $(this).val();
                if (this.name != '') {
                    inputs[name] = value;
                }
            });
            return inputs;
        }

        function clear() {
            $('p.rf .val').each(function (i) {
                $(this).val('').next().css('display', 'none');
            });
        }

        $('#send').click(function () {
            if (f_check()) {
                $.ajax({
                    type: 'POST',
                    url: opts.path,
                    data: inputs(),
                    beforeSend: function (data) {
                        $('#send').attr('disabled', true);
                        $('.rf-submit span').html(opts.sending);
                    },
                    complete: function (data) {
                        $('#send').attr('disabled', false);
                    },
                    success: function (html) {
                        if (html == 'bad_answer') {
                            $('p.rf .asq').val('').next().text(opts.req_question).css('display', 'block');
                            $('.rf-submit span').html('');
                        } else if (html == 'success') {
                            clear();
                            $('.rf-submit span').html(opts.success);
                        } else {
                            $('.rf-submit span').html(opts.error);
                        }
                    },
                    error: function (html) {
                        $('.rf-submit span').html(opts.error);
                    }

                });
            }

        })

    };

})(jQuery); // confine scope
;
(function ($) {

    /* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RDM - Rascals Dropdown Menu
*/

    jQuery.fn.rdm = function () {

        $('a', this).removeAttr('title');

        $('li', this).hover(function () {
            $(this).css('background', '#000');
            $(this).find('ul:first').css('visibility', 'visible');

        },


        function () {
            $(this).find('ul:first').css('visibility', 'hidden');
            $(this).css('background', 'none');
        });

    };

})(jQuery); // confine scope

;(function ($) {

    /* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RSlider - Rascals Slider
*/

    jQuery.fn.RSlider = function (options) {
        var opts = jQuery.extend({
            'delay': 5,
            'duration': 500,
            'width': 960,
            'height': 300,
            'transition': 'fade',
            'easing': 'easeOutQuart',
            'active_class': 'active',
            'ctrl': 'div.ctrl a',
            'thumb_width': 80,
            'thumb_height': 80
        },
        options);

        var timer;
        var delay = opts.delay * 1000;
        var check = false;
        var project = $(this).find('div.project'),
            c = 1,
            ti = $('.project', this).size(),
            ctrl = $(opts.ctrl);

        //Loading images
        project.each(function (i) {
            var img_path = $(this).find('a').attr('title'),
                l = $(this),
                img = new Image();
            l.append('<span class="ajax-loader"></span>')
            $(img).css('opacity', '0.0').load(

            function () {
                l.append(this);
                $(this).css('opacity', '0.0').animate({
                    opacity: 1.0
                },
                800, function () {
                    $(this).parent().find('.video').css({
                        'visibility': 'visible',
                        'opacity': 0
                    }).animate({
                        opacity: 0.8
                    },
                    800);
                    l.find('a').removeAttr('title');
                    l.find('span.ajax-loader').remove();

                });
            }).attr({
                'src': img_path,
                'width': opts.width,
                'height': opts.height
            });
            if (opts.transition == 'vertical') l.css('top', i * opts.height + 'px');
            else if (opts.transition == 'horizontal') l.css('left', i * opts.width + 'px');
            else {
                if (i > 0) l.css('display', 'none');
            }
        });

        //Image preview
        ctrl.hover(function (e) {
            var img_thumb = $(this).attr('title');
            if (img_thumb != "") {
                $('body').append('<div id="hs-ip"><img src="' + img_thumb + '" alt="" /></div>');
                $('div#hs-ip').css('top', (e.pageY - (opts.thumb_height + 20)) + 'px').css('left', (e.pageX + (-opts.thumb_width / 2)) + 'px').fadeIn(400);
            }
        },


        function () {
            $('div#hs-ip').remove();
        });

        ctrl.mousemove(function (e) {
            $('div#hs-ip').css('top', (e.pageY - (opts.thumb_height + 20)) + 'px').css('left', (e.pageX + (-opts.thumb_width / 2)) + 'px');
        });

        //Image caption
        $('div.caption-bg').css('opacity', '0.8');

        var rcr_over = function () {
            reset_timer();
            var ch = $(this).parent().find('div.caption').height();
            $(this).parent().find('div.caption-bg').height(ch);
            $(this).parent().find('div.caption').css({
                visibility: 'visible',
                display: 'none'
            }).slideDown({
                duration: 500,
                easing: 'easeOutQuart'
            });

            $(this).parent().find('div.caption-bg').slideDown({
                duration: 500,
                easing: 'easeOutQuart'
            });

        };

        var rcr_out = function () {
            $(this).parent().find('div.caption').slideUp(200);
            $(this).parent().find('div.caption-bg').slideUp(200);
            auto_slide();
        };

        $('a.show-caption').hoverIntent({
            sensitivity: 5,
            timeout: 0,
            over: rcr_over,
            out: rcr_out
        });

        //Controller
        ctrl.eq(0).addClass(opts.active_class);
        ctrl.each(function (i) {
            $(this).click(function () {
                if (check == false) {
                    ctrl.removeClass(opts.active_class);
                    $(this).addClass(opts.active_class);
                    c = i;
                    auto_slide();
                    next();
                }
                return false;
            });
        });

        $('a#hs-next').bind('click', function () {
            if (check == false) {
                auto_slide();
                next();
            }
            return false;
        });

        $('a#hs-prev').bind('click', function () {
            if (check == false) {
                auto_slide();
                prev();
                return false;
            }
        });

        function fade() {
            if (project.eq(c - 1).css('display') == 'none') {
                var dp = project.filter(':visible');
                dp.css('z-index', 0);
                project.eq(c - 1).css('z-index', 1).fadeIn('normal', function () {
                    check = false;
                    dp.css('display', 'none');
                });
            }
        }

        function slide() {
            if (project.eq(c - 1).css('display') == 'none') {
                var dp = project.filter(':visible');
                dp.css('z-index', 1);
                project.eq(c - 1).css({
                    'z-index': 0,
                    'display': 'block'
                });

                dp.animate({
                    left: opts.width
                },
                opts.duration, opts.easing, function () {
                    check = false;
                    dp.css({
                        'left': 0,
                        'display': 'none'
                    });
                });
            }
        }

        function next() {
            check = true;
            if (c == 0) c = ti;
            l = c;
            if (c == ti) c = 1
            else c++;
            if (opts.transition == 'vertical') {
                check = false;
                project.animate({
                    marginTop: -(c - 1) * opts.height
                },
                {
                    duration: opts.duration,
                    easing: opts.easing,
                    queue: false
                });
            } else if (opts.transition == 'horizontal') {
                check = false;
                project.animate({
                    marginLeft: -(c - 1) * opts.width
                },
                {
                    duration: opts.duration,
                    easing: opts.easing,
                    queue: false
                });
            }

            else if (opts.transition == 'fade') fade();

            else slide();

            ctrl.removeClass(opts.active_class);
            ctrl.eq(c - 1).addClass(opts.active_class);

        }

        function prev() {
            check = true;
            l = c;
            if (c == 1) c = ti;
            else c--
            if (opts.transition == 'vertical') {
                check = false;
                project.animate({
                    marginTop: -(c - 1) * opts.height
                },
                {
                    duration: opts.duration,
                    easing: opts.easing,
                    queue: false
                });
            } else if (opts.transition == 'horizontal') {
                check = false;
                project.animate({
                    marginLeft: -(c - 1) * opts.width
                },
                {
                    duration: opts.duration,
                    easing: opts.easing,
                    queue: false
                });
            }

            else if (opts.transition == 'fade') fade();

            else slide();

            ctrl.removeClass(opts.active_class);
            ctrl.eq(c - 1).addClass(opts.active_class);

        }

        auto_slide = function () {
            if (delay > 0) {
                clearInterval(timer);
                timer = setInterval(function () {
                    next();
                },
                delay);
            }
        }

        auto_slide();
        reset_timer = function () {
            clearInterval(timer);
        }

    };

})(jQuery); // confine scope

/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158; 
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */
 ;(function($){ // secure $ jQuery alias
/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
})(jQuery); // confine scope