PageSourceSearch

https://kdd.org/js/functions.js

js kdd.org collected 2026-09-24 07:52:21 UTC 82,927 bytes, 2,403 lines download raw bytes

1var $ = jQuery.noConflict();
2
3$.fn.inlineStyle = function (prop) {
4	return this.prop("style")[$.camelCase(prop)];
5};
6
7$.fn.doOnce = function( func ) {
8	this.length && func.apply( this );
9	return this;
10}
11
12$.extend($.infinitescroll.prototype,{
13	_setup_portfolioinfiniteitemsloader: function infscr_setup_portfolioinfiniteitemsloader() {
14		var opts = this.options,
15			instance = this;
16		// Bind nextSelector link to retrieve
17		$(opts.nextSelector).click(function(e) {
18			if (e.which == 1 && !e.metaKey && !e.shiftKey) {
19				e.preventDefault();
20				instance.retrieve();
21			}
22		});
23		// Define loadingStart to never hide pager
24		instance.options.loading.start = function (opts) {
25			opts.loading.msg
26				.appendTo(opts.loading.selector)
27				.show(opts.loading.speed, function () {
28					instance.beginAjax(opts);
29				});
30		}
31	},
32	_showdonemsg_portfolioinfiniteitemsloader: function infscr_showdonemsg_portfolioinfiniteitemsloader () {
33		var opts = this.options,
34			instance = this;
35		//Do all the usual stuff
36		opts.loading.msg
37			.find('img')
38			.hide()
39			.parent()
40			.find('div').html(opts.loading.finishedMsg).animate({ opacity: 1 }, 2000, function () {
41				$(this).parent().fadeOut('normal');
42			});
43		//And also hide the navSelector
44		$(opts.navSelector).fadeOut('normal');
45		// user provided callback when done
46		opts.errorCallback.call($(opts.contentSelector)[0],'done');
47	}
48});
49
50(function() {
51	var lastTime = 0;
52	var vendors = ['ms', 'moz', 'webkit', 'o'];
53	for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
54		window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
55		window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
56									|| window[vendors[x]+'CancelRequestAnimationFrame'];
57	}
58
59	if (!window.requestAnimationFrame)
60		window.requestAnimationFrame = function(callback, element) {
61			var currTime = new Date().getTime();
62			var timeToCall = Math.max(0, 16 - (currTime - lastTime));
63			var id = window.setTimeout(function() { callback(currTime + timeToCall); },
64			  timeToCall);
65			lastTime = currTime + timeToCall;
66			return id;
67		};
68
69	if (!window.cancelAnimationFrame)
70		window.cancelAnimationFrame = function(id) {
71			clearTimeout(id);
72		};
73}());
74
75
76
77function debounce(func, wait, immediate) {
78	var timeout, args, context, timestamp, result;
79	return function() {
80		context = this;
81		args = arguments;
82		timestamp = new Date();
83		var later = function() {
84			var last = (new Date()) - timestamp;
85			if (last < wait) {
86				timeout = setTimeout(later, wait - last);
87			} else {
88				timeout = null;
89				if (!immediate) result = func.apply(context, args);
90			}
91		};
92		var callNow = immediate && !timeout;
93		if (!timeout) {
94			timeout = setTimeout(later, wait);
95		}
96		if (callNow) result = func.apply(context, args);
97		return result;
98	};
99}
100
101
102var requesting = false;
103
104var killRequesting = debounce(function () {
105	requesting = false;
106}, 100);
107
108function onScrollSliderParallax() {
109	if (!requesting) {
110		requesting = true;
111		requestAnimationFrame(function(){
112			SEMICOLON.slider.sliderParallax();
113			SEMICOLON.slider.sliderElementsFade();
114		});
115	}
116	killRequesting();
117}
118
119
120
121var SEMICOLON = SEMICOLON || {};
122
123(function($){
124
125	// USE STRICT
126	"use strict";
127
128	SEMICOLON.initialize = {
129
130		init: function(){
131
132			SEMICOLON.initialize.responsiveClasses();
133			SEMICOLON.initialize.imagePreload( '.portfolio-item:not(:has(.fslider)) img' );
134			SEMICOLON.initialize.stickyElements();
135			SEMICOLON.initialize.goToTop();
136			SEMICOLON.initialize.fullScreen();
137			SEMICOLON.initialize.verticalMiddle();
138			SEMICOLON.initialize.lightbox();
139			SEMICOLON.initialize.resizeVideos();
140			SEMICOLON.initialize.imageFade();
141			SEMICOLON.initialize.pageTransition();
142			SEMICOLON.initialize.dataStyles();
143			SEMICOLON.initialize.dataResponsiveHeights();
144
145			$('.fslider').addClass('preloader2');
146
147		},
148
149		responsiveClasses: function(){
150			var jRes = jRespond([
151				{
152					label: 'smallest',
153					enter: 0,
154					exit: 479
155				},{
156					label: 'handheld',
157					enter: 480,
158					exit: 767
159				},{
160					label: 'tablet',
161					enter: 768,
162					exit: 991
163				},{
164					label: 'laptop',
165					enter: 992,
166					exit: 1199
167				},{
168					label: 'desktop',
169					enter: 1200,
170					exit: 10000
171				}
172			]);
173			jRes.addFunc([
174				{
175					breakpoint: 'desktop',
176					enter: function() { $body.addClass('device-lg'); },
177					exit: function() { $body.removeClass('device-lg'); }
178				},{
179					breakpoint: 'laptop',
180					enter: function() { $body.addClass('device-md'); },
181					exit: function() { $body.removeClass('device-md'); }
182				},{
183					breakpoint: 'tablet',
184					enter: function() { $body.addClass('device-sm'); },
185					exit: function() { $body.removeClass('device-sm'); }
186				},{
187					breakpoint: 'handheld',
188					enter: function() { $body.addClass('device-xs'); },
189					exit: function() { $body.removeClass('device-xs'); }
190				},{
191					breakpoint: 'smallest',
192					enter: function() { $body.addClass('device-xxs'); },
193					exit: function() { $body.removeClass('device-xxs'); }
194				}
195			]);
196		},
197
198		imagePreload: function(selector, parameters){
199			var params = {
200				delay: 250,
201				transition: 400,
202				easing: 'linear'
203			};
204			$.extend(params, parameters);
205
206			$(selector).each(function() {
207				var image = $(this);
208				image.css({visibility:'hidden', opacity: 0, display:'block'});
209				image.wrap('<span class="preloader" />');
210				image.one("load", function(evt) {
211					$(this).delay(params.delay).css({visibility:'visible'}).animate({opacity: 1}, params.transition, params.easing, function() {
212						$(this).unwrap('<span class="preloader" />');
213					});
214				}).each(function() {
215					if(this.complete) $(this).trigger("load");
216				});
217			});
218		},
219
220		verticalMiddle: function(){
221			if( $verticalMiddleEl.length > 0 ) {
222				$verticalMiddleEl.each( function(){
223					var element = $(this),
224						verticalMiddleH = element.outerHeight(),
225						headerHeight = $header.outerHeight();
226
227					if( element.parents('#slider').length > 0 && !element.hasClass('ignore-header') ) {
228						if( $header.hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
229							verticalMiddleH = verticalMiddleH - 70;
230							if( $slider.next('#header').length > 0 ) { verticalMiddleH = verticalMiddleH + headerHeight; }
231						}
232					}
233
234					if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
235						if( element.parents('.full-screen').length && !element.parents('.force-full-screen').length ){
236							element.css({ position: 'relative', top: '0', width: 'auto', marginTop: '0', padding: '60px 0' }).addClass('clearfix');
237						} else {
238							element.css({ position: 'absolute', top: '50%', width: '100%', marginTop: -(verticalMiddleH/2)+'px' });
239						}
240					} else {
241						element.css({ position: 'absolute', top: '50%', width: '100%', marginTop: -(verticalMiddleH/2)+'px' });
242					}
243				});
244			}
245		},
246
247		stickyElements: function(){
248			if( $siStickyEl.length > 0 ) {
249				var siStickyH = $siStickyEl.outerHeight();
250				$siStickyEl.css({ marginTop: -(siStickyH/2)+'px' });
251			}
252
253			if( $dotsMenuEl.length > 0 ) {
254				var opmdStickyH = $dotsMenuEl.outerHeight();
255				$dotsMenuEl.css({ marginTop: -(opmdStickyH/2)+'px' });
256			}
257		},
258
259		goToTop: function(){
260			$goToTopEl.click(function() {
261				$('body,html').stop(true).animate({scrollTop:0},400);
262				return false;
263			});
264		},
265
266		goToTopScroll: function(){
267			if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ) {
268				if($window.scrollTop() > 450) {
269					$goToTopEl.fadeIn();
270				} else {
271					$goToTopEl.fadeOut();
272				}
273			}
274		},
275
276		fullScreen: function(){
277			if( $fullScreenEl.length > 0 ) {
278				$fullScreenEl.each( function(){
279					var element = $(this),
280						scrHeight = $window.height();
281					if( element.attr('id') == 'slider' ) {
282						var sliderHeightOff = $slider.offset().top;
283						scrHeight = scrHeight - sliderHeightOff;
284						if( element.hasClass('slider-parallax') ) {
285							var transformVal = element.css('transform'),
286								transformX = transformVal.match(/-?[\d\.]+/g);
287							if( !transformX ) { var transformXvalue = 0; } else { var transformXvalue = transformX[5]; }
288							scrHeight = ( $window.height() + Number( transformXvalue ) ) - sliderHeightOff;
289						}
290						if( $('#slider.with-header').next('#header:not(.transparent-header)').length > 0 && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
291							var headerHeightOff = $header.outerHeight();
292							scrHeight = scrHeight - headerHeightOff;
293						}
294					}
295					if( element.parents('.full-screen').length > 0 ) { scrHeight = element.parents('.full-screen').height(); }
296
297					if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
298						if( !element.hasClass('force-full-screen') ){ scrHeight = 'auto'; }
299					}
300
301					element.css('height', scrHeight);
302					if( element.attr('id') == 'slider' && !element.hasClass('canvas-slider-grid') ) { if( element.has('.swiper-slide') ) { element.find('.swiper-slide').css('height', scrHeight); } }
303				});
304			}
305		},
306
307		maxHeight: function(){
308			if( $commonHeightEl.length > 0 ) {
309				$commonHeightEl.each( function(){
310					var element = $(this);
311					if( element.has('.common-height') ) {
312						SEMICOLON.initialize.commonHeight( element.find('.common-height') );
313					}
314
315					SEMICOLON.initialize.commonHeight( element );
316				});
317			}
318		},
319
320		commonHeight: function( element ){
321			var maxHeight = 0;
322			element.children('[class^=col-]').each(function() {
323				var element = $(this).children('div');
324				if( element.hasClass('max-height') ){
325					maxHeight = element.outerHeight();
326				} else {
327					if (element.outerHeight() > maxHeight)
328					maxHeight = element.outerHeight();
329				}
330			});
331
332			element.children('[class^=col-]').each(function() {
333				$(this).height(maxHeight);
334			});
335		},
336
337		testimonialsGrid: function(){
338			if( $testimonialsGridEl.length > 0 ) {
339				if( $body.hasClass('device-sm') || $body.hasClass('device-md') || $body.hasClass('device-lg') ) {
340					var maxHeight = 0;
341					$testimonialsGridEl.each( function(){
342						$(this).find("li > .testimonial").each(function(){
343						   if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
344						});
345						$(this).find("li").height(maxHeight);
346						maxHeight = 0;
347					});
348				} else {
349					$testimonialsGridEl.find("li").css({ 'height': 'auto' });
350				}
351			}
352		},
353
354		lightbox: function(){
355			var $lightboxImageEl = $('[data-lightbox="image"]'),
356				$lightboxGalleryEl = $('[data-lightbox="gallery"]'),
357				$lightboxIframeEl = $('[data-lightbox="iframe"]'),
358				$lightboxAjaxEl = $('[data-lightbox="ajax"]'),
359				$lightboxAjaxGalleryEl = $('[data-lightbox="ajax-gallery"]');
360
361			if( $lightboxImageEl.length > 0 ) {
362				$lightboxImageEl.magnificPopup({
363					type: 'image',
364					closeOnContentClick: true,
365					closeBtnInside: false,
366					fixedContentPos: true,
367					mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side
368					image: {
369						verticalFit: true
370					}
371				});
372			}
373
374			if( $lightboxGalleryEl.length > 0 ) {
375				$lightboxGalleryEl.each(function() {
376					var element = $(this);
377
378					if( element.find('a[data-lightbox="gallery-item"]').parent('.clone').hasClass('clone') ) {
379						element.find('a[data-lightbox="gallery-item"]').parent('.clone').find('a[data-lightbox="gallery-item"]').attr('data-lightbox','');
380					}
381
382					element.magnificPopup({
383						delegate: 'a[data-lightbox="gallery-item"]',
384						type: 'image',
385						closeOnContentClick: true,
386						closeBtnInside: false,
387						fixedContentPos: true,
388						mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side
389						image: {
390							verticalFit: true
391						},
392						gallery: {
393							enabled: true,
394							navigateByImgClick: true,
395							preload: [0,1] // Will preload 0 - before current, and 1 after the current image
396						}
397					});
398				});
399			}
400
401			if( $lightboxIframeEl.length > 0 ) {
402				$lightboxIframeEl.magnificPopup({
403					disableOn: 600,
404					type: 'iframe',
405					removalDelay: 160,
406					preloader: false,
407					fixedContentPos: false
408				});
409			}
410
411			if( $lightboxAjaxEl.length > 0 ) {
412				$lightboxAjaxEl.magnificPopup({
413					type: 'ajax',
414					closeBtnInside: false,
415					callbacks: {
416						ajaxContentAdded: function(mfpResponse) {
417							SEMICOLON.widget.loadFlexSlider();
418							SEMICOLON.initialize.resizeVideos();
419							SEMICOLON.widget.masonryThumbs();
420						},
421						open: function() {
422							$body.addClass('ohidden');
423						},
424						close: function() {
425							$body.removeClass('ohidden');
426						}
427					}
428				});
429			}
430
431			if( $lightboxAjaxGalleryEl.length > 0 ) {
432				$lightboxAjaxGalleryEl.magnificPopup({
433					delegate: 'a[data-lightbox="ajax-gallery-item"]',
434					type: 'ajax',
435					closeBtnInside: false,
436					gallery: {
437						enabled: true,
438						preload: 0,
439						navigateByImgClick: false
440					},
441					callbacks: {
442						ajaxContentAdded: function(mfpResponse) {
443							SEMICOLON.widget.loadFlexSlider();
444							SEMICOLON.initialize.resizeVideos();
445							SEMICOLON.widget.masonryThumbs();
446						},
447						open: function() {
448							$body.addClass('ohidden');
449						},
450						close: function() {
451							$body.removeClass('ohidden');
452						}
453					}
454				});
455			}
456		},
457
458		resizeVideos: function(){
459			if ( $().fitVids ) {
460				$("#content,#footer,#slider:not(.revslider-wrap),.landing-offer-media,.portfolio-ajax-modal").fitVids({
461					customSelector: "iframe[src^='http://www.dailymotion.com/embed']",
462					ignore: '.no-fv'
463				});
464			}
465		},
466
467		imageFade: function(){
468			$('.image_fade').hover( function(){
469				$(this).filter(':not(:animated)').animate({opacity: 0.8}, 400);
470			}, function() {
471				$(this).animate({opacity: 1}, 400);
472			});
473		},
474
475		blogTimelineEntries: function(){
476			$('.post-timeline.grid-2').find('.entry').each( function(){
477				var position = $(this).inlineStyle('left');
478				if( position == '0px' ) {
479					$(this).removeClass('alt');
480				} else {
481					$(this).addClass('alt');
482				}
483				$(this).find('.entry-timeline').fadeIn();
484			});
485		},
486
487		pageTransition: function(){
488			if( !$body.hasClass('no-transition') ){
489				var animationIn = $body.attr('data-animation-in'),
490					animationOut = $body.attr('data-animation-out'),
491					durationIn = $body.attr('data-speed-in'),
492					durationOut = $body.attr('data-speed-out'),
493					loaderStyle = $body.attr('data-loader'),
494					loaderColor = $body.attr('data-loader-color'),
495					loaderStyleHtml = '<div class="css3-spinner-bounce1"></div><div class="css3-spinner-bounce2"></div><div class="css3-spinner-bounce3"></div>',
496					loaderBgStyle = '',
497					loaderBorderStyle = '',
498					loaderBgClass = '',
499					loaderBorderClass = '',
500					loaderBgClass2 = '',
501					loaderBorderClass2 = '';
502
503				if( !animationIn ) { animationIn = 'fadeIn'; }
504				if( !animationOut ) { animationOut = 'fadeOut'; }
505				if( !durationIn ) { durationIn = 1500; }
506				if( !durationOut ) { durationOut = 800; }
507
508				if( loaderColor ) {
509					if( loaderColor == 'theme' ) {
510						loaderBgClass = ' bgcolor';
511						loaderBorderClass = ' border-color';
512						loaderBgClass2 = ' class="bgcolor"';
513						loaderBorderClass2 = ' class="border-color"';
514					} else {
515						loaderBgStyle = ' style="background-color:'+ loaderColor +';"';
516						loaderBorderStyle = ' style="border-color:'+ loaderColor +';"';
517					}
518					loaderStyleHtml = '<div class="css3-spinner-bounce1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-bounce2'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-bounce3'+ loaderBgClass +'"'+ loaderBgStyle +'></div>'
519				}
520
521				if( loaderStyle == '2' ) {
522					loaderStyleHtml = '<div class="css3-spinner-flipper'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
523				} else if( loaderStyle == '3' ) {
524					loaderStyleHtml = '<div class="css3-spinner-double-bounce1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-double-bounce2'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
525				} else if( loaderStyle == '4' ) {
526					loaderStyleHtml = '<div class="css3-spinner-rect1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-rect2'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-rect3'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-rect4'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-rect5'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
527				} else if( loaderStyle == '5' ) {
528					loaderStyleHtml = '<div class="css3-spinner-cube1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-cube2'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
529				} else if( loaderStyle == '6' ) {
530					loaderStyleHtml = '<div class="css3-spinner-scaler'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
531				} else if( loaderStyle == '7' ) {
532					loaderStyleHtml = '<div class="css3-spinner-grid-pulse"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
533				} else if( loaderStyle == '8' ) {
534					loaderStyleHtml = '<div class="css3-spinner-clip-rotate"><div'+ loaderBorderClass2 + loaderBorderStyle +'></div></div>';
535				} else if( loaderStyle == '9' ) {
536					loaderStyleHtml = '<div class="css3-spinner-ball-rotate"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
537				} else if( loaderStyle == '10' ) {
538					loaderStyleHtml = '<div class="css3-spinner-zig-zag"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
539				} else if( loaderStyle == '11' ) {
540					loaderStyleHtml = '<div class="css3-spinner-triangle-path"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
541				} else if( loaderStyle == '12' ) {
542					loaderStyleHtml = '<div class="css3-spinner-ball-scale-multiple"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
543				} else if( loaderStyle == '13' ) {
544					loaderStyleHtml = '<div class="css3-spinner-ball-pulse-sync"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
545				} else if( loaderStyle == '14' ) {
546					loaderStyleHtml = '<div class="css3-spinner-scale-ripple"><div'+ loaderBorderClass2 + loaderBorderStyle +'></div><div'+ loaderBorderClass2 + loaderBorderStyle +'></div><div'+ loaderBorderClass2 + loaderBorderStyle +'></div></div>';
547				}
548
549				$wrapper.animsition({
550					inClass : animationIn,
551					outClass : animationOut,
552					inDuration : Number(durationIn),
553					outDuration : Number(durationOut),
554					linkElement : '#primary-menu ul li a:not([target="_blank"]):not([href^=#])',
555					loading : true,
556					loadingParentElement : 'body',
557					loadingClass : 'css3-spinner',
558					loadingHtml : loaderStyleHtml,
559					unSupportCss : [
560									 'animation-duration',
561									 '-webkit-animation-duration',
562									 '-o-animation-duration'
563								   ],
564					overlay : false,
565					overlayClass : 'animsition-overlay-slide',
566					overlayParentElement : 'body'
567				});
568			}
569		},
570
571		topScrollOffset: function() {
572			var topOffsetScroll = 0;
573
574			if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
575				if( $header.hasClass('sticky-header') ) {
576					if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 100; } else { topOffsetScroll = 144; }
577				} else {
578					if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 140; } else { topOffsetScroll = 184; }
579				}
580
581				if( !$pagemenu.length ) {
582					if( $header.hasClass('sticky-header') ) { topOffsetScroll = 100; } else { topOffsetScroll = 140; }
583				}
584			} else {
585				topOffsetScroll = 40;
586			}
587
588			return topOffsetScroll;
589		},
590
591		defineColumns: function( element ){
592			var column = 4;
593
594			if( element.hasClass('portfolio-full') ) {
595				if( element.hasClass('portfolio-3') ) column = 3;
596				else if( element.hasClass('portfolio-5') ) column = 5;
597				else if( element.hasClass('portfolio-6') ) column = 6;
598				else column = 4;
599
600				if( $body.hasClass('device-sm') && ( column == 4 || column == 5 || column == 6 ) ) {
601					column = 3;
602				} else if( $body.hasClass('device-xs') && ( column == 3 || column == 4 || column == 5 || column == 6 ) ) {
603					column = 2;
604				} else if( $body.hasClass('device-xxs') ) {
605					column = 1;
606				}
607			} else if( element.hasClass('masonry-thumbs') ) {
608
609				var lgCol = element.attr('data-lg-col'),
610					mdCol = element.attr('data-md-col'),
611					smCol = element.attr('data-sm-col'),
612					xsCol = element.attr('data-xs-col'),
613					xxsCol = element.attr('data-xxs-col');
614
615				if( element.hasClass('col-2') ) column = 2;
616				else if( element.hasClass('col-3') ) column = 3;
617				else if( element.hasClass('col-5') ) column = 5;
618				else if( element.hasClass('col-6') ) column = 6;
619				else column = 4;
620
621				if( $body.hasClass('device-lg') ) {
622					if( lgCol ) { column = Number(lgCol); }
623				} else if( $body.hasClass('device-md') ) {
624					if( mdCol ) { column = Number(mdCol); }
625				} else if( $body.hasClass('device-sm') ) {
626					if( smCol ) { column = Number(smCol); }
627				} else if( $body.hasClass('device-xs') ) {
628					if( xsCol ) { column = Number(xsCol); }
629				} else if( $body.hasClass('device-xxs') ) {
630					if( xxsCol ) { column = Number(xxsCol); }
631				}
632
633			}
634
635			return column;
636		},
637
638		setFullColumnWidth: function( element ){
639
640			if( element.hasClass('portfolio-full') ) {
641				var columns = SEMICOLON.initialize.defineColumns( element );
642				var containerWidth = element.width();
643				if( containerWidth == ( Math.floor(containerWidth/columns) * columns ) ) { containerWidth = containerWidth - 1; }
644				var postWidth = Math.floor(containerWidth/columns);
645				if( $body.hasClass('device-xxs') ) { var deviceSmallest = 1; } else { var deviceSmallest = 0; }
646				element.find(".portfolio-item").each(function(index){
647					if( deviceSmallest == 0 && $(this).hasClass('wide') ) { var elementSize = ( postWidth*2 ); } else { var elementSize = postWidth; }
648					$(this).css({"width":elementSize+"px"});
649				});
650			} else if( element.hasClass('masonry-thumbs') ) {
651				var columns = SEMICOLON.initialize.defineColumns( element ),
652					containerWidth = element.innerWidth(),
653					windowWidth = $window.width();
654				if( containerWidth == windowWidth ){
655					containerWidth = windowWidth*1.004;
656					element.css({ 'width': containerWidth+'px' });
657				}
658				var postWidth = (containerWidth/columns);
659
660				postWidth = Math.floor(postWidth);
661
662				if( ( postWidth * columns ) >= containerWidth ) { element.css({ 'margin-right': '-1px' }); }
663
664				element.children('a').css({"width":postWidth+"px"});
665
666				var firstElementWidth = element.find('a:eq(0)').outerWidth();
667
668				element.isotope({
669					masonry: {
670						columnWidth: firstElementWidth
671					}
672				});
673
674				var bigImageNumbers = element.attr('data-big');
675				if( bigImageNumbers ) {
676					bigImageNumbers = bigImageNumbers.split(",");
677					var bigImageNumber = '',
678						bigi = '';
679					for( bigi = 0; bigi < bigImageNumbers.length; bigi++ ){
680						bigImageNumber = Number(bigImageNumbers[bigi]) - 1;
681						element.find('a:eq('+bigImageNumber+')').css({ width: firstElementWidth*2 + 'px' });
682					}
683					var t = setTimeout( function(){
684						element.isotope('layout');
685					}, 1000 );
686				}
687			}
688
689		},
690
691		aspectResizer: function(){
692			var $aspectResizerEl = $('.aspect-resizer');
693			if( $aspectResizerEl.length > 0 ) {
694				$aspectResizerEl.each( function(){
695					var element = $(this),
696						elementW = element.inlineStyle('width'),
697						elementH = element.inlineStyle('height'),
698						elementPW = element.parent().innerWidth();
699				});
700			}
701		},
702
703		dataStyles: function(){
704			var $dataStyleXxs = $('[data-style-xxs]'),
705				$dataStyleXs = $('[data-style-xs]'),
706				$dataStyleSm = $('[data-style-sm]'),
707				$dataStyleMd = $('[data-style-md]'),
708				$dataStyleLg = $('[data-style-lg]');
709
710			if( $dataStyleXxs.length > 0 ) {
711				$dataStyleXxs.each( function(){
712					var element = $(this),
713						elementStyle = element.attr('data-style-xxs');
714
715					if( $body.hasClass('device-xxs') ) {
716						if( elementStyle != '' ) { element.attr( 'style', elementStyle ); }
717					}
718				});
719			}
720
721			if( $dataStyleXs.length > 0 ) {
722				$dataStyleXs.each( function(){
723					var element = $(this),
724						elementStyle = element.attr('data-style-xs');
725
726					if( $body.hasClass('device-xs') ) {
727						if( elementStyle != '' ) { element.attr( 'style', elementStyle ); }
728					}
729				});
730			}
731
732			if( $dataStyleSm.length > 0 ) {
733				$dataStyleSm.each( function(){
734					var element = $(this),
735						elementStyle = element.attr('data-style-sm');
736
737					if( $body.hasClass('device-sm') ) {
738						if( elementStyle != '' ) { element.attr( 'style', elementStyle ); }
739					}
740				});
741			}
742
743			if( $dataStyleMd.length > 0 ) {
744				$dataStyleMd.each( function(){
745					var element = $(this),
746						elementStyle = element.attr('data-style-md');
747
748					if( $body.hasClass('device-md') ) {
749						if( elementStyle != '' ) { element.attr( 'style', elementStyle ); }
750					}
751				});
752			}
753
754			if( $dataStyleLg.length > 0 ) {
755				$dataStyleLg.each( function(){
756					var element = $(this),
757						elementStyle = element.attr('data-style-lg');
758
759					if( $body.hasClass('device-lg') ) {
760						if( elementStyle != '' ) { element.attr( 'style', elementStyle ); }
761					}
762				});
763			}
764		},
765
766		dataResponsiveHeights: function(){
767			var $dataHeightXxs = $('[data-height-xxs]'),
768				$dataHeightXs = $('[data-height-xs]'),
769				$dataHeightSm = $('[data-height-sm]'),
770				$dataHeightMd = $('[data-height-md]'),
771				$dataHeightLg = $('[data-height-lg]');
772
773			if( $dataHeightXxs.length > 0 ) {
774				$dataHeightXxs.each( function(){
775					var element = $(this),
776						elementHeight = element.attr('data-height-xxs');
777
778					if( $body.hasClass('device-xxs') ) {
779						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
780					}
781				});
782			}
783
784			if( $dataHeightXs.length > 0 ) {
785				$dataHeightXs.each( function(){
786					var element = $(this),
787						elementHeight = element.attr('data-height-xs');
788
789					if( $body.hasClass('device-xs') ) {
790						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
791					}
792				});
793			}
794
795			if( $dataHeightSm.length > 0 ) {
796				$dataHeightSm.each( function(){
797					var element = $(this),
798						elementHeight = element.attr('data-height-sm');
799
800					if( $body.hasClass('device-sm') ) {
801						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
802					}
803				});
804			}
805
806			if( $dataHeightMd.length > 0 ) {
807				$dataHeightMd.each( function(){
808					var element = $(this),
809						elementHeight = element.attr('data-height-md');
810
811					if( $body.hasClass('device-md') ) {
812						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
813					}
814				});
815			}
816
817			if( $dataHeightLg.length > 0 ) {
818				$dataHeightLg.each( function(){
819					var element = $(this),
820						elementHeight = element.attr('data-height-lg');
821
822					if( $body.hasClass('device-lg') ) {
823						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
824					}
825				});
826			}
827		},
828
829		stickFooterOnSmall: function(){
830			var windowH = $window.height(),
831				wrapperH = $wrapper.height();
832
833			if( $footer.length > 0 && $wrapper.has('#footer') ) {
834				if( windowH > wrapperH ) {
835					$footer.css({ 'margin-top': ( windowH - wrapperH ) });
836				}
837			}
838		}
839
840	};
841
842	SEMICOLON.header = {
843
844		init: function(){
845
846			SEMICOLON.header.superfish();
847			SEMICOLON.header.menufunctions();
848			SEMICOLON.header.fullWidthMenu();
849			SEMICOLON.header.overlayMenu();
850			SEMICOLON.header.stickyMenu();
851			SEMICOLON.header.sideHeader();
852			SEMICOLON.header.sidePanel();
853			SEMICOLON.header.onePageScroll();
854			SEMICOLON.header.onepageScroller();
855			SEMICOLON.header.darkLogo();
856			SEMICOLON.header.topsearch();
857			SEMICOLON.header.topcart();
858
859		},
860
861		superfish: function(){
862
863			if ( $().superfish ) {
864				if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
865					$('#primary-menu ul ul, #primary-menu ul .mega-menu-content').css('display', 'block');
866					SEMICOLON.header.menuInvert();
867				}
868
869				$('body:not(.side-header) #primary-menu > ul, body:not(.side-header) #primary-menu > div > ul,.top-links > ul').superfish({
870					popUpSelector: 'ul,.mega-menu-content,.top-link-section',
871					delay: 250,
872					speed: 350,
873					animation: {opacity:'show'},
874					animationOut:  {opacity:'hide'},
875					cssArrows: false
876				});
877
878				$('body.side-header #primary-menu > ul').superfish({
879					popUpSelector: 'ul',
880					delay: 250,
881					speed: 350,
882					animation: {opacity:'show',height:'show'},
883					animationOut:  {opacity:'hide',height:'hide'},
884					cssArrows: false
885				});
886			}
887
888		},
889
890		menuInvert: function() {
891
892			$('#primary-menu .mega-menu-content, #primary-menu ul ul').each( function( index, element ){
893				var $menuChildElement = $(element);
894				var windowWidth = $window.width();
895				var menuChildOffset = $menuChildElement.offset();
896				var menuChildWidth = $menuChildElement.width();
897				var menuChildLeft = menuChildOffset.left;
898
899				if(windowWidth - (menuChildWidth + menuChildLeft) < 0) {
900					$menuChildElement.addClass('menu-pos-invert');
901				}
902			});
903
904		},
905
906		menufunctions: function(){
907
908			$( '#primary-menu ul li:has(ul)' ).addClass('sub-menu');
909			$( '.top-links ul li:has(ul) > a' ).append( ' <i class="icon-angle-down"></i>' );
910			$( '.top-links > ul' ).addClass( 'clearfix' );
911
912			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
913				$('#primary-menu.sub-title > ul > li').hover(function() {
914					$(this).prev().css({ backgroundImage : 'none' });
915				}, function() {
916					$(this).prev().css({ backgroundImage : 'url("images/icons/menu-divider.png")' });
917				});
918
919				$('#primary-menu.sub-title').children('ul').children('.current').prev().css({ backgroundImage : 'none' });
920			}
921
922			if( SEMICOLON.isMobile.Android() ) {
923				$( '#primary-menu ul li.sub-menu' ).children('a').on('touchstart', function(e){
924					if( !$(this).parent('li.sub-menu').hasClass('sfHover') ) {
925						e.preventDefault();
926					}
927				});
928			}
929
930			if( SEMICOLON.isMobile.Windows() ) {
931				$('#primary-menu > ul, #primary-menu > div > ul,.top-links > ul').superfish('destroy').addClass('windows-mobile-menu');
932
933				$( '#primary-menu ul li:has(ul)' ).append('<a href="#" class="wn-submenu-trigger"><i class="icon-angle-down"></i></a>');
934
935				$( '#primary-menu ul li.sub-menu' ).children('a.wn-submenu-trigger').click( function(e){
936					$(this).parent().toggleClass('open');
937					$(this).parent().find('> ul, > .mega-menu-content').stop(true,true).toggle();
938					return false;
939				});
940			}
941
942		},
943
944		fullWidthMenu: function(){
945			if( $body.hasClass('stretched') ) {
946				if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); }
947				if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 60 }); }
948			} else {
949				if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); }
950				if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 80 }); }
951			}
952		},
953
954		overlayMenu: function(){
955			if( $body.hasClass('overlay-menu') ) {
956				var overlayMenuItem = $('#primary-menu').children('ul').children('li'),
957					overlayMenuItemHeight = overlayMenuItem.outerHeight(),
958					overlayMenuItemTHeight = overlayMenuItem.length * overlayMenuItemHeight,
959					firstItemOffset = ( $window.height() - overlayMenuItemTHeight ) / 2;
960
961				$('#primary-menu').children('ul').children('li:first-child').css({ 'margin-top': firstItemOffset+'px' });
962			}
963		},
964
965		stickyMenu: function( headerOffset ){
966			if ($window.scrollTop() > headerOffset) {
967				if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
968					$('body:not(.side-header) #header:not(.no-sticky)').addClass('sticky-header');
969					$('#page-menu:not(.dots-menu,.no-sticky)').addClass('sticky-page-menu');
970					if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
971					SEMICOLON.header.stickyMenuClass();
972				} else if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) {
973					if( $body.hasClass('sticky-responsive-menu') ) {
974						$('#header:not(.no-sticky)').addClass('responsive-sticky-header');
975						SEMICOLON.header.stickyMenuClass();
976					}
977				}
978			} else {
979				SEMICOLON.header.removeStickyness();
980			}
981		},
982
983		removeStickyness: function(){
984			if( $header.hasClass('sticky-header') ){
985				$('body:not(.side-header) #header:not(.no-sticky)').removeClass('sticky-header');
986				$header.removeClass().addClass(oldHeaderClasses);
987				$headerWrap.removeClass().addClass(oldHeaderWrapClasses);
988				if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
989				SEMICOLON.slider.swiperSliderMenu();
990				SEMICOLON.slider.revolutionSliderMenu();
991			}
992			if( $pagemenu.hasClass('sticky-page-menu') ){
993				$('#page-menu:not(.dots-menu,.no-sticky)').removeClass('sticky-page-menu');
994			}
995			if( $header.hasClass('responsive-sticky-header') ){
996				$('body.sticky-responsive-menu #header').removeClass('responsive-sticky-header');
997			}
998			if( ( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) && ( typeof responsiveMenuClasses === 'undefined' ) ) {
999				$header.removeClass().addClass(oldHeaderClasses);
1000				$headerWrap.removeClass().addClass(oldHeaderWrapClasses);
1001				if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
1002			}
1003		},
1004
1005		sideHeader: function(){
1006			$("#header-trigger").click(function(){
1007				$('body.open-header').toggleClass("side-header-open");
1008				return false;
1009			});
1010		},
1011
1012		sidePanel: function(){
1013			$(".side-panel-trigger").click(function(){
1014				$body.toggleClass("side-panel-open");
1015				if( $body.hasClass('device-touch') ) {
1016					$body.toggleClass("ohidden");
1017				}
1018				return false;
1019			});
1020		},
1021
1022		onePageScroll: function(){
1023			if( $onePageMenuEl.length > 0 ){
1024				var onePageSpeed = $onePageMenuEl.attr('data-speed'),
1025					onePageOffset = $onePageMenuEl.attr('data-offset'),
1026					onePageEasing = $onePageMenuEl.attr('data-easing');
1027
1028				if( !onePageSpeed ) { onePageSpeed = 1000; }
1029				if( !onePageEasing ) { onePageEasing = 'easeOutQuad'; }
1030
1031				$onePageMenuEl.find('a[data-href]').click(function(){
1032					var element = $(this),
1033						divScrollToAnchor = element.attr('data-href'),
1034						divScrollSpeed = element.attr('data-speed'),
1035						divScrollOffset = element.attr('data-offset'),
1036						divScrollEasing = element.attr('data-easing');
1037
1038					if( $( divScrollToAnchor ).length > 0 ) {
1039
1040						if( !onePageOffset ) {
1041							var onePageOffsetG = SEMICOLON.initialize.topScrollOffset();
1042						} else {
1043							var onePageOffsetG = onePageOffset;
1044						}
1045
1046						if( !divScrollSpeed ) { divScrollSpeed = onePageSpeed; }
1047						if( !divScrollOffset ) { divScrollOffset = onePageOffsetG; }
1048						if( !divScrollEasing ) { divScrollEasing = onePageEasing; }
1049
1050						if( $onePageMenuEl.hasClass('no-offset') ) { divScrollOffset = 0; }
1051
1052						onePageGlobalOffset = Number(divScrollOffset);
1053
1054						$onePageMenuEl.find('li').removeClass('current');
1055						$onePageMenuEl.find('a[data-href="' + divScrollToAnchor + '"]').parent('li').addClass('current');
1056
1057						$('#primary-menu > ul, #primary-menu > .container > ul').toggleClass('show', function() {
1058							$('html,body').stop(true).animate({
1059								'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset)
1060							}, Number(divScrollSpeed), divScrollEasing);
1061						}, false);
1062
1063						onePageGlobalOffset = Number(divScrollOffset);
1064					}
1065
1066					return false;
1067				});
1068			}
1069		},
1070
1071		onepageScroller: function(){
1072			$onePageMenuEl.find('li').removeClass('current');
1073			$onePageMenuEl.find('a[data-href="#' + SEMICOLON.header.onePageCurrentSection() + '"]').parent('li').addClass('current');
1074		},
1075
1076		onePageCurrentSection: function(){
1077			var currentOnePageSection = 'home';
1078
1079			$pageSectionEl.each(function(index) {
1080				var h = $(this).offset().top;
1081				var y = $window.scrollTop();
1082
1083				var offsetScroll = 100 + onePageGlobalOffset;
1084
1085				if( y + offsetScroll >= h && y < h + $(this).height() && $(this).attr('id') != currentOnePageSection ) {
1086					currentOnePageSection = $(this).attr('id');
1087				}
1088			});
1089
1090			return currentOnePageSection;
1091		},
1092
1093		darkLogo: function(){
1094			if( ( $header.hasClass('dark') || $body.hasClass('dark') ) && !$headerWrap.hasClass('not-dark') ) {
1095				if( defaultDarkLogo ){ defaultLogo.find('img').attr('src', defaultDarkLogo); }
1096				if( retinaDarkLogo ){ retinaLogo.find('img').attr('src', retinaDarkLogo); }
1097			} else {
1098				if( defaultLogoImg ){ defaultLogo.find('img').attr('src', defaultLogoImg); }
1099				if( retinaLogoImg ){ retinaLogo.find('img').attr('src', retinaLogoImg); }
1100			}
1101		},
1102
1103		stickyMenuClass: function(){
1104			if( stickyMenuClasses ) { var newClassesArray = stickyMenuClasses.split(/ +/); } else { var newClassesArray = ''; }
1105			var noOfNewClasses = newClassesArray.length;
1106
1107			if( noOfNewClasses > 0 ) {
1108				var i = 0;
1109				for( i=0; i<noOfNewClasses; i++ ) {
1110					if( newClassesArray[i] == 'not-dark' ) {
1111						$header.removeClass('dark');
1112						$headerWrap.addClass('not-dark');
1113					} else if( newClassesArray[i] == 'dark' ) {
1114						$headerWrap.removeClass('not-dark force-not-dark');
1115						if( !$header.hasClass( newClassesArray[i] ) ) {
1116							$header.addClass( newClassesArray[i] );
1117						}
1118					} else if( !$header.hasClass( newClassesArray[i] ) ) {
1119						$header.addClass( newClassesArray[i] );
1120					}
1121				}
1122			}
1123		},
1124
1125		responsiveMenuClass: function(){
1126			if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ){
1127				if( responsiveMenuClasses ) { var newClassesArray = responsiveMenuClasses.split(/ +/); } else { var newClassesArray = ''; }
1128				var noOfNewClasses = newClassesArray.length;
1129
1130				if( noOfNewClasses > 0 ) {
1131					var i = 0;
1132					for( i=0; i<noOfNewClasses; i++ ) {
1133						if( newClassesArray[i] == 'not-dark' ) {
1134							$header.removeClass('dark');
1135							$headerWrap.addClass('not-dark');
1136						}
1136 else if( newClassesArray[i] == 'dark' ) {
1137							$headerWrap.removeClass('not-dark force-not-dark');
1138							if( !$header.hasClass( newClassesArray[i] ) ) {
1139								$header.addClass( newClassesArray[i] );
1140							}
1141						} else if( !$header.hasClass( newClassesArray[i] ) ) {
1142							$header.addClass( newClassesArray[i] );
1143						}
1144					}
1145				}
1146				SEMICOLON.header.darkLogo();
1147			}
1148		},
1149
1150		topsocial: function(){
1151			if( $topSocialEl.length > 0 ){
1152				if( $body.hasClass('device-md') || $body.hasClass('device-lg') ) {
1153					$topSocialEl.show();
1154					$topSocialEl.find('a').css({width: 40});
1155
1156					$topSocialEl.find('.ts-text').each( function(){
1157						var $clone = $(this).clone().css({'visibility': 'hidden', 'display': 'inline-block', 'font-size': '13px', 'font-weight':'bold'}).appendTo($body),
1158							cloneWidth = $clone.innerWidth() + 52;
1159						$(this).parent('a').attr('data-hover-width',cloneWidth);
1160						$clone.remove();
1161					});
1162
1163					$topSocialEl.find('a').hover(function() {
1164						if( $(this).find('.ts-text').length > 0 ) {
1165							$(this).css({width: $(this).attr('data-hover-width')});
1166						}
1167					}, function() {
1168						$(this).css({width: 40});
1169					});
1170				} else {
1171					$topSocialEl.show();
1172					$topSocialEl.find('a').css({width: 40});
1173
1174					$topSocialEl.find('a').each(function() {
1175						var topIconTitle = $(this).find('.ts-text').text();
1176						$(this).attr('title', topIconTitle);
1177					});
1178
1179					$topSocialEl.find('a').hover(function() {
1180						$(this).css({width: 40});
1181					}, function() {
1182						$(this).css({width: 40});
1183					});
1184
1185					if( $body.hasClass('device-xxs') ) {
1186						$topSocialEl.hide();
1187						$topSocialEl.slice(0, 8).show();
1188					}
1189				}
1190			}
1191		},
1192
1193		topsearch: function(){
1194
1195			$(document).on('click', function(event) {
1196				if (!$(event.target).closest('#top-search').length) { $body.toggleClass('top-search-open', false); }
1197				if (!$(event.target).closest('#top-cart').length) { $topCart.toggleClass('top-cart-open', false); }
1198				if (!$(event.target).closest('#page-menu').length) { $pagemenu.toggleClass('pagemenu-active', false); }
1199				if (!$(event.target).closest('#side-panel').length) { $body.toggleClass('side-panel-open', false); }
1200			});
1201
1202			$("#top-search-trigger").click(function(e){
1203				$body.toggleClass('top-search-open');
1204				$topCart.toggleClass('top-cart-open', false);
1205				$( '#primary-menu > ul, #primary-menu > div > ul' ).toggleClass("show", false);
1206				$pagemenu.toggleClass('pagemenu-active', false);
1207				if ($body.hasClass('top-search-open')){
1208					$topSearch.find('input').focus();
1209				}
1210				e.stopPropagation();
1211				e.preventDefault();
1212			});
1213
1214		},
1215
1216		topcart: function(){
1217
1218			$("#top-cart-trigger").click(function(e){
1219				$pagemenu.toggleClass('pagemenu-active', false);
1220				$topCart.toggleClass('top-cart-open');
1221				e.stopPropagation();
1222				e.preventDefault();
1223			});
1224
1225		}
1226
1227	};
1228
1229	SEMICOLON.slider = {
1230
1231		init: function() {
1232
1233			SEMICOLON.slider.sliderParallax();
1234			SEMICOLON.slider.sliderElementsFade();
1235			SEMICOLON.slider.captionPosition();
1236
1237		},
1238
1239		sliderParallaxOffset: function(){
1240			var sliderParallaxOffsetTop = 0;
1241			var headerHeight = $header.outerHeight();
1242			if( $body.hasClass('side-header') || $header.hasClass('transparent-header') ) { headerHeight = 0; }
1243			if( $pageTitle.length > 0 ) {
1244				var pageTitleHeight = $pageTitle.outerHeight();
1245				sliderParallaxOffsetTop = pageTitleHeight + headerHeight;
1246			} else {
1247				sliderParallaxOffsetTop = headerHeight;
1248			}
1249
1250			if( $slider.next('#header').length > 0 ) { sliderParallaxOffsetTop = 0; }
1251
1252			return sliderParallaxOffsetTop;
1253		},
1254
1255		sliderParallax: function(){
1256			if( $sliderParallaxEl.length > 0 ) {
1257				if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
1258					var parallaxOffsetTop = SEMICOLON.slider.sliderParallaxOffset(),
1259						parallaxElHeight = $sliderParallaxEl.outerHeight();
1260
1261					if( ( parallaxElHeight + parallaxOffsetTop + 50 ) > $window.scrollTop() ){
1262						$sliderParallaxEl.find('.slider-inner').css({ 'display': 'block', 'visibility': 'visible' });
1263						if ($window.scrollTop() > parallaxOffsetTop) {
1264							var tranformAmount = (($window.scrollTop()-parallaxOffsetTop) / 1.5 ).toFixed(2);
1265							var tranformAmount2 = (($window.scrollTop()-parallaxOffsetTop) / 7 ).toFixed(2);
1266							$sliderParallaxEl.stop(true,true).transition({ y: tranformAmount },0);
1267							$('.slider-parallax .slider-caption,.ei-title').stop(true,true).transition({ y: -tranformAmount2 },0);
1268						} else {
1269							$('.slider-parallax,.slider-parallax .slider-caption,.ei-title').transition({ y: 0 },0);
1270						}
1271					} else {
1272						$sliderParallaxEl.find('.slider-inner').css({ 'display': 'none', 'visibility': 'hidden' });
1273					}
1274					if (requesting) {
1275						requestAnimationFrame(function(){
1276							SEMICOLON.slider.sliderParallax();
1277							SEMICOLON.slider.sliderElementsFade();
1278						});
1279					}
1280				} else {
1281					$('.slider-parallax,.slider-parallax .slider-caption,.ei-title').transition({ y: 0 },0);
1282				}
1283			}
1284		},
1285
1286		sliderElementsFade: function(){
1287			if( $sliderParallaxEl.length > 0 ) {
1288				if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
1289					var parallaxOffsetTop = SEMICOLON.slider.sliderParallaxOffset();
1290					if( $slider.length > 0 ) {
1291						if( $header.hasClass('transparent-header') || $('body').hasClass('side-header') ) { var tHeaderOffset = 100; } else { var tHeaderOffset = 0; }
1292						$sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity':( ( 100 + ( $slider.offset().top + parallaxOffsetTop + tHeaderOffset ) - $window.scrollTop() ) ) /90});
1293					}
1294				} else {
1295					$sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity': 1});
1296				}
1297			}
1298		},
1299
1300		captionPosition: function(){
1301			$slider.find('.slider-caption').each(function(){
1302				var scapHeight = $(this).outerHeight();
1303				var scapSliderHeight = $slider.outerHeight();
1304				if( $(this).parents('#slider').prev('#header').hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
1305					if( $(this).parents('#slider').prev('#header').hasClass('floating-header') ) {
1306						$(this).css({ top: ( scapSliderHeight + 160 - scapHeight ) / 2 + 'px' });
1307					} else {
1308						$(this).css({ top: ( scapSliderHeight + 100 - scapHeight ) / 2 + 'px' });
1309					}
1310				} else {
1311					$(this).css({ top: ( scapSliderHeight - scapHeight ) / 2 + 'px' });
1312				}
1313			});
1314		},
1315
1316		swiperSliderMenu: function(){
1317			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1318				var activeSlide = $slider.find('.swiper-slide.swiper-slide-visible');
1319				SEMICOLON.slider.headerSchemeChanger(activeSlide);
1320			}
1321		},
1322
1323		revolutionSliderMenu: function(){
1324			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1325				var activeSlide = $slider.find('.current-sr-slide-visible');
1326				SEMICOLON.slider.headerSchemeChanger(activeSlide);
1327			}
1328		},
1329
1330		headerSchemeChanger: function( activeSlide ){
1331			if( activeSlide.length > 0 ) {
1332				if( activeSlide.hasClass('dark') ){
1333					$('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').addClass('dark');
1334					$('#header.transparent-header.sticky-header,#header.transparent-header.semi-transparent.sticky-header,#header.transparent-header.floating-header.sticky-header').removeClass('dark');
1335					$headerWrap.removeClass('not-dark');
1336				} else {
1337					if( $body.hasClass('dark') ) {
1338						activeSlide.addClass('not-dark');
1339						$('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark');
1340						$('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').find('#header-wrap').addClass('not-dark');
1341					} else {
1342						$('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark');
1343						$headerWrap.removeClass('not-dark');
1344					}
1345				}
1346				SEMICOLON.header.darkLogo();
1347			}
1348		},
1349
1350		owlCaptionInit: function(){
1351			if( $owlCarouselEl.length > 0 ){
1352				$owlCarouselEl.each( function(){
1353					var element = $(this);
1354					if( element.find('.owl-dot').length > 0 ) {
1355						element.find('.owl-controls').addClass('with-carousel-dots');
1356					}
1357				});
1358			}
1359		}
1360
1361	};
1362
1363	SEMICOLON.portfolio = {
1364
1365		init: function(){
1366
1367			SEMICOLON.portfolio.ajaxload();
1368
1369		},
1370
1371		portfolioDescMargin: function(){
1372			var $portfolioOverlayEl = $('.portfolio-overlay');
1373			if( $portfolioOverlayEl.length > 0 ){
1374				$portfolioOverlayEl.each(function() {
1375					var element = $(this);
1376					if( element.find('.portfolio-desc').length > 0 ) {
1377						var portfolioOverlayHeight = element.outerHeight();
1378						var portfolioOverlayDescHeight = element.find('.portfolio-desc').outerHeight();
1379						if( element.find('a.left-icon').length > 0 || element.find('a.right-icon').length > 0 || element.find('a.center-icon').length > 0 ) {
1380							var portfolioOverlayIconHeight = 40 + 20;
1381						} else {
1382							var portfolioOverlayIconHeight = 0;
1383						}
1384						var portfolioOverlayMiddleAlign = ( portfolioOverlayHeight - portfolioOverlayDescHeight - portfolioOverlayIconHeight ) / 2
1385						element.find('.portfolio-desc').css({ 'margin-top': portfolioOverlayMiddleAlign });
1386					}
1387				});
1388			}
1389		},
1390
1391		arrange: function(){
1392			SEMICOLON.initialize.setFullColumnWidth( $portfolio );
1393			$('#portfolio.portfolio-full').isotope('layout');
1394		},
1395
1396		ajaxload: function(){
1397			$('.portfolio-ajax .portfolio-item a.center-icon').click( function(e) {
1398				var portPostId = $(this).parents('.portfolio-item').attr('id');
1399				if( !$(this).parents('.portfolio-item').hasClass('portfolio-active') ) {
1400					SEMICOLON.portfolio.loadItem(portPostId, prevPostPortId);
1401				}
1402				e.preventDefault();
1403			});
1404		},
1405
1406		newNextPrev: function( portPostId ){
1407			var portNext = SEMICOLON.portfolio.getNextItem(portPostId);
1408			var portPrev = SEMICOLON.portfolio.getPrevItem(portPostId);
1409			$('#next-portfolio').attr('data-id', portNext);
1410			$('#prev-portfolio').attr('data-id', portPrev);
1411		},
1412
1413		loadItem: function( portPostId, prevPostPortId, getIt ){
1414			if(!getIt) { getIt = false; }
1415			var portNext = SEMICOLON.portfolio.getNextItem(portPostId);
1416			var portPrev = SEMICOLON.portfolio.getPrevItem(portPostId);
1417			if(getIt == false) {
1418				SEMICOLON.portfolio.closeItem();
1419				$portfolioAjaxLoader.fadeIn();
1420				var portfolioDataLoader = $('#' + portPostId).attr('data-loader');
1421				$portfolioDetailsContainer.load(portfolioDataLoader, { portid: portPostId, portnext: portNext, portprev: portPrev },
1422				function(){
1423					SEMICOLON.portfolio.initializeAjax(portPostId);
1424					SEMICOLON.portfolio.openItem();
1425					$portfolioItems.removeClass('portfolio-active');
1426					$('#' + portPostId).addClass('portfolio-active');
1427				});
1428			}
1429		},
1430
1431		closeItem: function(){
1432			if( $portfolioDetails && $portfolioDetails.height() > 32 ) {
1433				$portfolioAjaxLoader.fadeIn();
1434				$portfolioDetails.find('#portfolio-ajax-single').fadeOut('600', function(){
1435					$(this).remove();
1436				});
1437				$portfolioDetails.removeClass('portfolio-ajax-opened');
1438			}
1439		},
1440
1441		openItem: function(){
1442			var noOfImages = $portfolioDetails.find('img').length;
1443			var noLoaded = 0;
1444
1445			if( noOfImages > 0 ) {
1446				$portfolioDetails.find('img').on('load', function(){
1447					noLoaded++;
1448					var topOffsetScroll = SEMICOLON.initialize.topScrollOffset();
1449					if(noOfImages === noLoaded) {
1450						$portfolioDetailsContainer.css({ 'display': 'block' });
1451						$portfolioDetails.addClass('portfolio-ajax-opened');
1452						$portfolioAjaxLoader.fadeOut();
1453						var t=setTimeout(function(){
1454							SEMICOLON.widget.loadFlexSlider();
1455							SEMICOLON.initialize.lightbox();
1456							SEMICOLON.initialize.resizeVideos();
1457							SEMICOLON.widget.masonryThumbs();
1458							$('html,body').stop(true).animate({
1459								'scrollTop': $portfolioDetails.offset().top - topOffsetScroll
1460							}, 900, 'easeOutQuad');
1461						},500);
1462					}
1463				});
1464			} else {
1465				var topOffsetScroll = SEMICOLON.initialize.topScrollOffset();
1466				$portfolioDetailsContainer.css({ 'display': 'block' });
1467				$portfolioDetails.addClass('portfolio-ajax-opened');
1468				$portfolioAjaxLoader.fadeOut();
1469				var t=setTimeout(function(){
1470					SEMICOLON.widget.loadFlexSlider();
1471					SEMICOLON.initialize.lightbox();
1472					SEMICOLON.initialize.resizeVideos();
1473					SEMICOLON.widget.masonryThumbs();
1474					$('html,body').stop(true).animate({
1475						'scrollTop': $portfolioDetails.offset().top - topOffsetScroll
1476					}, 900, 'easeOutQuad');
1477				},500);
1478			}
1479		},
1480
1481		getNextItem: function( portPostId ){
1482			var portNext = '';
1483			var hasNext = $('#' + portPostId).next();
1484			if(hasNext.length != 0) {
1485				portNext = hasNext.attr('id');
1486			}
1487			return portNext;
1488		},
1489
1490		getPrevItem: function( portPostId ){
1491			var portPrev = '';
1492			var hasPrev = $('#' + portPostId).prev();
1493			if(hasPrev.length != 0) {
1494				portPrev = hasPrev.attr('id');
1495			}
1496			return portPrev;
1497		},
1498
1499		initializeAjax: function( portPostId ){
1500			prevPostPortId = $('#' + portPostId);
1501
1502			$('#next-portfolio, #prev-portfolio').click( function() {
1503				var portPostId = $(this).attr('data-id');
1504				$portfolioItems.removeClass('portfolio-active');
1505				$('#' + portPostId).addClass('portfolio-active');
1506				SEMICOLON.portfolio.loadItem(portPostId,prevPostPortId);
1507				return false;
1508			});
1509
1510			$('#close-portfolio').click( function() {
1511				$portfolioDetailsContainer.fadeOut('600', function(){
1512					$portfolioDetails.find('#portfolio-ajax-single').remove();
1513				});
1514				$portfolioDetails.removeClass('portfolio-ajax-opened');
1515				$portfolioItems.removeClass('portfolio-active');
1516				return false;
1517			});
1518		}
1519
1520	};
1521
1522	SEMICOLON.widget = {
1523
1524		init: function(){
1525
1526			SEMICOLON.widget.animations();
1527			SEMICOLON.widget.youtubeBgVideo();
1528			SEMICOLON.widget.tabs();
1529			SEMICOLON.widget.tabsJustify();
1530			SEMICOLON.widget.toggles();
1531			SEMICOLON.widget.accordions();
1532			SEMICOLON.widget.counter();
1533			SEMICOLON.widget.roundedSkill();
1534			SEMICOLON.widget.progress();
1535			SEMICOLON.widget.twitterFeed();
1536			SEMICOLON.widget.flickrFeed();
1537			SEMICOLON.widget.instagramPhotos( '36286274.b9e559e.4824cbc1d0c94c23827dc4a2267a9f6b', 'b9e559ec7c284375bf41e9a9fb72ae01' );
1538			SEMICOLON.widget.dribbbleShots();
1539			SEMICOLON.widget.navTree();
1540			SEMICOLON.widget.textRotater();
1541			SEMICOLON.widget.linkScroll();
1542			SEMICOLON.widget.extras();
1543
1544		},
1545
1546		parallax: function(){
1547			if( !SEMICOLON.isMobile.any() ){
1548				$.stellar({
1549					horizontalScrolling: false,
1550					verticalOffset: 150
1551				});
1552			} else {
1553				$parallaxEl.addClass('mobile-parallax');
1554				$parallaxPageTitleEl.addClass('mobile-parallax');
1555			}
1556		},
1557
1558		animations: function(){
1559			var $dataAnimateEl = $('[data-animate]');
1560			if( $dataAnimateEl.length > 0 ){
1561				if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ){
1562					$dataAnimateEl.each(function(){
1563						var element = $(this),
1564							animationDelay = element.attr('data-delay'),
1565							animationDelayTime = 0;
1566
1567						if( animationDelay ) { animationDelayTime = Number( animationDelay ) + 500; } else { animationDelayTime = 500; }
1568
1569						if( !element.hasClass('animated') ) {
1570							element.addClass('not-animated');
1571							var elementAnimation = element.attr('data-animate');
1572							element.appear(function () {
1573								setTimeout(function() {
1574									element.removeClass('not-animated').addClass( elementAnimation + ' animated');
1575								}, animationDelayTime);
1576							},{accX: 0, accY: -120},'easeInCubic');
1577						}
1578					});
1579				}
1580			}
1581		},
1582
1583		loadFlexSlider: function(){
1584			var $flexSliderEl = $('.fslider:not(.customjs)').find('.flexslider');
1585			if( $flexSliderEl.length > 0 ){
1586				$flexSliderEl.each(function() {
1587					var $flexsSlider = $(this),
1588						flexsAnimation = $flexsSlider.parent('.fslider').attr('data-animation'),
1589						flexsEasing = $flexsSlider.parent('.fslider').attr('data-easing'),
1590						flexsDirection = $flexsSlider.parent('.fslider').attr('data-direction'),
1591						flexsSlideshow = $flexsSlider.parent('.fslider').attr('data-slideshow'),
1592						flexsPause = $flexsSlider.parent('.fslider').attr('data-pause'),
1593						flexsSpeed = $flexsSlider.parent('.fslider').attr('data-speed'),
1594						flexsVideo = $flexsSlider.parent('.fslider').attr('data-video'),
1595						flexsPagi = $flexsSlider.parent('.fslider').attr('data-pagi'),
1596						flexsArrows = $flexsSlider.parent('.fslider').attr('data-arrows'),
1597						flexsThumbs = $flexsSlider.parent('.fslider').attr('data-thumbs'),
1598						flexsHover = $flexsSlider.parent('.fslider').attr('data-hover'),
1599						flexsSheight = true,
1600						flexsUseCSS = false;
1601
1602					if( !flexsAnimation ) { flexsAnimation = 'slide'; }
1603					if( !flexsEasing || flexsEasing == 'swing' ) {
1604						flexsEasing = 'swing';
1605						flexsUseCSS = true;
1606					}
1607					if( !flexsDirection ) { flexsDirection = 'horizontal'; }
1608					if( !flexsSlideshow ) { flexsSlideshow = true; } else { flexsSlideshow = false; }
1609					if( !flexsPause ) { flexsPause = 5000; }
1610					if( !flexsSpeed ) { flexsSpeed = 600; }
1611					if( !flexsVideo ) { flexsVideo = false; }
1612					if( flexsDirection == 'vertical' ) { flexsSheight = false; }
1613					if( flexsPagi == 'false' ) { flexsPagi = false; } else { flexsPagi = true; }
1614					if( flexsThumbs == 'true' ) { flexsPagi = 'thumbnails'; } else { flexsPagi = flexsPagi; }
1615					if( flexsArrows == 'false' ) { flexsArrows = false; } else { flexsArrows = true; }
1616					if( flexsHover == 'false' ) { flexsHover = false; } else { flexsHover = true; }
1617
1618					$flexsSlider.flexslider({
1619						selector: ".slider-wrap > .slide",
1620						animation: flexsAnimation,
1621						easing: flexsEasing,
1622						direction: flexsDirection,
1623						slideshow: flexsSlideshow,
1624						slideshowSpeed: Number(flexsPause),
1625						animationSpeed: Number(flexsSpeed),
1626						pauseOnHover: flexsHover,
1627						video: flexsVideo,
1628						controlNav: flexsPagi,
1629						directionNav: flexsArrows,
1630						smoothHeight: flexsSheight,
1631						useCSS: flexsUseCSS,
1632						start: function(slider){
1633							SEMICOLON.widget.animations();
1634							SEMICOLON.initialize.verticalMiddle();
1635							slider.parent().removeClass('preloader2');
1636							var t = setTimeout( function(){ $('#portfolio.portfolio-masonry,#portfolio.portfolio-full,#posts.post-masonry').isotope('layout'); }, 1200 );
1637							SEMICOLON.initialize.lightbox();
1638							$('.flex-prev').html('<i class="icon-angle-left"></i>');
1639							$('.flex-next').html('<i class="icon-angle-right"></i>');
1640							SEMICOLON.portfolio.portfolioDescMargin();
1641						},
1642						after: function(){
1643							if( $portfolio.has('portfolio-full') ) {
1644								$('#portfolio.portfolio-full').isotope('layout');
1645								SEMICOLON.portfolio.portfolioDescMargin();
1646							}
1647						}
1648					});
1649				});
1650			}
1651		},
1652
1653		html5Video: function(){
1654			var videoEl = $('.video-wrap:has(video)');
1655			if( videoEl.length > 0 ) {
1656				videoEl.each(function(){
1657					var element = $(this),
1658						elementVideo = element.find('video'),
1659						outerContainerWidth = element.outerWidth(),
1660						outerContainerHeight = element.outerHeight(),
1661						innerVideoWidth = elementVideo.outerWidth(),
1662						innerVideoHeight = elementVideo.outerHeight();
1663
1664					if( innerVideoHeight < outerContainerHeight ) {
1665						var videoAspectRatio = innerVideoWidth/innerVideoHeight,
1666							newVideoWidth = outerContainerHeight * videoAspectRatio,
1667							innerVideoPosition = (newVideoWidth - outerContainerWidth) / 2;
1668						elementVideo.css({ 'width': newVideoWidth+'px', 'height': outerContainerHeight+'px', 'left': -innerVideoPosition+'px' });
1669					} else {
1670						var innerVideoPosition = (innerVideoHeight - outerContainerHeight) / 2;
1671						elementVideo.css({ 'width': innerVideoWidth+'px', 'height': innerVideoHeight+'px', 'top': -innerVideoPosition+'px' });
1672					}
1673
1674					if( SEMICOLON.isMobile.any() ) {
1675						var placeholderImg = elementVideo.attr('poster');
1676
1677						if( placeholderImg != '' ) {
1678							element.append('<div class="video-placeholder" style="background-image: url('+ placeholderImg +');"></div>')
1679						}
1680					}
1681				});
1682			}
1683		},
1684
1685		youtubeBgVideo: function(){
1686			if( $youtubeBgPlayerEl.length > 0 ){
1687				$youtubeBgPlayerEl.each( function(){
1688					var element = $(this),
1689						ytbgVideo = element.attr('data-video'),
1690						ytbgMute = element.attr('data-mute'),
1691						ytbgRatio = element.attr('data-ratio'),
1692						ytbgQuality = element.attr('data-quality'),
1693						ytbgOpacity = element.attr('data-opacity'),
1694						ytbgContainer = element.attr('data-container'),
1695						ytbgOptimize = element.attr('data-optimize'),
1696						ytbgLoop = element.attr('data-loop'),
1697						ytbgVolume = element.attr('data-volume'),
1698						ytbgStart = element.attr('data-start'),
1699						ytbgStop = element.attr('data-stop'),
1700						ytbgAutoPlay = element.attr('data-autoplay'),
1701						ytbgFullScreen = element.attr('data-fullscreen');
1702
1703					if( ytbgMute == 'false' ) { ytbgMute = false; } else { ytbgMute = true; }
1704					if( !ytbgRatio ) { ytbgRatio = '16/9'; }
1705					if( !ytbgQuality ) { ytbgQuality = 'hd720'; }
1706					if( !ytbgOpacity ) { ytbgOpacity = 1; }
1707					if( !ytbgContainer ) { ytbgContainer = 'self'; }
1708					if( ytbgOptimize == 'false' ) { ytbgOptimize = false; } else { ytbgOptimize = true; }
1709					if( ytbgLoop == 'false' ) { ytbgLoop = false; } else { ytbgLoop = true; }
1710					if( !ytbgVolume ) { ytbgVolume = 1; }
1711					if( !ytbgStart ) { ytbgStart = 0; }
1712					if( !ytbgStop ) { ytbgStop = 0; }
1713					if( ytbgAutoPlay == 'false' ) { ytbgAutoPlay = false; } else { ytbgAutoPlay = true; }
1714					if( ytbgFullScreen == 'true' ) { ytbgFullScreen = true; } else { ytbgFullScreen = false; }
1715
1716					element.mb_YTPlayer({
1717						videoURL: ytbgVideo,
1718						mute: ytbgMute,
1719						ratio: ytbgRatio,
1720						quality: ytbgQuality,
1721						opacity: ytbgOpacity,
1722						containment: ytbgContainer,
1723						optimizeDisplay: ytbgOptimize,
1724						loop: ytbgLoop,
1725						vol: ytbgVolume,
1726						startAt: ytbgStart,
1727						stopAt: ytbgStop,
1728						autoplay: ytbgAutoPlay,
1729						realfullscreen: ytbgFullScreen,
1730						showYTLogo: false,
1731						showControls: false
1732					});
1733				});
1734			}
1735		},
1736
1737		tabs: function(){
1738			var $tabs = $('.tabs:not(.customjs)');
1739			if( $tabs.length > 0 ) {
1740				$tabs.each( function(){
1741					var element = $(this),
1742						elementSpeed = element.attr('data-speed'),
1743						tabActive = element.attr('data-active');
1744
1745					if( !elementSpeed ) { elementSpeed = 400; }
1746					if( !tabActive ) { tabActive = 0; } else { tabActive = tabActive - 1; }
1747
1748					element.tabs({
1749						active: Number(tabActive),
1750						show: {
1751							effect: "fade",
1752							duration: Number(elementSpeed)
1753						}
1754					});
1755				});
1756			}
1757		},
1758
1759		tabsJustify: function(){
1760			if( !$('body').hasClass('device-xxs') && !$('body').hasClass('device-xs') ){
1761				var $tabsJustify = $('.tabs.tabs-justify');
1762				if( $tabsJustify.length > 0 ) {
1763					$tabsJustify.each( function(){
1764						var element = $(this),
1765							elementTabs = element.find('.tab-nav > li'),
1766							elementTabsNo = elementTabs.length,
1767							elementContainer = 0,
1768							elementWidth = 0;
1769
1770						if( element.hasClass('tabs-bordered') || element.hasClass('tabs-bb') ) {
1771							elementContainer = element.find('.tab-nav').outerWidth();
1772						} else {
1773							if( element.find('tab-nav').hasClass('tab-nav2') ) {
1774								elementContainer = element.find('.tab-nav').outerWidth() - (elementTabsNo * 10);
1775							} else {
1776								elementContainer = element.find('.tab-nav').outerWidth() - 30;
1777							}
1778						}
1779
1780						elementWidth = Math.floor(elementContainer/elementTabsNo);
1781						elementTabs.css({ 'width': elementWidth + 'px' });
1782
1783					});
1784				}
1785			} else { $('.tabs.tabs-justify').find('.tab-nav > li').css({ 'width': 'auto' }); }
1786		},
1787
1788		toggles: function(){
1789			var $toggle = $('.toggle');
1790			if( $toggle.length > 0 ) {
1791				$toggle.each( function(){
1792					var element = $(this),
1793						elementState = element.attr('data-state');
1794
1795					if( elementState != 'open' ){
1796						element.find('.togglec').hide();
1797					} else {
1798						element.find('.togglet').addClass("toggleta");
1799					}
1800
1801					element.find('.togglet').click(function(){
1802						$(this).toggleClass('toggleta').next('.togglec').slideToggle(300);
1803						return true;
1804					});
1805				});
1806			}
1807		},
1808
1809		accordions: function(){
1810			var $accordionEl = $('.accordion');
1811			if( $accordionEl.length > 0 ){
1812				$accordionEl.each( function(){
1813					var element = $(this),
1814						elementState = element.attr('data-state'),
1815						accordionActive = element.attr('data-active');
1816
1817					if( !accordionActive ) { accordionActive = 0; } else { accordionActive = accordionActive - 1; }
1818
1819					element.find('.acc_content').hide();
1820
1821					if( elementState != 'closed' ) {
1822						element.find('.acctitle:eq('+ Number(accordionActive) +')').addClass('acctitlec').next().show();
1823					}
1824
1825					element.find('.acctitle').click(function(){
1826						if( $(this).next().is(':hidden') ) {
1827							element.find('.acctitle').removeClass('acctitlec').next().slideUp("normal");
1828							$(this).toggleClass('acctitlec').next().slideDown("normal");
1829						}
1830						return false;
1831					});
1832				});
1833			}
1834		},
1835
1836		counter: function(){
1837			var $counterEl = $('.counter:not(.counter-instant)');
1838			if( $counterEl.length > 0 ){
1839				$counterEl.each(function(){
1840					var element = $(this);
1841					var counterElementComma = $(this).find('span').attr('data-comma');
1842					if( !counterElementComma ) { counterElementComma = false; } else { counterElementComma = true; }
1843					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
1844						element.appear( function(){
1845							SEMICOLON.widget.runCounter( element, counterElementComma );
1846						},{accX: 0, accY: -120},'easeInCubic');
1847					} else {
1848						SEMICOLON.widget.runCounter( element, counterElementComma );
1849					}
1850				});
1851			}
1852		},
1853
1854		runCounter: function( counterElement,counterElementComma ){
1855			if( counterElementComma == true ) {
1856				counterElement.find('span').countTo({
1857					formatter: function (value, options) {
1858						value = value.toFixed(options.decimals);
1859						value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
1860						return value;
1861					}
1862				});
1863			} else {
1864				counterElement.find('span').countTo();
1865			}
1866		},
1867
1868		roundedSkill: function(){
1869			var $roundedSkillEl = $('.rounded-skill');
1870			if( $roundedSkillEl.length > 0 ){
1871				$roundedSkillEl.each(function(){
1872					var element = $(this);
1873
1874					var roundSkillSize = element.attr('data-size');
1875					var roundSkillAnimate = element.attr('data-animate');
1876					var roundSkillWidth = element.attr('data-width');
1877					var roundSkillColor = element.attr('data-color');
1878					var roundSkillTrackColor = element.attr('data-trackcolor');
1879
1880					if( !roundSkillSize ) { roundSkillSize = 140; }
1881					if( !roundSkillAnimate ) { roundSkillAnimate = 2000; }
1882					if( !roundSkillWidth ) { roundSkillWidth = 8; }
1883					if( !roundSkillColor ) { roundSkillColor = '#0093BF'; }
1884					if( !roundSkillTrackColor ) { roundSkillTrackColor = 'rgba(0,0,0,0.04)'; }
1885
1886					var properties = {roundSkillSize:roundSkillSize, roundSkillAnimate:roundSkillAnimate, roundSkillWidth:roundSkillWidth, roundSkillColor:roundSkillColor, roundSkillTrackColor:roundSkillTrackColor};
1887
1888					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
1889						element.css({'width':roundSkillSize+'px','height':roundSkillSize+'px'}).animate({opacity: '0'}, 10);
1890						element.appear( function(){
1891							if (!element.hasClass('skills-animated')) {
1892								element.css({opacity: '1'});
1893								SEMICOLON.widget.runRoundedSkills( element, properties );
1894								element.addClass('skills-animated');
1895							}
1896						},{accX: 0, accY: -120},'easeInCubic');
1897					} else {
1898						SEMICOLON.widget.runRoundedSkills( element, properties );
1899					}
1900				});
1901			}
1902		},
1903
1904		runRoundedSkills: function( element, properties ){
1905			element.easyPieChart({
1906				size: Number(properties.roundSkillSize),
1907				animate: Number(properties.roundSkillAnimate),
1908				scaleColor: false,
1909				trackColor: properties.roundSkillTrackColor,
1910				lineWidth: Number(properties.roundSkillWidth),
1911				lineCap: 'square',
1912				barColor: properties.roundSkillColor
1913			});
1914		},
1915
1916		progress: function(){
1917			var $progressEl = $('.progress');
1918			if( $progressEl.length > 0 ){
1919				$progressEl.each(function(){
1920					var element = $(this),
1921						skillsBar = element.parent('li'),
1922						skillValue = skillsBar.attr('data-percent');
1923
1924					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
1925						element.appear( function(){
1926							if (!skillsBar.hasClass('skills-animated')) {
1927								element.find('.counter-instant span').countTo();
1928								skillsBar.find('.progress').css({width: skillValue + "%"}).addClass('skills-animated');
1929							}
1930						},{accX: 0, accY: -120},'easeInCubic');
1931					} else {
1932						element.find('.counter-instant span').countTo();
1933						skillsBar.find('.progress').css({width: skillValue + "%"});
1934					}
1935				});
1936			}
1937		},
1938
1939		twitterFeed: function(){
1940			var $twitterFeedEl = $('.twitter-feed');
1941			if( $twitterFeedEl.length > 0 ){
1942				$twitterFeedEl.each(function() {
1943					var element = $(this),
1944						twitterFeedUser = element.attr('data-username'),
1945						twitterFeedCount = element.attr('data-count');
1946
1947					if( !twitterFeedUser ) { twitterFeedUser = 'twitter' }
1948					if( !twitterFeedCount ) { twitterFeedCount = 3 }
1949
1950					$.getJSON('/include/twitter/tweets.php?username='+ twitterFeedUser +'&count='+ twitterFeedCount, function(tweets){
1951						if( element.hasClass('fslider') ) {
1952							element.find(".slider-wrap").html(sm_format_twitter3(tweets)).promise().done(function(){
1953								var timer = setInterval(function(){
1954									if( element.find('.slide').length > 1 ) {
1955										element.removeClass('customjs');
1956										var t = setTimeout( function(){ SEMICOLON.widget.loadFlexSlider(); }, 500);
1957										clearInterval(timer);
1958									}
1959								},500);
1960							});
1961						} else {
1962							element.html(sm_format_twitter(tweets));
1963						}
1964					});
1965				});
1966			}
1967		},
1968
1969		flickrFeed: function(){
1970			var $flickrFeedEl = $('.flickr-feed');
1971			if( $flickrFeedEl.length > 0 ){
1972				$flickrFeedEl.each(function() {
1973					var element = $(this),
1974						flickrFeedID = element.attr('data-id'),
1975						flickrFeedCount = element.attr('data-count'),
1976						flickrFeedType = element.attr('data-type'),
1977						flickrFeedTypeGet = 'photos_public.gne';
1978
1979					if( flickrFeedType == 'group' ) { flickrFeedTypeGet = 'groups_pool.gne'; }
1980					if( !flickrFeedCount ) { flickrFeedCount = 9; }
1981
1982					element.jflickrfeed({
1983						feedapi: flickrFeedTypeGet,
1984						limit: Number(flickrFeedCount),
1985						qstrings: {
1986							id: flickrFeedID
1987						},
1988						itemTemplate: '<a href="{{image_b}}" title="{{title}}" data-lightbox="gallery-item">' +
1989											'<img src="{{image_s}}" alt="{{title}}" />' +
1990									  '</a>'
1991					}, function(data) {
1992						SEMICOLON.initialize.lightbox();
1993					});
1994				});
1995			}
1996		},
1997
1998		instagramPhotos: function( c_accessToken, c_clientID ){
1999			var $instagramPhotosEl = $('.instagram-photos');
2000			if( $instagramPhotosEl.length > 0 ){
2001				$.fn.spectragram.accessData = {
2002					accessToken: c_accessToken,
2003					clientID: c_clientID
2004				};
2005
2006				$instagramPhotosEl.each(function() {
2007					var element = $(this),
2008						instaGramUsername = element.attr('data-user'),
2009						instaGramTag = element.attr('data-tag'),
2010						instaGramCount = element.attr('data-count'),
2011						instaGramType = element.attr('data-type');
2012
2013					if( !instaGramCount ) { instaGramCount = 9; }
2014
2015					if( instaGramType == 'tag' ) {
2016						element.spectragram('getRecentTagged',{
2017							query: instaGramTag,
2018							max: Number( instaGramCount ),
2019							size: 'medium',
2020							wrapEachWith: ' '
2021						});
2022					} else if( instaGramType == 'user' ) {
2023						element.spectragram('getUserFeed',{
2024							query: instaGramUsername,
2025							max: Number( instaGramCount ),
2026							size: 'medium',
2027							wrapEachWith: ' '
2028						});
2029					} else {
2030						element.spectragram('getPopular',{
2031							max: Number( instaGramCount ),
2032							size: 'medium',
2033							wrapEachWith: ' '
2034						});
2035					}
2036				});
2037			}
2038		},
2039
2040		dribbbleShots: function(){
2041			var $dribbbleShotsEl = $('.dribbble-shots');
2042			if( $dribbbleShotsEl.length > 0 ){
2043				$dribbbleShotsEl.each(function() {
2044					var element = $(this),
2045						dribbbleUsername = element.attr('data-user'),
2046						dribbbleCount = element.attr('data-count'),
2047						dribbbleList = element.attr('data-list'),
2048						dribbbleType = element.attr('data-type');
2049
2050					if( !dribbbleCount ) { dribbbleCount = 9; }
2051
2052					if( dribbbleType == 'follows' ) {
2053						$.jribbble.getShotsThatPlayerFollows( dribbbleUsername , function (followedShots) {
2054							var html = [];
2055							$.each(followedShots.shots, function (i, shot) {
2056								html.push('<a href="' + shot.url + '" target="_blank">');
2057								html.push('<img src="' + shot.image_teaser_url + '" ');
2058								html.push('alt="' + shot.title + '"></a>');
2059							});
2060							element.html(html.join(''));
2061						}, {page: 1, per_page: Number(dribbbleCount)});
2062					} else if( dribbbleType == 'user' ) {
2063						$.jribbble.getShotsByPlayerId( dribbbleUsername , function (playerShots) {
2064							var html = [];
2065							$.each(playerShots.shots, function (i, shot) {
2066								html.push('<a href="' + shot.url + '" target="_blank">');
2067								html.push('<img src="' + shot.image_teaser_url + '" ');
2068								html.push('alt="' + shot.title + '"></a>');
2069							});
2070							element.html(html.join(''));
2071						}, {page: 1, per_page: Number(dribbbleCount)});
2072					} else if( dribbbleType == 'list' ) {
2073						$.jribbble.getShotsByList( dribbbleList , function (listDetails) {
2074							var html = [];
2075							$.each(listDetails.shots, function (i, shot) {
2076								html.push('<a href="' + shot.url + '" target="_blank">');
2077								html.push('<img src="' + shot.image_teaser_url + '" ');
2078								html.push('alt="' + shot.title + '"></a>');
2079							});
2080							element.html(html.join(''));
2081						}, {page: 1, per_page: Number(dribbbleCount)});
2082					}
2083				});
2084			}
2085		},
2086
2087		navTree: function(){
2088			var $navTreeEl = $('.nav-tree');
2089			if( $navTreeEl.length > 0 ){
2090				$navTreeEl.each( function(){
2091					var element = $(this),
2092						elementSpeed = element.attr('data-speed'),
2093						elementEasing = element.attr('data-easing');
2094
2095					if( !elementSpeed ) { elementSpeed = 250; }
2096					if( !elementEasing ) { elementEasing = 'swing'; }
2097
2098					element.find( 'ul li:has(ul)' ).addClass('sub-menu');
2099					element.find( 'ul li:has(ul) > a' ).append( ' <i class="icon-angle-down"></i>' );
2100
2101					element.find( 'ul li:has(ul) > a' ).click( function(e){
2102						var childElement = $(this);
2103						element.find( 'ul li' ).not(childElement.parents()).removeClass('active');
2104						childElement.parent().children('ul').slideToggle( Number(elementSpeed), elementEasing, function(){
2105							$(this).find('ul').hide();
2106							$(this).find('li.active').removeClass('active');
2107						});
2108						element.find( 'ul li > ul' ).not(childElement.parent().children('ul')).not(childElement.parents('ul')).slideUp( Number(elementSpeed), elementEasing );
2109						childElement.parent('li:has(ul)').toggleClass('active');
2110						e.preventDefault();
2111					});
2112				});
2113			}
2114		},
2115
2116		masonryThumbs: function(){
2117			var $masonryThumbsEl = $('.masonry-thumbs');
2118			if( $masonryThumbsEl.length > 0 ){
2119				$masonryThumbsEl.each( function(){
2120					var masonryItemContainer = $(this);
2121					SEMICOLON.widget.masonryThumbsArrange( masonryItemContainer );
2122				});
2123			}
2124		},
2125
2126		masonryThumbsArrange: function( element ){
2127			SEMICOLON.initialize.setFullColumnWidth( element );
2128			element.isotope('layout');
2129		},
2130
2131		notifications: function( element ){
2132			toastr.clear();
2133			var notifyElement = $(element),
2134				notifyPosition = notifyElement.attr('data-notify-position'),
2135				notifyType = notifyElement.attr('data-notify-type'),
2136				notifyMsg = notifyElement.attr('data-notify-msg'),
2137				notifyCloseButton = notifyElement.attr('data-notify-close');
2138
2139			if( !notifyPosition ) { notifyPosition = 'toast-top-right'; } else { notifyPosition = 'toast-' + notifyElement.attr('data-notify-position'); }
2140			if( !notifyMsg ) { notifyMsg = 'Please set a message!'; }
2141			if( notifyCloseButton == 'true' ) { notifyCloseButton = true; } else { notifyCloseButton = false; }
2142
2143			toastr.options.positionClass = notifyPosition;
2144			toastr.options.closeButton = notifyCloseButton;
2145			toastr.options.closeHtml = '<button><i class="icon-remove"></i></button>';
2146
2147			if( notifyType == 'warning' ) {
2148				toastr.warning(notifyMsg);
2149			} else if( notifyType == 'error' ) {
2150				toastr.error(notifyMsg);
2151			} else if( notifyType == 'success' ) {
2152				toastr.success(notifyMsg);
2153			} else {
2154				toastr.info(notifyMsg);
2155			}
2156
2157			return false;
2158		},
2159
2160		textRotater: function(){
2161			if( $textRotaterEl.length > 0 ){
2162				$textRotaterEl.each(function(){
2163					var element = $(this),
2164						trRotate = $(this).attr('data-rotate'),
2165						trSpeed = $(this).attr('data-speed'),
2166						trSeparator = $(this).attr('data-separator');
2167
2168					if( !trRotate ) { trRotate = "fade"; }
2169					if( !trSpeed ) { trSpeed = 1200; }
2170					if( !trSeparator ) { trSeparator = ","; }
2171
2172					var tRotater = $(this).find('.t-rotate');
2173
2174					tRotater.Morphext({
2175						animation: trRotate,
2176						separator: trSeparator,
2177						speed: Number(trSpeed)
2178					});
2179				});
2180			}
2181		},
2182
2183		linkScroll: function(){
2184			$("a[data-scrollto]").click(function(){
2185				var element = $(this),
2186					divScrollToAnchor = element.attr('data-scrollto'),
2187					divScrollSpeed = element.attr('data-speed'),
2188					divScrollOffset = element.attr('data-offset'),
2189					divScrollEasing = element.attr('data-easing');
2190
2191					if( !divScrollSpeed ) { divScrollSpeed = 750; }
2192					if( !divScrollOffset ) { divScrollOffset = SEMICOLON.initialize.topScrollOffset(); }
2193					if( !divScrollEasing ) { divScrollEasing = 'easeOutQuad'; }
2194
2195				$('html,body').stop(true).animate({
2196					'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset)
2197				}, Number(divScrollSpeed), divScrollEasing);
2198
2199				return false;
2200			});
2201		},
2202
2203		extras: function(){
2204			$('[data-toggle="tooltip"]').tooltip({container: 'body'});
2205			$('#primary-menu-trigger,#overlay-menu-close').click(function() {
2206				$( '#primary-menu > ul, #primary-menu > div > ul' ).toggleClass("show");
2207				return false;
2208			});
2209			$('#page-submenu-trigger').click(function() {
2210				$body.toggleClass('top-search-open', false);
2211				$pagemenu.toggleClass("pagemenu-active");
2212				return false;
2213			});
2214			$pagemenu.find('nav').click(function(e){
2215				$body.toggleClass('top-search-open', false);
2216				$topCart.toggleClass('top-cart-open', false);
2217			});
2218			if( SEMICOLON.isMobile.any() ){
2219				$body.addClass('device-touch');
2220			}
2221			// var el = {
2222			//     darkLogo : $("<img>", {src: defaultDarkLogo}),
2223			//     darkRetinaLogo : $("<img>", {src: retinaDarkLogo})
2224			// };
2225			// el.darkLogo.prependTo("body");
2226			// el.darkRetinaLogo.prependTo("body");
2227			// el.darkLogo.css({'position':'absolute','z-index':'-100'});
2228			// el.darkRetinaLogo.css({'position':'absolute','z-index':'-100'});
2229		}
2230
2231	};
2232
2233	SEMICOLON.isMobile = {
2234		Android: function() {
2235			return navigator.userAgent.match(/Android/i);
2236		},
2237		BlackBerry: function() {
2238			return navigator.userAgent.match(/BlackBerry/i);
2239		},
2240		iOS: function() {
2241			return navigator.userAgent.match(/iPhone|iPad|iPod/i);
2242		},
2243		Opera: function() {
2244			return navigator.userAgent.match(/Opera Mini/i);
2245		},
2246		Windows: function() {
2247			return navigator.userAgent.match(/IEMobile/i);
2248		},
2249		any: function() {
2250			return (SEMICOLON.isMobile.Android() || SEMICOLON.isMobile.BlackBerry() || SEMICOLON.isMobile.iOS() || SEMICOLON.isMobile.Opera() || SEMICOLON.isMobile.Windows());
2251		}
2252	};
2253
2254	SEMICOLON.documentOnResize = {
2255
2256		init: function(){
2257
2258			var t = setTimeout( function(){
2259				SEMICOLON.header.topsocial();
2260				SEMICOLON.header.fullWidthMenu();
2261				SEMICOLON.header.overlayMenu();
2262				SEMICOLON.initialize.fullScreen();
2263				SEMICOLON.initialize.verticalMiddle();
2264				SEMICOLON.initialize.maxHeight();
2265				SEMICOLON.initialize.testimonialsGrid();
2266				SEMICOLON.slider.captionPosition();
2267				SEMICOLON.portfolio.arrange();
2268				SEMICOLON.portfolio.portfolioDescMargin();
2269				SEMICOLON.widget.tabsJustify();
2270				SEMICOLON.widget.html5Video();
2271				SEMICOLON.widget.masonryThumbs();
2272				SEMICOLON.initialize.dataStyles();
2273				SEMICOLON.initialize.dataResponsiveHeights();
2274			}, 500 );
2275
2276		}
2277
2278	};
2279
2280	SEMICOLON.documentOnReady = {
2281
2282		init: function(){
2283			SEMICOLON.initialize.init();
2284			SEMICOLON.header.init();
2285			if( $slider.length > 0 ) { SEMICOLON.slider.init(); }
2286			if( $portfolio.length > 0 ) { SEMICOLON.portfolio.init(); }
2287			SEMICOLON.widget.init();
2288			SEMICOLON.documentOnReady.windowscroll();
2289		},
2290
2291		windowscroll: function(){
2292
2293			var headerOffset = 0;
2294			var headerWrapOffset = 0;
2295
2296			if( $header.length > 0 ) { headerOffset = $header.offset().top; }
2297			if( $header.length > 0 ) { headerWrapOffset = $headerWrap.offset().top; }
2298
2299			var headerDefinedOffset = $header.attr('data-sticky-offset');
2300			if( typeof headerDefinedOffset !== 'undefined' ) {
2301				if( headerDefinedOffset == 'full' ) {
2302					headerWrapOffset = $window.height();
2303					var headerOffsetNegative = $header.attr('data-sticky-offset-negative');
2304					if( typeof headerOffsetNegative !== 'undefined' ) { headerWrapOffset = headerWrapOffset - headerOffsetNegative - 1; }
2305				} else {
2306					headerWrapOffset = Number(headerDefinedOffset);
2307				}
2308			}
2309
2310			$window.on( 'scroll', function(){
2311
2312				SEMICOLON.initialize.goToTopScroll();
2313				$('body.open-header.close-header-on-scroll').removeClass("side-header-open");
2314				SEMICOLON.header.stickyMenu( headerWrapOffset );
2315				SEMICOLON.header.darkLogo();
2316
2317			});
2318
2319			window.addEventListener('scroll', onScrollSliderParallax, false);
2320
2321			if( $onePageMenuEl.length > 0 ){
2322				$window.scrolled(function() {
2323					SEMICOLON.header.onepageScroller();
2324				});
2325			}
2326		}
2327
2328	};
2329
2330	SEMICOLON.documentOnLoad = {
2331
2332		init: function(){
2333			SEMICOLON.slider.captionPosition();
2334			SEMICOLON.slider.swiperSliderMenu();
2335			SEMICOLON.slider.revolutionSliderMenu();
2336			SEMICOLON.initialize.maxHeight();
2337			SEMICOLON.initialize.testimonialsGrid();
2338			SEMICOLON.initialize.verticalMiddle();
2339			SEMICOLON.initialize.stickFooterOnSmall();
2340			SEMICOLON.portfolio.portfolioDescMargin();
2341			SEMICOLON.portfolio.arrange();
2342			SEMICOLON.widget.parallax();
2343			SEMICOLON.widget.loadFlexSlider();
2344			SEMICOLON.widget.html5Video();
2345			SEMICOLON.widget.masonryThumbs();
2346			SEMICOLON.slider.owlCaptionInit();
2347			SEMICOLON.header.topsocial();
2348			SEMICOLON.header.responsiveMenuClass();
2349		}
2350
2351	};
2352
2353	var $window = $(window),
2354		$body = $('body'),
2355		$wrapper = $('#wrapper'),
2356		$header = $('#header'),
2357		$headerWrap = $('#header-wrap'),
2358		$footer = $('#footer'),
2359		oldHeaderClasses = $header.attr('class'),
2360		oldHeaderWrapClasses = $headerWrap.attr('class'),
2361		stickyMenuClasses = $header.attr('data-sticky-class'),
2362		responsiveMenuClasses = $header.attr('data-responsive-class'),
2363		defaultLogo = $('#logo').find('.standard-logo'),
2364		defaultLogoWidth = defaultLogo.find('img').outerWidth(),
2365		retinaLogo = $('#logo').find('.retina-logo'),
2366		defaultLogoImg = defaultLogo.find('img').attr('src'),
2367		retinaLogoImg = retinaLogo.find('img').attr('src'),
2368		defaultDarkLogo = defaultLogo.attr('data-dark-logo'),
2369		retinaDarkLogo = retinaLogo.attr('data-dark-logo'),
2370		$pagemenu = $('#page-menu'),
2371		$onePageMenuEl = $('.one-page-menu'),
2372		onePageGlobalOffset = 0,
2373		$portfolio = $('#portfolio'),
2374		$slider = $('#slider'),
2375		$sliderParallaxEl = $('.slider-parallax'),
2376		$pageTitle = $('#page-title'),
2377		$portfolioItems = $('.portfolio-ajax').find('.portfolio-item'),
2378		$portfolioDetails = $('#portfolio-ajax-wrap'),
2379		$portfolioDetailsContainer = $('#portfolio-ajax-container'),
2380		$portfolioAjaxLoader = $('#portfolio-ajax-loader'),
2381		prevPostPortId = '',
2382		$topSearch = $('#top-search'),
2383		$topCart = $('#top-cart'),
2384		$verticalMiddleEl = $('.vertical-middle'),
2385		$topSocialEl = $('#top-social').find('li'),
2386		$siStickyEl = $('.si-sticky'),
2387		$dotsMenuEl = $('.dots-menu'),
2388		$goToTopEl = $('#gotoTop'),
2389		$fullScreenEl = $('.full-screen'),
2390		$commonHeightEl = $('.common-height'),
2391		$testimonialsGridEl = $('.testimonials-grid'),
2392		$pageSectionEl = $('.page-section'),
2393		$owlCarouselEl = $('.owl-carousel'),
2394		$parallaxEl = $('.parallax'),
2395		$parallaxPageTitleEl = $('.page-title-parallax'),
2396		$youtubeBgPlayerEl = $('.yt-bg-player'),
2397		$textRotaterEl = $('.text-rotater');
2398
2399	$(document).ready( SEMICOLON.documentOnReady.init );
2400	$window.load( SEMICOLON.documentOnLoad.init );
2401	$window.on( 'resize', SEMICOLON.documentOnResize.init );
2402
2403})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.