/********************************************************************************************/
/* AHAH functions by Phil Ballard                                                           */
/* This code is intended for study purposes.                                                */
/* You may use these functions as you wish, for commercial or non-commercial applications,  */
/* but please note that the author offers no guarantees to their usefulness, suitability or */
/* correctness, and accepts no liability for any losses caused by their use.                */
/********************************************************************************************/

function callAHAH(url, param, pageElement, callMessage, errorMessage) {
     document.getElementById(pageElement).innerHTML = callMessage;
     try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(e) {
       try {
       req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
       } catch (e) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
         } catch (E) {
          req = false;
         } 
       } 
     }
	myRand=parseInt(Math.random()*99999999); // cache buster
	var myurl = url + "&rand=" + myRand;
	//alert(myurl);
    req.onreadystatechange = function() {responseAHAH(pageElement, errorMessage, myurl);};
    req.open("POST",myurl,true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send(param);
  }

function responseAHAH(pageElement, errorMessage, pURL) {
	var output = '';
	if(req.readyState == 4) {
		if(req.status == 200) {
			output = req.responseText;
			if (output.length < 10) {
				alert(output);
			}
			if (output=='END') {
				alert('A SESSÃO EXPIROU, FAVOR EFETUE O LOGIN NOVAMENTE !!!');
				top.location.href = "index.asp";
			} else {
				document.getElementById(pageElement).innerHTML = output;
			}
		} else {
			strLink = "<a href=\""+pURL+"\" target=\"_blank\">Debug</a>";
			document.getElementById(pageElement).innerHTML = errorMessage+"\n<br>Cod. Req.: "+req.status+"<br><br>"+strLink;
		}
	}
}

function callAHAH_Obj(url, param, pageElement, callMessage, errorMessage) {
  try {
     pageElement.innerHTML = callMessage;
  } catch(e) {
	 var ObjDiv = parent.mainFrame.document.getElementById('conteudo');
	 pageElement = ObjDiv;
	 //alert('...');
  }
  try {
   req = new XMLHttpRequest(); /* e.g. Firefox */
  } catch(e) {
   try {
	 req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
   } catch (e) {
	 try {
	   req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
	 } catch (E) {
	   req = false;
	 } 
   } 
 }
 req.onreadystatechange = function() {responseAHAH_Obj(pageElement, errorMessage);};
 myRand=parseInt(Math.random()*99999999); // cache buster
 var myurl = url + "&rand=" + myRand;
 //alert(myurl);
 req.open("POST",myurl,true);
 req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 req.send(param);
}

function responseAHAH_Obj(pageElement, errorMessage) {
   var output = '';
   if(req.readyState == 4) {
      if(req.status == 200) {
         output = req.responseText;
		 if (output=='END') {
			alert('A SESSÃO EXPIROU, FAVOR EFETUE O LOGIN NOVAMENTE !!!');
			//alert(output);
			top.location.href = "index.asp";
		 } else {
         	pageElement.innerHTML = output;
		 }
      } else {
         pageElement.innerHTML = errorMessage+"\n Cod. Req.: "+req.status;
      }
   }
}

function getListBoxItens(pObjLB) {
	var vResult = '';
	var iFirst = 0;
	//alert('List - Num.Itens = '+pObjLB.options.length);
	for (j = 0; j < pObjLB.options.length; j++){	
		if (pObjLB.options[j].selected) {
			if (iFirst == 0) {
				vResult = pObjLB.options[j].value;
				iFirst = 1;
			} else {
				vResult = vResult+','+pObjLB.options[j].value;
			}
		}
	}
	//alert(vResult);	
	return vResult;
}

