function chamaTitulo(opt,mercado,descMercado,numDias,codIndice,sitePrivado){
 location.href=sitePrivado+"/v10/PT/jsp/privado/detalheTitulov"+versaoDetalheTitulo+".jsp?cod_titulo="+opt+"&cod_mercado="+mercado+"&mercado="+mercado+"&descMercado="+descMercado+"&numDias="+numDias+"&codIndice="+codIndice+"&redirPrivado=1"
}

function chamaComentarios(opt,opt1){
 location.href="/v10/PT/jsp/publico/detalheComentarioMercado.jsp?id="+opt+"&tipoComentario="+opt1
}

function chamaNews(opt){
	location.href="/v10/PT/jsp/publico/detalheNoticia.jsp?id="+opt
}
function validaQuickCote(evento){
//Guardar numa variável o código ASCII da tecla.
	codigoTecla=(document.all)?evento.keyCode:evento.which;
	if (codigoTecla==13){
		pesquisaQuickCote();
		return(false);
	}
}

function pesquisaQuickCote(){
 if (document.dados.quickCote.value==""){
		alert("O campo de pesquisa encontra-se vazio!")
		return(false)
	}
	else{
	  document.dados.cod_titulo.value=document.dados.quickCote.value
	  document.dados.action='/v10/PT/jsp/publico/detalheTitulo.jsp'
  	  document.dados.submit()
	  return(true)
	}
}

function validaNumeroLetra(evento){
	//Guardar numa variável o código ASCII da tecla.
	codigoTecla=(document.all)?evento.keyCode:evento.which;
	if (codigoTecla==13){
		pesquisaTitulos();
		return(false);
	}
	//Retornar (false) no caso de não ser um número,letra ou enter.
	if ((codigoTecla<48 || codigoTecla>57) && (codigoTecla<97 || codigoTecla>122) && (codigoTecla<65 || codigoTecla>90)){
		return (false);
	}
}

function validaNumeroPontoVirgula(evento){
	n = (document.layers) ? 1:0;
	ie = (document.all) ? 1:0;
	codigoTecla=(ie)?evento.keyCode:evento.which;
	if ((codigoTecla<48 || codigoTecla>57)&&((codigoTecla!='46') && (codigoTecla!='44'))) return false
	else return true
}

function convertePontoVirgula(objecto,evento){
  valor=objecto.value;
  contador=0;
  posicao=0;
  for(j=0; j<valor.length; j++)
     if (((valor.substring(j,j+1))==".") || ((valor.substring(j,j+1))==",")) {
         contador++;
         posicao=j;
     }

  if (contador>1) {
    alert("O campo do montante encontra-se mal formatado.");
    objecto.value="";
    return false ;
  }
 // if ((((valor.length-posicao)>2) || ((valor.length-posicao)<1)) && (posicao!=0)) {
 // Comentado por ARibeiro porque só permite 1 caracter como parte decimal... 
if ((((valor.length-posicao)>3) || ((valor.length-posicao)<1)) && (posicao!=0)) {
    alert("A parte decimal do campo montante deve ter no máximo 2 dígitos.");
    objecto.value="";
    return false;
  }

	if (validaNumeroPontoVirgula(evento)){
		n = (document.layers) ? 1:0;
		ie = (document.all) ? 1:0;
		codigoTecla=(ie)?evento.keyCode:evento.which;
		if (codigoTecla=="44") {
			objecto.value=objecto.value+"."
			return false;
		} else return true;
	} else return false;
}

function validaNumero(evento){
	n = (document.layers) ? 1:0;
	ie = (document.all) ? 1:0;
	codigoTecla=(ie)?evento.keyCode:evento.which;
	if ((codigoTecla<48 || codigoTecla>57))
	  return false;
	else return true;
}

// funçao que formata um numero para duas casas décimais
function GetRound(fValue, iDec){
	if (isNaN(iDec)) iDec = 2;
	iDec += 1;
	var fTmp = parseInt(String(fValue * Math.pow(10, iDec)));
	var sCad = String(fTmp).substring(String(fTmp).length - 1);
	var iSum = 0;
	if (parseInt(sCad) >= 5)
		iSum = 10;
	fTmp += iSum;
	fTmp = String(fTmp).substring(0,String(fTmp).length - 1);
	fTmp = fTmp / Math.pow(10 , (iDec -1));
	return fTmp;
}



// Função para login

function validaAspasPlica (evento){
	n = (document.layers) ? 1:0;
	ie = (document.all) ? 1:0;
	codigoTecla=(ie)?evento.keyCode:evento.which;
	if ((codigoTecla==34 || codigoTecla==39))
	  return false;
	else return true;
}

