//*****************************************************************************
// File:    Functions_W3C.js
// Purpose: This file has the library of the w3C compability functions.
// Functions
// ----------------------------------------------------------------------------
// 
//*****************************************************************************
// Author   Date       Comments
// -------- ---------- --------------------------------------------------------
// Carlos F 2009-03-05 Creation of the file.
//*****************************************************************************


/*****************************************FUNCTIONS TO CONVERT TO MULTIBROWSER**********************************/

//função para criar objectos xml e xmlhttp
function W3CNewObject(strObjectName)
{
    var obj;
    var version = window.navigator.appVersion.charAt(22);
    var name = window.navigator.appName.charAt(0);
 
    if (strObjectName == 'xmlhttp') 
    {                  
        if(version == 6 && name == 'M')
        {
            try{obj = new ActiveXObject('MSXML2.XMLHTTP');}catch(e){try{obj = new ActiveXObject('MSXML.XMLHTTP');}catch(e){obj = new ActiveXObject('Microsoft.XMLHTTP');}}                             
        }
        else
        {
            if (typeof XMLHttpRequest == "undefined") XMLHttpRequest = function() 
            {
                try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch (e) { }
                try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch (e) { }
                try { return new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { }
                try { return new ActiveXObject("Microsoft.XMLHTTP") } catch (e) { }
                throw new Error("This browser does not support XMLHttpRequest.");
            }
            else 
            {
                obj = new XMLHttpRequest;
            }
        }           
    }
    else 
    {
        if (strObjectName == 'xml') 
        {
 
            try //Internet Explorer
            {
                obj = new ActiveXObject("MSXML2.DomDocument");
                obj.async = false;
            }
            catch (e) 
            {
                try //Internet Explorer
                {
                    obj = new ActiveXObject("Microsoft.XMLDOM");
                    obj.async = false;
                }
                catch (e) 
                {
                    try //Internet Explorer
                    {
                        obj = new ActiveXObject("Microsoft.DomDocument");
                        obj.async = false;
                    }
                    catch (e) 
                    {
                        try //Firefox, Mozilla, Opera, etc.
                        {
                            obj = document.implementation.createDocument("","",null);
                            obj.async = false;
                        }
                        catch (e) 
                        {
                            alert(e.message);
                        }
                    }
                }
            }
        }
    }
    
    return obj;
}

//função para efectuar load de ficheiros xml
function W3CXMLLoad(varobj , strxml)
{
	if(window.ActiveXObject)
	{//if internet explorer
	
		varobj.loadXML(strxml);
	}
	else
	{//if mozilla firefox and mac safari
	
		parser=new DOMParser();
    	varobj=parser.parseFromString(strxml,"text/xml");
	}

	return varobj;
}

//função para efectuar load de ficheiros xslt
function W3CXSLLoad(varobj , strxsl)
{
	if(window.ActiveXObject)
	{//if internet explorer
		varobj.loadXML(strxsl);
	}
	else
	{//if mozilla firefox and mac safari
	
		parser=new DOMParser();
    	varobj=parser.parseFromString(strxsl,"text/xml");
	}

	return varobj;
}

//função para obter as transformações de objectos xml com xsl
function W3CNodeTransform(oxml,oxsl)
{
	var obj;
		
	if(window.ActiveXObject)
  	{//if internet explorer
  	
		obj=oxml.transformNode(oxsl);
	}
	else
	{//if mozilla firefox and mac safari
	
		xsltProcessor=new XSLTProcessor();
  		xsltProcessor.importStylesheet(oxsl);
  		//obj = xsltProcessor.transformToDocument(oxml);
  		obj = xsltProcessor.transformToDocument(oxml, document);			
	}

	return obj; 	
}

//função para devolver a listagem de xml de objectos
function W3CXMLList(obj)
{
   var x=obj;
   var str='';



   if(!window.ActiveXObject)
   {//if not internet explorer
   
   		while (x!= null)
   		{
			if (x.nodeType != 3 && x.nodeType != 9)
			{
					str= str + '<' +  x.nodeName + ' ';
	       			
	       			if (x.hasAttributes())
					{
						y = x.attributes;
	                    	
						for (i=0; i < y.length; i++)
		    			{          
							str = str + y.item(i).nodeName + "='" + y.item(i).nodeValue + "' "; 
		    			}		
					}
					
					str = str + '>';
			
			    
			}
			
			if (x.nodeValue != null && x.nodeValue != '' ) 
			{
				str = str + x.nodeValue;
			}
	
			if (x.hasChildNodes()) 
			{
				x = x.firstChild; 
			}
			else 
			{
				if (x.nextSibling!=null) 
				{
					if (x.nodeType != 3 && x.nodeType != 9) str= str + '</' +  x.nodeName + '>';
						x=x.nextSibling; 
				}
				else 
				{
					if (x.nodeType != 3 && x.nodeType != 9)	str= str + '</' +  x.nodeName + '>';
						x = x.parentNode;
					if (x.nodeType != 3 && x.nodeType != 9) str= str + '</' +  x.nodeName + '>';
						x = x.nextSibling;
				}
			}
   		}
   	
		return str;
   }
   else
   {//if internet explorer
		return obj.xml;
   }	
   
}

/*****************************************FUNCTIONS TO CONVERT TO MULTIBROWSER**********************************/


//*****************************************************************************
// File:    /rfx/includes/gerais/geral.js
// Purpose: 
// Functions
// ----------------------------------------------------------------------------
//
//*****************************************************************************
// Author   Date       Comments
// -------- ---------- --------------------------------------------------------
// ?
// JGP/V    2004.07.28 Changed to accept "es.*".
// TN       2005.01.06 Correcção de problemas com selecção de dias
// TN       2005.01.06 permite clickar no botão direito na encomenda de 
//						forma a poder gravar ficheiros (problemas dos dwg)
//*****************************************************************************


//BF_20070712_BEGIN
//Variavel Global JScript para verificar o loginAS
var intLoginAs;
//BF_20070712_END
var intCertificateLogin;
intCertificateLogin=99;
var strHlgeral;
var strHost = document.location.host.toLowerCase()
// JGP/V 2004.07.28 - Changed to accept es.*.
//if (strHost=='es.econstroi.com'){
if (strHost.indexOf("https://es.") == 0)
{
// JGP/V 2004.07.28 - End.
	strHlgeral = 1;
}
else
{
	strHlgeral = 0;
}

//função para criar objectos xml e xmlhttp
function CreateObject(strObjectName)
{	
	var obj;
	if (strObjectName=='xmlhttp'){
		try{obj = new ActiveXObject('MSXML2.XMLHTTP');}catch(e){try{obj = new ActiveXObject('MSXML.XMLHTTP');}catch(e){obj = new ActiveXObject('Microsoft.XMLHTTP');}}
	}else{
		if (strObjectName=='xml'){
			try{obj = new ActiveXObject('MSXML2.DomDocument');obj.async = false;}catch(e){try{obj = new ActiveXObject('MSXML.DomDocument');obj.async = false;}catch(e){obj = new ActiveXObject('Microsoft.DomDocument');obj.async = false;}}
		}
	}
	return obj;
}


/*function W3CNewObject(strObjectName){
	var obj
	if (strObjectName=='xmlhttp')
	{
		try{obj =  W3CNewObject('xmlhttp');}
		catch(e){
			try{obj =  W3CNewObject('xmlhttp');}
			catch(e){obj =  W3CNewObject('xmlhttp');}
				}
	}
	else
	{
		if (strObjectName=='xml')
		{
			try{obj =  W3CNewObject('xml');obj.async = false;}
			catch(e){
			try{obj =  W3CNewObject('xml');obj.async = false;}
			catch(e){obj =  W3CNewObject('xml');obj.async = false;}
			}
		}
	}
	return obj;
}*/


//esta funcao verifica se uma data é superior a outra
//caso uma das datas não esteja preenchida retorna sempre false
function DataMaior(sNomeDataInferior,sNomeDataSuperior,sNomeFormulario)
{
	return DataMaiorEx(sNomeDataInferior,sNomeDataSuperior,sNomeFormulario,0);
}

//função para validar guids
function fnValidaGuid(id)
{

	if(id.charAt(0) != '{')
	{
		id = '{' + id + '}';
	}
	
	return(id);
}


//esta funcao verifica se uma determinada data é superior a outra num número dado de dias
function DataMaiorEx(sNomeDataInferior,sNomeDataSuperior,sNomeFormulario,iNumDias){
	var oDataInferior=eval('document.'+sNomeFormulario+'.'+sNomeDataInferior);
	var oDataSuperior=eval('document.'+sNomeFormulario+'.'+sNomeDataSuperior);
	var oAnoInferior=eval('document.'+sNomeFormulario+'.'+sNomeDataInferior+'_ANO');
	var oAnoSuperior=eval('document.'+sNomeFormulario+'.'+sNomeDataSuperior+'_ANO');
	var oMesInferior=eval('document.'+sNomeFormulario+'.'+sNomeDataInferior+'_MES');
	var oMesSuperior=eval('document.'+sNomeFormulario+'.'+sNomeDataSuperior+'_MES');
	var oDiaInferior=eval('document.'+sNomeFormulario+'.'+sNomeDataInferior+'_DIA');
	var oDiaSuperior=eval('document.'+sNomeFormulario+'.'+sNomeDataSuperior+'_DIA');
	//verificar se alguma das datas é vazia
	if(oAnoInferior.value.length!=4)
		return true;
	if(oAnoSuperior.value.length!=4)
		return true;
	
	//criar objectos de datas de javascript
	//TN 2005.01.06 Correcção de problemas com selecção de dias
	if (oDiaInferior.value==""){
		var dtInferior = new Date(oAnoInferior.value, oMesInferior.value - 1,oDiaInferior.options[oDiaInferior.selectedIndex].text);
	}
	else{	
		var dtInferior = new Date(oAnoInferior.value, oMesInferior.value - 1,oDiaInferior.value);
	}
	if (oDiaSuperior.value==""){
		var dtSuperior = new Date(oAnoSuperior.value, oMesSuperior.value - 1,oDiaSuperior.options[oDiaSuperior.selectedIndex].text);
	}
	else{	
		var dtSuperior = new Date(oAnoSuperior.value, oMesSuperior.value - 1,oDiaSuperior.value);
	}
	//TN 2005.01.06 fim
	
	var dtTeste=new Date(dtInferior.getFullYear,dtInferior.getMonth,dtInferior.getDay+iNumDias);

	return dtInferior<dtSuperior;
}

//esta funcao constroi automaticamente um array com todos
//os campos de um form
function FormModalConstroiArray(oForm){
	var arrValores = new Array(oForm.elements.length);
	for(var i=0;i<oForm.elements.length;i++){
		arrValores[i] = new Array(2);
		arrValores[i][0]=oForm.elements[i].name;
		if(oForm.elements[i].type=='radio'){
			if(oForm.elements[i].checked){
				arrValores[i][1]=oForm.elements[i].value;
			}else{
				arrValores[i][1]='';
			}
		}else{
			arrValores[i][1]=oForm.elements[i].value;
		}
	}
	return arrValores;
}

//esta funcao serve para submeter forms de janelas modais
//os campos devem ser retornados num array bidimensional
//dev ser indicado o div que vai conter os hiddens e o formulario
function FormModal(oDivCampos,oForm,sLink,sArgsIn,sOptions){
	var arrValores;

	arrValores = window.showModalDialog(sLink,sArgsIn,sOptions);

	if(typeof(arrValores)!='object')
		return false;
	
	var oXML =  W3CNewObject('xml');
	oXML.async=false;
	oXML = W3CXMLLoad(oXML,'<input type="hidden" name="" value=""/>');
	
	for(var i=0;i<arrValores.length;i++){
		if(arrValores[i][1]!=''){
			oXML.documentElement.attributes(1).text=arrValores[i][0];
			oXML.documentElement.attributes(2).text=arrValores[i][1];
			oDivCampos.innerHTML += oXML.documentElement.xml;
		}
	}
	
	oXML=null;
	oForm.submit();
	return true;
}

//esta funcao verifica se a string passada por parametro é uma email válido
function VerificaMail(str){						
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)|( )");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}

//esta função permite abrir e fechar o div passado por parametro
//adicionalmente, se existir um gif como primeira tag e esta função
//estiver associada ao evento onclick imediatamente antes do gif,
//este muda entre menos e mais
function OnMinRestoreClick(oDivBody,sImageSrcMinus,sImageSrcPlus,hrefId)
{
	if(window.ActiveXObject)
	{//if internet explorer
	
		var varProp;

		if (oDivBody.style.display == "none")
		{
			var e;
			oDivBody.style.display = "";
			
			try
			{
				if(sImageSrcMinus=='')
				{
					document.activeElement.children.item(0).src = "includes/images/minus.gif";
				}
				else
				{
					document.activeElement.children.item(0).src = sImageSrcMinus;
				}
				if(strHlgeral==0)
				{
					document.activeElement.children.item(0).title = '';
				}
				else
				{
					document.activeElement.children.item(0).title = '';
				}
			}
			catch(e){}
			try
			{
				oDivBody.setAttribute("aberto","sim");
				oDivBody.save(oDivBody.id);
			}
			catch(e){}	
		}
		else
		{
			var e;
			oDivBody.style.display = "none";
			
			try
			{
				if(sImageSrcPlus=='')
				{
					document.activeElement.children.item(0).src = "includes/images/plus.gif";
				}
				else
				{
					document.activeElement.children.item(0).src = sImageSrcPlus;
				}
				if(strHlgeral==0)
				{
					document.activeElement.children.item(0).title = '';
				}
				else
				{
					document.activeElement.children.item(0).title = '';
				}
			}
			catch(e){}
			try
			{
				oDivBody.setAttribute("aberto","nao");
				oDivBody.save(oDivBody.id);
			}catch(e){}	
		}
	}
	else
	{//if mozilla firefox and mac safari
		var varProp;

		//alert(hrefId);
		//alert("Imagem : " + document.getElementById(hrefId).getElementsByTagName("img").item(0));

		if(oDivBody.style.display == "none")
		{
			var e;
			oDivBody.style.display = "";
			
			try
			{
				if(sImageSrcMinus=='')
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).src = "includes/images/minus.gif";
				}
				else
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).src = sImageSrcMinus;
				}
				if(strHlgeral==0)
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).title = '';
				}
				else
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).title = '';
				}
			}
			catch(e){}
			try
			{
				oDivBody.setAttribute("aberto","sim");
				oDivBody.save(oDivBody.id);
			}
			catch(e){}	
		}
		else
		{		
			var e;
			oDivBody.style.display = "none";
			
			try
			{
				if(sImageSrcPlus=='')
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).src = "includes/images/plus.gif";
				}
				else
				{
					document.getElementById(hrefId).getElementsByTagName("img").item(0).src = sImageSrcPlus;
				}
				if(strHlgeral==0)
				{
					document.getElementById(hrefId).getElementsByTagName("img").children.item(0).title = '';
				}
				else
				{
					document.getElementById(hrefId).getElementsByTagName("img").children.item(0).title = '';
				}
			}
			catch(e){}
			try
			{
				oDivBody.setAttribute("aberto","nao");
				oDivBody.save(oDivBody.id);
			}catch(e){}	
		}
	}
}

