// JavaScript Document

//PopUp de Links Utilitários
function janelaLinks(caso,nome)
{
  window.open(caso,nome,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,menubar=no,width=556,height=415');
}

//Crítica aos campos de data (dd/mm/aaaa)
function check_dateDMA(field)
{
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	
	err = 0;
	DateValue = DateField.value;
	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;
	/* Always change date to 8 digits - string*/
	if (DateValue.length == 6) {
		avaliaAno_DMA(DateValue.substr(4,2));
	}
	if (DateValue.length != 8) {
		err = 19;
	}
	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0) {
		err = 20;
	}
	/* Validation of month*/
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12)) {
		err = 21;
	}
	/* Validation of day*/
	day = DateValue.substr(0,2);
	if (day < 1) {
		err = 22;
	}
	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29)) {
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28)) {
		err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
		err = 26;
	}
	/* if 00 ist entered, no error, deleting the entry */
	if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {
		DateField.value = day + seperator + month + seperator + year;
	}
	/* Error-message if err != 0 */
	else {
		alert("Data Inválida! Favor digitar: dd/mm/aaaa");
		DateField.select();
		DateField.focus();
	}
}


//Crítica aos campos de data (mm/aaaa)
function check_dateMA(field)
{
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	
	err = 0;
	DateValue = DateField.value;
	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
			DateTemp = DateTemp + DateValue.substr(i,1);
		}
	}
	DateValue = DateTemp;
	/* Always change date to 6 digits - string*/
	if (DateValue.length == 4) {
		avaliaAno_MA(DateValue.substr(2,2));
	}
	if (DateValue.length != 6) {
		err = 19;}
	/* year is wrong if year = 0000 */
	year = DateValue.substr(2,4);
	if (year == 0) {
		err = 20;
	}
	/* Validation of month*/
	month = DateValue.substr(0,2);
	if ((month < 1) || (month > 12)) {
		err = 21;
	}
	/* if 00 is entered, no error, deleting the entry */
	if ((month == 0) && (year == 00)) {
		err = 0; month = ""; year = ""; seperator = "";
	}
	/* if no error, write the completed date to Input-Field (e.g. 13/12/2001) */
	if (err == 0) {
		DateField.value = month + seperator + year;
	}
	/* Error-message if err != 0 */
	else {
		alert("Data Inválida! Favor digitar: mm/aaaa");
		DateField.select();
		DateField.focus();
	}
}

//Completa o valor do ano de AA para AAAA nos campos DD/MM/AAAA
function avaliaAno_DMA(anoAA)
{
	if ((anoAA >= 50) && (anoAA <=99)) {
		DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2);
	}
	if ((anoAA >= 00) && (anoAA <=49)) {
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	}
}


//Completa o valor do ano de AA para AAAA nos campos MM/AAAA
function avaliaAno_MA(anoAA)
{
	if ((anoAA >= 50) && (anoAA <=99)) {
		DateValue = DateValue.substr(0,2) + '19' + DateValue.substr(2,2);
	}
	if ((anoAA >= 00) && (anoAA <=49)) {
		DateValue = DateValue.substr(0,2) + '20' + DateValue.substr(2,2);
	}
}

//Roll-over nas imagens das guias nos headers

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function refresh(url){
//alert(url);
   window.location = url ;
//	      if (pos == "3" )
//              window.location = url & "?op_exc=Nada";  		
//		  if (pos == "2" ) 
//              window.location = url & "?op_exc=False";  		
//	      if (pos == "1" )
 //            window.location = url & "?op_exc=True";
}



/**
 *    Armazena o endereço atual no bookmark do usuario
 *    solucao cross browser (NS6+, FFOX1+ and IE5+)
 *    from: www.dynamicdrive.com/dynamicindex9/addbook.htm
 *
 */
function bookmark_me(){
   var url = self.location.href;
   var title = document.title;

   if (window.external) {
      window.external.AddFavorite(url,title)
   } else if (window.sidebar) {
      window.sidebar.addPanel(title, url,"");
   } else {
      alert("Infelizmente, seu navegador não suporta o bookmarking automático.\n\nPara incluir esta página no seu bookmarks, pressione as teclas CTRL+D ao mesmo tempo.");
   }
}

/**
 *    Abre uma janela de popup centralizada
 *    (testar com programas anti-popup)
 *
 */
function openPopup(sUrl, sTarget) {

   windowFeatures ="menubar=no,scrollbars=yes,location=no,favorites=no,resizable=no,status=yes,toolbar=no,directories=no";
   width=500;
   height=475;
   
   // Centralize the popup window.
   winLeft = (screen.width-width)/2;
   winTop = (screen.height-(height+110))/2;
   return window.open(sUrl, sTarget, "width="+width+",height="+height+",left=" + winLeft + ",top=" + winTop + ","+windowFeatures);
}


/**
 *    Identifica e retorna um layer de uma janela
 *
 * Parametros
 *    - pObjLayer
 *       Objeto ou nome de um layer a ser identificado e retornado
 *
 *    - pDocument
 *       Documento a ser analisado na identificacao do layer
 *
 */
