
/*!

=========================================================
* Argon Dashboard PRO - v1.1.0
=========================================================

* Product Page: https://www.creative-tim.com/product/argon-dashboard
* Copyright 2019 Creative Tim (https://www.creative-tim.com)

* Coded by www.creative-tim.com

=========================================================

* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

*/



//
// Layout
//

'use strict';

var Layout = (function () {

	function pinSidenav() {
		$('.sidenav-toggler').addClass('active');
		$('.sidenav-toggler').data('action', 'sidenav-unpin');
		$('body').removeClass('g-sidenav-hidden').addClass('g-sidenav-show g-sidenav-pinned');
		$('body').append('<div class="backdrop d-xl-none" data-action="sidenav-unpin" data-target=' + $('#sidenav-main').data('target') + ' />');

		// Store the sidenav state in a cookie session
		Cookies.set('sidenav-state', 'pinned');
	}

	function unpinSidenav() {
		$('.sidenav-toggler').removeClass('active');
		$('.sidenav-toggler').data('action', 'sidenav-pin');
		$('body').removeClass('g-sidenav-pinned').addClass('g-sidenav-hidden');
		$('body').find('.backdrop').remove();

		// Store the sidenav state in a cookie session
		Cookies.set('sidenav-state', 'unpinned');
	}

	// Set sidenav state from cookie

	//var $sidenavState = Cookies.get('sidenav-state') ? Cookies.get('sidenav-state') : 'pinned';

	//if ($(window).width() > 1200) {
	//	if ($sidenavState == 'pinned') {
	//		pinSidenav()
	//	}

	//	if (Cookies.get('sidenav-state') == 'unpinned') {
	//		unpinSidenav()
	//	}
	//}

	//$("body").on("click", "[data-action]", function (e) {

	//	e.preventDefault();

	//	var $this = $(this);
	//	var action = $this.data('action');
	//	var target = $this.data('target');


	//	// Manage actions

	//	switch (action) {
	//		case 'sidenav-pin':
	//			pinSidenav();
	//			break;

	//		case 'sidenav-unpin':
	//			unpinSidenav();
	//			break;

	//		case 'search-show':
	//			target = $this.data('target');
	//			$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-showing');

	//			setTimeout(function () {
	//				$('body').removeClass('g-navbar-search-showing').addClass('g-navbar-search-show');
	//			}, 150);

	//			setTimeout(function () {
	//				$('body').addClass('g-navbar-search-shown');
	//			}, 300)
	//			break;

	//		case 'search-close':
	//			target = $this.data('target');
	//			$('body').removeClass('g-navbar-search-shown');

	//			setTimeout(function () {
	//				$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-hiding');
	//			}, 150);

	//			setTimeout(function () {
	//				$('body').removeClass('g-navbar-search-hiding').addClass('g-navbar-search-hidden');
	//			}, 300);

	//			setTimeout(function () {
	//				$('body').removeClass('g-navbar-search-hidden');
	//			}, 500);
	//			break;
	//	}
	//})


	//// Add sidenav modifier classes on mouse events

	//$('.sidenav').on('mouseenter', function () {
	//	if (!$('body').hasClass('g-sidenav-pinned')) {
	//		$('body').removeClass('g-sidenav-hide').removeClass('g-sidenav-hidden').addClass('g-sidenav-show');
	//	}
	//})

	//$('.sidenav').on('mouseleave', function () {
	//	if (!$('body').hasClass('g-sidenav-pinned')) {
	//		$('body').removeClass('g-sidenav-show').addClass('g-sidenav-hide');

	//		setTimeout(function () {
	//			$('body').removeClass('g-sidenav-hide').addClass('g-sidenav-hidden');
	//		}, 300);
	//	}
	//})


	// Make the body full screen size if it has not enough content inside
	//$(window).on('load resize', function () {
	//	if ($('body').height() < 800) {
	//		$('body').css('min-height', '100vh');
	//		$('#footer-main').addClass('footer-auto-bottom')
	//	}
	//})

})();

//
// Charts
//

'use strict';

//var Charts = (function () {

//	// Variable

//	var $toggle = $('[data-toggle="chart"]');
//	var mode = 'light';//(themeMode) ? themeMode : 'light';
//	var fonts = {
//		base: 'Open Sans'
//	}

//	// Colors
//	var colors = {
//		gray: {
//			100: '#f6f9fc',
//			200: '#e9ecef',
//			300: '#dee2e6',
//			400: '#ced4da',
//			500: '#adb5bd',
//			600: '#8898aa',
//			700: '#525f7f',
//			800: '#32325d',
//			900: '#212529'
//		},
//		theme: {
//			'default': '#172b4d',
//			'primary': '#5e72e4',
//			'secondary': '#f4f5f7',
//			'info': '#11cdef',
//			'success': '#2dce89',
//			'danger': '#f5365c',
//			'warning': '#fb6340'
//		},
//		black: '#12263F',
//		white: '#FFFFFF',
//		transparent: 'transparent',
//	};


//	// Methods

//	// Chart.js global options
//	function chartOptions() {

//		// Options
//		var options = {
//			defaults: {
//				global: {
//					responsive: true,
//					maintainAspectRatio: false,
//					defaultColor: (mode == 'dark') ? colors.gray[700] : colors.gray[600],
//					defaultFontColor: (mode == 'dark') ? colors.gray[700] : colors.gray[600],
//					defaultFontFamily: fonts.base,
//					defaultFontSize: 13,
//					layout: {
//						padding: 0
//					},
//					legend: {
//						display: false,
//						position: 'bottom',
//						labels: {
//							usePointStyle: true,
//							padding: 16
//						}
//					},
//					elements: {
//						point: {
//							radius: 0,
//							backgroundColor: colors.theme['primary']
//						},
//						line: {
//							tension: .4,
//							borderWidth: 4,
//							borderColor: colors.theme['primary'],
//							backgroundColor: colors.transparent,
//							borderCapStyle: 'rounded'
//						},
//						rectangle: {
//							backgroundColor: colors.theme['warning']
//						},
//						arc: {
//							backgroundColor: colors.theme['primary'],
//							borderColor: (mode == 'dark') ? colors.gray[800] : colors.white,
//							borderWidth: 4
//						}
//					},
//					tooltips: {
//						enabled: true,
//						mode: 'index',
//						intersect: false,
//					}
//				},
//				doughnut: {
//					cutoutPercentage: 83,
//					legendCallback: function (chart) {
//						var data = chart.data;
//						var content = '';

