Team:Georgia State/Dependencies/ScriptJS

From 2014.igem.org

/* ----------------- Start JS Document ----------------- */

var $ = jQuery.noConflict();

// Page Loader $(window).load(function(){ $('#loader').fadeOut(); });

$(document).ready(function($) { "use strict";


/*----------------------------------------------------*/ /* Hidder Header /*----------------------------------------------------*/

var headerEle = function(){ var $headerHeight = $('header').height(); $('.hidden-header').css({ 'height' : $headerHeight + "px" }); };

$(window).load(function () { headerEle(); });

$(window).resize(function () { headerEle(); });



/*----------------------------------------------------*/ /* Nice-Scroll /*----------------------------------------------------*/

$("html").niceScroll({ scrollspeed: 60, mousescrollstep: 38, cursorwidth: 6, cursorborder: 0, cursorcolor: '#111', autohidemode: false, zindex: 9999999, horizrailenabled: false, cursorborderradius: 0, });



/*----------------------------------------------------*/ /* Nav Menu & Search /*----------------------------------------------------*/

$(".nav > li:has(ul)").addClass("drop"); $(".nav > li.drop > ul").addClass("dropdown"); $(".nav > li.drop > ul.dropdown ul").addClass("sup-dropdown");

$('.show-search').click(function() { $('.search-form').fadeIn(300); $('.search-form input').focus(); }); $('.search-form input').blur(function() { $('.search-form').fadeOut(300); });



/*----------------------------------------------------*/ /* Back Top Link /*----------------------------------------------------*/

   var offset = 200;
   var duration = 500;
   $(window).scroll(function() {
       if ($(this).scrollTop() > offset) {
           $('.back-to-top').fadeIn(400);
       } else {
           $('.back-to-top').fadeOut(400);
       }
   });
   $('.back-to-top').click(function(event) {
       event.preventDefault();
       $('html, body').animate({scrollTop: 0}, 600);
       return false;
   })



/*----------------------------------------------------*/ /* Sliders & Carousel /*----------------------------------------------------*/

////------- Touch Slider var time = 4.4, $progressBar, $bar, $elem, isPause, tick, percentTime; $('.touch-slider').each(function(){ var owl = jQuery(this), sliderNav = $(this).attr('data-slider-navigation'), sliderPag = $(this).attr('data-slider-pagination'), sliderProgressBar = $(this).attr('data-slider-progress-bar');

if ( sliderNav == 'false' || sliderNav == '0' ) { var returnSliderNav = false }else { var returnSliderNav = true }

if ( sliderPag == 'true' || sliderPag == '1' ) { var returnSliderPag = true }else { var returnSliderPag = false }

if ( sliderProgressBar == 'true' || sliderProgressBar == '1' ) { var returnSliderProgressBar = progressBar var returnAutoPlay = false }else { var returnSliderProgressBar = false var returnAutoPlay = true }

owl.owlCarousel({ navigation : returnSliderNav, pagination: returnSliderPag, slideSpeed : 400, paginationSpeed : 400, lazyLoad : true, singleItem: true, autoHeight : true, autoPlay: returnAutoPlay, stopOnHover: returnAutoPlay, transitionStyle : "fade", afterInit : returnSliderProgressBar, afterMove : moved, startDragging : pauseOnDragging });

});

   function progressBar(elem){

$elem = elem; buildProgressBar(); start();

   }
   function buildProgressBar(){
$progressBar = $("
",{

id:"progressBar" });

$bar = $("
",{

id:"bar" }); $progressBar.append($bar).prependTo($elem);

   }

function start() { percentTime = 0; isPause = false; tick = setInterval(interval, 10);

   };

   function interval() {

if(isPause === false){ percentTime += 1 / time; $bar.css({ width: percentTime+"%" }); if(percentTime >= 100){ $elem.trigger('owl.next') } }

   }
   function pauseOnDragging(){
     isPause = true;
   }
   function moved(){
     clearTimeout(tick);
     start();
   }


