/*

**FUNCOES NESTE ARQUIVO**
- ExtensaoArquivoChecar()
- Trim()
- checkMail()
- removeHTMLTags()
- confirmarOPERACAO()
- msgOBRIGATORIO()
- msgSUCESSO()
- msgINSUCESSO()
- validarFCKEditor()
- validarCamposOBRIGATORIOS()
- validarCamposSelectsOBRIGATORIOS()

*/

/*	Verifica a extensao requerida do arquivo
	Parametros:
		++ ext == Extensao que se deseja que seja padrao: 'doc'
		++ ctr == Controle onde o arquivo foi informado: "'controle1'"
*/
function ExtensaoArquivoChecar(ext,ctr){
	var extensoesOk = ',.'+ext+',';
	var extensao = ','+Trim(document.getElementById(ctr).value.substr(document.getElementById(ctr).value.length - 4).toLowerCase())+',';
	
	if(extensoesOk.indexOf(extensao) == -1){
		alert('O arquivo NÃO POSSUI extensão '+ext+'.');
		return false;
	}else{return true;}
}

/*Retira espaços INICIAIS e FINAIS desnecessarios de uma STRING*/
function Trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}


/*Valida Email*/
function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	
    if(typeof(mail) == "string"){
    	if(er.test(Trim(mail))){
			return true;
		}else{
			alert('Email INVÁLIDO!');
			return false;
		}
		
   	}else if(typeof(mail) == "object"){
   		if(er.test(Trim(mail.value))){
			document.getElementById(mail.id).style.backgroundColor = '#FFFFFF';
			document.getElementById(mail.id).value = Trim(document.getElementById(mail.id).value);
			return true;
		}else{
			document.getElementById(mail.id).style.backgroundColor = '#FF5B5B';
			document.getElementById(mail.id).value = Trim(document.getElementById(mail.id).value);
			document.getElementById(mail.id).focus();
			alert('Email INVÁLIDO!');
			return false;
		}
    }
}


/*Remove formatação HTML das Variaveis*/
function removeHTMLTags(text){
	var strInputCode = text;
	
	strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1) {
		return (p1 == "lt")? "<" : ">";
	});
 
	var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
	return strTagStrippedText;
}


/*Confirma uma determinada OPERAÇÃO*/
function confirmarOPERACAO(Operacao){
	if(confirm('CONFIRMA esta OPERAÇÃO: '+Operacao)){return true;}else{return false;}
}


/*MSG de OBRIGATORIEDADE*/
function msgOBRIGATORIO(){
	alert('PREENCHA os campos marcados em VERMELHO!');
}

function msgSUCESSO(){
	alert('Operação Realizada com SUCESSO!');
}

function msgINSUCESSO(){
	alert('Operação NÃO Realizada!');
}


/*	Verifica se determinado FCKEditor, controle, é obrigatório.
	Parametros:
		++ varListaControles == Os nomes dos controles deverão ser informados dentro de aspas e da seguinte forma:
									- Mais de um controle a ser validado: "'controle1'+','+'Controle2'+','+'Controle3'+','+'Controle4'"
									- Apenas um controle a ser validado: "'Controle1'"
		++ Operacao == Operação que está sendo efetuada no momento. Exemplo: 'SALVAR Usuário'
		
		++ Confirmar == Valor 1 Exibe MSG de confirmação da Operação e Valor 0 NÃO Exibe MSG de Confirmação da Operação. Exemplo: 0 ou 1
*/
function validarFCKEditor(varListaControles, Operacao, Confirmar){
	var tamanhoVarLista = varListaControles.split(",").length;
	var palavrasVarLista = varListaControles.split(",");
	var var_Contador = -1
	
	for(i=0; i < tamanhoVarLista; i++){
		var oEditor = FCKeditorAPI.GetInstance(palavrasVarLista[i]);
		
		var ENUNCIADO = oEditor.GetHTML();
					
		var TextoSemHTML =  removeHTMLTags(ENUNCIADO);
		var TextoSemTAG = TextoSemHTML.replace(/&nbsp;/gi,'');
		
		if(Trim(TextoSemTAG) == ""){
			if(var_Contador == -1){
				var_Contador = i;
			}
			
			oEditor.EditorDocument.body.style.cssText += 'background-color: #FF5B5B';
			oEditor.EditorDocument.body.innerHTML = "";
		}else{
			oEditor.EditorDocument.body.style.cssText += 'background-color: #FFFFFF';
		}
	}
				
	if(var_Contador != -1){
		var oEditor = FCKeditorAPI.GetInstance(palavrasVarLista[var_Contador]);
		msgOBRIGATORIO();			
		oEditor.Focus();
		return false;
	}else{
		if(Confirmar == 1)
			return confirmarOPERACAO(Operacao);
		else
			return true;
	}
}