//						data.labels.forEach(function (label, index) {
//							var bgColor = data.datasets[0].backgroundColor[index];

//							content += '<span class="chart-legend-item">';
//							content += '<i class="chart-legend-indicator" style="background-color: ' + bgColor + '"></i>';
//							content += label;
//							content += '</span>';
//						});

//						return content;
//					}
//				}
//			}
//		}

//		// yAxes
//		Chart.scaleService.updateScaleDefaults('linear', {
//			gridLines: {
//				borderDash: [2],
//				borderDashOffset: [2],
//				color: (mode == 'dark') ? colors.gray[900] : colors.gray[300],
//				drawBorder: false,
//				drawTicks: false,
//				drawOnChartArea: true,
//				zeroLineWidth: 0,
//				zeroLineColor: 'rgba(0,0,0,0)',
//				zeroLineBorderDash: [2],
//				zeroLineBorderDashOffset: [2]
//			},
//			ticks: {
//				beginAtZero: true,
//				padding: 10,
//				callback: function (value) {
//					if (!(value % 10)) {
//						return value
//					}
//				}
//			}
//		});

//		// xAxes
//		Chart.scaleService.updateScaleDefaults('category', {
//			gridLines: {
//				drawBorder: false,
//				drawOnChartArea: false,
//				drawTicks: false
//			},
//			ticks: {
//				padding: 20
//			},
//			maxBarThickness: 10
//		});

//		return options;

//	}

//	// Parse global options
//	function parseOptions(parent, options) {
//		for (var item in options) {
//			if (typeof options[item] !== 'object') {
//				parent[item] = options[item];
//			} else {
//				parseOptions(parent[item], options[item]);
//			}
//		}
//	}

//	// Push options
//	function pushOptions(parent, options) {
//		for (var item in options) {
//			if (Array.isArray(options[item])) {
//				options[item].forEach(function (data) {
//					parent[item].push(data);
//				});
//			} else {
//				pushOptions(parent[item], options[item]);
//			}
//		}
//	}

//	// Pop options
//	function popOptions(parent, options) {
//		for (var item in options) {
//			if (Array.isArray(options[item])) {
//				options[item].forEach(function (data) {
//					parent[item].pop();
//				});
//			} else {
//				popOptions(parent[item], options[item]);
//			}
//		}
//	}

//	// Toggle options
//	function toggleOptions(elem) {
//		var options = elem.data('add');
//		var $target = $(elem.data('target'));
//		var $chart = $target.data('chart');

//		if (elem.is(':checked')) {

//			// Add options
//			pushOptions($chart, options);

//			// Update chart
//			$chart.update();
//		} else {

//			// Remove options
//			popOptions($chart, options);

//			// Update chart
//			$chart.update();
//		}
//	}

//	// Update options
//	function updateOptions(elem) {
//		var options = elem.data('update');
//		var $target = $(elem.data('target'));
//		var $chart = $target.data('chart');

//		// Parse options
//		parseOptions($chart, options);

//		// Toggle ticks
//		toggleTicks(elem, $chart);

//		// Update chart
//		$chart.update();
//	}

//	// Toggle ticks
//	function toggleTicks(elem, $chart) {

//		if (elem.data('prefix') !== undefined || elem.data('prefix') !== undefined) {
//			var prefix = elem.data('prefix') ? elem.data('prefix') : '';
//			var suffix = elem.data('suffix') ? elem.data('suffix') : '';

//			// Update ticks
//			$chart.options.scales.yAxes[0].ticks.callback = function (value) {
//				if (!(value % 10)) {
//					return prefix + value + suffix;
//				}
//			}

//			// Update tooltips
//			$chart.options.tooltips.callbacks.label = function (item, data) {
//				var label = data.datasets[item.datasetIndex].label || '';
//				var yLabel = item.yLabel;
//				var content = '';

//				if (data.datasets.length > 1) {
//					content += '<span class="popover-body-label mr-auto">' + label + '</span>';
//				}

//				content += '<span class="popover-body-value">' + prefix + yLabel + suffix + '</span>';
//				return content;
//			}

//		}
//	}


//	// Events

//	// Parse global options
//	if (window.Chart) {
//		parseOptions(Chart, chartOptions());
//	}

//	// Toggle options
//	$toggle.on({
//		'change': function () {
//			var $this = $(this);

//			if ($this.is('[data-add]')) {
//				toggleOptions($this);
//			}
//		},
//		'click': function () {
//			var $this = $(this);

//			if ($this.is('[data-update]')) {
//				updateOptions($this);
//			}
//		}
//	});


//	// Return

//	return {
//		colors: colors,
//		fonts: fonts,
//		mode: mode
//	};

//})();

//
// Icon code copy/paste
//

//'use strict';

//var CopyIcon = (function () {

//	// Variables

//	var $element = '.btn-icon-clipboard',
//		$btn = $($element);


//	// Methods

//	function init($this) {
//		$this.tooltip().on('mouseleave', function () {
//			// Explicitly hide tooltip, since after clicking it remains
//			// focused (as it's a button), so tooltip would otherwise
//			// remain visible until focus is moved away
//			$this.tooltip('hide');
//		});

//		var clipboard = new ClipboardJS($element);

//		clipboard.on('success', function (e) {
//			$(e.trigger)
//				.attr('title', 'Copied!')
//				.tooltip('_fixTitle')
//				.tooltip('show')
//				.attr('title', 'Copy to clipboard')
//				.tooltip('_fixTitle')

//			e.clearSelection()
//		});
//	}


//	// Events
//	if ($btn.length) {
//		init($btn);
//	}

//})();

//
// Navbar
//

//'use strict';

//var Navbar = (function () {

//	// Variables

//	var $nav = $('.navbar-nav, .navbar-nav .nav');
//	var $collapse = $('.navbar .collapse');
//	var $dropdown = $('.navbar .dropdown');

//	// Methods

//	function accordion($this) {
//		$this.closest($nav).find($collapse).not($this).collapse('hide');
//	}

//	function closeDropdown($this) {
//		var $dropdownMenu = $this.find('.dropdown-menu');

