jQuery.noConflict(); jQuery(document).ready(function () { // Image Tooltip var offsetX = 25; var offsetY = 55; jQuery('.tooltip').hover(function (e) { tooltip_title = this.title; this.title = ''; image_path = this.rel; jQuery('body').append('
'); jQuery('#tooltip').css('top', (e.pageY - offsetY) + 'px').css('left', (e.pageX + offsetX) + 'px').fadeIn('fast'); // Load image var img = new Image(); jQuery(img).load(function () { var image = jQuery(this); offsetY = img.height + 20; offsetX = -img.width / 2; jQuery('#tooltip').animate({ width: img.width, height: img.height }, 400, function () { jQuery('#tooltip').html(image); image.css('opacity', '0.0').stop().animate({ opacity: 1.0 }, 800); }); }).attr('src', image_path); }, function () { this.title = tooltip_title; jQuery('#tooltip').remove(); }); jQuery('.tooltip').mousemove(function (e) { jQuery('#tooltip').css('top', (e.pageY - offsetY) + 'px').css('left', (e.pageX + offsetX) + 'px'); }); // Load images jQuery('.auto-load a').each( function () { var image_path = jQuery(this).attr('title'), l = jQuery(this), a = l.parent(), 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'); var captions = a.find('p'); a.bind({ mouseenter: function () { captions.slideDown(400); jQuery('img',this).stop().animate({ opacity: .5 }, 400); }, mouseleave: function () { captions.slideUp(400); jQuery('img',this).stop().animate({ opacity: 1 }, 400); } }); }); }).attr({ 'src': image_path }); }); // Releases jQuery('.release-image a').each( function () { var image_path = jQuery(this).attr('title'), l = jQuery(this), a = l.parent(), 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'); var player = a.find('.release-content'); var title = a.find('h2'); a.bind({ mouseenter: function () { player.stop().animate({bottom: 0}, 400); }, mouseleave: function () { player.stop().animate({bottom: -70}, 400); } }); }); }).attr({ 'src': image_path }); }); // PrettyPhoto var r_lightbox_style = jQuery("meta[name=lightbox_style]").attr('content'); if (r_lightbox_style == '') r_lightbox_style = 'light_square'; jQuery('a[rel^="lightbox"], rel="lightbox[portfolio]"').prettyPhoto({ default_width: 640, default_height: 360, 'theme': r_lightbox_style /* light_rounded / dark_rounded / light_square / dark_square */ }); // Social icons jQuery('#social a span').css('opacity', '0') jQuery('#social a').hover( function () { jQuery('span', this).stop().animate({ opacity: 1 }, 400); }, function () { jQuery('span', this).stop().animate({ opacity: 0 }, 400); }) // RSlider - Homepage Slider if (jQuery('#rs .rs-project').length > 0) jQuery('#rs').RSlider(); // RSlider - Recent Works Slider if (jQuery('#recent-slider .rs-project').length > 0) jQuery('#recent-slider').RSlider({ 'width': 210, 'height': 210, 'display_ctrl': false, 'display_arrows': true }); // RSlider - Intro Slider if (jQuery('#intro-slider .rs-project').length > 0) jQuery('#intro-slider').RSlider({ 'width': 950, 'height': 110, 'display_ctrl': true, 'display_arrows': false }); // RDM - Dropdown Menu jQuery('ul#menu').rdm(); // RF - Forms var cp = jQuery('input#cp').val(); if (jQuery('div#rf').length > 0) jQuery('div#rf').rf({ 'path': cp, 'req_val': '*', 'req_mail': '*', 'req_question': 'Invalid answer!', 'success': 'Mesajınız iletildi.', 'error': 'Mesajınız iletilmedi.', 'sending': 'Gönderiliyor...' }); // Homepage news if (jQuery('.news-entry').length > 3) homepage_news(jQuery('.news-wrap')); function homepage_news(news) { var ti = news.find('.news-entry').size() - 3, c = 0; news.find('span').css('display', 'block'); jQuery('.news-up').click(function () { if (c == 0) c = 0; else c--; jQuery('.news').animate({ top: (-c) * 72 }, { duration: 400, easing: 'easeOutQuart', queue: false }); }) jQuery('.news-down').click(function () { if (c == ti) c = ti else c++; jQuery('.news').animate({ top: (-c) * 72 }, { duration: 400, easing: 'easeOutQuart', queue: false }); }) } // Cufon var use_cufont_fonts = jQuery("meta[name=use_cufon_fonts]").attr('content'); if (use_cufont_fonts == 'yes') Cufon.replace('h1,h2,h3,h4,h5,h6, .rs-caption b', { hover: 'true' }); // 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); }); /* * 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 (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 * $('#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); var error_color = $('a').css('color'); 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 = $('.rf .req').size(); $('.rf .req').each(function (i) { if (isEmpty($(this).val())) { $(this).css('border', '2px solid ' + error_color).next().text(opts.req_val).css('display', 'block'); return false; } else { $(this).css('border', 'none').next().css('display', 'none'); } if ($(this).is('.email')) { if (isEmail($(this).val())) { $(this).css('border', '2px solid ' + error_color).next().text(opts.req_mail).css('display', 'block'); return false; } else { $(this).css('border', 'none').next().css('display', 'none'); } } if ($('.rf .req').size() == (i + 1)) f_check = true; }); if (f_check == true) return true; } function inputs() { var inputs = new Object; $('.rf .val').each(function (i) { var name = $(this).attr('name'); var value = $(this).val(); if (this.name != '') { inputs[name] = value; } }); return inputs; } function clear() { $('.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') { $('input.asq').css('border', '2px solid ' + error_color).next().text(opts.req_mail).css('display', 'block'); $('.rf-submit span').html(opts.req_question); } 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 () { var ul_width = parseInt($(this).find('ul').css('width')); $('a', this).removeAttr('title'); $('li', this).hover(function () { var pos_nav = $('#menu-wrap').offset(), end_nav = pos_nav.left + $('#menu-wrap').width(), pos_sub = $(this).offset().left + ul_width, pos_sub_child = pos_sub; if ($('ul',this).length>0) { pos_sub_child = $(this).find('ul:first').offset().left+ul_width; } if(pos_sub_child >= end_nav) { if ($(this).parent().hasClass('menu')) { $(this).find('ul:eq(0)').css('left', -(ul_width) + $(this).width() +'px'); } else { $(this).find('ul').css('left', '-100%'); } } $(this).find('ul:first').css('visibility', 'visible').hide().slideDown(400); }, function () { $(this).find('ul:first').css('visibility', 'hidden'); }); }; })(jQuery); // confine scope ;(function ($) { /* * Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu * RSlider - Rascals Slider * ver 1.0 */ jQuery.fn.RSlider = function (options) { var opts = jQuery.extend({ 'delay': parseInt($('.delay', this).text()), 'duration': parseInt($('.duration', this).text()), 'width': 940, 'height': 380, 'display_ctrl' : true, 'display_arrows' : false, 'transition': $('.transition', this).text(), 'easing': $('.easing', this).text(), 'active_class': 'active' }, options); var timer; var delay = opts.delay * 1000; var check = false; var project = $(this).find('.rs-project'), c = 1, ti = $('.rs-project', this).size(); //Loading images project.each(function (i) { var image_path = $(this).find('a').attr('title'), l = $(this), img = new Image(); l.append('') $(img).css('opacity', '0.0').load( function () { l.append(this); $(this).css('opacity', '0.0').animate({ opacity: 1.0 }, 800, function () { l.find('a').removeAttr('title'); l.find('span.ajax-loader').remove(); }); }).attr({ 'src': image_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 hover effect project.bind({ mouseenter: function() { stop_timer(); $(this).find('img').stop().animate({ opacity: .5 }, 400); }, mouseleave: function() { auto_slide(); $(this).find('img').stop().animate({ opacity: 1 }, 400); } }); //Controller if (opts.display_arrows == true) { $(this).append(''); } if (opts.display_ctrl == true) { $(this).append('
') for(var i=0;i'); } var ctrl = $('.rs-ctrl a', this); ctrl.eq(0).addClass(opts.active_class); ctrl.each(function (i) { $(this).click(function () { if (check == false || !$(this).is(opts.active_class) ) { ctrl.removeClass(opts.active_class); $(this).addClass(opts.active_class); c = i; auto_slide(); next(); } return false; }); }); } $('.rs-next',this).bind('click', function () { if (check == false) { auto_slide(); next(); } return false; }); $('.rs-prev', this).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(); if (opts.display_ctrl == true) { 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(); if (opts.display_ctrl == true) { ctrl.removeClass(opts.active_class); ctrl.eq(c - 1).addClass(opts.active_class); } } function auto_slide() { if (delay > 0) { clearInterval(timer); timer = setInterval(function () { next(); }, delay); } } function stop_timer() { clearInterval(timer); } auto_slide(); }; })(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+ * * * @param f onMouseOver function || An object with configuration options * @param g onMouseOut function || Nothing (use configuration options object) * @author Brian Cherne */ (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))