﻿/* 20120209-1500 */
(function($){
window.modHeaderFooter = function(p) {

	//=-=-=-=-=-=-=-=-
	// Função para setar o número de digitos de um número
	//=-=-=-=-=-=-=-=-
	String.prototype.digits = Number.prototype.digits = function(numDigits){
		var str = this.toString();
		while (str.length < numDigits)
			str = "0"+str;
		return str;
	}

	var modMan = {
		globals:{
			page:{
				baseURL:p.baseURL,
				country:p.pageCountry,
				lang:p.pageLang
			}
		},
		tools:{
			jsonP:function(configsOBJ){
				var callback = configsOBJ.callback;
				if(!callback) {
					//log.critical("É preciso indicar um método (callback) para tratar o arquivo:\n" + url );
					return false;
				}
				var wrapperName = configsOBJ.wrapperName || "jsonp";

				var url = configsOBJ.url;

				var extraParams = configsOBJ.extraParams || false;

				// Json in body
				if(window[wrapperName]) {
					//log.checkpoint(wrapperName + " - Recuperando json do corpo da página.");
					configsOBJ.callback(window[wrapperName], extraParams);
					return true;
				}

				if(!configsOBJ.cache){
					var cache = new Date().getTime();
					url +=  (url.indexOf('?') != -1) ? "&" : "?";
					url += "cache=" + cache;
				}

				if(!window[wrapperName]) {
					window[wrapperName] = function(jsonOBJ){
						if (typeof(jsonOBJ) != 'object') {
							//log.critical("Erro no parse do arquivo:\n" + url);
							return false;
						}
						//log.checkpoint('disparando resposta para ' + wrapperName)
						configsOBJ.callback(jsonOBJ, extraParams);
					};
				}

				var objHead = document.getElementsByTagName("head")[0];
				var objScript = document.createElement("script");
				objScript.type = "text/javascript";
				objScript.src = url;
				objScript.charset ="utf-8";
				objHead.appendChild(objScript);

				objScript.onload = objScript.onreadystatechange = function(){
					if(objScript.readyState) {
						if (objScript.readyState == 'complete') objHead.removeChild(objScript);
					} else objHead.removeChild(objScript);
				}
			}
		}
	},
	locale = {
		defaultLNG:'br',
		// Languages
		LNG:{
			"br": {
				logo: "<h4 class=\"<!--#classLogo#-->\"><a href=\"<!--#urlHome#-->\" title=\"Ir para a página inicial\" target=\"_top\" rel=\"101\">Terra</a></h4>",
				home: "Capa",
				formatDate: "<!--#day#--> de <!--#month#--> de <!--#year#-->",
				month: ["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],
				lgnSearch: "Digite no campo o termo que deseja buscar",
				webSearch: "na Web",
				terraSearch: "no Terra",
				lblSearch: "Busca",
				btnSearch: "Buscar",
				imgSearch: "apps/headerfooter/_img/btn-search.gif",
				imgSitemap: "apps/headerfooter/_img/btn-sitemap.gif",
				imgWidthSitemap: "98",
				txtSitemap: "Todos os canais",
				more: "Mais",
				moreTerra: "Mais Terra",
				imgMoreTerra: "apps/headerfooter/_img/btn-more-terra.gif",
				imgWidthMoreTerra: "69",
				services: "Assinaturas e serviços",
				login: "Login",
				linkLanding: "Capa de ",
				countries: "Terra em outros países"
			},
			"es": {
				logo: "<h4 class=\"<!--#classLogo#-->\"><a href=\"<!--#urlHome#-->\" title=\"Ir a la página de inicio\" target=\"_top\" rel=\"101\">Terra</a></h4>",
				home: "Portada",
				formatDate: "<!--#day#--> de <!--#month#--> de <!--#year#-->",
				month: ["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],
				lgnSearch: "Digite no campo o termo que deseja buscar",
				webSearch: "En la Web",
				terraSearch: "En Terra",
				lblSearch: "Busca",
				btnSearch: "Buscar",
				imgSearch: "apps/headerfooter/_img/btn-search.gif",
				imgSitemap: "apps/headerfooter/_img/btn-sitemap-spa.gif",
				imgWidthSitemap: "107",
				txtSitemap: "Todos los canales",
				more: "Más",
				moreTerra: "Más Terra",
				imgMoreTerra: "apps/headerfooter/_img/btn-more-terra-es.gif",
				imgWidthMoreTerra: "66",
				services: "Servicios",
				login: "Login",
				linkLanding: "Portada de ",
				countries: "Terra en otros países",
				languageLink: "<a href=\"http://en.terra.com/\" class=\"lnk-english\" target=\"_top\" rel=\"103\">English &raquo;</a>"
			},
			"en": {
				logo: "<h4 class=\"<!--#classLogo#-->\"><a href=\"<!--#urlHome#-->\" title=\"Go to the homepage\" target=\"_top\" rel=\"101\">Terra</a></h4>",
				home: "Home",
				formatDate: "<!--#month#--> <!--#day#-->, <!--#year#-->",
				month: ["january","february","march","april","may","june","july","august","september","october","november","december"],
				lgnSearch: "Search",
				webSearch: "Web search",
				terraSearch: "Terra search",
				lblSearch: "Search",
				btnSearch: "Search",
				imgSearch: "apps/headerfooter/_img/btn-search-eng.gif",
				imgSitemap: "apps/headerfooter/_img/btn-sitemap-eng.gif",
				imgWidthSitemap: "78",
				txtSitemap: "All Channels",
				more: "More",
				moreTerra: "More Terra",
				imgMoreTerra: "apps/headerfooter/_img/btn-more-terra-en.gif",
				imgWidthMoreTerra: "73",
				services: "Services",
				login: "Log in",
				linkLanding: " homepage",
				countries: "Terra international",
				languageLink: "<a href=\"http://www.terra.com/\" class=\"lnk-spanish\" target=\"_top\" rel=\"104\">Español &raquo;</a>"
			}
		}
	},
	PARAMS = {
		srcAdvertising:"http://s1.trrsf.com.br/atm/2/core/_tpl/advertising.html",
		dataType:"json",
		moreTerra:true,

		// HTML
		HTML: {
			classLogo: "ttl-terra",
			classLogoHome: "ttl-terra-home",
			classSelected: "selected",
			classMarked: "marked",
			classBtnMenu: "btn-menu",
			classFirstMenu: "ctn-first-menu",
			classSecondMenu: "ctn-second-menu",
			classLayer: "ctn-layer",
			classItemLayer: "itm-layer",
			classSpecial: "lst-special",
			classListMore: "lst-more",
			classMore: "menu-more",
			classLastLevel: "ctn-last-level",
			classContentNavigation: "ctn-content-navigation",
			headerSourcePart1: "<div class=\"ctn-adverising-bar\" id=\"tgm-adverising-bar\"><!--#logo#--><!--#advertising#--></div>",
			headerSourceMenu: "<a name=\"menu\"></a><div class=\"ctn-navigation-bar\"><div class=\"ctn-main-menu <!--#lang#--> <!--#country#-->\"><div class=\"ctn-menu\"><!--#menu#--></div><div class=\"ctn-aidnavigation\"><!--#aidNavigation#--></div><!--#languageLink#--></div><!--#secondMenu#--></div>",
			headerSourceMenuOpen: "<a name=\"menu\"></a><div class=\"ctn-navigation-bar\"><div class=\"ctn-main-menu <!--#lang#--> <!--#country#-->\" style=\"background:#B8B0A7;\"><div class=\"ctn-menu\" style=\"display:block;\"><!--#menu#--></div><div class=\"ctn-aidnavigation\"><!--#aidNavigation#--></div><!--#languageLink#--></div><!--#secondMenu#--></div>",
			searchSource: "<div class=\"lin-div-vertical\"><!-- --></div><a name=\"search\"></a><form autocomplete=\"off\" action=\"<!--#searchAction#-->\" method=\"<!--#searchMethod#-->\" target=\"_top\" lang=\"atmors\" onsubmit=\"setTimestamp()\"><fieldset><legend><!--#lgnSearch#--></legend><div class=\"ctn-search-ca\"><input type=\"radio\" name=\"ca\" id=\"rdo-terra-search\" value=\"l\" class=\"chk-rdo-replace\"  checked=\"checked\" /><label for=\"rdo-terra-search\"><!--#terraSearch#--></label><input type=\"radio\" name=\"ca\" id=\"rdo-web-search\" value=\"s\" class=\"chk-rdo-replace\" /><label for=\"rdo-web-search\"><!--#webSearch#--></label></div><label for=\"fld-top-search\"><!--#lblSearch#--></label><input type=\"text\" name=\"<!--#searchNameField#-->\" id=\"fld-top-search\" class=\"fld-top-search\" /><!--#searchInputs#--><input type=\"image\" title=\"<!--#btnSearch#-->\" value=\"<!--#btnSearch#-->\" src=\"<!--#imgSearch#-->\" /></fieldset></form>",
			buttonSiteMap: "<div class=\"ctn-sitemap\"><!--#line#--><a href=\"<!--#lnkSitemap#-->\" style=\"background-image:url(<!--#imgSitemap#-->);width:<!--#imgWidthSitemap#-->px;\" target=\"_top\" rel=\"102\" title=\"<!--#txtSitemap#-->\"><!--#txtSitemap#--></a></div>",
			headerSource: "<div class=\"ctn-main-bar\"><!--#logo#--><div class=\"ctn-date\"><!--#date#--></div><!--#siteMap#--><div class=\"ctn-search\"><!--#search#--></div><div class=\"ctn-icons\"><!--#icons#--></div><div class=\"ctn-services-links\"><!--#login#--><!--#services#--></div></div><!--#containerMenu#-->",
			headerSuperslimSource: "<div class=\"ctn-superslim\"><div class=\"bgr-superslim\"><!--#logo#--><div class=\"ctn-icons\"><!--#icons#--></div><a href=\"#more\" class=\"lnk-menu <!--#expanded#-->\" style=\"width:<!--#imgWidthMoreTerra#-->px;\"><!--#moreTerra#--></a></div><!--#containerMenu#--></div>",
			footerSource: "<a name=\"footer\"></a><div><!--#menu#--></div><div class=\"ctn-copyright\"><!--#copyright#--></div>"
		}
		
	},
	CONSTRUCTOR = function(PARAMS,$){

		// Header
		/*
		 * PARAMETERS
		 * - selector (Header selector)
		 * - idItemMenu (Page ID)
		 * - Format (superslim/slim/full/footer)
		 */
		 
		window.setTimestamp=function(){var b=(new Date).getTime(),c=new Date(b+3E5),a=window.location.host.split(".");2<a.length&&(a=a.slice(1));document.cookie=["gtts=",b,";expires=",c.toGMTString(),";path=/;domain=",a.join(".")].join("")};
		 
		var adjustPropertiesName = function(obj,id) {
			obj.id = id;
			obj.items = obj.is;
			obj.label = obj.l;
			obj.imgSrc = obj.s;
			obj.imgSrcSmall = obj.s2;
			obj.imgWidth = obj.w;
			obj.tagMan = obj.tg;
			if (typeof(obj.t) != "undefined") {
				obj.type = obj.t;
				obj.layer = obj.t.substr(0,1) == "1";
				obj.horizontal = obj.t.substr(1,1) == "1";
				obj.more = obj.t.substr(2,1) == "1";
				obj.special = obj.t.substr(3,1) == "1";
				obj.visible = obj.t.substr(4,1) == "1";
			}
			obj.url = obj.u;

			return obj;
		}

		var header = function(selector,idItemMenu,format) {
			var contPredicta = 4;
			var jsonBreadCrumb = "";

			// Menu
			var writeMenu = function(itemsMenu) {
				var htmlFirstMenu = "";
				var htmlSecondMenu = "";
				var arrBreadCrumb = (idItemMenu.split("-"));

				// First menu
				for (var itemMenu in itemsMenu) {
					itemMenu = adjustPropertiesName(itemsMenu[itemMenu],itemMenu);
					if (itemMenu.visible)
						htmlFirstMenu += "<li class=\"bcr-"+itemMenu.id+(itemMenu.items?" "+PARAMS.HTML.classItemLayer:"")+"\">"+(itemMenu.tagMan?"<input name=\"tagMan\" type=\"hidden\" value=\""+itemMenu.tagMan+"\" />":"")+"<span class=\""+PARAMS.HTML.classBtnMenu+" "+(idItemMenu.indexOf(itemMenu.id)==0?PARAMS.HTML.classSelected:"")+"\"><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\"><span>"+itemMenu.label+"</span><span class=\"spn-over\">&raquo;</span></a></span></li>";
				}

				// Second menu
				if (idItemMenu.replace(/ /g,"") != "" && typeof(eval("arrNavigation.menu.is[\""+idItemMenu.replace(/-/g,"\"].is[\"")+"\"]")) != "undefined") // Verifica se existe o id
				if (arrBreadCrumb.length > 1) {

					// Bread crumb
					for (var index = 0; index < arrBreadCrumb.length; index++) {
						var itemMenu = adjustPropertiesName(itemsMenu[arrBreadCrumb[index]],arrBreadCrumb[index]);
						itemsMenu = itemMenu.items;
						jsonBreadCrumb += "-"+itemMenu.id;

						if (index > 0) { // Nao escreve o item de primeiro nivel no breadcrumb
							if (arrBreadCrumb.length > 1) {
								// Atributes
								var attributes = "";
								if (index == arrBreadCrumb.length-1) {
									attributes = " class=\""+PARAMS.HTML.classSelected+"\"";
								} else if (index < arrBreadCrumb.length-1) {
									attributes = " class=\""+PARAMS.HTML.classMarked+"\"";
								}
	
								htmlSecondMenu += "<li class=\"bcr"+jsonBreadCrumb+(itemMenu.items&&(index != arrBreadCrumb.length-1)?" "+PARAMS.HTML.classItemLayer:"")+(index==1?" itm-first":"")+"\">"+(itemMenu.tagMan?"<input name=\"tagMan\" type=\"hidden\" value=\""+itemMenu.tagMan+"\" />":"")+"<span"+attributes+"><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenu.label+"</a></span>";
							}
	
							// Last level
							if (index == arrBreadCrumb.length-1) {
								htmlSecondMenu += "<div class=\""+PARAMS.HTML.classLastLevel+"\">"; // Open last level div
								htmlSecondMenu += writeLastLevel(itemsMenu);
								htmlSecondMenu += "</div>"; // Close last level div

								// Content navigation
								if (index == 3 && itemMenu.contentNavigation) {
									if ($("."+PARAMS.HTML.classContentNavigation).size() > 0) {
										$("."+PARAMS.HTML.classContentNavigation).html(writeContentNavigation(itemMenu.contentNavigation)).find("li:last").addClass("itm-last");
									}
								}
							}

							if (arrBreadCrumb.length > 1) {
								htmlSecondMenu += "</li>";
							}
						}
					}

				} else {
					jsonBreadCrumb += "-"+idItemMenu;
					htmlSecondMenu = writeLastLevel(itemsMenu[idItemMenu].is);
				}

				htmlFirstMenu = htmlFirstMenu == "" ? "" : "<div class=\""+PARAMS.HTML.classFirstMenu+"\"><ul>"+htmlFirstMenu+"</ul></div>";
				htmlSecondMenu = htmlSecondMenu == "" ? "" : "<div class=\""+PARAMS.HTML.classSecondMenu+"\"><ul>"+htmlSecondMenu+"</ul></div>";

				return new Array(htmlFirstMenu,htmlSecondMenu);
			}

			// Last level
			var writeLastLevel = function(itemsMenu) {
				var htmlLastLevel = "<ul>";
				var htmlSpecial = "";
				var htmlMore = "";
				var htmlMoreSpecial = "";

				for (var indexLastLevel in itemsMenu) {
					var itemMenuLastLevel = adjustPropertiesName(itemsMenu[indexLastLevel],indexLastLevel);

					if (itemMenuLastLevel.visible) {

						// Horizontal
						if (itemMenuLastLevel.horizontal) {
							var htmlItem = "<li class=\"bcr"+jsonBreadCrumb+"-"+itemMenuLastLevel.id+(itemMenuLastLevel.items?" "+PARAMS.HTML.classItemLayer:"")+"\">"+(itemMenuLastLevel.tagMan?"<input name=\"tagMan\" type=\"hidden\" value=\""+itemMenuLastLevel.tagMan+"\" />":"")+"<span><a href=\""+itemMenuLastLevel.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenuLastLevel.label+"</a></span></li>";
							if (itemMenuLastLevel.special) {
								htmlSpecial += htmlItem;
							} else {
								htmlLastLevel += htmlItem;
							}

						// More
						} else if (itemMenuLastLevel.more) {
							var htmlItem = "<li><span><a href=\""+itemMenuLastLevel.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenuLastLevel.label+"</a></span></li>";
							if (itemMenuLastLevel.special) {
								htmlMoreSpecial += htmlItem;
							} else {
								htmlMore += htmlItem;
							}
						}
					}

				}

				htmlLastLevel += "</ul>"; // Close last level ul

				// Horizontal special
				if (htmlSpecial != "") {
					htmlLastLevel += "<ul class=\""+PARAMS.HTML.classSpecial+"\">"+htmlSpecial+"</ul>";
				}

				// More
				if (htmlMore != "" || htmlMoreSpecial != "") {
					htmlLastLevel += "<ul class=\""+PARAMS.HTML.classListMore+"\"><li class=\""+PARAMS.HTML.classItemLayer+"\"><span><a href=\"#more\">"+PARAMS.LNG.more+" "+eval("arrNavigation.menu.is[\""+idItemMenu.replace(/-/g,"\"].is[\"")+"\"].l")+"</a></span><div class=\""+PARAMS.HTML.classLayer+" "+PARAMS.HTML.classMore+"\">";
					// More generic
					if (htmlMore != "") {
						htmlLastLevel += "<ul>"+htmlMore+"</ul>";
					}
					// More special
					if (htmlMoreSpecial != "") {
						htmlLastLevel += "<ul class=\"lst-more-special\""+(htmlMore != "" ? "" : " style=\"padding-top:0!important;\"")+">"+htmlMoreSpecial+"</ul>";
					}
					htmlLastLevel += "</div></li></ul>";
				}

				return htmlLastLevel;
			}

			// Content navigation
			var writeContentNavigation = function(itemsMenu) {
				var htmlContentNavigation = "";
				for (var itemMenu in itemsMenu) {
					var itemMenu = adjustPropertiesName(itemsMenu[itemMenu],itemMenu);
					if (itemMenu.visible)
						htmlContentNavigation += "<li><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenu.label+"</a></li>";
				}
				return "<ul>"+htmlContentNavigation+"</ul>";
			}

			// Layers
			header.writeLayer = function(selector) {
				var breadCrumb = $(selector).attr("class").substring(0,$(selector).attr("class").indexOf(" ")).replace("bcr-","");
				var itemsMenu = eval("arrNavigation."+($(selector).parents(".ctn-aidnavigation").size()>0?"aidNavigation":"menu")+".is[\""+breadCrumb.replace(/-/g,"\"].is[\"")+"\"]").is;
				var htmlLayer = "<div class=\""+PARAMS.HTML.classLayer+" "+"menu-"+breadCrumb+($(selector).find("span:first").hasClass(PARAMS.HTML.classMarked)?" ctn-bread-crumb":"")+"\">";
				var arrList = [];
				var listLeft = "";
				var listRight = "";
				var arrListSpecial = [];
				var listSpecialLeft = "";
				var listSpecialRight = "";
				var counterItems = 0;
				var counterSpecial = 0;

				for (var itemLayer in itemsMenu) {
					itemLayer = adjustPropertiesName(itemsMenu[itemLayer],itemLayer);

					if (itemLayer.layer && itemLayer.visible) {
						var htmlItem = "<li><span><a href=\""+itemLayer.url+"\" target=\"_top\">"+itemLayer.label+"</a></span></li>";

						// Special
						if (itemLayer.special) {
							arrListSpecial.push(htmlItem);

						// Items
						} else {
							arrList.push(htmlItem);
						}
					}
				}

				// List left
				for (var indexList = 0; indexList < arrList.length/2; indexList++) {
					listLeft += arrList[indexList];
				}

				// List right
				for (var indexList = Math.ceil(arrList.length/2); indexList < arrList.length; indexList++) {
					listRight += arrList[indexList];
				}

				// List special left
				for (var indexList = 0; indexList < arrListSpecial.length/2; indexList++) {
					listSpecialLeft += arrListSpecial[indexList];
				}

				// List special right
				for (var indexList = Math.ceil(arrListSpecial.length/2); indexList < arrListSpecial.length; indexList++) {
					listSpecialRight += arrListSpecial[indexList];
				}

				// Landing
				if (breadCrumb.indexOf("-") == -1 && $(selector).parents(".ctn-aidnavigation").size() == 0) {
					htmlLayer += "<h5><a href=\""+$(selector).find("a").attr("href")+"\">"+(modMan.globals.page.lang=="en"?$(selector).find("a span:eq(0)").html()+PARAMS.LNG.linkLanding:PARAMS.LNG.linkLanding+$(selector).find("a span:eq(0)").html())+"</a></h5>";
				}

				htmlLayer += "<ul class=\"col-layer-left\">"+listLeft+"</ul>";
				htmlLayer += "<ul class=\"col-layer-right\">"+listRight+"</ul>";
				if (listSpecialLeft != "") {
					htmlLayer += "<div class=\"ctn-layer-special\">";
					htmlLayer += "<ul class=\""+PARAMS.HTML.classSpecial+" col-layer-left\">"+listSpecialLeft+"</ul>";
					htmlLayer += "<ul class=\""+PARAMS.HTML.classSpecial+" col-layer-right\">"+listSpecialRight+"</ul>";
					htmlLayer += "</div>";
				}

				htmlLayer += "</div>";
				return htmlLayer;
			}

			// Icons
			var writeIcons = function() {
				var htmlIcons = "";
				if (arrNavigation.icons) {
					for (var indexMenu = 0; indexMenu < arrNavigation.icons.is.length; indexMenu++) {
						var itemMenu = adjustPropertiesName(arrNavigation.icons.is[indexMenu],arrNavigation.icons.is[indexMenu].i),
						target = itemMenu.id === 'ema' ? '_blank' : '_top';
						htmlIcons += "<li class=\"itm-"+itemMenu.id+"\"><span><a href=\""+itemMenu.url+"\" target=\""+target+"\" title=\""+itemMenu.label+"\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenu.label+"</a></span></li>";
					}
					return "<ul class=\"lst-icons\">"+htmlIcons+"</ul>";
				}
			}

			// Services
			var writeServices = function() {
				var htmlServices = "";

				if (arrNavigation.services) {
					for (var indexMenu = 0; indexMenu < arrNavigation.services.is.length; indexMenu++) {
						var itemMenu = adjustPropertiesName(arrNavigation.services.is[indexMenu],indexMenu);
						htmlServices += "<li><span><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+itemMenu.label+"</a></span></li>";
					}
					return "<div class=\"ctn-services\"><a href=\"#\" class=\"lnk-services\" target=\"_top\">"+PARAMS.LNG.services+"</a><div class=\""+PARAMS.HTML.classLayer+" menu-services\"><span class=\"spn-label-services\">"+PARAMS.LNG.services.replace(/ /g,"&nbsp;")+"</span><ul>"+htmlServices+"</ul></div></div>";
				} else {
					return "";
				}
			}

			// Aid navigation
			var writeAidNavigation = function() {
				var htmlAidNavigation = "";

				for (var itemMenu in arrNavigation.aidNavigation.is) {
					itemMenu = adjustPropertiesName(arrNavigation.aidNavigation.is[itemMenu],itemMenu);
					if (itemMenu.visible) {
						htmlAidNavigation += "<li class=\"bcr-"+itemMenu.id+(itemMenu.items?" "+PARAMS.HTML.classItemLayer:"")+"\"><span class=\""+PARAMS.HTML.classBtnMenu+"\"><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\"><span>"+itemMenu.label+"</span><span class=\"spn-over\">&raquo;</span></a></span></li>";
					}
				}
				return "<ul>"+htmlAidNavigation+"</ul>";
			}

			// Superslim
			if (format == "superslim") {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSuperslimSource.replace("<!--#moreTerra#-->",PARAMS.LNG.moreTerra).replace("<!--#imgWidthMoreTerra#-->",PARAMS.LNG.imgWidthMoreTerra);
				
				if (PARAMS.moreTerra) PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#expanded#-->","lnk-menu-expanded"); 
				
				arrNavigation.general.login = false;
				PARAMS.search = false;
			}

			// General replaces
			if (idItemMenu == "home") {
				// Date
				if (PARAMS.publicationDate) {
					PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#date#-->",PARAMS.publicationDate);
				} else {
					var date = new Date();
					PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#date#-->",PARAMS.LNG.formatDate.replace("<!--#year#-->",date.getFullYear()).replace("<!--#month#-->",PARAMS.LNG.month[date.getMonth()]).replace("<!--#day#-->",date.getDate()));
				}
				PARAMS.LNG.logo = PARAMS.LNG.logo.replace("<!--#classLogo#-->",PARAMS.HTML.classLogoHome);
			} else {
				PARAMS.LNG.logo = PARAMS.LNG.logo.replace("<!--#classLogo#-->",PARAMS.HTML.classLogo);
			}

			// Login
			if (arrNavigation.general.login) {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#login#-->","<a href=\""+arrNavigation.general.login+"\" target=\"_top\" rel=\"1"+(++contPredicta).digits(2)+"\">"+PARAMS.LNG.login+"</a>");
			}

			// Link logo
			PARAMS.LNG.logo = PARAMS.LNG.logo.replace("<!--#urlHome#-->",arrNavigation.general.urlHome);

			// Logo
			if (format != "full") {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#logo#-->",PARAMS.LNG.logo);
			}
			PARAMS.HTML.headerSourcePart1 = PARAMS.HTML.headerSourcePart1.replace("<!--#logo#-->",PARAMS.LNG.logo);

			// Lang and Country class
			PARAMS.HTML.headerSourceMenu = PARAMS.HTML.headerSourceMenu.replace("<!--#lang#-->",modMan.globals.page.lang).replace("<!--#country#-->",modMan.globals.page.country);

			if (PARAMS.format == "superslim" && PARAMS.moreTerra) PARAMS.HTML.headerSourceMenuOpen = PARAMS.HTML.headerSourceMenuOpen.replace("<!--#lang#-->",modMan.globals.page.lang).replace("<!--#country#-->",modMan.globals.page.country);
			
			// Advertising
			if (typeof(tgmKey) != "undefined") {
				var classAdvertising = "ctn-advertising";
				if (idItemMenu == "home") classAdvertising += " ctn-advertising-home";
				
				if(!$(".tgm-top").length) PARAMS.HTML.headerSourcePart1 = PARAMS.HTML.headerSourcePart1.replace("<!--#advertising#-->","<div class=\""+classAdvertising+"\" id=\"tgm-top\"><!-- --></div><div id=\"tgm-pagesponsor\" class=\"ctn-pagesponsor\"><!-- --></div>");
				else PARAMS.HTML.headerSourcePart1 = PARAMS.HTML.headerSourcePart1.replace("<!--#advertising#-->","<div class=\""+classAdvertising+"\" id=\"tgm-top\"><!-- --></div>");
			}

			// Search
			if (arrNavigation.general.search && (PARAMS.search || typeof(PARAMS.search) == "undefined")) {
				var protocol = window.location.protocol;
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#search#-->",PARAMS.HTML.searchSource.replace("<!--#lblSearch#-->",PARAMS.LNG.lblSearch)
					.replace("<!--#lgnSearch#-->",PARAMS.LNG.lgnSearch)
					.replace("<!--#webSearch#-->",PARAMS.LNG.webSearch)
					.replace("<!--#terraSearch#-->",PARAMS.LNG.terraSearch)
					.replace("<!--#imgSearch#-->", protocol + "//s1.trrsf.com.br/atm/2/core/"+PARAMS.LNG.imgSearch)
					.replace(/<!--#btnSearch#-->/g,PARAMS.LNG.btnSearch)
					.replace("<!--#searchAction#-->",arrNavigation.general.search.action)
					.replace("<!--#searchMethod#-->",arrNavigation.general.search.method)
					.replace("<!--#searchNameField#-->",arrNavigation.general.search.nameField)
					.replace("<!--#searchInputs#-->",arrNavigation.general.search.inputs));
				PARAMS.HTML.buttonSiteMap = PARAMS.HTML.buttonSiteMap.replace("<!--#line#-->","<div class=\"lin-div-vertical\"><!-- --></div>");
			} else {
				PARAMS.HTML.buttonSiteMap = PARAMS.HTML.buttonSiteMap.replace("<!--#line#-->","<div class=\"spc-div-vertical\"><!-- --></div>");
			}

			// Sitemap button
			if (arrNavigation.general.urlSitemap) {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#siteMap#-->",PARAMS.HTML.buttonSiteMap.replace("<!--#lnkSitemap#-->",arrNavigation.general.urlSitemap)
					.replace("<!--#imgSitemap#-->","http://s1.trrsf.com.br/atm/2/core/"+PARAMS.LNG.imgSitemap)
					.replace("<!--#imgWidthSitemap#-->",PARAMS.LNG.imgWidthSitemap)
					.replace(/<!--#txtSitemap#-->/g,PARAMS.LNG.txtSitemap));
			}

			// Language
			if (modMan.globals.page.country == "US" && PARAMS.format != "superslim") {
				PARAMS.HTML.headerSourceMenu = PARAMS.HTML.headerSourceMenu.replace("<!--#languageLink#-->",PARAMS.LNG.languageLink);
			}

			// Icons
			PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#icons#-->",writeIcons());

			// Services
			if (!PARAMS.noLayers) {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#services#-->",writeServices());
			}

			// Navigation
			if (PARAMS.navigation || typeof(PARAMS.navigation) == "undefined") {
				
				if (PARAMS.format == "superslim" && PARAMS.moreTerra) PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#containerMenu#-->",PARAMS.HTML.headerSourceMenuOpen);
				else PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#containerMenu#-->",PARAMS.HTML.headerSourceMenu); 
					
				var arrMenu = writeMenu(arrNavigation.menu.is);
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#menu#-->",arrMenu[0]);
				
				if (PARAMS.format != "superslim") PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#secondMenu#-->",arrMenu[1]);

				// Aid navigation
				if (!PARAMS.noLayers && PARAMS.format != "superslim") {
					PARAMS.HTML.headerSource = PARAMS.HTML.headerSource.replace("<!--#aidNavigation#-->",writeAidNavigation());
				}
			}

			// Format header
			if (format == "full") {
				PARAMS.HTML.headerSource = PARAMS.HTML.headerSourcePart1 + PARAMS.HTML.headerSource;
			}

			// Search SSI
			var searchValue = $("#fld-top-search").val();
			var searchTerra = $("#rdo-terra-search").attr("checked");

			$(selector).html(PARAMS.HTML.headerSource);

			// Class loaded
			$(selector).addClass("header-footer-loaded");

			// Search SSI
			if (searchValue != "") $("#fld-top-search").val(searchValue);
			if (searchTerra) $("#rdo-terra-search").attr("checked","checked");

			// Return object
			return this;
		}

		// Footer
		var footer = function(selector) {
			var htmlFirstMenu = "";
			var htmlAidFirstMenu = "";
			var htmlSecondMenu = "";
			var htmlCountries = "";
			var cont = 0;

			// Main menu
			htmlFirstMenu += "<li><a href=\""+arrNavigation.general.urlHome+"\" target=\"_top\" rel=\"31"+(++cont < 10 ? "0"+cont : cont)+"\">"+PARAMS.LNG.home+"</a></li>";

			for (var itemMenu in arrNavigation.menu.is) {
				itemMenu = adjustPropertiesName(arrNavigation.menu.is[itemMenu],itemMenu);
				if(!(/#/).test(itemMenu.url)) htmlFirstMenu += "<li><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"31"+(++cont < 10 ? "0"+cont : cont)+"\">"+itemMenu.label+"</a></li>";
			}
			if (htmlFirstMenu != "") {
				htmlFirstMenu = "<ul class=\"lst-main-menu\">"+htmlFirstMenu+"</ul>";
			}

			// Aid navigation
			for (var indexMenu = 0; indexMenu < arrNavigation.aidFooterNavigation.is.length; indexMenu++) {
				var itemMenu = adjustPropertiesName(arrNavigation.aidFooterNavigation.is[indexMenu],indexMenu);
				if (!(/#/).test(itemMenu.url)) {
					if (itemMenu.type == 1) {
						htmlAidFirstMenu += "<li><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"31"+(++cont < 10 ? "0"+cont : cont)+"\">"+itemMenu.label+"</a></li>";
					} else {
						htmlSecondMenu += "<li><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"31"+(++cont < 10 ? "0"+cont : cont)+"\">"+itemMenu.label+"</a></li>";
					}
				}
			}

			// Countries
			for (var indexMenu = 0; indexMenu < arrNavigation.aidFooterNavigation.countries.is.length; indexMenu++) {
				var itemMenu = adjustPropertiesName(arrNavigation.aidFooterNavigation.countries.is[indexMenu],indexMenu);
				htmlCountries += "<li><a href=\""+itemMenu.url+"\" target=\"_top\" rel=\"31"+(++cont < 10 ? "0"+cont : cont)+"\">"+itemMenu.label+"</a></li>";
			}
			htmlCountries = "<li class=\"itm-countries "+PARAMS.HTML.classItemLayer+"\"><span><a href=\"#\" target=\"_top\">"+PARAMS.LNG.countries+"</a></span><div class=\""+PARAMS.HTML.classLayer+" menu-countries\"><ul>"+htmlCountries+"</ul><span class=\"spn-label-countries\">"+PARAMS.LNG.countries+"</span></div></li>";

			htmlAidFirstMenu = "<ul class=\"lst-aid-menu\">"+htmlAidFirstMenu+"</ul>";
			htmlSecondMenu = "<ul class=\"lst-second-menu\">"+htmlSecondMenu+htmlCountries+"</ul>";

			PARAMS.HTML.footerSource = PARAMS.HTML.footerSource.replace("<!--#menu#-->",htmlFirstMenu+htmlAidFirstMenu+htmlSecondMenu).replace("<!--#copyright#-->",arrNavigation.general.copyright);

			$(selector).html(PARAMS.HTML.footerSource);
			$(selector).addClass("header-footer-loaded");
			$(selector).find(".lst-aid-menu li:last").addClass("itm-last");
			$(selector).find(".lst-main-menu li:last").addClass("itm-last");
			$(selector).find("."+PARAMS.HTML.classLayer).each(function() {
				$(this).find("ul:first").addClass("col-layer-left").after("<ul class=\"col-layer-right\"></ul>");
				$(this).find(".col-layer-right").append($(this).find("ul:first li:gt("+(Math.floor($(this).find("ul:first li").size()/2))+")"));
			});

			// Return object
			return this;
		}

		// Events
		var bindEvents = function(selector) {
			var timeAdvertising = null,
				layerController = null;

			// No link
			$(selector).find("a[href$='#']").click(function() {return false;});

			// Checkbox
			$.checkboxRadiobutton(selector);

			if (!PARAMS.noLayers) {

				$(selector).find("."+PARAMS.HTML.classItemLayer).hover(
					function() {
						if (layerController) {
							layerController.hide();
						}
						
						var objMenu = $(this).find(">."+PARAMS.HTML.classLayer);

						if (objMenu.size() == 0) {
							$(this).append(header.writeLayer(this));
							objMenu = $(this).find(">."+PARAMS.HTML.classLayer);
						}

						if (objMenu.find("li").size() > 0) {

							$(this).find("a:first").addClass("active");
							objMenu.show();

							// Width
							if (!objMenu.hasClass("menu-more") && !objMenu.hasClass("menu-services")) {
								objMenuSpecial = objMenu.parent().find(".ctn-layer-special");
								// Special width
								if (objMenuSpecial.size() > 0) {
									// First column
									if (objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-left").width() > objMenu.find(".col-layer-left:not(."+PARAMS.HTML.classSpecial+")").width()) {
										objMenu.find(".col-layer-left:not(."+PARAMS.HTML.classSpecial+")").width(objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-left").width());
									} else {
										objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-left").width(objMenu.find(".col-layer-left:not(."+PARAMS.HTML.classSpecial+")").width());
									}

									// Second column
									if (objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-right").width() > objMenu.find(".col-layer-right:not(."+PARAMS.HTML.classSpecial+")").width()) {
										objMenu.find(".col-layer-right:not(."+PARAMS.HTML.classSpecial+")").width(objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-right").width());
									} else {
										objMenuSpecial.find("."+PARAMS.HTML.classSpecial+".col-layer-right").width(objMenu.find(".col-layer-right:not(."+PARAMS.HTML.classSpecial+")").width());
									}
								}
								var widthLayer = Math.max(Math.max(objMenu.find(".col-layer-left:not(."+PARAMS.HTML.classSpecial+")").width() + objMenu.find(".col-layer-right:not(."+PARAMS.HTML.classSpecial+")").width(),100),objMenu.find(".ctn-advertising iframe").width());

								if (!($.browser.msie && $.browser.version <= 6)) {
									widthLayer = widthLayer > objMenu.find("h5").width() ? widthLayer : objMenu.find("h5").width();
								}

								objMenu.width(widthLayer);

								// Countries
								if (objMenu.parents(".itm-countries").size() > 0) {
									objMenu.css("top",(objMenu.height() + 23)*(-1)+"px");
									objMenu.find(".spn-label-countries").css("top",(objMenu.height() + 10)+"px");

									// Element position
									var windowWidth = window.innerWidth ? window.innerWidth : $("html").width();
									if (objMenu.parents(".itm-countries").offset().left - $(document).scrollLeft() + objMenu.width()+16  > windowWidth) {
										var marginLeft = objMenu.width()+16 - (objMenu.find(".spn-label-countries").width()+26);
										objMenu.css("marginLeft",-(marginLeft)+"px");
										objMenu.find(".spn-label-countries").css("marginLeft",marginLeft+"px");
									} else {
										objMenu.css("marginLeft","0px");
										objMenu.find(".spn-label-countries").css("marginLeft","0px");
									}
								}
							} else if ($(selector).find(".lst-more").size() > 0) {
								if (($(selector).find(".menu-more").width()+20) <= $(selector).find(".lst-more").width()) {
									$(selector).find(".menu-more").width($(selector).find(".lst-more").width()-20);
								}
								if (($(selector).find(".lst-more").position().left+20+$(selector).find(".menu-more").width()+20+1-(($.browser.msie && $.browser.version == 6)?7:0)) > $(selector).find(".ctn-navigation-bar").width()) {
									$(selector).find(".menu-more").css("left",($(selector).find(".menu-more").width()-$(selector).find(".lst-more").width()+20)*(-1)+"px");
								}
							}

							// Advertising
							if ($(this).find("input[name='tagMan']").size() > 0 && typeof(tgmKey) != "undefined" && tgmKey != "") {
								var tagMan = $(this).find("input[name='tagMan']").val();
								clearTimeout(timeAdvertising);
								timeAdvertising = setTimeout(function() {
									if (objMenu.is(":visible")) {
										var hiddenAdvertising = "display:none;"
										if (objMenu.find(".ctn-advertising").size() == 0) {
											hiddenAdvertising = "";
										}
										if (tagMan == "buttonshopping") {
											var widthShopping = 220;
											var heightShopping = 120;
											if (objMenu.width() < widthShopping) {
												objMenu.width(widthShopping);
											}
											objMenu.append("<div class=\"ctn-advertising\" style=\""+hiddenAdvertising+"height:"+heightShopping+"px;\"><iframe scrolling=\"no\" src=\""+PARAMS.srcAdvertising+"?tag="+tgmKey+"&area="+tagMan+"&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:"")+"\" frameborder=\"0\" style=\"float:left;width:"+widthShopping+"px;height:"+heightShopping+"px;\"></iframe></div>");
										} else {
											objMenu.append("<div class=\"ctn-advertising\" style=\""+hiddenAdvertising+"\"><iframe scrolling=\"no\" src=\""+PARAMS.srcAdvertising+"?tag="+tgmKey+"&area="+tagMan+"&site="+(typeof(site)!="undefined"?site:"")+"&zone="+(typeof(zone)!="undefined"?zone:"")+"\" frameborder=\"0\"></iframe></div>");
										}
									}
									objMenu.find(".ctn-advertising:hidden").not(objMenu.find(".ctn-advertising:hidden:last")).remove();
								},500);
							}
						}
						return false;
					},
					function() {
						$(this).find("a:first").removeClass("active");
						var objMenu = $(this).find(">."+PARAMS.HTML.classLayer);
						if (objMenu.size() > 0) {
							objMenu.hide();
						}
						return false;
					}
				);

				// Follower advertising
				$(".ctn-first-menu>ul>li, .ctn-second-menu>ul>li").mousemove(function(e){
					if ($(this).find(".ads-follow").size() > 0) {
						$(this).find(".ads-follow").css({
							"position":"absolute",
							"z-index":"99999",
							"left":(e.pageX-$(this).find("."+PARAMS.HTML.classLayer).offset().left+20)+"px",
							"top":e.pageY-$(this).find("."+PARAMS.HTML.classLayer).offset().top+"px"
						});
					}
				});

				// Services
				$(selector).find(".ctn-services").hover(
					function() {
						if (layerController) {
							layerController.hide();
						}
						
						$(this).find("."+PARAMS.HTML.classLayer+":first").show();
						return false;
					},
					function() {
						if (layerController) {
							layerController.hide();
						}
						
						$(this).find("."+PARAMS.HTML.classLayer+":first").hide();
						return false;
					}
				);
				
				
				$(selector).find("#fld-top-search").click(function () {
					
					var baseUrlSug = "http://p1.trrsf.com.br/aut/Suggest.aspx";
					if (window.modMan.globals.page.lang != "pt" && window.modMan.globals.page.lang != "br") baseUrlSug = "http://p1.trrsf.com/aut/Suggest.aspx";
					
					var domainSug = "buscador.terra.com.br";
					if (window.modMan.globals.page.lang != "pt" && window.modMan.globals.page.lang != "br") domainSug = "buscador.terra.com";
					
					var settings = {
						callBack: 'searchSuggestion',
						recipient: $('.ctn-search'),
						field: $('#fld-top-search'),
						baseUrl: baseUrlSug,
						urlParams: params = {
							domain: domainSug,
							call: 'searchSuggestion',
							query: ''
						}
					}

					window.modMan.require.files({
						dependencies: [window.modMan.globals.stage.coreBaseUrl + '_js/suggestion.js'],
						success: function (){ 
							layerController = new suggestion(settings);
						}
					});
				});
				
			}

			// Superslim events
			if (PARAMS.format == "superslim") {
				$(selector).find(".ctn-superslim .lnk-menu").click(function() {
					if ($(selector).find(".ctn-menu").is(":visible")) {
						$(selector).find(".ctn-menu").hide();
						$(selector).find(".ctn-aidnavigation").hide();
						$(this).removeClass("lnk-menu-expanded");
						$(selector).find(".ctn-main-menu").css("background","#FF9900");
					} else {
						$(selector).find(".ctn-menu").show();
						$(selector).find(".ctn-aidnavigation").show();
						$(this).addClass("lnk-menu-expanded");
						$(selector).find(".ctn-main-menu").css("background","#B8B0A7");
					}
					return false;
				});
			}
		}

		// Request
		var arrNavigation = null;
		new modMan.tools.jsonP({
			url: PARAMS.request_url,
			wrapperName: "json_headerfooter",
			cache: true,
			callback: function(json) {
				arrNavigation = json;

				// Header
				if (PARAMS.recipient.size() > 0 && PARAMS.format != "footer") {
					header(PARAMS.recipient,PARAMS.idItemMenu,PARAMS.format);
					bindEvents(PARAMS.recipient);
				} else {
					PARAMS.selectorFooter = PARAMS.recipient;
					PARAMS.recipient.attr("id","mod-footer");
				}

				// Footer
				if (PARAMS.selectorFooter) {
					if ($(PARAMS.selectorFooter).length) {
						footer(PARAMS.selectorFooter);
						bindEvents(PARAMS.selectorFooter);
					} else {
						$(document).ready(function() {
							footer(PARAMS.selectorFooter);
							bindEvents(PARAMS.selectorFooter);
						});
					}
				}
				// Callback
				if (PARAMS.callback) PARAMS.callback();
				// Ads follow
				if (typeof(adsFollow) != "undefined") {
					adsFollow();
				}
			}
		});
	}
	// Recipient
	p.params.recipient = $(p.selector);
	//  LNG
	
	PARAMS.LNG = locale.LNG[p.pageLang] || locale.LNG["br"];

	PARAMS = $.extend(PARAMS,p.params);
	CONSTRUCTOR(PARAMS,jQuery);
}
})(jQuery);

