PageSourceSearch

https://mousikogramma.gr/js/functions.js

js mousikogramma.gr collected 2026-10-02 13:32:57 UTC 94,010 bytes, 2,610 lines download raw bytes

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