function __MUDAMES(oSelectMes,oSelectDia){
	var arrDias=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
	var intMaxDia=oSelectDia.options.length-arrDias[oSelectMes.selectedIndex];
	for(var i=intMaxDia;i>0;i--){
		oSelectDia.options.remove(oSelectDia.options.length-1);
	}
	for(var i=-intMaxDia;i>0;i--){
		var oOption = document.createElement("OPTION");
		oSelectDia.options.add(oOption);
		oOption.innerText = oSelectDia.options.length;
		oOption.Value = oSelectDia.options.length;
	}
}

function __OnFormSubmit(oForm, blnHideMessage){

	var strMethod = '__OnFormSubmit';

	try{

		//apagar mensagens do serviço de mensagens
		__MensagensClean();
		//encontrar o indice do formulario
		var iIndiceForm=0;
	
		for(var i=0;i<document.forms.length;i++)
			if(document.forms[i]==oForm)
				iIndiceForm=i+1;

		//obter array de handlers a verificar para o submit
		var arrFuncoesValidacao = __arrHandlersForms[iIndiceForm];
		//iterar pelas diversas funcoes e chamá-las
		
		var bValido=true;
		for(var i=0;i<arrFuncoesValidacao.length;i++){if(!arrFuncoesValidacao[i]()){bValido=false;}}
		
		//se um retornou falso, entao mostrar as mensagens
		if (blnHideMessage == undefined || blnHideMessage == '' || blnHideMessage == null){
			blnHideMessage = false;
		}
		
		if (!blnHideMessage){
			if(!bValido)
				__MensagensShow();
		}
		//se uma retornou falso, retornar falso também
		return bValido;
	
	}catch(e){
		alert(e.message);
		//return false
	}
}