function Dhtml_obtemLayer(
                  pObjLayer
               ,  pDocument
               )  {

   // inicializa o retorno
   var objLayer = null;

   // define que o objeto informado eh o retorno
   if (typeof pObjLayer != "string") {
      objLayer = pObjLayer;
   }
   
   // identifica o objeto a ser retornado pelo nome informado
   else if (   String(pDocument) != "undefined"
            && (
                  String(pDocument.getElementById) != "undefined"
               || String(pDocument.layers)         != "undefined"
               || String(pDocument.all)            != "undefined"
            )
           )   {

      if (document.getElementById && pDocument.getElementById(pObjLayer) != null) {
         objLayer = pDocument.getElementById(pObjLayer);
      }
      else if (document.layers && pDocument.layers[pObjLayer] != null)  {
         objLayer = pDocument.layers[pObjLayer];
      }
      else if (document.all) {
         objLayer = pDocument.all[pObjLayer];
      }

   }

   // valida o retorno
   if (String(objLayer) == "undefined")   {
      objLayer = null;
   }

   // retorna
   return objLayer;   
}

/**
 *    Torna um layer visivel
 *
 * Parametros
 *    - pObjLayer
 *       Objeto ou nome de um layer a ser identificado e retornado
 *
 *    - pDocument
 *       Documento a ser analisado na identificacao do layer
 *
 */
function Dhtml_mostraLayer(
                  pObjLayer
               ,  pDocument
               )  {

   // identifica o objeto a ser tratado
   object = Dhtml_obtemLayer(pObjLayer, pDocument);
   
   // realiza a operacao
   if (object && String(object) != "undefined")  {
      
      if (     document.layers
            || String(object.style) == "undefined"
         )  {
        object.visibility = 'visible';
      }
      else if (document.getElementById)  {
         object.style.visibility = 'visible';
         object.style.display = 'block';
      }
      else if (document.all) {
         //object.style.zIndex = 100;
         object.style.visibility = 'visible';
         object.style.display = 'block';
      }      
   }   
}


/**
 *    Torna um objeto invisivel
 *
 * Parametros
 *    - pObjLayer
 *       Objeto ou nome de um layer a ser identificado e retornado
 *
 *    - pDocument
 *       Documento a ser analisado na identificação do layer
 *
 */
function Dhtml_escondeLayer(
                  pObjLayer
               ,  pDocument
               )  {

   // identifica o objeto a ser tratado
   object = Dhtml_obtemLayer(pObjLayer, pDocument);

   // realiza a operacao
   if (object && String(object) != "undefined")  {

      if (     document.layers
            || String(object.style) == "undefined"
         )  {
        object.visibility = 'hidden';
        object.style.display = 'none';
      }
      else if (document.getElementById)  {
         object.style.visibility = 'hidden';
         object.style.display = 'none';
      }
      else if (document.all)  {
         object.style.visibility = 'hidden';
         object.style.display = 'none';
      }      
   }
}


/**
 *    Inverte a situacao de visibilidade de um objeto
 *
 * Parametros
 *    - pObjLayer
 *       Objeto ou nome de um layer a ser identificado e retornado
 *
 *    - pDocument
 *       Documento a ser analisado na identificacao do layer
 *
 */
function Dhtml_inverteVisibilidadeLayer(
                  pObjLayer
               ,  pDocument
               )  {

   // identifica o objeto a ser tratado
   object = Dhtml_obtemLayer(pObjLayer, pDocument);
   
   // realiza a operacao
   if (object && String(object) != "undefined")  {

      // verifica se o objeto esta´ visivel
      display = true;
      if (     document.layers
            || String(object.style) == "undefined"
         )  {
         display = (object.visibility == 'visible');
      }
      else if (document.all)  {
         display = (object.style.visibility != 'visible');
      }
      
      // inverte a situacao de visibilidade do objeto
   	if (display) {
   		Dhtml_mostraLayer(object);
   	}
   	else {
   		Dhtml_escondeLayer(object);
   	}	   	
   }   
}


/**
 *    Identifica e mostra na janela atual um dado informado em uma Location
 */
function pegaDado(pesquisa) {
	document.write(pegaDadoSemWrite(pesquisa));
}

/**
 *    Identifica um dado informado em uma Location
 */
function pegaDadoSemWrite(pesquisa, bTemQueAchar) {
   return Global_obtemParametro(
         unescape(window.location.search).substring(1)
      ,  pesquisa, "&"
      ,  bTemQueAchar
   );
}

/**
 *    Retorna o conteudo de uma String
 *
 * Parametros
 *    - psDados
 *       Dados a serem analisados
 *
 *    - psChave
 *       Chave a ser identificada
 *
 *    - pSepDados
 *       Separador dos dados
 *
 *    - pbTemQueAchar
 *       Define se a inexistencia do parametro deve retornar "undefined"
 *
 */
function Global_obtemParametro(psDados, psChave, psSepDados, pbTemQueAchar)   {
   
   // inicializa variaveis
   var dado   = psDados;
	var pos    = psDados.indexOf(psChave);
	var posFin = psDados.indexOf(psSepDados, pos);
   
   // verifica se foi encontrada a chave e esta deve existir
   if (pos < 0 && pbTemQueAchar == true)   {
      return 'undefined';
   }
   
   // verifica o retorno
	if (posFin == -1) {
		dado = dado.slice(pos+psChave.length);
	}  
	else {
		dado = dado.slice(pos+psChave.length, posFin);
	}
	
	// return
	return dado;	
}
