/*********************************************************************
 * author: Leonardo Matias                                           *
 * mail  : valgallom@yahoo.com.br                                    *
 * msn   : valgallom@hotmail.com                                     *
 *********************************************************************/

function Inscricao(baseUrl) {
    this.baseUrl = baseUrl;

    this.validaFormPessoaFisica = function() {
        var form = document.getElementById('form');

        var listField = new Array(new Array('cursoid','Curso',null,true),
                                  new Array('nome','Nome',null,true),
                                  new Array('nasc','Data de Nascimento','date',true),
                                  new Array('endereco','Endereço',null,true),
                                  new Array('cidade','Cidade',null,true),
                                  new Array('estado','Estado',null,true),
                                  new Array('cep','CEP','cep',true),
                                  new Array('telefone','Telefone','fone',true),
                                  new Array('fax','Fax','fone',false),
                                  new Array('email','E-mail','email',true),
                                  new Array('apelido','Apelido',null,false),
                                  new Array('cpf','CPF','cpf',true),
                                  new Array('rg','RG',null,false),
                                  new Array('pagto','Forma de Pagamento',null,true)
                                 );

        if(!this.validateField(listField)) {
            return false;
        }
        
        form.submit();

    }

    this.validaFormPessoaJuridica = function() {
        var form = document.getElementById('form');

        // Dados Empresa
        var listField = new Array(new Array('cursoid','Curso',null,true),
                                  new Array('razao','Razão',null,true),
                                  new Array('cnpj','CNPJ','cnpj',true),
                                  new Array('endereco','Endereço',null,true),
                                  new Array('cidade','Cidade',null,true),
                                  new Array('estado','Estado',null,true),
                                  new Array('cep','CEP','cep',true)
                                 );

        if(!this.validateField(listField)) {
            return false;
        }

        // validacao participante 1
        listField = new Array(new Array('p1_nome','Nome',null,true),
                              new Array('p1_cargo','Cargo',null,true),
                              new Array('p1_depto','Departamento',null,true),
                              new Array('p1_email','E-mail','email',true),
                              new Array('p1_nasc','Data Nascimento','date',true),
                              new Array('p1_telefone','Telefone','fone',true),
                              new Array('p1_apelido','Apelido',null,true)
                             );

        if(!this.validateField(listField,' do Participante 1 são de preenchimento obrigatório ou inválidos!',false)) {
            return false;
        }

        // validacao participante 2
        listField = new Array(new Array('p2_nome','Nome',null,false),
                              new Array('p2_cargo','Cargo',null,false),
                              new Array('p2_depto','Departamento',null,false),
                              new Array('p2_email','E-mail','email',false),
                              new Array('p2_nasc','Data Nascimento','date',false),
                              new Array('p2_telefone','Telefone','fone',false),
                              new Array('p2_apelido','Apelido',null,false)
                             );

        if(!this.validateField(listField,' do Participante 2 são de preenchimento obrigatório ou inválidos!',true)) {
            return false;
        }

        // validacao participante 3
        listField = new Array(new Array('p3_nome','Nome',null,false),
                              new Array('p3_cargo','Cargo',null,false),
                              new Array('p3_depto','Departamento',null,false),
                              new Array('p3_email','E-mail','email',false),
                              new Array('p3_nasc','Data Nascimento','date',false),
                              new Array('p3_telefone','Telefone','fone',false),
                              new Array('p3_apelido','Apelido',null,false)
                             );

        if(!this.validateField(listField,' do Participante 3 são de preenchimento obrigatório ou inválidos!',true)) {
            return false;
        }

        // Dados Empresa
        listField = new Array(new Array('pagto','Forma de pagamento',null,true));

        if(!this.validateField(listField)) {
            return false;
        }

        form.submit();

    }

    this.validateField = function(listField, msg, apenasUm) {
        var field;
        var index = null;
        var fieldNull = new Array();
        var checaApenasUm = false;

        if(msg == null) {
            msg = ' são de preenchimento obrigatório ou inválidos!';
        }

        if(apenasUm == null) { apenasUm=false; }

        for(index in listField) {
            field = document.getElementById(listField[index][0]);

            field.value = trim(field.value);

            if(listField[index][3] || field.value!='' || apenasUm){
                if (field.value!='') { checaApenasUm = true; }
                if (listField[index][2]!=null && field.value!='') {
                    switch (listField[index][2]) {
                        case 'date':
                                if(!validateDate(field.value,'d/m/a')) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'fone':
                                if(!validateTelefone(field.value)) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'email':
                                if(!validateEmail(field.value)) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'cpf':
                                if(!validateCPF(field.value)) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'cnpj':
                                if(!validateCNPJ(field.value)) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'file':

                                if((field.value.substring(field.value.length - 3)=='doc') ||
                                   (field.value.substring(field.value.length - 3)=='pdf') ||
                                   (field.value.substring(field.value.length - 4)=='docx')) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                        case 'cep':
                                if(!validateCep(field.value)) {
                                    fieldNull.push(new Array(listField[index][1]));
                                }
                                break;
                    }
                } else if (field.value==''){
                    fieldNull.push(new Array(listField[index][1]));
                }
            }
        }

        if((apenasUm==true && checaApenasUm == true && fieldNull.length>0) ||
           (apenasUm==false && fieldNull.length>0)) {
            alert('Os campos '+fieldNull.join(', ') + msg);
            return false;
        }

        return true;
        
    }

}
