﻿/* 20120119-1739:37 */

// GLOBAL
var tabSelected = "",
	tabPhotosClicked = false,
	ajaxBaseUrl = '',
	metricsLoaded = false,
	modulesArray = [],
	countryPage = window.location.hostname.split("."),
	
	AD_PLACEHOLDER_SELECTOR_PREFIX = "#tgm-",
	AD_CONTAINER_SELECTOR_PREFIX = "#ctn-tgm-",	
	VERTICAL_FLOATED_ADS = ['buttontools', 'bottom', 'textlinks'];
	
countryPage = countryPage[countryPage.length-1].replace("/", "");

var info_service = '';
if (window.trrMetrics && window.trrMetrics.article && window.trrMetrics.article.terra_info_service) {
	info_service = window.trrMetrics.article.terra_info_service;
} else if (window.terra_info_service) {
	info_service = window.terra_info_service['itm-article'] || terra_info_service;	
}

// positionAds
var positionAds = function (selector, positioner) {
	if(!$(positioner).length || !$(selector).length) {
		modMan.log.critical(
			'Erro ao localizar container de origem ou destino para publicidade.\n'+
			'selector de origem: ' + selector + '\n'+
			'selector de destino: ' + positioner
		);
		return;
	}
	$(selector).css("top",$(positioner).offset().top);
}

var placeAds = function(){
	try {
		if(VERTICAL_FLOATED_ADS.length){
			window.setTimeout(function(){								
				for(var i = 0, currentTag; currentTag = VERTICAL_FLOATED_ADS[i]; i++){
					if($(AD_PLACEHOLDER_SELECTOR_PREFIX + currentTag).length && $(AD_CONTAINER_SELECTOR_PREFIX + currentTag).length)  {
						modMan.log.checkpoint('Reposicionando ad ' + currentTag);
						positionAds(AD_CONTAINER_SELECTOR_PREFIX + currentTag, AD_PLACEHOLDER_SELECTOR_PREFIX + currentTag);
					} else modMan.log.warning('Não foi possível encontrar a peça <strong>' + currentTag + '</strong> para reposicioná-la. <br/>Placeholder: ' + !!($(AD_PLACEHOLDER_SELECTOR_PREFIX + currentTag).length) + ' » Container: ' + !!($(AD_CONTAINER_SELECTOR_PREFIX+ currentTag).length));
				}
			}, 100);
		}
	} catch(e){
		modMan.log.critical('[Erro encontrado na placeAds] » ' + e.message);					
	}
}

var getMetricsTypeParam = function(tabSelected){
	tabSelected = tabSelected || '';
	var type = '';
	
	switch(tabSelected) {
		case "itm-article":
			type = "NOT";
			break;
		case "itm-video":
			type = "VID";
			break;
		case "itm-info":
			type = "IFG";
			break;
		case "itm-photos":
			type = "GAL";
			break;
		default:
			type = "NOT";
	}
	
	return type;	
}

// Font resize
var fontResize = function(selector) {
	var resize = function(element) {
		var range = 20;

		var indexSize = $(selector).find(".ctn-fontsize a").index(element);
		var newSize = indexSize * range + 80;

		// Active
		$(selector).find(".ctn-fontsize a").removeClass("act");
		element.addClass("act");
	
		// Adjust size
		$(selector).find(".fontsize").each(function() {
			$(this).css("font-size",newSize+"%");
		});
	}

	$(selector).find(".ctn-fontsize a").click(function(evt) {
		resize($(this));
		evt.preventDefault();
	});
}


// Pages
var navigationPages = function() {
	
	var $articleContainer = $("#article"),
		$anchor = $("a[name='header']"),
		$controls = $articleContainer.find(".pages"),
		$previousButton = $controls.find("a:first"),
		$nextButton = $controls.find("a:last"),
		$navigationLevel = $controls.find("strong"),		
		
		anchorPositionX = ($anchor.length) ? $anchor.offset().top : 0,
		currentPage = 1,
		TOTAL_PAGES = $navigationLevel.find("span").html(),
		OF = modMan.globals.page.lang == 'en' ? ' of ' : ' de ';

	var navigate = function(action) {
		$articleContainer.find(".p"+currentPage).hide();
		currentPage = currentPage+action;
		$articleContainer.find(".p"+currentPage).show();

		$navigationLevel.html(currentPage + OF + TOTAL_PAGES);

		// Class prev/next button
		if (currentPage == 1) $previousButton.removeClass("p").addClass("p-off");
		else $previousButton.removeClass("p-off").addClass("p");
		
		if (currentPage == TOTAL_PAGES) $nextButton.removeClass("n").addClass("n-off"); 
		else $nextButton.removeClass("n-off").addClass("n");
	}

	// navigation controls
	$controls.click(function(evt) {
		var target = evt.target;

		if(target.tagName == "A" && !(/-off$/).test(target.className)){
			if ($(target).hasClass("p")) navigate(-1);
			if ($(target).hasClass("n")) navigate(1);
			
			// scroll to anchor position
			scrollTo(0, anchorPositionX);
		}
		
		modMan.tools.metrics.regTraffic();
		
		placeAds();
		
		evt.preventDefault(); // prevent default behavior
	});
}();

