function RequisicaoBrowser () {
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest;
    }
    
    var aryOtherTypes = ['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Microsoft.XMLDOM'];
    
    for (intA=0; intA < aryOtherTypes.length; intA++) {
        try {
            return new ActiveXObject(aryOtherTypes[intA]);
        } catch(e) {
        }
    }    
}

function LocalizarElementosFormulario (objElementosForm) {
    var strElementosEnviar = "";        

    this.ConcatenarElementos = function (strName, strValue) { 
        if (strElementosEnviar.length > 0) { 
            strElementosEnviar += "&";
        }
        strElementosEnviar += encodeURIComponent(strName) + "=" + encodeURIComponent(strValue);
    }        

    for (intElementosForm=0; intElementosForm < objElementosForm.length; intElementosForm++) {
        switch(objElementosForm[intElementosForm].type) {
            case 'text': case 'password': case 'hidden': case 'textarea': case 'select-one':
                this.ConcatenarElementos(objElementosForm[intElementosForm].name,objElementosForm[intElementosForm].value);
                break;
            case 'checkbox':
                if (objElementosForm[intElementosForm].checked == true) {
                    this.ConcatenarElementos(objElementosForm[intElementosForm].name,objElementosForm[intElementosForm].value);
                }
                break;
            case 'radio':
                if (objElementosForm[intElementosForm].checked == true) {
                    this.ConcatenarElementos(objElementosForm[intElementosForm].name,objElementosForm[intElementosForm].value);
                }
                break;
        }
    }

    return strElementosEnviar;
}

function GetValueSelected (strObjectParent,strObject) {
    var objElementosForm = document.getElementById(strObjectParent).elements;
    
    for (intElementosForm=0; intElementosForm < objElementosForm.length; intElementosForm++) {
        switch(objElementosForm[intElementosForm].type) {
            case 'text': case 'password': case 'hidden': case 'textarea': case 'select-one':
                if (objElementosForm[intElementosForm].name == strObject) {
                    return objElementosForm[intElementosForm].value;
                }
                break;
            case 'checkbox': case 'radio':
                if (objElementosForm[intElementosForm].name == strObject) {
                    if (objElementosForm[intElementosForm].checked == true) {
                        return objElementosForm[intElementosForm].value;
                    }
                }
                break;
        }
    }
}

function CarregarDados (intOpcao,strParametros,strObjetoCorpo) {
    var objBrowser   = new RequisicaoBrowser ();
    var objDadosTela = new MostrarDadosTela ();
    var objCorpo     = document.getElementById(strObjetoCorpo);
    
    if ((intOpcao == 9) || (intOpcao == 11) || (intOpcao == 12) || (intOpcao == 14))  {
        if (readCookie("Cej.UserCode") == null) {
            EfetuarLogin();
            return false;
        } else {
            strParametros = '?matricula=' + readCookie('Cej.UserCode')
        }
    }

    objDadosTela.MostrarStatusCarregando (objCorpo);   

    var strArquivo = objDadosTela.LocalizarArquivo (intOpcao);
    
    strArquivo = strArquivo + strParametros;

    objBrowser.open("POST", strArquivo, true);     
    objBrowser.onreadystatechange = function () {        
        if (objBrowser.readyState == 4) {
            if (objBrowser.status == 200) {
                this.strResposta = objBrowser.responseText;                
                this.strResposta = this.strResposta.replace(/\+/g," ");
                this.strResposta = unescape(this.strResposta);
                
                objDadosTela.MostrarInformacoes (objCorpo,this.strResposta);
                
                ExecScript(this.strResposta);
            }
        }        
    }           
    
    objBrowser.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");            
    objBrowser.send("set=get");
}

function LoadInitialData () {
    if (readCookie("Cej.UserName") != null) {
        window.document.getElementById("menu_dadosusuario").innerHTML = "<span style='color: #585858; font-weight: bold;'>Bem vindo</span>&nbsp;" + readCookie("Cej.UserName");
        window.document.getElementById("menu_logoff_sair").innerHTML = "Sair"
        window.document.getElementById("menu_alterar_senha_alterar").innerHTML = "Alterar senha"
    }
}