////------- Projects Carousel $(".projects-carousel").owlCarousel({ navigation : true, pagination: false, slideSpeed : 400, stopOnHover: true,

   	autoPlay: 3000,
   	items : 4,
   	itemsDesktopSmall : [900,3],

itemsTablet: [600,2], itemsMobile : [479, 1] });


////------- Testimonials Carousel $(".testimonials-carousel").owlCarousel({ navigation : true, pagination: false, slideSpeed : 2500, stopOnHover: true,

   	autoPlay: 3000,
   	singleItem:true,

autoHeight : true, transitionStyle : "fade" });



////------- Testimonials Carousel $(".fullwidth-projects-carousel").owlCarousel({ navigation : false, pagination: false, slideSpeed : 400, stopOnHover: true,

   	autoPlay: 3000,
   	items : 5,
   	itemsDesktopSmall : [900,3],

itemsTablet: [600,2], itemsMobile : [479, 1] });


////------- Custom Carousel $('.custom-carousel').each(function(){ var owl = jQuery(this), itemsNum = $(this).attr('data-appeared-items'), sliderNavigation = $(this).attr('data-navigation');

if ( sliderNavigation == 'false' || sliderNavigation == '0' ) { var returnSliderNavigation = false }else { var returnSliderNavigation = true } if( itemsNum == 1) { var returndeskitemsNum = 1; var desksmallitemsNum = 1; var tabletitemsNum = 1; } else if (itemsNum >= 2 && itemsNum < 4) { var deskitemsNum = itemsNum; var desksmallitemsNum = itemsNum - 1; var tabletitemsNum = itemsNum - 1; } else if (itemsNum >= 4 && itemsNum < 8) { var deskitemsNum = itemsNum -1; var desksmallitemsNum = itemsNum - 2; var tabletitemsNum = itemsNum - 3; } else { var deskitemsNum = itemsNum -3; var desksmallitemsNum = itemsNum - 6; var tabletitemsNum = itemsNum - 8; } owl.owlCarousel({ slideSpeed : 300, stopOnHover: true, autoPlay: 3000, navigation : returnSliderNavigation, pagination: false, lazyLoad : true, items : itemsNum, itemsDesktop : [1000,deskitemsNum], itemsDesktopSmall : [900,desksmallitemsNum], itemsTablet: [600,tabletitemsNum], itemsMobile : false, transitionStyle : "goDown", }); });



/*----------------------------------------------------*/ /* Tabs /*----------------------------------------------------*/

$('#myTab a').click(function (e) { e.preventDefault() $(this).tab('show') })



/*----------------------------------------------------*/ /* Css3 Transition /*----------------------------------------------------*/

$('*').each(function(){ if($(this).attr('data-animation')) { var $animationName = $(this).attr('data-animation'), $animationDelay = "delay-"+$(this).attr('data-animation-delay'); $(this).appear(function() { $(this).addClass('animated').addClass($animationName); $(this).addClass('animated').addClass($animationDelay); }); } });



/*----------------------------------------------------*/ /* Pie Charts /*----------------------------------------------------*/

var pieChartClass = 'pieChart',

       pieChartLoadedClass = 'pie-chart-loaded';

function initPieCharts() { var chart = $('.' + pieChartClass); chart.each(function() { $(this).appear(function() { var $this = $(this), chartBarColor = ($this.data('bar-color')) ? $this.data('bar-color') : "#F54F36", chartBarWidth = ($this.data('bar-width')) ? ($this.data('bar-width')) : 150 if( !$this.hasClass(pieChartLoadedClass) ) { $this.easyPieChart({ animate: 2000, size: chartBarWidth, lineWidth: 2, scaleColor: false, trackColor: "#eee", barColor: chartBarColor, }).addClass(pieChartLoadedClass); } }); }); } initPieCharts();



