/*********************************SOMAI TOOL-KIT***********************************/


/**********************************************************************************/
/***                            OBTEM ELEMENTO PELO ID                          ***/
/**********************************************************************************/
var $ID = function (id) { return document.getElementById(id) }


/**********************************************************************************/
/***     VARRE A ARVORE XHTML A PARTIR DO [node] PASSADO, EXECUTANDO [func]     ***/ 
/***     E PASSANDO O NODE ATUAL COMO ARGUMENTO PARA CADA NODE ENCONTRADO       ***/
/**********************************************************************************/
var passeandoPeloDOM = function (node, func) {
	func(node);
	node = node.firstChild;
	while(node) {
		this.passeandoPeloDOM(node, func);
		node = node.nextSibling;
	}
}

/**********************************************************************************/
/***     RETORNA TODOS OS ELEMENTOS COM UMA ESPECIFICA CLASSE EM UMA ARRAY		***/
/***     				( REQUER [passeandoPeloDOM()] )							***/
/***     AUTOR : RAFAEL CORREIA											        ***/
/***     rafael.ja.tinha@gmail.com										        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 $CLASS("class",[elementoRaiz : opcional])								***/
/***	 																		***/
/***	 Se o elementoRaiz for omitido, a funcao comecara a varrer a arvore		***/
/***	 a partir do [document.body	]											***/
/**********************************************************************************/
var $CLASS = function (classe, node) {
	var classe = classe,
		node = node || document.body,
		result = [];
	this.passeandoPeloDOM (node, function (node) {
		var classes = node.className,
			c,
			i;
		if (classes) {
			c = classes.split(' ');
			for (i = 0; i < c.length; i += 1) {
				if (classe === c[i]) {
					result.push(node);
					break;
				}
			}
		}
	});
	
	return result;
}

/**********************************************************************************/
/***     ADICIONA UM EVENTO USANDO O METODO W3C, PARA FUNCIONAR EM TODOS        ***/
/***     OS NAVEGADORES DA MESMA FORMA									        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 addEvent(objeto, string: Evento, funcao)								***/
/***	 remonveEvent(objeto, string: Evento, funcao)							***/
/**********************************************************************************/
function addEvent(obj, sEvt, func, bCapt) {
	window.attachEvent ? 
		obj.attachEvent("on"+sEvt, func) 
	:
		obj.addEventListener(sEvt, func, bCapt || false);
}

function removeEvent(obj, sEvt, func, bCapt) {
	window.attachEvent ? 
		obj.detachEvent("on"+sEvt, func)
	:
		obj.removeEventListener(sEvt, func, bCapt || false);
}


/**********************************************************************************/
/***     CRIA UM OBJETO [XHR], PARA FUNCIONAR EM TODOS 					        ***/
/***     OS NAVEGADORES DA MESMA FORMA									        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 var req = new 	XMLHTTPRequest()										***/
/***     PROPRIEDADES E METODOS:												***/
/***	 req.open (string : TIPO DE CGI, string : URL, boolean : true)			***/
/***	 req.send(null)															***/
/***	 req.readyState (vai de 1 a 4, sendo 1 = "conectando" e 4 = "recebido")	***/
/***	 req.responseText (valor retornado pelo endereco)						***/
/**********************************************************************************/
function XMLHTTPRequest() {
  try {
        return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...
  } catch(ee) {
        try {
          return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+)
        } catch(e) {
          try {
                return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1)
          } catch(E) {
                return false; // doesn't support
          }
        }
  }
}


/**********************************************************************************/
/***     								FADE FX									***/
/***     APLICA O EFEITO FADE NO OBJETO PASSADO (cross-browser)					***/
/***     AUTOR : RAFAEL CORREIA											        ***/
/***     rafael.ja.tinha@gmail.com										        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 $FADE([obj], [string : direcao("in"/"out")], [number : duracao])		***/
/**********************************************************************************/