function __AddHandler(oFuncao,oForm){

	var strMethod = '__AddHandler';

	try{

		//encontrar o indice do formulario
		var iIndiceForm=0;
		for(var i=0;i<document.forms.length;i++)
			if(document.forms[i]==oForm)
				iIndiceForm=i+1;
		
		if(iIndiceForm==0){
				if (strHlgeral==0){
					document.activeElement.children.item(0).title = 'O formulário indicado não é conhecido!';
				}else{
					document.activeElement.children.item(0).title = 'O formulário indicado não é conhecido!';
				}
			return false;
		}
	
		//adicionar no array de handlers do formulário
		var novoArray=new Array(__arrHandlersForms[iIndiceForm].length);
		//copiar os conteudos antigos do array
		for(var i=0;i<__arrHandlersForms[iIndiceForm].length;i++)
			novoArray[i]=__arrHandlersForms[iIndiceForm][i];
		//colocar no fim do array o novo handler
		novoArray[__arrHandlersForms[iIndiceForm].length]=oFuncao;
		//colocar novo array de handlers no form no array de forms
		__arrHandlersForms[iIndiceForm]=novoArray;
		
		return true;
		
	}
	catch(e)
	{
		ShowError(strMethod,e);
		return false;
	}
}

function __MostraMensagem(sMensagem){alert(sMensagem);}

function __MostraInfo(sMensagem){alert(sMensagem);}

function __MostraErro(sMensagem){alert(sMensagem);}

