/* File includes: js_classie.js , js_pushmenu.js *//* classie - class helper functions * from bonzo https://github.com/ded/bonzo * classie.has( elem, 'my-class' ) -> true/false * classie.add( elem, 'my-new-class' ) * classie.remove( elem, 'my-unwanted-class' ) * classie.toggle( elem, 'my-class' ) */ /*jshint browser: true, strict: true, undef: true */(function(window){'use strict';function classReg(className){return new RegExp("(^|\\s+)"+className+"(\\s+|$)")}var hasClass,addClass,removeClass;if('classList'in document.documentElement){hasClass=function(elem,c){return elem.classList.contains(c)};addClass=function(elem,c){elem.classList.add(c)};removeClass=function(elem,c){elem.classList.remove(c)}}else{hasClass=function(elem,c){return classReg(c).test(elem.className)};addClass=function(elem,c){if(!hasClass(elem,c)){elem.className=elem.className+' '+c}};removeClass=function(elem,c){elem.className=elem.className.replace(classReg(c),' ')}}function toggleClass(elem,c){var fn=hasClass(elem,c)?removeClass:addClass;fn(elem,c)}window.classie={hasClass:hasClass,addClass:addClass,removeClass:removeClass,toggleClass:toggleClass,has:hasClass,add:addClass,remove:removeClass,toggle:toggleClass}})(window);/** * mlpushmenu.js v1.0.0 * http://www.codrops.com * * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php *  * Copyright 2013, Codrops * http://www.codrops.com */ /*****FDA EDIT	This file has been modified to add an additional event handler for when the push menu is opened to prevent the default CLICK event on the scroller element when the push menu is open.  The event handler disables clicking on ALL links within the .scroller div	once the push menu is closed, the handler is disabled, and the links are then clickable.END FDA EDIT*****/;( function( window ) {			'use strict';	function extend( a, b ) {		for( var key in b ) { 			if( b.hasOwnProperty( key ) ) {				a[key] = b[key];			}		}		return a;	}	// taken from https://github.com/inuyaksa/jquery.nicescroll/blob/master/jquery.nicescroll.js	function hasParent( e, id ) {		if (!e) return false;		var el = e.target||e.srcElement||e||false;		while (el && el.id != id) {			el = el.parentNode||false;		}		return (el!==false);	}	// returns the depth of the element "e" relative to element with id=id	// for this calculation only parents with classname = waypoint are considered	function getLevelDepth( e, id, waypoint, cnt ) {		cnt = cnt || 0;		if ( e.id.indexOf( id ) >= 0 ) return cnt;		if( classie.has( e, waypoint ) ) {			++cnt;		}		return e.parentNode && getLevelDepth( e.parentNode, id, waypoint, cnt );	}	// http://coveroverflow.com/a/11381730/989439	function mobilecheck() {		var check = false;		(function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);		return check;	}	// returns the closest element to 'e' that has class "classname"	function closest( e, classname ) {		if( classie.has( e, classname ) ) {			return e;		}		return e.parentNode && closest( e.parentNode, classname );	}	function mlPushMenu( el, trigger, options ) {			this.el = el;		this.trigger = trigger;		this.options = extend( this.defaults, options );		// support 3d transforms		this.support = Modernizr.csstransforms3d;		if( this.support ) {			this._init();		}	}	mlPushMenu.prototype = {		defaults : {			// overlap: there will be a gap between open levels			// cover: the open levels will be on top of any previous open level			type : 'overlap', // overlap || cover			// space between each overlaped level			levelSpacing : 40,			// classname for the element (if any) that when clicked closes the current level			backClass : 'mp-back'		},		_init : function() {			// if menu is open or not			this.open = false;			// level depth			this.level = 0;			// the moving wrapper			this.wrapper = document.getElementById( 'mp-pusher' );			// the mp-level elements			this.levels = Array.prototype.slice.call( this.el.querySelectorAll( 'div.mp-level' ) );			// save the depth of each of these mp-level elements			var self = this;			this.levels.forEach( function( el, i ) { el.setAttribute( 'data-level', getLevelDepth( el, self.el.id, 'mp-level' ) ); } );			// the menu items			this.menuItems = Array.prototype.slice.call( this.el.querySelectorAll( 'li' ) );			// if type == "cover" these will serve as hooks to move back to the previous level			this.levelBack = Array.prototype.slice.call( this.el.querySelectorAll( '.' + this.options.backClass ) );			// event type (if mobile use touch events)			this.eventtype = mobilecheck() ? 'touchstart' : 'click';			// add the class mp-overlap or mp-cover to the main element depending on options.type			classie.add( this.el, 'mp-' + this.options.type );			// initialize / bind the necessary events			this._initEvents();		},		_initEvents : function() {			var self = this;						/*****			FDA EDIT			*****/			var scroller = $(".scroller")[0];										var disableScrollerDefault = function(event)			{				event.preventDefault();			}							/*****			END FDA EDIT			*****/									// the menu should close if clicking somewhere on the body			var bodyClickFn = function( el ) {				self._resetMenu();				/*****				FDA EDIT - wait 500ms to remove listeners				*****/				setTimeout(function(){								el.removeEventListener( self.eventtype, bodyClickFn );					$("a", scroller).each(function(){						this.removeEventListener('click', disableScrollerDefault, false);					});					$("input", scroller).each(function(){						$(this).removeAttr("disabled");					});					$("button", scroller).each(function(){						$(this).removeAttr("disabled");					});				}, 500);				/*****				END FDA EDIT				*****/			};			// open (or close) the menu			this.trigger.addEventListener( this.eventtype, function( ev ) {				ev.stopPropagation();				ev.preventDefault();				/*****				FDA EDIT				*****/				$("a", scroller).each(function(){					this.addEventListener('click', disableScrollerDefault, false);				});				$("input", scroller).each(function(){					$(this).attr('disabled','disabled');				});				$("button", scroller).each(function(){					$(this).attr('disabled','disabled');				});								/*** Freeze scrolling ***/				$( 'body' ).addClass( 'noScroll' );				$( 'html' ).addClass( 'noScroll' );								/*****				END FDA EDIT				*****/				if( self.open ) {					addEventListener('click', listener, false);					self._resetMenu();				}				else {										self._openMenu();					// the menu should close if clicking somewhere on the body (excluding clicks on the menu)					document.addEventListener( self.eventtype, function( ev ) {						if( self.open && !hasParent( ev.target, self.el.id ) ) {							bodyClickFn( this );						}					} );				}			} );			// opening a sub level menu			this.menuItems.forEach( function( el, i ) {				// check if it has a sub level				var subLevel = el.querySelector( 'div.mp-level' );				if( subLevel ) {					el.querySelector( 'a' ).addEventListener( self.eventtype, function( ev ) {						ev.preventDefault();						var level = closest( el, 'mp-level' ).getAttribute( 'data-level' );						if( self.level <= level ) {							ev.stopPropagation();							classie.add( closest( el, 'mp-level' ), 'mp-level-overlay' );							self._openMenu( subLevel );						}					} );				}			} );			// closing the sub levels :			// by clicking on the visible part of the level element			this.levels.forEach( function( el, i ) {				el.addEventListener( self.eventtype, function( ev ) {					ev.stopPropagation();					var level = el.getAttribute( 'data-level' );					if( self.level > level ) {						self.level = level;						self._closeMenu();					}				} );			} );			// by clicking on a specific element			this.levelBack.forEach( function( el, i ) {				el.addEventListener( self.eventtype, function( ev ) {					ev.preventDefault();					var level = closest( el, 'mp-level' ).getAttribute( 'data-level' );					if( self.level <= level ) {						ev.stopPropagation();						self.level = closest( el, 'mp-level' ).getAttribute( 'data-level' ) - 1;						self.level === 0 ? self._resetMenu() : self._closeMenu();					}				} );			} );			},		_openMenu : function( subLevel ) {			// increment level depth			++this.level;			// move the main wrapper			var levelFactor = ( this.level - 1 ) * this.options.levelSpacing,				translateVal = this.options.type === 'overlap' ? this.el.offsetWidth + levelFactor : this.el.offsetWidth;						this._setTransform( 'translate3d(' + translateVal + 'px,0,0)' );			if( subLevel ) {				// reset transform for sublevel				this._setTransform( '', subLevel );				// need to reset the translate value for the level menus that have the same level depth and are not open				for( var i = 0, len = this.levels.length; i < len; ++i ) {					var levelEl = this.levels[i];					if( levelEl != subLevel && !classie.has( levelEl, 'mp-level-open' ) ) {						this._setTransform( 'translate3d(-100%,0,0) translate3d(' + -1*levelFactor + 'px,0,0)', levelEl );					}				}			}			// add class mp-pushed to main wrapper if opening the first time			if( this.level === 1 ) {				classie.add( this.wrapper, 'mp-pushed' );				this.open = true;			}			// add class mp-level-open to the opening level element			classie.add( subLevel || this.levels[0], 'mp-level-open' );		},		// close the menu		_resetMenu : function() {			this._setTransform('translate3d(0,0,0)');			this.level = 0;			// remove class mp-pushed from main wrapper			classie.remove( this.wrapper, 'mp-pushed' );			this._toggleLevels();			this.open = false;				/*** UnFreeze scrolling ***/				$( 'body' ).removeClass( 'noScroll' );				$( 'html' ).removeClass( 'noScroll' );		},		// close sub menus		_closeMenu : function() {			var translateVal = this.options.type === 'overlap' ? this.el.offsetWidth + ( this.level - 1 ) * this.options.levelSpacing : this.el.offsetWidth;			this._setTransform( 'translate3d(' + translateVal + 'px,0,0)' );			this._toggleLevels();		},		// translate the el		_setTransform : function( val, el ) {			el = el || this.wrapper;			el.style.WebkitTransform = val;			el.style.MozTransform = val;			el.style.transform = val;		},		// removes classes mp-level-open from closing levels		_toggleLevels : function() {			for( var i = 0, len = this.levels.length; i < len; ++i ) {				var levelEl = this.levels[i];				if( levelEl.getAttribute( 'data-level' ) >= this.level + 1 ) {					classie.remove( levelEl, 'mp-level-open' );					classie.remove( levelEl, 'mp-level-overlay' );				}				else if( Number( levelEl.getAttribute( 'data-level' ) ) == this.level ) {					classie.remove( levelEl, 'mp-level-overlay' );				}			}		}	}	// add to global namespace	window.mlPushMenu = mlPushMenu;} )( window );$('.more-share').click(function(e){		$('.share-li').toggleClass("show hide");		$('.more-share').toggleClass("expanded-more collapsed-more");      e.preventDefault();	});	function windowPopup(url, width, height) {  // Calculate the position of the popup so  // it’s centered on the screen.  var left = (screen.width / 2) - (width / 2),      top = (screen.height / 2) - (height / 2);  window.open(    url,    "",    "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=" + width + ",height=" + height + ",top=" + top + ",left=" + left  );};$(".js-share").on("click", function(e) {  e.preventDefault();  windowPopup($(this).attr("href"), 500, 300);   _gaq.push(['_trackEvent', 'socialShare',event.target.id]);});