/*var input_escolhido_anterior=new Array();
window.onload=function(){
	validar_formulario();
}*/

/**
 * Esta é a função principal para abrir um popup com todas as possibilidades.
 * É preferível utilizar as sub-funções com menos parametros que dão resultados
 * mais específicos
 *
 * @name sistema_popupLink
 * @author Marco Pereira
 * @version 0.3 2010/09/08
 *
 * @param id (String) ID dos elementos de popup
 * @param url (String) Link do site que vai ser incluido na Frame
 * @param tipo (Enum) Define se é do tipo Ajax, Frame ou Conteudo
 * @param fundo (Bool) Define se o conteúdo por tras da Frame é impossível de clicar antes de o popup desaparecer
 * @param comprimento (Int) Comprimento da Frame
 * @param altura (Int) Altura da Frame
 * @param alinhamentoX (String=centro) Posicionamento horizontal da Frame em relação à janela. Opções disponíveis sao: [centro], esquerda, direita
 * @param alinhamentoY (String=centro) Posicionamento vertical da Frame em relação à janela. Opções disponíveis sao: [centro], cima, baixo
 * @param deslocamentoX (Int) Deslocamento horizontal adicional
 * @param deslocamentoY (Int) Deslocamento vertical adicionar
 * @param scroll (Bool) Mostrar as barras de scroll da Frame caso este valor seja true
 * @param cursor (Bool) Posicionamento em relação à posição do cursor. Caso este valor seja falso alinha em relação à pagina
 * @param mover (Bool) Caso seja true reposiciona o conteudo na posição do cursor constantemente
 * @param enquadramento (Enum=normal [normal, cortar, saltar]) Define o tipo de enquadramento do objecto. colar=mantem o conteudo dentro dos limites da janela, saltar=posiciona o conteudo no local oposto do cursor, normal=nao efectua reposicionamento
 *
 * @return NULL
 *
 * @todo Definir o posicionamento horizontal e vertical de forma independente quando se activa a opção mover
 * @todo Verificar se o scroll aparece em todos os browsers e se dá para o desactivar correctamente
 * @todo Criar uma forma de fazer um fade
 */