function go()
{
	if(document.dados.username.value==""){
		alert("Introduza Código de Utilizador")
		document.dados.username.focus()
	}else{
    	if(document.dados.password.value==""){
  			alert("Introduza a Password")
  			document.dados.password.focus()
		}else {
        	auth=1;
			if (ie) document.all.sslframe.src=siteprivado+"/v10/PT/templates/privado/segur.template";
			else document.ssl.src=siteprivado+"/img/sp.gif";
		}
  	}
}

function valida(){
	if(document.dados.username.value==""){
		alert('Introduza o Código de Utilizador')
		document.dados.username.focus()
	}else{
		if(document.dados.password.value==""){
			alert('Introduza a password')
			document.dados.password.focus()
		}else {
			document.dados.action=siteprivado+"/v10/PT/jsp/privado/autenticacao.jsp"
			document.dados.target="_top"
			document.dados.submit()
		}
	}
}

function validaEnter(evento){
	codigoTecla=(ie)?evento.keyCode:evento.which;
	if (codigoTecla=='13') valida()
}

//Função para negociar título

function negociarTitulo(cod_titulo,cod_mercado,cod_isin,codIndice,tipoNeg){
	document.dados.cod_titulo.value=cod_titulo
	document.dados.mercado.value=cod_mercado
	document.dados.cod_isin.value=cod_isin
	document.dados.codIndice.value=codIndice
	document.dados.tipoNeg.value=tipoNeg
	verificaCookie('negociarTituloIsin.jsp','dados')
}

// Funções Gerais
function sizedwindowQT(url,winname,wid,hei,lef,top)
{
	fQT = 1;
	aWindowQT=window.open(url,winname,"toolbar=no,resizable=no,status=yes,scrollbars=yes,location=no,menubar=no,width="+wid+",height="+hei+",left="+lef+",top="+top);
}

function sizedwindowSTR(url,winname,wid,hei,lef,top)
{
	fSTR = 1;
	aWindowSTR=window.open(url,winname,"toolbar=no,resizable=no,status=yes,scrollbars=yes,location=no,menubar=no,width="+wid+",height="+hei+",left="+lef+",top="+top);
}

function sizedwindow(url,winname,wid,hei,lef,top)
{
	aWindow=window.open(url,winname,"toolbar=no,resizable=no,status=no,scrollbars=yes,location=no,menubar=no,width="+wid+",height="+hei+",left="+lef+",top="+top);
}
function noScrollwindow(url,winname,wid,hei,lef,top)
{
	aWindow=window.open(url,winname,"toolbar=no,resizable=no,status=no,scrollbars=no,location=no,menubar=no,width="+wid+",height="+hei+",left="+lef+",top="+top);
}

function windowDownload(url,winname)
{
	aWindow=window.open(url,winname,"alwaysRaised=yes,toolbar=yes,resizable=yes,status=yes,scrollbars=yes,location=no,menubar=yes,width=650,height=210,left=150,top=200");
}


/*Função relativa aos menus laterais*/
function mLat(titulo,link,sel){
	this.titulo=titulo
	this.link=link
	this.sel=sel
}

var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);
var isNS = (document.layers);
var ObjCapa = (NS4) ? 'document' : 'document.all';
var ObjEstilo = (NS4) ? '' : '.style';
function cON(nomCapa) {eval(ObjCapa+'["'+nomCapa+'"]'+ObjEstilo+'.visibility="visible"');}
function cOFF(nomCapa) {eval(ObjCapa+'["'+nomCapa+'"]'+ObjEstilo+'.visibility="hidden"');}
function rON(idimagen) {document[idimagen].src = eval(idimagen + "on.src");}
function rOFF(idimagen) {document[idimagen].src = eval(idimagen + "off.src");}