// Layers
var createLayer = function(url,callback) {
	
	if(modMan && modMan.globals.page.country == "US" && info_service && info_service.match(/PubUS/i)) url = '/shared_tpl/' + url;
	else if(modMan && info_service && info_service.match(/PubMX|Pubv7/i)) url = '/' + url;
	
	if (info_service.match(/Pubv7/i)) {
		url = url.replace(/printing\.html$/, 'printing_'+modMan.globals.page.lang+'.html');
	}
	
	$(".ctn-over").remove();
	$.ajax({
		url: url,
		cache: false,
		success: function(html){
			$("#trr-ctn-body").prepend(html);

			// Close layer
			$(".ctn-over .lnk-close").click(function(evt) {
				$(".ctn-over").remove();

				evt.preventDefault(); // prevent default behavior
			});

			if (typeof(callback) != "undefined") callback();
		}
	});
};

// Printing
$(".ico-print").click(function(evt) {
	createLayer("printing.html",function() {
		// Position
		$(".ctn-print").css("top",$(".mod-content:eq(1)").offset().top+"px");

		//  Title
		$(".ctn-print .mod-content").before($(".mod-title").clone());

		// Content
		$(".col-left-full .printing").each(function() {
			$(".ctn-print .mod-content").append($(this).clone());
		});

		// Mirror content classes inside the printable div
		$(".ctn-print .mod-content:eq(0)").attr('class', $(".mod-content:eq(1)").attr('class'));

		// Remove links
		$(".ctn-print .contextlink").each(function() {$(this).replaceWith("<span>"+$(this).text()+"</span>");});

		// Links
		$(".ctn-print .mod-links li a").each(function() {
			$(this).after("<cite>"+$(this).attr("href")+"</cite>");
		});

		// Bottom
		$(".ctn-bottom span").html($(".ctn-print .mod-title a strong").html());
		$(".ctn-bottom strong").html(window.location.href);
		if ($("#article").size() > 0) {
			$(".ctn-bottom .txt-gallery").hide();
		} else {
			$(".ctn-bottom .txt-article").hide();
		}

		if ($(".img-article").size() > 0) {
			$.checkboxRadiobutton($(".ctn-print"));
		} else {
			$(".ctn-commands label, input").hide();
		}
		fontResize(".ctn-print");
		$.include(["_js/jquery.jqdnr.js","_js/jquery.wheel.js","_js/jquery.elementposition.js","_js/jquery.scrolling.js"], function(){
			$(".ctn-print .scrolling").scrolling();
		});

		// Print
		$(".ctn-print .btn-print").click(function() {
			window.print();
			return false;
		});

		// Show hide photo
		$(".ctn-print .chk-replace, .ctn-print input:checkbox + label").mouseup(function() {
			// objCheckbox
			var objCheckbox = null;
			if ($(this).is("label")) {
				objCheckbox = $(this).prev();
			} else {
				objCheckbox = $(this).next();
			}

			if (objCheckbox.attr("checked")) {
				$(".ctn-print .img-article").show();
			} else {
				$(".ctn-print .img-article").hide();
			}
		});
	});
	
	modMan.tools.metrics.regEvent('Imprimir'); // hit metrics
	
	evt.preventDefault(); // prevent default behavior
});

fontResize(".col-left-full");