function sistema_popupAvancado(id,url,tipo,fundo,comprimento,altura,alinhamentoX,alinhamentoY,deslocamentoX,deslocamentoY,scroll,cursor,mover,enquadramento){
	var erro=false;
	var conteudo;
	var opacidade;
	
	//Valida os dados introduzidos
	if(tipo!="ajax" && tipo!="frame" && tipo!="html"){erro=true;}
	if(erro==false){
		//Se não houver nenhum erro então executa a função sem problema
		//Começa por validar os dados introduzidos
		if(fundo!==true){fundo=false;}
		if(!alinhamentoX || (alinhamentoX!="esquerda" && alinhamentoX!="direita" && alinhamentoX!="centro")){alinhamentoX="centro";}
		if(!alinhamentoY || (alinhamentoY!="cima" && alinhamentoY!="baixo" && alinhamentoX!="centro")){alinhamentoY="centro";}
		if(!deslocamentoX){deslocamentoX=0;}
		if(!deslocamentoY){deslocamentoY=0;}
		if(cursor!==true){cursor=false;}
		if(scroll===true){scroll="auto";} else {scroll="hidden";}
		if(enquadramento!="colar" && enquadramento!="saltar"){enquadramento="normal";}
		if(mover!==true){mover=false;}

		//Cria o objecto modal caso este seja verdadeiro
		if(fundo===true){
			fundo=document.createElement("div");
			fundo.style.zIndex="20000";
			fundo.style.left=0;
			fundo.style.top=0;
			fundo.style.backgroundColor=CFG_JAVA_COR_FUNDO;
			fundo.id="__popupFundo_" + id;
		}

		//Cria o objecto de conteudo e define os seus conteudos
		if(tipo=="frame"){
			conteudo=document.createElement("iframe");
			conteudo.src=url;
			conteudo.style.background=CFG_JAVA_COR_FRAME;
		} else {
			conteudo=document.createElement("div");
			conteudo.style.background=CFG_JAVA_COR_FRAME;
		}

		if(comprimento>0){conteudo.style.width=comprimento;}
		if(altura>0){conteudo.style.height=altura;}

		conteudo.style.zIndex="20001";
		conteudo.style.overflow=scroll;
		conteudo.id="__popupConteudo_" + id;
		conteudo.deslocamentoX=parseInt(deslocamentoX);
		conteudo.deslocamentoY=parseInt(deslocamentoY);
		conteudo.cursor=cursor;
		conteudo.enquadramento=enquadramento;
		conteudo.mover=mover;
		conteudo.funcao=new Function("sistema_popupAlinhar('__popupConteudo_" + id + "')");
		conteudo.funcaoFundo=new Function("sistema_popupRedimensionarFundo('__popupFundo_" + id + "')");
		
		//Define parametros específicos para cada browser
		if(sistema_browser()=="ie" || sistema_browser()=="ie7+"){
			//Definições para Internet Explorer
			opacidade=CFG_JAVA_OPACIDADE_FUNDO;

			//FUNDO ////////////////////////////////////////////////////////////
			if(fundo!==false){
				//Desactiva o scroll
				document.body.scroll="no";

				//Define o tamanho do fundo
				fundo.style.width=document.body.clientWidth;
				fundo.style.height=document.body.clientHeight;
				fundo.style.filter="alpha(opacity=" + opacidade + ")";
				fundo.style.position="absolute";

				//Adiciona o Fundo ao site
				document.body.appendChild(fundo);
				conteudo.funcaoFundo();
				setTimeout(conteudo.funcao(),100);

				//Adiciona os eventos de redimensionar o fundo
				sistema_adicionarEvento(window,"resize",conteudo.funcaoFundo);

				//Remove o fundo quando faz clique
				sistema_adicionarEvento(fundo,"click",function(){
					sistema_removerEvento(window,"resize",conteudo.funcao);
					sistema_removerEvento(window,"scroll",conteudo.funcao);
					sistema_removerEvento(window,"resize",conteudo.funcaoFundo);
					document.body.removeChild(fundo);
					document.body.removeChild(conteudo);
					document.body.scroll="yes";
					if(conteudo.mover===true){
						sistema_removerEvento(document.body,"mousemove",conteudo.funcao);
					}
				});
			}

			//CONTEUDO /////////////////////////////////////////////////////////
			conteudo.style.position="absolute";
		} else {
			//Definições para os restantes browsers
			opacidade=CFG_JAVA_OPACIDADE_FUNDO/100;
			//FUNDO ////////////////////////////////////////////////////////////
			if(fundo!==false){
				fundo.style.width=window.innerWidth-(window.outerWidth-window.innerWidth)-1;
				fundo.style.height=window.innerHeight;
				fundo.style.opacity=opacidade;
				fundo.style.position="fixed";

				//Adiciona o Fundo ao site
				document.body.appendChild(fundo);
				conteudo.funcaoFundo();

				//Adiciona os eventos de redimensionar o fundo
				sistema_adicionarEvento(window,"resize",conteudo.funcaoFundo);

				//Remove o fundo quando faz clique
				sistema_adicionarEvento(fundo,"click",function(){
					sistema_removerEvento(window,"resize",conteudo.funcao);
					sistema_removerEvento(window,"scroll",conteudo.funcao);
					document.body.removeChild(fundo);
					document.body.removeChild(conteudo);
					if(conteudo.mover===true){
						sistema_removerEvento(document.body,"mousemove",conteudo.funcao);
					}
				});
			}

			//CONTEUDO /////////////////////////////////////////////////////////
			if(cursor===true){
				conteudo.style.position="absolute";
			} else {
				conteudo.style.position="fixed";
			}
		}

		if(alinhamentoX=="centro"){
			conteudo.alinhamentoX="centro";
		} else if(alinhamentoX=="esquerda"){
			conteudo.alinhamentoX="esquerda";
		} else if(alinhamentoX=="direita"){
			conteudo.alinhamentoX="direita";
		}

		//Calcular a posição vertical de acordo com os parametros
		if(alinhamentoY=="centro"){
			conteudo.alinhamentoY="centro";
		} else if(alinhamentoY=="cima"){
			conteudo.alinhamentoY="cima";
		} else if(alinhamentoY=="baixo"){
			conteudo.alinhamentoY="baixo";
		}

		//Adiciona o Conteudo ao site
		document.body.appendChild(conteudo);
		if(tipo=="ajax"){
			this.ajax=new Ajax();
			this.ajax.lerPagina(conteudo.id,url,"","GET",false,false,true,true);
		} else if(tipo=="html"){
			conteudo.innerHTML=url;
		}

		//Adicionar o reposicionamento caso seja necessário
		if(cursor!==true){
			sistema_adicionarEvento(window,"resize",conteudo.funcao);
			sistema_adicionarEvento(window,"scroll",conteudo.funcao);
		} else {
			if(mover===true && tipo!="frame"){
				sistema_adicionarEvento(window,"resize",conteudo.funcao);
				sistema_adicionarEvento(window,"scroll",conteudo.funcao);
				sistema_adicionarEvento(document.body,"mousemove",conteudo.funcao);
			}
		}

		if(tipo=="frame"){
			sistema_adicionarEvento(conteudo,"load",function(){
				try{
					if(comprimento>0 && !isNaN(comprimento)){
						conteudo.style.width=comprimento;
					} else {
						conteudo.style.width=conteudo.contentDocument.body.scrollWidth;
					}
					if(altura>0 && !isNaN(altura)){
						conteudo.style.height=altura;
					} else {
						conteudo.style.height=conteudo.contentDocument.body.scrollHeight;
					}
					conteudo.funcao();
				} catch(e){
					if(comprimento>0 && !isNaN(comprimento)){
						conteudo.style.width=comprimento;
					} else {
						conteudo.style.width=500;
					}

					if(altura>0 && !isNaN(altura)){
						conteudo.style.height=altura;
					} else {
						conteudo.style.height=500;
					}
					
					conteudo.funcao();
				}
			});
		} else {
			if(comprimento>0 && !isNaN(comprimento)){
				conteudo.style.width=comprimento;
			} else {
				conteudo.style.width="";
			}
			if(altura>0 && !isNaN(altura)){
				conteudo.style.height=altura;
			} else {
				conteudo.style.height="";
			}
			conteudo.funcao();
		}
	} else {
		//Caso haja algum erro mostra uma mensagem
		alert("O tipo de popup tem que ser 'ajax', 'frame' ou 'html'");
	}
}