/*----------------------------------------------------*/ /* Animation Progress Bars /*----------------------------------------------------*/

$("[data-progress-animation]").each(function() {

var $this = $(this);

$this.appear(function() {

var delay = ($this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1);

if(delay > 1) $this.css("animation-delay", delay + "ms");

setTimeout(function() { $this.animate({width: $this.attr("data-progress-animation")}, 800);}, delay);

}, {accX: 0, accY: -50});

});



/*----------------------------------------------------*/ /* Milestone Counter /*----------------------------------------------------*/

jQuery('.milestone-block').each(function() { jQuery(this).appear(function() { var $endNum = parseInt(jQuery(this).find('.milestone-number').text()); jQuery(this).find('.milestone-number').countTo({ from: 0, to: $endNum, speed: 4000, refreshInterval: 60, }); },{accX: 0, accY: 0}); });



/*----------------------------------------------------*/ /* Nivo Lightbox /*----------------------------------------------------*/

$('.lightbox').nivoLightbox({ effect: 'fadeScale', keyboardNav: true, errorMessage: 'The requested content cannot be loaded. Please try again later.' });



/*----------------------------------------------------*/ /* Change Slider Nav Icons /*----------------------------------------------------*/

$('.touch-slider').find('.owl-prev').html(''); $('.touch-slider').find('.owl-next').html(''); $('.touch-carousel, .testimonials-carousel').find('.owl-prev').html(''); $('.touch-carousel, .testimonials-carousel').find('.owl-next').html(''); $('.read-more').append('');



/*----------------------------------------------------*/ /* Tooltips & Fit Vids & Parallax & Text Animations /*----------------------------------------------------*/

$("body").fitVids();

$('.sh-tooltip').tooltip();

$('.bg-parallax').each(function() { $(this).parallax("30%", 0.2); });

$('.tlt').textillate({ loop: true, in: { effect: 'fadeInUp', delayScale: 2, delay: 50, sync: false, shuffle: false, reverse: true, }, out: { effect: 'fadeOutUp', delayScale: 2, delay: 50, sync: false, shuffle: false, reverse: true, }, });



/*----------------------------------------------------*/ /* Sticky Header /*----------------------------------------------------*/

(function() {

var docElem = document.documentElement, didScroll = false, changeHeaderOn = 100; document.querySelector( 'header' );

function init() { window.addEventListener( 'scroll', function() { if( !didScroll ) { didScroll = true; setTimeout( scrollPage, 250 ); } }, false ); }

function scrollPage() { var sy = scrollY(); if ( sy >= changeHeaderOn ) { $('.top-bar').slideUp(300); $("header").addClass("fixed-header"); $('.navbar-brand').css({ 'padding-top' : 19 + "px", 'padding-bottom' : 19 + "px" });

if (/iPhone|iPod|BlackBerry/i.test(navigator.userAgent) || $(window).width() < 479 ){ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 0 + "px", 'padding-bottom' : 0 + "px" }) }else{ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 20 + "px", 'padding-bottom' : 20 + "px" }) $('.search-side').css({ 'margin-top' : -7 + "px" }); };

} else { $('.top-bar').slideDown(300); $("header").removeClass("fixed-header"); $('.navbar-brand').css({ 'padding-top' : 27 + "px", 'padding-bottom' : 27 + "px" });

if (/iPhone|iPod|BlackBerry/i.test(navigator.userAgent) || $(window).width() < 479 ){ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 0 + "px", 'padding-bottom' : 0 + "px" }) }else{ $('.navbar-default .navbar-nav > li > a').css({ 'padding-top' : 28 + "px", 'padding-bottom' : 28 + "px" }) $('.search-side').css({ 'margin-top' : 0 + "px" }); };

} didScroll = false; }

function scrollY() { return window.pageYOffset || docElem.scrollTop; }

init();


})(); });