var $articleContainer = $("#article");
if(!$articleContainer.length) modMan.tools.metrics.regTraffic();
else {
	$(".col-left-full .tabs").tabs();

	// Author + About info > V6 Compliance
	var misplacedTag = $("#SearchKey_Text1 dl");
	if (misplacedTag.length){
		var missplacedHTML = misplacedTag.html() || null,
			authorInformationTag = $('dl.author:first');
		if(missplacedHTML) {
			authorInformationTag.html(missplacedHTML);
			misplacedTag.remove();
		}
		if(!authorInformationTag.find('dt').length){
			authorInformationTag.html("<dt>&nbsp;</dt><dd>&nbsp;</dd>");
		}
	}

	// Tabs events		
	$(".col-left-full .tab-list li a").click(function() {
		tabSelected = $(this).attr("class").split(" ")[0];
		
		// Hit metrics
		if(!window.trrMetrics){ // old way (trecho mantido para facilitar a implementação em produção)
			if(metricsLoaded) modMan.tools.metrics.regTraffic({terra_info_type:getMetricsTypeParam(tabSelected)});
			else {
				modMan.tools.metrics.regTraffic({ 
					terra_info_service : (window.terra_info_service || {})[tabSelected] || window.terra_info_service,
					terra_info_channel: (window.terra_info_channel || {})[tabSelected] || window.terra_info_channel,
					terra_info_channeldetail: (window.terra_info_channeldetail || {})[tabSelected] || window.terra_info_channeldetail,
					terra_info_type: (window.terra_info_type || {})[tabSelected] || getMetricsTypeParam(tabSelected),
					terra_info_id: (window.terra_info_id || {})[tabSelected] || window.terra_info_id,
					
					terra_stats_regCLK: (window.terra_stats_regCLK || {})[tabSelected] || window.terra_stats_regCLK,
					terra_stats_idCrtfc: (window.terra_stats_idCrtfc || {})[tabSelected] || window.terra_stats_idCrtfc,
					terra_stats_uv_c: (window.uv_c || window.terra_stats_uv_c || {})[tabSelected] || window.terra_stats_uv_c || window.uv_c
				});
				metricsLoaded = true;
			}
		} else {
		
			var tabName = tabSelected.match(/article|video|photos|info$/) || 'article',
				metricsDeclarationScope = (window.trrMetrics && window.trrMetrics[tabName]) ? window.trrMetrics[tabName] : window;
			
			// Hit metrics
			modMan.tools.metrics.regTraffic({ 
				terra_info_service: metricsDeclarationScope.terra_info_service || '',
				terra_info_channel: metricsDeclarationScope.terra_info_channel || '',
				terra_info_channeldetail: metricsDeclarationScope.terra_info_channeldetail || '',
				terra_info_type: metricsDeclarationScope.terra_info_type || '',
				terra_info_id: metricsDeclarationScope.terra_info_id || '',
				
				terra_stats_regCLK: metricsDeclarationScope.terra_stats_regCLK || '',
				terra_stats_idCrtfc: metricsDeclarationScope.terra_stats_idCrtfc || '',
				terra_stats_uv_c: metricsDeclarationScope.terra_stats_uv_c || metricsDeclarationScope.uv_c || ''
			});
		}

		// Create / destroy video
		var objLink = $(this);
		$(".ctn-video").each(function() {
			// Destroy
			if ($(this).find("iframe").size() > 0) {
				$(this).prepend('<a href="'+$(".ctn-video iframe").attr("src")+'"></a>');
				$(this).find("iframe").remove();
			}
		});

		// Create
		$(objLink.attr("href").replace("#t","#")).find(".ctn-video").prepend('<iframe height="386" frameborder="0" width="480" scrolling="no" src="'+$(objLink.attr("href").replace("#t","#")).find(".ctn-video a").attr("href")+'">');
		$(objLink.attr("href").replace("#t","#")).find(".ctn-video a").remove();

		// Show hide divAnnotatio
		/*
		if ($(this).hasClass("itm-article")) {
			$("#divAnnotatio").show();
			$("#divAnnotatio").next().show();
		} else {
			$("#divAnnotatio").hide();
			$("#divAnnotatio").next().hide();
		}
		*/
		
		// Show hide tgm-buttontools
		var deployPlaceHolder = $("#tgm-buttontools"),
			deployConainer = $("#ctn-tgm-buttontools");			
		if(deployPlaceHolder.length && !deployConainer.length && tabSelected == "itm-article"){
			$(document).ready(function(){
				var containerTag = document.createElement('div');
					containerTag.id = "ctn-tgm-buttontools";
					containerTag.className = "ctn-tgm-advertising";
					containerTag.innerHTML = "<!-- AD tgm-buttontools PLACEHOLDER -->";
				
				$('#trr-ctn-advertising').append(containerTag);	
				reloadADS(["buttontools"]);
		
				placeAds();
				deployConainer = $("#ctn-tgm-buttontools");			
			});
		}
		if(deployConainer.length){
			if ($(this).hasClass("itm-article")) {
				$("#ctn-tgm-buttontools").show();
			} else {
				$("#ctn-tgm-buttontools").hide();
			}		
		}
		
		// Place Ads
		placeAds();
	});

	// Photos
	var setPhotos = function() {

		objGalleryModule = (
			{
				id:"modPhotoGallery",
				selector:'.mod-photos',
				loadSkin:false,
				params:{
					type:"gallery",
					mediaType:"photo",
					autoplay:false,
					carousel:false,
					effects:true,
					onImageLoad:function(imageSrc, loadedImagesNumber){
						placeAds();
						
						if(loadedImagesNumber > 1) modMan.tools.metrics.regTraffic();
					}
				}
			}
		);

		if ((/#tphotos/).test(document.location)) {
			modulesArray.push(objGalleryModule);
		} else {
			modMan.load([objGalleryModule]);
		}

		$('.col-left-full .tab-list a.itm-photos').unbind("click",setPhotos);
	}
	$('.col-left-full .tab-list a.itm-photos').bind("click",setPhotos);

	// Start
	$(".col-left-full .tab-list li.selected a").click();

	// Aux tabs
	$(".nav .cross a").click(function() {
		$(".tab-list ."+$(this).attr("class")).trigger("click");
		window.scrollTo(0,0);
	});

}

if ($(".col-left-full .combolist").size() > 0) {
	$(".col-left-full .combolist").combobox();
	$(".col-left-full .combolist .scrolling").scrolling();
	$(".col-left-full .combolist .clickout, .col-left-full .combolist .cmb-value").initClickOut();
}

if ($(".mod-latestnews").size() > 0) {
	$(".mod-latestnews").tabs();
}

// MODMAN
if (typeof(modMan) != "undefined"){

	if($('.mod-gallery').length) {
		modulesArray.push(
			{
				id:"modPhotoGallery",
				selector:'.mod-gallery',
				loadSkin:false,
				params:{				
					onImageLoad:function(imageSrc, loadedImagesNumber){
						placeAds();
						
						if(loadedImagesNumber > 1) modMan.tools.metrics.regTraffic();
					},
					type:"gallery",
					mediaType:"photo",
					autoplay:false,
					carousel:false,
					effects:true
				}
			}
		);
	}
	
	if($('.mod-photoslist').length) {
		modulesArray.push(
			{
				id:"modPhotoGallery",
				selector:'.mod-photoslist',
				loadSkin:false,
				params:{						
					type:"list",
					mediaType:"photo",
					autoplay:true,
					carousel:true,
					effects:true,
					onImageLoad:function(imageSrc, loadedImagesNumber){
						placeAds();
						
						if(loadedImagesNumber > 1) modMan.tools.metrics.regTraffic();
					}
				}
			}
		);
	}
	
	if($('.mod-videoslist').length) {
		modulesArray.push(
			{
				id:"modPhotoGallery",
				selector:'.mod-videoslist',
				loadSkin:false,
				params:{						
					type:"list",
					mediaType:"video",
					autoplay:true,
					carousel:true,
					effects:true,
					onImageLoad:function(imageSrc, loadedImagesNumber){
						placeAds();
						
						if(loadedImagesNumber > 1) modMan.tools.metrics.regTraffic();
					}
				}
			}
		);
	}
	
	if($(".mod-poll").length){
		modulesArray.push(
			{
				id:"modPoll",
				selector:'.mod-poll',
				loadSkin:false
			}
		);
	}
	

	if($(".mod-audience_pulse_ver").length){
		modulesArray.push(
			{
				id:"modAudiencePulseVertical",
				selector:'.mod-audience_pulse_ver:first',
				loadSkin:false
			}
		);
	}
	
	if($(".mod-clock").length){
		modulesArray.push(
			{
				id:"modClock",
				selector:'.mod-clock',
				skinName:"default",
				loadSkin:false
			}
		);
	}
	
	/* TABS MOD-035-TERRATV | MOD-066-SONORA */
	var selectedId = "modTerraTv";
	if (window.showsonoradefault) { selectedId = "modSonora"; }
	if ($('.mod-terratvsonora .ctn-modules .mod-terratv').length){ $('.mod-terratvsonora .ctn-modules .mod-terratv').remove(); }
	
	country = modMan.globals.page.country; 
	withSonora = function (country) {

		if (typeof window.showsonora == 'boolean') {
			return window.showsonora;
		}
	
		acceptSonora = {
			AR: false,
			BR: true,
			CO: false,
			CL: false,
			US: false,
			EC: false,
			MX: true,
			PE: false,
			VE: true
		};
		return (acceptSonora[country] === undefined) ? false : acceptSonora[country];
	};
	if ($('.mod-terratvsonora .ctn-modules').length && withSonora(country)) {
		modulesArray.push(
			{
				id:"modMulti",
				selector:'.mod-terratvsonora',
				loadSkin:false,
				params:{
					selectedModId: selectedId,
					modules:[
					{
						id:"modTerraTv",
						loadSkin:true,
						skinName:"multi_abas",
						params:{
							width:296,
							height:222,
							request_url: (window.Feeds && window.Feeds.terraTV) ?  window.Feeds.terraTV : "http://s1.trrsf.com.br/carousel/br/terratv/br_diversao_terratv.js"
						}
					},
					{
						id:"modSonora",
						loadSkin:true,
						skinName:"2010",
						params:{
							request_url: (window.Feeds && window.Feeds.sonora) ?  window.Feeds.sonora : null
						}
					}
					]
				}
			}
		);
	} else {
		modulesArray.push(
			{
				id:"modMulti",
				selector:'.mod-terratvsonora',
				loadSkin:false,
				params:{
					modules:[
					{
						id:"modTerraTv",
						loadSkin:true,
						skinName:"multi_abas",
						params:{
							width:296,
							height:222,
							request_url: (window.Feeds && window.Feeds.terraTV) ?  window.Feeds.terraTV : "http://s1.trrsf.com.br/carousel/br/terratv/br_diversao_terratv.js"
						}
					}
					]
				}
			}
		);
	}
	/* END TABS MOD-035-TERRATV | MOD-066-SONORA */


	modMan.start({
		configs:{
			//baseURL:((/hlg\./).exec(document.location)) ? "http://hlg.trrsf.com.br/atm/2/core/" : 'http://s2.trrsf.com.br/atm/2/core/',
			pageLang:'pt',
			pageCountry:'BR',
			lazyLoad:false,
			transitionEffects:false
		},
		modules:modulesArray
	});
}

// Reload ADS
var reloadADS = function(arrADS) {
	if(!arrADS.length) modMan.log.critical('Parâmetro incorreto transmitido à função "reloadADS". O objeto deve ser do tipo Array. Valor atual: <strong>' + typeof(arrADS)+'</strong>.');

	var CONTAINER_SELECTOR_PREFIX = '#ctn-tgm-',
		PLACEHOLDER_SELECTOR_PREFIX = '#tgm-';
		
	var framedAdUrlTPL = modMan.tools.pubMan.getProxyTemplatePath()+"?tag="+tgmKey+"&area=#area#&site="+(window.site || '')+"&zone="+(window.zone || '');
	
	var constructor = function(){
	
		window.et_tile = 1;
	
		while(arrADS.length){
		
			var currentArea = arrADS.shift(),
				$container = $(CONTAINER_SELECTOR_PREFIX + currentArea),
				$placeholder = $(PLACEHOLDER_SELECTOR_PREFIX + currentArea);
			
			if($container.length && $placeholder.length){
				var $framedAdElement = $container.find('iframe:first'),
					//globalParam = encodeURI("global={et_tile:"+(++window.et_tile)+"}");
					globalParam = '';
				
				if($framedAdElement.length) $framedAdElement.attr("src",framedAdUrlTPL.replace("#area#",currentArea)+"&"+globalParam);
				else $container.html('<iframe src="'+framedAdUrlTPL.replace("#area#",currentArea)+'&'+globalParam+'" scrolling="no" width="'+$placeholder.width()+'" height="'+$placeholder.height()+'" allowtransparency="yes" frameborder="0"></iframe>');
			} else {
				modMan.log.warning('Não foi possível localizar a publicidade com os seletores <strong>'+CONTAINER_SELECTOR_PREFIX + currentArea+'</strong> ou <strong>'+PLACEHOLDER_SELECTOR_PREFIX + currentArea+'</strong>.');
			}
		}
	}
	
	return constructor();
}

$(".lst-photos a, .col-left-full .tab-list li a, .nav .controls a:eq(1), .nav .controls a:eq(2)").click(function() {
	var adsList = ["top", "pagesponsor", "pbuttons1", "pbuttons2", "right", "pbuttons1", "pbuttons2", "right2", "bottom", "pagesponsorbottom", "textlinks", "header"];
	
	var tgmDeployContainer = $('#ctn-tgm-buttontools');
	if(tgmDeployContainer.length && $(this).hasClass('itm-article')) adsList.push("buttontools");
	
	window.setTimeout(function(){
		reloadADS(adsList);
	},700);
});

// contentSharer
var contentSharer = new function() {
    var topToolbar = {
            selector : "#contentSharerResult",
            container : $("#contentSharerResult"),
            instance: null
        },
        bottomTollbar = {
            selector : "#contentSharerResult2",
            container : $("#contentSharerResult2"),
            instance: null
        },
		middleTollbar = {
            selector : "#contentSharerResult3",
            container : $("#contentSharerResult3"),
            instance: null
        };
        
    if (!topToolbar.container.length && !bottomTollbar.container.length && !middleTollbar.container.length) {
        modMan.log.checkpoint('Não foi possível localizar o elemento container para o módulo de contentSharer');
        return null;
    }
    
    return function (commentsOn) {
        var metricsValues = modMan.tools.metrics.getCurrentValues(),
            commonConfigs = {
                //wsUrl : "http://ranking.trans-hlg01.terra.com.br",
                wsUrl : "http://ranking.wsv.terra.com",
                country : modMan.globals.page.country.toLowerCase(),
                locale :  modMan.globals.page.locale || "pt-BR",
                
                socialData : {
                    networksList : ['facebook', 'twitter', 'email', 'facebooklike','googlePlusOne'], // all, facebook, twitter, orkut, email, facebooklike, comment
                    title : document.title,
                    url : $("link[rel=canonical]")[0] ? $("link[rel=canonical]").attr("href") : location.href,
                    description : window.annotatio_objectDescription || '',
                    image : window.annotatio_imgThumbPath || ''
                },
                
                rankData : {
                    application : 'Pubv6',
                    groupPath : window.Terra_info_channel || window.annotatio_groupPath || metricsValues.terra_info_channel || '',
                    objectId : metricsValues.terra_info_id || 'teste_webdev',
                    objectDescription : window.annotatio_objectDescription || '',   
                    rankType : "RESTRICTVALUED",
                    restrictedRange : 5,
                    type : (metricsValues.terra_info_type == 'GAL') ? 'GAL' : 'NOT',
                    uri : location.href
                },
                
                advertisingData : {
                    tag : window.tgmKey || '',
                    area : "sharearticle",
                    site : window.site || '',
                    zone : window.zone || '',
                    mainPage : location.href
                }
            },
            commonHandlers = {
                onLog : function(data){ // data.type && data.message
                    //modMan.log.checkpoint('[contentSharer] ' + data.type + ' >>>> ' + data.message);
                },
                onLoad : function(){ 
                    placeAds();                 
                },
                onShare : function(data){
                    // Receive a object with a network data that has shared
                    //alert('shared' + data.network);
                },
                metrics : function(data){
                    //alert('hit metrics on event ' + data.event);
                }
            };

        /*if (commentsOn) {
            commonConfigs.socialData.networksList.push('comment');
        }*/

        if (modMan.globals.page.country === 'BR') {
            commonConfigs.socialData.networksList.push('orkut');            
        }

        try {
            $.include([modMan.globals.stage.staticFilesHost + 'transversais/content_share/v2/themes/atm/_css/default.css', modMan.globals.stage.staticFilesHost + 'transversais/content_share/v2/_js/trr_sharer.js'], function() {

                if (topToolbar.container.length) {
                    modMan.log.checkpoint('Carregando instância "top" do contentSharer.');
                    
                    topToolbar.instance = new TrrSharer.SharerInterface({});

                    topToolbar.instance.contentShareCreate({
                        socialData : {
                            title : commonConfigs.socialData.title,
                            url : commonConfigs.socialData.url,
                            description : commonConfigs.socialData.description,
                            image : commonConfigs.socialData.image,
                            networks : {
                                show : ["facebook","twitter","orkut","email","googlePlusOne", "facebooklike"],
                                facebooklike : {
                                    showfaces : false
                                }
                            },
                            advertisingData : commonConfigs.advertisingData,
                            handlers : commonHandlers
                        },  
                        config : {
                            //tplPath : "http://transversais2.dsv-ws03.terra.com.br/content_sharer/themes/atm/_tpl/contentSharerTemplate.htm",
                            //tplPath : "http://dsk22586.terrabr.corp.terra.com.br/content-sharer/repo/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath : "http://mainsite.int.dsv-webdev01-poa.terra.com.br/entregas/20101223-1000/content-sharer/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath : modMan.globals.stage.staticFilesHost + "transversais/content_share/themes/atm/_tpl/content-sharer-articles-top-" + modMan.globals.page.lang + ".html",
                            tplPath : "default-top",
                            elemResult : topToolbar.selector,
                            country : commonConfigs.country,
                            locale :  commonConfigs.locale
                        }
                    });                 
                }
				
				if (middleTollbar.container.length) {
                    modMan.log.checkpoint('Carregando instância "top" do contentSharer.');
                    
                    middleTollbar.instance = new TrrSharer.SharerInterface({});

                    middleTollbar.instance.contentShareCreate({
                        socialData : {
                            title : commonConfigs.socialData.title,
                            url : commonConfigs.socialData.url,
                            description : commonConfigs.socialData.description,
                            image : commonConfigs.socialData.image,
                            networks : {
                                show : ["facebook","twitter","orkut","email","googlePlusOne", "facebooklike"],
                                facebooklike : {
                                    showfaces : false
                                }
                            },
                            advertisingData : commonConfigs.advertisingData,
                            handlers : commonHandlers
                        },  
                        config : {
                            //tplPath : "http://transversais2.dsv-ws03.terra.com.br/content_sharer/themes/atm/_tpl/contentSharerTemplate.htm",
                            //tplPath : "http://dsk22586.terrabr.corp.terra.com.br/content-sharer/repo/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath : "http://mainsite.int.dsv-webdev01-poa.terra.com.br/entregas/20101223-1000/content-sharer/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath : modMan.globals.stage.staticFilesHost + "transversais/content_share/themes/atm/_tpl/content-sharer-articles-top-" + modMan.globals.page.lang + ".html",
                            tplPath : "default-middle",
                            elemResult : middleTollbar.selector,
                            country : commonConfigs.country,
                            locale :  commonConfigs.locale
                        }
                    });                 
                }
				
                
                if (bottomTollbar.container.length) {
                    modMan.log.checkpoint('Carregando instância "bottom" do contentSharer.');
                
                    bottomTollbar.instance = new TrrSharer.SharerInterface({
                        wsUrl : commonConfigs.wsUrl
                    });

                    bottomTollbar.instance.contentShareCreate({
                        socialData : {
                            title : commonConfigs.socialData.title,
                            url : commonConfigs.socialData.url,
                            description : commonConfigs.socialData.description,
                            image : commonConfigs.socialData.image,
                            networks : {
                                show : commonConfigs.socialData.networksList,
                                facebooklike : {
                                    showfaces : true
                                }
                            },
                            rankData : commonConfigs.rankData,
                            advertisingData : commonConfigs.advertisingData,
                            handlers : commonHandlers
                        },  
                        config : {
                            //tplPath : "http://transversais2.dsv-ws03.terra.com.br/content_sharer/themes/atm/_tpl/contentSharerTemplate.htm",
                            //tplPath : "http://dsk22586.terrabr.corp.terra.com.br/content-sharer/repo/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath : "http://mainsite.int.dsv-webdev01-poa.terra.com.br/entregas/20101223-1000/content-sharer/themes/atm/_tpl/content-sharer-top-bar.html",
                            //tplPath :(metricsValues && (/\.not/).exec(metricsValues.terra_info_channel) || (/not-/).exec(idItemMenu))?  "default-bottompub" : "default-bottom",
                            tplPath :(metricsValues && (/\.not/).exec(metricsValues.terra_info_channel))?  "default-bottompub" : "default-bottom",
							elemResult : bottomTollbar.selector,
                            country : commonConfigs.country,
                            locale :  commonConfigs.locale
                        }
                    }); 
                }
            });
            
            return {
                top: topToolbar,
                bottom: bottomTollbar
            };
            
        }
        catch(e) {
            e.message = "[Erro na configuração da API do contentSharer] » " + e.message;
            throw e;
        }
        finally{
            contentSharer = null;
        }
    };
};

// ANNOTATIO

window.showBanner = function (selector) {
	window.setTimeout(function(){
		var $selector = $(selector);
		
		$selector.attr("src",modMan.tools.pubMan.getProxyTemplatePath() + "?tag="+tgmKey+"&area=comments&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:""));
		
	},1000);
};

var $annotatioContainer = $("#divAnnotatio");
if (!$annotatioContainer.length || !window.TrrTransversais || !window.TrrTransversais.AnnotatioInterface) {
	if (!$annotatioContainer.length) {
		modMan.log.critical('Não foi possível localizar o elemento container para o módulo de comentários');	
	}
	else if (!window.TrrTransversais || !window.TrrTransversais.AnnotatioInterface) {
		modMan.log.critical('Não foi possível localizar o objeto <strong>TrrTransversais.AnnotatioInterface</strong>. Por favor, verifique se o include correspondente foi realizado.');
	}
	
	if (contentSharer) {
		contentSharer();
	}
	
}
else {
	try { // extra care
		modMan.log.checkpoint('Carregando sistema de comentários.');
		
		var annotatio = new function(){
		
			var annotatioInstance = null,
				metricsValues = modMan.tools.metrics.getCurrentValues(),
				stfBaseUrl = (modMan.globals.page.country == 'BR') ? 'http://s2.trrsf.com.br/' : 'http://s2.trrsf.com/',
				tplDirName = 'v' + ((/\d\.\d/).exec(TrrTransversais.Annotatio.version) || '2.1'),
				tplUrl = stfBaseUrl + 'transversais/comments/' + tplDirName + '/templates/templateFull.htm',
				contextParams = { 
					//"application": metricsValues.terra_info_service || '',
					"application": 'Pubv6',
					"objectId": metricsValues.terra_info_id || 'teste_webdev',
					"objectType" : (metricsValues.terra_info_type == 'GAL') ? 'GAL' : 'NOT',
					"pageSize": 10,
					"pageNum": 1,
					"orderby": "datedesc",
					"uri" : $("link[rel=canonical]")[0] ? $("link[rel=canonical]").attr("href") : location.href,
					"groupPath" : window.Terra_info_channel || window.annotatio_groupPath || metricsValues.terra_info_channel || '',
					"objectDescription" : window.annotatio_objectDescription || '',
					"imgThumbPath" : window.annotatio_imgThumbPath || '',
					"absDescription" : window.annotatio_absDescription || ''
				},
				interfaceParams = { 
					 lang : modMan.globals.page.locale || "pt-BR",
					 wsUrl : "http://comments.wsv.terra.com",
					 callback : {
						load : function (data) {
							try {
								if (contentSharer) {
									contentSharer((data && (data.return_code === 0 || data.return_code === 5203 )));
								}
							} 
							catch (e) {
								modMan.log.critical('[Erro encontrado na função associada ao evento "load" do sistema de comentários] » ' + e.message);								
							} 
							finally {
								placeAds();									
							}
						
						},
						init : function (data) {
							
							try {
								
								if (data.return_code === 0 || data.return_code === 5203) {	
																		
									// Popula divs que necessitem do total de comentarios
									/*var arrTotalComments = ["dd-total-comments"]; // ID´s dos elementos que serão receberão o total de comentários
									for (var a=0, current; a < arrTotalComments.length; a++) {
										current = document.getElementById(arrTotalComments[a]);
										if (current) {
											current.innerHTML = data.total_comments;	
											$('#dt-total-comments').removeClass( 'dt-total-comments-off' );											
										}
									}*/
									if ($('.total-comments').length){								
										$('.dt-total-comments-off').removeClass('dt-total-comments-off');
										$('.total-comments').html(data.total_comments.toString());
									}
									if ($('.comments-off').length){
										$('.comments-off').removeClass('comments-off');
									}
									
									// ppp vertical
									if (!$('#tgm-vertical-ppp').length && data.total_comments) {
										$('div.col-right:first').append('<div class="lin-hor-dotted lin-spacer">&nbsp;</div>'+
										//'<iframe src="' + modMan.globals.stage.coreBaseUrl + '_tpl/advertising.html?tag=' + window.tgmKey + '&area=textlinks2&site=' + window.site + '&zone=' + window.site + '" allowtransparency="true" frameborder="0" />');
										'<iframe id="tgm-vertical-ppp" width="300" height="220" src="' + modMan.tools.pubMan.getProxyTemplatePath() + '?tag=' + window.tgmKey + '&area=textlinks2&site=' + window.site + '&zone=' + window.site + '" allowtransparency="true" frameborder="0" />');
									}
									
								}
								else {
									modMan.log.warning('[Comments] » Sistema de comentários inativo (configuração editorial, via interface de administração).');
								}
							} 
							catch (e) {
								modMan.log.critical('[Erro encontrado na função associada ao evento "init" do sistema de comentários] » ' + e.message);								
							} 
							finally {
								placeAds();									
							}
						},
						replies : function() {
							placeAds();
						}
					 }
				};
			
			var load = function(){
				if(!annotatioInstance) annotatioInstance = new TrrTransversais.AnnotatioInterface(interfaceParams);
				annotatioInstance.mountTransversal(tplUrl,"divAnnotatio",contextParams);
			}
			
			this.reload = load;
			
			// constructor >>
				$(document).ready(function(){
					// double-check for wrong templates
					if(window.tpl) return modMan.log.critical('Annotatio instanciado via tag SCRIPT contida no template. Cancelando chamada do deployment.js');
				
					// double-check for affectedAds
					if(!VERTICAL_FLOATED_ADS.length) modMan.log.warning('Nenhuma publicidade será reposicionada pelo sistema de comentários.' );
				
					load();	
					
					// Attach comment triggers
					var $jumpToTabTrigger = $('.col-left-full ol a:first')
					$(".mod-socialize .itm-comment a, a.btComment").unbind('click').click(function(evt) {
						
						modMan.tools.metrics.regEvent('Comentar'); // hit metrics
						
						if(!$articleContainer.is(':visible')) $jumpToTabTrigger.trigger('click'); // return to article's tab

						// scroll to anchor position (comments)
						//var anchor = $("a[name='"+this.href.match(/[^#]*$/)+"']"),
						var anchor = $annotatioContainer,
							anchorPositionX = (anchor.length) ? anchor.offset().top : 0;
							
						scrollTo(0, anchorPositionX); 

						try{ annotatioInstance.showModalForm('insert'); }catch(e){} // opens Annotatio's new message layer

						evt.preventDefault(); // prevent default behavior
					});
				});
			// constructor <<
		}
		
	} catch(e) {
		e.message = "[Erro na configuração do API do Annotatio] » " + e.message;
		throw e;
	}
}

modFBActivity = new function() {
	var fbContainer = $("#fb-activity"),
		SETTINGS,
		lazyLoader = new modMan.tools.LazyLoader();
	
	fbContainer.css('height', '300px');
	
	SETTINGS = { url: {
		pt: "http://www.facebook.com/plugins/activity.php?locale=pt_BR&amp;width=300&amp;height=300&amp;header=true&amp;colorscheme=light&amp;linktarget=_blank&amp;border_color&amp;font&amp;recommendations=false&amp;appId=133313286762998&amp;site=",
		es: "http://www.facebook.com/plugins/activity.php?locale=es_ES&amp;width=300&amp;height=300&amp;header=true&amp;colorscheme=light&amp;linktarget=_blank&amp;border_color&amp;font&amp;recommendations=false&amp;appId=133313286762998&amp;site=", 
		en: "http://www.facebook.com/plugins/activity.php?locale=en_US&amp;width=300&amp;height=300&amp;header=true&amp;colorscheme=light&amp;linktarget=_blank&amp;border_color&amp;font&amp;recommendations=false&amp;appId=133313286762998&amp;site="
		
	}};
	
	this.create = function() {
		if (fbContainer.length) {
			fbContainer.append('<iframe src="' + SETTINGS.url[modMan.globals.page.lang]  + document.domain + '" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:300px;" allowTransparency="true"></iframe> ');
		}
		return undefined;
	}
	
	lazyLoader.set(fbContainer, function () {
		modFBActivity.create();
	});
}

$(".ctn-fontsize a, .col-left-full .tab-list li a, .mod-audience_pulse_ver .tab-list:first li a").bind('click', function() {
	placeAds();
});

var $sendMailTrigger = $('#sendMailTrigger');
if($sendMailTrigger.length){
	$sendMailTrigger.one('click', function(evt){
		
		var target = evt.target,
			tagNameLimitEXP = /^(a|li)$/i;
		
		while(!target.tagName.match(tagNameLimitEXP)) {
			target = target.parentNode;
		}
		
		if(target.href){
			evt.preventDefault();
			
			modMan.load([			
				{
					id:'sendMail',
					selector:$sendMailTrigger,
					loadSkin:false,
					params:{
						sendTo:'faleconosco.eleicoes2010@corp.terra.com.br',											  
						onLoad:function(commandsOBJ){
							commandsOBJ.toggleLayer();
						},
						onToggle:function(){
							
						}
					}
				}
			]);
			
			evt.stopPropagation();			
		}
	});
}

/***** CONTEXTLINK TEMP *****/
$(".contextlink").click(function() {
	var element = $(this);
	createLayer("context-links.html",function() {
		// Position
		$(".mod-contextlinks").css({
			"left":element.offset().left+"px",
			"top":element.offset().top+element.height()+"px"
		});
	});
	return false;
});

$(document).ready(function() { placeAds(); });
$(window).load(function(){ placeAds(); });

