Sindbad~EG File Manager

Current Path : /var/www/ispania.gr/templates/rslibro/js/
Upload File :
Current File : /var/www/ispania.gr/templates/rslibro/js/device-dropdown-animation.js

jQuery(document).ready(function(jQuery) {
	var window_w	= jQuery(window).width();
	var device		= detectMobileBrowser();
	
	if (window_w >= 980 && device) {
		// First level
		jQuery('.dropdown > a').bind('tap', detectTap);
		
		// Deeper levels
		jQuery('.dropdown-submenu > a').bind('tap', detectTap);
		jQuery('body').bind( 'tap', closeDropdowns);
	}
	
	jQuery(window).resize(function() {
		window_w = jQuery(window).width();
		
		if (window_w >= 980 && device) {
			// First level
			jQuery('.dropdown > a').bind('tap', detectTap);
			
			// Deeper levels
			jQuery('.dropdown-submenu > a').bind('tap', detectTap);
			jQuery('body').bind( 'tap', closeDropdowns);
		} else {
			// First level
			jQuery('.dropdown > a').unbind('tap', detectTap);
			
			// Deeper levels
			jQuery('.dropdown-submenu > a').unbind('tap', detectTap);
			jQuery('body').unbind('tap', closeDropdowns);
		}
	});
});

function detectMobileBrowser() {
	if (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(navigator.userAgent))
		return true;
	return false;
}

function detectTap(event) {
	var window_w		= jQuery(window).width();
	var clickedElement	= jQuery(event.target);
	var parentElement	= jQuery(clickedElement.parent());
	var dropdown		= parentElement.find('.dropdown-menu').first();
	var isLink			= clickedElement.attr('href');
	var max_width		= 0;
	var animated		= 'animated-ltr';
	
	// Fit submenu items inside window
	clickedElement.closest('.dropdown').find('.dropdown-menu').each(function() {
		jQuery(this).css('display', 'block');
		jQuery(this).css('visibility', 'hidden');
		
		if (jQuery(this).outerWidth() >= max_width) {
			max_width = jQuery(this).outerWidth();
		}
		
		jQuery(this).removeAttr('style');
	});
	
	if (jQuery('html').attr('dir') == 'ltr') {
		if ((window_w - clickedElement.closest('.dropdown').offset().left - clickedElement.closest('.dropdown').find('.dropdown-menu').length * max_width) < 0) {
			animated = 'animated-rtl';
		}
	} else if (jQuery('html').attr('dir') == 'rtl') {
		if ((clickedElement.closest('.dropdown').offset().left - clickedElement.closest('.dropdown').find('.dropdown-menu').length * max_width) > 0) {
			animated = 'animated-rtl';
		}
	}
	
	// Close other opened dropdowns
	if (isLink) {
		if (parentElement.hasClass('dropdown')) {
			jQuery('.dropdown').each(function() {
				var dropdown =  jQuery(this).find('.dropdown-menu');
				
				if (dropdown.hasClass('animated-ltr') && parentElement.attr("class") !== dropdown.parent().attr("class") && dropdown.parent().hasClass("current")) {
					dropdown.removeClass('animated-ltr');
				} else if (dropdown.hasClass('animated-ltr') && parentElement.attr("class") !== dropdown.parent().attr("class")) {
					dropdown.parent().removeClass('active');
					dropdown.removeClass('animated-ltr');
				} else if (dropdown.hasClass('animated-rtl') && parentElement.attr("class") !== dropdown.parent().attr("class") && dropdown.parent().hasClass("current")) {
					dropdown.parent().removeClass('active');
					dropdown.removeClass('animated-rtl');
				} else if (dropdown.hasClass('animated-rtl') && parentElement.attr("class") !== dropdown.parent().attr("class")) {
					dropdown.parent().removeClass('active');
					dropdown.removeClass('animated-rtl');
				}
			});
		}
	}
	
	// First tap -> open dropdown and second tap -> open dropdown parent url
	if ((parentElement.hasClass('dropdown') || parentElement.hasClass('dropdown-submenu')) && parentElement.hasClass('active') && dropdown.hasClass(animated)) {
		return true;
	} else if (parentElement.hasClass('dropdown') || parentElement.hasClass('dropdown-submenu')) {
		parentElement.addClass('active');
		parentElement.find('.dropdown-menu').first().addClass(animated);
		return false;
	}
}

function closeDropdowns(event) {
	var clickedElement	= jQuery(event.target);
	var parentElement	= clickedElement.parent();
	var isLink			= clickedElement.attr('href');
	
	// Close dropdowns when the tap is outside the menu
	if (!isLink) {
		if (!parentElement.hasClass('dropdown') || !parentElement.hasClass('dropdown-submenu')) {
			jQuery('.dropdown').each(function() {
				var dropdown = jQuery(this).find('.dropdown-menu');
				
				if (dropdown.hasClass('animated-ltr') && dropdown.parent().hasClass('current')) {
					dropdown.removeClass('animated-ltr');
				} else if (dropdown.hasClass('animated-ltr')) {
					dropdown.parent().removeClass('active');
					dropdown.removeClass('animated-ltr');
				} else if (dropdown.hasClass('animated-rtl') && dropdown.parent().hasClass('current')) {
					dropdown.removeClass('animated-rtl');
				} else if (dropdown.hasClass('animated-rtl')) {
					dropdown.parent().removeClass('active');
					dropdown.removeClass('animated-rtl');
				}
			});
		}
	}
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists