/* 20100309-1900 */

// GLOBAL
var modulesArray = [];
var countryPage = window.location.hostname.split(".");
countryPage = countryPage[countryPage.length-1].replace("/", "");
var tabSelected = "";
var tabPhotosClicked = false;
var ajaxBaseUrl = '';

// 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 page = 1;
	var numPages = $(".pages strong span").html();

	var navigate = function(action) {

		$(".p"+page).hide();
		page = page+action;
		$(".p"+page).show();

		var firstPage = page == 1;
		var lastPage = $(".p"+(page+1)).size() == 0;

		$(".pages strong").html(page+" de "+numPages);

		// Class prev/next button
		if (firstPage) {
			$(".pages a:first").removeClass("p").addClass("p-off");
		} else {
			$(".pages a:first").removeClass("p-off").addClass("p");
		}
		if (lastPage) {
			$(".pages a:last").removeClass("n").addClass("n-off"); 
		} else {
			$(".pages a:last").removeClass("n-off").addClass("n");
		}
	}

	// navigation controls
	$(".pages").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 (comments)
			var anchor = $("a[name='"+target.href.match(/[^#]*$/)+"']"),
				anchorPositionX = (anchor.length) ? anchor.offset().top : 0;
			scrollTo(0, anchorPositionX);
		}
		
		evt.preventDefault(); // prevent default behavior
	});
}

// Layers
var createLayer = function(url,callback) {
	var info_service = (window.terra_info_service) ? window.terra_info_service['itm-article'] || terra_info_service : '';
	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/i)) url = '/' + url;
	$(".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();
		}
	});
}

// Socialize
$(".mod-socialize .itm-socialize a").click(function(evt) {
	var element = $(this);
	createLayer("socialize.html",function() {
		// Position
		$(".ctn-socialize").css("top",element.offset().top+element.height()+"px");
		
		$(".ctn-socialize .tabs").tabs();
		$(".ctn-socialize .tabs .tab-content").hide();
		$(".ctn-socialize .selected").removeClass("selected");

		// Socialize network
		$("#socialize-network a").each(function() {
			$(this).attr("href",$(this).attr("href").replace("=u","="+window.location.href).replace("=t","="+escape(document.title)));
		});

		// Get url form
		$(".ctn-socialize .itm-email").click(function() {
			//var url = $(".itm-socialize:eq(0) a").attr("href").match(/[^#]+$/)[0];
			var url = "http://s1.trrsf.com.br/portal/";
			if(modMan && modMan.globals.page.country != "BR") url = "http://s1.trrsf.com/portal/"+modMan.globals.page.lang+'/';
			
			if(modMan && modMan.globals.page.locale == "es-US") url += 'articles/socialize-email_es-US.html';
			else url += 'articles/socialize-email.html';
			
			var getData = {
				articleUrl:document.location,
				articleTitle:document.getElementsByTagName('title')[0].innerHTML
			}			
			for(var paramName in getData) {
				url += (url.match(/\?/)) ? '&' : "?";
				url += paramName+'='+escape(getData[paramName]);
			}
			
			if($("#ifm-socialize-email").length) $("#ifm-socialize-email").attr("src",url);
			else $("#socialize-email").html('<iframe width="260" height="400" src="'+url+'" name="ifm-socialize-email" id="ifm-socialize-email" scrolling="no" frameborder="0"></iframe>');
		});
	});

	evt.preventDefault(); // prevent default behavior
});

// Printing
$(".ico-print").click(function() {
	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();
			}
		});
	});
	return false;
});