function __MostraAvisoValidacao(arrMensagens){
	var sHTMLTemp;
	
	//sHTMLTemp='<ul>';
	sHTMLTemp='';
	for(var i=0;i<arrMensagens.length;i++){
		//sHTMLTemp+='<li>'+arrMensagens[i]+'</li>';
		sHTMLTemp+='- '+arrMensagens[i]+'\n';
	}
	//sHTMLTemp+='</ul>';
	alert(sHTMLTemp)
	//__MostraMensagem(sHTMLTemp);
}

var __arrMsg=new Array(1);
function __MensagensClean(){
	__arrMsg=new Array(1);
}

function __MensagensAdd(sMensagem,oField){
	var arrNew = new Array(1);
	arrNew[0]=sMensagem;
	arrNew[1]=oField;

	var arrTemp = new Array(__arrMsg.length);
	for(var i=1;i<arrTemp.length;i++)
		arrTemp[i]=__arrMsg[i];
	arrTemp[__arrMsg.length]=arrNew;
	__arrMsg=arrTemp;
}

function __MensagensShow(){
	var arrMensagens = new Array(__arrMsg.length-2);
	for(var i=1;i<__arrMsg.length;i++)
		arrMensagens[i-1]=__arrMsg[i][0];
	__MostraAvisoValidacao(arrMensagens);
}

function __AddHandlerFromBehaviour(element){
	__AddHandler(new Function(' return __HandlerFromBehaviour(' + element.form.name + '.' + element.name + ');'),element.form);
}

function __HandlerFromBehaviour(element){
	var strMsg;
	
	if(element.validoComMensagem != null)
		strMsg = element.validoComMensagem;
	else
		strMsg='';
		
	if(strMsg.length==0)
		return true;
	
	__MensagensAdd(strMsg,element);
	return false;
}

