(function($){
	$('.form-widget form').on( 'submit', function(evt){
		var textBox = $(this).find( 'input[type="text"]' );
		if (textBox.val() == '') {
			if( !$(this).hasClass('error') ){
				$(this).addClass('error');
				textBox.val( 'Please enter a keyword' );
			}
			evt.preventDefault();
		}
	});
	$('.form-widget form input[type="text"]').focus(function(){
		if( $(this).parents('form').hasClass('error') ){
			$(this).parents('form').removeClass('error');
			$(this).val('');
		}
	});
})(jQuery);;
(function() {
	var ajaxurl = window.ajaxurl || '/wp-admin/admin-ajax.php',
		data = window.wpcomVipAnalytics,
		dataQs, percent;

	if ( typeof XMLHttpRequest === 'undefined' ) {
		return;
	}

	if ( ! data ) {
		return;
	}

	percent = ~~data.percentToTrack;
	if ( percent && percent < 100 && ( ~~( ( Math.random() * 100 ) + 1 ) > percent ) ) {
		return;
	}

	dataQs = 'action=wpcom_vip_analytics';

	for ( var key in data ) {
		if ( key === 'percentToTrack' ) {
			continue;
		}
		if ( data.hasOwnProperty( key ) ) {
			dataQs += '&' +
				encodeURIComponent( key ).replace(/%20/g, '+' ) + '=' +
				encodeURIComponent( data[key] ).replace(/%20/g, '+' );
		}
	}

	function sendInfo() {
		var xhr = new XMLHttpRequest();
		xhr.open( 'POST', ajaxurl, true );
		xhr.setRequestHeader( 'Content-type', 'application/x-www-form-urlencoded' );
		xhr.send( dataQs );
	}

	// Delay for some time after the document is ready to ping
	function docReady() {
		setTimeout( function() {
			sendInfo();
		}, 1500 );
	}

	if ( document.readyState === 'complete' ) {
		docReady.apply();
	}
	else if ( document.addEventListener ) {
		document.addEventListener( 'DOMContentLoaded', docReady, false );
	}
	else if ( document.attachEvent ) {
		document.attachEvent( 'onreadystatechange', docReady );
	}
})();
;
/* eslint-disable */
/*!
 * Stickyfill -- `position: sticky` polyfill
 * v. 1.1.4 | https://github.com/wilddeer/stickyfill
 * Copyright Oleg Korsunsky | http://wd.dizaina.net/
 *
 * MIT License
 */
