b0y-101 Mini Shell


Current Path : E:/www/buriram/media/regularlabs/js/
File Upload :
Current File : E:/www/buriram/media/regularlabs/js/regular.js

/**
 * @package         RegularJS
 * @description     A light and simple JavaScript Library
 *
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://github.com/regularlabs/regularjs
 * @copyright       Copyright © 2018 Regular Labs - All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

/*jslint node: true */
"use strict";

window.Regular = {
	addClass: function(el, clss) {
		if (!el) {
			return;
		}

		el.className += ' ' + clss;

		var classes = el.className.split(' ');

		classes = classes.filter(function(value, index, classes) {
			return classes.indexOf(value) === index;
		});

		el.className = classes.join(' ');
	},

	removeClass: function(el, clss) {
		if (!el) {
			return;
		}

		var classes = el.className.split(' ');

		classes = classes.filter(function(value, index, classes) {
			return classes.indexOf(value) === index;
		});

		var index = classes.indexOf(clss);

		if (index != -1) {
			classes.splice(index, 1);
		}

		el.className = classes.join(' ');
	},

	hasClass: function(el, clss) {
		if (!el) {
			return false;
		}

		var classes = el.className.split(' ');

		return classes.indexOf(clss) > -1;
	},

	toggleClass: function(el, clss) {
		if (!el) {
			return;
		}

		if (this.hasClass(el, clss)) {
			this.removeClass(el, clss);
			return;
		}

		this.addClass(el, clss);
	},

	show: function(el) {
		el.style.opacity = 100;

		if (el.style.display == 'none') {
			el.style.display = 'block';
		}
	},

	hide: function(el) {
		el.style.opacity = 0;
		el.style.display = 'none';
	},

	fadeIn: function(el, duration, oncomplete) {
		var self = this;

		duration = duration ? duration : 250; // total time to fade from 1 to 0 opacity

		var wait        = 50; // amount of time between steps
		var nr_of_steps = duration / wait;
		var change      = 1 / nr_of_steps; // time to wait before next step

		if (!el.style.opacity || el.style.opacity == 1) {
			el.style.opacity = 0;
		}
		if (el.style.display == 'none') {
			el.style.display = 'block';
		}

		(function fade() {
			el.style.opacity = parseFloat(el.style.opacity) + change;
			if (el.style.opacity >= 1) {
				self.show(el);
				if (oncomplete) {
					oncomplete.call();
				}
				return;
			}
			setTimeout(function() {
				fade.call();
			}, wait);
		})();
	},

	fadeOut: function(el, duration, oncomplete) {
		var self = this;

		duration = duration ? duration : 250; // total time to fade from 1 to 0 opacity

		var wait        = 50; // amount of time between steps
		var nr_of_steps = duration / wait;
		var change      = 1 / nr_of_steps; // time to wait before next step

		if (!el.style.opacity || el.style.opacity == 0) {
			el.style.opacity = 1;
		}

		(function fade() {
			el.style.opacity = parseFloat(el.style.opacity) - change;
			if (el.style.opacity <= 0) {
				self.hide(el);
				if (oncomplete) {
					oncomplete.call();
				}
				return;
			}
			setTimeout(function() {
				fade.call();
			}, wait);
		})();
	}
};

Copyright © 2019 by b0y-101