﻿/* 20120116-1503 */

var locale = "pt-BR",
	pageLang = "pt";

var tabs = {
		
	select: function(lista, lista_div, tab){
		lista.find('.selected').removeClass('selected');
		lista.find('.'+tab).addClass('selected');
		
		lista_div.removeClass();
		lista_div.addClass(tab);
	},
	
	events: function(lista, lista_div){
		lista.click(function (evt){
			evt.preventDefault();
			var target = evt.target;
			
			while(!target.tagName.match(/^(a|li)$/i)){
				target = target.parentNode;								
			}	
			
			if (target.href){
				href = target.href.replace(/.*#/, '');
				
				tabs.select(lista, lista_div, href);
				
				modMan.tools.pubMan.load("bottom");
			}
		});	
	},
	
	init: function(tab){
		
		var $lista = $('#lst-tabs');
		var $lista_div = $('#lst-tabs-content');
		
		if ($lista.length >= 1 && tab!= ''){
			tabs.select($lista, $lista_div, tab);
		}
		
		tabs.events($lista, $lista_div);
	
	}
}


var getContent = function (id, filename) {

	// comments
	if (id == 'tab1') {
		if ($('#ctn-comments').length == 0) {
			comments.init();
		}
	}
	
	// other default content
	else {
	
		// iframe already exists?
		if ($('#ctn-' + id).length === 0) {

			// if doesn't, than create
			// filename = filename + '?' + Math.random();
			$("#lst-tabs-comments-content").find('.' + id).append('<iframe scrolling="no" id="ctn-' + id + '" frameborder="0" width="100%" height="100%" src="' + filename + '"></iframe>');
		
		}
	
	}

}


var comments = new function () {
	
	// place holder
	var placeholder = $('#annotatio');
	
	// all comments
	var items;
	
	return {
		init: function () {
		
			// vocabulary
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.at = "&agrave;s";
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.strComment = "comentar";
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.strComments = "coment&aacute;rios";
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.readMore = "+ ler tudo";
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.readLess = "- fechar";
			TrrTransversais.AnnotatioDictionary.language['pt-BR'].listComments.labels.btnAbuse = "reportar abuso";
		
			var groupPath = 'br.noticias.eleicoes2010.apuracao',
				localeForAnnotatio = 'PT-BR';
			
			var templateUrl = 'http://s1.trrsf.com.br/prdt/live/1/_tpl/election/comments.htm',
				placeholderName = 'annotatio',
				params = {
					"objectId": commentsApiObjectId,
					"application": "Pubv6",
					"pageSize": 20,
					"pageNum": 1,
					"orderby": "datedesc",
					"uri" : window.location.href,
					"groupPath" : groupPath,
					"objectDescription" : commentsApiObjectDescription,
					"objectType" : "NOT",
					"imgThumbPath": "",
					"absDescription": commentsApiAbsDescription
				};
				
			var tpl = new TrrTransversais.AnnotatioInterface({
				"lang": localeForAnnotatio,
				"wsUrl": "http://comments.wsv.terra.com",
				"callback": {
					"init": comments.callback,
					"replies": comments.replies
				}
			});
		
			tpl.mountTransversal(templateUrl, placeholderName, params);
			
			setInterval(function () {
				tpl.mountTransversal(templateUrl, placeholderName, params);
			}, 60*1000);
		
		},
		
		callback: function () {
		
			comments.maxChars();
			
			// there be dragons
			setTimeout(function () {
				items.find('span').addClass('hide');
				comments.applyCustomScroll();
				placeholder.css('visibility', 'visible');
			}, 700);
		
		},
		
		maxChars: function () {
		
			items = $('#comments .text');
			
			items.each(function () {
				
				var text = $(this).text();
				var len = text.length;
				
				if (len > 150) {
					var localeAnn = ((locale != "es-ES") && (locale != "en-US") && (locale != "pt-BR")) ? "es-ES" : locale;
					var summary = text.substring(0,150) + '<span>' + text.substring(150,len) + '</span><div class="more">... <a href="#">' + TrrTransversais.AnnotatioDictionary.language[localeAnn].listComments.labels.readMore + '</a></div><div class="less hide"><a href="#">' + TrrTransversais.AnnotatioDictionary.language[localeAnn].listComments.labels.readLess + '</a></div>';
					$(this).html(summary);
					
					$(this).find('.more').bind('click',function () {
						$(this).siblings('span').removeClass('hide');
						$(this).siblings('.less').removeClass('hide');
						$(this).addClass('hide');
						comments.applyCustomScroll();
						return false;
					});
					
					$(this).find('.less').bind('click',function () {
						$(this).siblings('span').addClass('hide');
						$(this).siblings('.more').removeClass('hide');
						$(this).addClass('hide');
						comments.applyCustomScroll();
						return false;
					});
				}
			});
		
		},

		applyCustomScroll: function () {
			$('#ctn-comments').jScrollPane({showArrows:false});
		}
	
	};

}


var showBanner = function (selector) {
	$(selector).attr("src", modMan.tools.pubMan.getProxyTemplatePath() + "?tag=" + tgmKey + "&area=comments&site="+ (typeof(site) != "undefined" ? site : "") + "&zone=" + (typeof(zone) != "undefined " ? zone : ""));
};


var tabsComments = function(){

	if ($('#lst-tabs-comments').length == 1){
		var rel;
		$lista_comments = $('#lst-tabs-comments');
		$lista_div_comments = $('#lst-tabs-comments-content');
		
		$lista_comments.click(function (evt){
			evt.preventDefault();
			var target = evt.target;
			
			$lista_comments.find('.selected').removeClass('selected');
										
			while(!target.tagName.match(/^(a|li)$/i)){
				target = target.parentNode;								
			}	
			
			$(target).parent('li').addClass('selected');
			
			if (target.href){
				rel = target.rel
				href = target.href.replace(/.*#/, '');
				
				$lista_div_comments.removeClass();
				$lista_div_comments.addClass(rel);
				
				getContent(rel, href);
				
			}
		});	
		
		$lista_comments.find(".selected").find("a").trigger("click");
	}
}