// Reload Metrics
var reloadMetrics = function() {

	if (window.uv_c && !window.terra_stats_uv_c) window.terra_stats_uv_c = window.uv_c;

	var metricsProxyUrl = modMan.globals.page.baseURL + "_tpl/metrics.html?",
		requiredMetricsVariables = ['terra_info_service', 'terra_info_channel', 'terra_info_channeldetail', 'terra_info_type', 'terra_info_id', 'terra_stats_idCrtfc', 'terra_stats_uv_c'],
		
		notFoundValues = [],
		$metricsLoaderFrame = $('#metricsLoaderFrame');
	
	if(tabSelected){
		switch(tabSelected) {
			case "itm-article":
				terra_info_type = "NOT";
				break;
			case "itm-video":
				terra_info_type = "VID";
				break;
			case "itm-info":
				terra_info_type = "INF";
				break;
			case "itm-photos":
				terra_info_type = "GAL";
				break;
			default:
				terra_info_type = "NOT";
		}
	}
	
	for(var i = 0, current; current = requiredMetricsVariables[i]; i++){
		if(window[current]) window[current] = window[current][tabSelected] || window[current];
		
		if(window.trrConstantData && trrConstantData.metrics && trrConstantData.metrics[current]) window[current] = trrConstantData.metrics[current];
		
		//alert(current + ' = ' + window[current]);
		if(!window[current]) {
			notFoundValues.push(current);
			requiredMetricsVariables.splice(i,1);
			i--;
		}
	}
	
	if(notFoundValues.length) modMan.log.warning('Não foi possível encontrar o valor para as seguintes variáveis de métricas: ' + notFoundValues.join(', '));
	while(requiredMetricsVariables.length){
		var current = requiredMetricsVariables.shift();
		
		metricsProxyUrl += current + '=' + window[current];
		if(requiredMetricsVariables.length) metricsProxyUrl += '&';
	}

	
	if($metricsLoaderFrame.length) $metricsLoaderFrame.attr('src', metricsProxyUrl);
	else $(document.body).append('<iframe id="metricsLoaderFrame" src="'+metricsProxyUrl+'" width="0" height="0" style="position:absolute;left:-100px;top:-100px;"></iframe>');
}

navigationPages();
fontResize(".col-left-full");

if ($("#article").size() > 0) {
	$(".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];

		// 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([{
					selector:"#ctn-tgm-buttontools",
					area:"buttontools",
					width:88,
					height:45
				}]);
		
				positionAds("#ctn-tgm-buttontools","#tgm-buttontools");
				deployConainer = $("#ctn-tgm-buttontools");			
			});
		}
		if(deployConainer.length){
			if ($(this).hasClass("itm-article")) {
				$("#ctn-tgm-buttontools").show();
			} else {
				$("#ctn-tgm-buttontools").hide();
			}		
		}
		
		// First click on photos tab
		if (tabSelected == "itm-photos" && !tabPhotosClicked) {
			terra_info_type = "GAL";
			tabPhotosClicked = true;
		} else if(!window._ts_C) {
			reloadMetrics();
		}
	});

	// Photos
	var setPhotos = function() {

		objGalleryModule = (
			{
				id:"modPhotoGallery",
				selector:'.mod-photos',
				loadSkin:false,
				params:{
					type:"gallery",
					mediaType:"photo",
					autoplay:false,
					carousel:false,
					effects:true
				}
			}
		);

		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(){
						if($("#tgm-buttontools").length) positionAds("#ctn-tgm-buttontools","#tgm-buttontools");
						//if($("#tgm-fulldeploy").length) positionAds("#ctn-tgm-fulldeploy","#tgm-fulldeploy");
						if($("#tgm-textlinks").length) positionAds("#ctn-tgm-textlinks","#tgm-textlinks");
					},
					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
				}
			}
		);
	}
	
	if($('.mod-videoslist').length) {
		modulesArray.push(
			{
				id:"modPhotoGallery",
				selector:'.mod-videoslist',
				loadSkin:false,
				params:{						
					type:"list",
					mediaType:"video",
					autoplay:true,
					carousel:true,
					effects:true
				}
			}
		);
	}
	
	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
			}
		);
	}
	
	if($(".mod-terratvsonora .mod-terratv .tab-content").length){
		modulesArray.push(
			{
			   id:"modMulti",
			   selector:'.mod-terratvsonora',
			   loadSkin:false,
			   params:{
					  modules:[
							 {
								id:"modTerraTv",
								loadSkin:false,
								skinName:"multi_abas",
								selector:'.mod-terratv',
								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"
							 }
					  ]
			  }
			}
		);
	} else {
		modulesArray.push(
			{
				id:"modMulti",
				selector:'.mod-terratvsonora',
				loadSkin:false,
				params:{
					modules:[
						{
							id:"modTerraTv",
							selector:'.mod-terratv',
							loadSkin:false,
							params:{
								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:"multi"
						}
					]
				}
			}
		);
	}
	
	modMan.start({
		configs:{
			//baseURL:'http://mainsite.int.dsv-webx1.terra.com.br/entregas/20090619-0000/pt-br/',
			pageLang:'pt',
			pageCountry:'BR',
			lazyLoad:false,
			transitionEffects:false
		},
		modules:modulesArray
	});
}

