jQuery(function($){

	/* i18n slide chooser */
    var $user_i18n = $('#user-i18n');
    $user_i18n.
        mouseenter(function(){
            $user_i18n.addClass('active');
            $('ul', $user_i18n).slideDown('fast');
        }).
        mouseleave(function(){ 
            $('ul', $user_i18n).slideUp('fast', function(){
                $user_i18n.removeClass('active');
            });
        });
    

    /* check all checkbox & submit form */
	$(".checkAll").toggle(
		function () { 
			var id = $(this).attr("id");
			var className = id.substr(0,id.length-6);
			$("[name=\'"+className+"[]\']").each(function() {
				$(this).attr("checked",true);
				$.uniform.update($(this));
			});
			if ($(this).attr("class").indexOf("noSubmit") == -1) {
				$(this.form).submit();
			}
			return false;
		},
		function () { 
			var id = $(this).attr("id");
			var className = id.substr(0,id.length-6);
			$("[name=\'"+className+"[]\']").each(function() {
				$(this).attr("checked",false);
				$.uniform.update($(this));
			});		
			if ($(this).attr("class").indexOf("noSubmit") == -1) {
				$(this.form).submit();
			}
			return false;
		});

	/* filter boxes */
	$(".filter_box > .bottom_menu > a.clickmore").each(function() {
		var size = $(this).parent().parent().children().filter("ul").children().size();
		if(size <= 4) {
			$(this).hide();
		}
	});
	
	$(".filter_box > .bottom_menu > .checkAll").each(function() {
		var size = $(this).parent().parent().children().filter("ul").children().size();
		if(size > 4) {
			$(this).hide();
		}
	});
		
	$(".filter_box > .bottom_menu > a.clickmore").toggle(
		function() {
			var filter_box = $(this).parent().parent(); 
			size = filter_box.find("li").size() * 20 + 8 ;
			filter_box.find("ul.checkbox_list").css("height", size + "px");
			filter_box.css("height", (size + 55) + "px");
			filter_box.addClass("active");
			filter_box.find(".checkAll").show();
		},
		function() {
			var filter_box = $(this).parent().parent(); 
			filter_box.find("ul.checkbox_list").css("height",  "80px"); // matches main.css				
			filter_box.css( "height", "256px"); // matches main.css
			filter_box.removeClass("active");
			filter_box.find(".checkAll").hide();
		}
	);
	
	
	/* tooltips */
    
	$('.widget_box').live("mousemove",
		function() {
	      $(this).removeClass('hidden');
	});
	
	$('.widget_box > .content').live("mouseout",
		function() {
	      $(this).parent().addClass('hidden');
	});
	
    // ie z-index fix
    var zIndexNumber = 1000;
    $(".widget_box").each(function() {
      $(this).css('zIndex', zIndexNumber);
      zIndexNumber -= 10;
    });
    
    
    $("a.help").tooltip();
	$("a.help").css({
    		"position": "absolute",
    		"margin-left": "10px"
	});
    
	
	/* stats payment details */
	$(".payment_stats_details").live("click",function() {
		var elem = $($(this).attr("href"));
		if($(elem).css("display") == "none") {
			$(elem).css("display","");		
			$(this).addClass("active");
		} else {
			$(elem).css("display","none");
			$(this).removeClass("active");
		}								
		return false;
	});
	
	/* blog */
	$(".blog").hide();
	$(".blog_small").show();
	
	$(".blog a.hide_blog").click(function() {
		$(this).parent().parent().parent().hide();
		$(this).parent().parent().parent().parent().children().filter(".blog_small").show();
	});
	
	$(".blog_small a.show_blog").click(function() {
		$(this).parent().parent().parent().hide();
		$(this).parent().parent().parent().parent().children().filter(".blog").show();
	});

	
	/* dashboard blog rotator */
	var partnerList = new Array();
    var i = 0;
    $(".partner_rotator").children().hide();
    $(".partner_rotator").children().each(function() {
    	partnerList[i++] = $(this);
    });
    var list_size = i;
    var active = 0;
    var delay_time = 5000;
    rotateLoop();
    
	function rotateLoop() {
		if(active==null) {
			active = 0;
		} else {
			active = (active+1) % list_size;
		}
		var elem = partnerList[active];
		$(".partner_rotator > .hidden").hide();
		$(elem).fadeIn(1000);
		if(list_size > 1) {
			setTimeout(function(){ rotateLoop() },delay_time);
		}
	}
	
	
	/* init */
	previewTooltips();
	uniformInputs();	
	alternateStatsRows();
});


function refreshFlash(url) {
	$("#flash_mini").show();
	$('#flash_box_mini').load(url);
}

function hideLoad() {
	return true;
}

function alternateStatsRows() {
	$('table.stats > tbody > tr').each(function() {
		if($(this).attr("class") == "") {
			$(this).addClass("row");
		}
	});
	$('table.stats > tbody > tr[class=row]:even').addClass("even");
	$('table.stats > tbody > tr[class=row]:odd').addClass("odd");
	
}

function uniformInputs() {	
	$("select[class!=nouniform], input:checkbox, input:radio, input:file[name!=resource_file[path]]").uniform();
	/*
	$("select, input:checkbox, input:radio, input:file[name!=resource_file[path]]").each(function() {
		var elements = $.uniform.elements;
		var f = true;
		for(i=0; i<elements.length; i++) {
			if($(this).attr("id") == $($.uniform.elements[i]).attr("id")) {
				f = false;
			}
		}		
		
		if(f) {
			$(this).uniform();
		}
		
	});
	*/
}

function previewTooltips() {
	$("a.btn_podglad, a.btn_preview").tooltip({ 
	    bodyHandler: function() {
			return $($(this).attr("href")).html();
	    }, 
	    showURL: false 
	});
}

/* ajax filter forms */

var submitFlag = false;
var clickCounter = null;
var blockTime = 500;
var waitTime = 100;
var formHandler = null;
var intervalId = null;

function initForm(id) {
	$("form#"+id).submit(function() {	
		
		formHandler = this;
		if(clickCounter == null) {
			clickCounter = 1;
		} else {	
			clickCounter = 10;
		}
		
		if(intervalId == null) {
			// decrement click counter
			intervalId = setInterval(function() {
				if(clickCounter == 0) {
					submitFlag = true;
					clearInterval(intervalId);
					intervalId = null;
					return;
				}
				clickCounter -= 1; 
			}, waitTime);
		}
		
		return false;
	})
	$("form#"+id+" :input").change(function() {
		$(this.form).submit();
	});
}

// check flags & submit form
setInterval(function() {
	if(formHandler != null && submitFlag == true) {
		formHandler.onsubmit();
		submitFlag = false;
	}
}, blockTime);


function disableForm(id) {		
	$("form#"+id+" :input").attr("disabled","disabled");
}

function enableForm(id) {		
	$("form#"+id+" :input").attr("disabled","");
}