// Acrescentado PVC 2001/12/20
function tick() {
  var hours, minutes, seconds, ap;
  var intHours, intMinutes, intSeconds;
  var today;

  today = new Date();

  intHours = today.getHours();
  intMinutes = today.getMinutes();
  intSeconds = today.getSeconds();


/* SE PRETENDEREM UTILIZAR O FORMATO DE HORA COM P.M / A.M É NECESSARIO TIRAR O COMENTARIO DESTE SWITCH
   E SUBSTITUIR O intHours por hours NA ATRIBUICAO QUE É FEITA A VARIAVEL timeString
  switch(intHours){
       case 0:
           intHours = 12;
           hours = intHours+":";
           ap = "A.M.";
           break;
       case 12:
           hours = intHours+":";
           ap = "P.M.";
           break;
       case 24:
           intHours = 12;
           hours = intHours + ":";
           ap = "A.M.";
           break;
       default:
           if (intHours > 12)
           {
             intHours = intHours - 12;
             hours = intHours + ":";
             ap = "P.M.";
             break;
           }
           if(intHours < 12)
           {
             hours = intHours + ":";
             ap = "A.M.";
           }
    }
  */
  if (intHours < 10) {
     hours = "0"+intHours+":";
  } else {
     hours = intHours+":";
  }

  if (intMinutes < 10) {
     minutes = "0"+intMinutes+":";
  } else {
     minutes = intMinutes+":";
  }

  if (intSeconds < 10) {
     seconds = "0"+intSeconds+" ";
  } else {
     seconds = intSeconds+" ";
  }

  timeString = hours+minutes+seconds//+ap;



  Clock.innerHTML = timeString;

  window.setTimeout("tick();", 100);
}



//Para o flash
var requiredVersion = 3;
var flash2Installed = false;
var flash3Installed = false;
var flash4Installed = false;
var flash5Installed = false;
var maxVersion = 5;
var actualVersion = 0;
var hasRightVersion = false;
var jsVersion = 1.0;
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;
jsVersion = 1.1;
if(isIE && isWin){
  document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
  document.write('on error resume next \n');
  document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
  document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
  document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
  document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
  document.write('</SCR' + 'IPT\> \n');
}

function detectarFlash(){
  if (navigator.plugins){
  	if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]){
    	var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
	    var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
    	var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
      	flash2Installed = flashVersion == 2;
      	flash3Installed = flashVersion == 3;
      	flash4Installed = flashVersion == 4;
      	flash5Installed = flashVersion == 5;
    }
  }
  for (var i = 2; i <= maxVersion; i++){
    if (eval("flash" + i + "Installed") == true) actualVersion = i;
  }

  if (actualVersion >= requiredVersion){
    return (true);
  }else{
    return (false);
  }
}
// fim do flash

function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt) {
var i, j;
var prompt;
for (i = selectCtrl.options.length; i >= 0; i--) {
selectCtrl.options[i] = null;
}
prompt = (itemArray != null) ? goodPrompt : badPrompt;
if (prompt == null) {
j = 0;
}
else {
selectCtrl.options[0] = new Option(prompt);
j = 1;
}
if (itemArray != null) {
for (i = 0; i < itemArray.length; i++) {
selectCtrl.options[j] = new Option(itemArray[i][0]);
if (itemArray[i][1] != null) {
selectCtrl.options[j].value = itemArray[i][1];
}
j++;
}
selectCtrl.disabled = false;
selectCtrl.options[0].selected = true;
}
else selectCtrl.disabled = true;
}

function logoutWinClose() {
	var idSessao = "";
	idSessao = getCookie ("ckidSessao");
	var tipoAcesso = "0";
	tipoAcesso = getCookie ("cktipoAcesso");
	var cookieWinQT = "0";
	cookieWinQT = getCookie ("cookieWinQT ");
	var top=self.screenTop;
	if (top>9000){
		if(idSessao != null && idSessao != "" && tipoAcesso != null && tipoAcesso != "" && tipoAcesso > 0){
			window.open(siteprivado+"/v10/PT/jsp/privado/winCloseLogout.jsp","AB7Logout","toolbar=no,resizable=no,status=no,scrollbars=no,location=no,menubar=no,width=350,height=200,left=100,top=100");
		}
	}
}


// Funcção que valida dois numeros segundo a condição enviada
function validaMaxMinPermitido(objecto,nomeAlerta,tipoValida,valorValida){
	if(!isNaN(objecto.value)){
		switch(tipoValida){
			case 'menor':
				if(objecto.value < valorValida){
					return true;	
				}else{
					alert("O campo "+nomeAlerta+" deve ser menor que "+valorValida+".");
					objecto.focus();
					return false;
				}	
			break;
			case 'igual':
				if(objecto.value == valorValida){
					return true;
				}else{
					alert("O campo "+nomeAlerta+" deve ser igual a "+valorValida+".");
					objecto.focus();
					return false;
				}
			break;
			case 'maior':
				if(objecto.value > valorValida){
					return true;
				}else{
					alert("O campo "+nomeAlerta+" deve ser maior que "+valorValida+".");
					objecto.focus();
					return false;
				}
			break;
		}
	}else{
		alert("O campo "+nomeAlerta+" deve ser numérico. (Ex: 123)");
		return false;
	}
}


