//jQuery Plugin: Drop Shadow Text
// call like this: $(element).textDropShadow();
(function($) {
$.fn.textDropShadow = function(){
$(this).html(''+$(this).html()+''+$(this).html()+'');
return $(this);
}
})(jQuery);
// javascript method: "pxToEm"
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(4($){k.9.7=5.9.7=4(a){3 b=p;2(b.j==5)b=d(b);2(!a)3 a=$(\'g\');2($(a).6()>0){3 c=b*(1/(d($(a).r("n-6"))))+\'m\';8 c}l 8\'i: o h q f s a e t\'}})(u);',31,31,'||if|var|function|String|size|pxToEm|return|prototype||||parseInt|DOM|is|body|scope|Error|constructor|Number|else|em|font|Provided|this|argument|css|not|element|jQuery'.split('|'),0,{}));
// hover fix plugin
/*jQuery.fn.fixHover.js : for all elements, add hover class on mouseover and remove on mouseout */
jQuery.fn.fixHover = function(){
$(this).each(function(){
var hoverClasses = ' hover';
if($(this).attr('class')){
var classes = $(this).attr('class');
var classArray = classes.split(' ');
$(classArray).each(function(){
hoverClasses += ' ' + this + 'Hover';
});
}
$(this).hover(
function(){
if(classes) $(this).attr('class', classes + hoverClasses);
else $(this).addClass('hover');
},
function(){
if(classes) $(this).attr('class', classes);
else $(this).removeClass('hover');
}
);
});
}
/**
* --------------------------------------------------------------------
* jQuery-Plugin "pngFix"
* Version: 1.1, 11.09.2007
* by Andreas Eberhard, andreas.eberhard@gmail.com
* http://jquery.andreaseberhard.de/
*
* Copyright (c) 2007 Andreas Eberhard
* Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(s($){3.1s.1k=s(j){j=3.1a({12:\'1m.1j\'},j);8 k=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 5.5")!=-1);8 l=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 6.0")!=-1);o(3.17.16&&(k||l)){3(2).L("1r[m$=.M]").z(s(){3(2).7(\'q\',3(2).q());3(2).7(\'p\',3(2).p());8 a=\'\';8 b=\'\';8 c=(3(2).7(\'K\'))?\'K="\'+3(2).7(\'K\')+\'" \':\'\';8 d=(3(2).7(\'A\'))?\'A="\'+3(2).7(\'A\')+\'" \':\'\';8 e=(3(2).7(\'C\'))?\'C="\'+3(2).7(\'C\')+\'" \':\'\';8 f=(3(2).7(\'B\'))?\'B="\'+3(2).7(\'B\')+\'" \':\'\';8 g=(3(2).7(\'R\'))?\'1d:\'+3(2).7(\'R\')+\';\':\'\';8 h=(3(2).1c().7(\'1b\'))?\'19:18;\':\'\';o(2.9.y){a+=\'y:\'+2.9.y+\';\';2.9.y=\'\'}o(2.9.t){a+=\'t:\'+2.9.t+\';\';2.9.t=\'\'}o(2.9.w){a+=\'w:\'+2.9.w+\';\';2.9.w=\'\'}8 i=(2.9.15);b+=\'\';o(a!=\'\'){b=\'\'+b+\'\'}3(2).1i();3(2).1h(b)});3(2).L("*").z(s(){8 a=3(2).T(\'N-S\');o(a.E(".M")!=-1){8 b=a.X(\'1g("\')[1].X(\'")\')[0];3(2).T(\'N-S\',\'1f\');3(2).Q(0).Y.J="I:H.r.G(m=\'"+b+"\',D=\'F\')"}});3(2).L("1e[m$=.M]").z(s(){8 a=3(2).7(\'m\');3(2).Q(0).Y.J=\'I:H.r.G\'+\'(m=\\\'\'+a+\'\\\', D=\\\'F\\\');\';3(2).7(\'m\',j.12)})}1t 3}})(3);',62,92,'||this|jQuery||||attr|var|style|||||||||||||src|navigator|if|height|width|Microsoft|function|padding|px|appVersion|margin|span|border|each|class|alt|title|sizingMethod|indexOf|scale|AlphaImageLoader|DXImageTransform|progid|filter|id|find|png|background|display|appName|get|align|image|css|parseInt|block|inline|split|runtimeStyle|Explorer|Internet|relative|blankgif|position|MSIE|cssText|msie|browser|hand|cursor|extend|href|parent|float|input|none|url|after|hide|gif|pngFix|transparent|blank|line|pre|space|white|img|fn|return'.split('|'),0,{}))
// $(...).newWindow();
// open links in a new window on click, add a title attribute to tell the user it will open in a new window
jQuery.fn.newWindow = function(){
$(this).click(function(){
var newWindow = window.open(jQuery(this).attr('href'), '_blank').focus();
return false;
});
jQuery(this).attr('title', '* This link opens in a new window');
return jQuery(this);
}
/*--------------------------------------------------------------------
* JQuery Plugin: "EqualHeights"
* by:
Scott Jehl (scott@filamentgroup.com)
Todd Parker (todd@filamentgroup.com)
http://www.filamentgroup.com
*
* Copyright (c) 2007 Filament Group
* Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
*
* Description: Compares the heights of the first-children of a provided element
and sets their min-height to the tallest height. Sets in em units by default if pxToEm() method is available.
* Dependencies: jQuery library, pxToEm method
* Usage Example: $(element).equalHeights();
Optional: to set min-height in px, pass a true argument: $(element).equalHeights(true);
* Version: 1.0, 08.02.2007
* Changelog:
* 08.02.2007 initial Version 1.0
--------------------------------------------------------------------*/
$.fn.equalHeights = function(px) {
$(this).each(function(){
var currentTallest = 0;
$(this).children().each(function(i){
if($(this).height() > currentTallest) { currentTallest = $(this).height(); }
});
if(!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm($(this)); //use ems unless px is specified or
// for ie6, set height since min-height isn't supported
var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
if ($.browser.msie && (ie6)) { $(this).children().css({'height': currentTallest}); }
$(this).children().css({'min-height': currentTallest});
});
return $(this);
};
document.documentElement.className = "js";
/*-------------------------------------------------------------------------------
* jQuery Website Screen Behavior Layer
* Author: Scott Jehl, scottjehl.com
* Created: April 08
* Notes:
-------------------------------------------------------------------------------*/
$(function(){
//add enhanced class to body
$('body').addClass('jq-enhanced');
//create faux radios that control actual radios
/*
$('#jq-download input:radio').each(function(){
var state = ($(this).is(':checked')) ? ' jq-checked' : '';
$(this).after(''+$(this).attr('value')+'').hide();
});
*/
/* hacky nav highlighting */
var loc = window.location.href;
//strip the existing current state
$('#jq-secondaryNavigation .jq-current').removeClass('jq-current');
//add class to current section...
//Download
if(loc.indexOf('http://docs.jquery.com/Downloading_jQuery') > -1){
$('#jq-secondaryNavigation .jq-download').addClass('jq-current');
}
//Tutorials
else if(loc.indexOf('http://docs.jquery.com/Tutorials') > -1){
$('#jq-secondaryNavigation .jq-tutorials').addClass('jq-current');
}
//Discussion
else if(loc.indexOf('http://docs.jquery.com/Discussion') > -1){
$('#jq-secondaryNavigation .jq-discussion').addClass('jq-current');
}
//UI within docs
else if(loc.indexOf('http://docs.jquery.com/UI') > -1){
$('#jq-primaryNavigation .jq-current').removeClass('jq-current');
$('#jq-primaryNavigation .jq-ui').addClass('jq-current');
$('#jq-secondaryNavigation .jq-documentation').addClass('jq-current');
}
//About
else if(loc.indexOf('http://docs.jquery.com/About') > -1){
$('#jq-primaryNavigation .jq-current').removeClass('jq-current');
$('#jq-primaryNavigation .jq-about').addClass('jq-current');
}
//Donate
else if(loc.indexOf('http://docs.jquery.com/Donate') > -1){
$('#jq-primaryNavigation .jq-current').removeClass('jq-current');
$('#jq-primaryNavigation .jq-donate').addClass('jq-current');
}
//Docs, in general
else if(loc.indexOf('http://docs.jquery.com/') > -1){
$('#jq-secondaryNavigation .jq-documentation').addClass('jq-current');
}
// Dev
else if(loc.indexOf('http://dev.jquery.com/') > -1){
$('#jq-secondaryNavigation .jq-bugTracker').addClass('jq-current');
}
//plugins popular
else if(loc.indexOf('http://plugins.jquery.com/most_popular') > -1){
$('#jq-secondaryNavigation .jq-popularPlugins').addClass('jq-current');
}
//plugins latest
else if(loc.indexOf('http://plugins.jquery.com/latest_releases') > -1){
$('#jq-secondaryNavigation .jq-latestReleases').addClass('jq-current');
}
//plugins browse
else if(loc.indexOf('http://plugins.jquery.com/project/Plugins') > -1){
$('#jq-secondaryNavigation .jq-browseCategories').addClass('jq-current');
}
//plugins lates
else if(loc.indexOf('http://plugins.jquery.com/project/Plugins/name') > -1){
$('#jq-secondaryNavigation .jq-allPlugins').addClass('jq-current');
}
$('.jq-radioToggle, #jq-download label').click(function(){
var thisToggle = $(this).is('.jq-radioToggle') ? $(this) : $(this).prev();
var checkBox = thisToggle.prev();
checkBox.trigger('click');
$('.jq-radioToggle').removeClass('jq-checked');
thisToggle.addClass('jq-checked');
return false;
});
//nav drop shads
$('#jq-secondaryNavigation a, #jq-footerNavigation a').each(function(){$(this).textDropShadow();});
$('#jq-intro li').hover(
function(){$(this).find('div.jq-checkpointSubhead:hidden').fadeIn(500);},
function(){$(this).find('div.jq-checkpointSubhead:visible').fadeOut(500);}
);
//cta click
$('#jq-intro li div p').click(function(){
$(this).parent().prev().trigger('click');
});
//home snippet
$('.jq-runCode').click(function(){
var parent = $(this).parent();
var code = parent.find('code').text();
if ( !code ) {
code = parent.find('pre').text();
}
eval( code );
$(this).hide();
return false;
});
//interior content box heights
if( !$.browser.msie ){
$('#jq-interior #jq-content').equalHeights();
}
$(document).pngFix();
});
// Hehe.
if ( window.addEventListener ) {
var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
window.addEventListener("keydown", function(e){
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 )
window.location = "http://ejohn.org/apps/hero/";
}, true);
}
if ( /jquery[y+]/.test( window.location ) ) {
var robot = '';
$( 'head' ).prepend( robot ).append( robot );
window.location = window.location.href.replace( /y[y+]\.org/, 'y.com' );
}