// ONLOAD
	// uso -> arOnload.push('findimg');
	var arOnload = new Array();
	var wol = window.onload;
	window.onload = function(){
		if (wol) wol.call();
		if (arOnload) {for (var i in arOnload) {arOnload[i].call();}}
		delete arOnload;
	}
	arOnload.push(findimg);

// HOVER DE IMAGENS
	var sufixoImgOver = '_ov';
	var classToOver = 'roll';
	var classDown = 'down';

	function roll(o,state){
		var i,isnode,src,ftype,newsrc,nownode;
		// loop através de todos os childNodes
		for (i=0;i<o.childNodes.length;i++){
			nownode = o.childNodes[i];
			// se o nó é um elemento
			// e é uma IMG, muda a variável e sai do loop
			if(nownode.nodeType==1 && /img/i.test(nownode.nodeName)){
				isnode = i;
				break;
			}
		}  // verifica o src e faz o roll-over
		if (o.locked){
			//o.locked from submenu.js
			return;
		}
		src = o.childNodes[isnode].src;
		ftype = src.substring(src.lastIndexOf('.'), src.length);
		if (state == 'over' && o.state != state) {
			//set over
			newsrc = src.replace(ftype, sufixoImgOver+ftype);
		} else if(o.state == 'over') {
			//set up
			newsrc = src.replace(sufixoImgOver,'');
		}
		if (newsrc) {
			o.state = state;
			o.childNodes[isnode].src=newsrc;
		}
	}
	function findimg(){
		var imgs,i;  // Faz um loop através de todas as imagens
		//verificando se alguma delas contém a classe da var 'classToOver'
		imgs=document.getElementsByTagName('img');
		for(i=0;i<imgs.length;i++){
			if(eval('/'+classDown+'/').test(imgs[i].className)) {
				roll(imgs[i].parentNode,'over');
			}
			if(eval('/'+classToOver+'/').test(imgs[i].className)) {
				// adiciona a função roll ao elemento-pai da imagem
				imgs[i].parentNode.onmouseover=function(){roll(this,'over'); };
				imgs[i].parentNode.onmouseout=function(){roll(this,'up');};
				imgs[i].parentNode.onfocus=function(){roll(this,'over');};
				imgs[i].parentNode.onblur=function(){roll(this,'up');};
			}
		}
	}
/*
DOWN
<script>
	var mnprodDown = id('id DOM da imagem');
	roll(mnprodDown.parentNode,'over');
	mnprodDown.parentNode.locked = true;
</script>
*/

//uso -> id("id_dom").value
	function id(idDesc){return document.getElementById(idDesc);}

	var hClosed = 0;
	var intervalOpen;
	var objMotion;

	function openClose(divId){
		var ele = document.getElementById(divId);
		
		for(var i = 0; i<ele.childNodes.length; i++) {
			if (ele.childNodes[i].nodeName=='DIV') {
				//achou nó principal de informação
				var nodeInfo = ele.childNodes[i];
				break;
			}
		}
		if (nodeInfo != null) {
			if (objMotion!= null) {
				//finaliza movimento anterior
				clearInterval(intervalOpen);
				objMotion.style.height = objMotion.hEnd+'px';
				objMotion.open = (objMotion.hEnd > hClosed)? true : false;
			}
			if (ele.open) {
				//fecha
				objMotion = ele;
				objMotion.atualHeight = ele.offsetHeight;
				objMotion.hEnd = hClosed;
				intervalOpen = setInterval(anima,50);
			} else {
				//abre
				objMotion = ele;
				objMotion.atualHeight = ele.offsetHeight;
				objMotion.hEnd = nodeInfo.offsetHeight;
				intervalOpen = setInterval(anima,100);
			}
		}
	}

	function anima(){
		//abre 1 // fecha -1
		var dir = (objMotion.hEnd>objMotion.atualHeight)? 1 : -1;
		var difH = (objMotion.hEnd-objMotion.atualHeight)*dir;
		var hInc = Number(difH*0.3);
		if (hInc<=1) {
			//encerra movimento
			objMotion.style.height = objMotion.hEnd+'px';
			clearInterval(intervalOpen);
			objMotion.open = (dir>0)? true : false;
		} else {
			//incrementa animação
			var num = Math.round(objMotion.atualHeight+hInc*dir)
			objMotion.atualHeight = num;
			objMotion.style.height = num+'px';
		}
	}
