//adicionando algumas funções uteis ao objeto array
Array.prototype.inArray = function (value){
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
}		
Array.prototype.deleta = function (value){
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			this[i]=""
		}
	}
	return false;
}





//algumas variaveis globais/////////////////////////////////
var executar=true;

navegador = navigator.appName;
var resolucaoHorizontal = screen.width
var resolucaoVertical 	= screen.height


var lupaX=0
var lupaY=0

var flutuarLupa = false
var imagemLupaHeight = 0
var imagemLupaWidth = 0


function trocaFocoLupa(quem, legenda, flutuarLupa){

	if(typeof(quem)=='string'){
		quem=document.getElementById(quem)
	}

	if(flutuarLupa==undefined){
		flutuarLupa=true;
	}
	
	newImg = new Image();
	//a função pode ser adicionada a uma imagem (src) ou a um link (href)
	
	if(! quem.src){
		document.getElementById("imagemLupa").src=quem.href
		newImg.src = quem.href;
	}else{
		document.getElementById("imagemLupa").src=quem.src
		newImg.src = quem.src;
	}
	
	document.getElementById("lupaimgtitle").innerHTML=legenda
	imagemLupaHeight = newImg.height;
	imagemLupaWidth = newImg.width;
		
	
	//pegamos a nossa div
	divLupa=document.getElementById("divLupaFlutuante");
	
	//onMouseOver{flutuarLupa = true, onMouseOut{flutuarLupa=false
	if(flutuarLupa){
		
		if(divLupa.style.display=="none"){
			divLupa.style.display="block"
		}
				
		//damos a div o comprimento exato em pixels da imagem
		lupaWidth=imagemLupaWidth;
		lupaHeigth=(imagemLupaHeight+20);
				
		
		//setamos o tamanho
		divLupa.style.width=lupaWidth+"px"
		divLupa.style.height=(lupaHeigth+10)+"px"
		
		//se a imagem ultrapassar as bordas do monitor temos que posicionar a imagem a esquerda do mouse, caso contrario a direita
		if(mouseXPosition+imagemLupaWidth+30 < resolucaoHorizontal){
			lupaX = (mouseXPosition) + 30;
		}else{
			lupaX = (mouseXPosition-imagemLupaWidth)-30
		}
		
		/*tentamos deixar a lupa bem no maio da janela: temos que pensar que no
		scrooltop retorna a posição atual da barra de rolagem da pagina
		resolução vertical é a resolução da tela do cliente
		imagemLupaHeight é a altura da imagem a ser exibira
		104 é uma estimativa do tamanho da barra de ferramentas do cliente, esta que come um pouco da resolução vertical
		*/
		
		//document.body.scrollTop // window.scrollY
		lupaY = (document.documentElement.scrollTop + ((resolucaoVertical/2)-((imagemLupaHeight)/2))) -104//document.body.scrollTop;//mouse.pageY
				
		//setamos as coordenadas da div
		divLupa.style.left = (lupaX+"px");
		divLupa.style.top = (lupaY+"px");
				
	}else{
		if(divLupa.style.display=="block"){
			divLupa.style.display="none"
		}	
	}		
}







		
//ESTA ARRAY VAI ARMAZENAR UMA SÉRIE DE FUNÇÕES A SEREM EXECUTADAS POR EVAL ATRAVÉS DA FUNÇÃO GETMOUSECORDINATES
funcoesDoMouseMove=new Array();
funcoesDoMouseMove[0]='a';

//ESTA FUNÇÃO VAI CAPTURAR AS COORDENADAS DO MOUSE E EXECUTAR AS FUNÇÕES QUE ESTIVEREM DENTRO DA ARRAY FUNCOESDOMOUSEMOVE ATRAVÉS DE EVAL		
if (!navegador=="Microsoft Internet Explorer") {
	document.captureEvents(Event.MOUSEMOVE)
}
document.onmousemove = getMouseCordinates;

var mouseXPosition = 0;
var mouseYPosition = 0;
	
function getMouseCordinates(e) {
	if (navegador=="Microsoft Internet Explorer") { 
		//se for o internet destroyer......
		mouseXPosition = event.clientX + document.body.scrollLeft;
		mouseYPosition = event.clientY + document.body.scrollTop;
	}else {  
		//se for um navegador que preste
		mouseXPosition = e.pageX;
		mouseYPosition = e.pageY;
	}  
	if (mouseXPosition < 0){mouseXPosition = 0;}
	if (mouseYPosition < 0){mouseYPosition = 0;}  
				
	//executar as funções da array
	for(a=0; a<funcoesDoMouseMove.length; a++){
		eval(funcoesDoMouseMove[a]);
	}			
}
		
		
//adicionar uma função a lista
function addFunctionToMouse(funcao){
	funcoesDoMouseMove[funcoesDoMouseMove.length]=funcao
}
//remover uma função da lista
function removeFunctionToMouse(funcao){
	funcoesDoMouseMove.deleta(funcao)
}
		
		
		
function drag(id){
	document.getElementById(id).style.top=mouseYPosition -5 +"px"
	document.getElementById(id).style.left=mouseXPosition -5 +"px"
}
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////

function POSTpopup() { 
	var myW = window.open("","myW","height=400,width=500,scrollbars=yes,resizable=yes,statusbar=yes,menubar=yes,toolbar=yes,dependent=yes") 
} 