/**
 * Abre um popup de um Link numa Frame
 *
 * @name sistema_popupFrame
 * @author Marco Pereira
 * @version 0.3 2010/09/08
 *
 * @param id (String) ID do elemento de popup
 * @param url (String) Link do site que vai ser incluido na Frame
 * @param comprimento (Int=500) Comprimento da Frame
 * @param altura (Int=500) Altura da Frame
 * @param alinhamentoX (String=centro) Posicionamento horizontal da Frame em relação à janela. Opções disponíveis sao: [centro], esquerda, direita
 * @param alinhamentoY (String=centro) Posicionamento vertical da Frame em relação à janela. Opções disponíveis sao: [centro], cima, baixo
 * @param deslocamentoX (Int) Deslocamento horizontal adicional
 * @param deslocamentoY (Int) Deslocamento vertical adicionar
 * @param scroll (Bool) Mostrar as barras de scroll da Frame caso este valor seja true
 *
 * @return NULL
 */
function sistema_popupFrame(id,url,comprimento,altura,alinhamentoX,alinhamentoY,deslocamentoX,deslocamentoY,scroll){
	sistema_popupAvancado(id, url, "frame", true, comprimento, altura, alinhamentoX, alinhamentoY, deslocamentoX, deslocamentoY, scroll, false, false, "normal");
}