function getFormValues(obj) {
  var queryStr = "grav=S";
	var intNumEvts = 0;
	var objType = null;
	if (obj) { intNumEvts = obj.length-1; }
	queryStr = queryStr + "&numevts="+intNumEvts;
	//alert(obj.length);
  for (i = 0; i < obj.length; i++) {
		objType = obj.elements[i].type;
		//alert(objType);
		if (objType=='radio') {
			if (obj.elements[i].checked) {
				queryStr = queryStr + "&"+obj.elements[i].name+"="+obj.elements[i].value;
			}
		} else {
			if (objType=='checkbox') {
				if (obj.elements[i].checked) {
					queryStr = queryStr + "&"+obj.elements[i].name+"="+obj.elements[i].value;
				}
			} else {
				//alert('Pos '+(i+1)+'.1');
				if (objType=='select-multiple') {
					//alert('Pos '+(i+1)+'.2');
					var objName = "";
					var list = "";
					//alert('Pos '+(i+1)+'.3');
					objName = obj.elements[i].name;
					//alert(objName);
					//alert('Pos '+(i+1)+'.4');
					list = getListBoxItens(obj.elements[i]);
					//alert('Pos '+(i+1)+'.5');
					queryStr = queryStr + "&"+objName+"="+list;
					//alert(i + ' = ' + obj.elements[i].value);
				} else {
					queryStr = queryStr + "&"+obj.elements[i].name+"="+encodeURI(obj.elements[i].value);
					//alert(i + ' = ' + encodeURI(obj.elements[i].value));
				} // Fim Select-Multiple
			} // Fim If CheckBox
		} // Fim If Radio
  }
    //queryStr = queryStr.substr(0, (queryStr.length - 1));
	//alert(queryStr);
    return queryStr;
}

function jumpMenu(pCod, pMat, pPage, pParam, pDiv) {
	document.getElementById(pDiv).innerHTML = '&nbsp;';
	callAHAH(pPage+'?cod='+pCod+'&mat='+pMat+pParam,'',pDiv,wait_msg,'Error:');	
	//OpenDebug('p_rel_notas_frequencias_lst_turmas.asp?cod='+pCod+'&mat='+pMat+'&cc='+pCC);
}

function jumpMenu_01(pCod, pMat, pCC, pDiv) {
	document.getElementById(pDiv).innerHTML = '&nbsp;';
	callAHAH('p_rel_notas_frequencias_lst_turmas.asp?cod='+pCod+'&mat='+pMat+'&cc='+pCC,'','lst_turma',wait_msg,'Error:');	
	//OpenDebug('p_rel_notas_frequencias_lst_turmas.asp?cod='+pCod+'&mat='+pMat+'&cc='+pCC);
}

function jumpMenu_02(pCod, pMat, pCC, pCT) {
	callAHAH('p_rel_notas_frequencias_lst_disciplinas.asp?cod='+pCod+'&mat='+pMat+'&cc='+pCC+'&ct='+pCT,'','lst_disciplina',wait_msg,'Error:');
	//OpenDebug('p_rel_notas_frequencias_lst_disciplinas.asp?cod=<%=strCod%>&mat=<%=strMatr%>&cc=<%=strCC%>&ct='+this.options[this.selectedIndex].value); 
}

