﻿/* 20100505-1709 */
(function($){
var modHeaderAux = 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',
		defaultRGN:'BR',
		LNG:{
			br:{
				sponsoredBy:"Patrocinado por"
			},
			en:{
				sponsoredBy:"Sponsored by"
			},
			es:{
				sponsoredBy:"Patrocinado por"
			}
		}
	},
	PARAMS = {
		help:{
		},
		defaults:{
			itemsRight:3
		},
		needed:{
			idItemMenu:"string",
			itemsRight:"number"
		}
	},
	CONSTRUCTOR = function(PARAMS,$){
		
		var RECIPIENT = PARAMS.recipient,
			LNG =  PARAMS.LNG,
			RGN =  PARAMS.RGN;
		
		var idItemMenu = PARAMS.idItemMenu;
		// Header
		/*
		 * PARAMETERS
		 * - selector (Header selector)
		 * - idItemMenu (Page ID)
		 * - Format (superslim/slim/full/footer)
		 */


		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;
		}

		// Menu
		var writeMenu = function(objJsonp) {

			var htmlFirstMenu = "";
			var htmlSecondMenu = "";
			var arrBreadCrumb = (idItemMenu.split("-"));
			
			if (arrBreadCrumb.length == 4) {
				
				var objItemMenu = eval("objJsonp.menu.is."+arrBreadCrumb[0]+".is."+arrBreadCrumb[1]+".is."+arrBreadCrumb[2]+".is."+arrBreadCrumb[3]);			
				var itemsMenu = objItemMenu.contentNavigation;
				var maxItens = 0;
				
				for (var itemMenu in itemsMenu) maxItens++;
				
				if (maxItens > 0) $(RECIPIENT).html(writeContentNavigation(itemsMenu, maxItens-PARAMS.itemsRight, maxItens));
				else $(RECIPIENT).html("Menu not found");
				
			} else $(RECIPIENT).html("Menu not found");
		}

		// Content navigation
		var writeContentNavigation = function(itemsMenu, maxItens, total) {
			var htmlContentNavigation = '<div class="left"><ul>';
			var cont =0; 
			
			for (var itemMenu in itemsMenu) {
				var itemMenu = adjustPropertiesName(itemsMenu[itemMenu],itemMenu);
				if (itemMenu.visible && cont == maxItens-1) htmlContentNavigation += '<li class="last"><a href="'+itemMenu.url+'" target="_top" >'+itemMenu.label+'</a></li>';
				else if (itemMenu.visible && cont < maxItens) htmlContentNavigation += '<li><a href="'+itemMenu.url+'" target="_top" >'+itemMenu.label+'</a></li>';
				cont++;
			}
			
			cont = 0;
			if (PARAMS.itemsRight != 0){
				htmlContentNavigation += '</ul></div><div class="right"><ul>';
				
				for (var itemMenu in itemsMenu) {
					var itemMenu = adjustPropertiesName(itemsMenu[itemMenu],itemMenu);
					if (itemMenu.visible && cont == maxItens) htmlContentNavigation += '<li class="first"><a href="'+itemMenu.url+'" target="_top" >'+itemMenu.label+' »</a></li>';
					else if (itemMenu.visible && cont == total-1) htmlContentNavigation += '<li class="last"><a href="'+itemMenu.url+'" target="_top" >'+itemMenu.label+' »</a></li>';
					else if (itemMenu.visible && cont >= maxItens) htmlContentNavigation += '<li><a href="'+itemMenu.url+'" target="_top" >'+itemMenu.label+' »</a></li>';
	
					cont++;
				}
				
				htmlContentNavigation += '</ul></div>';
			}
			
			return htmlContentNavigation;
		}
		
		
		// Request
		var arrNavigation = null;
		new modMan.tools.jsonP({
			url: PARAMS.request_url,
			wrapperName: "json_headerfooter",
			cache: true,
			callback: function(json) {

				writeMenu(json);
				
			}
		});

	}
	
	// Recipient
	p.params.recipient = $(p.selector);
	//  LNG
	PARAMS.LNG = locale.LNG[p.pageLang];

	PARAMS = $.extend(PARAMS,p.params);
	CONSTRUCTOR(PARAMS,jQuery);
}
	window.modHeaderAux = modHeaderAux;
	
})(jQuery);