<!--

BSC.userAgent = window.navigator || null;

BSC.constants = {};
BSC.subnivel = {};
BSC.constants.customFormCallType = "customForm";
BSC.constants.idSeparator = ":";
BSC.constants.style = {};
BSC.constants.style.navigatorLinkChecked = 'bsc_navegador_link_click';
BSC.constants.style.navigatorLink = '';
BSC.constants.style.navigatorElementChecked = 'bsc_navegador_elemento_click';
BSC.constants.style.navigatorElement = 'bsc_navegador_elemento';
BSC.constants.style.customFormElementChecked = 'bsc_navegador_elemento_click';
BSC.constants.style.customFormElement = 'bsc_special';

BSC.styleManager = {};
BSC.styleManager.getNavElementStyle = function(checked) {
	var style = '';
	if(checked) {
		style = BSC.constants.style.navigatorElementChecked;
	} else {
		style = BSC.constants.style.navigatorElement;
	}
	return style;
}

BSC.styleManager.getCustomFormStyle = function(checked) {
	var style = '';
	if(checked) {
		style = BSC.constants.style.customFormElementChecked;
	} else {
		style = BSC.constants.style.customFormElement;
	}
	return style;
}

BSC.styleManager.getLinkElementStyle = function(checked) {
	var style = '';
	if(checked) {
		style = BSC.constants.style.navigatorLinkChecked;
	} else {
		style = BSC.constants.style.navigatorLink;
	}
	return style;  
}