// Show banner
var showBanner = function(selector) {
	window.setTimeout(function(){
		if (countryPage == "br") {
			$(selector).attr("src","http://s1.trrsf.com.br/portal/advertising.html?tag="+tgmKey+"&area=comments&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:""));
		} else {
			$(selector).attr("src","http://s1.trrsf.com/portal/advertising.html?tag="+tgmKey+"&area=comments&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:""));
		}
	},1000);
}

// 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 baseURL= '';
		if((/BR/i).test(modMan.globals.page.country) ) baseURL = 'http://s1.trrsf.com.br/portal/';
		else baseURL = 'http://s1.trrsf.com/portal/';
		
	var urlADS = baseURL+"advertising.html?tag="+tgmKey+"&area=#area#&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:"");

	while(arrADS.length){
		var currentAd = arrADS.shift();
		
		if(currentAd.selector && $(currentAd.selector).length){
			var containerTag = $(currentAd.selector),
				framedAdElement = containerTag.find('iframe:first');
			
			if(framedAdElement.length) framedAdElement.attr("src",urlADS.replace("#area#",currentAd.area));
			else containerTag.html('<iframe src="'+urlADS.replace("#area#",currentAd.area)+'" scrolling="no" width="'+currentAd.width+'" height="'+currentAd.height+'" allowtransparency="yes" frameborder="0"></iframe>')
		} else {
			modMan.log.warning('Não foi possível localizar a publicidade com seletor <strong>'+currentAd.selector+'</strong>.')
		}
		
	}
}

$(".lst-photos a, .col-left-full .tab-list li a, .nav .controls a:eq(1), .nav .controls a:eq(2)").click(function() {
	var adsList = [
		{
			//selector:".tgm-top",
			selector:"#ctn-tgm-top",
			area:"top",
			width:830,
			height:90
		},
		{
			//selector:".adv-halfpage",
			selector:"#ctn-tgm-right",
			area:"right",
			width:300,
			height:600
		},
		{
			selector:"#ctn-tgm-pbuttons1",
			area:"pbuttons1",
			width:220,
			height:45
		},
		{
			selector:"#ctn-tgm-pbuttons2",
			area:"pbuttons2",
			width:220,
			height:45
		},
		{
			//selector:".adv-ppp",
			selector:"#ctn-tgm-textlinks",
			area:"textlinks",
			width:619,
			height:88
		}
	];
	
	var tgmDeployContainer = $('#ctn-tgm-buttontools');
	if(tgmDeployContainer.length && $(this).hasClass('itm-article')) {
		adsList.push(
			{
				//selector:".adv-ppp",
				selector:"#ctn-tgm-buttontools",
				area:"buttontools",
				width:88,
				height:45
			}
		);
	}

	reloadADS(adsList);
});

/***** 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;
});

// Ads positionning work around
var placeAds = function(){
	if(document.getElementById('tgm-textlinks')) positionAds('#ctn-tgm-textlinks', '#tgm-textlinks');
	if(document.getElementById('tgm-bottom')) positionAds('#ctn-tgm-bottom', '#tgm-bottom');
}

$(document).ready(function() { placeAds();} );
$(window).load(function(){ placeAds(); });