!function(a,b){function c(){y=D=z=A=B=C=K}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])}function e(a){return parseFloat(a)||0}function f(){F={top:b.pageYOffset,left:b.pageXOffset}}function g(){return b.pageXOffset!=F.left?(f(),void z()):void(b.pageYOffset!=F.top&&(f(),i()))}function h(a){setTimeout(function(){b.pageYOffset!=F.top&&(F.top=b.pageYOffset,i())},0)}function i(){for(var a=H.length-1;a>=0;a--)j(H[a])}function j(a){if(a.inited){var b=F.top<=a.limit.start?0:F.top>=a.limit.end?2:1;a.mode!=b&&p(a,b)}}function k(){for(var a=H.length-1;a>=0;a--)if(H[a].inited){var b=Math.abs(t(H[a].clone)-H[a].docOffsetTop),c=Math.abs(H[a].parent.node.offsetHeight-H[a].parent.height);if(b>=2||c>=2)return!1}return!0}function l(a){isNaN(parseFloat(a.computed.top))||a.isCell||"none"==a.computed.display||(a.inited=!0,a.clone||q(a),"absolute"!=a.parent.computed.position&&"relative"!=a.parent.computed.position&&(a.parent.node.style.position="relative"),j(a),a.parent.height=a.parent.node.offsetHeight,a.docOffsetTop=t(a.clone))}function m(a){var b=!0;a.clone&&r(a),d(a.node.style,a.css);for(var c=H.length-1;c>=0;c--)if(H[c].node!==a.node&&H[c].parent.node===a.parent.node){b=!1;break}b&&(a.parent.node.style.position=a.parent.css.position),a.mode=-1}function n(){for(var a=H.length-1;a>=0;a--)l(H[a])}function o(){for(var a=H.length-1;a>=0;a--)m(H[a])}function p(a,b){var c=a.node.style;switch(b){case 0:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top=a.offset.top+"px",c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 1:c.position="fixed",c.left=a.box.left+"px",c.right=a.box.right+"px",c.top=a.css.top,c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 2:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top="auto",c.bottom=0,c.width="auto",c.marginLeft=0,c.marginRight=0}a.mode=b}function q(a){a.clone=document.createElement("div");var b=a.node.nextSibling||a.node,c=a.clone.style;c.height=a.height+"px",c.width=a.width+"px",c.marginTop=a.computed.marginTop,c.marginBottom=a.computed.marginBottom,c.marginLeft=a.computed.marginLeft,c.marginRight=a.computed.marginRight,c.padding=c.border=c.borderSpacing=0,c.fontSize="1em",c.position="static",c.cssFloat=a.computed.cssFloat,a.node.parentNode.insertBefore(a.clone,b)}function r(a){a.clone.parentNode.removeChild(a.clone),a.clone=void 0}function s(a){var b=getComputedStyle(a),c=a.parentNode,d=getComputedStyle(c),f=a.style.position;a.style.position="relative";var g={top:b.top,marginTop:b.marginTop,marginBottom:b.marginBottom,marginLeft:b.marginLeft,marginRight:b.marginRight,cssFloat:b.cssFloat,display:b.display},h={top:e(b.top),marginBottom:e(b.marginBottom),paddingLeft:e(b.paddingLeft),paddingRight:e(b.paddingRight),borderLeftWidth:e(b.borderLeftWidth),borderRightWidth:e(b.borderRightWidth)};a.style.position=f;var i={position:a.style.position,top:a.style.top,bottom:a.style.bottom,left:a.style.left,right:a.style.right,width:a.style.width,marginTop:a.style.marginTop,marginLeft:a.style.marginLeft,marginRight:a.style.marginRight},j=u(a),k=u(c),l={node:c,css:{position:c.style.position},computed:{position:d.position},numeric:{borderLeftWidth:e(d.borderLeftWidth),borderRightWidth:e(d.borderRightWidth),borderTopWidth:e(d.borderTopWidth),borderBottomWidth:e(d.borderBottomWidth)}},m={node:a,box:{left:j.win.left,right:J.clientWidth-j.win.right},offset:{top:j.win.top-k.win.top-l.numeric.borderTopWidth,left:j.win.left-k.win.left-l.numeric.borderLeftWidth,right:-j.win.right+k.win.right-l.numeric.borderRightWidth},css:i,isCell:"table-cell"==b.display,computed:g,numeric:h,width:j.win.right-j.win.left,height:j.win.bottom-j.win.top,mode:-1,inited:!1,parent:l,limit:{start:j.doc.top-h.top,end:k.doc.top+c.offsetHeight-l.numeric.borderBottomWidth-a.offsetHeight-h.top-h.marginBottom}};return m}function t(a){for(var b=0;a;)b+=a.offsetTop,a=a.offsetParent;return b}function u(a){var c=a.getBoundingClientRect();return{doc:{top:c.top+b.pageYOffset,left:c.left+b.pageXOffset},win:c}}function v(){G=setInterval(function(){!k()&&z()},500)}function w(){clearInterval(G)}function x(){I&&(document[L]?w():v())}function y(){I||(f(),n(),b.addEventListener("scroll",g),b.addEventListener("wheel",h),b.addEventListener("resize",z),b.addEventListener("orientationchange",z),a.addEventListener(M,x),v(),I=!0)}function z(){if(I){o();for(var a=H.length-1;a>=0;a--)H[a]=s(H[a].node);n()}}function A(){b.removeEventListener("scroll",g),b.removeEventListener("wheel",h),b.removeEventListener("resize",z),b.removeEventListener("orientationchange",z),a.removeEventListener(M,x),w(),I=!1}function B(){A(),o()}function C(){for(B();H.length;)H.pop()}function D(a){for(var b=H.length-1;b>=0;b--)if(H[b].node===a)return;var c=s(a);H.push(c),I?l(c):y()}function E(a){for(var b=H.length-1;b>=0;b--)H[b].node===a&&(m(H[b]),H.splice(b,1))}var F,G,H=[],I=!1,J=a.documentElement,K=function(){},L="hidden",M="visibilitychange";void 0!==a.webkitHidden&&(L="webkitHidden",M="webkitvisibilitychange"),b.getComputedStyle||c();for(var N=["","-webkit-","-moz-","-ms-"],O=document.createElement("div"),P=N.length-1;P>=0;P--){try{O.style.position=N[P]+"sticky"}catch(Q){}""!=O.style.position&&c()}f(),b.Stickyfill={stickies:H,add:D,remove:E,init:y,rebuild:z,pause:A,stop:B,kill:C}}(document,window),window.jQuery&&!function($){$.fn.Stickyfill=function(a){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery);;
/* eslint-disable func-names, no-shadow, new-cap */
/* global jQuery, FB */
/**
 * Story page Javascript
 */
jQuery( document ).ready( function( $ ) { // eslint no-shaow: 0

	/**
	 * Left rail and sticky tweaks
	 */

	// var stickies = $( '#entry-details' ).add( $( '#related-stories' ) ); // All stickies

	// Set left rail height to match the main rail
	var contentHeight = $( '#story-main-content' ).height();
	if ( 0 < contentHeight ) {
		var entryDetails = $( '#entry-details-container' );
		var relatedStories = $( '#related-stories-container' );
		var entryDetailsHeight = Math.max( entryDetails.height(),
				contentHeight / ( 0 < relatedStories.size() ? 2 : 1 ) );
		entryDetails.css( 'min-height', entryDetailsHeight + 'px' );
		if ( contentHeight > entryDetailsHeight ) {
			relatedStories.css( 'min-height', ( contentHeight - entryDetailsHeight ) + 'px' );
		}
	}

	// Apply the sticky polyfill for older browsers
	// stickies.Stickyfill();

	/**
	 *	Sharing
	 */
	// Facebook Popup
	$( '.share-button.share-facebook a' ).click( function( e ) {
		e.preventDefault();
		var shareUrl = $( this ).data( 'share-url' );
		var shareImage = $( this ).data( 'share-image' );
		var shareText = $( this ).data( 'share-text' );
		var fbParams = {
			method: 'share',
			href: shareUrl ? shareUrl : window.location.href
		};
		if ( shareImage ) {
			fbParams.picture = shareImage;
		}
		if ( shareText ) {
			fbParams.description = shareText;
		}
		FB.ui( fbParams, function() {} );
	} );

	// Google+ and LinkedIn Popup
	$( '.share-button.share-twitter a, .share-button.share-googleplus a, .share-button.share-linkedin a' ).click( function( e ) {
		e.preventDefault();
		var shareUrl = "";
		var width = 550,
			height = 300,
			left = ( $( window ).width() - width ) / 2,
			top = ( $( window ).height() - height ) / 2,
			opts = 'status=1' +
					',width=' + width +
					',height=' + height +
					',top=' + top +
					',left=' + left;
		if ( 'Twitter' == e.currentTarget.innerText ) {
			shareUrl = $( this ).data( 'share-url' );
		} else {
			shareUrl = this.href;
		}

		window.open( shareUrl, 'twitter', opts );
	} );

	/**
	 * Next Story Fly-in
	 */
	var flyInPosition = $( 'body' ).height() * 0.6;
	var flyInScrollHandler = function() {
		if ( $( window ).scrollTop() > flyInPosition ) {
			$( '#next-story-fly-in' ).animate( { right: 0 }, 1000 );
			$( window ).off( 'scroll', flyInScrollHandler );
		}
	};
	$( window ).scroll( flyInScrollHandler ); // This callback is removed after the fly-in.

	// Adjust mobile featured media
	var featuredMediaContainer = $( '#page.mobile .entry-featured-media-container' );
	var userScrolled = false;
	$( window ).scroll( function() {
		userScrolled = true;
	} );
	function updateFeaturedMediaHeight() {
		var featureHeight = featuredMediaContainer.height();
		if ( 0 < featureHeight ) {
			featureHeight += $( '.header-wrapper' ).outerHeight();
			var maxHeight = $( window ).height() - $( '.entry-title' ).outerHeight() - 10;
			var marginTop = Math.min( featureHeight, maxHeight ) - $( '#wpadminbar' ).outerHeight();
			$( '#page.mobile' ).css( 'marginTop', marginTop + 'px' );

			// Reset scroll if user hasn't scrolled (fixed Facebook in-app browser)
			if ( ! userScrolled ) {
				$( window ).scrollTop(0);
			}

			if ( marginTop < 100 ) {
				// Margin is too small (e.g., facebook in-app browser) try again
				setTimeout( updateFeaturedMediaHeight, 500 );
			} else if ( 0 < $( '#pmalerts_holder' ).size() ) {
				if ( $( 'body' ).hasClass( 'pm_isalert' ) ) {
					$( '#pmalerts_close_btn' ).click( updateFeaturedMediaHeight );
				} else {
					// PM Alert may not be loaded yet so try again.
					setTimeout( updateFeaturedMediaHeight, 500 );
				}
			}
		} else {
			// We don't have callbacks for featured vide/gallery so we rely on a timeout
			setTimeout( updateFeaturedMediaHeight, 500 );
		}
	}
	if ( featuredMediaContainer.hasClass( 'below-content' ) ) {
		updateFeaturedMediaHeight();
	}

} );
;
/* eslint-disable */
/**
 * Facebook Comments
 */
(function() {
	window.fbAsyncInit = function() {
		// init the FB JS SDK
		FB.init({
			appId  : window.PostmediaFB.appID,
			status : true,
			xfbml  : true
		});
	};

	// Load the SDK asynchronously
	(function(d, s, id){
		var js, fjs = d.getElementsByTagName(s)[0];
		if (d.getElementById(id)) {return;}
		js = d.createElement(s); js.id = id;
		js.src = "//connect.facebook.net/en_US/all.js";
		fjs.parentNode.insertBefore(js, fjs);
	}(document, 'script', 'facebook-jssdk'));
}());
;
(function($){

	var App = {
		init : function(){
			App.headerNavigation();
			App.signInAndOut();
			App.moreSocialMenu();
			//App.pollDaddy();
			App.outfitSldier();
			App.showMore();
			App.backToTop();
			App.adInfo();
			App.stickyPolyfill();
			App.track_event_outfits();
			App.track_event_navigation();
			App.track_event_socialLink();
			App.klangoo_tracking();
		},
		headerNavigation: function(){
			var navigation = {
				navConfig: 	{
					winWidth: $( window ).width(),
					menuOpenCloseDelay : 150,
					menuOpenEvent: ( $( window ).width() >= 1200 ) ? 'mouseenter focus' : 'click',
					pageCategory: ( $( 'body' ).attr('id') != null ) ? $( 'body' ).attr('id') : '',
					isAdmin: $('.admin-bar')[0]
				},
				defaultState : function (){
					var defaultCategoryMenu;
					var navLevel;
					
					if ( navigation.navConfig.winWidth >= 768 && ! ( $('.header-is-sticky')[0] ) ) {
						// add default open classes
						if ( navigation.navConfig.pageCategory != '' ){
							defaultCategoryMenu = $( '.navigation li.' + navigation.navConfig.pageCategory )[0];
							if( defaultCategoryMenu ){
								navLevel = $( defaultCategoryMenu ).parents( '.subnav' ).length;
								if ( navLevel != 0 ){
									$( defaultCategoryMenu ).parents('li').addClass( 'default-open' );
								}
								$( defaultCategoryMenu ).addClass( 'default-open' );
							}
						}
						
						// set default height of nav and make default open navs active
						if( $( '.default-open' )[0] ){
							if( $( '.subnav .subnav .default-open' )[0] || $( '.subnav .default-open > .subnav' )[0] ){
								$( '.l-header' ).addClass( 'three-level-default' );
							} else if ( $( '.subnav .default-open' )[0] || $( '.main-nav > .default-open > .subnav' )[0] ){
								$( '.l-header' ).addClass( 'two-level-default' );
							}
							$( '.default-open' ).addClass( 'active' );
						}
					}
				},
				menuOpen: function(){
					$( '.navigation .menu-item > a' ).on( navigation.navConfig.menuOpenEvent, function(evt){
						var setTimeoutConst;
						var currentMenuItem = $( this );
						var navLevel = $( this ).parents( '.subnav' ).length;
						
						if ( navigation.navConfig.winWidth < 768 ) {
							openMobileMenu( currentMenuItem, evt );
						} else {
							
							if( navLevel == 0 && !( currentMenuItem.parent( '.default-open' )[0] ) ){
								currentMenuItem.next( '.subnav' ).find( '> ul > li > a' ).each(function(){
									if( $(this).next( '.outfit-wrap' )[0] && !( $(this).next( '.outfit-wrap' ).children()[0] ) ){
										getOutfit( $( this )[0] );
									}
								});
							}
						
							if ( navigation.navConfig.winWidth < 1200 ){
								
								if( currentMenuItem.parent().hasClass('active') && ( currentMenuItem.next('.show-outfit')[0] || currentMenuItem.next('.subnav')[0] ) ){
									return true;
								}
								
								// make link clickable when there is a single outfit wrap
								if( currentMenuItem.next('.outfit-wrap:empty')[0] ) {
									return true;
								}
								
								if( navLevel < 2 ) {
									openTabletMenu( currentMenuItem, evt );
								}
							} else {
								setTimeoutConst = setTimeout(function(){
									if( navLevel < 2) {
										openDesktopMenu( currentMenuItem );
									}
								}, navigation.navConfig.menuOpenCloseDelay );

								currentMenuItem.on( 'mouseleave', function( evt ){
									currentMenuItem.off( 'mouseleave' );
									clearTimeout( setTimeoutConst );
								});
							}
						}
					});
					
					function openDesktopMenu( currentMenuItem ){
						var subnav = currentMenuItem.next();
						$( '.main-nav > li > .subnav' ).attr( 'style', '' );
						$( '.outfit-wrap' ).removeClass( 'show-outfit' );
						currentMenuItem.parent().parent().find( '.active' ).removeClass( 'active' );
						$( '.highlight' ).removeClass( 'highlight' );
						
						if ( subnav[0] ) {
							currentMenuItem.parent().addClass( 'active' );
							
							if ( subnav.find('.outfit')[0] ){
								subnav.addClass( 'show-outfit' );
							}
						}
					}
					function openTabletMenu( currentMenuItem, evt ){
						var subnav = currentMenuItem.next();
						$( '.main-nav > li > .subnav' ).attr( 'style', '' );
						$( '.outfit-wrap' ).removeClass( 'show-outfit' );
						currentMenuItem.parent().parent().find( '.active' ).removeClass( 'active' );
						$( '.highlight' ).removeClass( 'highlight' );
						
						if ( subnav[0] ) {
							currentMenuItem.parent().addClass( 'active' );
							evt.preventDefault();
							
							if(  subnav.find('.outfit')[0] ){
								subnav.addClass( 'show-outfit' );
							}
						}
					}
					function openMobileMenu( currentMenuItem , evt ){
						var subnav = currentMenuItem.next();
						var navItems;
						var navHeight;
						
						if ( subnav.hasClass( 'subnav' ) ) {
							evt.preventDefault();
							
							if ( ! ( currentMenuItem.parent('.show-tab')[0] ) ){
								currentMenuItem.parent().addClass( 'show-tab' );
								navItems = subnav.find( '> ul > li' );
								navHeight = navItems.length * $( navItems[0] ).outerHeight();
								subnav.parents('.subnav').height( subnav.parents('.subnav').height() + navHeight );
								subnav.height( navHeight - 1 );
							} else {
								currentMenuItem.parent().removeClass( 'show-tab' );
								navHeight = subnav.height();
								subnav.attr( 'style', '' );
								
								if( subnav.parents('.subnav')[0] ){
									subnav.parents('.subnav').height( subnav.parents('.subnav').height() - navHeight );
								} else {
									subnav.find( '.subnav' ).attr( 'style', '' );
									subnav.find( '.show-tab').removeClass( 'show-tab' );
								}
							}
						}
					}
					function getOutfit(el) {
						var menu_item_id = el.parentElement.id.replace( 'menu-item-', '' );
						var menu_item_name =  el.innerHTML;
						var has_children = $( el.parentElement ).hasClass( 'menu-item-has-children' );						
						var menu_item_url = el.href;
						var menu_url_pieces = menu_item_url.split( '/' );
						var menu_item_slug = menu_url_pieces[ menu_url_pieces.length - 1 ];

						var outfit_div = $(el).next('.outfit-wrap');
					}

					if( navigation.navConfig.winWidth >= 768 ){
						$( '.navigation .main-nav > li > a, .default-open .subnav > ul > li > a' ).each(function(){
							if( $(this).next( '.outfit-wrap' )[0] && !( $(this).next( '.outfit-wrap' ).children()[0] )  ){
								getOutfit( $( this )[0] );
							}
						});
					}
				},
				menuClose: function(){
					if( navigation.navConfig.winWidth >= 768 ){
						$( '.main-nav > li > .subnav' ).attr( 'style', '' );
						$( '.navigation li' ).removeClass( 'active' );
						
						if( !( $('.header-is-sticky')[0] ) ){
							$( '.default-open' ).addClass( 'active' );
						}else {
							$( '.default-open' ).addClass( 'highlight' );
						}
						
						$( '.outfit-wrap' ).removeClass('show-outfit');
					}
				},
				menuCloseEvent: function(){
					if( $('.desktop')[0] ){
						$( '.nav-wrap' ).on('mouseleave', function(){
							navigation.menuClose();
						});
					} else if( $('.tablet')[0] ){
						$( '#pmalerts_holder, .top-bar, .masthead, .l-content, .l-footer' ).on('click', function(){
							navigation.menuClose();
						});
					}
				},
				mobileNav: function(){
					$( '.nav-button' ).on ( 'click' , function(){
						if( ! ( $( '.mobile-nav-opened' )[0] ) ){
							$( 'body' ).addClass( 'mobile-nav-opened no-scroll' );
						} else {
							navigation.mobileNavClose();
						}
					});
					$( '.share-nav-button' ).on ( 'click' , function(){
						$( '.share-more-popup' ).show();
					});
				},
				mobileNavClose: function(){
					$( 'body' ).removeClass( 'mobile-nav-opened no-scroll' );
					$( '.navigation li' ).removeClass( 'show-tab' );
					$('.navigation .subnav').attr( 'style', '' );
					$('.nav-wrap').scrollTop(0);
				},
				navSearch: function(){
					$('.search .start-search').on ( 'click' , function(){
						if( navigation.navConfig.winWidth < 768 ){
							window.location = '/?s=';
						} else {
							if( ! ( $( '.search-open' )[0] ) ){
								navigation.menuClose();
								$( 'body' ).addClass( 'search-open' );
								$( '#main-searcher' ).focus();
							}
						}
					});
					
					$('.search .close-search').on('click', function(){
						navigation.navSearchClose();
					});
				},
				navSearchClose: function(){
					if( $( 'body' ).hasClass( 'search-open' ) ){
						$( '#main-searcher' ).attr('value', '');
						$( 'body' ).removeClass( 'search-open' );
					}
				},
				navCollapse : function (){
					$( '.l-header' ).removeClass( 'two-level-default three-level-default' );
					$( '.main-nav li' ).removeClass('active');
					$( '.main-nav .subnav li' ).removeClass('default-open');
					$( '.outfit-wrap' ).removeClass( 'show-outfit' );
				},
				stickyNav : function(){
					var scrollTop;
					
					$(window).scroll(function(evt){
						toggleStickyClass();
					});
					
					function toggleStickyClass(){
						if( navigation.navConfig.winWidth > 767 ) {
							var isSticky;
							
							if ( navigation.navConfig.winWidth < 1200 ) {
								isSticky = !$( '.search-open' )[0];
							} else {
								isSticky = true;
							}
							
							if( isSticky ){
								
								scrollTop = $(window).scrollTop();
								navigation.menuClose();
								
								if( $( '.header-is-sticky' )[0] ){
									if( scrollTop <= 0 ){
										$( 'body' ).removeClass( 'header-is-sticky' );
										navigation.defaultState();
										$( '.highlight' ).removeClass( 'highlight' );
									}
								} else {
									if ( scrollTop > 0 ) {
										$( 'body' ).addClass( 'header-is-sticky' );
										navigation.navCollapse();
										$( '.default-open' ).addClass( 'highlight' );
									}
								}
							}
						}
					}
				},
				windowResize: function(){
					$( window ).resize(function(){
						navigation.navConfig.winWidth = $( window ).width();
						navigation.navConfig.menuOpenEvent = ( navigation.navConfig.winWidth >= 1200 ) ? 'mouseenter focus' : 'click';
						$( '.navigation .menu-item > a' ).off();
						$( '.l-header' ).removeClass( 'two-level-default three-level-default' );
						$( '.main-nav li' ).removeClass( 'default-open active' );
						$( '.outfit-wrap' ).removeClass( 'show-outfit' );
						
						if( navigation.navConfig.winWidth >= 768 ){
							navigation.mobileNavClose();
						} else {
							navigation.navSearchClose();
						}
						
						navigation.defaultState();
						navigation.menuOpen();
					});
				}
			};
			navigation.defaultState();
			navigation.menuOpen();
			navigation.menuCloseEvent();
			navigation.windowResize();
			navigation.mobileNav();
			navigation.navSearch();
			navigation.stickyNav();
		},
		signInAndOut: function(){
			$( window ).load(function() {
				if ( localStorage && localStorage.getItem("janrainCaptureToken") ) {
					var profileData = JSON.parse(localStorage.getItem('janrainCaptureProfileData')),
						displayName = profileData.displayName,
						firstName = profileData.givenName,
						lastName = profileData.familyName;
					
					if( $('.my-account-page')[0] && ( firstName )){
						$('.account-name .first-name').text(firstName);
						$('.account-name .last-name').text(lastName);
					} else {
						$('.account-name .first-name').text(displayName);
					}
					
					if( $( window ).width() < 768 ){
						var signInHTML = 	[
												$( '<div>', { 'class' : 'welcome-msg' } ).text( 'Hello ').append( 
													$( '<span>', { 'class' : 'display-name' }).text( displayName )
												).append(
													$( '<a>', { 'class' : 'my-account-link', 'href' : '/my-account' } ).text( 'My Account')
												)
											];
						$( '.nav-wrap .signin' ).text( '' ).append( signInHTML );
						$( '.nav-wrap .subscribe' ).remove();
						
					} else {
						
						var epaperLink = 'http://epaper.nationalpost.com';
						var customerSelfServerLink = 'https://subscriptions.nationalpost.com/new_devel/index_sub1.html';
						
						var signInNavHTML = [
							$( '<ul>', { 'class' : 'signin-nav' } ).append(
								$( '<li>' ).append(
									$( '<a>', { 'title' : 'ePaper', 'href' : epaperLink, 'target' : '_blank' } ).text( 'ePaper' )
								)
							)
						];
						
						var accountMenuHTML = [
							$( '<li>', { 'class' : 'account' } ).append(
								$( '<a>', { 'href' : 'javascript:void(0)' } ).text( 'Hello ' ).append(
									$( '<span>' , { 'class' : 'display-name' } ).text( displayName )
								),
								$( '<div>', { 'class' : 'account-menu-wrap' } ).append(
									$( '<ul>', { 'class' : 'account-menu' } ).append(
										$( '<li>' ).append(
											$( '<a>', { 'title' : 'Edit Profile', 'href' : '/edit-profile' } ).text( 'Edit Profile' )
										),
										$( '<li>' ).append(
											$( '<a>', { 'title' : 'Manage eNewsletter', 'href' : '#managenewsletters' } ).text( 'Manage eNewsletters' )
										),
										$( '<li>' ).append(
											$( '<a>', { 'title' : 'ePaper', 'href' : epaperLink, 'target' : '_blank' } ).text( 'ePaper' )
										),
										$( '<li>' ).append(
											$( '<a>', { 'title' : 'Post Points', 'href' : '/post-points' } ).text( 'Post Points' )
										),
										$( '<li>' ).append(
											$( '<a>', { 'title' : 'Customer Self Serve', 'href' : customerSelfServerLink } ).text( 'Customer Self-Serve' )
										),
										$( '<li>' ).append(
											$( '<a>', { 'class' : 'signout', 'title' : 'Sign Out', 'href' : 'javascript:void(0)', 'onclick' : 'janrainSignOut()' } ).text( 'Sign Out' )
										)
									)
								)
							)
						];
						
						$( '.top-bar .l-constrained' ).prepend(signInNavHTML);
						$( '.top-bar .subscriber-links' ).prepend(accountMenuHTML);
						
						if( firstName != undefined && lastName != undefined ){
							$( '.top-bar .subscriber-links .account-menu-wrap' ).prepend(
								$( '<span>', { 'class' : 'full-name' } ).text( firstName + ' ' + lastName )
							);
						}
						$( '.top-bar .signin' ).remove();
						App.accountMenu();
					}
				} else {
					if( $('.my-account-page')[0] ){
						window.location = 'http://' + document.location.host + '/?layer=true&returnurl=http://' + document.location.host + '/my-account';
					}
				}
			});
		},
		accountMenu: function(){
			$( '.top-bar .account > a' ).on ( 'mouseenter', function(){
				$( this ).parent().addClass('active');
			});
			
			if( $('.tablet')[0] ){
				$( document ).on( 'click', function( evt ){
					if( ! ( $( evt.target ).parents('.account')[0] ) ){
						$( '.top-bar .account' ).removeClass('active');
					}
				});
			} else {
				$( '.top-bar .account' ).on( 'mouseleave', function(){
					$( this ).removeClass('active');
				});
			}
		},
		moreSocialMenu: function(){
			// Share More Popup
			$( '.share-button.share-more' ).hover( function() {
				$( this ).find( '.share-more-popup' ).show();
			}, function() {
				$( this ).find( '.share-more-popup' ).hide();
			} )
			// Click fallback for touchscreens
			.find( '> a' ).click( function( e ) {
				e.stopPropagation();
				e.preventDefault();
				$( this ).siblings( '.share-more-popup' ).show();
			} )
			// Close button
			.siblings( '.share-more-popup' ).find( '.close-button' ).click( function( e ) {
				e.stopPropagation();
				$( this ).parents( '.share-more-popup' ).hide();
			} )
			// Hide popup on share
			.parent().find( '.share-button a' ).click( function() {
				$( this ).parents( '.share-more-popup' ).hide();
			} );
			
			// Snap Gallery and Longform Share More Popup
			if( !( $( '.mobile' )[0] ) ) {
				$( document ).on( 'mouseenter focusin', '.social-icons .more-social', function( e ) {
					$( this ).find( '.more-social-menu' ).show();
				} )
				.on( 'mouseleave focusout', '.social-icons .more-social', function() {
					$( this ).find( '.more-social-menu' ).hide();
				} );
			}
			$( '.social-icons .more-social' ).parent().find( '.more-social a' ).click( function() {
				$( this ).parents( '.more-social-menu' ).hide();
			} );
			
		},
		outfitSldier: function(){
			var msGesture;
			outfitSlide = function(ele){
				var startX, startY, offset, cwidth, dx, startT, onTouchStart, onTouchMove, onTouchEnd, scrolling = false, localX = 0, localY = 0, accDx = 0;
				el = ele[0];
				if(!msGesture){
					onTouchStart = function(e) {
						if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
							startT = Number(new Date());
							localX = e.touches[0].pageX;
							localY = e.touches[0].pageY;
							startX = localX;
							startY = localY;
							el.addEventListener('touchmove', onTouchMove, false);
							el.addEventListener('touchend', onTouchEnd, false);
						}
					};
					onTouchMove = function(e) {
						localX = e.touches[0].pageX;
						localY = e.touches[0].pageY;
						dx = startX - localX;
						scrolling = (Math.abs(dx) < Math.abs(localY - startY));
						var fxms = 500;
					};

					onTouchEnd = function(e) {
						el.removeEventListener('touchmove', onTouchMove, false);
						if ( !scrolling && !(dx === null)) {
							if ((Number(new Date()) - startT) > 550 || Math.abs(dx) > 50 ) {
								if (dx > 0) {
									next();
								}else{
									prev();
								}
							}
						}
						el.removeEventListener('touchend', onTouchEnd, false);

						startX = null;
						startY = null;
						dx = null;
						offset = null;
					};
					el.addEventListener('touchstart', onTouchStart, false);
				}else{
					el.style.msTouchAction = "none";
					el._gesture = new MSGesture();
					el._gesture.target = el;
					el.addEventListener("MSPointerDown", onMSPointerDown, false);
					el.addEventListener("MSGestureChange", onMSGestureChange, false);
					el.addEventListener("MSGestureEnd", onMSGestureEnd, false);

					function onMSPointerDown(e){
						e.stopPropagation();
						el._gesture.addPointer(e.pointerId);
						accDx = 0;
						startT = Number(new Date());
					}

					function onMSGestureChange(e) {
						e.stopPropagation();
						var transX = -e.translationX,transY = -e.translationY;
						accDx = accDx + transX;
						dx = accDx;
						scrolling = (Math.abs(accDx) < Math.abs(-transY));
						if(e.detail === e.MSGESTURE_FLAG_INERTIA){
							setImmediate(function (){
								el._gesture.stop();
							});

							return;
						}

						if (!scrolling || Number(new Date()) - startT > 500) {
							e.preventDefault();
						}
					}

					function onMSGestureEnd(e) {
						e.stopPropagation();
						if (!scrolling && !(dx === null)) {
							if (Number(new Date()) - startT > 550 || Math.abs(dx) > 50) {
								if (dx > 0) {
									next();
								}else{
									prev();
								}
							}
						}
						startX = null;
						startY = null;
						dx = null;
						offset = null;
						accDx = 0;
					}
				}
			}

			// slider click actions
			$('.outfit-slider').each(function(){
				var self, slideWindow, slot, slotWidth, unit, unitLen, unitCount,
					slideBtns, prevBtn, nextBtn, posX, setVar, currentno;

				self = $(this);
				slideWindow = self.find('.slide-window');
				slot = self.find('.slot');
				unit = self.find('.unit');
				slideBtns = self.find('.slide-btns .btn');
				prevBtn = self.find('.slide-btns .prev');
				nextBtn = self.find('.slide-btns .next');
				pageNo = self.find('.slide-btns .slider-page-no');
				unitCount = unit.length;
				currentno = 1;
				supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;
				msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture;
				supportsTouch = ( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch;
				showSlideBtns = function(){
					if(unitCount < 2){
						self.find('.slide-btns').hide();
					} else {
						self.find('.slide-btns').show();
					}
				}
				updatePgno = function(){
					pageNo.html(currentno+"/"+unitCount);
				}
				prev = function(){
					posX += unitLen;
					currentno = (currentno<=1)? unitCount : currentno-1;
					if( posX > 0 ){
						posX = unitLen - slotWidth;
						currentno = unitCount;
					}
					slot.css("left", posX+"px");
					updatePgno();
				}
				next = function(){
					posX -= unitLen;
					currentno = (currentno >= unitCount)? 1 : currentno+1;
					if( posX + slotWidth < unitLen ){
						posX = 0;
						currentno = 1;
					}
					slot.css("left", posX+"px");
					updatePgno();
				}
				setVar = function(){
					unitLen = slideWindow.outerWidth();
					slotWidth = unitLen * unitCount;
					slot.css({"left": 0, width: slotWidth});
					posX = 0; // slot position - left
					currentno = 1;
					unit.css({ width: unitLen});
					unitorigheight = unit.height();
					slideSlotHeight = ($(window).width() < 768) ? unitorigheight+70 : unitorigheight;
					slideWindow.css({height: slideSlotHeight});
					updatePgno();
				}
				setVar();
				showSlideBtns();
				$(window).on('resize', function(){
					setVar();
				});
				$(window).on("orientationchange",function(){
					setVar();
				});
				slideBtns.on('click', function(){
						if( $(this).hasClass('next')){ // next button
							next();
						}else if($(this).hasClass('prev')){ // prev button
							prev();
						}
				});
				if (supportsTouch) {
					$( slot ).each(function(){
						outfitSlide($( this ));
					});
				}
			});
		},

		showMore: function(){
			var showMoreLink = $('.show-more');
			showMoreLink.on('click', function(e){
				$('.show-more-hidden').toggle();
				$(this).toggleClass('more-items');
			});
		},

		backToTop: function(){
			$('.backToTop').click(function(){
				$('html, body').animate({scrollTop : 0},800);
				return false;
			});
		},

		adInfo: function(){
			$('.info-box-link').on('click', function(e) {
				$(this).next(".info-box-content").show();
				e.preventDefault();
			});

			$('.modal-close').click(function () {
				$(this).closest('.info-box-content').hide();
			});
		},

		/**
		 *	Sticky polyfill function call
		 */
		stickyPolyfill: function(){
			var stickies = $( '#entry-details, #related-stories, .widget-sticky > div' );
			stickies.Stickyfill();
		},

		/**
		 *  Track Events on Outfits
		 */
		track_event_outfits: function() {
			// Get Outfits, Lists and Top 5 Featured Content Info
			$(".outfit article a, .widget-outfit a").on("click", function(e){
				clicked_parent = $( this ).closest(".track_event");

				if ( typeof clicked_parent != 'undefined' ) {
					clicked_event = $( clicked_parent ).data( "eventTracking" );

					if ( typeof clicked_event != 'undefined' ) {
						var split_values = clicked_event.split('|');
						Postmedia.Analytics.WidgetLink( split_values[0], split_values[1], split_values[2], split_values[3], split_values[4], split_values[5], split_values[6] );
					}
				}
			});

			// Get Widget Info
			$(".l-sidebar .widget a").on("click", function(e){
				if( $(this).parents().hasClass('widget-outfit') ) {
			        return;
			    }
				clicked_event = $( this ).attr('href');
				var sidebar = "Sidebar";
				var widget_number = $(this).closest("[class^=track_event-]").attr("class").match(/\d+/)[0];
				if( widget_number == "" ) {
			        return;
			    }
				var widget_holder = $(this).closest("[class^=track_event-]");
				var widget_title = $(widget_holder).find(".widget-title span, .cat-head span").first().text();
				widget_title = ( widget_title == "" ) ? "No title" : widget_title;
				var values = [];
				values.push( sidebar , widget_number, widget_title, clicked_event );
				Postmedia.Analytics.WidgetLink( values[0], values[1], values[2], values[3] );
			});
		},

		/**
		 *  Track Events on Site
		 */
		track_event_navigation: function() {
			// Get header, nav, breadcrabms and other nav emelemnts tracking
			$(".top-bar a, .masthead a, .nav-wrap a, .features a, .breadcrumb-list a, .l-footer a").on("click", function(e){
				if ( $(this).find("img").length > 0 ) {
		            clicked_event = $("img", this).attr('alt');
		        } else{
					clicked_event = $( this ).text();
				}
				var parents = $( this ).parents( ".track_event" );
				parents = parents.toArray().reverse();
				var values = [];
				for(var i = 0; i < parents.length; i++){
					values.push( (parents[i].getAttribute( "data-event-tracking" ) !== null ) ? parents[i].getAttribute( "data-event-tracking" ) : " " );
				}

				values.push( clicked_event );
				Postmedia.Analytics.NavigationLink( values[0], values[1] );
			});

			// Get subscription page links tracking
			$(".subscription-page-new a").on("click", function(e){
		        if ( $(this).find("img").length > 0 ) {
		            clicked_event = $("img", this).attr('alt');
		        } else{
					clicked_event = $( this ).text();
				}
				var parents = $( this ).parents( ".track_event" );
				parents = parents.toArray().reverse();
				var values = [];
				for(var i = 0; i < parents.length; i++){
					values.push( (parents[i].getAttribute( "data-event-tracking" ) !== null ) ? parents[i].getAttribute( "data-event-tracking" ) : " " );
				}
				new_values = values + " - " + clicked_event;
				Postmedia.Analytics.Subscription( values );
			});
		},
		/**
		 *  Track Events on Social Link
		 */
		track_event_socialLink: function() {
			var location = '',
				socialtype = 'Postmedia.Analytics.SocialTypes.';

			$("#breakingnews-social a").on("click", function(e){
				location = "Breaking News Alert";
				clicked_event = $( this ).attr('title');
				data_socialLinks(clicked_event, location);
			});
			$(".outfit .pullquote a").on("click", function(e){
				location = "Breaking News Outfit";
				clicked_event = $( this ).attr('title');
				data_socialLinks(clicked_event, location);
			});

			function data_socialLinks(type, src){
				if ( typeof type != 'undefined' ) {
					socialtype = socialtype + process_socialLinks(type);
					Postmedia.Analytics.SocialLink(socialtype,src);
				}
			}

			function process_socialLinks(type){
				switch (type) {
					case "facebook":
						return "FACEBOOK_SHARE";
						break;
					case "twitter":
						return "TWITTER_TWEET";
						break;
					case "tumblr":
						return "TUMBLR_SHARE";
						break;
					case "pinterest":
						return "PINEREST_PIN";
						break;
					case "google-plus":
						return "GOOGLE_SHARE";
						break;
					case "reddit":
						return "REDDIT_SHARE";
						break;
					case "linkedin":
						return "LINKEDIN_SHARE";
						break;
					case "email":
						return "EMAIL";
						break;
					default:
						return "";
						break;
				}
			}
		},

		/**
		 * Tracking users with Klangoo
		*/
		klangoo_tracking: function() {
			var _magnetQ = _magnetQ || [];
			if ( localStorage && localStorage.getItem( 'janrainCaptureToken' ) ) {
				// Logged in to Janrain
				profileData = JSON.parse(localStorage.getItem('janrainCaptureProfileData'));
				if ( profileData ) {
					_magnetQ.push(['userid', profileData.uuid]);
				}
			}
		}
	}
	App.init();
})(jQuery);
;
