Array.prototype.shuffle = function( b )
{
 var i = this.length, j, t;
 while( i ) 
 {
  j = Math.floor( ( i-- ) * Math.random() );
  t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
  this[i] = this[j];
  this[j] = t;
 }

 return this;
};


function init_cats(){
	$(".cat_all").click(function(){
		$(".cat_menu").animate({
			height:"toggle",
			opacity: "toggle"
			},
			1000
		);
	});
};

function cat_all(){
	var cat_folder = $(".cat_menu_all ul");
	var main_cats = {
		56: Array(),
		57: Array(),
		59: Array(),
		70: Array()
	};
	jQuery.each(dle_categories, function(){
		if (main_cats[this.parentid]){
			main_cats[this.parentid].push(this);
		}
	});
	jQuery.each(main_cats, function(index, element){
		var main_cat = document.createElement("ul");
		main_cat.innerHTML = '<li class="main_cat"><div class="c_image"><img src="' + dle_categories[index].icon + '" /></div><a href="/' + dle_categories[index].alt_name + '">' + dle_categories[index].name + '</a></li>';
		for (i = 0; i < main_cats[index].length; i++){
			main_cat.innerHTML += '<li><div class="c_image"><img src="' + element[i].icon + '" /></div><a href="/' + element[i].alt_name + '">' + element[i].name + '</a></li>';
		}
		cat_folder.append(document.createElement("li").appendChild(main_cat));
	});
	cat_folder.append("<div class='clear_both'></div>");
};

function cat_menu(cat){
	if (window.innerWidth < 1100) {var resize = 10} 
	else resize = 15;
	var cat_folder = $(".cat_menu1 ul");
	cat_folder.html("");
	var cat_main;
	var categories = Array();
	jQuery.each(dle_categories, function(){
		categories.push(this);
	});
	categories.shuffle();
	title_div = $(".cat_menu1 .cat_title");
	if (cat && cat != "foto" && cat != "video" && cat != "novosti_stroitelnogo_portala") {
		for (i=0; i<categories.length; i++){
			if (cat == categories[i].alt_name) {
				if (categories[i].parentid == 0) title_div.html(categories[i].name);
				else title_div.html(dle_categories[categories[i].parentid].name);
				if (categories[i].parentid == 0) cat_main = categories[i].id;
				else cat_main = categories[i].parentid;
			}
		};	
		
		for (i=0; i<categories.length; i++){
			if (categories[i].parentid != 0 && categories[i].parentid == cat_main)
				if (dle_cat == categories[i].alt_name) {
					cat_folder.append('<li class="active"><div class="c_image"><img src="' + categories[i].icon + '" /></div><a href="/' + categories[i].alt_name + '">' + categories[i].name + '</a></li>');
				}
				else cat_folder.append('<li><div class="c_image"><img src="' + categories[i].icon + '" /></div><a href="/' + categories[i].alt_name + '">' + categories[i].name + '</a></li>');	
		};
		
	}else{
		title_div.html("Подкатегории");
		for (i=0, count=0; i < categories.length && count<resize; i++){
			if (categories[i].parentid != 0) {
				cat_folder.append('<li><div class="c_image"><img src="' + categories[i].icon + '" /></div><a href="/' + categories[i].alt_name + '">' + categories[i].name + '</a></li>');
				count++;
			}
		}
	}
};

function cat_firms_menu(){
	if (window.innerWidth < 1100) {var resize = 10} 
	else resize = 15;
	var cat_folder = $(".cat_menu2");
	cat_folder.html("");
	var categories = Array();
	jQuery.each(dle_firm_categories, function(){
		categories.push(this);
	});
	categories.shuffle();
	
	for (i=0; i < categories.length && i<resize; i++){
		if (categories[i].parentid != 0) {
			cat_folder.append('<li><a class="image" href="/firms/category/' + categories[i].alias + '/"><img src="' + categories[i].cat_icon + '"></a><a href="/firms/category/' + categories[i].alias + '/">' + categories[i].cat_name + '</a></li>');
		}
	}
};

function firms_catalog(){
	$(".cat_menu3 .cat_tags").each(function(index, element) {
		$(element.parentElement).bind("mouseenter",
			function(){
				if (!$(element).hasClass("active")){
					$(".cat_menu3 .cat_tags.active").hide(500).removeClass("active");
					$(element).stop(false,true).show(500).addClass("active");
				}
			}
		);
    });
}

function firms_catalog_resize(){
	if (columns == 2){
		var cat_list = $(".cat_menu3 > li");
		var half = Math.round(cat_list.length/2);
		$(".cat_menu3").append("<div class='half_list left'></div");
		for (i=0; i < half;i++){
			$(".cat_menu3 .half_list.left").append(cat_list[i]);
		};
		$(".cat_menu3").append("<div class='half_list right'></div");
		for (i=half; i < cat_list.length;i++){
			$(".cat_menu3 .half_list.right").append(cat_list[i]);
		};
	}else {
		$(".cat_menu3 .half_list > li").each(function(index, element) {
            $(".cat_menu3").append(element);
        });
		$(".cat_menu3 .half_list").each(function(index, element) {
            $(element).remove();
        });
	}
}

$(document).ready(function(){
	$('#login.unlogged').click(function(){
		$('.modal').fadeIn(500);
    });
	$('#modal_login .close, .modal .bg').click(function(){
		$('.modal').fadeOut(500);
    });
	cat_menu(dle_cat);
	cat_firms_menu();
	if(window.navigator.appName == "Opera"){
		if (parseFloat(window.navigator.userAgent.match(/Version\/(.*)/)[1]) < 11.6){
			$(".menu .main li").css("font-size","14px");
		}	
	};
	if (dle_page == "reklama") document.getElementById("page_reklama").className = "active";
	
	var cur_size = window.innerWidth;
	$(window).resize(function(){
		if (window.innerWidth < 1175 && columns == 2){
			columns = 0;
			firms_catalog_resize()
		} else 
		if (window.innerWidth > 1175 && columns == 0){
			columns = 2;
			firms_catalog_resize()
		};
		
		if (window.innerWidth < 1100 && window.innerWidth < cur_size && cur_size > 1100){
			cur_size = window.innerWidth;
			cat_menu(dle_cat);
			cat_firms_menu();
		} else 
		if (window.innerWidth > 1100 && window.innerWidth > cur_size && cur_size < 1100){
			cur_size = window.innerWidth;
			cat_menu(dle_cat);
			cat_firms_menu();
		};
	});
	
	$(".don_a").each(function(index, element){
		if ($("img, a, div, span, p, ul, ins", element).length == 0) element.style['display'] = 'none';
	});
	cat_all();
	$(".cat_all").click(function(){
		$(".cat_menu").animate({
			height:"toggle",
			opacity: "toggle"
			},
			1000
		);
	});
	firms_catalog();
	if (window.innerWidth > 1175) columns = 2
	else columns = 0;
	firms_catalog_resize()
});

