/**
 * ajax.js: comunicacao assincrona
 *
 **/

var ajax;

function openAjax()
{
  // se for internet explorer
  if( window.ActiveXObject )
  {
    ajax = new ActiveXObject( "Microsoft.XMLHTTP" );
  }
  else if( window.XMLHttpRequest )
  {
    ajax = new XMLHttpRequest();
  }
  else alert( "Desculpe, este navegador não suporta ajax." );
}

function ajaxLogin( frm )
{
  var param = "fldlogin=" + encodeURI( frm.fldlogin.value ) + "&fldsenha=" + encodeURI( frm.fldsenha.value );
  var url = frm.action + "?" + param;

  ajax.open( frm.method, url, true );
  ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  ajax.setRequestHeader( "Content-length", param.length );
  ajax.setRequestHeader( "Connection", "close" );

  ajax.onreadystatechange = function()
  {
    var statusBar = document.getElementById( 'loginStatusBar' );

    if( ajax.readyState < 4 )
    {
      statusBar.innerHTML = "por favor, aguarde...";
    }
    else if( ajax.readyState == 4 )
    {
      // quebra o retorno do comando em uma array
      var responseArray = ajax.responseText.split( "|" );
      
      if( responseArray[0] == "ERRNO_0" )
      {
        statusBar.innerHTML = responseArray[1];
        location.href = "painel.php";
      }
      else
      {
        statusBar.innerHTML = responseArray[1]
        frm.fldsenha.value = "";
        frm.fldsenha.focus();
      }
    }
  }

  ajax.send( param );
}

function cadastrarUsuario( frm )
{
  var param = "fldNome=" + encodeURI( frm.fldNome.value ) + "&fldEmail=" + encodeURI( frm.fldEmail.value ) + "&fldFoneFixo=" + encodeURI( frm.fldFoneFixo.value );
  param += "&fldFoneCel=" + encodeURI( frm.fldFoneCel.value ) + "&fldLogin=" + encodeURI( frm.fldLogin.value ) + "&fldSenha=" + encodeURI( frm.fldSenha.value );
  param += "&fldDtNasc=" + encodeURI( frm.fldDtNasc.value ) + "&fldFuncao=" + encodeURI( frm.fldFuncao.value ) + "&selUsuario=" + encodeURI( frm.selUsuario.value );
  param += "&selstatus=" + encodeURI( frm.selstatus.value );
  param += getPermissoesPostUrl( new Array( frm.chknoticias, frm.chkeventos, frm.chkcalendario, frm.chkvideos, frm.chkenquetes, frm.chkdownload, frm.chkrelatorio, frm.chkusuario, frm.chkvestibular ) );
  param += "&listaDisciplina=" + encodeURI( frm.listaDisciplina.value );
  
  var url = frm.action + "?" + param;
  
  ajax.open( "POST", url, true );
  ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  ajax.setRequestHeader( "Content-length", param.length );
  ajax.setRequestHeader( "Connection", "close" );
  
  ajax.onreadystatechange = function()
  {
    var statusBar = document.getElementById( "cadastroStatusBar" );
    
    if( ajax.readyState < 4 )
    {
      statusBar.innerHTML = "por favor, aguarde...";
    }
    else if( ajax.readyState == 4 )
    {
      var responseArray = ajax.responseText.split( "|" );
      
      if( responseArray[0] == "ERRNO_0" )
      {
        statusBar.innerHTML = responseArray[1];
        location.href = "painel.php";
      }
      else statusBar.innerHTML = responseArray[1];
    }
  }
  
  ajax.send( param );
}

function alterarCadastroUsuario( frm )
{
  var param = "idtable=" + encodeURI( frm.idtable.value ) + "&fldNome=" + encodeURI( frm.fldNome.value ) + "&fldEmail=" + encodeURI( frm.fldEmail.value );
  param += "&fldFoneFixo=" + encodeURI( frm.fldFoneFixo.value ) + "&fldFoneCel=" + encodeURI( frm.fldFoneCel.value ) + "&fldLogin=" + encodeURI( frm.fldLogin.value );
  param += "&fldSenha=" + encodeURI( frm.fldSenha.value ) + "&fldDtNasc=" + encodeURI( frm.fldDtNasc.value ) + "&fldFuncao=" + encodeURI( frm.fldFuncao.value );
  param += "&selUsuario=" + encodeURI( frm.selUsuario.value ) + "&selstatus=" + encodeURI( frm.selstatus.value );
  param += getPermissoesPostUrl( new Array( frm.chknoticias, frm.chkeventos, frm.chkcalendario, frm.chkvideos, frm.chkenquetes, frm.chkdownload, frm.chkrelatorio, frm.chkusuario, frm.chkvestibular ) );
  
  var url = frm.action;
  
  ajax.open( "POST", url, true );
  
  ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  ajax.setRequestHeader( "Content-length", param.length );
  ajax.setRequestHeader( "Connection", "close" );

  ajax.onreadystatechange = function()
  {
    var statusBar = document.getElementById( "cadUsuarioStatusBar" );
    
    if( ajax.readyState < 4 )
    {
      statusBar.innerHTML = "por favor, aguarde...";
    }
    else if( ajax.readyState == 4 )
    {
      var responseArray = ajax.responseText.split( "|" );
      
      if( responseArray[0] == "ERRNO_0" )
      {
        statusBar.innerHTML = responseArray[1];
        location.href = "painel.php";
      }
      else statusBar.innerHTML = responseArray[1];
    }
  }
  
  ajax.send( param );
}