function MostrarDadosTela () {
    this.LimparTela = function (objTela) {
        objTela.innerHTML = "";
    }
       
    this.MostrarStatusCarregando = function (objCorpo) { 
        this.LimparTela (objCorpo);
        
        this.objNovoElemento = document.createElement("div");
        this.objNovoElemento.className = "CarregarDados";
        this.objNovoElemento.innerHTML = "Carregando, aguarde...<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
        
        objCorpo.appendChild(this.objNovoElemento);
    }
    
    this.MostrarInformacoes = function (objCorpo,objResposta) {
        objCorpo.innerHTML = objResposta;
    }
    
    this.LimparCombo = function (objCorpo) { 
        this.LimparTela (objCorpo);
        
        this.objNovoElemento = document.createElement("option");
        this.objNovoElemento.value = '';
        this.objNovoElemento.innerHTML = "Aguarde";
        
        objCorpo.appendChild(this.objNovoElemento);
    }
    
    this.ReiniciarCombo = function (objCorpo) { 
        this.LimparTela (objCorpo);
        
        this.objNovoElemento = document.createElement("option");
        this.objNovoElemento.value = '';
        this.objNovoElemento.innerHTML = "Selecione";
        
        objCorpo.appendChild(this.objNovoElemento);
    }

        
    this.LocalizarArquivo = function (intOpcao) {
        switch (intOpcao) {
            case 0 :
                return "cej_portal/pagHome.php"
                break;  
            case 1 :
                return "cej_portal/pagInstitucional.php"
                break;              
            case 2 :
                return "cej_portal/pagEspacoPedagogico.php"
                break;      
            case 3 :
                return "cej_portal/pagNoticiasEventos.php"
                break;                      
            case 4 :
                return "cej_portal/pagPortalAcademico.php"
                break;      
            case 5 :
                return "cej_portal/pagFaleConosco.php"
                break;  
            case 6 :
                return "cej_portal/pagLogin.php"
                break; 
            case 7 :
                return "cej_portal/pagEvento.php"
                break;
            case 8 :
                return "cej_portal/pagHorarioLetivo.php"
                break;
            case 9 :
                return "cej_portal/pagMeuHorarioLetivo.php"
                break;
            case 10 :
                return "cej_portal/pagAtividadeExtraClasse.php"
                break;
            case 11 :
                return "cej_portal/pagBoletim.php"
                break;
            case 12 :
                return "cej_portal/pagBoleto.php"
                break;
            case 13 :
                return "cej_portal/pagVisualizaEspacoPedagogico.php"
                break;
            case 14 :
                return "cej_portal/pagMinhaAtividadeExtraClasse.php"
                break;
            case 15 :
                return "cej_portal/pagAlterarSenha.php"
                break;

        }
    }
}