//		$dropdownMenu.addClass('close');

//		setTimeout(function () {
//			$dropdownMenu.removeClass('close');
//		}, 200);
//	}


//	// Events

//	$collapse.on({
//		'show.bs.collapse': function () {
//			accordion($(this));
//		}
//	})

//	$dropdown.on({
//		'hide.bs.dropdown': function () {
//			closeDropdown($(this));
//		}
//	})

//})();


////
//// Navbar collapse
////


//var NavbarCollapse = (function () {

//	// Variables

//	var $nav = $('.navbar-nav'),
//		$collapse = $('.navbar .navbar-custom-collapse');


//	// Methods

//	function hideNavbarCollapse($this) {
//		$this.addClass('collapsing-out');
//	}

//	function hiddenNavbarCollapse($this) {
//		$this.removeClass('collapsing-out');
//	}


//	// Events

//	if ($collapse.length) {
//		$collapse.on({
//			'hide.bs.collapse': function () {
//				hideNavbarCollapse($collapse);
//			}
//		})

//		$collapse.on({
//			'hidden.bs.collapse': function () {
//				hiddenNavbarCollapse($collapse);
//			}
//		})
//	}

//})();

//
// Popover
//

//'use strict';

//var Popover = (function () {

//	// Variables

//	var $popover = $('[data-toggle="popover"]'),
//		$popoverClass = '';


//	// Methods

//	function init($this) {
//		if ($this.data('color')) {
//			$popoverClass = 'popover-' + $this.data('color');
//		}

//		var options = {
//			trigger: 'focus',
//			template: '<div class="popover ' + $popoverClass + '" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
//		};

//		$this.popover(options);
//	}


//	// Events

//	if ($popover.length) {
//		$popover.each(function () {
//			init($(this));
//		});
//	}

//})();

//
// Scroll to (anchor links)
//

//'use strict';

//var ScrollTo = (function () {

//	//
//	// Variables
//	//

//	var $scrollTo = $('.scroll-me, [data-scroll-to], .toc-entry a');


//	//
//	// Methods
//	//

//	function scrollTo($this) {
//		var $el = $this.attr('href');
//		var offset = $this.data('scroll-to-offset') ? $this.data('scroll-to-offset') : 0;
//		var options = {
//			scrollTop: $($el).offset().top - offset
//		};

//		// Animate scroll to the selected section
//		$('html, body').stop(true, true).animate(options, 600);

//		event.preventDefault();
//	}


//	//
//	// Events
//	//

//	if ($scrollTo.length) {
//		$scrollTo.on('click', function (event) {
//			scrollTo($(this));
//		});
//	}

//})();

////
//// Tooltip
////

//'use strict';

//var Tooltip = (function () {

//	// Variables

//	var $tooltip = $('[data-toggle="tooltip"]');


//	// Methods

//	function init() {
//		$tooltip.tooltip();
//	}


//	// Events

//	if ($tooltip.length) {
//		init();
//	}

//})();

////
//// Checklist
////

//'use strict';

//var Checklist = (function () {

//	//
//	// Variables
//	//

//	var $list = $('[data-toggle="checklist"]')


//	//
//	// Methods
//	//

//	// Init
//	function init($this) {
//		var $checkboxes = $this.find('.checklist-entry input[type="checkbox"]');

//		$checkboxes.each(function () {
//			checkEntry($(this));
//		});

//	}

//	function checkEntry($checkbox) {
//		if ($checkbox.is(':checked')) {
//			$checkbox.closest('.checklist-item').addClass('checklist-item-checked');
//		} else {
//			$checkbox.closest('.checklist-item').removeClass('checklist-item-checked');
//		}
//	}


//	//
//	// Events
//	//

//	// Init
//	if ($list.length) {
//		$list.each(function () {
//			init($(this));
//		});

//		$list.find('input[type="checkbox"]').on('change', function () {
//			checkEntry($(this));
//		});
//	}

//})();

////
//// Form control
////

//'use strict';

//var FormControl = (function () {

//	// Variables

//	var $input = $('.form-control');


//	// Methods

//	function init($this) {
//		$this.on('focus blur', function (e) {
//			$(this).parents('.form-group').toggleClass('focused', (e.type === 'focus'));
//		}).trigger('blur');
//	}


//	// Events

//	if ($input.length) {
//		init($input);
//	}

//})();

//
// Google maps
//

var $map = $('#map-default'),
	map,
	lat,
	lng,
	color = "#5e72e4";

function initMap() {

	map = document.getElementById('map-default');
	lat = map.getAttribute('data-lat');
	lng = map.getAttribute('data-lng');

	var myLatlng = new google.maps.LatLng(lat, lng);
	var mapOptions = {
		zoom: 12,
		scrollwheel: false,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
	}

	map = new google.maps.Map(map, mapOptions);

	var marker = new google.maps.Marker({
		position: myLatlng,
		map: map,
		animation: google.maps.Animation.DROP,
		title: 'Hello World!'
	});

	var contentString = '<div class="info-window-content"><h2>Argon Dashboard PRO</h2>' +
		'<p>A beautiful premium dashboard for Bootstrap 4.</p></div>';

	var infowindow = new google.maps.InfoWindow({
		content: contentString
	});

	google.maps.event.addListener(marker, 'click', function () {
		infowindow.open(map, marker);
	});
}

if ($map.length) {
	google.maps.event.addDomListener(window, 'load', initMap);
}

//
// Google maps
//

var $map = $('#map-custom'),
	map,
	lat,
	lng,
	color = "#5e72e4";

