//***********************************************************************
//	OBJETIVO			: Aplicar a funcionalidade de Abas apenas no modo de exibição em page layouts do sharepoint 
//						  			
//-----------------------------------------------------------------------
//	AUTOR				: Cristiano Souza Silva
//	Data CRIAÇÂO		: 29/5/2009 
//	MANUTENÇÂO			:
//	OBSERVAÇÂO			:
//
//************************************************************************

//Prototype que simula o método trim alterado para atuar sobre html
String.prototype.trim = function(){
	//Aplica replace de espaços no início e no fim da string,após isto remove espaços html em branco;
	return this.replace(/^\s*/, "").replace(/\s*$/, "").replace("&nbsp;","");
}
//Retorna boolean true se o sharepoint estiver em modo de design
function IsInDesignMode(){
	//Verifica dois hidden fields utilizados pelo sharepoint
	if(document.getElementById("MSOLayout_InDesignMode") != null){
	   if(document.getElementById("MSOLayout_InDesignMode").value == '1'){ 
			return true;
		}else{
			return false;
	   }
	}else{
		return false;
	}
   if(document.getElementById("MSOTlPn_SelectedWpId") != null){
	   if(document.getElementById("MSOTlPn_SelectedWpId").value != ""){ 
	   		return true;
	   }else{
			return false;
	   }
   	}else{
   		return false;
	}
}	

//Carrega funcoes das abas após carregar o html
$(function() {
	//Se não estiver em modo design
	if(!IsInDesignMode()){
		
		//Percorre os elementos base ul onde serão aplicadas as abas
		$('#menuAbasInterna > ul').children().each(function(e){
								
			//Recupera o id do primeiro filho da li (elemento <a>)
			strId = $(this).children().eq(0).attr('href');
			//Verifica se o elemento onde está o titulo possui algum valor
			if($(this).children().eq(0).children().eq(0).html().trim().length == 0){
				//Caso não exista remove o elemento li e também a div equivalente
				$(this).remove();
				$(strId).remove();
			}
		});
		//Abas Completas
		intQtdeAbas = 4;
		intAbasInteiras =  parseInt($('#menuAbasInterna > ul').children().length/intQtdeAbas);
		intAbasInteirasMontadas = 0;
		intResto = $('#menuAbasInterna > ul').children().length%intQtdeAbas;
		intInicio = $('#menuAbasInterna > ul').children().length-intResto;
		intTamanho =$('#menuAbasInterna > ul').children().length;
		
		arrTamanhos= new Array('649.5px','312.5px','200.5px','144.5px');

		$("#menuAbasInterna > ul").children().each(function(e){
			if((e%intQtdeAbas) == (intQtdeAbas-1)){
				intAbasInteirasMontadas +=1;
			}
			if(intAbasInteirasMontadas <= intAbasInteiras && e < (intTamanho-intResto))
				$(this).children(':eq(0)').children(':eq(0)').css('width',arrTamanhos[3]);
			else{
				switch(intResto)
				{
					case 1:
					$(this).children(':eq(0)').children(':eq(0)').css('width',arrTamanhos[0]);
					break;
					case 2:
					$(this).children(':eq(0)').children(':eq(0)').css('width',arrTamanhos[1]);
					break;
					case 3:
					$(this).children(':eq(0)').children(':eq(0)').css('width',arrTamanhos[2]);
					break;
					case 4:
					$(this).children(':eq(0)').children(':eq(0)').css('width',arrTamanhos[3]);
					break;
				}
			}			
		
		});		
		
		//Aplica as tabs nos elementos restantes
		$('#menuAbasInterna').tabs({ 
				fxFade: true, 
				fxSpeed: 'slow' 
		});
		//Caso esteja em modo design
	}else{
		//Vetor com conteúdo html
		OldContent = [];
		//Percorre os elementos da lista
		$('#AbasContainer').children().each(function(e){
			//Adiciona ao vetor de conteúdo o html necessário apenas do SharePoint
			OldContent [e] ="<br/>"+ $(this).children().eq(0).children().eq(0).html();
		});
		//Exclui a ul
		$("#AbasContainer").remove();
		//Adiciona antes de cada bloco de texto o textfield equivalente
		$("#menuAbasInterna > div").each(function(d){
			$(this).prepend(OldContent [d]);
		});
	}
});