function postForm(objForm, url, wait_msg) {
	var param = getFormValues(objForm); 
	//alert(url+param);
	//OpenDebug(url+param);
	//alert(wait_msg);
	callAHAH(url,param,'conteudo',wait_msg,'Error:');
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function fn(form,field) {
	var next=0, found=false
	var f=form
	if(event.keyCode!=13) return;
	for(var i=0;i<f.length;i++)	{
		if(field.name==f.item(i).name){
			next=i+1;
			found=true
			break;
		}
	}
	while(found){
		if( f.item(next).disabled==false &&  f.item(next).type!='hidden'){
			f.item(next).focus();
			f.item(next).select();
			break;
		} else {
			if(next<f.length-1)
				next=next+1;
			else
				break;
		}
	}
}

//formatar nº com casas decimais
function formatanumero(numero,decimais)
 { 
   if (isNaN(numero)) { return 0}; 
   if (numero=='') { return 0}; 
   
   var IsNegative=(parseInt(numero)<0);
   if(IsNegative)numero=-numero;
 
   var snum = new String(numero); 
   var sec = snum.split('.'); 
   var whole = parseInt(sec[0]); 
   var result = ''; 
   if(sec.length > 1){ 
  var dec = new String(sec[1]); 
  dec = parseInt(dec)/Math.pow(10,parseInt(dec.length-decimais-1));
  Math.round(dec);
  dec = parseInt(dec)/10;
  
  if(IsNegative)
  {
    var x = 0-dec;
    x = Math.round(x);
    dec = - x;
  }
  else
  {
    dec = Math.round(dec);
  }
 
  /*
   * If the number was rounded up from 9 to 10, and it was for 1 'decimal'
   * then we need to add 1 to the 'whole' and set the dec to 0.
   */
  if(decimais==1 && dec==10)
  {
    whole+=1;
    dec="0";
  }
 
  dec = String(whole) + "." + String(dec); 
  var dot = dec.indexOf('.'); 
  if(dot == -1){ 
    dec += '.'; 
    dot = dec.indexOf('.'); 
  }
  var l=parseInt(dot)+parseInt(decimais);
  while(dec.length <= l) { dec += '0'; } 
  result = dec; 
   } else{ 
  var dot; 
  var dec = new String(whole); 
  dec += '.'; 
  dot = dec.indexOf('.'); 
  var l=parseInt(dot)+parseInt(decimais);
  while(dec.length <= l) { dec += '0'; } 
  result = dec; 
   } 
   if(IsNegative)result="-"+result;
   return result; 
} 

function Formatar(campo,e) 
{
var cod="", val="";
if(document.all) {cod=event.keyCode;} else {cod=e.which;}   
//s_cod.innerHTML = cod;
if(cod == 8 || cod == 13) return;
if (cod == 44) {
	//alert("Utilize o '.' no lugar da ','!");
	cod=46;
	//campo.focus(); return false;
}
//alert(cod);
if (cod < 46 || cod > 57 )
{
	if (cod < 44 || cod > 57) alert("Digite somente Caracteres Numéricos!");
	cod=0;
	campo.focus(); return false;
}
var caract = String.fromCharCode(cod);  
if (cod == 46) { caract = '.'; }
val = campo.value; //alert(val);
if (cod == 46) {
	if (val.indexOf('.') > -1) { return false;}
}
var h = (val.substring(0,val.indexOf('.')));
var m = (val.substring(val.indexOf('.')+1,val.length));
if (h=='' && m>1 && m<10 && cod!=46){ return false; }
if (h=='' && m==1 && cod!=46 && cod!=48){ return false; }
if (h=='' && m==0 && m.length==3){ return false; }
if (h.length==1 && m.length==2){ return false; }
if (m=='10'){ campo.value='10.00'; }
val+= caract; //alert(val);
tam=campo.value.length; 
//s_h.innerHTML = val;
//s_h.innerHTML = h;
//s_m.innerHTML = m;
//return false;                                  
}

function OpenDebug(pURL) {
	window.open(pURL, "Debug", "resizable=no, toolbar=no, status=yes, menubar=no, scrollbars=yes, width=790, height=580, top=1, left=1");
}

//document.onKeyPress=Formatar;
function RelWindow(pTitulo, pForm, pURL, pWMsg) {
	//alert('1');
    //myWindow = window.open("rel.asp?tit="+pTitulo, "Relatorio", "resizable=yes, toolbar=no, status=no, menubar=no, scrollbars=yes, width=790, height=580, top=1, left=1");
		//alert("Relatório");
	var param = getFormValues(pForm); 
	OpenDebug(pURL+"&"+param);
	/*
	myWindow = window.open("about:blank", "myWindow", "resizable=no, toolbar=no, status=no, menubar=no, scrollbars=yes, width=790, height=580, top=1, left=1");
	//alert('2');
	text = "Se a janela nao estava abrindo\ntalvez seja porque voce tenha um\nprograma bloqueador de pop-up!\nObservacao » O windows XP service pack 2\nbloqueia pop-ups!";
    if(myWindow == null) { alert(text); return; } else {
		//alert('3 - '+pTitulo);
		myWindow.document.write('<html><head><title>Relatório '+pTitulo+'</title>');
		//alert('4 - '+pTitulo);
		myWindow.document.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');
		myWindow.document.write('<link href="style.css" rel="stylesheet" type="text/css" />');
		myWindow.document.write('<link href="interface.css" rel="stylesheet" type="text/css" />');
		myWindow.document.write('<link href="academusonline.css" rel="stylesheet" type="text/css" />');
		myWindow.document.write('</head>');
		myWindow.document.write('<body onLoad="window.focus();window.print();alert(\'3\')">');
		myWindow.document.write('<div id="conteudo">');
		myWindow.document.write('<div align="center" style=" position:relative; top:100px;"><a href="javascript:window.print();">Imprimir</a>&nbsp;-&nbsp;<a href="javascript:window.close();">Fechar Janela</a></div>');
		myWindow.document.write('</div></body></html>');
		var ObjDiv = myWindow.document.getElementById('conteudo');
		//alert('4');
		//alert(ObjDiv.innerHTML);
		var param = getFormValues(pForm); 
		//alert('5');
		callAHAH_Obj(pURL,param,ObjDiv,pWMsg,'Error:');
	}*/
}


 // w w w . s i l v i o g u s t a v o . c o m   //   // &#8226;            TIPO: Função                                                       &#8226;

 // &#8226; COMPATIBILIDADE: IE 4.x - IE 5.x - IE 6.x                                     &#8226;

 // &#8226;       DESCRIÇÃO: Função para formatar campos do tipo data                     &#8226;

 // &#8226;      PARAMETROS: Formulário  string  Nome do formulário                       &#8226;

 // &#8226;                  Campo       string  Nome do campo                            &#8226;

 // &#8226;                  TeclaPres   string  event                                    &#8226;

 // &#8226;       COMO USAR: Para usar chama-se a função no evento onKeyUp                &#8226;

 // &#8226;            DATA: 06/03/2002                                                   &#8226;

 // &#8226;           AUTOR: Silvio Gustavo Nobre da Silva                                &#8226;

 // &#8226;          E-MAIL: eu@silviogustavo.com                                         &#8226;

 // 

 

function FormataData(Formulario, Campo, TeclaPres) {
   var tecla = TeclaPres.keyCode;
   var strCampo;
   var vr;
   var tam;
   eval("strCampo = document." + Formulario + "." + Campo);

	 vr = strCampo.value;
	 if (tecla==46) {
		 vr = "";
		 strCampo.value = vr;
		 strCampo.focus();
	 }
	 //alert(tecla);
   vr = vr.replace(".", "");
   vr = vr.replace("/", "");
   vr = vr.replace("/", "");
   vr = vr.replace("/", "");
   vr = vr.replace("/", "");
   tam = vr.length + 1;
	 
   //Back Space / Tabulação
   if (tecla != 9 && tecla != 8 && tecla != 111)
   {
     if (tam == 3)
     {
       strCampo.value = vr.substr(0, tam - 1) + '/' + vr.substr(tam - 1, tam);
       return;
     }
     if (tam >= 5 && tam <= 10)
     {
       strCampo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 4); 
       return;
     }
   }
 }
 