function excluirCadastroUsuario( userID )
{
	var url = "usuarios/excluiusr.php?userID=" + userID;
	
	if( !confirm( "tem certeza que deseja excluir este usuário?" ) )
	{
		return false;
	}
	
	ajax.open( "GET", url, true );
	ajax.onreadystatechange = function()
	{
		if( ajax.readyState == 4 )
		{
			if( ajax.responseText == "-1" )
			{
				alert( "o administrador não pode ser excluido" );
			}
			else if( ajax.responseText == "1" )
			{
				alert( "erro ao executar a requisição. desculpe" );
			}
			else location.href = location.href;
		}
	}
	ajax.send( null );
}

function getDisciplinasFromProfessor( cursoID, userID, responseSelect )
{
	var url = "_ajax/GetDisciplinasFromProfessor.ajax.php?cursoID="+cursoID+"&userID="+userID;
	
	ajax.open( "GET", url, true );
	ajax.onreadystatechange = function()
	{
		if( ajax.readyState == 4 )
		{
			var json = eval( "(" + ajax.responseText + ")" );
      
      responseSelect.options.length = 1;
      
      for( var i = 0; i < json.disciplina.length; i++ )
      {
        var option = document.createElement( "OPTION" );
        option.setAttribute( "value", json.disciplina[i].id );
        option.appendChild( document.createTextNode( "> " + json.disciplina[i].nome ) );
        responseSelect.appendChild( option );
      }
      
      responseSelect.disabled = false;
		}
	}
	ajax.send( null );
}

function listDisciplinaByCurso( cursoID )
{
	var url = "_ajax/ListaDisciplinas.ajax.php?cursoID="+cursoID;
	
	ajax.open( "GET", url, true );
	ajax.onreadystatechange = function()
	{
		var panel = document.getElementById( "selDisciplinaResponsePanel" );
		if( ajax.readyState == 4 )
		{
			panel.innerHTML = ajax.responseText;
		}
	}
	ajax.send( null );
}

function enviaEmailEsqueciSenha( frm )
{
  var param = "textNome=" + encodeURI( frm.textNome.value ) + "&textLogin=" + encodeURI( frm.textLogin.value ) + "&textEmail=" + encodeURI( frm.textEmail.value );
  var url   = frm.action + "&" + param;
  
  ajax.open( "POST", url, true );
  
  ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  ajax.setRequestHeader( "Content-length", param.length );
  ajax.setRequestHeader( "Connection", "close" );
  
  ajax.onreadystatechange = function()
  {
    var bar = document.getElementById( "ajaxResponse" );
    
    if( ajax.readyState == 4 )
    {
      frm.reset();
      bar.innerHTML = ajax.responseText;
    }
  }
  
  ajax.send( param );
}

function trocarSenha( frm )
{
  var param = "textLogin=" + encodeURI( frm.textLogin.value ) + "&textNovaSenha=" + encodeURI( frm.textNovaSenha.value );
  var url   = frm.action + "?" + param;
  
  ajax.open( "POST", url, true );
  
  ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  ajax.setRequestHeader( "Content-length", param.length );
  ajax.setRequestHeader( "Connection", "close" );
  
  ajax.onreadystatechange = function()
  {
    var bar = document.getElementById( "ajaxResponse" );
    if( ajax.readyState == 4 )
    {
      frm.textNovaSenha.value = "";
      frm.textNovaSenha.disabled = true;
      
      frm.textConfirmaNovaSenha.value = "";
      frm.textConfirmaNovaSenha.disabled = true;
      
      document.getElementById( "btnsubmit" ).disabled = true;
      bar.innerHTML = ajax.responseText;
    }
  }
  
  ajax.send( param );
}

function showCadastros( table,widths,titles,names,limit,order )
{
  var url = "_ajax/ListaCadastros.ajax.php?table="+table+"&fldWidths="+widths+"&fldTitulos="+titles+"&fldNomes="+names+"&fldLimiter="+limit+"&fldOrder="+order;
  
  ajax.open( "GET", url, true );
  ajax.onreadystatechange = function()
  {
    var panel = document.getElementById( "showCadastrosPanel" );
    
    if( ajax.readyState == 4 )
    {
      panel.innerHTML = ajax.responseText;
    }
  }
  ajax.send( null );
}

function enviaEmailSuporte( frm )
{
	var param = "textNomeUsuario=" + encodeURI( frm.textNomeUsuario.value ) + "&textEmail=" + encodeURI( frm.textEmail.value );
	param += "&textLogin=" + encodeURI( frm.textLogin.value ) + "&textFone=" + encodeURI( frm.textFone.value ) + "&selAssunto=" + encodeURI( frm.selAssunto.value );
	param += "&textPaginaErro=" + encodeURI( frm.textPaginaErro.value ) + "&textareaObservacoes=" + encodeURI( frm.textareaObservacoes.value );
	
	var url = frm.action + "?" + param;
	
	ajax.open( "POST", url, true );
	
	ajax.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
	ajax.setRequestHeader( "Content-length", param.length );
	ajax.setRequestHeader( "Connection", "close" );
	
	ajax.onreadystatechange = function()
	{
		var panel = document.getElementById( "ajaxResponse" );
		
		if( ajax.readyState == 4 )
		{
			frm.reset();
			frm.textNomeUsuario.focus();
			panel.innerHTML = ajax.responseText;
		}
	}
	
	ajax.send( param );
}

function getPermissoesPostUrl( conteudos )
{
  var url = new String();
  
  for( var i = 0; i < conteudos.length; i++ )
  {
    if( conteudos[i].checked )
    {
      url += "&" + conteudos[i].name + "=" + encodeURI( conteudos[i].value );
    }
  }
  
  return url;
}

function getValueFromRadioGroup( radioGroup )
{
  for( var i = 0; i < radioGroup.length; i++ )
  {
    if( radioGroup[i].checked )
    {
      return radioGroup[i].value;
    }
  }
  return null;
}

openAjax();