BSC.layout = new Object();
BSC.layout.listLimit = 5;
BSC.layout.htm = '[NAME] <span class=\"count\">([COUNT])</span>'
BSC.layout.lista = function(id){
	this.title = "Nova Lista";
	this.data = null;
	this.object = document.getElementById(id) || null;
	this.showAll = false;
	this.pagerEnable = false;
	this.typeLimiter = "";
	this.page = 1;
	this.maxElementsLimit = BSC.layout.listLimit;
	this.template = BSC.layout.htm;
	this.tabPagerTemplate = "";
	this.pagerPrev = "<< Anterior";
	this.pagerNext = "Pr&oacute;ximo >>";
	this.showAllText = "Ver todos";
	this.hiddenText = "Top 5";
	this.blackList = new Array();
	this.onlyFormated = false;
	this.expanded = false;
	this.stateControl = false;


	this.getParams = function(navLimite){
		var init = 0;
		var end = navLimite || this.maxElementsLimit;
		if(navLimite>this.data.navigatorElements.length)this.page=1;
		if(this.pagerEnable && (this.typeLimiter==""||this.typeLimiter=="pager")){
			init = (this.page-1)*this.maxElementsLimit;
			end = init + this.maxElementsLimit;
		}else{
			if(!this.showAll){
				end = this.data.navigatorElements.length;
			}
		}
		if(this.data.navigatorElements.length < end)end = this.data.navigatorElements.length;
		return {init:init, end:end};
	}

	this.showLimiter = function(end){
		var nav = this;
			if(this.pagerEnable && (this.typeLimiter==""||this.typeLimiter=="pager")){
				var records = this.data.navigatorElements.length;
				var pages = Math.ceil(records / this.maxElementsLimit);

				if(pages>1){
					var pager = document.createElement("div");
					$(pager).attr("class","bsc_nav_pager");
					var prev = document.createElement("a");
					$(prev).attr("class","prevInactive");
					prev.innerHTML = this.pagerPrev;
					if(this.page>1){
						$(prev).attr("class","prevActive");
						var nav = this;
						$(prev).click(
							function(){
								nav.page--;
								nav.typeLimiter = "pager";
								nav.show(nav.maxElementsLimit);
							}
						);
					}
					pager.appendChild(prev);

					var next = document.createElement("a");
					next.innerHTML = this.pagerNext;
					$(next).attr("class","nextInactive");
					if(this.page<pages){
						$(next).attr("class","nextActive");
						var comp = this;
						$(next).click(
							function(){
								nav.page++;
								nav.typeLimiter = "pager";
								nav.show(nav.maxElementsLimit);
							}
						);
					}
					pager.appendChild(next);
					this.object.appendChild(pager);
				}
			}
			if(this.showAll){
				if(end < this.data.navigatorElements.length){
					var all = document.createElement("div");
					$(all).attr("class","bsc_navegador_showall");
					all.innerHTML = this.showAllText;
					$(all).click(
						function(){
							nav.typeLimiter = "showAll";
							nav.show(nav.data.navigatorElements.length);
							//
							nav.expanded = true;
							//
						}
					);
					this.object.appendChild(all);
				}else if(end == this.data.navigatorElements.length && this.data.navigatorElements.length > this.maxElementsLimit){
					var all = document.createElement("div");
					$(all).attr("class","bsc_navegador_hidden");
					all.innerHTML = this.hiddenText;
					$(all).click(
						function(){
							nav.typeLimiter = "";
							nav.show(nav.maxElementsLimit);
							//
							nav.expanded = false;
							//
						}
					);
					this.object.appendChild(all);
				}
			}
	}
	
	this.generateId = function(el) {
		return this.title + BSC.constants.idSeparator + el.name;
	}

	this.show = function(n){

		if(this.object == null)return false;

		this.object.innerHTML = "";
		if(this.data == null)return false;

		//Expressções de reposição
		var nameReg = new RegExp("\\[NAME\\]","g");
		var countReg = new RegExp("\\[COUNT\\]","g");
		var aspasReg = new RegExp("\"","g");

		var box = document.createElement("div");
		var title = document.createElement("div");
		var list = document.createElement("ul");
		$(list).attr("class","bsc_navegador_lista");
		$(title).attr("class","bsc_navegador_titulo");
		title.innerHTML = this.title;

		if(n == null) {
			if(this.expanded) {
				n = this.data.navigatorElements.length
			} else {
				n = this.maxElementsLimit;
			}
		}

		var params = this.getParams(n);
		var init = params.init;
		var end = params.end;

		for(var i=init; i<end; i++){
			var el = this.data.navigatorElements[i];

			if(this.onlyFormated){
				if(!this.inFormatList(el.name))continue;
				//if(this.inBlackList(el.name))continue;
			}
			
			elementId = this.generateId(el);
			
			var checked = false;
			if(this.stateControl) {
				checked = BSC.isInCheckedList(elementId); 
			}
			var navElementStyle = BSC.styleManager.getNavElementStyle(checked);
			var linkElementStyle = BSC.styleManager.getLinkElementStyle(checked);
			
			var li = document.createElement("li");			
      $(li).attr("class",navElementStyle);		
			var a = document.createElement("a");
			$(a).attr("class",linkElementStyle);
			a.setAttribute("bsc_filter_name",this.data.modifier);
			a.setAttribute("bsc_element_name",this.getFormat(el.name));
			a.setAttribute("bsc_crumb_name",this.title);
			a.setAttribute("bsc_navElement_id",elementId);      
			a.setAttribute("bsc_state_control",this.stateControl);  
			a.setAttribute("href","#");
			// Modificação para homolog
			var modifier = el.modifier+"";
			modifier = modifier.replace(aspasReg,"");
			a.setAttribute("bsc_filter_value",modifier);
			
			$(a).css("cursor","pointer");

			if(BSC.userAgent.appName == "Netscape"){
				a.setAttribute("onclick","BSC.actionListener(this,event)");
			}else{
				$(a).click(
					function(){
						BSC.actionListener($(this),event);
						
					}
				);
			}   
      if((BSC.subnivel.at=="true")&& (document.getElementById(BSC.subnivel.alvo).style.display =="none")){			
        $('#' + BSC.subnivel.alvo+' li').removeClass('BSC.constants.style.navigatorElementChecked ').addClass(BSC.constants.style.navigatorElement);
  		}				                     
			var tmp = this.template.replace(nameReg,this.getFormat(el.name));
			tmp = tmp.replace(countReg,BSC.util.formatNumber(el.count));
			a.innerHTML = tmp.replace(/NULL/gi, 'Outros'); 
			li.appendChild(a);
			list.appendChild(li);      
		}

		this.object.innerHTML = "";
		box.appendChild(title);
		box.appendChild(list);
		this.object.appendChild(box);     
    if((box.innerHTML.indexOf(BSC.constants.style.customFormElementChecked)!=-1) && (BSC.subnivel.at=="true")){
      BSC.subnivel.f.exibe(BSC.subnivel.sub)
      this.showLimiter(end);
    }
    
		// ver todos
		this.showLimiter(end);
		
	}

	this.formatList = new Array();

	this.getFormat = function(name){
		for(var i=0; i<this.formatList.length;i++){
			if(name == this.formatList[i][0])return this.formatList[i][1];
		}
		return name;
	}
	
	this.inFormatList = function(name){
		for(var i=0; i<this.formatList.length;i++){
			if(name == this.formatList[i][0])return true;
		}
		return false;
	}
	
	this.inBlackList = function(name){
		for(var i=0; i<this.blackList.length;i++){
			if(name == this.blackList[i])return true;
		}
		return false;
	}  
}