var $FADE = function (obj, direcao, time) {
	var obj = obj, delay = Math.ceil(time / 25), countIni, countFim, algorit, add, visibility;
	
	if(direcao == 'in') {
		countIni = 0; countFim = 100; add = 5; visib = 'visible';
	}
	else {
		countIni = 100; countFim = 0; add = -5;  visib = 'hidden';
	}
	
	function fade () {
		var opacidade = countIni ;
		obj.style.opacity = (opacidade * .01);
		obj.style.filter = 'alpha(opacity=' + opacidade + ')';
		if (countIni == countFim) {
			obj.style.visibility = visib;
		}
		else {
			countIni += add;
			window.setTimeout(fade, delay);
		}
	}
	window.setTimeout(fade, delay);
}
/**********************************************************************************/
/***     						   JAVASRCIPT LOADER							***/
/***     CRIA UM NOVO ELEMENTO [script] CONFORME A NESSECIDADE (cross-browser)	***/
/***     AUTOR : RAFAEL CORREIA											        ***/
/***     rafael.ja.tinha@gmail.com										        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 var scrip = new $_LOADJS([id],[class])									***/
/***																			***/
/***	METODOS:																***/
/***	scrip.addScript(string : src)											***/
/***	scrip.append()															***/
/**********************************************************************************/
function $_LOADJS(id, classe) {
	var container = document.createElement('DIV');
	container.id = id || '';
	container.classe = classe || '';
	this.container = container;
}

$_LOADJS.prototype.addScript = function(source) {
	if(source && (typeof source).toUpperCase() == 'STRING') {
		 var script = document.createElement('SCRIPT');
		 script.type = 'text/javascript';
		 script.src = source;
		 this.container.appendChild(script);
	}
}

$_LOADJS.prototype.append = function() {
	if (this.container.childNodes.length > 0) {
		document.body.appendChild(this.container);
	}
}

/**********************************************************************************/
/***                        FUNÇÂO TRIM (Igual a do PHP)                        ***/
/**********************************************************************************/
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


/**********************************************************************************/
/***                                POP-UP 					        			***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 popUp(Elemento, Largura, Altura, top, left, [Url])						***/
/**********************************************************************************/

function popUp(node, x, y, top, left, url) {
	var url = node.href || url,
		x = x,
		y = y,
		top = top,
		left = left;
	node.onclick = function() {
		window.open(
			url,
			"_blank",
			"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, top="+top+", left="+left+", width="+x+", height="+y
		);
		return false;
	}
}

/**********************************************************************************/
/***                           CHAMADA DOS SCRIPTS                              ***/
/**********************************************************************************/


addEvent(window,'load', function(){						 
	
	var js = new $_LOADJS('scripts');
	
	if($ID('data_e_hora')) {									//INSERE DATA E HORA
		js.addScript('js/data-Relogio.js');
	}

	if($ID('banner_sindicalize')) {								//TROCA OS BANNERS (Object, Number, Array)
		js.addScript('js/slideBanner.js');
	}

	if($ID('col_principal_dir')) {								// TROCAS AS IMAGENS DO NO ESTADO HOVER
		js.addScript('js/noticiasHover.js');
	}
	
	if($ID('rss_content')) {									// CHAMA RSS POR AJAX 
		js.addScript('js/ajaxRss.js');
	}
	
	if($ID('form_assoc')) {										//VALIDA A FICHA DE INCRICAO
		js.addScript('js/capturaEndereco.js');
		js.addScript('js/x-validation.js');
	}
	
	if($ID('legis_content')) {									// MOSTRA E ESCONDE O CONTEUDO
		js.addScript('js/showHideContent.js');
	}

	if($ID('legis_content')) {									// MOSTRA E ESCONDE O CONTEUDO
		js.addScript('js/showHideContent.js');
	}

	if($ID('enquete')) {									// MOSTRA E ESCONDE O CONTEUDO
		js.addScript('js/ajaxForm.js');
		popUp($ID("enq_bt_ver"), 400, 300, 100, 100);
	}
	
	js.append();
	
	if($CLASS('galeria_fotos')) {	
			$('.galeria_fotos a').lightBox();
	}
})
