Template:WUR script.js

From 2012.igem.org

Revision as of 07:18, 24 September 2012 by TSlijkhuis (Talk | contribs)

/*jshint eqnull:true */ /*!

* jQuery Cookie Plugin v1.2
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2011, Klaus Hartl
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/GPL-2.0
*/

(function ($, document, undefined) {

var pluses = /\+/g;

function raw(s) { return s; }

function decoded(s) { return decodeURIComponent(s.replace(pluses, ' ')); }

var config = $.cookie = function (key, value, options) {

// write if (value !== undefined) { options = $.extend({}, config.defaults, options);

if (value === null) { options.expires = -1; }

if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setDate(t.getDate() + days); }

value = config.json ? JSON.stringify(value) : String(value);

return (document.cookie = [ encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : , // use expires attribute, max-age is not supported by IE options.path  ? '; path=' + options.path : , options.domain  ? '; domain=' + options.domain : , options.secure  ? '; secure' : ].join()); }

// read var decode = config.raw ? raw : decoded; var cookies = document.cookie.split('; '); for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) { if (decode(parts.shift()) === key) { var cookie = decode(parts.join('=')); return config.json ? JSON.parse(cookie) : cookie; } }

return null; };

config.defaults = {};

$.removeCookie = function (key, options) { if ($.cookie(key) !== null) { $.cookie(key, null, options); return true; } return false; };

})(jQuery, document);

var cssUrl = "https://2012.igem.org/Template:WUR_style.css?action=raw&ctype=text/css"; var nivoJsUrl = 'https://2012.igem.org/Template:WUR_nivo.js?action=raw&ctype=text/javascript'; var nivoCssUrl = "https://2012.igem.org/Template:WUR_nivo.css?action=raw&ctype=text/css"; var prefixfreeUrl = 'https://2012.igem.org/Template:WUR_prefixfree.js?action=raw&ctype=text/javascript';

var headerImgUrl = "";

jQuery(document).ready(function(){

// CSS $("<link/>", { rel: "stylesheet", type: "text/css", href: cssUrl }).appendTo("head");


// Slider $("<link/>", { rel: "stylesheet", type: "text/css", href: nivoCssUrl }).appendTo("head"); $.getScript(nivoJsUrl, function(){ //http://nivo.dev7studios.com/support/jquery-plugin-usage/ $('#detection_slider').nivoSlider({ effect: 'fade', directionNav: false, controlNav: false, pauseTime: 5500, animSpeed: 1000 }); });


// Move menu var menu = $('#navContainer'); $('#navContainer').remove(); $('#content').prepend(menu);

// Move header var header = $('#header_wrapper'); $('#header_wrapper').remove(); $('#content').prepend(header);

// Decorate menu function decorateMenu(el, i) { switch(i) { case 1: el.addClass('ulc1'); i += 1; break;

case 2: el.addClass('ulc2'); i += 1; break;

case 3: i = 1; break;

default: i += 1; } return i; } var i = 0; var ii = 0; menu.find('li').each(function(){ i = decorateMenu($(this),i); ii = $(this).find('ul').find('li').each(function(){decorateMenu($(this),ii);}); });

// Remove title attributes from the menu. // Though this is a bad practice, the design advantage weighted // heavier than the few optically impaired people who visit the // website. menu.find('[title]').removeAttr('title');

// Google Analytics var ga_script = "\ <script type=\"text/javascript\">\ var _gaq = _gaq || [];\ _gaq.push(['_setAccount', 'UA-33423824-1']);\ _gaq.push(['_trackPageview']);\ (function() {\ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\ })();\ </script>"; $('head').append(ga_script);

// Move the Footer $('#contentfooter').appendTo('#content');

$('.bigbutton').hover(function(){ $(this).find('img').animate({ 'margin-top': '-175px' },'fast'); },function(){ $(this).find('img').animate({ 'margin-top': '0px' },'fast'); });

// If an anchor-link was pressed, make sure the scrolling was done correctly. if(location.hash) { var sId = location.hash.substr(1); var sEl = document.getElementById(sId); var sJQ = $(sEl);

setTimeout(function(){ $(document).scrollTop(sJQ.offset().top); }, 250);

}