BSC.layout.select = function(id){
	this.title = "Nova Lista";
	this.data = null;
	this.object = document.getElementById(id) || null;


	this.show = function(){
		if(this.object == null)return false;

		var title = document.createElement("div");
		var select = document.createElement("select");

		title.innerHTML = this.data.modifier;

		for(var i=0; i<this.data.navigatorElements.length; i++){
			var el = this.data.navigatorElements[i];

			var option = document.createElement("option");

			option.innerHTML = el.name;

			select.appendChild(option);
		}

		if(this.data.navigatorElements.length == 1){
			select.setAttribute("disabled","true");
		}

		this.object.innerHTML = "";
		this.object.appendChild(title);
		this.object.appendChild(select);
	}
}

BSC.layout.table = function(id,cols){
	this.title = "Nova Lista";
	this.data = null;
	this.cols = cols || 3;
	this.colsList = new Array();

	this.object = document.getElementById(id) || null;


	this.show = function(){
		if(this.object == null)return false;

		var table = document.createElement("table");
		table.setAttribute("border","1");
		$(table).attr("border","1");


		var linha = document.createElement("tr");

		var tot = this.data.navigatorElements.length;
		var maxCols = parseInt(tot /this.cols);

		var n = 0;

		for(var i=0; i<this.cols;i++){
			var col = document.createElement("td");
			var j = 0;
			while(j<maxCols && n<tot){
				var d = document.createElement("div");
				d.innerHTML = this.data.navigatorElements[n].name;
				col.appendChild(d);
				n++;
				j++;
			}

			linha.appendChild(col);
		}


		this.object.innerHTML = "";
		table.appendChild(linha);
		this.object.innerHTML = "<table border='1'>"+table.innerHTML+"</table>";
		//this.object.appendChild(table);
	}
}

BSC.additionalHTML = {};
BSC.additionalHTML.dateForm = '<form>' +
	'<div id="BSCdateForm">' +
	'<input type="hidden" name="stateControl" value="[STATE_CONTROL]" />' +
	'<input type="hidden" name="elementId" value="[ELEMENT_ID]" />' + 
	'De:<input type="text" name="dateStart" maxlength="10" size="8" class="botao_data" />' +
	'&nbsp;Até:<input type="text" name="dateEnd" maxlength="10" size="8" class="botao_data" />' +
	'&nbsp;<input style="width: auto;" type="button" class="button" onclick="BSC.util.dateForm.setDateNavigator(this,event);" value="Ok" />' +
	'</div>' +
	'</form>';