/* ####### Função para Validação de Datas ############ */ 
function check_date(field){ 
	var checkstr = "0123456789"; 
	var DateField = eval(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; 
	//alert(DateValue);
	/* Deleta todos os caracteres exceto 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; 
	/* Sempre modifica a data para 8 digitos*/ 
	/* Se o ano for digitado com 2 digitos assume 20xx */ 
	if (DateValue.length == 6) { 
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); } 
		if (DateValue.length != 8) { 
		err = 1;} 
		/* ano é considerado inválido se for = 0000 */ 
		year = DateValue.substr(4,4); 
		if (year == 0) { 
			err = 1; 
		} 
		/* Validação do Mês */ 
		month = DateValue.substr(2,2); 
		if ((month < 1) || (month > 12)) { 
			err = 1; 
		} 
		/* Validação do Dia */ 
		day = DateValue.substr(0,2); 
		if (day < 1) { 
			err = 1; 
		} 
		/* Validação do ano bissexto referente ao mês de fevereiro */ 
		if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) { 
			leap = 1; 
		} 
		if ((month == 2) && (leap == 1) && (day > 29)) { 
			err = 1; 
		} 
		if ((month == 2) && (leap != 1) && (day > 28)) { 
			err = 1; 
		} 
		/* Validação dos outros meses */ 
		if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) { 
			err = 1; 
		} 
		if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) { 
			err = 1; 
		} 
		/* Se não houver erro escreve a data completa no campo input com os separadores (ex. 07/01/2004) */ 
		if (err == 0) { 
			DateField.value = day + seperator + month + seperator + year; 
		} 
		/* Escreve mensagem de erro se err != 0 */ 
		else { 
			//alert("Data Incorreta!!!"); 
			DateField.select(); 
			DateField.focus(); 
			return false; 
		} 
	return (true); 
} 

//******************************************************************************************
//Development by Julio Cezar da Silva (julio_cs@terra.com.br/julio@southern.com.br)
//http://planeta.terra.com.br/informatica/iportal
//******************************************************************************************
//Explicacao do Script
//******************************************************************************************
//Funcao javascript que verifica o uso de caracters invalidos num determinado campo de texto
//assim ele verificará os caracters digitados
//******************************************************************************************

