PageSourceSearch

https://smartaranetacoliseum.com/js/functions.js

js smartaranetacoliseum.com collected 2026-09-25 04:07:15 UTC 133,739 bytes, 3,727 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
12if( $().infinitescroll ) {
13
14	$.extend($.infinitescroll.prototype,{
15		_setup_portfolioinfiniteitemsloader: function infscr_setup_portfolioinfiniteitemsloader() {
16			var opts = this.options,
17				instance = this;
18			// Bind nextSelector link to retrieve
19			$(opts.nextSelector).click(function(e) {
20				if (e.which == 1 && !e.metaKey && !e.shiftKey) {
21					e.preventDefault();
22					instance.retrieve();
23				}
24			});
25			// Define loadingStart to never hide pager
26			instance.options.loading.start = function (opts) {
27				opts.loading.msg
28					.appendTo(opts.loading.selector)
29					.show(opts.loading.speed, function () {
30						instance.beginAjax(opts);
31					});
32			}
33		},
34		_showdonemsg_portfolioinfiniteitemsloader: function infscr_showdonemsg_portfolioinfiniteitemsloader () {
35			var opts = this.options,
36				instance = this;
37			//Do all the usual stuff
38			opts.loading.msg
39				.find('img')
40				.hide()
41				.parent()
42				.find('div').html(opts.loading.finishedMsg).animate({ opacity: 1 }, 2000, function () {
43					$(this).parent().fadeOut('normal');
44				});
45			//And also hide the navSelector
46			$(opts.navSelector).fadeOut('normal');
47			// user provided callback when done
48			opts.errorCallback.call($(opts.contentSelector)[0],'done');
49		}
50	});
51
52} else {
53	console.log('Infinite Scroll not defined.');
54}
55
56(function() {
57	var lastTime = 0;
58	var vendors = ['ms', 'moz', 'webkit', 'o'];
59	for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
60		window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
61		window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
62									|| window[vendors[x]+'CancelRequestAnimationFrame'];
63	}
64
65	if (!window.requestAnimationFrame)
66		window.requestAnimationFrame = function(callback, element) {
67			var currTime = new Date().getTime();
68			var timeToCall = Math.max(0, 16 - (currTime - lastTime));
69			var id = window.setTimeout(function() { callback(currTime + timeToCall); },
70			  timeToCall);
71			lastTime = currTime + timeToCall;
72			return id;
73		};
74
75	if (!window.cancelAnimationFrame)
76		window.cancelAnimationFrame = function(id) {
77			clearTimeout(id);
78		};
79}());
80
81
82
83function debounce(func, wait, immediate) {
84	var timeout, args, context, timestamp, result;
85	return function() {
86		context = this;
87		args = arguments;
88		timestamp = new Date();
89		var later = function() {
90			var last = (new Date()) - timestamp;
91			if (last < wait) {
92				timeout = setTimeout(later, wait - last);
93			} else {
94				timeout = null;
95				if (!immediate) result = func.apply(context, args);
96			}
97		};
98		var callNow = immediate && !timeout;
99		if (!timeout) {
100			timeout = setTimeout(later, wait);
101		}
102		if (callNow) result = func.apply(context, args);
103		return result;
104	};
105}
106
107
108var requesting = false;
109
110var killRequesting = debounce(function () {
111	requesting = false;
112}, 100);
113
114function onScrollSliderParallax() {
115	if (!requesting) {
116		requesting = true;
117		requestAnimationFrame(function(){
118			SEMICOLON.slider.sliderParallax();
119			SEMICOLON.slider.sliderElementsFade();
120		});
121	}
122	killRequesting();
123}
124
125
126
127var SEMICOLON = SEMICOLON || {};
128
129(function($){
130
131	// USE STRICT
132	"use strict";
133
134	SEMICOLON.initialize = {
135
136		init: function(){
137
138			SEMICOLON.initialize.responsiveClasses();
139			SEMICOLON.initialize.imagePreload( '.portfolio-item:not(:has(.fslider)) img' );
140			SEMICOLON.initialize.stickyElements();
141			SEMICOLON.initialize.goToTop();
142			SEMICOLON.initialize.lazyLoad();
143			SEMICOLON.initialize.fullScreen();
144			SEMICOLON.initialize.verticalMiddle();
145			SEMICOLON.initialize.lightbox();
146			SEMICOLON.initialize.resizeVideos();
147			SEMICOLON.initialize.imageFade();
148			SEMICOLON.initialize.pageTransition();
149			SEMICOLON.initialize.dataResponsiveClasses();
150			SEMICOLON.initialize.dataResponsiveHeights();
151
152			$('.fslider').addClass('preloader2');
153
154		},
155
156		responsiveClasses: function(){
157
158			if( typeof jRespond === 'undefined' ) {
159				console.log('responsiveClasses: jRespond not Defined.');
160				return true;
161			}
162
163			var jRes = jRespond([
164				{
165					label: 'smallest',
166					enter: 0,
167					exit: 479
168				},{
169					label: 'handheld',
170					enter: 480,
171					exit: 767
172				},{
173					label: 'tablet',
174					enter: 768,
175					exit: 991
176				},{
177					label: 'laptop',
178					enter: 992,
179					exit: 1199
180				},{
181					label: 'desktop',
182					enter: 1200,
183					exit: 10000
184				}
185			]);
186			jRes.addFunc([
187				{
188					breakpoint: 'desktop',
189					enter: function() { $body.addClass('device-lg'); },
190					exit: function() { $body.removeClass('device-lg'); }
191				},{
192					breakpoint: 'laptop',
193					enter: function() { $body.addClass('device-md'); },
194					exit: function() { $body.removeClass('device-md'); }
195				},{
196					breakpoint: 'tablet',
197					enter: function() { $body.addClass('device-sm'); },
198					exit: function() { $body.removeClass('device-sm'); }
199				},{
200					breakpoint: 'handheld',
201					enter: function() { $body.addClass('device-xs'); },
202					exit: function() { $body.removeClass('device-xs'); }
203				},{
204					breakpoint: 'smallest',
205					enter: function() { $body.addClass('device-xxs'); },
206					exit: function() { $body.removeClass('device-xxs'); }
207				}
208			]);
209		},
210
211		imagePreload: function(selector, parameters){
212			var params = {
213				delay: 250,
214				transition: 400,
215				easing: 'linear'
216			};
217			$.extend(params, parameters);
218
219			$(selector).each(function() {
220				var image = $(this);
221				image.css({visibility:'hidden', opacity: 0, display:'block'});
222				image.wrap('<span class="preloader" />');
223				image.one("load", function(evt) {
224					$(this).delay(params.delay).css({visibility:'visible'}).animate({opacity: 1}, params.transition, params.easing, function() {
225						$(this).unwrap('<span class="preloader" />');
226					});
227				}).each(function() {
228					if(this.complete) $(this).trigger("load");
229				});
230			});
231		},
232
233		verticalMiddle: function(){
234			if( $verticalMiddleEl.length > 0 ) {
235				$verticalMiddleEl.each( function(){
236					var element = $(this),
237						verticalMiddleH = element.outerHeight(),
238						headerHeight = $header.outerHeight();
239
240					if( element.parents('#slider').length > 0 && !element.hasClass('ignore-header') ) {
241						if( $header.hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
242							verticalMiddleH = verticalMiddleH - 70;
243							if( $slider.next('#header').length > 0 ) { verticalMiddleH = verticalMiddleH + headerHeight; }
244						}
245					}
246
247					if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
248						if( element.parents('.full-screen').length && !element.parents('.force-full-screen').length ){
249							if( element.children('.col-padding').length > 0 ) {
250								element.css({ position: 'relative', top: '0', width: 'auto', marginTop: '0' }).addClass('clearfix');
251							} else {
252								element.css({ position: 'relative', top: '0', width: 'auto', marginTop: '0', paddingTop: '60px', paddingBottom: '60px' }).addClass('clearfix');
253							}
254						} else {
255							element.css({ position: 'absolute', top: '50%', width: '100%', paddingTop: '0', paddingBottom: '0', marginTop: -(verticalMiddleH/2)+'px' });
256						}
257					} else {
258						element.css({ position: 'absolute', top: '50%', width: '100%', paddingTop: '0', paddingBottom: '0', marginTop: -(verticalMiddleH/2)+'px' });
259					}
260				});
261			}
262		},
263
264		stickyElements: function(){
265			if( $siStickyEl.length > 0 ) {
266				var siStickyH = $siStickyEl.outerHeight();
267				$siStickyEl.css({ marginTop: -(siStickyH/2)+'px' });
268			}
269
270			if( $dotsMenuEl.length > 0 ) {
271				var opmdStickyH = $dotsMenuEl.outerHeight();
272				$dotsMenuEl.css({ marginTop: -(opmdStickyH/2)+'px' });
273			}
274		},
275
276		goToTop: function(){
277			var elementScrollSpeed = $goToTopEl.attr('data-speed'),
278				elementScrollEasing = $goToTopEl.attr('data-easing');
279
280			if( !elementScrollSpeed ) { elementScrollSpeed = 700; }
281			if( !elementScrollEasing ) { elementScrollEasing = 'easeOutQuad'; }
282
283			$goToTopEl.click(function() {
284				$('body,html').stop(true).animate({
285					'scrollTop': 0
286				}, Number( elementScrollSpeed ), elementScrollEasing );
287				return false;
288			});
289		},
290
291		goToTopScroll: function(){
292			var elementMobile = $goToTopEl.attr('data-mobile'),
293				elementOffset = $goToTopEl.attr('data-offset');
294
295			if( !elementOffset ) { elementOffset = 450; }
296
297			if( elementMobile != 'true' && ( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) ) { return true; }
298
299			if( $window.scrollTop() > Number(elementOffset) ) {
300				$goToTopEl.fadeIn();
301				$body.addClass('gototop-active');
302			} else {
303				$goToTopEl.fadeOut();
304				$body.removeClass('gototop-active');
305			}
306		},
307
308		fullScreen: function(){
309			if( $fullScreenEl.length > 0 ) {
310				$fullScreenEl.each( function(){
311					var element = $(this),
312						scrHeight = window.innerHeight ? window.innerHeight : $window.height(),
313						negativeHeight = element.attr('data-negative-height');
314
315					if( element.attr('id') == 'slider' ) {
316						var sliderHeightOff = $slider.offset().top;
317						scrHeight = scrHeight - sliderHeightOff;
318						if( element.find('.slider-parallax-inner').length > 0 ) {
319							var transformVal = element.find('.slider-parallax-inner').css('transform'),
320								transformX = transformVal.match(/-?[\d\.]+/g);
321							if( !transformX ) { var transformXvalue = 0; } else { var transformXvalue = transformX[5]; }
322							scrHeight = ( ( window.innerHeight ? window.innerHeight : $window.height() ) + Number( transformXvalue ) ) - sliderHeightOff;
323						}
324						if( $('#slider.with-header').next('#header:not(.transparent-header)').length > 0 && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
325							var headerHeightOff = $header.outerHeight();
326							scrHeight = scrHeight - headerHeightOff;
327						}
328					}
329					if( element.parents('.full-screen').length > 0 ) { scrHeight = element.parents('.full-screen').height(); }
330
331					if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
332						if( !element.hasClass('force-full-screen') ){ scrHeight = 'auto'; }
333					}
334
335					if( negativeHeight ){ scrHeight = scrHeight - Number(negativeHeight); }
336
337					element.css('height', scrHeight);
338					if( element.attr('id') == 'slider' && !element.hasClass('canvas-slider-grid') ) { if( element.has('.swiper-slide') ) { element.find('.swiper-slide').css('height', scrHeight); } }
339				});
340			}
341		},
342
343		maxHeight: function(){
344			if( $commonHeightEl.length > 0 ) {
345				if( $commonHeightEl.hasClass('customjs') ) { return true; }
346				$commonHeightEl.each( function(){
347					var element = $(this);
348					if( element.find('.common-height').length > 0 ) {
349						SEMICOLON.initialize.commonHeight( element.find('.common-height:not(.customjs)') );
350					}
351
352					SEMICOLON.initialize.commonHeight( element );
353				});
354			}
355		},
356
357		commonHeight: function( element ){
358			var maxHeight = 0;
359			element.children('[class*=col-]').each(function() {
360				var elementChild = $(this).children();
361				if( elementChild.hasClass('max-height') ){
362					maxHeight = elementChild.outerHeight();
363				} else {
364					if (elementChild.outerHeight() > maxHeight)
365					maxHeight = elementChild.outerHeight();
366				}
367			});
368
369			element.children('[class*=col-]').each(function() {
370				$(this).height(maxHeight);
371			});
372		},
373
374		testimonialsGrid: function(){
375			if( $testimonialsGridEl.length > 0 ) {
376				if( $body.hasClass('device-sm') || $body.hasClass('device-md') || $body.hasClass('device-lg') ) {
377					var maxHeight = 0;
378					$testimonialsGridEl.each( function(){
379						$(this).find("li > .testimonial").each(function(){
380						   if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
381						});
382						$(this).find("li").height(maxHeight);
383						maxHeight = 0;
384					});
385				} else {
386					$testimonialsGridEl.find("li").css({ 'height': 'auto' });
387				}
388			}
389		},
390
391		lightbox: function(){
392
393			if( !$().magnificPopup ) {
394				console.log('lightbox: Magnific Popup not Defined.');
395				return true;
396			}
397
398			var $lightboxImageEl = $('[data-lightbox="image"]'),
399				$lightboxGalleryEl = $('[data-lightbox="gallery"]'),
400				$lightboxIframeEl = $('[data-lightbox="iframe"]'),
401				$lightboxInlineEl = $('[data-lightbox="inline"]'),
402				$lightboxAjaxEl = $('[data-lightbox="ajax"]'),
403				$lightboxAjaxGalleryEl = $('[data-lightbox="ajax-gallery"]');
404
405			if( $lightboxImageEl.length > 0 ) {
406				$lightboxImageEl.magnificPopup({
407					type: 'image',
408					closeOnContentClick: true,
409					closeBtnInside: false,
410					fixedContentPos: true,
411					mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side
412					image: {
413						verticalFit: true
414					}
415				});
416			}
417
418			if( $lightboxGalleryEl.length > 0 ) {
419				$lightboxGalleryEl.each(function() {
420					var element = $(this);
421
422					if( element.find('a[data-lightbox="gallery-item"]').parent('.clone').hasClass('clone') ) {
423						element.find('a[data-lightbox="gallery-item"]').parent('.clone').find('a[data-lightbox="gallery-item"]').attr('data-lightbox','');
424					}
425
426					if( element.find('a[data-lightbox="gallery-item"]').parents('.cloned').hasClass('cloned') ) {
427						element.find('a[data-lightbox="gallery-item"]').parents('.cloned').find('a[data-lightbox="gallery-item"]').attr('data-lightbox','');
428					}
429
430					element.magnificPopup({
431						delegate: 'a[data-lightbox="gallery-item"]',
432						type: 'image',
433						closeOnContentClick: true,
434						closeBtnInside: false,
435						fixedContentPos: true,
436						mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side
437						image: {
438							verticalFit: true
439						},
440						gallery: {
441							enabled: true,
442							navigateByImgClick: true,
443							preload: [0,1] // Will preload 0 - before current, and 1 after the current image
444						}
445					});
446				});
447			}
448
449			if( $lightboxIframeEl.length > 0 ) {
450				$lightboxIframeEl.magnificPopup({
451					disableOn: 600,
452					type: 'iframe',
453					removalDelay: 160,
454					preloader: false,
455					fixedContentPos: false
456				});
457			}
458
459			if( $lightboxInlineEl.length > 0 ) {
460				$lightboxInlineEl.magnificPopup({
461					type: 'inline',
462					mainClass: 'mfp-no-margins mfp-fade',
463					closeBtnInside: false,
464					fixedContentPos: true,
465					overflowY: 'scroll'
466				});
467			}
468
469			if( $lightboxAjaxEl.length > 0 ) {
470				$lightboxAjaxEl.magnificPopup({
471					type: 'ajax',
472					closeBtnInside: false,
473					callbacks: {
474						ajaxContentAdded: function(mfpResponse) {
475							SEMICOLON.widget.loadFlexSlider();
476							SEMICOLON.initialize.resizeVideos();
477							SEMICOLON.widget.masonryThumbs();
478						},
479						open: function() {
480							$body.addClass('ohidden');
481						},
482						close: function() {
483							$body.removeClass('ohidden');
484						}
485					}
486				});
487			}
488
489			if( $lightboxAjaxGalleryEl.length > 0 ) {
490				$lightboxAjaxGalleryEl.magnificPopup({
491					delegate: 'a[data-lightbox="ajax-gallery-item"]',
492					type: 'ajax',
493					closeBtnInside: false,
494					gallery: {
495						enabled: true,
496						preload: 0,
497						navigateByImgClick: false
498					},
499					callbacks: {
500						ajaxContentAdded: function(mfpResponse) {
501							SEMICOLON.widget.loadFlexSlider();
502							SEMICOLON.initialize.resizeVideos();
503							SEMICOLON.widget.masonryThumbs();
504						},
505						open: function() {
506							$body.addClass('ohidden');
507						},
508						close: function() {
509							$body.removeClass('ohidden');
510						}
511					}
512				});
513			}
514		},
515
516		modal: function(){
517
518			if( !$().magnificPopup ) {
519				console.log('modal: Magnific Popup not Defined.');
520				return true;
521			}
522
523			var $modal = $('.modal-on-load:not(.customjs)');
524			if( $modal.length > 0 ) {
525				$modal.each( function(){
526					var element				= $(this),
527						elementTarget		= element.attr('data-target'),
528						elementTargetValue	= elementTarget.split('#')[1],
529						elementDelay		= element.attr('data-delay'),
530						elementTimeout		= element.attr('data-timeout'),
531						elementAnimateIn	= element.attr('data-animate-in'),
532						elementAnimateOut	= element.attr('data-animate-out');
533
534					if( !element.hasClass('enable-cookie') ) { $.removeCookie( elementTargetValue ); }
535
536					if( element.hasClass('enable-cookie') ) {
537						var elementCookie = $.cookie( elementTargetValue );
538
539						if( typeof elementCookie !== 'undefined' && elementCookie == '0' ) {
540							return true;
541						}
542					}
543
544					if( !elementDelay ) {
545						elementDelay = 1500;
546					} else {
547						elementDelay = Number(elementDelay) + 1500;
548					}
549
550					var t = setTimeout(function() {
551						$.magnificPopup.open({
552							items: { src: elementTarget },
553							type: 'inline',
554							mainClass: 'mfp-no-margins mfp-fade',
555							closeBtnInside: true,
556							fixedContentPos: true,
557							removalDelay: 500,
558							callbacks: {
559								open: function(){
560									if( elementAnimateIn != '' ) {
561										$(elementTarget).addClass( elementAnimateIn + ' animated' );
562									}
563								},
564								beforeClose: function(){
565									if( elementAnimateOut != '' ) {
566										$(elementTarget).removeClass( elementAnimateIn ).addClass( elementAnimateOut );
567									}
568								},
569								afterClose: function() {
570									if( elementAnimateIn != '' || elementAnimateOut != '' ) {
571										$(elementTarget).removeClass( elementAnimateIn + ' ' + elementAnimateOut + ' animated' );
572									}
573									if( element.hasClass('enable-cookie') ) {
574										$.cookie( elementTargetValue, '0' );
575									}
576								}
577							}
578						}, 0);
579					}, Number(elementDelay) );
580
581					if( elementTimeout != '' ) {
582						var to = setTimeout(function() {
583							$.magnificPopup.close();
584						}, Number(elementDelay) + Number(elementTimeout) );
585					}
586				});
587			}
588		},
589
590		resizeVideos: function(){
591
592			if( !$().fitVids ) {
593				console.log('resizeVideos: FitVids not Defined.');
594				return true;
595			}
596
597			$("#content,#footer,#slider:not(.revslider-wrap),.landing-offer-media,.portfolio-ajax-modal,.mega-menu-column").fitVids({
598				customSelector: "iframe[src^='http://www.dailymotion.com/embed'], iframe[src*='maps.google.com'], iframe[src*='google.com/maps']",
599				ignore: '.no-fv'
600			});
601		},
602
603		imageFade: function(){
604			$('.image_fade').hover( function(){
605				$(this).filter(':not(:animated)').animate({opacity: 0.8}, 400);
606			}, function() {
607				$(this).animate({opacity: 1}, 400);
608			});
609		},
610
611		blogTimelineEntries: function(){
612			$('.post-timeline.grid-2').find('.entry').each( function(){
613				var position = $(this).inlineStyle('left');
614				if( position == '0px' ) {
615					$(this).removeClass('alt');
616				} else {
617					$(this).addClass('alt');
618				}
619				$(this).find('.entry-timeline').fadeIn();
620			});
621
622			$('.entry.entry-date-section').next().next().find('.entry-timeline').css({ 'top': '70px' });
623		},
624
625		pageTransition: function(){
626			if( $body.hasClass('no-transition') ) { return true; }
627
628			if( !$().animsition ) {
629				$body.addClass('no-transition');
630				console.log('pageTransition: Animsition not Defined.');
631				return true;
632			}
633
634			window.onpageshow = function(event) {
635				if(event.persisted) {
636					window.location.reload();
637				}
638			};
639
640			var animationIn = $body.attr('data-animation-in'),
641				animationOut = $body.attr('data-animation-out'),
642				durationIn = $body.attr('data-speed-in'),
643				durationOut = $body.attr('data-speed-out'),
644				loaderTimeOut = $body.attr('data-loader-timeout'),
645				loaderStyle = $body.attr('data-loader'),
646				loaderColor = $body.attr('data-loader-color'),
647				loaderStyleHtml = $body.attr('data-loader-html'),
648				loaderBgStyle = '',
649				loaderBorderStyle = '',
650				loaderBgClass = '',
651				loaderBorderClass = '',
652				loaderBgClass2 = '',
653				loaderBorderClass2 = '';
654
655			if( !animationIn ) { animationIn = 'fadeIn'; }
656			if( !animationOut ) { animationOut = 'fadeOut'; }
657			if( !durationIn ) { durationIn = 1500; }
658			if( !durationOut ) { durationOut = 800; }
659			if( !loaderStyleHtml ) { loaderStyleHtml = '<div class="css3-spinner-bounce1"></div><div class="css3-spinner-bounce2"></div><div class="css3-spinner-bounce3"></div>'; }
660
661			if( !loaderTimeOut ) {
662				loaderTimeOut = false;
663			} else {
664				loaderTimeOut = Number(loaderTimeOut);
665			}
666
667			if( loaderColor ) {
668				if( loaderColor == 'theme' ) {
669					loaderBgClass = ' bgcolor';
670					loaderBorderClass = ' border-color';
671					loaderBgClass2 = ' class="bgcolor"';
672					loaderBorderClass2 = ' class="border-color"';
673				} else {
674					loaderBgStyle = ' style="background-color:'+ loaderColor +';"';
675					loaderBorderStyle = ' style="border-color:'+ loaderColor +';"';
676				}
677				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>'
678			}
679
680			if( loaderStyle == '2' ) {
681				loaderStyleHtml = '<div class="css3-spinner-flipper'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
682			} else if( loaderStyle == '3' ) {
683				loaderStyleHtml = '<div class="css3-spinner-double-bounce1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-double-bounce2'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
684			} else if( loaderStyle == '4' ) {
685				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>';
686			} else if( loaderStyle == '5' ) {
687				loaderStyleHtml = '<div class="css3-spinner-cube1'+ loaderBgClass +'"'+ loaderBgStyle +'></div><div class="css3-spinner-cube2'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
688			} else if( loaderStyle == '6' ) {
689				loaderStyleHtml = '<div class="css3-spinner-scaler'+ loaderBgClass +'"'+ loaderBgStyle +'></div>';
690			} else if( loaderStyle == '7' ) {
691				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>';
692			} else if( loaderStyle == '8' ) {
693				loaderStyleHtml = '<div class="css3-spinner-clip-rotate"><div'+ loaderBorderClass2 + loaderBorderStyle +'></div></div>';
694			} else if( loaderStyle == '9' ) {
695				loaderStyleHtml = '<div class="css3-spinner-ball-rotate"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
696			} else if( loaderStyle == '10' ) {
697				loaderStyleHtml = '<div class="css3-spinner-zig-zag"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
698			} else if( loaderStyle == '11' ) {
699				loaderStyleHtml = '<div class="css3-spinner-triangle-path"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
700			} else if( loaderStyle == '12' ) {
701				loaderStyleHtml = '<div class="css3-spinner-ball-scale-multiple"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
702			} else if( loaderStyle == '13' ) {
703				loaderStyleHtml = '<div class="css3-spinner-ball-pulse-sync"><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div><div'+ loaderBgClass2 + loaderBgStyle +'></div></div>';
704			} else if( loaderStyle == '14' ) {
705				loaderStyleHtml = '<div class="css3-spinner-scale-ripple"><div'+ loaderBorderClass2 + loaderBorderStyle +'></div><div'+ loaderBorderClass2 + loaderBorderStyle +'></div><div'+ loaderBorderClass2 + loaderBorderStyle +'></div></div>';
706			}
707
708			$wrapper.animsition({
709				inClass : animationIn,
710				outClass : animationOut,
711				inDuration : Number(durationIn),
712				outDuration : Number(durationOut),
713				linkElement : '#primary-menu:not(.on-click) ul li a:not([target="_blank"]):not([href*="#"]):not([data-lightbox]):not([href^="mailto"]):not([href^="tel"]):not([href^="sms"]):not([href^="call"])',
714				loading : true,
715				loadingParentElement : 'body',
716				loadingClass : 'css3-spinner',
717				loadingHtml : loaderStyleHtml,
718				unSupportCss : [
719								 'animation-duration',
720								 '-webkit-animation-duration',
721								 '-o-animation-duration'
722							   ],
723				overlay : false,
724				overlayClass : 'animsition-overlay-slide',
725				overlayParentElement : 'body',
726				timeOut: loaderTimeOut
727			});
728		},
729
730		lazyLoad: function() {
731			var lazyLoadEl = $('[data-lazyload]');
732
733			if( !$().appear ) {
734				console.log('lazyLoad: Appear not Defined.');
735				return true;
736			}
737
738			if( lazyLoadEl.length > 0 ) {
739				lazyLoadEl.each( function(){
740					var element = $(this),
741						elementImg = element.attr( 'data-lazyload' );
742
743					element.attr( 'src', 'images/blank.svg' ).css({ 'background': 'url(images/preloader.gif) no-repeat center center #FFF' });
744
745					element.appear(function () {
746						element.css({ 'background': 'none' }).removeAttr( 'width' ).removeAttr( 'height' ).attr('src', elementImg);
747					},{accX: 0, accY: 120},'easeInCubic');
748				});
749			}
750		},
751
752		topScrollOffset: function() {
753			var topOffsetScroll = 0;
754
755			if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
756				if( $header.hasClass('sticky-header') ) {
757					if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 100; } else { topOffsetScroll = 144; }
758				} else {
759					if( $pagemenu.hasClass('dots-menu') ) { topOffsetScroll = 140; } else { topOffsetScroll = 184; }
760				}
761
762				if( !$pagemenu.length ) {
763					if( $header.hasClass('sticky-header') ) { topOffsetScroll = 100; } else { topOffsetScroll = 140; }
764				}
765			} else {
766				topOffsetScroll = 40;
767			}
768
769			return topOffsetScroll;
770		},
771
772		defineColumns: function( element ){
773			var column = 4,
774				lgCol = element.attr('data-lg-col'),
775				mdCol = element.attr('data-md-col'),
776				smCol = element.attr('data-sm-col'),
777				xsCol = element.attr('data-xs-col'),
778				xxsCol = element.attr('data-xxs-col');
779
780			if( element.hasClass('portfolio-full') ) {
781				if( element.hasClass('portfolio-3') ) column = 3;
782				else if( element.hasClass('portfolio-5') ) column = 5;
783				else if( element.hasClass('portfolio-6') ) column = 6;
784				else column = 4;
785
786				if( $body.hasClass('device-sm') && ( column == 4 || column == 5 || column == 6 ) ) {
787					column = 3;
788				} else if( $body.hasClass('device-xs') && ( column == 3 || column == 4 || column == 5 || column == 6 ) ) {
789					column = 2;
790				} else if( $body.hasClass('device-xxs') ) {
791					column = 1;
792				}
793
794			} else if( element.hasClass('masonry-thumbs') ) {
795
796				if( element.hasClass('col-2') ) column = 2;
797				else if( element.hasClass('col-3') ) column = 3;
798				else if( element.hasClass('col-5') ) column = 5;
799				else if( element.hasClass('col-6') ) column = 6;
800				else column = 4;
801
802			}
803
804			if( $body.hasClass('device-lg') ) {
805				if( lgCol ) { column = Number(lgCol); }
806			} else if( $body.hasClass('device-md') ) {
807				if( mdCol ) { column = Number(mdCol); }
808			} else if( $body.hasClass('device-sm') ) {
809				if( smCol ) { column = Number(smCol); }
810			} else if( $body.hasClass('device-xs') ) {
811				if( xsCol ) { column = Number(xsCol); }
812			} else if( $body.hasClass('device-xxs') ) {
813				if( xxsCol ) { column = Number(xxsCol); }
814			}
815
816			return column;
817		},
818
819		setFullColumnWidth: function( element ){
820
821			if( !$().isotope ) {
822				console.log('setFullColumnWidth: Isotope not Defined.');
823				return true;
824			}
825
826			element.css({ 'width': '' });
827
828			if( element.hasClass('portfolio-full') ) {
829				var columns = SEMICOLON.initialize.defineColumns( element );
830				var containerWidth = element.width();
831				if( containerWidth == ( Math.floor(containerWidth/columns) * columns ) ) { containerWidth = containerWidth - 1; }
832				var postWidth = Math.floor(containerWidth/columns);
833				if( $body.hasClass('device-xxs') ) { var deviceSmallest = 1; } else { var deviceSmallest = 0; }
834				element.find(".portfolio-item").each(function(index){
835					if( deviceSmallest == 0 && $(this).hasClass('wide') ) { var elementSize = ( postWidth*2 ); } else { var elementSize = postWidth; }
836					$(this).css({"width":elementSize+"px"});
837				});
838			} else if( element.hasClass('masonry-thumbs') ) {
839				var columns = SEMICOLON.initialize.defineColumns( element ),
840					containerWidth = element.innerWidth();
841
842				if( containerWidth == windowWidth ){
843					containerWidth = windowWidth*1.005;
844					element.css({ 'width': containerWidth+'px' });
845				}
846
847				var postWidth = (containerWidth/columns);
848
849				postWidth = Math.floor(postWidth);
850
851				if( ( postWidth * columns ) >= containerWidth ) { element.css({ 'margin-right': '-1px' }); }
852
853				element.children('a').css({"width":postWidth+"px"});
854
855				var firstElementWidth = element.find('a:eq(0)').outerWidth();
856
857				element.isotope({
858					masonry: {
859						columnWidth: firstElementWidth
860					}
861				});
862
863				var bigImageNumbers = element.attr('data-big');
864				if( bigImageNumbers ) {
865					bigImageNumbers = bigImageNumbers.split(",");
866					var bigImageNumber = '',
867						bigi = '';
868					for( bigi = 0; bigi < bigImageNumbers.length; bigi++ ){
869						bigImageNumber = Number(bigImageNumbers[bigi]) - 1;
870						element.find('a:eq('+bigImageNumber+')').css({ width: firstElementWidth*2 + 'px' });
871					}
872					var t = setTimeout( function(){
873						element.isotope('layout');
874					}, 1000 );
875				}
876			}
877
878		},
879
880		aspectResizer: function(){
881			var $aspectResizerEl = $('.aspect-resizer');
882			if( $aspectResizerEl.length > 0 ) {
883				$aspectResizerEl.each( function(){
884					var element = $(this),
885						elementW = element.inlineStyle('width'),
886						elementH = element.inlineStyle('height'),
887						elementPW = element.parent().innerWidth();
888				});
889			}
890		},
891
892		dataResponsiveClasses: function(){
893			var $dataClassXxs = $('[data-class-xxs]'),
894				$dataClassXs = $('[data-class-xs]'),
895				$dataClassSm = $('[data-class-sm]'),
896				$dataClassMd = $('[data-class-md]'),
897				$dataClassLg = $('[data-class-lg]');
898
899			if( $dataClassXxs.length > 0 ) {
900				$dataClassXxs.each( function(){
901					var element = $(this),
902						elementClass = element.attr('data-class-xxs'),
903						elementClassDelete = element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg');
904
905					if( $body.hasClass('device-xxs') ) {
906						element.removeClass( elementClassDelete );
907						element.addClass( elementClass );
908					}
909				});
910			}
911
912			if( $dataClassXs.length > 0 ) {
913				$dataClassXs.each( function(){
914					var element = $(this),
915						elementClass = element.attr('data-class-xs'),
916						elementClassDelete = element.attr('data-class-xxs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg');
917
918					if( $body.hasClass('device-xs') ) {
919						element.removeClass( elementClassDelete );
920						element.addClass( elementClass );
921					}
922				});
923			}
924
925			if( $dataClassSm.length > 0 ) {
926				$dataClassSm.each( function(){
927					var element = $(this),
928						elementClass = element.attr('data-class-sm'),
929						elementClassDelete = element.attr('data-class-xxs') + ' ' + element.attr('data-class-xs') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg');
930
931					if( $body.hasClass('device-sm') ) {
932						element.removeClass( elementClassDelete );
933						element.addClass( elementClass );
934					}
935				});
936			}
937
938			if( $dataClassMd.length > 0 ) {
939				$dataClassMd.each( function(){
940					var element = $(this),
941						elementClass = element.attr('data-class-md'),
942						elementClassDelete = element.attr('data-class-xxs') + ' ' + element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-lg');
943
944					if( $body.hasClass('device-md') ) {
945						element.removeClass( elementClassDelete );
946						element.addClass( elementClass );
947					}
948				});
949			}
950
951			if( $dataClassLg.length > 0 ) {
952				$dataClassLg.each( function(){
953					var element = $(this),
954						elementClass = element.attr('data-class-lg'),
955						elementClassDelete = element.attr('data-class-xxs') + ' ' + element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-md');
956
957					if( $body.hasClass('device-lg') ) {
958						element.removeClass( elementClassDelete );
959						element.addClass( elementClass );
960					}
961				});
962			}
963		},
964
965		dataResponsiveHeights: function(){
966			var $dataHeightXxs = $('[data-height-xxs]'),
967				$dataHeightXs = $('[data-height-xs]'),
968				$dataHeightSm = $('[data-height-sm]'),
969				$dataHeightMd = $('[data-height-md]'),
970				$dataHeightLg = $('[data-height-lg]');
971
972			if( $dataHeightXxs.length > 0 ) {
973				$dataHeightXxs.each( function(){
974					var element = $(this),
975						elementHeight = element.attr('data-height-xxs');
976
977					if( $body.hasClass('device-xxs') ) {
978						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
979					}
980				});
981			}
982
983			if( $dataHeightXs.length > 0 ) {
984				$dataHeightXs.each( function(){
985					var element = $(this),
986						elementHeight = element.attr('data-height-xs');
987
988					if( $body.hasClass('device-xs') ) {
989						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
990					}
991				});
992			}
993
994			if( $dataHeightSm.length > 0 ) {
995				$dataHeightSm.each( function(){
996					var element = $(this),
997						elementHeight = element.attr('data-height-sm');
998
999					if( $body.hasClass('device-sm') ) {
1000						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
1001					}
1002				});
1003			}
1004
1005			if( $dataHeightMd.length > 0 ) {
1006				$dataHeightMd.each( function(){
1007					var element = $(this),
1008						elementHeight = element.attr('data-height-md');
1009
1010					if( $body.hasClass('device-md') ) {
1011						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
1012					}
1013				});
1014			}
1015
1016			if( $dataHeightLg.length > 0 ) {
1017				$dataHeightLg.each( function(){
1018					var element = $(this),
1019						elementHeight = element.attr('data-height-lg');
1020
1021					if( $body.hasClass('device-lg') ) {
1022						if( elementHeight != '' ) { element.css( 'height', elementHeight ); }
1023					}
1024				});
1025			}
1026		},
1027
1028		stickFooterOnSmall: function(){
1029			var windowH = $window.height(),
1030				wrapperH = $wrapper.height();
1031
1032			if( !$body.hasClass('sticky-footer') && $footer.length > 0 && $wrapper.has('#footer') ) {
1033				if( windowH > wrapperH ) {
1034					$footer.css({ 'margin-top': ( windowH - wrapperH ) });
1035				}
1036			}
1037		},
1038
1039		stickyFooter: function(){
1040			if( $body.hasClass('sticky-footer') && $footer.length > 0 && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
1041				var stickyFooter = $footer.outerHeight();
1042				$content.css({ 'margin-bottom': stickyFooter });
1043			} else {
1044				$content.css({ 'margin-bottom': 0 });
1045			}
1046		}
1047
1048	};
1049
1050	SEMICOLON.header = {
1051
1052		init: function(){
1053
1054			SEMICOLON.header.superfish();
1055			SEMICOLON.header.menufunctions();
1056			SEMICOLON.header.fullWidthMenu();
1057			SEMICOLON.header.overlayMenu();
1058			SEMICOLON.header.stickyMenu();
1059			SEMICOLON.header.stickyPageMenu();
1060			SEMICOLON.header.sideHeader();
1061			SEMICOLON.header.sidePanel();
1062			SEMICOLON.header.onePageScroll();
1063			SEMICOLON.header.onepageScroller();
1064			SEMICOLON.header.logo();
1065			SEMICOLON.header.topsearch();
1066			SEMICOLON.header.topcart();
1067
1068		},
1069
1070		superfish: function(){
1071
1072			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1073				$('#primary-menu ul ul, #primary-menu ul .mega-menu-content').css('display', 'block');
1074				SEMICOLON.header.menuInvert();
1075				$('#primary-menu ul ul, #primary-menu ul .mega-menu-content').css('display', '');
1076			}
1077
1078			if( !$().superfish ) {
1079				$body.addClass('no-superfish');
1080				console.log('superfish: Superfish not Defined.');
1081				return true;
1082			}
1083
1084			$('body:not(.side-header) #primary-menu:not(.on-click) > ul, body:not(.side-header) #primary-menu:not(.on-click) > div > ul:not(.dropdown-menu), .top-links:not(.on-click) > ul').superfish({
1085				popUpSelector: 'ul,.mega-menu-content,.top-link-section',
1086				delay: 250,
1087				speed: 350,
1088				animation: {opacity:'show'},
1089				animationOut:  {opacity:'hide'},
1090				cssArrows: false,
1091				onShow: function(){
1092					var megaMenuContent = $(this);
1093					if( megaMenuContent.find('.owl-carousel.customjs').length > 0 ) {
1094						megaMenuContent.find('.owl-carousel').removeClass('customjs');
1095						SEMICOLON.widget.carousel();
1096					}
1097
1098					if( megaMenuContent.hasClass('mega-menu-content') && megaMenuContent.find('.widget').length > 0 ) {
1099						if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1100							setTimeout( function(){ SEMICOLON.initialize.commonHeight( megaMenuContent ); }, 200);
1101						} else {
1102							megaMenuContent.children().height('');
1103						}
1104					}
1105				}
1106			});
1107
1108			$('body.side-header #primary-menu:not(.on-click) > ul').superfish({
1109				popUpSelector: 'ul',
1110				delay: 250,
1111				speed: 350,
1112				animation: {opacity:'show',height:'show'},
1113				animationOut:  {opacity:'hide',height:'hide'},
1114				cssArrows: false
1115			});
1116
1117		},
1118
1119		menuInvert: function() {
1120
1121			$('#primary-menu .mega-menu-content, #primary-menu ul ul').each( function( index, element ){
1122				var $menuChildElement = $(element),
1123					menuChildOffset = $menuChildElement.offset(),
1124					menuChildWidth = $menuChildElement.width(),
1125					menuChildLeft = menuChildOffset.left;
1126
1127				if(windowWidth - (menuChildWidth + menuChildLeft) < 0) {
1128					$menuChildElement.addClass('menu-pos-invert');
1129				}
1130			});
1131
1132		},
1133
1134		menufunctions: function(){
1135
1136			$( '#primary-menu ul li:has(ul)' ).addClass('sub-menu');
1137			$( '.top-links ul li:has(ul) > a, #primary-menu.with-arrows > ul > li:has(ul) > a > div, #primary-menu.with-arrows > div > ul > li:has(ul) > a > div, #page-menu nav ul li:has(ul) > a > div' ).append( '<i class="icon-angle-down"></i>' );
1138			$( '.top-links > ul' ).addClass( 'clearfix' );
1139
1140			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1141				$('#primary-menu.sub-title > ul > li').hover(function() {
1142					$(this).prev().css({ backgroundImage : 'none' });
1143				}, function() {
1144					$(this).prev().css({ backgroundImage : 'url("images/icons/menu-divider.png")' });
1145				});
1146
1147				$('#primary-menu.sub-title').children('ul').children('.current').prev().css({ backgroundImage : 'none' });
1148			}
1149
1150			$('#primary-menu.on-click li:has(ul) > a').on( 'click', function(e){
1151				$(this).parents('.sub-menu').siblings().find('ul,.mega-menu-content').removeClass('show');
1152				$(this).parent('li').children('ul,.mega-menu-content').toggleClass('show');
1153				e.preventDefault();
1154			});
1155
1156			// var responsiveThreshold = $header.attr('data-responsive-under');
1157			// if( !responsiveThreshold ) { responsiveThreshold = 992; }
1158
1159			// if( windowWidth < Number( responsiveThreshold ) ) {
1160			// 	$body.addClass('mobile-header-active');
1161			// } else {
1162			// 	$body.removeClass('mobile-header-active');
1163			// }
1164
1165			if( SEMICOLON.isMobile.Android() ) {
1166				$( '#primary-menu ul li.sub-menu' ).children('a').on('touchstart', function(e){
1167					if( !$(this).parent('li.sub-menu').hasClass('sfHover') ) {
1168						e.preventDefault();
1169					}
1170				});
1171			}
1172
1173			if( SEMICOLON.isMobile.Windows() ) {
1174				if( $().superfish ){
1175					$('#primary-menu > ul, #primary-menu > div > ul,.top-links > ul').superfish('destroy').addClass('windows-mobile-menu');
1176				} else {
1177					$('#primary-menu > ul, #primary-menu > div > ul,.top-links > ul').addClass('windows-mobile-menu');
1178					console.log('menufunctions: Superfish not defined.');
1179				}
1180
1181				$( '#primary-menu ul li:has(ul)' ).append('<a href="#" class="wn-submenu-trigger"><i class="icon-angle-down"></i></a>');
1182
1183				$( '#primary-menu ul li.sub-menu' ).children('a.wn-submenu-trigger').click( function(e){
1184					$(this).parent().toggleClass('open');
1185					$(this).parent().find('> ul, > .mega-menu-content').stop(true,true).toggle();
1186					return false;
1187				});
1188			}
1189
1190		},
1191
1192		fullWidthMenu: function(){
1193			if( $body.hasClass('stretched') ) {
1194				if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); }
1195				if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 60 }); }
1196			} else {
1197				if( $header.find('.container-fullwidth').length > 0 ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 120 }); }
1198				if( $header.hasClass('full-header') ) { $('.mega-menu .mega-menu-content').css({ 'width': $wrapper.width() - 80 }); }
1199			}
1200		},
1201
1202		overlayMenu: function(){
1203			if( $body.hasClass('overlay-menu') ) {
1204				var overlayMenuItem = $('#primary-menu').children('ul').children('li'),
1205					overlayMenuItemHeight = overlayMenuItem.outerHeight(),
1206					overlayMenuItemTHeight = overlayMenuItem.length * overlayMenuItemHeight,
1207					firstItemOffset = ( $window.height() - overlayMenuItemTHeight ) / 2;
1208
1209				$('#primary-menu').children('ul').children('li:first-child').css({ 'margin-top': firstItemOffset+'px' });
1210			}
1211		},
1212
1213		stickyMenu: function( headerOffset ){
1214			if ($window.scrollTop() > headerOffset) {
1215				if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1216					$('body:not(.side-header) #header:not(.no-sticky)').addClass('sticky-header');
1217					if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
1218					SEMICOLON.header.stickyMenuClass();
1219				} else if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) {
1220					if( $body.hasClass('sticky-responsive-menu') ) {
1221						$('#header:not(.no-sticky)').addClass('responsive-sticky-header');
1222						SEMICOLON.header.stickyMenuClass();
1223					}
1224				}
1225			} else {
1226				SEMICOLON.header.removeStickyness();
1227			}
1228		},
1229
1230		stickyPageMenu: function( pageMenuOffset ){
1231			if ($window.scrollTop() > pageMenuOffset) {
1232				if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1233					$('#page-menu:not(.dots-menu,.no-sticky)').addClass('sticky-page-menu');
1234				} else if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) {
1235					if( $body.hasClass('sticky-responsive-pagemenu') ) {
1236						$('#page-menu:not(.dots-menu,.no-sticky)').addClass('sticky-page-menu');
1237					}
1238				}
1239			} else {
1240				$('#page-menu:not(.dots-menu,.no-sticky)').removeClass('sticky-page-menu');
1241			}
1242		},
1243
1244		removeStickyness: function(){
1245			if( $header.hasClass('sticky-header') ){
1246				$('body:not(.side-header) #header:not(.no-sticky)').removeClass('sticky-header');
1247				$header.removeClass().addClass(oldHeaderClasses);
1248				$headerWrap.removeClass().addClass(oldHeaderWrapClasses);
1249				if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
1250				SEMICOLON.slider.swiperSliderMenu();
1251				SEMICOLON.slider.revolutionSliderMenu();
1252			}
1253			if( $header.hasClass('responsive-sticky-header') ){
1254				$('body.sticky-responsive-menu #header').removeClass('responsive-sticky-header');
1255			}
1256			if( ( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ) && ( typeof responsiveMenuClasses === 'undefined' ) ) {
1257				$header.removeClass().addClass(oldHeaderClasses);
1258				$headerWrap.removeClass().addClass(oldHeaderWrapClasses);
1259				if( !$headerWrap.hasClass('force-not-dark') ) { $headerWrap.removeClass('not-dark'); }
1260			}
1261		},
1262
1263		sideHeader: function(){
1264			$("#header-trigger").click(function(){
1265				$('body.open-header').toggleClass("side-header-open");
1266				return false;
1267			});
1268		},
1269
1270		sidePanel: function(){
1271			$(".side-panel-trigger").click(function(){
1272				$body.toggleClass("side-panel-open");
1273				if( $body.hasClass('device-touch') && $body.hasClass('side-push-panel') ) {
1274					$body.toggleClass("ohidden");
1275				}
1276				return false;
1277			});
1278		},
1279
1280		onePageScroll: function(){
1281			if( $onePageMenuEl.length > 0 ){
1282				var onePageSpeed = $onePageMenuEl.attr('data-speed'),
1283					onePageOffset = $onePageMenuEl.attr('data-offset'),
1284					onePageEasing = $onePageMenuEl.attr('data-easing');
1285
1286				if( !onePageSpeed ) { onePageSpeed = 1000; }
1287				if( !onePageEasing ) { onePageEasing = 'easeOutQuad'; }
1288
1289				$onePageMenuEl.find('a[data-href]').click(function(){
1290					var element = $(this),
1291						divScrollToAnchor = element.attr('data-href'),
1292						divScrollSpeed = element.attr('data-speed'),
1293						divScrollOffset = element.attr('data-offset'),
1294						divScrollEasing = element.attr('data-easing');
1295
1296					if( $( divScrollToAnchor ).length > 0 ) {
1297
1298						if( !onePageOffset ) {
1299							var onePageOffsetG = SEMICOLON.initialize.topScrollOffset();
1300						} else {
1301							var onePageOffsetG = onePageOffset;
1302						}
1303
1304						if( !divScrollSpeed ) { divScrollSpeed = onePageSpeed; }
1305						if( !divScrollOffset ) { divScrollOffset = onePageOffsetG; }
1306						if( !divScrollEasing ) { divScrollEasing = onePageEasing; }
1307
1308						if( $onePageMenuEl.hasClass('no-offset') ) { divScrollOffset = 0; }
1309
1310						onePageGlobalOffset = Number(divScrollOffset);
1311
1312						$onePageMenuEl.find('li').removeClass('current');
1313						$onePageMenuEl.find('a[data-href="' + divScrollToAnchor + '"]').parent('li').addClass('current');
1314
1315						if( windowWidth < 768 || $body.hasClass('overlay-menu') ) {
1316							if( $('#primary-menu').find('ul.mobile-primary-menu').length > 0 ) {
1317								$('#primary-menu > ul.mobile-primary-menu, #primary-menu > div > ul.mobile-primary-menu').toggleClass('show', false);
1318							} else {
1319								$('#primary-menu > ul, #primary-menu > div > ul').toggleClass('show', false);
1320							}
1321							$pagemenu.toggleClass('pagemenu-active', false);
1322							$body.toggleClass('primary-menu-open', false);
1323						}
1324
1325						$('html,body').stop(true).animate({
1326							'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset)
1327						}, Number(divScrollSpeed), divScrollEasing);
1328
1329						onePageGlobalOffset = Number(divScrollOffset);
1330					}
1331
1332					return false;
1333				});
1334			}
1335		},
1336
1337		onepageScroller: function(){
1338			$onePageMenuEl.find('li').removeClass('current');
1339			$onePageMenuEl.find('a[data-href="#' + SEMICOLON.header.onePageCurrentSection() + '"]').parent('li').addClass('current');
1340		},
1341
1342		onePageCurrentSection: function(){
1343			var currentOnePageSection = 'home',
1344				headerHeight = $headerWrap.outerHeight();
1345
1346			if( $body.hasClass('side-header') ) { headerHeight = 0; }
1347
1348			$pageSectionEl.each(function(index) {
1349				var h = $(this).offset().top;
1350				var y = $window.scrollTop();
1351
1352				var offsetScroll = headerHeight + onePageGlobalOffset;
1353
1354				if( y + offsetScroll >= h && y < h + $(this).height() && $(this).attr('id') != currentOnePageSection ) {
1355					currentOnePageSection = $(this).attr('id');
1356				}
1357			});
1358
1359			return currentOnePageSection;
1360		},
1361
1362		logo: function(){
1363			if( ( $header.hasClass('dark') || $body.hasClass('dark') ) && !$headerWrap.hasClass('not-dark') ) {
1364				if( defaultDarkLogo ){ defaultLogo.find('img').attr('src', defaultDarkLogo); }
1365				if( retinaDarkLogo ){ retinaLogo.find('img').attr('src', retinaDarkLogo); }
1366			} else {
1367				if( defaultLogoImg ){ defaultLogo.find('img').attr('src', defaultLogoImg); }
1368				if( retinaLogoImg ){ retinaLogo.find('img').attr('src', retinaLogoImg); }
1369			}
1370			if( $header.hasClass('sticky-header') ) {
1371				if( defaultStickyLogo ){ defaultLogo.find('img').attr('src', defaultStickyLogo); }
1372				if( retinaStickyLogo ){ retinaLogo.find('img').attr('src', retinaStickyLogo); }
1373			}
1374			if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
1375				if( defaultMobileLogo ){ defaultLogo.find('img').attr('src', defaultMobileLogo); }
1376				if( retinaMobileLogo ){ retinaLogo.find('img').attr('src', retinaMobileLogo); }
1377			}
1378		},
1379
1380		stickyMenuClass: function(){
1381			if( stickyMenuClasses ) { var newClassesArray = stickyMenuClasses.split(/ +/); } else { var newClassesArray = ''; }
1382			var noOfNewClasses = newClassesArray.length;
1383
1384			if( noOfNewClasses > 0 ) {
1385				var i = 0;
1386				for( i=0; i<noOfNewClasses; i++ ) {
1387					if( newClassesArray[i] == 'not-dark' ) {
1388						$header.removeClass('dark');
1389						$headerWrap.addClass('not-dark');
1390					}
1390 else if( newClassesArray[i] == 'dark' ) {
1391						$headerWrap.removeClass('not-dark force-not-dark');
1392						if( !$header.hasClass( newClassesArray[i] ) ) {
1393							$header.addClass( newClassesArray[i] );
1394						}
1395					} else if( !$header.hasClass( newClassesArray[i] ) ) {
1396						$header.addClass( newClassesArray[i] );
1397					}
1398				}
1399			}
1400		},
1401
1402		responsiveMenuClass: function(){
1403			if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') || $body.hasClass('device-sm') ){
1404				if( responsiveMenuClasses ) { var newClassesArray = responsiveMenuClasses.split(/ +/); } else { var newClassesArray = ''; }
1405				var noOfNewClasses = newClassesArray.length;
1406
1407				if( noOfNewClasses > 0 ) {
1408					var i = 0;
1409					for( i=0; i<noOfNewClasses; i++ ) {
1410						if( newClassesArray[i] == 'not-dark' ) {
1411							$header.removeClass('dark');
1412							$headerWrap.addClass('not-dark');
1413						} else if( newClassesArray[i] == 'dark' ) {
1414							$headerWrap.removeClass('not-dark force-not-dark');
1415							if( !$header.hasClass( newClassesArray[i] ) ) {
1416								$header.addClass( newClassesArray[i] );
1417							}
1418						} else if( !$header.hasClass( newClassesArray[i] ) ) {
1419							$header.addClass( newClassesArray[i] );
1420						}
1421					}
1422				}
1423				SEMICOLON.header.logo();
1424			}
1425		},
1426
1427		topsocial: function(){
1428			if( $topSocialEl.length > 0 ){
1429				if( $body.hasClass('device-md') || $body.hasClass('device-lg') ) {
1430					$topSocialEl.show();
1431					$topSocialEl.find('a').css({width: 40});
1432
1433					$topSocialEl.find('.ts-text').each( function(){
1434						var $clone = $(this).clone().css({'visibility': 'hidden', 'display': 'inline-block', 'font-size': '13px', 'font-weight':'bold'}).appendTo($body),
1435							cloneWidth = $clone.innerWidth() + 52;
1436						$(this).parent('a').attr('data-hover-width',cloneWidth);
1437						$clone.remove();
1438					});
1439
1440					$topSocialEl.find('a').hover(function() {
1441						if( $(this).find('.ts-text').length > 0 ) {
1442							$(this).css({width: $(this).attr('data-hover-width')});
1443						}
1444					}, function() {
1445						$(this).css({width: 40});
1446					});
1447				} else {
1448					$topSocialEl.show();
1449					$topSocialEl.find('a').css({width: 40});
1450
1451					$topSocialEl.find('a').each(function() {
1452						var topIconTitle = $(this).find('.ts-text').text();
1453						$(this).attr('title', topIconTitle);
1454					});
1455
1456					$topSocialEl.find('a').hover(function() {
1457						$(this).css({width: 40});
1458					}, function() {
1459						$(this).css({width: 40});
1460					});
1461
1462					if( $body.hasClass('device-xxs') ) {
1463						$topSocialEl.hide();
1464						$topSocialEl.slice(0, 8).show();
1465					}
1466				}
1467			}
1468		},
1469
1470		topsearch: function(){
1471
1472			$(document).on('click', function(event) {
1473				if (!$(event.target).closest('#top-search').length) { $body.toggleClass('top-search-open', false); }
1474				if (!$(event.target).closest('#top-cart').length) { $topCart.toggleClass('top-cart-open', false); }
1475				if (!$(event.target).closest('#page-menu').length) { $pagemenu.toggleClass('pagemenu-active', false); }
1476				if (!$(event.target).closest('#side-panel').length) { $body.toggleClass('side-panel-open', false); }
1477				if (!$(event.target).closest('#primary-menu').length) { $('#primary-menu.on-click > ul').find('.show').removeClass('show'); }
1478				if (!$(event.target).closest('#primary-menu.mobile-menu-off-canvas > ul').length) { $('#primary-menu.mobile-menu-off-canvas > ul').toggleClass('show', false); }
1479				if (!$(event.target).closest('#primary-menu.mobile-menu-off-canvas > div > ul').length) { $('#primary-menu.mobile-menu-off-canvas > div > ul').toggleClass('show', false); }
1480			});
1481
1482			$("#top-search-trigger").click(function(e){
1483				$body.toggleClass('top-search-open');
1484				$topCart.toggleClass('top-cart-open', false);
1485				$( '#primary-menu > ul, #primary-menu > div > ul' ).toggleClass("show", false);
1486				$pagemenu.toggleClass('pagemenu-active', false);
1487				if ($body.hasClass('top-search-open')){
1488					$topSearch.find('input').focus();
1489				}
1490				e.stopPropagation();
1491				e.preventDefault();
1492			});
1493
1494		},
1495
1496		topcart: function(){
1497
1498			$("#top-cart-trigger").click(function(e){
1499				$pagemenu.toggleClass('pagemenu-active', false);
1500				$topCart.toggleClass('top-cart-open');
1501				e.stopPropagation();
1502				e.preventDefault();
1503			});
1504
1505		}
1506
1507	};
1508
1509	SEMICOLON.slider = {
1510
1511		init: function() {
1512
1513			SEMICOLON.slider.sliderParallaxDimensions();
1514			SEMICOLON.slider.sliderRun();
1515			SEMICOLON.slider.sliderParallax();
1516			SEMICOLON.slider.sliderElementsFade();
1517			SEMICOLON.slider.captionPosition();
1518
1519		},
1520
1521		sliderParallaxDimensions: function(){
1522			if( $sliderParallaxEl.find('.slider-parallax-inner').length < 1 ) { return true; }
1523
1524			if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ) {
1525				var parallaxElHeight = $sliderParallaxEl.outerHeight(),
1526					parallaxElWidth = $sliderParallaxEl.outerWidth();
1527
1528				if( $sliderParallaxEl.hasClass('revslider-wrap') || $sliderParallaxEl.find('.carousel-widget').length > 0 ) {
1529					parallaxElHeight = $sliderParallaxEl.find('.slider-parallax-inner').children().first().outerHeight();
1530					$sliderParallaxEl.height( parallaxElHeight );
1531				}
1532
1533				$sliderParallaxEl.find('.slider-parallax-inner').height( parallaxElHeight );
1534
1535				if( $body.hasClass('side-header') ) {
1536					$sliderParallaxEl.find('.slider-parallax-inner').width( parallaxElWidth );
1537				}
1538
1539				if( !$body.hasClass('stretched') ) {
1540					parallaxElWidth = $wrapper.outerWidth();
1541					$sliderParallaxEl.find('.slider-parallax-inner').width( parallaxElWidth );
1542				}
1543			} else {
1544				$sliderParallaxEl.find('.slider-parallax-inner').css({ 'width': '', height: '' });
1545			}
1546
1547			if( swiperSlider ) { swiperSlider.update( true ); }
1548		},
1549
1550		sliderRun: function(){
1551
1552			if( typeof Swiper === 'undefined' ) {
1553				console.log('sliderRun: Swiper not Defined.');
1554				return true;
1555			}
1556
1557			if( $slider.hasClass('customjs') ) { return true; }
1558
1559			if( $slider.hasClass('swiper_wrapper') ) {
1560
1561				var element = $slider.filter('.swiper_wrapper'),
1562					elementDirection = element.attr('data-direction'),
1563					elementSpeed = element.attr('data-speed'),
1564					elementAutoPlay = element.attr('data-autoplay'),
1565					elementLoop = element.attr('data-loop'),
1566					elementEffect = element.attr('data-effect'),
1567					elementGrabCursor = element.attr('data-grab'),
1568					slideNumberTotal = element.find('#slide-number-total'),
1569					slideNumberCurrent = element.find('#slide-number-current'),
1570					sliderVideoAutoPlay = element.attr('data-video-autoplay');
1571
1572				if( !elementSpeed ) { elementSpeed = 300; }
1573				if( !elementDirection ) { elementDirection = 'horizontal'; }
1574				if( elementAutoPlay ) { elementAutoPlay = Number( elementAutoPlay ); }
1575				if( elementLoop == 'true' ) { elementLoop = true; } else { elementLoop = false; }
1576				if( !elementEffect ) { elementEffect = 'slide'; }
1577				if( elementGrabCursor == 'false' ) { elementGrabCursor = false; } else { elementGrabCursor = true; }
1578				if( sliderVideoAutoPlay == 'false' ) { sliderVideoAutoPlay = false; } else { sliderVideoAutoPlay = true; }
1579
1580				if( element.find('.swiper-pagination').length > 0 ) {
1581					var elementPagination = '.swiper-pagination',
1582						elementPaginationClickable = true;
1583				} else {
1584					var elementPagination = '',
1585						elementPaginationClickable = false;
1586				}
1587
1588				var elementNavNext = '#slider-arrow-right',
1589					elementNavPrev = '#slider-arrow-left';
1590
1591				swiperSlider = new Swiper( element.find('.swiper-parent') ,{
1592					direction: elementDirection,
1593					speed: Number( elementSpeed ),
1594					autoplay: elementAutoPlay,
1595					loop: elementLoop,
1596					effect: elementEffect,
1597					slidesPerView: 1,
1598					grabCursor: elementGrabCursor,
1599					pagination: elementPagination,
1600					paginationClickable: elementPaginationClickable,
1601					prevButton: elementNavPrev,
1602					nextButton: elementNavNext,
1603					onInit: function(swiper){
1604						SEMICOLON.slider.sliderParallaxDimensions();
1605						element.find('.yt-bg-player').removeClass('customjs');
1606						SEMICOLON.widget.youtubeBgVideo();
1607						$('.swiper-slide-active [data-caption-animate]').each(function(){
1608							var $toAnimateElement = $(this),
1609								toAnimateDelay = $toAnimateElement.attr('data-caption-delay'),
1610								toAnimateDelayTime = 0;
1611							if( toAnimateDelay ) { toAnimateDelayTime = Number( toAnimateDelay ) + 750; } else { toAnimateDelayTime = 750; }
1612							if( !$toAnimateElement.hasClass('animated') ) {
1613								$toAnimateElement.addClass('not-animated');
1614								var elementAnimation = $toAnimateElement.attr('data-caption-animate');
1615								setTimeout(function() {
1616									$toAnimateElement.removeClass('not-animated').addClass( elementAnimation + ' animated');
1617								}, toAnimateDelayTime);
1618							}
1619						});
1620						$('[data-caption-animate]').each(function(){
1621							var $toAnimateElement = $(this),
1622								elementAnimation = $toAnimateElement.attr('data-caption-animate');
1623							if( $toAnimateElement.parents('.swiper-slide').hasClass('swiper-slide-active') ) { return true; }
1624							$toAnimateElement.removeClass('animated').removeClass(elementAnimation).addClass('not-animated');
1625						});
1626						SEMICOLON.slider.swiperSliderMenu();
1627					},
1628					onSlideChangeStart: function(swiper){
1629						if( slideNumberCurrent.length > 0 ){
1630							if( elementLoop == true ) {
1631								slideNumberCurrent.html( Number( element.find('.swiper-slide.swiper-slide-active').attr('data-swiper-slide-index') ) + 1 );
1632							} else {
1633								slideNumberCurrent.html( swiperSlider.activeIndex + 1 );
1634							}
1635						}
1636						$('[data-caption-animate]').each(function(){
1637							var $toAnimateElement = $(this),
1638								elementAnimation = $toAnimateElement.attr('data-caption-animate');
1639							if( $toAnimateElement.parents('.swiper-slide').hasClass('swiper-slide-active') ) { return true; }
1640							$toAnimateElement.removeClass('animated').removeClass(elementAnimation).addClass('not-animated');
1641						});
1642						SEMICOLON.slider.swiperSliderMenu();
1643					},
1644					onSlideChangeEnd: function(swiper){
1645						element.find('.swiper-slide').each(function(){
1646							var slideEl = $(this);
1647							if( slideEl.find('video').length > 0 && sliderVideoAutoPlay == true ) { slideEl.find('video').get(0).pause(); }
1648							if( slideEl.find('.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0 ) { slideEl.find('.yt-bg-player.mb_YTPlayer:not(.customjs)').YTPPause(); }
1649						});
1650						element.find('.swiper-slide:not(".swiper-slide-active")').each(function(){
1651							var slideEl = $(this);
1652							if( slideEl.find('video').length > 0 ) {
1653								if( slideEl.find('video').get(0).currentTime != 0 ) { slideEl.find('video').get(0).currentTime = 0; }
1654							}
1655							if( slideEl.find('.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0 ) {
1656								slideEl.find('.yt-bg-player.mb_YTPlayer:not(.customjs)').YTPGetPlayer().seekTo( slideEl.find('.yt-bg-player.mb_YTPlayer:not(.customjs)').attr('data-start') );
1657							}
1658						});
1659						if( element.find('.swiper-slide.swiper-slide-active').find('video').length > 0 && sliderVideoAutoPlay == true ) { element.find('.swiper-slide.swiper-slide-active').find('video').get(0).play(); }
1660						if( element.find('.swiper-slide.swiper-slide-active').find('.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0 && sliderVideoAutoPlay == true ) { element.find('.swiper-slide.swiper-slide-active').find('.yt-bg-player.mb_YTPlayer:not(.customjs)').YTPPlay(); }
1661
1662						element.find('.swiper-slide.swiper-slide-active [data-caption-animate]').each(function(){
1663							var $toAnimateElement = $(this),
1664								toAnimateDelay = $toAnimateElement.attr('data-caption-delay'),
1665								toAnimateDelayTime = 0;
1666							if( toAnimateDelay ) { toAnimateDelayTime = Number( toAnimateDelay ) + 300; } else { toAnimateDelayTime = 300; }
1667							if( !$toAnimateElement.hasClass('animated') ) {
1668								$toAnimateElement.addClass('not-animated');
1669								var elementAnimation = $toAnimateElement.attr('data-caption-animate');
1670								setTimeout(function() {
1671									$toAnimateElement.removeClass('not-animated').addClass( elementAnimation + ' animated');
1672								}, toAnimateDelayTime);
1673							}
1674						});
1675					}
1676				});
1677
1678				if( slideNumberCurrent.length > 0 ) {
1679					if( elementLoop == true ) {
1680						slideNumberCurrent.html( Number( element.find('.swiper-slide.swiper-slide-active').attr('data-swiper-slide-index') ) + 1 );
1681					} else {
1682						slideNumberCurrent.html( swiperSlider.activeIndex + 1 );
1683					}
1684				}
1685				if( slideNumberTotal.length > 0 ) {
1686					slideNumberTotal.html( element.find('.swiper-slide:not(.swiper-slide-duplicate)').length );
1687				}
1688
1689			}
1690		},
1691
1692		sliderParallaxOffset: function(){
1693			var sliderParallaxOffsetTop = 0;
1694			var headerHeight = $header.outerHeight();
1695			if( $body.hasClass('side-header') || $header.hasClass('transparent-header') ) { headerHeight = 0; }
1696			if( $pageTitle.length > 0 ) {
1697				var pageTitleHeight = $pageTitle.outerHeight();
1698				sliderParallaxOffsetTop = pageTitleHeight + headerHeight;
1699			} else {
1700				sliderParallaxOffsetTop = headerHeight;
1701			}
1702
1703			if( $slider.next('#header').length > 0 ) { sliderParallaxOffsetTop = 0; }
1704
1705			return sliderParallaxOffsetTop;
1706		},
1707
1708		sliderParallax: function(){
1709
1710			if( $sliderParallaxEl.length < 1 ) { return true; }
1711
1712			var parallaxOffsetTop = SEMICOLON.slider.sliderParallaxOffset(),
1713				parallaxElHeight = $sliderParallaxEl.outerHeight();
1714
1715			if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
1716				if( ( parallaxElHeight + parallaxOffsetTop + 50 ) > $window.scrollTop() ){
1717					$sliderParallaxEl.addClass('slider-parallax-visible').removeClass('slider-parallax-invisible');
1718					if ($window.scrollTop() > parallaxOffsetTop) {
1719						if( $sliderParallaxEl.find('.slider-parallax-inner').length > 0 ) {
1720							var tranformAmount = (($window.scrollTop()-parallaxOffsetTop) *-.4 ).toFixed(0),
1721								tranformAmount2 = (($window.scrollTop()-parallaxOffsetTop) *-.15 ).toFixed(0);
1722							$sliderParallaxEl.find('.slider-parallax-inner').css({'transform':'translateY('+ tranformAmount +'px)'});
1723							$('.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY('+ tranformAmount2 +'px)'});
1724						} else {
1725							var tranformAmount = (($window.scrollTop()-parallaxOffsetTop) / 1.5 ).toFixed(0),
1726								tranformAmount2 = (($window.scrollTop()-parallaxOffsetTop) / 7 ).toFixed(0);
1727							$sliderParallaxEl.css({'transform':'translateY('+ tranformAmount +'px)'});
1728							$('.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY('+ -tranformAmount2 +'px)'});
1729						}
1730					} else {
1731						if( $sliderParallaxEl.find('.slider-parallax-inner').length > 0 ) {
1732							$('.slider-parallax-inner,.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY(0px)'});
1733						} else {
1734							$('.slider-parallax,.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY(0px)'});
1735						}
1736					}
1737				} else {
1738					$sliderParallaxEl.addClass('slider-parallax-invisible').removeClass('slider-parallax-visible');
1739				}
1740				if(requesting) {
1741					requestAnimationFrame(function(){
1742						SEMICOLON.slider.sliderParallax();
1743						SEMICOLON.slider.sliderElementsFade();
1744					});
1745				}
1746			} else {
1747				if( $sliderParallaxEl.find('.slider-parallax-inner').length > 0 ) {
1748					$('.slider-parallax-inner,.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY(0px)'});
1749				} else {
1750					$('.slider-parallax,.slider-parallax .slider-caption,.ei-title').css({'transform':'translateY(0px)'});
1751				}
1752			}
1753		},
1754
1755		sliderElementsFade: function(){
1756
1757			if( $sliderParallaxEl.length > 0 ) {
1758				if( ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) && !SEMICOLON.isMobile.any() ) {
1759					var parallaxOffsetTop = SEMICOLON.slider.sliderParallaxOffset(),
1760						parallaxElHeight = $sliderParallaxEl.outerHeight();
1761					if( $slider.length > 0 ) {
1762						if( $header.hasClass('transparent-header') || $('body').hasClass('side-header') ) { var tHeaderOffset = 100; } else { var tHeaderOffset = 0; }
1763						$sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity': 1 - ( ( ( $window.scrollTop() - tHeaderOffset ) *1.85 ) / parallaxElHeight ) });
1764					}
1765				} else {
1766					$sliderParallaxEl.find('#slider-arrow-left,#slider-arrow-right,.vertical-middle:not(.no-fade),.slider-caption,.ei-title,.camera_prev,.camera_next').css({'opacity': 1});
1767				}
1768			}
1769		},
1770
1771		captionPosition: function(){
1772			$slider.find('.slider-caption:not(.custom-caption-pos)').each(function(){
1773				var scapHeight = $(this).outerHeight();
1774				var scapSliderHeight = $slider.outerHeight();
1775				if( $(this).parents('#slider').prev('#header').hasClass('transparent-header') && ( $body.hasClass('device-lg') || $body.hasClass('device-md') ) ) {
1776					if( $(this).parents('#slider').prev('#header').hasClass('floating-header') ) {
1777						$(this).css({ top: ( scapSliderHeight + 160 - scapHeight ) / 2 + 'px' });
1778					} else {
1779						$(this).css({ top: ( scapSliderHeight + 100 - scapHeight ) / 2 + 'px' });
1780					}
1781				} else {
1782					$(this).css({ top: ( scapSliderHeight - scapHeight ) / 2 + 'px' });
1783				}
1784			});
1785		},
1786
1787		swiperSliderMenu: function( onWinLoad ){
1788			onWinLoad = typeof onWinLoad !== 'undefined' ? onWinLoad : false;
1789			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1790				var activeSlide = $slider.find('.swiper-slide.swiper-slide-active');
1791				SEMICOLON.slider.headerSchemeChanger(activeSlide, onWinLoad);
1792			}
1793		},
1794
1795		revolutionSliderMenu: function( onWinLoad ){
1796			onWinLoad = typeof onWinLoad !== 'undefined' ? onWinLoad : false;
1797			if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
1798				var activeSlide = $slider.find('.active-revslide');
1799				SEMICOLON.slider.headerSchemeChanger(activeSlide, onWinLoad);
1800			}
1801		},
1802
1803		headerSchemeChanger: function( activeSlide, onWinLoad ){
1804			if( activeSlide.length > 0 ) {
1805				var darkExists = false;
1806				if( activeSlide.hasClass('dark') ){
1807					if( oldHeaderClasses ) { var oldClassesArray = oldHeaderClasses.split(/ +/); } else { var oldClassesArray = ''; }
1808					var noOfOldClasses = oldClassesArray.length;
1809
1810					if( noOfOldClasses > 0 ) {
1811						var i = 0;
1812						for( i=0; i<noOfOldClasses; i++ ) {
1813							if( oldClassesArray[i] == 'dark' && onWinLoad == true ) {
1814								darkExists = true;
1815								break;
1816							}
1817						}
1818					}
1819					$('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').addClass('dark');
1820					if( !darkExists ) {
1821						$('#header.transparent-header.sticky-header,#header.transparent-header.semi-transparent.sticky-header,#header.transparent-header.floating-header.sticky-header').removeClass('dark');
1822					}
1823					$headerWrap.removeClass('not-dark');
1824				} else {
1825					if( $body.hasClass('dark') ) {
1826						activeSlide.addClass('not-dark');
1827						$('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark');
1828						$('#header.transparent-header:not(.sticky-header,.semi-transparent,.floating-header)').find('#header-wrap').addClass('not-dark');
1829					} else {
1830						$('#header.transparent-header:not(.semi-transparent,.floating-header)').removeClass('dark');
1831						$headerWrap.removeClass('not-dark');
1832					}
1833				}
1834				if( $header.hasClass('sticky-header') ) {
1835					SEMICOLON.header.stickyMenuClass();
1836				}
1837				SEMICOLON.header.logo();
1838			}
1839		},
1840
1841		owlCaptionInit: function(){
1842			if( $owlCarouselEl.length > 0 ){
1843				$owlCarouselEl.each( function(){
1844					var element = $(this);
1845					if( element.find('.owl-dot').length > 0 ) {
1846						element.addClass('with-carousel-dots');
1847					}
1848				});
1849			}
1850		}
1851
1852	};
1853
1854	SEMICOLON.portfolio = {
1855
1856		init: function(){
1857
1858			SEMICOLON.portfolio.ajaxload();
1859
1860		},
1861
1862		gridInit: function( $container ){
1863
1864			if( !$().isotope ) {
1865				console.log('gridInit: Isotope not Defined.');
1866				return true;
1867			}
1868
1869			if( $container.length < 1 ) { return true; }
1870			if( $container.hasClass('customjs') ) { return true; }
1871
1872			$container.each( function(){
1873				var element = $(this),
1874					elementTransition = element.attr('data-transition'),
1875					elementLayoutMode = element.attr('data-layout'),
1876					elementStagger = element.attr('data-stagger');
1877
1878				if( !elementTransition ) { elementTransition = '0.65s'; }
1879				if( !elementLayoutMode ) { elementLayoutMode = 'masonry'; }
1880				if( !elementStagger ) { elementStagger = 0; }
1881
1882				setTimeout( function(){
1883					if( element.hasClass('portfolio') ){
1884						element.isotope({
1885							layoutMode: elementLayoutMode,
1886							transitionDuration: elementTransition,
1887							stagger: Number( elementStagger ),
1888							masonry: {
1889								columnWidth: element.find('.portfolio-item:not(.wide)')[0]
1890							}
1891						});
1892					} else {
1893						element.isotope({
1894							layoutMode: elementLayoutMode,
1895							transitionDuration: elementTransition
1896						});
1897					}
1898				}, 300);
1899			});
1900		},
1901
1902		filterInit: function(){
1903
1904			if( !$().isotope ) {
1905				console.log('filterInit: Isotope not Defined.');
1906				return true;
1907			}
1908
1909			if( $portfolioFilter.length < 1 ) { return true; }
1910			if( $portfolioFilter.hasClass('customjs') ) { return true; }
1911
1912			$portfolioFilter.each( function(){
1913				var element = $(this),
1914					elementContainer = element.attr('data-container'),
1915					elementActiveClass = element.attr('data-active-class'),
1916					elementDefaultFilter = element.attr('data-default');
1917
1918				if( !elementActiveClass ) { elementActiveClass = 'activeFilter'; }
1919
1920				element.find('a').click(function(){
1921					element.find('li').removeClass( elementActiveClass );
1922					$(this).parent('li').addClass( elementActiveClass );
1923					var selector = $(this).attr('data-filter');
1924					$(elementContainer).isotope({ filter: selector });
1925					return false;
1926				});
1927
1928				if( elementDefaultFilter ) {
1929					element.find('li').removeClass( elementActiveClass );
1930					element.find('[data-filter="'+ elementDefaultFilter +'"]').parent('li').addClass( elementActiveClass );
1931					$(elementContainer).isotope({ filter: elementDefaultFilter });
1932				}
1933			});
1934		},
1935
1936		shuffleInit: function(){
1937
1938			if( !$().isotope ) {
1939				console.log('shuffleInit: Isotope not Defined.');
1940				return true;
1941			}
1942
1943			if( $('.portfolio-shuffle').length < 1 ) { return true; }
1944
1945			$('.portfolio-shuffle').click(function(){
1946				var element = $(this),
1947					elementContainer = element.attr('data-container');
1948
1949				$(elementContainer).isotope('shuffle');
1950			});
1951		},
1952
1953		portfolioDescMargin: function(){
1954			var $portfolioOverlayEl = $('.portfolio-overlay');
1955			if( $portfolioOverlayEl.length > 0 ){
1956				$portfolioOverlayEl.each(function() {
1957					var element = $(this);
1958					if( element.find('.portfolio-desc').length > 0 ) {
1959						var portfolioOverlayHeight = element.outerHeight();
1960						var portfolioOverlayDescHeight = element.find('.portfolio-desc').outerHeight();
1961						if( element.find('a.left-icon').length > 0 || element.find('a.right-icon').length > 0 || element.find('a.center-icon').length > 0 ) {
1962							var portfolioOverlayIconHeight = 40 + 20;
1963						} else {
1964							var portfolioOverlayIconHeight = 0;
1965						}
1966						var portfolioOverlayMiddleAlign = ( portfolioOverlayHeight - portfolioOverlayDescHeight - portfolioOverlayIconHeight ) / 2
1967						element.find('.portfolio-desc').css({ 'margin-top': portfolioOverlayMiddleAlign });
1968					}
1969				});
1970			}
1971		},
1972
1973		arrange: function(){
1974			if( $portfolio.length > 0 ) {
1975				$portfolio.each( function(){
1976					var element = $(this);
1977					SEMICOLON.initialize.setFullColumnWidth( element );
1978				});
1979			}
1980		},
1981
1982		ajaxload: function(){
1983			$('.portfolio-ajax .portfolio-item a.center-icon').click( function(e) {
1984				var portPostId = $(this).parents('.portfolio-item').attr('id');
1985				if( !$(this).parents('.portfolio-item').hasClass('portfolio-active') ) {
1986					SEMICOLON.portfolio.loadItem(portPostId, prevPostPortId);
1987				}
1988				e.preventDefault();
1989			});
1990		},
1991
1992		newNextPrev: function( portPostId ){
1993			var portNext = SEMICOLON.portfolio.getNextItem(portPostId);
1994			var portPrev = SEMICOLON.portfolio.getPrevItem(portPostId);
1995			$('#next-portfolio').attr('data-id', portNext);
1996			$('#prev-portfolio').attr('data-id', portPrev);
1997		},
1998
1999		loadItem: function( portPostId, prevPostPortId, getIt ){
2000			if(!getIt) { getIt = false; }
2001			var portNext = SEMICOLON.portfolio.getNextItem(portPostId);
2002			var portPrev = SEMICOLON.portfolio.getPrevItem(portPostId);
2003			if(getIt == false) {
2004				SEMICOLON.portfolio.closeItem();
2005				$portfolioAjaxLoader.fadeIn();
2006				var portfolioDataLoader = $('#' + portPostId).attr('data-loader');
2007				$portfolioDetailsContainer.load(portfolioDataLoader, { portid: portPostId, portnext: portNext, portprev: portPrev },
2008				function(){
2009					SEMICOLON.portfolio.initializeAjax(portPostId);
2010					SEMICOLON.portfolio.openItem();
2011					$portfolioItems.removeClass('portfolio-active');
2012					$('#' + portPostId).addClass('portfolio-active');
2013				});
2014			}
2015		},
2016
2017		closeItem: function(){
2018			if( $portfolioDetails && $portfolioDetails.height() > 32 ) {
2019				$portfolioAjaxLoader.fadeIn();
2020				$portfolioDetails.find('#portfolio-ajax-single').fadeOut('600', function(){
2021					$(this).remove();
2022				});
2023				$portfolioDetails.removeClass('portfolio-ajax-opened');
2024			}
2025		},
2026
2027		openItem: function(){
2028			var noOfImages = $portfolioDetails.find('img').length;
2029			var noLoaded = 0;
2030
2031			if( noOfImages > 0 ) {
2032				$portfolioDetails.find('img').on('load', function(){
2033					noLoaded++;
2034					var topOffsetScroll = SEMICOLON.initialize.topScrollOffset();
2035					if(noOfImages === noLoaded) {
2036						$portfolioDetailsContainer.css({ 'display': 'block' });
2037						$portfolioDetails.addClass('portfolio-ajax-opened');
2038						$portfolioAjaxLoader.fadeOut();
2039						var t=setTimeout(function(){
2040							SEMICOLON.widget.loadFlexSlider();
2041							SEMICOLON.initialize.lightbox();
2042							SEMICOLON.initialize.resizeVideos();
2043							SEMICOLON.widget.masonryThumbs();
2044							$('html,body').stop(true).animate({
2045								'scrollTop': $portfolioDetails.offset().top - topOffsetScroll
2046							}, 900, 'easeOutQuad');
2047						},500);
2048					}
2049				});
2050			} else {
2051				var topOffsetScroll = SEMICOLON.initialize.topScrollOffset();
2052				$portfolioDetailsContainer.css({ 'display': 'block' });
2053				$portfolioDetails.addClass('portfolio-ajax-opened');
2054				$portfolioAjaxLoader.fadeOut();
2055				var t=setTimeout(function(){
2056					SEMICOLON.widget.loadFlexSlider();
2057					SEMICOLON.initialize.lightbox();
2058					SEMICOLON.initialize.resizeVideos();
2059					SEMICOLON.widget.masonryThumbs();
2060					$('html,body').stop(true).animate({
2061						'scrollTop': $portfolioDetails.offset().top - topOffsetScroll
2062					}, 900, 'easeOutQuad');
2063				},500);
2064			}
2065		},
2066
2067		getNextItem: function( portPostId ){
2068			var portNext = '';
2069			var hasNext = $('#' + portPostId).next();
2070			if(hasNext.length != 0) {
2071				portNext = hasNext.attr('id');
2072			}
2073			return portNext;
2074		},
2075
2076		getPrevItem: function( portPostId ){
2077			var portPrev = '';
2078			var hasPrev = $('#' + portPostId).prev();
2079			if(hasPrev.length != 0) {
2080				portPrev = hasPrev.attr('id');
2081			}
2082			return portPrev;
2083		},
2084
2085		initializeAjax: function( portPostId ){
2086			prevPostPortId = $('#' + portPostId);
2087
2088			$('#next-portfolio, #prev-portfolio').click( function() {
2089				var portPostId = $(this).attr('data-id');
2090				$portfolioItems.removeClass('portfolio-active');
2091				$('#' + portPostId).addClass('portfolio-active');
2092				SEMICOLON.portfolio.loadItem(portPostId,prevPostPortId);
2093				return false;
2094			});
2095
2096			$('#close-portfolio').click( function() {
2097				$portfolioDetailsContainer.fadeOut('600', function(){
2098					$portfolioDetails.find('#portfolio-ajax-single').remove();
2099				});
2100				$portfolioDetails.removeClass('portfolio-ajax-opened');
2101				$portfolioItems.removeClass('portfolio-active');
2102				return false;
2103			});
2104		}
2105
2106	};
2107
2108	SEMICOLON.widget = {
2109
2110		init: function(){
2111
2112			SEMICOLON.widget.animations();
2113			SEMICOLON.widget.youtubeBgVideo();
2114			SEMICOLON.widget.tabs();
2115			SEMICOLON.widget.tabsJustify();
2116			SEMICOLON.widget.tabsResponsive();
2117			SEMICOLON.widget.tabsResponsiveResize();
2118			SEMICOLON.widget.toggles();
2119			SEMICOLON.widget.accordions();
2120			SEMICOLON.widget.counter();
2121			SEMICOLON.widget.roundedSkill();
2122			SEMICOLON.widget.progress();
2123			SEMICOLON.widget.twitterFeed();
2124			SEMICOLON.widget.flickrFeed();
2125			SEMICOLON.widget.instagramPhotos( '36286274.14661be.9a5851191e5142c98c6d5ffd026db8e4', '14661befee3e4b4b973fc88adc617c41' );
2126			SEMICOLON.widget.dribbbleShots( '01530280af335d298e756ed8ef786c8c4e92a50b88e53a185531b1a639e768b8' );
2127			SEMICOLON.widget.navTree();
2128			SEMICOLON.widget.textRotater();
2129			SEMICOLON.widget.carousel();
2130			SEMICOLON.widget.linkScroll();
2131			SEMICOLON.widget.contactForm();
2132			SEMICOLON.widget.subscription();
2133			SEMICOLON.widget.quickContact();
2134			SEMICOLON.widget.stickySidebar();
2135			SEMICOLON.widget.cookieNotify();
2136			SEMICOLON.widget.extras();
2137
2138		},
2139
2140		parallax: function(){
2141
2142			if( !$.stellar ) {
2143				console.log('parallax: Stellar not Defined.');
2144				return true;
2145			}
2146
2147			if( $parallaxEl.length > 0 || $parallaxPageTitleEl.length > 0 || $parallaxPortfolioEl.length > 0 ) {
2148				if( !SEMICOLON.isMobile.any() ){
2149					$.stellar({
2150						horizontalScrolling: false,
2151						verticalOffset: 150
2152					});
2153				} else {
2154					$parallaxEl.addClass('mobile-parallax');
2155					$parallaxPageTitleEl.addClass('mobile-parallax');
2156					$parallaxPortfolioEl.addClass('mobile-parallax');
2157				}
2158			}
2159		},
2160
2161		animations: function(){
2162
2163			if( !$().appear ) {
2164				console.log('animations: Appear not Defined.');
2165				return true;
2166			}
2167
2168			var $dataAnimateEl = $('[data-animate]');
2169			if( $dataAnimateEl.length > 0 ){
2170				if( $body.hasClass('device-lg') || $body.hasClass('device-md') || $body.hasClass('device-sm') ){
2171					$dataAnimateEl.each(function(){
2172						var element = $(this),
2173							animationOut = element.attr('data-animate-out'),
2174							animationDelay = element.attr('data-delay'),
2175							animationDelayOut = element.attr('data-delay-out'),
2176							animationDelayTime = 0,
2177							animationDelayOutTime = 3000;
2178
2179						if( element.parents('.fslider.no-thumbs-animate').length > 0 ) { return true; }
2180
2181						if( animationDelay ) { animationDelayTime = Number( animationDelay ) + 500; } else { animationDelayTime = 500; }
2182						if( animationOut && animationDelayOut ) { animationDelayOutTime = Number( animationDelayOut ) + animationDelayTime; }
2183
2184						if( !element.hasClass('animated') ) {
2185							element.addClass('not-animated');
2186							var elementAnimation = element.attr('data-animate');
2187							element.appear(function () {
2188								setTimeout(function() {
2189									element.removeClass('not-animated').addClass( elementAnimation + ' animated');
2190								}, animationDelayTime);
2191
2192								if( animationOut ) {
2193									setTimeout( function() {
2194										element.removeClass( elementAnimation ).addClass( animationOut );
2195									}, animationDelayOutTime );
2196								}
2197							},{accX: 0, accY: -120},'easeInCubic');
2198						}
2199					});
2200				}
2201			}
2202		},
2203
2204		loadFlexSlider: function(){
2205
2206			if( !$().flexslider ) {
2207				console.log('loadFlexSlider: FlexSlider not Defined.');
2208				return true;
2209			}
2210
2211			var $flexSliderEl = $('.fslider:not(.customjs)').find('.flexslider');
2212			if( $flexSliderEl.length > 0 ){
2213				$flexSliderEl.each(function() {
2214					var $flexsSlider = $(this),
2215						flexsAnimation = $flexsSlider.parent('.fslider').attr('data-animation'),
2216						flexsEasing = $flexsSlider.parent('.fslider').attr('data-easing'),
2217						flexsDirection = $flexsSlider.parent('.fslider').attr('data-direction'),
2218						flexsReverse = $flexsSlider.parent('.fslider').attr('data-reverse'),
2219						flexsSlideshow = $flexsSlider.parent('.fslider').attr('data-slideshow'),
2220						flexsPause = $flexsSlider.parent('.fslider').attr('data-pause'),
2221						flexsSpeed = $flexsSlider.parent('.fslider').attr('data-speed'),
2222						flexsVideo = $flexsSlider.parent('.fslider').attr('data-video'),
2223						flexsPagi = $flexsSlider.parent('.fslider').attr('data-pagi'),
2224						flexsArrows = $flexsSlider.parent('.fslider').attr('data-arrows'),
2225						flexsThumbs = $flexsSlider.parent('.fslider').attr('data-thumbs'),
2226						flexsHover = $flexsSlider.parent('.fslider').attr('data-hover'),
2227						flexsSheight = $flexsSlider.parent('.fslider').attr('data-smooth-height'),
2228						flexsTouch = $flexsSlider.parent('.fslider').attr('data-touch'),
2229						flexsUseCSS = false;
2230
2231					if( !flexsAnimation ) { flexsAnimation = 'slide'; }
2232					if( !flexsEasing || flexsEasing == 'swing' ) {
2233						flexsEasing = 'swing';
2234						flexsUseCSS = true;
2235					}
2236					if( !flexsDirection ) { flexsDirection = 'horizontal'; }
2237					if( flexsReverse == 'true' ) { flexsReverse = true; } else { flexsReverse = false; }
2238					if( !flexsSlideshow ) { flexsSlideshow = true; } else { flexsSlideshow = false; }
2239					if( !flexsPause ) { flexsPause = 5000; }
2240					if( !flexsSpeed ) { flexsSpeed = 600; }
2241					if( !flexsVideo ) { flexsVideo = false; }
2242					if( flexsSheight == 'false' ) { flexsSheight = false; } else { flexsSheight = true; }
2243					if( flexsDirection == 'vertical' ) { flexsSheight = false; }
2244					if( flexsPagi == 'false' ) { flexsPagi = false; } else { flexsPagi = true; }
2245					if( flexsThumbs == 'true' ) { flexsPagi = 'thumbnails'; } else { flexsPagi = flexsPagi; }
2246					if( flexsArrows == 'false' ) { flexsArrows = false; } else { flexsArrows = true; }
2247					if( flexsHover == 'false' ) { flexsHover = false; } else { flexsHover = true; }
2248					if( flexsTouch == 'false' ) { flexsTouch = false; } else { flexsTouch = true; }
2249
2250					$flexsSlider.flexslider({
2251						selector: ".slider-wrap > .slide",
2252						animation: flexsAnimation,
2253						easing: flexsEasing,
2254						direction: flexsDirection,
2255						reverse: flexsReverse,
2256						slideshow: flexsSlideshow,
2257						slideshowSpeed: Number(flexsPause),
2258						animationSpeed: Number(flexsSpeed),
2259						pauseOnHover: flexsHover,
2260						video: flexsVideo,
2261						controlNav: flexsPagi,
2262						directionNav: flexsArrows,
2263						smoothHeight: flexsSheight,
2264						useCSS: flexsUseCSS,
2265						touch: flexsTouch,
2266						start: function(slider){
2267							SEMICOLON.widget.animations();
2268							SEMICOLON.initialize.verticalMiddle();
2269							slider.parent().removeClass('preloader2');
2270							var t = setTimeout( function(){ $('.grid-container').isotope('layout'); }, 1200 );
2271							SEMICOLON.initialize.lightbox();
2272							$('.flex-prev').html('<i class="icon-angle-left"></i>');
2273							$('.flex-next').html('<i class="icon-angle-right"></i>');
2274							SEMICOLON.portfolio.portfolioDescMargin();
2275						},
2276						after: function(){
2277							if( $('.grid-container').hasClass('portfolio-full') ) {
2278								$('.grid-container.portfolio-full').isotope('layout');
2279								SEMICOLON.portfolio.portfolioDescMargin();
2280							}
2281						}
2282					});
2283				});
2284			}
2285		},
2286
2287		html5Video: function(){
2288			var videoEl = $('.video-wrap:has(video)');
2289			if( videoEl.length > 0 ) {
2290				videoEl.each(function(){
2291					var element = $(this),
2292						elementVideo = element.find('video'),
2293						outerContainerWidth = element.outerWidth(),
2294						outerContainerHeight = element.outerHeight(),
2295						innerVideoWidth = elementVideo.outerWidth(),
2296						innerVideoHeight = elementVideo.outerHeight();
2297
2298					if( innerVideoHeight < outerContainerHeight ) {
2299						var videoAspectRatio = innerVideoWidth/innerVideoHeight,
2300							newVideoWidth = outerContainerHeight * videoAspectRatio,
2301							innerVideoPosition = (newVideoWidth - outerContainerWidth) / 2;
2302						elementVideo.css({ 'width': newVideoWidth+'px', 'height': outerContainerHeight+'px', 'left': -innerVideoPosition+'px' });
2303					} else {
2304						var innerVideoPosition = (innerVideoHeight - outerContainerHeight) / 2;
2305						elementVideo.css({ 'width': innerVideoWidth+'px', 'height': innerVideoHeight+'px', 'top': -innerVideoPosition+'px' });
2306					}
2307
2308					if( SEMICOLON.isMobile.any() && !element.hasClass('no-placeholder') ) {
2309						var placeholderImg = elementVideo.attr('poster');
2310
2311						if( placeholderImg != '' ) {
2312							element.append('<div class="video-placeholder" style="background-image: url('+ placeholderImg +');"></div>')
2313						}
2314
2315						elementVideo.hide();
2316					}
2317				});
2318			}
2319		},
2320
2321		youtubeBgVideo: function(){
2322
2323			if( !$().mb_YTPlayer ) {
2324				console.log('youtubeBgVideo: YoutubeBG Plugin not Defined.');
2325				return true;
2326			}
2327
2328			var $youtubeBgPlayerEl = $('.yt-bg-player');
2329			if( $youtubeBgPlayerEl.hasClass('customjs') ) { return true; }
2330
2331			if( $youtubeBgPlayerEl.length > 0 ){
2332				$youtubeBgPlayerEl.each( function(){
2333					var element = $(this),
2334						ytbgVideo = element.attr('data-video'),
2335						ytbgMute = element.attr('data-mute'),
2336						ytbgRatio = element.attr('data-ratio'),
2337						ytbgQuality = element.attr('data-quality'),
2338						ytbgOpacity = element.attr('data-opacity'),
2339						ytbgContainer = element.attr('data-container'),
2340						ytbgOptimize = element.attr('data-optimize'),
2341						ytbgLoop = element.attr('data-loop'),
2342						ytbgVolume = element.attr('data-volume'),
2343						ytbgStart = element.attr('data-start'),
2344						ytbgStop = element.attr('data-stop'),
2345						ytbgAutoPlay = element.attr('data-autoplay'),
2346						ytbgFullScreen = element.attr('data-fullscreen');
2347
2348					if( ytbgMute == 'false' ) { ytbgMute = false; } else { ytbgMute = true; }
2349					if( !ytbgRatio ) { ytbgRatio = '16/9'; }
2350					if( !ytbgQuality ) { ytbgQuality = 'hd720'; }
2351					if( !ytbgOpacity ) { ytbgOpacity = 1; }
2352					if( !ytbgContainer ) { ytbgContainer = 'self'; }
2353					if( ytbgOptimize == 'false' ) { ytbgOptimize = false; } else { ytbgOptimize = true; }
2354					if( ytbgLoop == 'false' ) { ytbgLoop = false; } else { ytbgLoop = true; }
2355					if( !ytbgVolume ) { ytbgVolume = 1; }
2356					if( !ytbgStart ) { ytbgStart = 0; }
2357					if( !ytbgStop ) { ytbgStop = 0; }
2358					if( ytbgAutoPlay == 'false' ) { ytbgAutoPlay = false; } else { ytbgAutoPlay = true; }
2359					if( ytbgFullScreen == 'true' ) { ytbgFullScreen = true; } else { ytbgFullScreen = false; }
2360
2361					element.mb_YTPlayer({
2362						videoURL: ytbgVideo,
2363						mute: ytbgMute,
2364						ratio: ytbgRatio,
2365						quality: ytbgQuality,
2366						opacity: Number(ytbgOpacity),
2367						containment: ytbgContainer,
2368						optimizeDisplay: ytbgOptimize,
2369						loop: ytbgLoop,
2370						vol: Number(ytbgVolume),
2371						startAt: Number(ytbgStart),
2372						stopAt: Number(ytbgStop),
2373						autoplay: ytbgAutoPlay,
2374						realfullscreen: ytbgFullScreen,
2375						showYTLogo: false,
2376						showControls: false
2377					});
2378				});
2379			}
2380		},
2381
2382		tabs: function(){
2383
2384			if( !$().tabs ) {
2385				console.log('tabs: Tabs not Defined.');
2386				return true;
2387			}
2388
2389			var $tabs = $('.tabs:not(.customjs)');
2390			if( $tabs.length > 0 ) {
2391				$tabs.each( function(){
2392					var element = $(this),
2393						elementSpeed = element.attr('data-speed'),
2394						tabActive = element.attr('data-active');
2395
2396					if( !elementSpeed ) { elementSpeed = 400; }
2397					if( !tabActive ) { tabActive = 0; } else { tabActive = tabActive - 1; }
2398
2399					element.tabs({
2400						active: Number(tabActive),
2401						show: {
2402							effect: "fade",
2403							duration: Number(elementSpeed)
2404						}
2405					});
2406				});
2407			}
2408		},
2409
2410		tabsJustify: function(){
2411			if( !$('body').hasClass('device-xxs') && !$('body').hasClass('device-xs') ){
2412				var $tabsJustify = $('.tabs.tabs-justify:not(.customjs)');
2413				if( $tabsJustify.length > 0 ) {
2414					$tabsJustify.each( function(){
2415						var element = $(this),
2416							elementTabs = element.find('.tab-nav > li'),
2417							elementTabsNo = elementTabs.length,
2418							elementContainer = 0,
2419							elementWidth = 0;
2420
2421						if( element.hasClass('tabs-bordered') || element.hasClass('tabs-bb') ) {
2422							elementContainer = element.find('.tab-nav').outerWidth();
2423						} else {
2424							if( element.find('tab-nav').hasClass('tab-nav2') ) {
2425								elementContainer = element.find('.tab-nav').outerWidth() - (elementTabsNo * 10);
2426							} else {
2427								elementContainer = element.find('.tab-nav').outerWidth() - 30;
2428							}
2429						}
2430
2431						elementWidth = Math.floor(elementContainer/elementTabsNo);
2432						elementTabs.css({ 'width': elementWidth + 'px' });
2433
2434					});
2435				}
2436			} else { $('.tabs.tabs-justify').find('.tab-nav > li').css({ 'width': '' }); }
2437		},
2438
2439		tabsResponsive: function(){
2440
2441			if( !$().tabs ) {
2442				console.log('tabs: Tabs not Defined.');
2443				return true;
2444			}
2445
2446			var $tabsResponsive = $('.tabs.tabs-responsive:not(.customjs)');
2447			if( $tabsResponsive.length < 1 ) { return true; }
2448
2449			$tabsResponsive.each( function(){
2450				var element = $(this),
2451					elementNav = $(this).find('.tab-nav'),
2452					elementContent = $(this).find('.tab-container');
2453
2454				elementNav.children('li').each( function(){
2455					var navEl = $(this),
2456						navElAnchor = navEl.children('a'),
2457						navElTarget = navElAnchor.attr('href'),
2458						navElContent = navElAnchor.html();
2459
2460					elementContent.find(navElTarget).before('<div class="acctitle hide"><i class="acc-closed icon-ok-circle"></i><i class="acc-open icon-remove-circle"></i>'+navElContent+'</div>');
2461				});
2462			});
2463		},
2464
2465		tabsResponsiveResize: function(){
2466
2467			if( !$().tabs ) {
2468				console.log('tabs: Tabs not Defined.');
2469				return true;
2470			}
2471
2472			var $tabsResponsive = $('.tabs.tabs-responsive:not(.customjs)');
2473			if( $tabsResponsive.length < 1 ) { return true; }
2474
2475			$tabsResponsive.each( function(){
2476				var element = $(this),
2477					elementAccStyle = element.attr('data-accordion-style');
2478
2479				if( $('body').hasClass('device-xs') || $('body').hasClass('device-xxs') ) {
2480
2481					element.find('.tab-nav').addClass('hide');
2482					element.find('.tab-container').addClass('accordion '+ elementAccStyle +' clearfix');
2483					element.find('.tab-content').addClass('acc_content');
2484					element.find('.acctitle').removeClass('hide');
2485					SEMICOLON.widget.accordions();
2486
2487				} else if( $('body').hasClass('device-sm') || $('body').hasClass('device-md') || $('body').hasClass('device-lg') ) {
2488
2489					element.find('.tab-nav').removeClass('hide');
2490					element.find('.tab-container').removeClass('accordion '+ elementAccStyle +' clearfix');
2491					element.find('.tab-content').removeClass('acc_content');
2492					element.find('.acctitle').addClass('hide');
2493					element.tabs( "refresh" );
2494
2495				}
2496			});
2497		},
2498
2499		toggles: function(){
2500			var $toggle = $('.toggle');
2501			if( $toggle.length > 0 ) {
2502				$toggle.each( function(){
2503					var element = $(this),
2504						elementState = element.attr('data-state');
2505
2506					if( elementState != 'open' ){
2507						element.children('.togglec').hide();
2508					} else {
2509						element.children('.togglet').addClass("toggleta");
2510					}
2511
2512					element.children('.togglet').click(function(){
2513						$(this).toggleClass('toggleta').next('.togglec').slideToggle(300);
2514						return true;
2515					});
2516				});
2517			}
2518		},
2519
2520		accordions: function(){
2521			var $accordionEl = $('.accordion');
2522			if( $accordionEl.length > 0 ){
2523				$accordionEl.each( function(){
2524					var element = $(this),
2525						elementState = element.attr('data-state'),
2526						accordionActive = element.attr('data-active');
2527
2528					if( !accordionActive ) { accordionActive = 0; } else { accordionActive = accordionActive - 1; }
2529
2530					element.find('.acc_content').hide();
2531
2532					if( elementState != 'closed' ) {
2533						element.find('.acctitle:eq('+ Number(accordionActive) +')').addClass('acctitlec').next().show();
2534					}
2535
2536					element.find('.acctitle').click(function(){
2537						if( $(this).next().is(':hidden') ) {
2538							element.find('.acctitle').removeClass('acctitlec').next().slideUp("normal");
2539							var clickTarget = $(this);
2540							$(this).toggleClass('acctitlec').next().slideDown("normal", function(){
2541								if( $body.hasClass('device-xs') || $body.hasClass('device-xxs') ) {
2542									$('html,body').stop(true).animate({
2543										'scrollTop': clickTarget.offset().top - ( SEMICOLON.initialize.topScrollOffset() - 40 )
2544									}, 800, 'easeOutQuad' );
2545								}
2546							});
2547						}
2548						return false;
2549					});
2550				});
2551			}
2552		},
2553
2554		counter: function(){
2555
2556			if( !$().appear ) {
2557				console.log('counter: Appear not Defined.');
2558				return true;
2559			}
2560
2561			if( !$().countTo ) {
2562				console.log('counter: countTo not Defined.');
2563				return true;
2564			}
2565
2566			var $counterEl = $('.counter:not(.counter-instant)');
2567			if( $counterEl.length > 0 ){
2568				$counterEl.each(function(){
2569					var element = $(this);
2570					var counterElementComma = $(this).find('span').attr('data-comma');
2571					if( !counterElementComma ) { counterElementComma = false; } else { counterElementComma = true; }
2572					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
2573						element.appear( function(){
2574							SEMICOLON.widget.runCounter( element, counterElementComma );
2575							if( element.parents('.common-height') ) {
2576								SEMICOLON.initialize.maxHeight();
2577							}
2578						},{accX: 0, accY: -120},'easeInCubic');
2579					} else {
2580						SEMICOLON.widget.runCounter( element, counterElementComma );
2581					}
2582				});
2583			}
2584		},
2585
2586		runCounter: function( counterElement,counterElementComma ){
2587			if( counterElementComma == true ) {
2588				counterElement.find('span').countTo({
2589					formatter: function (value, options) {
2590						value = value.toFixed(options.decimals);
2591						value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
2592						return value;
2593					}
2594				});
2595			} else {
2596				counterElement.find('span').countTo();
2597			}
2598		},
2599
2600		roundedSkill: function(){
2601
2602			if( !$().appear ) {
2603				console.log('roundedSkill: Appear not Defined.');
2604				return true;
2605			}
2606
2607			if( !$().easyPieChart ) {
2608				console.log('roundedSkill: EasyPieChart not Defined.');
2609				return true;
2610			}
2611
2612			var $roundedSkillEl = $('.rounded-skill');
2613			if( $roundedSkillEl.length > 0 ){
2614				$roundedSkillEl.each(function(){
2615					var element = $(this);
2616
2617					var roundSkillSize = element.attr('data-size');
2618					var roundSkillSpeed = element.attr('data-speed');
2619					var roundSkillWidth = element.attr('data-width');
2620					var roundSkillColor = element.attr('data-color');
2621					var roundSkillTrackColor = element.attr('data-trackcolor');
2622
2623					if( !roundSkillSize ) { roundSkillSize = 140; }
2624					if( !roundSkillSpeed ) { roundSkillSpeed = 2000; }
2625					if( !roundSkillWidth ) { roundSkillWidth = 8; }
2626					if( !roundSkillColor ) { roundSkillColor = '#0093BF'; }
2627					if( !roundSkillTrackColor ) { roundSkillTrackColor = 'rgba(0,0,0,0.04)'; }
2628
2629					var properties = {roundSkillSize:roundSkillSize, roundSkillSpeed:roundSkillSpeed, roundSkillWidth:roundSkillWidth, roundSkillColor:roundSkillColor, roundSkillTrackColor:roundSkillTrackColor};
2630
2631					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
2632						element.css({'width':roundSkillSize+'px','height':roundSkillSize+'px','line-height':roundSkillSize+'px'}).animate({opacity:0}
2632, 10);
2633						element.appear( function(){
2634							if (!element.hasClass('skills-animated')) {
2635								var t = setTimeout( function(){ element.css({opacity: 1}); }, 100 );
2636								SEMICOLON.widget.runRoundedSkills( element, properties );
2637								element.addClass('skills-animated');
2638							}
2639						},{accX: 0, accY: -120},'easeInCubic');
2640					} else {
2641						SEMICOLON.widget.runRoundedSkills( element, properties );
2642					}
2643				});
2644			}
2645		},
2646
2647		runRoundedSkills: function( element, properties ){
2648			element.easyPieChart({
2649				size: Number(properties.roundSkillSize),
2650				animate: Number(properties.roundSkillSpeed),
2651				scaleColor: false,
2652				trackColor: properties.roundSkillTrackColor,
2653				lineWidth: Number(properties.roundSkillWidth),
2654				lineCap: 'square',
2655				barColor: properties.roundSkillColor
2656			});
2657		},
2658
2659		progress: function(){
2660
2661			if( !$().appear ) {
2662				console.log('progress: Appear not Defined.');
2663				return true;
2664			}
2665
2666			var $progressEl = $('.progress');
2667			if( $progressEl.length > 0 ){
2668				$progressEl.each(function(){
2669					var element = $(this),
2670						skillsBar = element.parent('li'),
2671						skillValue = skillsBar.attr('data-percent');
2672
2673					if( $body.hasClass('device-lg') || $body.hasClass('device-md') ){
2674						element.appear( function(){
2675							if (!skillsBar.hasClass('skills-animated')) {
2676								element.find('.counter-instant span').countTo();
2677								skillsBar.find('.progress').css({width: skillValue + "%"}).addClass('skills-animated');
2678							}
2679						},{accX: 0, accY: -120},'easeInCubic');
2680					} else {
2681						element.find('.counter-instant span').countTo();
2682						skillsBar.find('.progress').css({width: skillValue + "%"});
2683					}
2684				});
2685			}
2686		},
2687
2688		twitterFeed: function(){
2689
2690			if( typeof sm_format_twitter === 'undefined' ) {
2691				console.log('twitterFeed: sm_format_twitter() not Defined.');
2692				return true;
2693			}
2694
2695			if( typeof sm_format_twitter3 === 'undefined' ) {
2696				console.log('twitterFeed: sm_format_twitter3() not Defined.');
2697				return true;
2698			}
2699
2700			var $twitterFeedEl = $('.twitter-feed');
2701			if( $twitterFeedEl.length > 0 ){
2702				$twitterFeedEl.each(function() {
2703					var element = $(this),
2704						twitterFeedUser = element.attr('data-username'),
2705						twitterFeedCount = element.attr('data-count'),
2706						twitterFeedLoader = element.attr('data-loader');
2707
2708					if( !twitterFeedUser ) { twitterFeedUser = 'twitter' }
2709					if( !twitterFeedCount ) { twitterFeedCount = 3 }
2710					if( !twitterFeedLoader ) { twitterFeedLoader = 'include/twitter/tweets.php'; }
2711
2712					$.getJSON( twitterFeedLoader + '?username='+ twitterFeedUser +'&count='+ twitterFeedCount, function(tweets){
2713						if( element.hasClass('fslider') ) {
2714							element.find(".slider-wrap").html(sm_format_twitter3(tweets)).promise().done( function(){
2715								var timer = setInterval(function(){
2716									if( element.find('.slide').length > 1 ) {
2717										element.removeClass('customjs');
2718										var t = setTimeout( function(){ SEMICOLON.widget.loadFlexSlider(); }, 500);
2719										clearInterval(timer);
2720									}
2721								},500);
2722							});
2723						} else {
2724							element.html(sm_format_twitter(tweets));
2725						}
2726					});
2727				});
2728			}
2729		},
2730
2731		flickrFeed: function(){
2732
2733			if( !$().jflickrfeed ) {
2734				console.log('flickrFeed: jflickrfeed not Defined.');
2735				return true;
2736			}
2737
2738			var $flickrFeedEl = $('.flickr-feed');
2739			if( $flickrFeedEl.length > 0 ){
2740				$flickrFeedEl.each(function() {
2741					var element = $(this),
2742						flickrFeedID = element.attr('data-id'),
2743						flickrFeedCount = element.attr('data-count'),
2744						flickrFeedType = element.attr('data-type'),
2745						flickrFeedTypeGet = 'photos_public.gne';
2746
2747					if( flickrFeedType == 'group' ) { flickrFeedTypeGet = 'groups_pool.gne'; }
2748					if( !flickrFeedCount ) { flickrFeedCount = 9; }
2749
2750					element.jflickrfeed({
2751						feedapi: flickrFeedTypeGet,
2752						limit: Number(flickrFeedCount),
2753						qstrings: {
2754							id: flickrFeedID
2755						},
2756						itemTemplate: '<a href="{{image_b}}" title="{{title}}" data-lightbox="gallery-item">' +
2757											'<img src="{{image_s}}" alt="{{title}}" />' +
2758									  '</a>'
2759					}, function(data) {
2760						SEMICOLON.initialize.lightbox();
2761					});
2762				});
2763			}
2764		},
2765
2766		instagramPhotos: function( c_accessToken, c_clientID ){
2767
2768			if( typeof Instafeed === 'undefined' ) {
2769				console.log('Instafeed not Defined.');
2770				return true;
2771			}
2772
2773			var $instagramPhotosEl = $('.instagram-photos');
2774			if( $instagramPhotosEl.length > 0 ){
2775
2776				$instagramPhotosEl.each(function() {
2777					var element = $(this),
2778						instaGramTarget = element.attr('id'),
2779						instaGramUserId = element.attr('data-user'),
2780						instaGramTag = element.attr('data-tag'),
2781						instaGramLocation = element.attr('data-location'),
2782						instaGramCount = element.attr('data-count'),
2783						instaGramType = element.attr('data-type'),
2784						instaGramSortBy = element.attr('data-sortBy'),
2785						instaGramRes = element.attr('data-resolution');
2786
2787					if( !instaGramCount ) { instaGramCount = 9; }
2788					if( !instaGramSortBy ) { instaGramSortBy = 'none'; }
2789					if( !instaGramRes ) { instaGramRes = 'thumbnail'; }
2790
2791					if( instaGramType == 'user' ) {
2792
2793						var feed = new Instafeed({
2794							target: instaGramTarget,
2795							get: instaGramType,
2796							userId: Number(instaGramUserId),
2797							limit: Number(instaGramCount),
2798							sortBy: instaGramSortBy,
2799							resolution: instaGramRes,
2800							accessToken: c_accessToken,
2801							clientId: c_clientID
2802						});
2803
2804					} else if( instaGramType == 'tagged' ) {
2805
2806						var feed = new Instafeed({
2807							target: instaGramTarget,
2808							get: instaGramType,
2809							tagName: instaGramTag,
2810							limit: Number(instaGramCount),
2811							sortBy: instaGramSortBy,
2812							resolution: instaGramRes,
2813							clientId: c_clientID
2814						});
2815
2816					} else if( instaGramType == 'location' ) {
2817
2818						var feed = new Instafeed({
2819							target: instaGramTarget,
2820							get: instaGramType,
2821							locationId: Number(instaGramUserId),
2822							limit: Number(instaGramCount),
2823							sortBy: instaGramSortBy,
2824							resolution: instaGramRes,
2825							clientId: c_clientID
2826						});
2827
2828					} else {
2829
2830						var feed = new Instafeed({
2831							target: instaGramTarget,
2832							get: 'popular',
2833							limit: Number(instaGramCount),
2834							sortBy: instaGramSortBy,
2835							resolution: instaGramRes,
2836							clientId: c_clientID
2837						});
2838
2839					}
2840
2841					feed.run();
2842				});
2843			}
2844		},
2845
2846		dribbbleShots: function( c_accessToken ){
2847
2848			if( !$.jribbble ) {
2849				console.log('dribbbleShots: Jribbble not Defined.');
2850				return true;
2851			}
2852
2853			if( !$().imagesLoaded ) {
2854				console.log('dribbbleShots: imagesLoaded not Defined.');
2855				return true;
2856			}
2857
2858			var $dribbbleShotsEl = $('.dribbble-shots');
2859			if( $dribbbleShotsEl.length > 0 ){
2860
2861				$.jribbble.setToken( c_accessToken );
2862
2863				$dribbbleShotsEl.each(function() {
2864					var element = $(this),
2865						dribbbleUsername = element.attr('data-user'),
2866						dribbbleCount = element.attr('data-count'),
2867						dribbbleList = element.attr('data-list'),
2868						dribbbleType = element.attr('data-type');
2869
2870					element.addClass('customjs');
2871
2872					if( !dribbbleCount ) { dribbbleCount = 9; }
2873
2874					if( dribbbleType == 'user' ) {
2875
2876						$.jribbble.users( dribbbleUsername ).shots({
2877							'sort': 'recent',
2878							'page': 1,
2879							'per_page': Number(dribbbleCount)
2880						}).then( function(res) {
2881							var html = [];
2882							res.forEach( function(shot) {
2883								html.push('<a href="' + shot.html_url + '" target="_blank">');
2884								html.push('<img src="' + shot.images.teaser + '" ');
2885								html.push('alt="' + shot.title + '"></a>');
2886							});
2887							element.html(html.join(''));
2888
2889							element.imagesLoaded().done( function() {
2890								element.removeClass('customjs');
2891								SEMICOLON.widget.masonryThumbs();
2892							});
2893						});
2894
2895					} else if( dribbbleType == 'list' ) {
2896
2897						$.jribbble.shots( dribbbleList, {
2898							'sort': 'recent',
2899							'page': 1,
2900							'per_page': Number(dribbbleCount)
2901						}).then( function(res) {
2902							var html = [];
2903							res.forEach( function(shot) {
2904								html.push('<a href="' + shot.html_url + '" target="_blank">');
2905								html.push('<img src="' + shot.images.teaser + '" ');
2906								html.push('alt="' + shot.title + '"></a>');
2907							});
2908							element.html(html.join(''));
2909
2910							element.imagesLoaded().done( function() {
2911								element.removeClass('customjs');
2912								SEMICOLON.widget.masonryThumbs();
2913							});
2914						});
2915					}
2916
2917				});
2918			}
2919		},
2920
2921		navTree: function(){
2922			var $navTreeEl = $('.nav-tree');
2923			if( $navTreeEl.length > 0 ){
2924				$navTreeEl.each( function(){
2925					var element = $(this),
2926						elementSpeed = element.attr('data-speed'),
2927						elementEasing = element.attr('data-easing');
2928
2929					if( !elementSpeed ) { elementSpeed = 250; }
2930					if( !elementEasing ) { elementEasing = 'swing'; }
2931
2932					element.find( 'ul li:has(ul)' ).addClass('sub-menu');
2933					element.find( 'ul li:has(ul) > a' ).append( ' <i class="icon-angle-down"></i>' );
2934
2935					if( element.hasClass('on-hover') ){
2936						element.find( 'ul li:has(ul):not(.active)' ).hover( function(e){
2937							$(this).children('ul').stop(true, true).slideDown( Number(elementSpeed), elementEasing);
2938						}, function(){
2939							$(this).children('ul').delay(250).slideUp( Number(elementSpeed), elementEasing);
2940						});
2941					} else {
2942						element.find( 'ul li:has(ul) > a' ).click( function(e){
2943							var childElement = $(this);
2944							element.find( 'ul li' ).not(childElement.parents()).removeClass('active');
2945							childElement.parent().children('ul').slideToggle( Number(elementSpeed), elementEasing, function(){
2946								$(this).find('ul').hide();
2947								$(this).find('li.active').removeClass('active');
2948							});
2949							element.find( 'ul li > ul' ).not(childElement.parent().children('ul')).not(childElement.parents('ul')).slideUp( Number(elementSpeed), elementEasing );
2950							childElement.parent('li:has(ul)').toggleClass('active');
2951							e.preventDefault();
2952						});
2953					}
2954				});
2955			}
2956		},
2957
2958		carousel: function(){
2959
2960			if( !$().owlCarousel ) {
2961				console.log('carousel: Owl Carousel not Defined.');
2962				return true;
2963			}
2964
2965			var $carousel = $('.carousel-widget:not(.customjs)');
2966			if( $carousel.length < 1 ){ return true; }
2967
2968			$carousel.each( function(){
2969				var element = $(this),
2970					elementItems = element.attr('data-items'),
2971					elementItemsLg = element.attr('data-items-lg'),
2972					elementItemsMd = element.attr('data-items-md'),
2973					elementItemsSm = element.attr('data-items-sm'),
2974					elementItemsXs = element.attr('data-items-xs'),
2975					elementItemsXxs = element.attr('data-items-xxs'),
2976					elementLoop = element.attr('data-loop'),
2977					elementAutoPlay = element.attr('data-autoplay'),
2978					elementSpeed = element.attr('data-speed'),
2979					elementAnimateIn = element.attr('data-animate-in'),
2980					elementAnimateOut = element.attr('data-animate-out'),
2981					elementNav = element.attr('data-nav'),
2982					elementPagi = element.attr('data-pagi'),
2983					elementMargin = element.attr('data-margin'),
2984					elementStage = element.attr('data-stage-padding'),
2985					elementMerge = element.attr('data-merge'),
2986					elementStart = element.attr('data-start'),
2987					elementRewind = element.attr('data-rewind'),
2988					elementSlideBy = element.attr('data-slideby'),
2989					elementCenter = element.attr('data-center'),
2990					elementLazy = element.attr('data-lazyload'),
2991					elementVideo = element.attr('data-video'),
2992					elementRTL = element.attr('data-rtl');
2993
2994				if( !elementItems ) { elementItems = 4; }
2995				if( !elementItemsLg ) { elementItemsLg = Number(elementItems); }
2996				if( !elementItemsMd ) { elementItemsMd = Number(elementItemsLg); }
2997				if( !elementItemsSm ) { elementItemsSm = Number(elementItemsMd); }
2998				if( !elementItemsXs ) { elementItemsXs = Number(elementItemsSm); }
2999				if( !elementItemsXxs ) { elementItemsXxs = Number(elementItemsXs); }
3000				if( !elementSpeed ) { elementSpeed = 250; }
3001				if( !elementMargin ) { elementMargin = 20; }
3002				if( !elementStage ) { elementStage = 0; }
3003				if( !elementStart ) { elementStart = 0; }
3004
3005				if( !elementSlideBy ) { elementSlideBy = 1; }
3006				if( elementSlideBy == 'page' ) {
3007					elementSlideBy = 'page';
3008				} else {
3009					elementSlideBy = Number(elementSlideBy);
3010				}
3011
3012				if( elementLoop == 'true' ){ elementLoop = true; } else { elementLoop = false; }
3013				if( !elementAutoPlay ){
3014					elementAutoPlay = false;
3015					var elementAutoPlayTime = 0;
3016				} else {
3017					var elementAutoPlayTime = Number(elementAutoPlay);
3018					elementAutoPlay = true;
3019				}
3020				if( !elementAnimateIn ) { elementAnimateIn = false; }
3021				if( !elementAnimateOut ) { elementAnimateOut = false; }
3022				if( elementNav == 'false' ){ elementNav = false; } else { elementNav = true; }
3023				if( elementPagi == 'false' ){ elementPagi = false; } else { elementPagi = true; }
3024				if( elementRewind == 'true' ){ elementRewind = true; } else { elementRewind = false; }
3025				if( elementMerge == 'true' ){ elementMerge = true; } else { elementMerge = false; }
3026				if( elementCenter == 'true' ){ elementCenter = true; } else { elementCenter = false; }
3027				if( elementLazy == 'true' ){ elementLazy = true; } else { elementLazy = false; }
3028				if( elementVideo == 'true' ){ elementVideo = true; } else { elementVideo = false; }
3029				if( elementRTL == 'true' || $body.hasClass('rtl') ){ elementRTL = true; } else { elementRTL = false; }
3030
3031				element.owlCarousel({
3032					margin: Number(elementMargin),
3033					loop: elementLoop,
3034					stagePadding: Number(elementStage),
3035					merge: elementMerge,
3036					startPosition: Number(elementStart),
3037					rewind: elementRewind,
3038					slideBy: elementSlideBy,
3039					center: elementCenter,
3040					lazyLoad: elementLazy,
3041					nav: elementNav,
3042					navText: ['<i class="icon-angle-left"></i>','<i class="icon-angle-right"></i>'],
3043					autoplay: elementAutoPlay,
3044					autoplayTimeout: elementAutoPlayTime,
3045					autoplayHoverPause: true,
3046					dots: elementPagi,
3047					smartSpeed: Number(elementSpeed),
3048					fluidSpeed: Number(elementSpeed),
3049					video: elementVideo,
3050					animateIn: elementAnimateIn,
3051					animateOut: elementAnimateOut,
3052					rtl: elementRTL,
3053					responsive:{
3054						0:{ items:Number(elementItemsXxs) },
3055						480:{ items:Number(elementItemsXs) },
3056						768:{ items:Number(elementItemsSm) },
3057						992:{ items:Number(elementItemsMd) },
3058						1200:{ items:Number(elementItemsLg) }
3059					},
3060					onInitialized: function(){
3061						SEMICOLON.slider.owlCaptionInit();
3062						SEMICOLON.slider.sliderParallaxDimensions();
3063						SEMICOLON.initialize.lightbox();
3064					}
3065				});
3066			});
3067		},
3068
3069		masonryThumbs: function(){
3070			var $masonryThumbsEl = $('.masonry-thumbs:not(.customjs)');
3071			if( $masonryThumbsEl.length > 0 ){
3072				$masonryThumbsEl.each( function(){
3073					var masonryItemContainer = $(this);
3074					SEMICOLON.widget.masonryThumbsArrange( masonryItemContainer );
3075				});
3076			}
3077		},
3078
3079		masonryThumbsArrange: function( element ){
3080
3081			if( !$().isotope ) {
3082				console.log('masonryThumbsArrange: Isotope not Defined.');
3083				return true;
3084			}
3085
3086			SEMICOLON.initialize.setFullColumnWidth( element );
3087			element.isotope('layout');
3088		},
3089
3090		notifications: function( element ){
3091
3092			if( typeof toastr === 'undefined' ) {
3093				console.log('notifications: Toastr not Defined.');
3094				return true;
3095			}
3096
3097			toastr.remove();
3098			var notifyElement = $(element),
3099				notifyPosition = notifyElement.attr('data-notify-position'),
3100				notifyType = notifyElement.attr('data-notify-type'),
3101				notifyMsg = notifyElement.attr('data-notify-msg'),
3102				notifyTimeout = notifyElement.attr('data-notify-timeout'),
3103				notifyCloseButton = notifyElement.attr('data-notify-close');
3104
3105			if( !notifyPosition ) { notifyPosition = 'toast-top-right'; } else { notifyPosition = 'toast-' + notifyElement.attr('data-notify-position'); }
3106			if( !notifyMsg ) { notifyMsg = 'Please set a message!'; }
3107			if( !notifyTimeout ) { notifyTimeout = 5000; }
3108			if( notifyCloseButton == 'true' ) { notifyCloseButton = true; } else { notifyCloseButton = false; }
3109
3110			toastr.options.positionClass = notifyPosition;
3111			toastr.options.timeOut = Number( notifyTimeout );
3112			toastr.options.closeButton = notifyCloseButton;
3113			toastr.options.closeHtml = '<button><i class="icon-remove"></i></button>';
3114
3115			if( notifyType == 'warning' ) {
3116				toastr.warning(notifyMsg);
3117			} else if( notifyType == 'error' ) {
3118				toastr.error(notifyMsg);
3119			} else if( notifyType == 'success' ) {
3120				toastr.success(notifyMsg);
3121			} else {
3122				toastr.info(notifyMsg);
3123			}
3124
3125			return false;
3126		},
3127
3128		textRotater: function(){
3129
3130			if( !$().Morphext ) {
3131				console.log('textRotater: Morphext not Defined.');
3132				return true;
3133			}
3134
3135			if( $textRotaterEl.length > 0 ){
3136				$textRotaterEl.each(function(){
3137					var element = $(this),
3138						trRotate = $(this).attr('data-rotate'),
3139						trSpeed = $(this).attr('data-speed'),
3140						trSeparator = $(this).attr('data-separator');
3141
3142					if( !trRotate ) { trRotate = "fade"; }
3143					if( !trSpeed ) { trSpeed = 1200; }
3144					if( !trSeparator ) { trSeparator = ","; }
3145
3146					var tRotater = $(this).find('.t-rotate');
3147
3148					tRotater.Morphext({
3149						animation: trRotate,
3150						separator: trSeparator,
3151						speed: Number(trSpeed)
3152					});
3153				});
3154			}
3155		},
3156
3157		linkScroll: function(){
3158			$("a[data-scrollto]").click(function(){
3159				var element = $(this),
3160					divScrollToAnchor = element.attr('data-scrollto'),
3161					divScrollSpeed = element.attr('data-speed'),
3162					divScrollOffset = element.attr('data-offset'),
3163					divScrollEasing = element.attr('data-easing'),
3164					divScrollHighlight = element.attr('data-highlight');
3165
3166				if( element.parents('#primary-menu').hasClass('on-click') ) { return true; }
3167
3168				if( !divScrollSpeed ) { divScrollSpeed = 750; }
3169				if( !divScrollOffset ) { divScrollOffset = SEMICOLON.initialize.topScrollOffset(); }
3170				if( !divScrollEasing ) { divScrollEasing = 'easeOutQuad'; }
3171
3172				$('html,body').stop(true).animate({
3173					'scrollTop': $( divScrollToAnchor ).offset().top - Number(divScrollOffset)
3174				}, Number(divScrollSpeed), divScrollEasing, function(){
3175					if( divScrollHighlight ) {
3176						if( $(divScrollToAnchor).find('.highlight-me').length > 0 ) {
3177							$(divScrollToAnchor).find('.highlight-me').animate({'backgroundColor': divScrollHighlight}, 300);
3178							var t = setTimeout( function(){ $(divScrollToAnchor).find('.highlight-me').animate({'backgroundColor': 'transparent'}, 300); }, 500 );
3179						} else {
3180							$(divScrollToAnchor).animate({'backgroundColor': divScrollHighlight}, 300);
3181							var t = setTimeout( function(){ $(divScrollToAnchor).animate({'backgroundColor': 'transparent'}, 300); }, 500 );
3182						}
3183					}
3184				});
3185
3186				return false;
3187			});
3188		},
3189
3190		contactForm: function(){
3191
3192			if( !$().validate ) {
3193				console.log('contactForm: Form Validate not Defined.');
3194				return true;
3195			}
3196
3197			if( !$().ajaxSubmit ) {
3198				console.log('contactForm: jQuery Form not Defined.');
3199				return true;
3200			}
3201
3202			var $contactForm = $('.contact-widget:not(.customjs)');
3203			if( $contactForm.length < 1 ){ return true; }
3204
3205			$contactForm.each( function(){
3206				var element = $(this),
3207					elementAlert = element.attr('data-alert-type'),
3208					elementLoader = element.attr('data-loader'),
3209					elementResult = element.find('.contact-form-result'),
3210					elementRedirect = element.attr('data-redirect');
3211
3212				element.find('form').validate({
3213					submitHandler: function(form) {
3214
3215						elementResult.hide();
3216
3217						if( elementLoader == 'button' ) {
3218							var defButton = $(form).find('button'),
3219								defButtonText = defButton.html();
3220
3221							defButton.html('<i class="icon-line-loader icon-spin nomargin"></i>');
3222						} else {
3223							$(form).find('.form-process').fadeIn();
3224						}
3225
3226						$(form).ajaxSubmit({
3227							target: elementResult,
3228							dataType: 'json',
3229							success: function( data ) {
3230								if( elementLoader == 'button' ) {
3231									defButton.html( defButtonText );
3232								} else {
3233									$(form).find('.form-process').fadeOut();
3234								}
3235								if( data.alert != 'error' && elementRedirect ){
3236									window.location.replace( elementRedirect );
3237									return true;
3238								}
3239								if( elementAlert == 'inline' ) {
3240									if( data.alert == 'error' ) {
3241										var alertType = 'alert-danger';
3242									} else {
3243										var alertType = 'alert-success';
3244									}
3245
3246									elementResult.removeClass( 'alert-danger alert-success' ).addClass( 'alert ' + alertType ).html( data.message ).slideDown( 400 );
3247								} else {
3248									elementResult.attr( 'data-notify-type', data.alert ).attr( 'data-notify-msg', data.message ).html('');
3249									SEMICOLON.widget.notifications( elementResult );
3250								}
3251								if( $(form).find('.g-recaptcha').children('div').length > 0 ) { grecaptcha.reset(); }
3252								if( data.alert != 'error' ) { $(form).clearForm(); }
3253							}
3254						});
3255					}
3256				});
3257
3258			});
3259		},
3260
3261		subscription: function(){
3262
3263			if( !$().validate ) {
3264				console.log('subscription: Form Validate not Defined.');
3265				return true;
3266			}
3267
3268			if( !$().ajaxSubmit ) {
3269				console.log('subscription: jQuery Form not Defined.');
3270				return true;
3271			}
3272
3273			var $subscribeForm = $('.subscribe-widget:not(.customjs)');
3274			if( $subscribeForm.length < 1 ){ return true; }
3275
3276			$subscribeForm.each( function(){
3277				var element = $(this),
3278					elementAlert = element.attr('data-alert-type'),
3279					elementLoader = element.attr('data-loader'),
3280					elementResult = element.find('.widget-subscribe-form-result'),
3281					elementRedirect = element.attr('data-redirect');
3282
3283				element.find('form').validate({
3284					submitHandler: function(form) {
3285
3286						elementResult.hide();
3287
3288						if( elementLoader == 'button' ) {
3289							var defButton = $(form).find('button'),
3290								defButtonText = defButton.html();
3291
3292							defButton.html('<i class="icon-line-loader icon-spin nomargin"></i>');
3293						} else {
3294							$(form).find('.input-group-addon').find('.icon-email2').removeClass('icon-email2').addClass('icon-line-loader icon-spin');
3295						}
3296
3297						$(form).ajaxSubmit({
3298							target: elementResult,
3299							dataType: 'json',
3300							resetForm: true,
3301							success: function( data ) {
3302								if( elementLoader == 'button' ) {
3303									defButton.html( defButtonText );
3304								} else {
3305									$(form).find('.input-group-addon').find('.icon-line-loader').removeClass('icon-line-loader icon-spin').addClass('icon-email2');
3306								}
3307								if( data.alert != 'error' && elementRedirect ){
3308									window.location.replace( elementRedirect );
3309									return true;
3310								}
3311								if( elementAlert == 'inline' ) {
3312									if( data.alert == 'error' ) {
3313										var alertType = 'alert-danger';
3314									} else {
3315										var alertType = 'alert-success';
3316									}
3317
3318									elementResult.addClass( 'alert ' + alertType ).html( data.message ).slideDown( 400 );
3319								} else {
3320									elementResult.attr( 'data-notify-type', data.alert ).attr( 'data-notify-msg', data.message ).html('');
3321									SEMICOLON.widget.notifications( elementResult );
3322								}
3323							}
3324						});
3325					}
3326				});
3327
3328			});
3329		},
3330
3331		quickContact: function(){
3332
3333			if( !$().validate ) {
3334				console.log('quickContact: Form Validate not Defined.');
3335				return true;
3336			}
3337
3338			if( !$().ajaxSubmit ) {
3339				console.log('quickContact: jQuery Form not Defined.');
3340				return true;
3341			}
3342
3343			var $quickContact = $('.quick-contact-widget:not(.customjs)');
3344			if( $quickContact.length < 1 ){ return true; }
3345
3346			$quickContact.each( function(){
3347				var element = $(this),
3348					elementAlert = element.attr('data-alert-type'),
3349					elementLoader = element.attr('data-loader'),
3350					elementResult = element.find('.quick-contact-form-result'),
3351					elementRedirect = element.attr('data-redirect');
3352
3353				element.find('form').validate({
3354					submitHandler: function(form) {
3355
3356						elementResult.hide();
3357						$(form).animate({ opacity: 0.4 });
3358
3359						if( elementLoader == 'button' ) {
3360							var defButton = $(form).find('button'),
3361								defButtonText = defButton.html();
3362
3363							defButton.html('<i class="icon-line-loader icon-spin nomargin"></i>');
3364						} else {
3365							$(form).find('.form-process').fadeIn();
3366						}
3367
3368						$(form).ajaxSubmit({
3369							target: elementResult,
3370							dataType: 'json',
3371							resetForm: true,
3372							success: function( data ) {
3373								$(form).animate({ opacity: 1 });
3374								if( elementLoader == 'button' ) {
3375									defButton.html( defButtonText );
3376								} else {
3377									$(form).find('.form-process').fadeOut();
3378								}
3379								if( data.alert != 'error' && elementRedirect ){
3380									window.location.replace( elementRedirect );
3381									return true;
3382								}
3383								if( elementAlert == 'inline' ) {
3384									if( data.alert == 'error' ) {
3385										var alertType = 'alert-danger';
3386									} else {
3387										var alertType = 'alert-success';
3388									}
3389
3390									elementResult.addClass( 'alert ' + alertType ).html( data.message ).slideDown( 400 );
3391								} else {
3392									elementResult.attr( 'data-notify-type', data.alert ).attr( 'data-notify-msg', data.message ).html('');
3393									SEMICOLON.widget.notifications( elementResult );
3394								}
3395								if( $(form).find('.g-recaptcha').children('div').length > 0 ) { grecaptcha.reset(); }
3396							}
3397						});
3398					}
3399				});
3400
3401			});
3402		},
3403
3404		stickySidebar: function(){
3405
3406			if( !$().scwStickySidebar ) {
3407				console.log('stickySidebar: Sticky Sidebar is not Defined.');
3408				return true;
3409			}
3410
3411			var $stickySidebar = jQuery('.sticky-sidebar-wrap');
3412			if( $stickySidebar.length < 1 ){ return true; }
3413
3414			$stickySidebar.each( function(){
3415				var element = $(this),
3416					elementTop = element.attr('data-offset-top'),
3417					elementBottom = element.attr('data-offset-bottom');
3418
3419				if( !elementTop ) { elementTop = 110; }
3420				if( !elementBottom ) { elementBottom = 50; }
3421
3422				element.scwStickySidebar({
3423					additionalMarginTop: Number( elementTop ),
3424					additionalMarginBottom: Number( elementBottom )
3425				});
3426			});
3427		},
3428
3429		cookieNotify: function(){
3430
3431			if( !$.cookie ) {
3432				console.log('cookieNotify: Cookie Function not defined.');
3433				return true;
3434			}
3435
3436			if( $cookieNotification.length > 0 ) {
3437				var cookieNotificationHeight = $cookieNotification.outerHeight();
3438
3439				$cookieNotification.css({ bottom: -cookieNotificationHeight });
3440
3441				if( $.cookie('websiteUsesCookies') != 'yesConfirmed' ) {
3442					$cookieNotification.css({ bottom: 0 });
3443				}
3444
3445				$('.cookie-accept').click( function(){
3446					$cookieNotification.css({ bottom: -cookieNotificationHeight });
3447					$.cookie('websiteUsesCookies', 'yesConfirmed', { expires: 30 });
3448					return false;
3449				});
3450			}
3451		},
3452
3453		extras: function(){
3454
3455			if( $().tooltip ) {
3456				$('[data-toggle="tooltip"]').tooltip({container: 'body'});
3457			} else {
3458				console.log('extras: Bootstrap Tooltip not defined.');
3459			}
3460
3461			if( $().popover ) {
3462				$('[data-toggle=popover]').popover();
3463			} else {
3464				console.log('extras: Bootstrap Popover not defined.');
3465			}
3466
3467			$('.style-msg').on( 'click', '.close', function(e){
3468				$( this ).parents( '.style-msg' ).slideUp();
3469				e.preventDefault();
3470			});
3471
3472			$('#primary-menu-trigger,#overlay-menu-close').click(function() {
3473				if( $('#primary-menu').find('ul.mobile-primary-menu').length > 0 ) {
3474					$( '#primary-menu > ul.mobile-primary-menu, #primary-menu > div > ul.mobile-primary-menu' ).toggleClass("show");
3475				} else {
3476					$( '#primary-menu > ul, #primary-menu > div > ul' ).toggleClass("show");
3477				}
3478				$body.toggleClass("primary-menu-open");
3479				return false;
3480			});
3481			$('#page-submenu-trigger').click(function() {
3482				$body.toggleClass('top-search-open', false);
3483				$pagemenu.toggleClass("pagemenu-active");
3484				return false;
3485			});
3486			$pagemenu.find('nav').click(function(e){
3487				$body.toggleClass('top-search-open', false);
3488				$topCart.toggleClass('top-cart-open', false);
3489			});
3490			if( SEMICOLON.isMobile.any() ){
3491				$body.addClass('device-touch');
3492			}
3493			// var el = {
3494			//     darkLogo : $("<img>", {src: defaultDarkLogo}),
3495			//     darkRetinaLogo : $("<img>", {src: retinaDarkLogo})
3496			// };
3497			// el.darkLogo.prependTo("body");
3498			// el.darkRetinaLogo.prependTo("body");
3499			// el.darkLogo.css({'position':'absolute','z-index':'-100'});
3500			// el.darkRetinaLogo.css({'position':'absolute','z-index':'-100'});
3501		}
3502
3503	};
3504
3505	SEMICOLON.isMobile = {
3506		Android: function() {
3507			return navigator.userAgent.match(/Android/i);
3508		},
3509		BlackBerry: function() {
3510			return navigator.userAgent.match(/BlackBerry/i);
3511		},
3512		iOS: function() {
3513			return navigator.userAgent.match(/iPhone|iPad|iPod/i);
3514		},
3515		Opera: function() {
3516			return navigator.userAgent.match(/Opera Mini/i);
3517		},
3518		Windows: function() {
3519			return navigator.userAgent.match(/IEMobile/i);
3520		},
3521		any: function() {
3522			return (SEMICOLON.isMobile.Android() || SEMICOLON.isMobile.BlackBerry() || SEMICOLON.isMobile.iOS() || SEMICOLON.isMobile.Opera() || SEMICOLON.isMobile.Windows());
3523		}
3524	};
3525
3526	SEMICOLON.documentOnResize = {
3527
3528		init: function(){
3529
3530			var t = setTimeout( function(){
3531				SEMICOLON.header.topsocial();
3532				SEMICOLON.header.fullWidthMenu();
3533				SEMICOLON.header.overlayMenu();
3534				SEMICOLON.initialize.fullScreen();
3535				SEMICOLON.initialize.verticalMiddle();
3536				SEMICOLON.initialize.maxHeight();
3537				SEMICOLON.initialize.testimonialsGrid();
3538				SEMICOLON.initialize.stickyFooter();
3539				SEMICOLON.slider.sliderParallaxDimensions();
3540				SEMICOLON.slider.captionPosition();
3541				SEMICOLON.portfolio.arrange();
3542				SEMICOLON.portfolio.portfolioDescMargin();
3543				SEMICOLON.widget.tabsResponsiveResize();
3544				SEMICOLON.widget.tabsJustify();
3545				SEMICOLON.widget.html5Video();
3546				SEMICOLON.widget.masonryThumbs();
3547				SEMICOLON.initialize.dataResponsiveClasses();
3548				SEMICOLON.initialize.dataResponsiveHeights();
3549				if( $gridContainer.length > 0 ) {
3550					if( !$gridContainer.hasClass('.customjs') ) {
3551						if( $().isotope ) {
3552							$gridContainer.isotope('layout');
3553						} else {
3554							console.log('documentOnResize > init: Isotope not defined.');
3555						}
3556					}
3557				}
3558				if( $body.hasClass('device-lg') || $body.hasClass('device-md') ) {
3559					$('#primary-menu').find('ul.mobile-primary-menu').removeClass('show');
3560				}
3561			}, 500 );
3562
3563			windowWidth = $window.width();
3564
3565		}
3566
3567	};
3568
3569	SEMICOLON.documentOnReady = {
3570
3571		init: function(){
3572			SEMICOLON.initialize.init();
3573			SEMICOLON.header.init();
3574			if( $slider.length > 0 ) { SEMICOLON.slider.init(); }
3575			if( $portfolio.length > 0 ) { SEMICOLON.portfolio.init(); }
3576			SEMICOLON.widget.init();
3577			SEMICOLON.documentOnReady.windowscroll();
3578		},
3579
3580		windowscroll: function(){
3581
3582			var headerOffset = 0,
3583				headerWrapOffset = 0,
3584				pageMenuOffset = 0;
3585
3586			if( $header.length > 0 ) { headerOffset = $header.offset().top; }
3587			if( $header.length > 0 ) { headerWrapOffset = $headerWrap.offset().top; }
3588			if( $pagemenu.length > 0 ) {
3589				if( $header.length > 0 && !$header.hasClass('no-sticky') ) {
3590					if( $header.hasClass('sticky-style-2') || $header.hasClass('sticky-style-3') ) {
3591						pageMenuOffset = $pagemenu.offset().top - $headerWrap.outerHeight();
3592					} else {
3593						pageMenuOffset = $pagemenu.offset().top - $header.outerHeight();
3594					}
3595				} else {
3596					pageMenuOffset = $pagemenu.offset().top;
3597				}
3598			}
3599
3600			var headerDefinedOffset = $header.attr('data-sticky-offset');
3601			if( typeof headerDefinedOffset !== 'undefined' ) {
3602				if( headerDefinedOffset == 'full' ) {
3603					headerWrapOffset = $window.height();
3604					var headerOffsetNegative = $header.attr('data-sticky-offset-negative');
3605					if( typeof headerOffsetNegative !== 'undefined' ) { headerWrapOffset = headerWrapOffset - headerOffsetNegative - 1; }
3606				} else {
3607					headerWrapOffset = Number(headerDefinedOffset);
3608				}
3609			}
3610
3611			SEMICOLON.header.stickyMenu( headerWrapOffset );
3612			SEMICOLON.header.stickyPageMenu( pageMenuOffset );
3613
3614			$window.on( 'scroll', function(){
3615
3616				SEMICOLON.initialize.goToTopScroll();
3617				$('body.open-header.close-header-on-scroll').removeClass("side-header-open");
3618				SEMICOLON.header.stickyMenu( headerWrapOffset );
3619				SEMICOLON.header.stickyPageMenu( pageMenuOffset );
3620				SEMICOLON.header.logo();
3621
3622			});
3623
3624			window.addEventListener('scroll', onScrollSliderParallax, false);
3625
3626			if( $onePageMenuEl.length > 0 ){
3627				if( $().scrolled ) {
3628					$window.scrolled(function() {
3629						SEMICOLON.header.onepageScroller();
3630					});
3631				} else {
3632					console.log('windowscroll: Scrolled Function not defined.');
3633				}
3634			}
3635		}
3636
3637	};
3638
3639	SEMICOLON.documentOnLoad = {
3640
3641		init: function(){
3642			SEMICOLON.slider.captionPosition();
3643			SEMICOLON.slider.swiperSliderMenu(true);
3644			SEMICOLON.slider.revolutionSliderMenu(true);
3645			SEMICOLON.initialize.maxHeight();
3646			SEMICOLON.initialize.testimonialsGrid();
3647			SEMICOLON.initialize.verticalMiddle();
3648			SEMICOLON.initialize.stickFooterOnSmall();
3649			SEMICOLON.initialize.stickyFooter();
3650			SEMICOLON.portfolio.gridInit( $gridContainer );
3651			SEMICOLON.portfolio.filterInit();
3652			SEMICOLON.portfolio.shuffleInit();
3653			SEMICOLON.portfolio.arrange();
3654			SEMICOLON.portfolio.portfolioDescMargin();
3655			SEMICOLON.widget.parallax();
3656			SEMICOLON.widget.loadFlexSlider();
3657			SEMICOLON.widget.html5Video();
3658			SEMICOLON.widget.masonryThumbs();
3659			SEMICOLON.header.topsocial();
3660			SEMICOLON.header.responsiveMenuClass();
3661			SEMICOLON.initialize.modal();
3662		}
3663
3664	};
3665
3666	var $window = $(window),
3667		$body = $('body'),
3668		$wrapper = $('#wrapper'),
3669		$header = $('#header'),
3670		$headerWrap = $('#header-wrap'),
3671		$content = $('#content'),
3672		$footer = $('#footer'),
3673		windowWidth = $window.width(),
3674		oldHeaderClasses = $header.attr('class'),
3675		oldHeaderWrapClasses = $headerWrap.attr('class'),
3676		stickyMenuClasses = $header.attr('data-sticky-class'),
3677		responsiveMenuClasses = $header.attr('data-responsive-class'),
3678		defaultLogo = $('#logo').find('.standard-logo'),
3679		defaultLogoWidth = defaultLogo.find('img').outerWidth(),
3680		retinaLogo = $('#logo').find('.retina-logo'),
3681		defaultLogoImg = defaultLogo.find('img').attr('src'),
3682		retinaLogoImg = retinaLogo.find('img').attr('src'),
3683		defaultDarkLogo = defaultLogo.attr('data-dark-logo'),
3684		retinaDarkLogo = retinaLogo.attr('data-dark-logo'),
3685		defaultStickyLogo = defaultLogo.attr('data-sticky-logo'),
3686		retinaStickyLogo = retinaLogo.attr('data-sticky-logo'),
3687		defaultMobileLogo = defaultLogo.attr('data-mobile-logo'),
3688		retinaMobileLogo = retinaLogo.attr('data-mobile-logo'),
3689		$pagemenu = $('#page-menu'),
3690		$onePageMenuEl = $('.one-page-menu'),
3691		onePageGlobalOffset = 0,
3692		$portfolio = $('.portfolio'),
3693		$shop = $('.shop'),
3694		$gridContainer = $('.grid-container'),
3695		$slider = $('#slider'),
3696		$sliderParallaxEl = $('.slider-parallax'),
3697		swiperSlider = '',
3698		$pageTitle = $('#page-title'),
3699		$portfolioItems = $('.portfolio-ajax').find('.portfolio-item'),
3700		$portfolioDetails = $('#portfolio-ajax-wrap'),
3701		$portfolioDetailsContainer = $('#portfolio-ajax-container'),
3702		$portfolioAjaxLoader = $('#portfolio-ajax-loader'),
3703		$portfolioFilter = $('.portfolio-filter,.custom-filter'),
3704		prevPostPortId = '',
3705		$topSearch = $('#top-search'),
3706		$topCart = $('#top-cart'),
3707		$verticalMiddleEl = $('.vertical-middle'),
3708		$topSocialEl = $('#top-social').find('li'),
3709		$siStickyEl = $('.si-sticky'),
3710		$dotsMenuEl = $('.dots-menu'),
3711		$goToTopEl = $('#gotoTop'),
3712		$fullScreenEl = $('.full-screen'),
3713		$commonHeightEl = $('.common-height'),
3714		$testimonialsGridEl = $('.testimonials-grid'),
3715		$pageSectionEl = $('.page-section'),
3716		$owlCarouselEl = $('.owl-carousel'),
3717		$parallaxEl = $('.parallax'),
3718		$parallaxPageTitleEl = $('.page-title-parallax'),
3719		$parallaxPortfolioEl = $('.portfolio-parallax').find('.portfolio-image'),
3720		$textRotaterEl = $('.text-rotater'),
3721		$cookieNotification = $('#cookie-notification');
3722
3723	$(document).ready( SEMICOLON.documentOnReady.init );
3724	$window.on( 'load', SEMICOLON.documentOnLoad.init );
3725	$window.on( 'resize', SEMICOLON.documentOnResize.init );
3726
3727})(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.