/**
 * Vars
 */
var LayoutDefault = {};

/**
 * Init
 */
LayoutDefault.init = function () {
	// Preload Loader
	var loader_preload = new Image();
	loader_preload.src = BASE_URL + 'img/layout/loader_min_2.gif';
	
	// Eventos
	$("#sd_cols .menu .expand").click(LayoutDefault.menuExpand);
	$("#sd_cols .plataformas .show-more").click(LayoutDefault.menuShowMore);
	$("#sd_cols .busca .field.default").focus(LayoutDefault.buscaFieldDefault);
	$('#sd_cols .top-usuarios .show-more a').click(LayoutDefault.topUsuariosMudaPeriodo);
	$('#topo_esq_senha_btn').click(LayoutDefault.esqueceuSenha);
	
	$(".show-user-info, .user-info").live('click', LayoutDefault.showUserInfo);
}
$(LayoutDefault.init);

/**
 * Expande menu
 */
LayoutDefault.menuExpand = function (e) {
	var _this = $(this);
	
	if (_this.hasClass('unexpand')) {
		_this.parent().find('ul:first').slideUp();
		_this.removeClass('unexpand')
		.text('+');
	} else {
		_this.parent().find('ul:first').slideDown();
		_this.addClass('unexpand')
		.text('-');
	}
	
	e.preventDefault();
	return true;
}

/**
 * Valores padrão das buscas
 */
LayoutDefault.buscaFieldDefault = function () {
	$(this).val("").removeClass("default").unbind();
	
	return true;
}

/**
 * Expandi menu
 */
LayoutDefault.menuShowMore = function (e) {
	var _this = $(this);
	
	_this.parents(".area:first").find("ul li.hidden").fadeIn('fast');
	_this.remove();
	
	e.preventDefault();
	return true;
}

/**
 * Muda período Top Usuários
 */
LayoutDefault.topUsuariosMudaPeriodo = function (e) {
	// Define Variáveis
	var _this = $(this),
		_area = _this.parents('.area:first'),
		_list_atl = _area.find('dl.atl'),
		_list_col = _area.find('dl.col'),
		_template = _list_atl.find('dd:first'),
		_loader = _area.find('.show-more .loader'),
		_rank_geral = _area.find('.show-more .rank-geral'),
		_rank_mensal = _area.find('.show-more .rank-mensal'),
		_title = _area.find('.sec-title');
	
	// Define Período	
	if (LayoutDefault.topUsuariosMudaPeriodoPer == undefined || LayoutDefault.topUsuariosMudaPeriodoPer == 'mes') LayoutDefault.topUsuariosMudaPeriodoPer = 'geral';
	else LayoutDefault.topUsuariosMudaPeriodoPer = 'mes';
	
	// Loader
	_rank_geral.hide();
	_rank_mensal.hide();
	_loader.show();

	// Obtem JSON
	$.getJSON (
		BASE_URL + 'usuarios/top_lista/' + LayoutDefault.topUsuariosMudaPeriodoPer + '.json?' + Math.random(),
		function (json) {
			setHtml (json.atl, _list_atl);
			setHtml (json.col, _list_col);
			
			function setHtml (json, _list_obj) {
				var itens_html = '';
				var i = 1;
				$.map(json, function (object) {
					_template.find(".pos").text(i++);
					_template.find(".user-info").text(object.Usuario.login).attr("href", object.Usuario.link_formated);
					_template.find(".pps").text(object.Usuario.pps_formated);
					_template.find(".info img").attr("src", object.Usuario.img_formated);
					itens_html += '<dd>' + _template.html() + '</dd>';
				});
				itens_html += '<div class="clear"></div>';
				_list_obj.find('dd, .clear').remove();
				_list_obj.append(itens_html);
			}
			
			// Loader
			_loader.hide();
			if (HomeIndex.topUsuariosMudaPeriodoPer == 'mes') {
				_title.removeClass('geral');
				_rank_geral.show();	
			} else {
				_title.addClass('geral');
				_rank_mensal.show();
			}
		}
	);
	
	// Previne Default
	e.preventDefault()
};

/**
 * Informações do Usuário
 */
LayoutDefault.showUserInfo = function (e) {
	var url = $(this).attr("href"),
		user = url.split('/').pop();
	
	$.fancybox({
		'href'			: BASE_URL + '/usuarios/viewcompact/' + user
	});
	
	e.preventDefault();
};

LayoutDefault.esqueceuSenha = function (e) {
	var _login = $("#topo_login_login"),
		_this = $(this);
	if (_login.val() == '') {
		alert(__("Preencha o seu login!"));
		_login.focus();
		return false;	
	}
	
	_this.text(__("Aguarde..."));
	
	$.get(
		BASE_URL + 'usuarios/redefsenhaenviar/' + _login.val() + '.json',
		null,
		function (ret) {
			_this.text(__("Esqueceu a senha?"));
			Alert.json(ret);
		},
		'json'
	);
	
	e.preventDefault();
}