function initMap() {

	map = document.getElementById('map-custom');
	lat = map.getAttribute('data-lat');
	lng = map.getAttribute('data-lng');

	var myLatlng = new google.maps.LatLng(lat, lng);
	var mapOptions = {
		zoom: 12,
		scrollwheel: false,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP,
		styles: [{ "featureType": "administrative", "elementType": "labels.text.fill", "stylers": [{ "color": "#444444" }] }, { "featureType": "landscape", "elementType": "all", "stylers": [{ "color": "#f2f2f2" }] }, { "featureType": "poi", "elementType": "all", "stylers": [{ "visibility": "off" }] }, { "featureType": "road", "elementType": "all", "stylers": [{ "saturation": -100 }, { "lightness": 45 }] }, { "featureType": "road.highway", "elementType": "all", "stylers": [{ "visibility": "simplified" }] }, { "featureType": "road.arterial", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "featureType": "transit", "elementType": "all", "stylers": [{ "visibility": "off" }] }, { "featureType": "water", "elementType": "all", "stylers": [{ "color": color }, { "visibility": "on" }] }]
	}

	map = new google.maps.Map(map, mapOptions);

	var marker = new google.maps.Marker({
		position: myLatlng,
		map: map,
		animation: google.maps.Animation.DROP,
		title: 'Hello World!'
	});

	var contentString = '<div class="info-window-content"><h2>Argon Dashboard PRO</h2>' +
		'<p>A beautiful premium dashboard for Bootstrap 4.</p></div>';

	var infowindow = new google.maps.InfoWindow({
		content: contentString
	});

	google.maps.event.addListener(marker, 'click', function () {
		infowindow.open(map, marker);
	});
}

if ($map.length) {
	google.maps.event.addDomListener(window, 'load', initMap);
}

//
// Charts
//

'use strict';

//
// Doughnut chart
//