// Fix prefixes for CSS3 styles $.getScript(prefixfreeUrl, function(){});

// Animate the project overview $('#poPnas, #poVLPs, #poOutside, #poInside, #poApplications').hide(); $('#poPnas').fadeIn(500, function(){ $('#poVLPs').fadeIn(500, function(){ $('#poOutside').fadeIn(500, function(){ $('#poInside').fadeIn(500, function(){ $('#poApplications').fadeIn(500, function(){}); }); }); }); });

// Click actions for the project overview function poLoad(url) { $('#poTextClose').fadeOut(); $('#poText').slideUp().fadeOut('fast', function(){ $('#poLoading').fadeIn('fast'); $('#poText').load(url, function(){ $('#poLoading').fadeOut('fast'); $('#poTextClose').fadeIn(); $(this).fadeIn().slideDown(); }); }); } $('#poTextClose').click(function() { $('#poText').slideUp().fadeOut(); $('#poTextClose').fadeOut(); }); $('#poPnas').click(function(){ poLoad('https://2012.igem.org/Team:Wageningen_UR/Pnas_ProjectOverview?action=render'); }); $('#poVLPs').click(function(){ poLoad('https://2012.igem.org/Team:Wageningen_UR/VLPs_ProjectOverview?action=render'); }); $('#poOutside').click(function(){ poLoad('https://2012.igem.org/Team:Wageningen_UR/OutsideModification_ProjectOverview?action=render'); }); $('#poInside').click(function(){ poLoad('https://2012.igem.org/Team:Wageningen_UR/InsideModification_ProjectOverview?action=render'); }); $('#poApplications').click(function(){ poLoad('https://2012.igem.org/Team:Wageningen_UR/Applications_ProjectOverview?action=render'); });

// Achievements animation $('.achievement').click(function(){ $(this).find('.achievement-desc').slideDown('fast'); }); $('.achievement').hover(function(){ //$(this).find('.achievement-desc').slideDown('fast'); },function(){ $(this).find('.achievement-desc').slideUp('fast'); });

// IE8 column correction if($.browser.msie && parseInt($.browser.version,10) < 9) { $('.col').css('width','296px'); }

// Team photos $('#teamScatter').hover(function(){ $('#teamScatter > div.Hover').fadeIn(); },function(){ $('#teamScatter > div.Hover').fadeOut(); }); $('#teamScatter').mousemove(function(e){ $('#teamScatter > div.Hover').css({ 'left': e.pageX - $(this).offset().left - 100, 'top': e.pageY - $(this).offset().top + 20 }); }); $('#teamScatter area').mouseover(function(){ $('#teamScatter > div.Hover').text($(this).attr('alt')); });

});


//Load YouTube player api asynchronously. var tag = document.createElement('script'); tag.src = "//www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubeIframeAPIReady() {

   player = new YT.Player('projectVideoPlayer', {
     height: '360',
     width: '480',
     videoId: '19JbFIIyi5c',
     playerVars: {'rel': 0, 'autohide': 1, 'showinfo': 0, 'theme': 'light'},
     events: {
       'onReady': onPlayerReady,
       'onStateChange': onPlayerStateChange
     }
   });

} function onPlayerReady(evt) { if($.cookie('igemWURwatchedVideo') == 'watchedAll') { endVideo(evt); } else {

   evt.target.playVideo();
 }

} function endVideo(evt) { $('#projectVideoPlayerContainer').slideUp('slow', function(){ $('#projectIntro, #projectVideo').animate({'height': '50px'}, 'slow', function(){ $('#projectVideo a').fadeIn(); $('#projectVideo a').click(function(){ $('#projectVideo a').fadeOut(); $('#projectIntro, #projectVideo').animate({'height': '340px'}, 'slow'); $('#projectVideoPlayerContainer').slideDown('slow',function(){ evt.target.playVideo(); }); }); }); }); } function onPlayerStateChange(evt) {

   if(evt.data == YT.PlayerState.PAUSED ) {
   	endVideo(evt);
   }
   if(evt.data == YT.PlayerState.ENDED) {
   	$.cookie('igemWURwatchedVideo', 'watchedAll');
   }

} function stopVideo() {

   player.stopVideo();

}