//Funcao que concatena numa variavel um string contendo todos os caracters nao permitidos
//no campo de login da southern Networks 
	function caracteres_invalidos()
	{  
		var strinvalido  
		strinvalido = ' !"#$%&\'()*+,-./:;<=>?@?!£¢¬§ªº°¹²³';  
		//strinvalido+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		strinvalido+= 'àèìòùâêîôûäëïöüáéíóúãõÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÁÉÍÓÚÃÕ';
		strinvalido+= '[\\\\]^_`';  
		strinvalido+= '{|}~';  
		return strinvalido  	
	}
	
//Funcao que faz a verificacao do campo	 
	function testa_login_senha()
	{
		//alert('testa');
		var struser = document.forms[0].user.value; //Recebe o valor do campo
		var strlogin = document.forms[0].pass.value; //Recebe o valor do campo
		var caracteres = caracteres_invalidos(); //recebe a string com caracters invalidos
		var result = true;
		//alert(struser+' - '+strlogin);
		for (i = 0;i<caracteres.length;i++) //loop executado de 0 ao numero total de caracters invalidos
		{
			//alert(i);
			if(strlogin.indexOf(caracteres.charAt(i)) != -1) //verifica se o value do campo strlogin contem alguma caracter invalido
			{
				var strerror = caracteres.substring(i,i+1); //recebe o caracter errado
				var result = false;
				window.alert("Você digitou o seguinte caracter invalido:" + "  " + strerror + "  "); //alerta mostrando o caracter digitado errado
				selectAll('login.pass');
				//alert('Vai sair');
				break; //interrompe o loop
			}
		}
		if (result) {
			document.forms[0].submit();
		}
		return result;
	}
	
//Funcao que faz a verificacao do campo	 
	function altera_senha()
	{
		var strlogin = document.forms[0].nsenha.value; //Recebe o valor do campo
		var caracteres = caracteres_invalidos(); //recebe a string com caracters invalidos
		var result = true;
		for (i = 0;i<caracteres.length;i++) //loop executado de 0 ao numero total de caracters invalidos
		{
			if(strlogin.indexOf(caracteres.charAt(i)) != -1) //verifica se o value do campo strlogin contem alguma caracter invalido
			{
				var strerror = caracteres.substring(i,i+1); //recebe o caracter errado
				var result = false;
				window.alert("Você digitou o seguinte caracter invalido:" + "  " + strerror + "  "); //alerta mostrando o caracter digitado errado
				break; //interrompe o loop
			}
		}
		if(result)
		{
			postForm(document.forms[0], 'altera_senha.asp?pf=1', wait_msg);
		}
		
	}
/*
<form name="verifica" id="verifica" method="post" action="teste2.htm">
  <p>
    <input type="text" name="login" id="login" onKeyUp="javascript:this.value=this.value.toLowerCase();">
  </p>
  <p>
    <input type="button" name="button" value="OK" onClick="verifica_login(this.form);">
  </p>
</form>
*/

function PostRQT(pForm) {
	var testDI = check_date("frm1.fielddi");
	var testDF = check_date("frm1.fielddf");
	//alert(testDI);
	if ((testDI == true) && (testDF == true)) {
		RelWindow('Quantitativo por Turma', pForm, 'p_rel_quantitativos_turma_view.asp?rel=1', wait_msg);
	} else {
		if (testDI != true) {  
			alert("A DATA INICIAL É INVÁLIDA");
			frm1.fielddi.focus();
		}
		if (testDF != true) {  
			alert("A DATA FINAL É INVÁLIDA");
			frm1.fielddf.focus();
		}
	}
	
}

function qualquerData(pCheck, pDI, pDF) {
	if (pCheck.checked) {
		//alert("SIM");
		frm1.fielddi.disabled = true;
		frm1.fielddf.disabled = true;
	}	else {
		frm1.fielddi.disabled = false;
		frm1.fielddf.disabled = false;
		frm1.fielddi.value = pDI;
		frm1.fielddf.value = pDF;
	}
}
 
function selectAll(theField) {
	//alert(theField);
var tempval=eval("document."+theField);
tempval.focus();
tempval.select();
tempval.focus();
}

function selectAllObj(ObjField) {
	//alert(ObjField);
	//var tempval=eval("document."+theField);
	ObjField.focus();
	ObjField.select();
	ObjField.focus();
}


