$(document).ready(function(){
	$('.superfish li').each(function(){
		var longest_string='';
		$(this).find('ul').find('a')
			.not('.link_level-2')
			.not('.link_level-3')	
			.each(function(){
			if ($(this).text().length > longest_string.length)
				longest_string = $(this).text();
		});
		
		/* Calculate width for FIRST level UL and all its inner elements */
		$(this).find('ul').find('.link_level-1').css('width',longest_string.length*5 + 40 + 'px');
		$(this).find('ul').find('.level-1').parent().css('width',longest_string.length*5 + 40 + 'px');
		$(this).find('ul').find('.level-1').css('width',longest_string.length*5 + 40 + 'px');
		if (longest_string.length>0){}
			//console.log('longest string 1st level:' + longest_string);
		/* End of calculate width for first level UL and all its inner elements */	
		
		/* Calculate position for first level UL */
		if ($(this).find('ul').find('.link_level-1').parent().css('width')){
			var ul_width = $(this).find('ul').find('.link_level-1').parent().css('width');
			var calc_width = parseInt(ul_width.substr(0,ul_width.indexOf('px'))) + 25;
			calc_width = calc_width+'px';
			$(this).find('ul').find('ul').css('right',calc_width);
		}
		/* End of calculate position for first level UL */
		
		longest_string='';
		/* Calculate width for SECOND level UL and all its inner elements */
		$(this).find('.link_level-2').each(function(){
			if ($(this).text().length > longest_string.length)
				longest_string = $(this).text();
		});
		$(this).find('ul').find('.link_level-2').css('width',longest_string.length*6 + 10 + 'px');
		$(this).find('ul').find('.level-2').parent().css('width',longest_string.length*6 + 10 + 'px');
		$(this).find('ul').find('.level-2').css('width',longest_string.length*6 + 10 + 'px');
		if (longest_string.length>0){}
			//console.log('longest string 2nd level:' + longest_string);
		
		/* Calculate position for second level UL */
		if ($(this).find('ul').find('.link_level-2').parent().css('width')){
			var ul_width = $(this).find('ul').find('.link_level-2').parent().css('width');
			var calc_width = parseInt(ul_width.substr(0,ul_width.indexOf('px'))) + 5;
			calc_width = calc_width+'px';
			$(this).find('ul').find('ul').find('ul').css('right',calc_width);
		}
		/* End of calculate position for first level UL */		
		
		/* End of calculate width for SECOND level UL and all its inner elements */
		longest_string='';	
		
		/* Calculate width for THIRD level UL and all its inner elements */		
		$(this).find('.link_level-3').each(function(){
			if ($(this).text().length > longest_string.length)
				longest_string = $(this).text();
		});
		$(this).find('ul').find('.link_level-3').css('width',longest_string.length*6 + 20 + 'px');
		$(this).find('ul').find('.level-3').parent().css('width',longest_string.length*6 + 20 + 'px');
		$(this).find('ul').find('.level-3').css('width',longest_string.length*6 + 20 + 'px');
		if (longest_string.length>0){}
			//console.log('longest string 3rd level:' + longest_string);
		/* End of calculate width for THIRD level UL and all its inner elements */
	});
	
});