/**
 * Abre um popup de um Link através de AJAX num DIV
 *
 * @name sistema_popupAjax
 * @author Marco Pereira
 * @version 0.3 2010/09/08
 *
 * @param id (String) ID do elemento de popup
 * @param url (String) Link do ficheiro que vai ser incluido no div
 * @param modal (Bool) Criar um fundo de forma a impedir que se seleccione as opções por tras do popup
 * @param comprimento (Int) Comprimento do DIV
 * @param altura (Int) Altura do DIV
 * @param alinhamentoX (String=centro) Posicionamento horizontal do DIV em relação à janela. Opções disponíveis sao: [centro], esquerda, direita
 * @param alinhamentoY (String=centro) Posicionamento vertical do DIV em relação à janela. Opções disponíveis sao: [centro], cima, baixo
 * @param deslocamentoX (Int) Deslocamento horizontal adicional
 * @param deslocamentoY (Int) Deslocamento vertical adicionar
 * @param scroll (Bool) Mostrar as barras de scroll do DIV caso este valor seja true
 * @param cursor (Bool) Criar o popup no local do cursor
 * @param mover (Bool) Reposicionar constantemente o DIV em relação ao cursor
 * @param enquadramento (Enum=normal) Método de enquadramento quando o conteudo excede os limites da janela. Opções disponíveis são: [normal], colar, saltar
 *
 * @return NULL
 */
function sistema_popupAjax(id,url,modal,comprimento,altura,alinhamentoX,alinhamentoY,deslocamentoX,deslocamentoY,scroll,cursor,mover,enquadramento){
	sistema_popupAvancado(id, url, "ajax", modal, comprimento, altura, alinhamentoX, alinhamentoY, deslocamentoX, deslocamentoY, scroll, cursor, mover, enquadramento);
}

/**
 * Abre um popup de um Link através de AJAX num DIV
 *
 * @name sistema_popupHtml
 * @author Marco Pereira
 * @version 0.3 2010/09/08
 *
 * @param id (String) ID do elemento de popup
 * @param conteudo (String) Codigo HTML que vai formar o conteudo do popup
 * @param alinhamentoX (String=centro) Posicionamento horizontal do DIV em relação à janela. Opções disponíveis sao: [centro], esquerda, direita
 * @param alinhamentoY (String=centro) Posicionamento vertical do DIV em relação à janela. Opções disponíveis sao: [centro], cima, baixo
 * @param deslocamentoX (Int) Deslocamento horizontal adicional
 * @param deslocamentoY (Int) Deslocamento vertical adicionar
 * @param cursor (Bool) Criar o popup no local do cursor
 * @param mover (Bool) Reposicionar constantemente o DIV em relação ao cursor
 * @param enquadramento (Enum=normal) Método de enquadramento quando o conteudo excede os limites da janela. Opções disponíveis são: [normal], colar, saltar
 *
 * @return NULL
 */
function sistema_popupHtml(id,conteudo,alinhamentoX,alinhamentoY,deslocamentoX,deslocamentoY,cursor,mover,enquadramento){
	sistema_popupAvancado(id,conteudo,"html",false,"","",alinhamentoX,alinhamentoY,deslocamentoX,deslocamentoY,false,cursor,mover,enquadramento);
}

/**
 * Remove um popup, fundo e respectivos eventos associados
 *
 * @name sistema_popupRemover
 * @author Marco Pereira
 * @version 0.1 2010/09/07
 *
 * @param id (String) ID do popup a eliminar
 *
 * @return NULL
 */
function sistema_popupRemover(id){
	var objectoConteudo;
	var objectoFundo;
	if(document.getElementById("__popupConteudo_" + id)){
		objectoConteudo=document.getElementById("__popupConteudo_" + id);
		sistema_removerEvento(window,"resize",objectoConteudo.funcao);
		sistema_removerEvento(window,"scroll",objectoConteudo.funcao);
		if(objectoConteudo.mover===true){
			sistema_removerEvento(document.body,"mousemove",objectoConteudo.funcao);
		}
		if(objectoConteudo.funcaoFundo){
			sistema_removerEvento(window,"resize",objectoConteudo.funcao);
		}
		document.body.removeChild(objectoConteudo);

	}

	if(document.getElementById("__popupFundo_" + id)){
		objectoFundo=document.getElementById("__popupFundo_" + id);

		if(sistema_browser()=="ie" || sistema_browser()=="ie7+"){
			document.body.scroll="yes";
		}
		document.body.removeChild(objectoFundo);
	}
}