/*----------------------------------------------------*/ /* Portfolio Isotope /*----------------------------------------------------*/

jQuery(window).load(function(){

var $container = $('#portfolio'); $container.isotope({ layoutMode : 'masonry', filter: '*', animationOptions: { duration: 750, easing: 'linear', queue: false, } });

$('.portfolio-filter ul a').click(function(){ var selector = $(this).attr('data-filter'); $container.isotope({ filter: selector, animationOptions: { duration: 750, easing: 'linear', queue: false, } }); return false; });

var $optionSets = $('.portfolio-filter ul'), $optionLinks = $optionSets.find('a'); $optionLinks.click(function(){ var $this = $(this); if ( $this.hasClass('selected') ) { return false; } var $optionSet = $this.parents('.portfolio-filter ul'); $optionSet.find('.selected').removeClass('selected'); $this.addClass('selected'); });

}); /* ----------------- End JS Document ----------------- */





// Styles Switcher JS function setActiveStyleSheet(title) {

 var i, a, main;
 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
   if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
     a.disabled = true;
     if(a.getAttribute("title") == title) a.disabled = false;
   }
 }

}

function getActiveStyleSheet() {

 var i, a;
 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
   if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
 }
 return null;

}

function getPreferredStyleSheet() {

 var i, a;
 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
   if(a.getAttribute("rel").indexOf("style") != -1
      && a.getAttribute("rel").indexOf("alt") == -1
      && a.getAttribute("title")
      ) return a.getAttribute("title");
 }
 return null;

}

function createCookie(name,value,days) {

 if (days) {
   var date = new Date();
   date.setTime(date.getTime()+(days*24*60*60*1000));
   var expires = "; expires="+date.toGMTString();
 }
 else expires = "";
 document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name) {

 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++) {
   var c = ca[i];
   while (c.charAt(0)==' ') c = c.substring(1,c.length);
   if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
 }
 return null;

}

window.onload = function(e) {

 var cookie = readCookie("style");
 var title = cookie ? cookie : getPreferredStyleSheet();
 setActiveStyleSheet(title);

}

window.onunload = function(e) {

 var title = getActiveStyleSheet();
 createCookie("style", title, 365);

}

var cookie = readCookie("style"); var title = cookie ? cookie : getPreferredStyleSheet(); setActiveStyleSheet(title);


$(document).ready(function(){

// Styles Switcher $(document).ready(function(){ $('.open-switcher').click(function(){ if($(this).hasClass('show-switcher')) { $('.switcher-box').css({'left': 0}); $('.open-switcher').removeClass('show-switcher'); $('.open-switcher').addClass('hide-switcher'); }else if(jQuery(this).hasClass('hide-switcher')) { $('.switcher-box').css({'left': '-212px'}); $('.open-switcher').removeClass('hide-switcher'); $('.open-switcher').addClass('show-switcher'); } }); });

//Top Bar Switcher $(".topbar-style").change(function(){ if( $(this).val() == 1){ $(".top-bar").removeClass("dark-bar"), $(".top-bar").removeClass("color-bar"), $(window).resize(); } else if( $(this).val() == 2){ $(".top-bar").removeClass("color-bar"), $(".top-bar").addClass("dark-bar"), $(window).resize(); } else if( $(this).val() == 3){ $(".top-bar").removeClass("dark-bar"), $(".top-bar").addClass("color-bar"), $(window).resize(); } });

//Layout Switcher $(".layout-style").change(function(){ if( $(this).val() == 1){ $("#container").removeClass("boxed-page"), $(window).resize(); } else{ $("#container").addClass("boxed-page"), $(window).resize(); } });

//Background Switcher $('.switcher-box .bg-list li a').click(function() { var current = $('.switcher-box select[id=layout-style]').find('option:selected').val(); if(current == '2') { var bg = $(this).css("backgroundImage"); $("body").css("backgroundImage",bg); } else { alert('Please select boxed layout'); } });

});