function validaIntervaloValores(objecto,nomeAlerta,tipoValida,minimo,maximo){
	if(!isNaN(objecto.value)){
		switch(tipoValida){
			case '0':
				if(objecto.value < maximo && objecto.value > minimo){
					return true;	
				}else{
					alert("O campo "+nomeAlerta+" deve pertencer ao intervalo entre "+minimo+" e "+maximo+".");
					objecto.focus();
					return false;
				}	
			break;
			case '1':
				if(objecto.value <= maximo && objecto.value >= minimo){
					return true;
				}else{
					alert("O campo "+nomeAlerta+" deve ser igual a "+valorValida+".");
					objecto.focus();
					return false;
				}
			break;
		}
	}else{
		alert("O campo "+nomeAlerta+" deve ser numérico. (Ex: 123)");
		objecto.focus();
		return false;
	}
}

function validaDoisCampos(campo1, campo2, nomeCampo1, nomeCampo2, tipoValida){
	if(!isNaN(campo1.value)){
		if(!isNaN(campo2.value)){
			switch(tipoValida){
				case 'menor':
					if(campo1.value<campo2.value){
						return true;
					}else{
						alert("O campo "+nomeCampo1+" deve ser menor do que "+nomeCampo2+".");
						campo1.focus();
						return false;
					}
				break;
				case 'maior':
					if(campo1.value>campo2.value)
						return true;
					else{
						alert("O campo "+nomeCampo1+" deve ser maior do que "+nomeCampo2+".");
						campo1.focus();
						return false;
					}
				break;
			}
		}else{
			alert("O campo "+nomeCampo2+" deve ser numérico. (Ex: 123)");
			campo1.focus();
			return false;
		}
	
	}else{
		alert("O campo "+nomeCampo1+" deve ser numérico. (Ex: 123)");
		campo1.focus();
		return false;
	}
}


// Valida que o numero decimal esta bem formatado e que tem apenas duas casas decimais

function convertePontoVirgulaCampo(objecto,evento,nomeCampo){
  valor = objecto.value;
  contador = 0;
  posicao = 0;
  for(j=0; j<valor.length; j++)
     if (((valor.substring(j,j+1))==".") || ((valor.substring(j,j+1))==",")) {
         tmp = valor.substring(j,j+1)
		 contador++;
         posicao=j;
     }

  if (contador>1) {
    alert("O campo "+nomeCampo+" encontra-se mal formatado.");
    objecto.value="";
    return false ;
  }
  if ((((valor.length-posicao)>3) || ((valor.length-posicao)<1)) && (posicao!=0)) {
    alert("A parte decimal do campo "+nomeCampo+" deve ter no máximo 2 dígitos.");
    objecto.value="";
    return false;
  }
  
 // if(valor.indexOf(".")<0 || valor.indexOf(","))
  	//valor = valor+"."+"00";

	if (validaNumeroPontoVirgula(evento)){
		n = (document.layers) ? 1:0;
		ie = (document.all) ? 1:0;
		codigoTecla = (ie)?evento.keyCode:evento.which;
		if (codigoTecla == "44") {
			objecto.value = objecto.value+"."
			return false;
		} else 
			return true;
	} else 
		return false;
}

function formataNumeroMilhares(valor,casasDec){
	
	posicao = valor.indexOf(".");
	
	if(posicao<0){
		valor = valor+".00";
		posicao = valor.indexOf(".");
	}
	var numInt = valor.substring(0,posicao);
	var numDec = valor.substring(posicao+1,valor.length);
	var tmp = '';
	if(numDec.length<casasDec)
		numDec = numDec+"0";
	tt = numInt.length%3;
	if(numInt.length>3){
		count = 0;
		if(tt>0)
			tmp = numInt.substring(0,tt)+",";
		else
			tmp = numInt.substring(0,tt);
		for(i=tt;i<numInt.length;i++){
			if(count==3){
				tmp = tmp+","+numInt.charAt(i);
				count=0;
			}else
				tmp = tmp+numInt.charAt(i);
			count++;
		}
		valor = tmp+"."+numDec;
	}else{
		valor = numInt+"."+numDec;
	}
	return valor;
}


function GetValueInPoint(fValue){
	var sValue='';
	for (i=0;i<=fValue.length;i++){
		var sChar=fValue.substring(i,i+1);
		if (sChar==','){
			sValue=sValue + '.';
		}
		else{
			sValue=sValue + sChar;
		};
	};
	return sValue;
};


function validaNumeroBarra(evento){
	n = (document.layers) ? 1:0;
	ie = (document.all) ? 1:0;
	codigoTecla=(ie)?evento.keyCode:evento.which;
	if ((codigoTecla<48 || codigoTecla>57)&&(codigoTecla!='47'))
	  return false;
}