//Função em JavaScript para abrir uma janela com detalhe 
function DetalhesCaso(strCodigo,strCaso)
{
	//caminho e opções a serem usadas na abertura das janelas de detalhe
	var strCaminho;
	var strOpcaoIE;
	var strOpcaoFF;
	var strOpcaoSF;
	//BF 20080211 guarda as variaveis de sessao qd é necessario abrir uma janela dentro de uma janela modal.
	var args = new Object;
	args.window = window;
	switch(String(strCaso))
	{
		case 'Concurso':		
			strCaminho = '/rfx/Detalhes/concurso.asp?lngID_Concurso=' + strCodigo;
			strOpcaoIE = 'dialogHeight:500px; dialogWidth:1130px; dialogTop:160px; dialogLeft:100px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF = 'dialogHeight:500px; dialogWidth:1130px; dialogTop:180px; dialogLeft:100px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF = 'height=500px, width=1130px, top=140px, left=100px, help=no, resizable=no, statusbar=no; scrollbars=yes;';
			break;
		case 'PPA':
			strCaminho ='/rfx/Detalhes/concursoPPA.asp?lngID_Concurso=' + strCodigo;
			strOpcaoIE ='dialogHeight:500px; dialogWidth:1130px; dialogTop:160px; dialogLeft:100px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF = 'dialogHeight:500px; dialogWidth:1130px; dialogTop:180px; dialogLeft:100px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF = 'height=500px, width=1130px, top=200px, left=100px, help=no, resizable=no, statusbar=no; scrollbars=yes;';
			break;
		case 'PPAAditamento':
			strCaminho ='/rfx/Detalhes/concursoPPA.asp?adit=sim&lngID_Concurso=' + strCodigo;
			strOpcaoIE ='dialogHeight:330px; dialogWidth:420px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF ='height=200px, width=300px; top=160px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			break;
		case 'ConcursoAditamento':
			strCaminho='/rfx/Detalhes/concurso.asp?adit=sim&lngID_Concurso=' + strCodigo;
			strOpcaoIE ='dialogHeight:330px; dialogWidth:420px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF ='height=200px, width=300px; top=160px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			break;
		case 'Entidade':
			strCaminho='/rfx/Detalhes/entidade.asp?lngID_Entidade=' + fnValidaGuid(strCodigo);
			strOpcaoIE='dialogHeight:330px; dialogWidth:420px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:No; edge:sunken;';
			strOpcaoFF='dialogHeight:330px; dialogWidth:420px; dialogTop:160px; dialogLeft:50px; help:No; resizable:No; status:No; scroll:No; edge:sunken;';
			strOpcaoSF='height=330px, width=420px,top=180px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=no;';
			break;
		case 'Candidatura':
			strCaminho='/rfx/Detalhes/Candidatura.asp?lngCandidaturaID=' + strCodigo;
			strOpcaoIE ='dialogHeight:500px; dialogWidth:1130px; dialogTop:160px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF ='height=200px, width=300px, top=160px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			break;
		case 'Solucao':
			strCaminho='/rfx/Detalhes/Solucao.asp?lngSolucaoID=' + strCodigo;
			strOpcaoIE ='dialogHeight:500px; dialogWidth:1130px; dialogTop:160px;  dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF ='height=200px, width=300px, top=160px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			break;	
		case 'Destinatario':
			/*<%'ACC_20050708_BEGIN: Boleias%>*/
			var objXML = W3CNewObject('xml');
			var intCCEscolhido;
			try
			{
				oHTTP= W3CNewObject('xmlhttp');
			}
			catch(e)
			{
				oHTTP= W3CNewObject('xmlhttp');
			}
			
			objXML = W3CXMLLoad(objXML,'<xml><idobra></idobra></xml>');
			objXML.selectSingleNode('/xml/idobra').text = strCodigo;
			
			oHTTP.open('POST','/RFX/Includes/HOMEPAGEXML/xmlCentroCusto.asp',false);
			oHTTP.send(W3CXMLList(objXML));
			objXML = W3CXMLLoad(objXML,W3CXMLList(oHTTP.responseXML));
			
			intCCEscolhido = objXML.selectSingleNode('/xml/intCCType').text;
			
			delete(objXML);
			delete(oHTTP);	
			
			strCaminho='/obras/manutencao.asp?ccid=' + strCodigo + '&ccEscolha=' + intCCEscolhido + '&boolCriarNovaObra=1&mtype=1&readonly=2&leavepage=0';
			/*<%'ACC_20050708_END: Boleias%>*/
			strOpcaoIE='dialogHeight:"600px"; dialogWidth:"790px"; dialogTop:5px; dialogLeft:5px; help:No; resizable:yes; status:No; scroll:Yes; edge:sunken;';
			strOpcaoFF='dialogHeight:"600px"; dialogWidth:"790px"; dialogTop:5px; dialogLeft:5px; help:No; resizable:yes; status:No; scroll:Yes; edge:sunken;';
			strOpcaoSF='height="600px", width="790px", top=5px, left=5px, help=no, resizable=yes, statusbar=no, scrollbars=yes;';
			break;
		case 'Proposta':
			/*ACC_20050909_BEGIN: PPA2*/

			var objXML = W3CNewObject('xml');
			var oHTTP = W3CNewObject('xmlhttp');
			var bytUserAccess;
			objXML = W3CXMLLoad(		objXML,'<xml><idproposta></idproposta></xml>');
			objXML.selectSingleNode('/xml/idproposta').text = strCodigo;
			
			oHTTP.open('POST','/RFX/Detalhes/xmlHTTP/xmlPropostaVer.asp',false);
			oHTTP.send(W3CXMLList(objXML));
			objXML = W3CXMLLoad(		objXML,W3CXMLList(oHTTP.responseXML));
			
			bytUserAccess = objXML.selectSingleNode('/xml/bytUserAccess').text;
			
			delete(objXML);
			delete(oHTTP);	
			
			strCaminho='/rfx/detalhes/proposta.asp?lngID_Proposta=' + strCodigo
			if (bytUserAccess == 1)
			{
				strOpcaoIE ='dialogHeight:500px; dialogWidth:800px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
				strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
				strOpcaoSF ='height=200px, width=300px, top=20px, left=20px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			}
			else
			{
				strOpcaoIE ='dialogHeight:500px; dialogWidth:800px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
				strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
				strOpcaoSF ='height=200px, width=300px, top=20px, left=100px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			}
			/*ACC_20050909_BEGIN: PPA2*/
			break;
		case 'Oferta':
			strCaminho='/rfx/detalhes/oferta.asp?lngOfertaId=' + strCodigo
			strOpcaoIE ='dialogHeight:500px; dialogWidth:800px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoFF ='dialogHeight:200px; dialogWidth:300px; dialogTop:20px; dialogLeft:20px; help:No; resizable:No; status:No; scroll:yes; edge:sunken;';
			strOpcaoSF ='height=200px, width=300px, top=20px, left=20px, help=no, resizable=no, statusbar=no, scrollbars=yes;';
			break;	
		case 'Analise':
			//BF_20070820 Impede o acesso a análises para LoginAs.
			if(LoginAsPermission()==1)
			{
				strCaminho='/rfx/detalhes/analise.asp?lngAnaliseId=' + strCodigo
				strOpcaoIE ='toolbar=no, top=0, left=0, scrollbars=yes, resizable=yes, status=no, width=' + (screen.width-20) + ', height=' + (screen.height-80) + ', screenX=0, screenY=0';
				strOpcaoFF ='toolbar=no, top=20, left=20, scrollbars=yes, resizable=yes, status=no, width=' + (screen.width-20) + ', height=' + (screen.height-80) + ', screenX=0, screenY=0';
				strOpcaoSF ='toolbar=no, top=20, left=20, scrollbars=yes, resizable=yes, status=no, width=' + (screen.width-20) + ', height=' + (screen.height-80) + ', screenX=0, screenY=0';
			}
			break;
		case 'Encomenda':
			strCaminho='/rfx/detalhes/encomenda.asp?lngEncomendaId=' + strCodigo
			//TN 2005.01.06 permite clickar no botão direito na encomenda de forma a poder gravar ficheiros (problemas dos dwg)
			//strOpcao='dialogHeight: 45; dialogWidth: 47; dialogTop: 20; dialogLeft: 20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoIE='height=680px, width=700px, top=0, left=200, toolbar=no, scrollbars=yes, resizeable=no';
			strOpcaoFF='height=680px, width=700px, top=160px, left=200px, toolbar=no, scrollbars=yes, resizeable=no';
			strOpcaoSF='height=680px, width=700px, top=180px, left=200px, toolbar=no, scrollbars=yes, resizeable=no';
			//TN 2005.01.06 fim
			break;
		case 'EncomendaElectronica':
			strCaminho='/rfx/detalhes/encomenda.asp?lngEncomendaId=' + strCodigo + '&bytEncElectronica=1'
			strOpcaoIE='height=680px, width=700px, top=0, left=200, toolbar=no, scrollbars=yes, resizeable=no';
			strOpcaoFF='height=680px, width=700px, top=160px, left=200px, toolbar=no, scrollbars=yes, resizeable=no';
			strOpcaoSF='height=680px, width=700px, top=180px, left=200px, toolbar=no, scrollbars=yes, resizeable=no';
			break;
		case 'EncomendaOferta':
			strCaminho='/rfx/detalhes/Oferta_Encomenda.asp?dadosent=nao&lngOrderId=' + strCodigo
			strOpcaoIE='dialogHeight:35; dialogWidth:47; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Avaltec':
			//ACC_20050922_BEGIN: acede janela de avaliação técnica proposta de avaltec for 1
			strCaminho='/rfx/detalhes/AvalTecnProposta.asp?modo=0&concursoid=' + strCodigo
			strOpcaoIE='dialogHeight: 300px; dialogWidth: 700px; dialogTop:100px; dialogLeft: 100px; help:No; resizable:yes; status:No; scroll:yes; edge: sunken;';
			strOpcaoFF='dialogHeight: 300px; dialogWidth: 700px; dialogTop:140px; dialogLeft: 100px; help:No; resizable:yes; status:No; scroll:yes; edge: sunken;';
			strOpcaoSF='height=300px, width=700px, top=160px, left=100px, help=no, resizable=yes, statusbar=no, scrollbars=yes;';
			break;
			//ACC_20050922_END
		case 'PreregBoleia':
			strCaminho='/rfx/detalhes/AvisoBoleiaEmPrereg.asp?propid=' + strCodigo
			strOpcaoIE='dialogHeight: 160px; dialogWidth: 700px; dialogTop:100px; dialogLeft: 100px; help:No; resizable:yes; status:No; scroll:yes; edge: sunken;';
			strOpcaoFF='dialogHeight: 160px; dialogWidth: 700px; dialogTop:140px; dialogLeft: 100px; help:No; resizable:yes; status:No; scroll:yes; edge: sunken;';
			strOpcaoSF='height=160px, width=700px, top=160px, left=100px, help=no, resizable=yes, statusbar=no, scrollbars=yes;';
			break;
		case 'Directorio':
			strCaminho='/rfx/A18Mercado/detalhe_empresa.asp?ent=' + strCodigo
			strOpcaoIE='dialogHeight:500px; dialogWidth:800px; dialogTop:160px; dialogLeft:100px; toolbar=no, menubar=no, location=no, directories=no, resizable=yes, scrollbars=yes';
			strOpcaoFF='height=null, width=null, top=20, left=20, toolbar=no, menubar=no, location=no, directories=no, resizable=yes, scrollbars=yes';
			strOpcaoSF='height=null, width=null, top=50, left=50, toolbar=no, menubar=no, location=no, directories=no, resizable=yes, scrollbars=yes';
			break;
		case 'Contrato':
			strCaminho='/rfx/Detalhes/Contrato.asp?cont=' + strCodigo
			strOpcaoIE='dialogHeight:35; dialogWidth:50; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Contrato_Fornecedor':
			strCaminho='/rfx/Detalhes/Contrato_Fornecedor.asp?cont=' + strCodigo
			strOpcaoIE='dialogHeight:35; dialogWidth:50; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Compra':
			strCaminho='/rfx/Detalhes/ContratoCompra.asp?comp=' + strCodigo
			strOpcaoIE='dialogHeight:500px; dialogWidth:800px; dialogTop:160px; dialogLeft:100px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Compra_EncElectGua':
			strCaminho='/rfx/Detalhes/ElectronicOrderPurchaseContract.asp?comp=' + strCodigo
			strOpcaoIE='dialogHeight:38; dialogWidth:50; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Factura':
			strCaminho='/rfx/Detalhes/Documento.asp?doc=' + strCodigo
			strOpcaoIE='dialogHeight:35; dialogWidth:50; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;
		case 'Mapa':
			strCaminho='/rfx/Detalhes/MapaPagamentos.asp?map=' + strCodigo
			strOpcaoIE='dialogHeight:35; dialogWidth:50; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;	
		case 'Utilizador':
			strCaminho='/rfx/Detalhes/FichaCliente.asp?strGUID_Cliente=' + strCodigo
			strOpcaoIE='dialogHeight:15; dialogWidth:40; dialogTop:20; dialogLeft:20; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoFF='dialogHeight:200px; dialogWidth:300px; dialogTop:160px; dialogLeft:50px; help: No; resizable: No; status: No; scroll: Yes; edge: sunken;';
			strOpcaoSF='height=200px, width=300px, top=160px, left=50px, help=no, resizable=no; statusbar=no; scrollbars=yes;';
			break;	
	}

		if (String(strCaso)=='Analise' || String(strCaso)=='Directorio')
		{
			//BF_20070820 Instrução colocada para impedir a abertura de uma nova janela sem endereço
			if(intLoginAs==0)
			{	
				if(window.ActiveXObject)
				{//if internet explorer
			
					window.open(strCaminho,'',strOpcaoIE);
					return true;
				}
				else
				{
					if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
					{//if mozilla firefox
				
						window.open(strCaminho,'',strOpcaoFF);
						return true;
					}
					else
					{//if mac safari
				
						window.open(strCaminho,'',strOpcaoSF);
						return true;
					}
				}
			}
			else
			{
				if(window.ActiveXObject)
				{//if internet explorer
				
					window.showModalDialog(strCaminho,args,strOpcaoIE);
					return true;
				}
				else
				{
					if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
					{//if mozilla firefox
					
						window.showModalDialog(strCaminho,args,strOpcaoFF);
						return true;
					}
					else
					{//if mac safari
					
						window.open(strCaminho,args,strOpcaoSF);
						return true;
					}
				}
			}
		}
		
		//TN 2005.01.07 permite clickar no botão direito na encomenda de forma a poder gravar ficheiros (problemas dos dwg)
		if (String(strCaso)=='Encomenda' || String(strCaso)=='EncomendaElectronica')
		{		
			if(window.ActiveXObject)
			{//if internet explorer
		
				window.open(strCaminho,'',strOpcaoIE);
				return true;
			}
			else
			{
				if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
				{//if mozilla firefox
			
					window.open(strCaminho,'',strOpcaoFF);
					return true;
				}
				else
				{//if mac safari
			
					window.open(strCaminho,'',strOpcaoSF);
					return true;
				}
			}
		}
		else
		{
			if(window.ActiveXObject)
			{//if internet explorer
			
				window.showModalDialog(strCaminho,args,strOpcaoIE);
				return true;
			}
			else
			{
				if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
				{//if mozilla firefox
				
					window.showModalDialog(strCaminho,args,strOpcaoFF);
					return true;
				}
				else
				{//if mac safari
				
					window.open(strCaminho,args,strOpcaoSF);
					return true;
				}
			}
		}
}

/*<%'ACC_20050728_BEGIN: PPA2%>*/
function fnMudaCor(intAno,intHora,intMinuto,strAno,strHora,strMinuto)
{
	intHora = Number(intHora);
	intMinuto = Number(intMinuto);
	
	if(intHora != 99 && intMinuto == 99 && intAno == '')
	{
		strMinuto.style.backgroundColor = '#D3D3D3';
		strAno.style.backgroundColor = '#D3D3D3';
		strHora.style.backgroundColor = '#FFFFFF';
	}
	
	if(intHora == 99 && intMinuto == 99 && intAno == '')
	{
		strMinuto.style.backgroundColor = '#FFFFFF';
		strHora.style.backgroundColor = '#FFFFFF';
		strAno.style.backgroundColor = '#FFFFFF';
	}
	
	if(intMinuto != 99 && intHora == 99 && intAno == '')
	{
		strHora.style.backgroundColor = '#D3D3D3';
		strAno.style.backgroundColor = '#D3D3D3';
		strMinuto.style.backgroundColor = '#FFFFFF';
	}
	
	if(intHora != 99 && intMinuto != 99 && intAno == '')
	{
		strMinuto.style.backgroundColor = '#FFFFFF';
		strHora.style.backgroundColor = '#FFFFFF';
		strAno.style.backgroundColor = '#D3D3D3';
	}
	
	if(intHora == 99 && intMinuto == 99 && intAno != '')
	{
		strHora.style.backgroundColor = '#D3D3D3';
		strMinuto.style.backgroundColor = '#D3D3D3';
		strAno.style.backgroundColor = '#FFFFFF';
	}
	
	if(intHora != 99 && intMinuto == 99 && intAno != '')
	{
		strHora.style.backgroundColor = '#FFFFFF';
		strMinuto.style.backgroundColor = '#D3D3D3';
		strAno.style.backgroundColor = '#FFFFFF';
	}
	
	if(intHora == 99 && intMinuto != 99 && intAno != '')
	{
		strHora.style.backgroundColor = '#D3D3D3';
		strMinuto.style.backgroundColor = '#FFFFFF';
		strAno.style.backgroundColor = '#FFFFFF';
	}
	
	if(intHora != 99 && intMinuto != 99 && intAno != '')
	{
		strMinuto.style.backgroundColor = '#FFFFFF';
		strHora.style.backgroundColor = '#FFFFFF';
		strAno.style.backgroundColor = '#FFFFFF';
	}
}
/*<%'ACC_20050728_END: PPA2%>*/


//adiciona e retira linha 29 aos anos bissextos
function validaano(ano,mes,dia){
	if(parseInt(ano)/4==Math.round(parseInt(ano)/4)){
		if(parseInt(ano)/100!=Math.round(parseInt(ano)/100)){
			if(mes=='02'){
				if(dia.options.length!=29){
				 var oOption = document.createElement("OPTION");
							dia.options.add(oOption);
							oOption.innerText = '29';
							oOption.Value = '29';
				 return true;
				}
			}
		}		
	}else{
		if(dia.options.length==29){
			dia.options.remove(dia.options.length-1)
		}
	}
}	

//screen resolution
var availwidth = window.screen.availWidth;
var availHeight = window.screen.availHeight;
var window_1;
var window_2;
var strData;
var blnSent=1;
var windowhelp;


//função para abrir a página de upload de ficheiros
//MV MultiBrowser F4
function ActiveFocus(child, parent, doc, tchild, tparent, ugid, bytdoctype)
{
// BC 2010-02-09 ALTERADO O WINDOW.OPEN PARA SHOWMODALDIALOG DE MODO A NÃO PODER AVAÇAR ENQUANTO TIVER A JANELA DE UPLOAD ABERTA
	var sid = vortalSession.id();
	var language = languageid.id();
	
	if(window.ActiveXObject)
	{//if internet explorer
	
		if(!ugid)
		{
			ugid=ugidin;
		}
		blnSent=1;
		//ACC_20050106_BEGIN_Tipo de Documento
		if (bytdoctype == undefined)
		{ 
			bytdoctype = 0;
		}
		strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc+'|type|'+bytdoctype;
		//ACC_20050106_END_Tipo de Documento
		///ACC_20050106_Tipo de Documento(Linha de código alterada em função do bytdoctype) strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc;
		
		if (availwidth>=1024)
		{
			helph=330;
			ocxtop=359;
		}
		else
		{	
			helph=175;
			ocxtop=205;
		}	
	
		try
		{
			if (window_1.closed)
			{
				window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=150px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
			else
			{
				window_1.blnSent=1;
				window_1.focus();
			}
		}
		catch(e)
		{
				window_1 = window.open('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
		}
	}
	else
	{//if mozilla firefox and mac safari
	
		if(!ugid)
		{
			ugid=ugidin;
		}
		blnSent=1;
		//ACC_20050106_BEGIN_Tipo de Documento
		if (bytdoctype == undefined)
		{ 
			bytdoctype = 0;
		}
		strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc+'|type|'+bytdoctype;
		//ACC_20050106_END_Tipo de Documento
		///ACC_20050106_Tipo de Documento(Linha de código alterada em função do bytdoctype) strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc;
		
		if (availwidth>=1024)
		{
			helph=330;
			ocxtop=359;
		}
		else
		{	
			helph=175;
			ocxtop=205;
		}	
	
		
		try
		{
			if (window_1.closed)
			{
				if (BrowserDetect.OS == "Mac")
				{
					window_1 = window.open('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
				}
				else
				{
					window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
				}
			}
			else
			{
				window_1.blnSent=1;
				window_1.focus();
			}
		}
		catch(e)
		{
			if (BrowserDetect.OS == "Mac")
			{
				window_1 = window.open('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
			else
			{
				window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
		}
	}
}


//função para abrir a página de upload de ficheiros com modaldialog
//BC 2010/01/25
//MV MultiBrowser F4
function modalupload(child, parent, doc, tchild, tparent, ugid, bytdoctype)
{
	var sid = vortalSession.id();
	var language = languageid.id();
	if(window.ActiveXObject)
	{//if internet explorer
	
		if(!ugid)
		{
			ugid=ugidin;
		}
		blnSent=1;
		//ACC_20050106_BEGIN_Tipo de Documento
		if (bytdoctype == undefined)
		{ 
			bytdoctype = 0;
		}
		strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc+'|type|'+bytdoctype;
		//ACC_20050106_END_Tipo de Documento
		///ACC_20050106_Tipo de Documento(Linha de código alterada em função do bytdoctype) strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc;
		
		if (availwidth>=1024)
		{
			helph=330;
			ocxtop=359;
		}
		else
		{	
			helph=175;
			ocxtop=205;
		}	
	
		try
		{
			if (window_1.closed)
			{
				window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=150px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
			else
			{
				window_1.blnSent=1;
				window_1.focus();
			}
		}
		catch(e)
		{
				window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=150px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
		}
	}
	else
	{//if mozilla firefox and mac safari
	
		if(!ugid)
		{
			ugid=ugidin;
		}
		blnSent=1;
		//ACC_20050106_BEGIN_Tipo de Documento
		if (bytdoctype == undefined)
		{ 
			bytdoctype = 0;
		}
		strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc+'|type|'+bytdoctype;
		//ACC_20050106_END_Tipo de Documento
		///ACC_20050106_Tipo de Documento(Linha de código alterada em função do bytdoctype) strData=ugid+'.'+tparent+'.'+tchild+'.'+child+'.'+parent+'.'+doc;
		
		if (availwidth>=1024)
		{
			helph=330;
			ocxtop=359;
		}
		else
		{	
			helph=175;
			ocxtop=205;
		}	
	
		
		try
		{
			if (window_1.closed)
			{
				if (BrowserDetect.OS == "Mac")
				{
					window_1 = window.open('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
				}
				else
				{
					window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
				}
			}
			else
			{
				window_1.blnSent=1;
				window_1.focus();
			}
		}
		catch(e)
		{
			if (BrowserDetect.OS == "Mac")
			{
				window_1 = window.open('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
			else
			{
				window_1 = window.showModalDialog('/RFX2/A04Upload/UpFrame.aspx?doc='+doc+'&uid='+ugid+'&type='+bytdoctype+'&sid='+sid+'&lang='+language,'window_one','height=450px, width=500px, top=148px, left=50px, resizable=yes, scrollbars=yes, statusbar=no');
			}
		}
	}
}



//função para criar objectos
function freeObject(tid,tp,idu)
{
	if(window.ActiveXObject)
	{//if internet explorer
		try
		{
			fileHTTP = new ActiveXObject("MSXML2.XMLHttp");
		}
		catch(e)
		{
			fileHTTP = new ActiveXObject("Microsoft.XMLHttp");
		}
		fileHTTP.open('POST','/FastUpload/unlock.asp?parent=' + tid + '&tipoparent=' + tp + '&guiduser=' + idu, false);
		fileHTTP.send();
		//delete object fileHTTP that was created
		delete(fileHTTP);
		//fileHTTP=null;
	}
	else
	{//if mozilla firefox and mac safari
	
		fileHTTP = W3CNewObject("xmlhttp");
	
		fileHTTP.open('POST','/FastUpload/unlock.asp?parent=' + tid + '&tipoparent=' + tp + '&guiduser=' + idu, false);
		fileHTTP.send('');
		//delete object fileHTTP that was created
		delete(fileHTTP);
		//fileHTTP=null;
	}
}

//ACC_20041209_BEGIN_MessageDlg
function MessageDlg(strTitulo,strMensagem,strTipo,strBotoes,lngWidth , lngHeight)
{
	if (lngWidth == null){lngWidth = 360;}
	if (lngHeight == null){lngHeight = 180;}
	
	if(window.ActiveXObject)
	{//if internet explorer
	
		window.showModalDialog('/RFx/Detalhes/MessageDLG.asp?title=' + strTitulo + '&msg=' + strMensagem + '&type=' + strTipo + '&buttons=' + strBotoes,null,'dialogHeight:'+lngHeight+'px; dialogWidth:'+lngWidth+'px; dialogTop:160px; dialogLeft:50px; help:no; resizable:no; scroll:no; unadorned:yes; status:no');
	}
	else
	{
		if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
		{//if mozilla firefox
			
			window.showModalDialog('/RFx/Detalhes/MessageDLG.asp?title=' + strTitulo + '&msg=' + strMensagem + '&type=' + strTipo + '&buttons=' + strBotoes,null,'dialogHeight:'+lngHeight+'px; dialogWidth:'+lngWidth+'px; dialogTop:160px; dialogLeft:50px; help:no; resizable:no; scroll:no; unadorned:yes; status:no');
		}
		else
		{//if mac safari
		
			window.open('/RFx/Detalhes/MessageDLG.asp?title=' + strTitulo + '&msg=' + strMensagem + '&type=' + strTipo + '&buttons=' + strBotoes,null,'height='+lngHeight+'px, width='+lngWidth+'px, top=160px, left=50px, help=no, resizable=no, scrollbars=no, statusbars=no');
		}
	}
}
//ACC_20041209_END_MessageDlg

//BF_Funçao chamada que verifica o tipo de acesso para bloquear determinados links/botoes 
function LoginAsPermission()
{
	if(intLoginAs==1 ) 
	{
		fnMostraIndisponibilidade('Operação não disponivel para protecção de informação secreta de clientes',null,'Fechar');		
		return 0;
	}
	else
	{
		return 1;
	}
}
//BF_20070712_END.

//link para o login com certificado
function fnCertificateLoginLink()
{	
	if(intCertificateLogin == 0)
	{
		fnCertLoginOpenPopUP();
		return false;
	}
	else
	{
		return true;
	}
}

//função para validar o login com certificado
function fnCertificateLogin()
{
	if(intCertificateLogin == 0)
	{
		fnCertLoginOpenPopUP();
		return false;
	}
	else
	{
		return true;
	}
}

//DL 20080828 BEGIN
//BEGIN Adaptação da Plataforma de PPA’s para Decreto-lei n.º143-A/2008
//Abre janela de Classificação de documentos
//inttype de acordo com o bytTipoForneci - 1 - Candidaturas; 3 - Propostas  
function fnDocReClassificar(id, blnisjuri,inttype)
{
	if(window.ActiveXObject)
	{//if internet explorer
	
		var retorna = window.showModalDialog("/rfx/a01criarConcurso/ReClassificar_Documentos.asp?id=" + id + "&isj="+ blnisjuri+ "&type="+ inttype,'','dialogHeight:300px; dialogWidth:600px; dialogTop:160px; dialogLeft:100px; help:No; resizable:yes; status:No; scroll:Yes; edge:sunken;');		
		return retorna;
	}
	else
	{
		if(window.navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)
		{//if mozilla firefox
		
			var retorna = window.showModalDialog("/rfx/a01criarConcurso/ReClassificar_Documentos.asp?id=" + id + "&isj="+ blnisjuri+ "&type="+ inttype,'','dialogHeight:300px; dialogWidth:600px; dialogTop:180px; dialogLeft:100px; help:No; resizable:yes; status:No; scroll:Yes; edge:sunken;');		
			return retorna;
		}
		else
		{//if mac safari
			
			var retorna = window.open("/rfx/a01criarConcurso/ReClassificar_Documentos.asp?id=" + id + "&isj="+ blnisjuri+ "&type="+ inttype,'','height=300px, width=600px, top=145px, left=100px, help=no, resizable=yes, statusbar=no; scrollbars=yes;');		
			return retorna;
		}
	}
}
//DL 20080828 END

//MV DetectBrowser
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();