/*	Verifica se determinado campo, controle, é obrigatório.
	Parametros:
		++ varListaControles == Os nomes dos controles deverão ser informados dentro de aspas e da seguinte forma:
									- Mais de um controle a ser validado: "'controle'+','+'Controle2'+','+'Controle3'+','+'Controle4'"
									- Apenas um controle a ser validado: "'Controle1'"
		++ Operacao == Operação que está sendo efetuada no momento. Exemplo: 'SALVAR Usuário'
		
		++ Confirmar == Valor 1 Exibe MSG de confirmação da Operação e Valor 0 NÃO Exibe MSG de Confirmação da Operação. Exemplo: 0 ou 1
*/
function validarCamposOBRIGATORIOS(varListaControles, Operacao, Confirmar){
	var tamanhoVarLista = varListaControles.split(",").length;
	var palavrasVarLista = varListaControles.split(",");
	var var_Contador = -1
		
	for(i=0; i < tamanhoVarLista; i++){
		if(document.getElementById(palavrasVarLista[i])){
			if(Trim(document.getElementById(palavrasVarLista[i]).value) == ""){
				if(var_Contador == -1){
					var_Contador = i;
				}
				
				document.getElementById(palavrasVarLista[i]).style.backgroundColor = '#FF5B5B';
				document.getElementById(palavrasVarLista[i]).value = '';
			}else{
				if(document.getElementById(palavrasVarLista[i]).type != 'file'){
					document.getElementById(palavrasVarLista[i]).value = Trim(document.getElementById(palavrasVarLista[i]).value);
					document.getElementById(palavrasVarLista[i]).style.backgroundColor = '#FFFFFF';
				}else{
					document.getElementById(palavrasVarLista[i]).style.backgroundColor = '#FFFFFF';
				}
			}
		}
	}
	
	if(var_Contador != -1){
		msgOBRIGATORIO();
		//document.getElementById(palavrasVarLista[var_Contador]).value = "";
		document.getElementById(palavrasVarLista[var_Contador]).focus();
		return false;
	}else{
		if(Confirmar == 1)
			return confirmarOPERACAO(Operacao);
		else
			return true;
	}
}


/*	Verifica se determinado campo SELECT, controle, é obrigatório.
	Obs.: Para que um campo SELECT seja INVALIDO o se VALUE de ser 0 (zero), ou seja, VALUE="0".
	Parametros:
		++ varListaControles == Os nomes dos controles deverão ser informados dentro de aspas e da seguinte forma:
									- Mais de um controle a ser validado: "'controle'+','+'Controle2'+','+'Controle3'+','+'Controle4'"
									- Apenas um controle a ser validado: "'Controle1'"
		++ Operacao == Operação que está sendo efetuada no momento. Exemplo: 'SALVAR Usuário'
		
		++ Confirmar == Valor 1 Exibe MSG de confirmação da Operação e Valor 0 NÃO Exibe MSG de Confirmação da Operação. Exemplo: 0 ou 1
*/
function validarCamposSelectsOBRIGATORIOS(varListaControles, Operacao, Confirmar){
	var tamanhoVarLista = varListaControles.split(",").length;
	var palavrasVarLista = varListaControles.split(",");
	var var_Contador = -1
	
	for(i=0; i < tamanhoVarLista; i++){
		if(document.getElementById(palavrasVarLista[i])){
			if(Trim(document.getElementById(palavrasVarLista[i]).value) == 0){
				if(var_Contador == -1){
					var_Contador = i;
				}
				
				document.getElementById(palavrasVarLista[i]).style.backgroundColor = '#FF5B5B';
			}else{
				document.getElementById(palavrasVarLista[i]).value = Trim(document.getElementById(palavrasVarLista[i]).value);
				document.getElementById(palavrasVarLista[i]).style.backgroundColor = '#FFFFFF';
			}
		}
	}
	
	if(var_Contador != -1){
		msgOBRIGATORIO();
		document.getElementById(palavrasVarLista[var_Contador]).value = 0;
		document.getElementById(palavrasVarLista[var_Contador]).focus();
		return false;
	}else{
		if(Confirmar == 1)
			return confirmarOPERACAO(Operacao);
		else
			return true;
	}
}