var BarStackedChart = (function () {

	// Variables

	var $chart = $('#chart-bar-stacked');


	// Methods

	function init($this) {

		// Only for demo purposes - return a random number to generate datasets
		var randomScalingFactor = function () {
			return Math.round(Math.random() * 100);
		};


		// Chart data

		var data = {
			labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
			datasets: [{
				label: 'Dataset 1',
				backgroundColor: Charts.colors.theme['danger'],
				data: [
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor()
				]
			}, {
				label: 'Dataset 2',
				backgroundColor: Charts.colors.theme['primary'],
				data: [
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor()
				]
			}, {
				label: 'Dataset 3',
				backgroundColor: Charts.colors.theme['success'],
				data: [
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor(),
					randomScalingFactor()
				]
			}]

		};


		// Options

		var options = {
			tooltips: {
				mode: 'index',
				intersect: false
			},
			responsive: true,
			scales: {
				xAxes: [{
					stacked: true,
				}],
				yAxes: [{
					stacked: true
				}]
			}
		}


		// Init chart

		var barStackedChart = new Chart($this, {
			type: 'bar',
			data: data,
			options: options
		});

		// Save to jQuery object

		$this.data('chart', barStackedChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Doughnut chart
//

var DoughnutChart = (function () {

	// Variables

	var $chart = $('#chart-doughnut');


	// Methods

	function init($this) {
		var randomScalingFactor = function () {
			return Math.round(Math.random() * 100);
		};

		var doughnutChart = new Chart($this, {
			type: 'doughnut',
			data: {
				labels: [
					'Danger',
					'Warning',
					'Success',
					'Primary',
					'Info'
				],
				datasets: [{
					data: [
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
					],
					backgroundColor: [
						Charts.colors.theme['danger'],
						Charts.colors.theme['warning'],
						Charts.colors.theme['success'],
						Charts.colors.theme['primary'],
						Charts.colors.theme['info'],
					],
					label: 'Dataset 1'
				}],
			},
			options: {
				responsive: true,
				legend: {
					position: 'top',
				},
				animation: {
					animateScale: true,
					animateRotate: true
				}
			}
		});

		// Save to jQuery object

		$this.data('chart', doughnutChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Doughnut chart
//

var PieChart = (function () {

	// Variables

	var $chart = $('#chart-pie');


	// Methods

	function init($this) {
		var randomScalingFactor = function () {
			return Math.round(Math.random() * 100);
		};

		var pieChart = new Chart($this, {
			type: 'pie',
			data: {
				labels: [
					'Danger',
					'Warning',
					'Success',
					'Primary',
					'Info'
				],
				datasets: [{
					data: [
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
						randomScalingFactor(),
					],
					backgroundColor: [
						Charts.colors.theme['danger'],
						Charts.colors.theme['warning'],
						Charts.colors.theme['success'],
						Charts.colors.theme['primary'],
						Charts.colors.theme['info'],
					],
					label: 'Dataset 1'
				}],
			},
			options: {
				responsive: true,
				legend: {
					position: 'top',
				},
				animation: {
					animateScale: true,
					animateRotate: true
				}
			}
		});

		// Save to jQuery object

		$this.data('chart', pieChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Points chart
//

var PointsChart = (function () {

	// Variables

	var $chart = $('#chart-points');


	// Methods

	function init($this) {
		var salesChart = new Chart($this, {
			type: 'line',
			options: {
				scales: {
					yAxes: [{
						gridLines: {
							color: Charts.colors.gray[200],
							zeroLineColor: Charts.colors.gray[200]
						},
						ticks: {

						}
					}]
				}
			},
			data: {
				labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
				datasets: [{
					label: 'Performance',
					data: [10, 18, 28, 23, 28, 40, 36, 46, 52],
					pointRadius: 10,
					pointHoverRadius: 15,
					showLine: false
				}]
			}
		});

		// Save to jQuery object

		$this.data('chart', salesChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Sales chart
//

var SalesChart = (function () {

	// Variables

	var $chart = $('#chart-sales-dark');


	// Methods

	function init($this) {
		var salesChart = new Chart($this, {
			type: 'line',
			options: {
				scales: {
					yAxes: [{
						gridLines: {
							color: Charts.colors.gray[700],
							zeroLineColor: Charts.colors.gray[700]
						},
						ticks: {

						}
					}]
				}
			},
			data: {
				labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
				datasets: [{
					label: 'Performance',
					data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
				}]
			}
		});

		// Save to jQuery object

		$this.data('chart', salesChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Sales chart
//

var SalesChart = (function () {

	// Variables

	var $chart = $('#chart-sales');


	// Methods

	function init($this) {
		var salesChart = new Chart($this, {
			type: 'line',
			options: {
				scales: {
					yAxes: [{
						gridLines: {
							color: Charts.colors.gray[200],
							zeroLineColor: Charts.colors.gray[200]
						},
						ticks: {

						}
					}]
				}
			},
			data: {
				labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
				datasets: [{
					label: 'Performance',
					data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
				}]
			}
		});

		// Save to jQuery object

		$this.data('chart', salesChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Bars chart
//

var BarsChart = (function () {

	//
	// Variables
	//

	var $chart = $('#chart-bars');


	//
	// Methods
	//

	// Init chart
	function initChart($chart) {

		// Create chart
		var ordersChart = new Chart($chart, {
			type: 'bar',
			data: {
				labels: ['Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
				datasets: [{
					label: 'Sales',
					data: [25, 20, 30, 22, 17, 29]
				}]
			}
		});

		// Save to jQuery object
		$chart.data('chart', ordersChart);
	}


	// Init chart
	if ($chart.length) {
		initChart($chart);
	}

})();

//
// Charts
//

'use strict';

//
// Sales chart
//

var LineChart = (function () {

	// Variables

	var $chart = $('#chart-line');


	// Methods

	function init($this) {
		var salesChart = new Chart($this, {
			type: 'line',
			options: {
				scales: {
					yAxes: [{
						gridLines: {
							color: Charts.colors.gray[200],
							zeroLineColor: Charts.colors.gray[200]
						},
						ticks: {

						}
					}]
				}
			},
			data: {
				labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
				datasets: [{
					label: 'Performance',
					data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
				}]
			}
		});

		// Save to jQuery object

		$this.data('chart', salesChart);

	};


	// Events

	if ($chart.length) {
		init($chart);
	}

})();

//
// Widget Calendar
//


if ($('[data-toggle="widget-calendar"]')[0]) {
	$('[data-toggle="widget-calendar"]').fullCalendar({
		contentHeight: 'auto',
		theme: false,
		buttonIcons: {
			prev: ' ni ni-bold-left',
			next: ' ni ni-bold-right'
		},
		header: {
			right: 'next',
			center: 'title, ',
			left: 'prev'
		},
		defaultDate: '2018-12-01',
		editable: true,
		events: [

			{
				title: 'Call with Dave',
				start: '2018-11-18',
				end: '2018-11-18',
				className: 'bg-red'
			},

			{
				title: 'Lunch meeting',
				start: '2018-11-21',
				end: '2018-11-22',
				className: 'bg-orange'
			},

			{
				title: 'All day conference',
				start: '2018-11-29',
				end: '2018-11-29',
				className: 'bg-green'
			},

			{
				title: 'Meeting with Mary',
				start: '2018-12-01',
				end: '2018-12-01',
				className: 'bg-blue'
			},

			{
				title: 'Winter Hackaton',
				start: '2018-12-03',
				end: '2018-12-03',
				className: 'bg-red'
			},

			{
				title: 'Digital event',
				start: '2018-12-07',
				end: '2018-12-09',
				className: 'bg-warning'
			},

			{
				title: 'Marketing event',
				start: '2018-12-10',
				end: '2018-12-10',
				className: 'bg-purple'
			},

			{
				title: 'Dinner with Family',
				start: '2018-12-19',
				end: '2018-12-19',
				className: 'bg-red'
			},

			{
				title: 'Black Friday',
				start: '2018-12-23',
				end: '2018-12-23',
				className: 'bg-blue'
			},

			{
				title: 'Cyber Week',
				start: '2018-12-02',
				end: '2018-12-02',
				className: 'bg-yellow'
			},

		]
	});

	//Display Current Date as Calendar widget header
	var mYear = moment().format('YYYY');
	var mDay = moment().format('dddd, MMM D');
	$('.widget-calendar-year').html(mYear);
	$('.widget-calendar-day').html(mDay);
}

//
// Datatable
//

'use strict';

var DatatableBasic = (function () {

	// Variables

	var $dtBasic = $('#datatable-basic');


	// Methods

	function init($this) {

		// Basic options. For more options check out the Datatables Docs:
		// https://datatables.net/manual/options

		var options = {
			keys: !0,
			select: {
				style: "multi"
			},
			language: {
				paginate: {
					previous: "<i class='fas fa-angle-left'>",
					next: "<i class='fas fa-angle-right'>"
				}
			},
		};

		// Init the datatable

		var table = $this.on('init.dt', function () {
			$('div.dataTables_length select').removeClass('custom-select custom-select-sm');

		}).DataTable(options);
	}


	// Events

	if ($dtBasic.length) {
		init($dtBasic);
	}

})();


//
// Buttons Datatable
//

var DatatableButtons = (function () {

	// Variables

	var $dtButtons = $('#datatable-buttons');


	// Methods

	function init($this) {

		// For more options check out the Datatables Docs:
		// https://datatables.net/extensions/buttons/

		var buttons = ["copy", "print"];

		// Basic options. For more options check out the Datatables Docs:
		// https://datatables.net/manual/options

		var options = {

			lengthChange: !1,
			dom: 'Bfrtip',
			buttons: buttons,
			// select: {
			// 	style: "multi"
			// },
			language: {
				paginate: {
					previous: "<i class='fas fa-angle-left'>",
					next: "<i class='fas fa-angle-right'>"
				}
			}
		};

		// Init the datatable

		var table = $this.on('init.dt', function () {
			$('.dt-buttons .btn').removeClass('btn-secondary').addClass('btn-sm btn-default');
		}).DataTable(options);
	}


	// Events

	if ($dtButtons.length) {
		init($dtButtons);
	}

})();

//
// Dropzone
//

'use strict';

var Dropzones = (function () {

	//
	// Variables
	//

	var $dropzone = $('[data-toggle="dropzone"]');
	var $dropzonePreview = $('.dz-preview');

	//
	// Methods
	//

	function init($this) {
		var multiple = ($this.data('dropzone-multiple') !== undefined) ? true : false;
		var preview = $this.find($dropzonePreview);
		var currentFile = undefined;

		// Init options
		var options = {
			url: $this.data('dropzone-url'),
			thumbnailWidth: null,
			thumbnailHeight: null,
			previewsContainer: preview.get(0),
			previewTemplate: preview.html(),
			maxFiles: (!multiple) ? 1 : null,
			acceptedFiles: (!multiple) ? 'image/*' : null,
			init: function () {
				this.on("addedfile", function (file) {
					if (!multiple && currentFile) {
						this.removeFile(currentFile);
					}
					currentFile = file;
				})
			}
		}

		// Clear preview html
		preview.html('');

		// Init dropzone
		$this.dropzone(options)
	}

	function globalOptions() {
		Dropzone.autoDiscover = false;
	}


	//
	// Events
	//

	if ($dropzone.length) {

		// Set global options
		globalOptions();

		// Init dropzones
		$dropzone.each(function () {
			init($(this));
		});
	}


})();

//
// Bootstrap Datepicker
//

'use strict';

var Datepicker = (function () {

	// Variables

	var $datepicker = $('.datepicker');


	// Methods

	function init($this) {
		var options = {
			disableTouchKeyboard: true,
			autoclose: false
		};

		$this.datepicker(options);
	}


	// Events

	if ($datepicker.length) {
		$datepicker.each(function () {
			init($(this));
		});
	}

})();

//
// Form control
//

'use strict';

var noUiSlider = (function () {

	// Variables

	// var $sliderContainer = $('.input-slider-container'),
	// 		$slider = $('.input-slider'),
	// 		$sliderId = $slider.attr('id'),
	// 		$sliderMinValue = $slider.data('range-value-min');
	// 		$sliderMaxValue = $slider.data('range-value-max');;


	// // Methods
	//
	// function init($this) {
	// 	$this.on('focus blur', function(e) {
	//       $this.parents('.form-group').toggleClass('focused', (e.type === 'focus' || this.value.length > 0));
	//   }).trigger('blur');
	// }
	//
	//
	// // Events
	//
	// if ($input.length) {
	// 	init($input);
	// }



	if ($(".input-slider-container")[0]) {
		$('.input-slider-container').each(function () {

			var slider = $(this).find('.input-slider');
			var sliderId = slider.attr('id');
			var minValue = slider.data('range-value-min');
			var maxValue = slider.data('range-value-max');

			var sliderValue = $(this).find('.range-slider-value');
			var sliderValueId = sliderValue.attr('id');
			var startValue = sliderValue.data('range-value-low');

			var c = document.getElementById(sliderId),
				d = document.getElementById(sliderValueId);

			noUiSlider.create(c, {
				start: [parseInt(startValue)],
				connect: [true, false],
				//step: 1000,
				range: {
					'min': [parseInt(minValue)],
					'max': [parseInt(maxValue)]
				}
			});

			c.noUiSlider.on('update', function (a, b) {
				d.textContent = a[b];
			});
		})
	}

	if ($("#input-slider-range")[0]) {
		var c = document.getElementById("input-slider-range"),
			d = document.getElementById("input-slider-range-value-low"),
			e = document.getElementById("input-slider-range-value-high"),
			f = [d, e];

		noUiSlider.create(c, {
			start: [parseInt(d.getAttribute('data-range-value-low')), parseInt(e.getAttribute('data-range-value-high'))],
			connect: !0,
			range: {
				min: parseInt(c.getAttribute('data-range-value-min')),
				max: parseInt(c.getAttribute('data-range-value-max'))
			}
		}), c.noUiSlider.on("update", function (a, b) {
			f[b].textContent = a[b]
		})
	}

})();

//
// Scrollbar
//

'use strict';

var Scrollbar = (function () {

	// Variables

	var $scrollbar = $('.scrollbar-inner');


	// Methods

	function init() {
		$scrollbar.scrollbar().scrollLock()
	}


	// Events

	if ($scrollbar.length) {
		init();
	}

})();

//
// Fullcalendar
//

'use strict';

var Fullcalendar = (function () {

	// Variables

	var $calendar = $('[data-toggle="calendar"]');

	//
	// Methods
	//

	// Init
	function init($this) {

		// Calendar events

		var events = [

			{
				id: 1,
				title: 'Call with Dave',
				start: '2018-11-18',
				allDay: true,
				className: 'bg-red',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 2,
				title: 'Lunch meeting',
				start: '2018-11-21',
				allDay: true,
				className: 'bg-orange',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 3,
				title: 'All day conference',
				start: '2018-11-29',
				allDay: true,
				className: 'bg-green',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 4,
				title: 'Meeting with Mary',
				start: '2018-12-01',
				allDay: true,
				className: 'bg-blue',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 5,
				title: 'Winter Hackaton',
				start: '2018-12-03',
				allDay: true,
				className: 'bg-red',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 6,
				title: 'Digital event',
				start: '2018-12-07',
				allDay: true,
				className: 'bg-warning',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 7,
				title: 'Marketing event',
				start: '2018-12-10',
				allDay: true,
				className: 'bg-purple',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 8,
				title: 'Dinner with Family',
				start: '2018-12-19',
				allDay: true,
				className: 'bg-red',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 9,
				title: 'Black Friday',
				start: '2018-12-23',
				allDay: true,
				className: 'bg-blue',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

			{
				id: 10,
				title: 'Cyber Week',
				start: '2018-12-02',
				allDay: true,
				className: 'bg-yellow',
				description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
			},

		],


			// Full calendar options
			// For more options read the official docs: https://fullcalendar.io/docs

			options = {
				header: {
					right: '',
					center: '',
					left: ''
				},
				buttonIcons: {
					prev: 'calendar--prev',
					next: 'calendar--next'
				},
				theme: false,
				selectable: true,
				selectHelper: true,
				editable: true,
				events: events,

				dayClick: function (date) {
					var isoDate = moment(date).toISOString();
					$('#new-event').modal('show');
					$('.new-event--title').val('');
					$('.new-event--start').val(isoDate);
					$('.new-event--end').val(isoDate);
				},

				viewRender: function (view) {
					var calendarDate = $this.fullCalendar('getDate');
					var calendarMonth = calendarDate.month();

					//Set data attribute for header. This is used to switch header images using css
					// $this.find('.fc-toolbar').attr('data-calendar-month', calendarMonth);

					//Set title in page header
					$('.fullcalendar-title').html(view.title);
				},

				// Edit calendar event action

				eventClick: function (event, element) {
					$('#edit-event input[value=' + event.className + ']').prop('checked', true);
					$('#edit-event').modal('show');
					$('.edit-event--id').val(event.id);
					$('.edit-event--title').val(event.title);
					$('.edit-event--description').val(event.description);
				}
			};

		// Initalize the calendar plugin
		$this.fullCalendar(options);


		//
		// Calendar actions
		//


		//Add new Event

		$('body').on('click', '.new-event--add', function () {
			var eventTitle = $('.new-event--title').val();

			// Generate ID
			var GenRandom = {
				Stored: [],
				Job: function () {
					var newId = Date.now().toString().substr(6); // or use any method that you want to achieve this string

					if (!this.Check(newId)) {
						this.Stored.push(newId);
						return newId;
					}
					return this.Job();
				},
				Check: function (id) {
					for (var i = 0; i < this.Stored.length; i++) {
						if (this.Stored[i] == id) return true;
					}
					return false;
				}
			};

			if (eventTitle != '') {
				$this.fullCalendar('renderEvent', {
					id: GenRandom.Job(),
					title: eventTitle,
					start: $('.new-event--start').val(),
					end: $('.new-event--end').val(),
					allDay: true,
					className: $('.event-tag input:checked').val()
				}, true);

				$('.new-event--form')[0].reset();
				$('.new-event--title').closest('.form-group').removeClass('has-danger');
				$('#new-event').modal('hide');
			} else {
				$('.new-event--title').closest('.form-group').addClass('has-danger');
				$('.new-event--title').focus();
			}
		});


		//Update/Delete an Event
		$('body').on('click', '[data-calendar]', function () {
			var calendarAction = $(this).data('calendar');
			var currentId = $('.edit-event--id').val();
			var currentTitle = $('.edit-event--title').val();
			var currentDesc = $('.edit-event--description').val();
			var currentClass = $('#edit-event .event-tag input:checked').val();
			var currentEvent = $this.fullCalendar('clientEvents', currentId);

			//Update
			if (calendarAction === 'update') {
				if (currentTitle != '') {
					currentEvent[0].title = currentTitle;
					currentEvent[0].description = currentDesc;
					currentEvent[0].className = [currentClass];

					console.log(currentClass);
					$this.fullCalendar('updateEvent', currentEvent[0]);
					$('#edit-event').modal('hide');
				} else {
					$('.edit-event--title').closest('.form-group').addClass('has-error');
					$('.edit-event--title').focus();
				}
			}

			//Delete
			if (calendarAction === 'delete') {
				$('#edit-event').modal('hide');

				// Show confirm dialog
				setTimeout(function () {
					swal({
						title: 'Are you sure?',
						text: "You won't be able to revert this!",
						type: 'warning',
						showCancelButton: true,
						buttonsStyling: false,
						confirmButtonClass: 'btn btn-danger',
						confirmButtonText: 'Yes, delete it!',
						cancelButtonClass: 'btn btn-secondary'
					}).then((result) => {
						if (result.value) {
							// Delete event
							$this.fullCalendar('removeEvents', currentId);

							// Show confirmation
							swal({
								title: 'Deleted!',
								text: 'The event has been deleted.',
								type: 'success',
								buttonsStyling: false,
								confirmButtonClass: 'btn btn-primary'
							});
						}
					})
				}, 200);
			}
		});


		//Calendar views switch
		$('body').on('click', '[data-calendar-view]', function (e) {
			e.preventDefault();

			$('[data-calendar-view]').removeClass('active');
			$(this).addClass('active');

			var calendarView = $(this).attr('data-calendar-view');
			$this.fullCalendar('changeView', calendarView);
		});


		//Calendar Next
		$('body').on('click', '.fullcalendar-btn-next', function (e) {
			e.preventDefault();
			$this.fullCalendar('next');
		});


		//Calendar Prev
		$('body').on('click', '.fullcalendar-btn-prev', function (e) {
			e.preventDefault();
			$this.fullCalendar('prev');
		});
	}


	//
	// Events
	//

	// Init
	if ($calendar.length) {
		init($calendar);
	}

})();

//
// Quill.js
//

'use strict';

var VectorMap = (function () {

	// Variables

	var $vectormap = $('[data-toggle="vectormap"]'),
		colors = {
			gray: {
				100: '#f6f9fc',
				200: '#e9ecef',
				300: '#dee2e6',
				400: '#ced4da',
				500: '#adb5bd',
				600: '#8898aa',
				700: '#525f7f',
				800: '#32325d',
				900: '#212529'
			},
			theme: {
				'default': '#172b4d',
				'primary': '#5e72e4',
				'secondary': '#f4f5f7',
				'info': '#11cdef',
				'success': '#2dce89',
				'danger': '#f5365c',
				'warning': '#fb6340'
			},
			black: '#12263F',
			white: '#FFFFFF',
			transparent: 'transparent',
		};

	// Methods

	function init($this) {

		// Get placeholder
		var map = $this.data('map'),

			series = {
				"AU": 760,
				"BR": 550,
				"CA": 120,
				"DE": 1300,
				"FR": 540,
				"GB": 690,
				"GE": 200,
				"IN": 200,
				"RO": 600,
				"RU": 300,
				"US": 2920,
			},

			options = {
				map: map,
				zoomOnScroll: false,
				scaleColors: ['#f00', '#0071A4'],
				normalizeFunction: 'polynomial',
				hoverOpacity: 0.7,
				hoverColor: false,
				backgroundColor: colors.transparent,
				regionStyle: {
					initial: {
						fill: colors.gray[200],
						"fill-opacity": .8,
						stroke: 'none',
						"stroke-width": 0,
						"stroke-opacity": 1
					},
					hover: {
						fill: colors.gray[300],
						"fill-opacity": .8,
						cursor: 'pointer'
					},
					selected: {
						fill: 'yellow'
					},
					selectedHover: {
					}
				},
				markerStyle: {
					initial: {
						fill: colors.theme.warning,
						"stroke-width": 0
					},
					hover: {
						fill: colors.theme.info,
						"stroke-width": 0
					},
				},
				markers: [
					{
						latLng: [41.90, 12.45],
						name: 'Vatican City'
					},
					{
						latLng: [43.73, 7.41],
						name: 'Monaco'
					},
					{
						latLng: [35.88, 14.5],
						name: 'Malta'
					},
					{
						latLng: [1.3, 103.8],
						name: 'Singapore'
					},
					{
						latLng: [1.46, 173.03],
						name: 'Kiribati'
					},
					{
						latLng: [-21.13, -175.2],
						name: 'Tonga'
					},
					{
						latLng: [15.3, -61.38],
						name: 'Dominica'
					},
					{
						latLng: [-20.2, 57.5],
						name: 'Mauritius'
					},
					{
						latLng: [26.02, 50.55],
						name: 'Bahrain'
					}
				],
				series: {
					regions: [{
						values: series,
						scale: [colors.gray[400], colors.gray[500]],
						normalizeFunction: 'polynomial'
					}]
				},
			};

		// Init map
		$this.vectorMap(options);

		// Customize controls
		$this.find('.jvectormap-zoomin').addClass('btn btn-sm btn-primary');
		$this.find('.jvectormap-zoomout').addClass('btn btn-sm btn-primary');

	}

	// Events

	if ($vectormap.length) {
		$vectormap.each(function () {
			init($(this));
		});
	}

})();

//
// Lavalamp
//

'use strict';

var Lavalamp = (function () {

	// Variables

	var $nav = $('[data-toggle="lavalamp"]');


	// Methods

	function init($this) {
		var options = {
			setOnClick: false,
			enableHover: true,
			margins: true,
			autoUpdate: true,
			duration: 200
		};

		$this.lavalamp(options);
	}


	// Events

	if ($nav.length) {
		$nav.each(function () {
			init($(this));
		});
	}

})();

//
// List.js
//

'use strict';

var SortList = (function () {

	//  //
	// Variables
	//  //

	var $lists = $('[data-toggle="list"]');
	var $listsSort = $('[data-sort]');


	//
	// Methods
	//

	// Init
	function init($list) {
		new List($list.get(0), getOptions($list));
	}

	// Get options
	function getOptions($list) {
		var options = {
			valueNames: $list.data('list-values'),
			listClass: $list.data('list-class') ? $list.data('list-class') : 'list'
		}

		return options;
	}


	//
	// Events
	//

	// Init
	if ($lists.length) {
		$lists.each(function () {
			init($(this));
		});
	}

	// Sort
	$listsSort.on('click', function () {
		return false;
	});

})();

//
// Notify
// init of the bootstrap-notify plugin
//

'use strict';

var Notify = (function () {

	// Variables

	var $notifyBtn = $('[data-toggle="notify"]');


	// Methods

	function notify(placement, align, icon, type, animIn, animOut) {
		$.notify({
			icon: icon,
			title: ' Bootstrap Notify',
			message: 'Turning standard Bootstrap alerts into awesome notifications',
			url: ''
		}, {
			element: 'body',
			type: type,
			allow_dismiss: true,
			placement: {
				from: placement,
				align: align
			},
			offset: {
				x: 15, // Keep this as default
				y: 15 // Unless there'll be alignment issues as this value is targeted in CSS
			},
			spacing: 10,
			z_index: 1080,
			delay: 2500,
			timer: 25000,
			url_target: '_blank',
			mouse_over: false,
			animate: {
				// enter: animIn,
				// exit: animOut
				enter: animIn,
				exit: animOut
			},
			template: '<div data-notify="container" class="alert alert-dismissible alert-{0} alert-notify" role="alert">' +
				'<span class="alert-icon" data-notify="icon"></span> ' +
				'<div class="alert-text"</div> ' +
				'<span class="alert-title" data-notify="title">{1}</span> ' +
				'<span data-notify="message">{2}</span>' +
				'</div>' +
				// '<div class="progress" data-notify="progressbar">' +
				// '<div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' +
				// '</div>' +
				// '<a href="{3}" target="{4}" data-notify="url"></a>' +
				'<button type="button" class="close" data-notify="dismiss" aria-label="Close"><span aria-hidden="true">&times;</span></button>' +
				'</div>'
		});
	}

	// Events

	if ($notifyBtn.length) {
		$notifyBtn.on('click', function (e) {
			e.preventDefault();

			var placement = $(this).attr('data-placement');
			var align = $(this).attr('data-align');
			var icon = $(this).attr('data-icon');
			var type = $(this).attr('data-type');
			var animIn = $(this).attr('data-animation-in');
			var animOut = $(this).attr('data-animation-out');

			notify(placement, align, icon, type, animIn, animOut);
		})
	}

})();

//
// Onscreen - viewport checker
//

'use strict';

var OnScreen = (function () {

	// Variables

	var $onscreen = $('[data-toggle="on-screen"]');


	// Methods

	function init($this) {
		var options = {
			container: window,
			direction: 'vertical',
			doIn: function () {
				//alert();
			},
			doOut: function () {
				// Do something to the matched elements as they get off scren
			},
			tolerance: 200,
			throttle: 50,
			toggleClass: 'on-screen',
			debug: false
		};

		$this.onScreen(options);
	}


	// Events

	if ($onscreen.length) {
		init($onscreen);
	}

})();

//
// Quill.js
//

'use strict';

var QuillEditor = (function () {

	// Variables

	var $quill = $('[data-toggle="quill"]');


	// Methods

	function init($this) {

		// Get placeholder
		var placeholder = $this.data('quill-placeholder');

		// Init editor
		var quill = new Quill($this.get(0), {
			modules: {
				toolbar: [
					['bold', 'italic'],
					['link', 'blockquote', 'code', 'image'],
					[{
						'list': 'ordered'
					}, {
						'list': 'bullet'
					}]
				]
			},
			placeholder: placeholder,
			theme: 'snow'
		});

	}

	// Events

	if ($quill.length) {
		$quill.each(function () {
			init($(this));
		});
	}

})();

//
// Select2.js
//

'use strict';

var Select2 = (function () {

	//
	// Variables
	//

	var $select = $('[data-toggle="select"]');


	//
	// Methods
	//

	function init($this) {
		var options = {
			// dropdownParent: $this.closest('.modal').length ? $this.closest('.modal') : $(document.body),
			// minimumResultsForSearch: $this.data('minimum-results-for-search'),
			// templateResult: formatAvatar
		};

		$this.select2(options);
	}


	//
	// Events
	//

	if ($select.length) {

		// Init selects
		$select.each(function () {
			init($(this));
		});
	}

})();

//
// Tags input
//

'use strict';

var Tags = (function () {

	//
	// Variables
	//

	var $tags = $('[data-toggle="tags"]');


	//
	// Methods
	//

	function init($this) {

		var options = {
			tagClass: 'badge badge-primary'
		};

		$this.tagsinput(options);
	}


	//
	// Events
	//

	if ($tags.length) {

		// Init selects
		$tags.each(function () {
			init($(this));
		});
	}

})();