function createCookie (name,value) {
    expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie (name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            
            while (c.charAt(0)==' ') {
                c = c.substring(1,c.length)
            }
            
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function ExecScript(strInnerHTML) {
    var ini = 0;

    while (ini!=-1) {
        ini = strInnerHTML.indexOf('<script', ini);
        
        if (ini >=0) {
            ini = strInnerHTML.indexOf('>', ini) + 1;
            var fim = strInnerHTML.indexOf("<\/script>", ini);
            codigo = strInnerHTML.substring(ini,fim);
            var novo = document.createElement("script")
            novo.text = codigo;
            document.body.appendChild(novo);
        }
    }
}

function AplicarMascaraData (campoData) {
    var data = campoData.value;
    
    if (data.length == 2){
        data = data + '/';
        campoData.value = data;
        return true;              
    }
    if (data.length == 5){
        data = data + '/';
        campoData.value = data;
        return true;
    }
}

function VisualizaEvento (intCodigoEvento) {
    var objDadosTela = new MostrarDadosTela ();

    var strArquivo = objDadosTela.LocalizarArquivo (7);
    
    window.open(strArquivo + "?id=" + intCodigoEvento,"WindowEvento" + intCodigoEvento,"toolbar=no,location=no,enubar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,top=100,left=300,width=790,height=440");
}

function VisualizaEspacoPedagogico (intCodigoEspacoPedagogico) {
    var objDadosTela = new MostrarDadosTela ();

    var strArquivo = objDadosTela.LocalizarArquivo (13);
    
    window.open(strArquivo + "?id=" + intCodigoEspacoPedagogico,"WindowEspacoPedagogico" + intCodigoEspacoPedagogico,"toolbar=no,location=no,enubar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,top=100,left=300,width=790,height=440");
}

function ChangeImageFocus (strImagem) {
    var objCorpo = document.getElementById("current_image");
    
    objCorpo.innerHTML = "<img src='" + strImagem + "' border='0' width='350' height='260'>";
}

function EfetuarLogin () {
    var objDadosTela = new MostrarDadosTela ();

    var strArquivo = objDadosTela.LocalizarArquivo (6);
    
    showPopWin(strArquivo, 350, 240, null);
}

function AlterarSenha () {
    var objDadosTela = new MostrarDadosTela ();

    var strArquivo = objDadosTela.LocalizarArquivo (15);
    
    showPopWin(strArquivo, 350, 280, null);
}

function EfetuarAlteracaoSenha () {
    var objBrowser   = new RequisicaoBrowser ();
    var objDadosTela = new MostrarDadosTela ();
    var objCorpo     = document.getElementById("alterar_senha_response");
    
    document.alterar_senha_data.matricula.value = readCookie("Cej.UserCode");
    
    if (document.alterar_senha_data.senhaatual.value == "") { 
        objDadosTela.MostrarInformacoes (objCorpo,"Preencha o campo 'Senha atual'");
        return;
    }
    
    if (document.alterar_senha_data.novasenha.value == "") { 
        objDadosTela.MostrarInformacoes (objCorpo,"Preencha o campo 'Nova senha'");
        return;
    }      
    
    if (document.alterar_senha_data.confirmarsenha.value == "") { 
        objDadosTela.MostrarInformacoes (objCorpo,"Preencha o campo 'Confirmar nova senha'");
        return;
    }      
    
    if (document.alterar_senha_data.novasenha.value != document.alterar_senha_data.confirmarsenha.value) { 
        objDadosTela.MostrarInformacoes (objCorpo,"Senhas não conferem!");
        return;
    }      

    objBrowser.open("POST", "../cej_portal/pagRequest.php?Request=AlterarSenha", true); 
    objBrowser.onreadystatechange = function () {
        if (objBrowser.readyState == 4) {
            if (objBrowser.status == 200) {
                this.strResposta = objBrowser.responseText;                
                this.strResposta = this.strResposta.replace(/\+/g," ");
                this.strResposta = unescape(this.strResposta);
                
                objDadosTela.MostrarInformacoes (objCorpo,this.strResposta);
            }
        }        
    }                     
    objBrowser.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        
    objBrowser.send(LocalizarElementosFormulario(document.getElementById("alterar_senha_data").elements));
}

function ExecutarLogin () {
    var objBrowser   = new RequisicaoBrowser ();
    var objDadosTela = new MostrarDadosTela ();
    var objCorpo     = document.getElementById("login_response");
    
    if (document.login_data.matricula.value == "") { 
        objDadosTela.MostrarInformacoes (objCorpo,"Preencha o campo 'Matrícula'");
        return;
    }
    
    if (document.login_data.senha.value == "") { 
        objDadosTela.MostrarInformacoes (objCorpo,"Preencha o campo 'Senha'");
        return;
    }      
        
    objBrowser.open("POST", "../cej_portal/pagRequest.php?Request=Login", true); 
    objBrowser.onreadystatechange = function () {
        if (objBrowser.readyState == 4) {
            if (objBrowser.status == 200) {
                this.strResposta = objBrowser.responseText;                
                this.strResposta = this.strResposta.replace(/\+/g," ");
                this.strResposta = unescape(this.strResposta);
                
                if (this.strResposta.indexOf("ERRO") != -1) {
                    objDadosTela.MostrarInformacoes (objCorpo,"'Matrícula' ou 'Senha' inválido!");
                } else {
                    window.top.document.getElementById("menu_dadosusuario").innerHTML = "<span style='color: #585858; font-weight: bold;'>Bem vindo&nbsp;</span>" + this.strResposta;
                    
                    window.top.document.getElementById("menu_logoff_sair").innerHTML = "Sair";
                    
                    window.top.document.getElementById("menu_alterar_senha_alterar").innerHTML = "Alterar senha";
                    
                    window.top.hidePopWin(false);
                    
                    eraseCookie("Cej.UserCode");
                    createCookie("Cej.UserCode",document.login_data.matricula.value);
                    eraseCookie("Cej.UserName");
                    createCookie("Cej.UserName",this.strResposta);
                }
            }
        }        
    }                     
    objBrowser.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        
    objBrowser.send(LocalizarElementosFormulario(document.getElementById("login_data").elements));
}

function ExecutarLogoff () {
    window.document.getElementById("menu_dadosusuario").innerHTML = "";
    
    window.document.getElementById("menu_logoff_sair").innerHTML = "";
    
    window.document.getElementById("menu_alterar_senha_alterar").innerHTML = "";
    
    eraseCookie("Cej.UserCode");
    eraseCookie("Cej.UserName");
}

function ShowHorarioLetivo () {
    var objBrowser   = new RequisicaoBrowser ();
    var objDadosTela = new MostrarDadosTela ();
    var objCorpo     = document.getElementById("ResultPesquisaHorario");

    objDadosTela.MostrarStatusCarregando (objCorpo);   

    objBrowser.open("POST", "cej_portal/pagRequest.php?Request=PesquisarHorario", true);           
    objBrowser.onreadystatechange = function () {
        if (objBrowser.readyState == 4) {
            if (objBrowser.status == 200) {
                this.strResposta = objBrowser.responseText;
                this.strResposta = this.strResposta.replace(/\+/g," ");
                this.strResposta = unescape(this.strResposta);

                objCorpo.innerHTML = this.strResposta;
            }
        }        
    }                     
    objBrowser.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        
    objBrowser.send(LocalizarElementosFormulario(document.getElementById("FormPesquisarHorario").elements));
}

function CarregarCombo (strTipoCombo) {
    
    var objBrowser   = new RequisicaoBrowser ();
    var objDadosTela = new MostrarDadosTela ();
    
    switch (strTipoCombo) {
        case "Turma" :
            var strNomeCombo = "Turma";
            var objCorpo     = document.getElementById(strNomeCombo);  
            
            if (GetValueSelected('FormPesquisarHorario','Curso') == 0) {
                objDadosTela.ReiniciarCombo (objCorpo);
                objCorpo.disabled = true;
                return
            }
            
            var strParametro = 'Curso=' + GetValueSelected('FormPesquisarHorario','Curso');
            objDadosTela.LimparCombo (objCorpo);
            break;
    }

    objBrowser.open("POST", "cej_portal/pagRequest.php?Request=CarregarCombo&Objeto=" + strTipoCombo + "&" + strParametro, true); 
    objBrowser.onreadystatechange = function () {
        if (objBrowser.readyState == 4) {
            if (objBrowser.status == 200) {
                this.strResposta = objBrowser.responseText;
                this.strResposta = this.strResposta.replace(/\+/g," ");
                this.strResposta = unescape(this.strResposta);

                if (window.ActiveXObject) {
                    objBrowserXML = new ActiveXObject("Microsoft.XMLDOM");
                    objBrowserXML.async = "false";
                    objBrowserXML.loadXML(this.strResposta);
                }
                else {
                    objParser = new DOMParser();
                    objBrowserXML = objParser.parseFromString(this.strResposta,"application/xml");
                }

                this.objTagsXml = objBrowserXML;

                if (this.objTagsXml.getElementsByTagName("attribute").length != 0) {
                    objDadosTela.LimparTela (objCorpo);
                }

                for (intDadosXML=0; intDadosXML < this.objTagsXml.getElementsByTagName("attribute").length; intDadosXML++) {                    
                    
                    this.objNovoElemento = document.createElement("option");
                    this.objNovoElemento.value = this.objTagsXml.getElementsByTagName("attribute")[intDadosXML].getAttribute("code");
                    this.objNovoElemento.innerHTML = this.objTagsXml.getElementsByTagName("attribute")[intDadosXML].getAttribute("description");

                    objCorpo.appendChild(this.objNovoElemento);
                }
                
                objCorpo.disabled = false;
            }
        }        
    }          

    objBrowser.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    objBrowser.send("set=get");
}