/*esta função ira adicionar linhas a uma tabela
dois parametros: 
	1° o index row da linha que ficara atrás da nova linha
	2° o id da tabela, parametro opicional que por padrão sera 'tabela'	

a funcão detalhaTrs será escrita dentro da propria pagina em questão, ela vai dizer quantas <tds e seu conteudo
*/
function adiciona_linha(afrentede, quetabela, funcao){
	if(funcao == undefined){
		funcao = DETELHACOLUNAS	
	}
	
	if(quetabela === undefined){
		quetabela="tabela"	
	}

	if(Nde_LINHAS<limitePREdefinido){
			
		Nde_LINHAS++
			
		tbl = document.getElementById(quetabela)
			
		if(afrentede==0){
			var novaLinha = tbl.insertRow(-1);
		}else{
			var novaLinha = tbl.insertRow(afrentede+1);
		}
 			
		funcao(novaLinha, quetabela);
		
	}else{
			
		alert("Desculpe, mas você não pode exceder o limite de " +limitePREdefinido+" itens");
	}	
}



/*
remove ira remover linhas de uma tabela, (esta relacionada com a função acima)
tem dois parametros:
	1° a linha a ser removida
	2° o id da tabela opicional que por padrão se chama 'tabela'
*/	
	
function remove(linha, quetabela){
	if(quetabela === undefined){
		quetabela="tabela"	
	}
	
	
	Nde_LINHAS--;
	
   	document.getElementById(quetabela).deleteRow(linha)
}




///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function showPopupMenu(ID, DISPLAY){
	document.getElementById(ID).style.display=DISPLAY
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*(estas duas funções estão relacionadas com a função php listarSubCategoriasEcategorias)*/
function recolocarOPCOES(quem, indice, categoriasArray, subCategoriaArray){
	
	categorialist=quem.name
	
	LISTA=document.getElementById("sub"+categorialist);
	removeOPCOES(LISTA)
	
		
	for(b=0; b<categoriasArray[indice].length; b++){
		
		var opcao = document.createElement("OPTION");
		theText=document.createTextNode(categoriasArray[indice][b]);
		opcao.appendChild(theText);
		opcao.value = subCategoriaArray[indice][b];
		LISTA.appendChild(opcao);
	}
}


function removeOPCOES(LISTA){
	LISTA.innerHTML=''
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*esta função cria um contador de caracteres para campos de texto*/
function contadorDeCaracteres(objeto, lengthmax){
	//numero de caracteres do campo de texto
	caractereslength=objeto.value.length;
	//a div deve ser nomeada com o nome do campo de texto +'div'
	divPERCENT=document.getElementById(objeto.name+'div');
	
	percentagem=( caractereslength / lengthmax ) * 100
	
	if(percentagem<=100){
		divPERCENT.style.width= percentagem+"%"
		divPERCENT.style.backgroundColor="#0066FF"
	}else{
		divPERCENT.style.width="100%"
		divPERCENT.style.backgroundColor="#FF0000"
		
	}
	
	divPERCENT.innerHTML = caractereslength+"/"+lengthmax
	
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function mudaHIDDENvalue(indice, quetabela){
	
	
	if(quetabela === undefined){
		quetabela="tabela"	
	}
	nDeTrs++; tbl = document.getElementById(quetabela);
	elementos=tbl.rows[indice].getElementsByTagName("input");
	elementos[0].value = '0';
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function showHideDiv(id){
	var DIVA=document.getElementById(id);
	
	if(DIVA.style.display== 'none'){
		DIVA.style.display= 'block';
	}else{
		DIVA.style.display= 'none';
	}

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////



/*Esta função fara com que links passem variaveis por post ao criar um form na pagina e submete-lo
a idéia é esconder as variaveis do usuario, apesar de que ficarão visiveis no codigo fonte de uma maneira ou de outra.

Uma propriedade da tag <a é o 'hrflang', muito pouco usada, aqui é utilizada de bode espiatorio para passar nossas variaveis sem
aparecerem na barra de status do usuario.
*/
function postLink(MEULINK){
		
	hreflang=MEULINK.hreflang
			
	//se o links tiver um "?" é por que esta passando variaveis então:
	if(hreflang.indexOf("?")>0){
		
		//explodimos a propriedade hreflang que esta carregando o link...
		hreflangArray=hreflang.split("?")
		//e deste split obtemos o destino e as variaveis
		destino=hreflangArray[0];
		variaveis=hreflangArray[1].split("&")
		//preparamos o formulario
		formExtruture="<form action=\""+destino+"\" method=\"post\" enctype=\"multipart/form-data\" target=\"_self\" name=\"linkPOSTform\" id=\"linkPOSTform\" >"
	
		//vamos armazenar as variaveis em hidden fields	
		for(var a=0; a<variaveis.length; a++){
				explodevar=variaveis[a].split("=")
				formExtruture+="<input type='hidden' name='"+explodevar[0]+"' value='"+explodevar[1]+"' />"
		}
		//acabamos de escrever o form
		formExtruture+="</form>"
		
		//posteiro é a Id de uma div que deve ja estar na pagina onde iremos escrever o formulario
		document.getElementById('Posteiro').innerHTML=formExtruture
		//damos um submit e variaveis mandadas, fim .......
		FORMposteiro=document.getElementById("linkPOSTform")
		FORMposteiro.submit()
	
	}else{
		//se não estiver passando variavel nenhuma simplesmente damos um location.href e fim de papo
		destino	=MEULINK.hreflang
		
		location.href=destino;
	}
}
/////////////////////////////////////////////////////////////////////////
//simplesmente abre uma janela popup/////////////////////////////////////


function popup(endereco, comprimento, altura){
	if(comprimento==undefined){
		comprimento=720	
	}
	if(altura==undefined){
		altura=380	
	}
	window.open(endereco, "page", "toolbar=no, location=no, status=no, menubar=no, scrollbars=no, resizable=no, width="+comprimento+", height="+altura);	
}