/**
 * Alinha um popup de acordo com as opções definidas no momento da sua criação
 *
 * @name sistema_popupAlinhar
 * @author Marco Pereira
 * @version 0.3 2010/09/08
 *
 * @param id (String) ID do objecto de conteudo
 *
 * @return NULL
 *
 * @todo Reparar os bugs de posicionamento das frames no internet explorer
 * @todo tentar melhorar o método de reposicionamento quando excede os limites por causa do deslocamentoX e Y da janela tanto no IE como no Firefox
 */
function sistema_popupAlinhar(id){
	var objecto=document.getElementById(id);
	var comprimento=parseInt(objecto.style.width);
	var altura=parseInt(objecto.style.height);
	if(isNaN(comprimento)){
		comprimento=objecto.clientWidth;
	}
	if(isNaN(altura)){
		altura=objecto.clientHeight;
	}

	if(sistema_browser()=="ie" || sistema_browser()=="ie7+"){
		//Caso o reposicionamento seja no cursor
		if(objecto.cursor===true){
			// ### HORIZONTAL ##################################################
			//Detectar que tipo de alinhamento vai fazer
			if(objecto.alinhamentoX=="esquerda"){
				//Se o alinhamento for à esquerda
				if((window.posX-comprimento+objecto.deslocamentoX)<0){
					if(objecto.enquadramento=="colar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo cola-o ao limite da janela
						objecto.style.left=document.body.scrollLeft;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo reposiciona antes à direita
						objecto.style.left=window.posAbsX-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-comprimento+objecto.deslocamentoX;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona à esquerda
					objecto.style.left=window.posAbsX-comprimento+objecto.deslocamentoX;
				}
			} else  if(objecto.alinhamentoX=="direita"){
				//Se o alinhamento for à direita
				if((window.posX+comprimento)>(document.body.clientWidth-objecto.deslocamentoX)){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=document.body.clientWidth-comprimento+window.pageXOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado direito reposiciona antes à esquerda
						objecto.style.left=window.posAbsX-comprimento-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX+objecto.deslocamentoX;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona à direita
					objecto.style.left=window.posAbsX+objecto.deslocamentoX;
				}
			} else {
				//Se o alinhamento for ao centro
				if((window.posX+(comprimento/2))>(document.body.clientWidth-objecto.deslocamentoX)){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=document.body.clientWidth-comprimento;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado direito reposiciona antes à esquerda
						objecto.style.left=window.posAbsX-comprimento-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
					}
				} else if((window.posX-(comprimento/2)+objecto.deslocamentoX)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=0;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo reposiciona antes à direita
						objecto.style.left=window.posAbsX+(objecto.deslocamentoX*-1);
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
					}
				} else {
					//Centra o conteudo na posição do cursor
					objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
				}
			}

			// ### VERTICAL ####################################################
			if(objecto.alinhamentoY=="cima"){
				//Se o alinhamento for acima
				if((window.posY-altura+objecto.deslocamentoY)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=document.body.scrollTop;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado de cima reposiciona antes abaixo
						objecto.style.top=window.posAbsY-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-altura+objecto.deslocamentoY;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona acima
					objecto.style.top=window.posAbsY-altura+objecto.deslocamentoY;
				}
			} else  if(objecto.alinhamentoY=="baixo"){
				//Se o alinhamento for abaixo
				if((window.posY+altura+objecto.deslocamentoY)>document.body.clientHeight){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=document.body.clientHeight-altura+document.body.scrollTop;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapassa a janela pelo lado de baixo reposiciona antes acima
						objecto.style.top=window.posAbsY-altura-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY+objecto.deslocamentoY;
					}
				} else {
					//Caso o conteu nao ultrapasse a janela posiciona abaixo
					objecto.style.top=window.posAbsY+objecto.deslocamentoY;
				}
			} else {
				//Se o alinhamento for ao centro
				if((window.posY-(altura/2)+objecto.deslocamentoY)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=document.body.scrollTop;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado de cima reposiciona antes abaixo
						objecto.style.top=window.posAbsY-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
					}
				} else if((window.posY+(altura/2)+objecto.deslocamentoY)>document.body.clientHeight){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=document.body.clientHeight-altura+document.body.scrollTop;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapassa a janela pelo lado de baixo reposiciona antes acima
						objecto.style.top=window.posAbsY-altura-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
					}
				} else {
					//Centra o conteudo na posição do cursor
					objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
				}
			}
		} else {
			if(objecto.alinhamentoX=="esquerda"){
				objecto.style.left=objecto.deslocamentoX+document.body.scrollLeft;
			} else if(objecto.alinhamentoX=="direita"){
				objecto.style.left=document.body.clientWidth-comprimento+document.body.scrollLeft;
			} else {
				objecto.style.left=(document.body.clientWidth/2)-(comprimento/2)+document.body.scrollLeft;
			}

			if(objecto.alinhamentoY=="cima"){
				objecto.style.top=objecto.deslocamentoY+document.body.scrollTop;
			} else if(objecto.alinhamentoY=="baixo"){
				objecto.style.top=document.body.clientHeight-altura+document.body.scrollTop;
			} else {
				objecto.style.top=(document.body.clientHeight/2)-(altura/2)+document.body.scrollTop;
			}
		}
	} else {
		//Caso o reposicionamento seja no cursor
		if(objecto.cursor===true){
			// ### HORIZONTAL ##################################################
			//Detectar que tipo de alinhamento vai fazer
			if(objecto.alinhamentoX=="esquerda"){
				//Se o alinhamento for à esquerda
				if((window.posX-comprimento+objecto.deslocamentoX)<0){
					if(objecto.enquadramento=="colar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo cola-o ao limite da janela
						objecto.style.left=window.pageXOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo reposiciona antes à direita
						objecto.style.left=window.posAbsX-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-comprimento+objecto.deslocamentoX;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona à esquerda
					objecto.style.left=window.posAbsX-comprimento+objecto.deslocamentoX;
				}
			} else  if(objecto.alinhamentoX=="direita"){
				//Se o alinhamento for à direita
				if((window.posX+comprimento)>(((window.innerWidth-(window.outerWidth-window.innerWidth)))-1)-objecto.deslocamentoX){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=((window.innerWidth-(window.outerWidth-window.innerWidth)))-1-comprimento+window.pageXOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado direito reposiciona antes à esquerda
						objecto.style.left=window.posAbsX-comprimento-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX+objecto.deslocamentoX;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona à direita
					objecto.style.left=window.posAbsX+objecto.deslocamentoX;
				}
			} else {
				//Se o alinhamento for ao centro
				if((window.posX+(comprimento/2))>(((window.innerWidth-(window.outerWidth-window.innerWidth)))-1)-objecto.deslocamentoX){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=((window.innerWidth-(window.outerWidth-window.innerWidth)))-1-comprimento;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado direito reposiciona antes à esquerda
						objecto.style.left=window.posAbsX-comprimento-objecto.deslocamentoX;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
					}
				} else if((window.posX-(comprimento/2)+objecto.deslocamentoX)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.left=0;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado esquerdo reposiciona antes à direita
						objecto.style.left=window.posAbsX+(objecto.deslocamentoX*-1);
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
					}
				} else {
					//Centra o conteudo na posição do cursor
					objecto.style.left=window.posAbsX-(comprimento/2)+objecto.deslocamentoX;
				}
			}

			// ### VERTICAL ####################################################
			if(objecto.alinhamentoY=="cima"){
				//Se o alinhamento for acima
				if((window.posY-altura+objecto.deslocamentoY)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=window.pageYOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado de cima reposiciona antes abaixo
						objecto.style.top=window.posAbsY-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-altura+objecto.deslocamentoY;
					}
				} else {
					//Caso o conteudo nao ultrapasse a janela posiciona acima
					objecto.style.top=window.posAbsY-altura+objecto.deslocamentoY;
				}
			} else  if(objecto.alinhamentoY=="baixo"){
				//Se o alinhamento for abaixo
				if((window.posY+altura+objecto.deslocamentoY)>(window.innerHeight-1)){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=window.innerHeight-1-altura+window.pageYOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapassa a janela pelo lado de baixo reposiciona antes acima
						objecto.style.top=window.posAbsY-altura-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY+objecto.deslocamentoY;
					}
				} else {
					//Caso o conteu nao ultrapasse a janela posiciona abaixo
					objecto.style.top=window.posAbsY+objecto.deslocamentoY;
				}
			} else {
				//Se o alinhamento for ao centro
				if((window.posY-(altura/2)+objecto.deslocamentoY)<0){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=window.pageYOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapasse a janela pelo lado de cima reposiciona antes abaixo
						objecto.style.top=window.posAbsY-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
					}
				} else if((window.posY+(altura/2)+objecto.deslocamentoY)>(window.innerHeight-1)){
					if(objecto.enquadramento=="colar"){
						objecto.style.top=window.innerHeight-1-altura+window.pageYOffset;
					} else if(objecto.enquadramento=="saltar"){
						//Caso o conteudo ultrapassa a janela pelo lado de baixo reposiciona antes acima
						objecto.style.top=window.posAbsY-altura-objecto.deslocamentoY;
					} else {
						//Deixa ultrapassar os limites da janela
						objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
					}
				} else {
					//Centra o conteudo na posição do cursor
					objecto.style.top=window.posAbsY-(altura/2)+objecto.deslocamentoY;
				}
			}
		} else {
			if(objecto.alinhamentoX=="esquerda"){
				objecto.style.left=objecto.deslocamentoX+window.pageXOffset;
			} else if(objecto.alinhamentoX=="direita"){
				objecto.style.left=window.outerWidth-(window.outerWidth-window.innerWidth)-comprimento;
			} else {
				objecto.style.left=((window.outerWidth-(window.outerWidth-window.innerWidth))/2)-(comprimento/2);
			}

			if(objecto.alinhamentoY=="cima"){
				objecto.style.top=objecto.deslocamentoY;
			} else if(objecto.alinhamentoY=="baixo"){
				objecto.style.top=window.innerHeight-altura;
			} else {
				objecto.style.top=(window.innerHeight/2)-(altura/2);
			}
		}
	}

	/**************************************************************************/
	/*document.getElementById("mouse_posX").innerHTML=window.posX;
	document.getElementById("mouse_posY").innerHTML=window.posY;
	document.getElementById("mouse_posAbsX").innerHTML=window.posAbsX;
	document.getElementById("mouse_posAbsY").innerHTML=window.posAbsY;
	document.getElementById("window_innerWidth").innerHTML=window.innerWidth;
	document.getElementById("window_innerHeight").innerHTML=window.innerHeight;
	document.getElementById("window_outerWidth").innerHTML=window.outerWidth;
	document.getElementById("window_outerHeight").innerHTML=window.outerHeight;

	document.getElementById("obj_left").innerHTML=objecto.style.left;
	document.getElementById("obj_top").innerHTML=objecto.style.top;
	document.getElementById("obj_comprimento").innerHTML=comprimento;
	document.getElementById("obj_altura").innerHTML=altura;
	document.getElementById("obj_width").innerHTML=objecto.style.width;
	document.getElementById("obj_height").innerHTML=objecto.style.height;
	document.getElementById("obj_clientWidth").innerHTML=objecto.clientWidth;
	document.getElementById("obj_clientHeight").innerHTML=objecto.clientHeight;*/
	/**************************************************************************/
	//alert("deslocamentoX: " + objecto.deslocamentoX + "\ndeslocamentoY: " + objecto.deslocamentoY + "\ncomprimento: " + comprimento + "\naltura: " + altura + "\nalinhamentoX: " + objecto.alinhamentoX + "\nalinhamentoY: " + objecto.alinhamentoY + "\ncursor: " + objecto.cursor + "\nLeft: " + objecto.style.left + "\nTop: " + objecto.style.top + "\ninnerWidth: " + objecto.innerWidth + "\ninnerHeight: " + objecto.innerHeight + "\nouterWidth: " + objecto.outerWidth + "\nouterHeight: " + objecto.outerHeight + "\nclientWidth: " + objecto.clientWidth + "\nclientHeight: " + objecto.clientHeight);
}