BSC.layout.dateNavigator = function(id) {
	this.displayName = "";
	this.filterName = "";
	this.parentObject = document.getElementById(id) || null;
	this.listItems = new Array();
	this.elementClass = "";
	this.listClass = "";
	this.titleClass = "";
	this.title = "";
	this.isLoaded = false;
	this.repaint = true;
	this.regElementId = new RegExp("\\[ELEMENT_ID\\]","g");
	this.regStateControl = new RegExp("\\[STATE_CONTROL\\]","g");
	this.stateControl = false;
	
	this.addItem = function(item) {
		this.listItems.push(item);
	}
	
	this.generateId = function(el) {
		return this.filterName + BSC.constants.idSeparator + el.elementName;
	}
	
	this.show = function() {
		if(this.isLoaded && !this.repaint) return;
		
		this.parentObject.innerHTML = "";
		
		this.title = this.title || document.createElement("div");
		$(this.title).attr("class",this.titleClass);
		this.title.innerHTML = this.displayName;
		
		this.parentObject.appendChild(this.title);
		
		this.itemsContainer = document.createElement("ul");
		$(this.itemsContainer).attr("class",this.listClass);
		for ( var i = 0; i < this.listItems.length; i++) {
			var item = this.listItems[i];
			
			var li = document.createElement("li");
			var elementClass = item.elementClass || this.elementClass;
			$(li).attr("class",elementClass);
			var a = document.createElement("a");
			a.innerHTML = item.elementName;
			var elementId = this.generateId(item);
			
			var checked = false;
			if(this.stateControl) {
				checked = BSC.isInCheckedList(elementId);
			}
			var navElementStyle = BSC.styleManager.getNavElementStyle(checked);
			var linkElementStyle = BSC.styleManager.getLinkElementStyle(checked);
			$(li).attr("class",navElementStyle);
			
			if((item.noLink == undefined || item.noLink == false) || (item.removalLink && BSC.isInCheckedList(elementId))) {
				$(a).attr("class",linkElementStyle);
				
				$(a).attr("bsc_filter_name",this.filterName);
				$(a).attr("bsc_element_name",item.elementName);
				$(a).attr("bsc_crumb_name",this.displayName);
				$(a).attr("bsc_filter_value",item.filterValue);
				$(a).attr("bsc_crumb_type",item.crumbType);
				$(a).attr("bsc_navElement_id",elementId);
				$(a).attr("bsc_state_control",this.stateControl);
				
				$(a).css("cursor","pointer");
				if(BSC.userAgent.appName == "Netscape"){
					a.setAttribute("onclick","BSC.actionListener(this,event)");
				}else{
					$(a).click(
						function(){
							BSC.actionListener($(this),event);
						}
					);
				}                                          
			}
			
			li.appendChild(a);			
			if(item.additionalHTML) {
				var customFormStyle = BSC.styleManager.getCustomFormStyle(checked);
				var additionalHTML = document.createElement("div");
				//$(additionalHTML).attr("id",style);
				$(additionalHTML).attr("class",customFormStyle);
				var temp = item.additionalHTML.replace(this.regElementId,elementId);
				temp = temp.replace(this.regStateControl,this.stateControl);
				additionalHTML.innerHTML = temp;
				
				BSC.util.date.formatMask($(additionalHTML).find("[@name=dateStart]"));
				BSC.util.date.formatMask($(additionalHTML).find("[@name=dateEnd]"));
				BSC.util.dateForm.setFieldNavigator($(additionalHTML).find("form"));
				
				li.appendChild(additionalHTML);
			}
			
			this.itemsContainer.appendChild(li); 
		}
		this.parentObject.appendChild(this.itemsContainer);
		this.isLoaded = true;
	}   
}

//**********ativa ou desativa os subníveis**************//
BSC.subnivel.sub = "none";         
BSC.subnivel.at ="false";      
BSC.subnivel.alvo = 'none'
BSC.subnivel.fil = 'none' 
BSC.subnivel.f = {
  exibe: function(orig, dest){
  alvo = BSC.subnivel.alvo;  
  BSC.subnivel.f.mostra(orig) 
  $(".bsc_navegador_elemento_click a:contains('"+ BSC.subnivel.sub +"')").click(
    function(){                                           
        BSC.subnivel.f.esconde(alvo);
      }
    )  
  },
  mostra: function(orig){                             
    xz = document.getElementsByTagName('*');
    for(x=0;x<xz.length;x++){                                                                           
        if((xz[x].className == "bsc_navegador_elemento_click")&&(xz[x].innerHTML.indexOf(orig)!=-1)&&(xz[x].parentNode.parentNode.parentNode.className =="bsc_nav")){
        document.getElementById(alvo).style.display="block";  
      }   
    }   
  },
  esconde: function(alvo){
      document.getElementById(alvo).style.display="none";     
  }                           
}
-->