/**
 * Redimensiona o objecto de fundo para ficar do tamanho da janela actual
 *
 * @name sistema_popupRedimensionarFundo
 * @author Marco Pereira
 * @version 0.9 2010/09/08
 *
 * @param id (String) ID do objecto de fundo
 *
 * @return NULL
 *
 * @todo Melhorar o método de detecção do browser ou até mesmo remover esta opção
 */
function sistema_popupRedimensionarFundo(id){
	var objecto=document.getElementById(id);
	if(sistema_browser()=="ie" || sistema_browser()=="ie7+"){
		objecto.style.width=document.body.clientWidth;
		objecto.style.height=document.body.clientHeight;
		objecto.style.left=document.body.scrollLeft;
		objecto.style.top=document.body.scrollTop;
	} else {
		objecto.style.width=window.innerWidth-(window.outerWidth-window.innerWidth)-1;
		objecto.style.height=window.innerHeight;
	}
}

/*function sistema_popupModalMostrar(){
	var blur=document.getElementById('__popupModalBlur');
	var frame=document.getElementById('__popupModalFrame');

	var opacidadeBlur=0;
	var opacidadeFrame=0;
	var incremento=10;
	var maxOpacidade=70;

	var fade=setInterval(function(){
		if(sistema_browser()=="ie"){
			if(opacidadeBlur<maxOpacidade){
				blur.style.filter='alpha(opacity='+opacidadeBlur+')';
				opacidadeBlur=opacidadeBlur+incremento;
			}

			if(opacidadeFrame<1 && opacidadeBlur>=maxOpacidade){
				frame.style.filter='alpha(opacity='+opacidadeFrame+')';
				opacidadeFrame=opacidadeFrame+incremento;
			}

			if(opacidadeFrame>=1){
				frame.style.filter='alpha(opacity=100)';
				blur.style.filter='alpha(opacity='+maxOpacidade+')';
				clearInterval(fade);
			}
		} else {
			if(opacidadeBlur<(maxOpacidade/100)){
				blur.style.opacity=opacidadeBlur;
				opacidadeBlur=opacidadeBlur+(incremento/100);
			}

			if(opacidadeFrame<1 && opacidadeBlur>=(maxOpacidade/100)){
				frame.style.opacity=opacidadeFrame;
				opacidadeFrame=opacidadeFrame+(incremento/100);
			}

			if(opacidadeFrame>=1){
				frame.style.opacity=1;
				blur.style.opacity=(maxOpacidade/100);
				clearInterval(fade);
			}
		}
	},10);
}

function sistema_popupModalRemover(){
	var blur=document.getElementById('__popupModalBlur');
	var frame=document.getElementById('__popupModalFrame');

	var opacidadeBlur=70;
	var opacidadeFrame=100;
	var incremento=10;

	var fade=setInterval(function(){
		if(sistema_browser()=="ie"){
			if(opacidadeFrame>0){
				frame.style.filter='alpha(opacity='+opacidadeFrame+')';
				opacidadeFrame=opacidadeFrame-incremento;
			}

			if(opacidadeFrame<=0 && opacidadeBlur>0){
				blur.style.filter='alpha(opacity='+opacidadeBlur+')';
				opacidadeBlur=opacidadeBlur-incremento;
			}

			if(opacidadeBlur<=0){
				document.body.removeChild(document.getElementById('__popupModalBlur'));
				document.body.removeChild(document.getElementById('__popupModalFrame'));
				document.body.scroll="yes";
				clearInterval(fade);
			}
		} else {
			if(opacidadeFrame>0){
				frame.style.opacity=opacidadeFrame/100;
				opacidadeFrame=opacidadeFrame-incremento;
			}

			if(opacidadeFrame<=0 && opacidadeBlur>0){
				blur.style.opacity=opacidadeBlur/100;
				opacidadeBlur=opacidadeBlur-incremento;
			}

			if(opacidadeBlur<=0){
				document.body.removeChild(document.getElementById('__popupModalBlur'));
				document.body.removeChild(document.getElementById('__popupModalFrame'));
				clearInterval(fade);
			}
		}
	},10);
}*/
