function redireccionar(opc){
	window.location.href=opc;	
}
function reiniciar(frm){
	document.forms[frm].submit();	
}
function resetear(frm){
	document.forms[frm].reset();	
}
function getValor(frm,param){
	try{		return document.forms[frm].elements[param].value;
	}catch(e){	return "";	}
}


function existeVar(frm,param){	
	try{		
		document.forms[frm].elements[param].value;
		return true;
	}catch(e){	return false;	}
}
function setValor(frm,param,val){
	document.forms[frm].elements[param].value=val;
}
function getName(frm,param){
	return document.forms[frm].elements[param].name;
}

function getTipo(frm, param){
	
	return document.forms[frm].elements[param].type;	
}
function getTitulo(frm, param){
	return document.forms[frm].elements[param].title;	
}
function getNroElementos(frm){
	return document.forms[frm].elements.length;
}
function getActivar(frm,param,sw){
	var activar="";
	if(!sw) activar="disabled" 
	document.forms[frm].elements[param].disabled=activar;
}

function verificarCambios(frm){
	var idTipo,idIncidencia,idSistema,txtDescripcion,sw=true;
	var v=new Array();
	var i,n=getNroElementos(frm);
	var j=0;	
	for(i=0;i<n;i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			v[j]=getValor(frm,i);		
			j++;			
		}		
	}
	resetear(frm);	
	j=0;	
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			if(getValor(frm,i)!=v[j]) sw=(sw && false);			
			j++;
		}			
	}
	j=0;
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			setValor(frm,i,v[j]);
			j++;
		}		
	}
	return !sw;	
}
function verificarCambiosTipoGral(frm){
	var idTipo,idIncidencia,idSistema,txtDescripcion,sw=true;
	var v=new Array();
	var i,n=getNroElementos(frm);
	var j=0;	
	for(i=0;i<n;i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			v[j]=getValor(frm,i);		
			j++;			
		}		
	}
	resetear(frm);	
	j=0;	
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			if(getValor(frm,i)!=v[j]) sw=(sw && false);			
			j++;
		}			
	}
	j=0;
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			setValor(frm,i,v[j]);
			j++;
		}		
	}
	return !sw;	
}

function verificarCambiosAgrupacion(frm){
	var idTipo,idIncidencia,idSistema,txtDescripcion,sw=true;
	var v=new Array();
	var i,n=getNroElementos(frm);
	var j=0;	
	for(i=0;i<n;i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			v[j]=getValor(frm,i);		
			j++;			
		}		
	}
	resetear(frm);	
	j=0;	
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){			
			if(getValor(frm,i)!=v[j]) sw=(sw && false);			
			j++;
		}			
	}
	j=0;
	for(i=0;i<n;i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			setValor(frm,i,v[j]);
			j++;
		}		
	}
	return !sw;	
}



function verificarIngreso(frm){	
	var i,n=getNroElementos(frm);
	var sw=true;	
	for(i=0; i<n && sw; i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			if(getValor(frm,i)=="") sw=false;
		}		
	}
	return sw;
}

function verificarIngresoMsg(frm){	
	var i,n=getNroElementos(frm);
	var sw=true;	
	for(i=0; i<n && sw; i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			if(getValor(frm,i)==""){
				alert("Falta ingresar "+getTitulo(frm,i));
				sw=false;
			}
		}		
	}
	return sw;
}

function verificarIngresoMsg2(frm){	
	var i,n=getNroElementos(frm);
	var sw=true;	
	for(i=0; i<n && sw; i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			if(getValor(frm,i)=="" && getTitulo(frm,i)!=""){
				Ext.Msg.alert("Campos obligatorios","Falta ingresar "+getTitulo(frm,i));
				sw=false;
			}
		}		
	}
	return sw;
}


function verificarIngresoMsgTipoGral(frm){	
	var i,n=getNroElementos(frm);
	var sw=true;	
	for(i=0; i<n && sw; i++){
		if(document.forms[frm].elements[i].name=="cmbTipo"){
			if(document.forms[frm].elements[i].value==""){
				setValor(frm,i,'000');
			}
		}else{
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			if(getValor(frm,i)==""){
				alert("Falta ingresar "+getTitulo(frm,i));
				sw=false;
			}
		  }
		}
	}
	return sw;
}
   
function verificarIngresoMsgAgrupacion(frm){	
	var i,n=getNroElementos(frm);
	var sw=true;
	for(i=0; i<n && sw; i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			if(getName(frm,i)!='cmbGrupoSup' && getName(frm,i)!='dtFecIni' && getName(frm,i)!='dtFecFin'){
				if(getValor(frm,i)==""){ 
					alert("Falta ingresar "+getTitulo(frm,i));
					sw=false;
				}
			}
		}	
	}
	return sw;
}
function getCadenaParametros(frm){
	var i,n=getNroElementos(frm);
	var cadena="nro="+n;	
	for(i=0; i<n;  i++){
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one" || getTipo(frm,i)=="hidden"){
			cadena=cadena+"&"+getName(frm,i)+"="+getValor(frm,i);		
		}	
	}
	return cadena;		
}

function activarCampos(frm,sw){	
	var i,n=getNroElementos(frm);
	var sw=true;	
	for(i=0; i<n && sw; i++){		
		if(getTipo(frm,i)=="textarea" || getTipo(frm,i)=="text" || getTipo(frm,i)=="select-multiple" || getTipo(frm,i)=="select-one"){
			getActivar(frm,i,sw);
		}		
	}	
}

function verificarCamposRegistro(frm){
	if(verificarIngresoMsg(frm)){
		if(verificarCambios(frm))	return true;
		else{
			alert("No ha realizado ningun cambio");
			return false;
		}
	}else
		return false;
}
    
/********************************************************Solo caracteres numéricos*******************************************************************************************/
function CalcKeyCode(aChar) {
	  var character = aChar.substring(0,1);
	  var code = aChar.charCodeAt(0);
	  return code;
	}

function checkNumber(val) {
  var strPass = val.value;
  var strLength = strPass.length;
  var lchar = val.value.charAt((strLength) - 1);
  var cCode = CalcKeyCode(lchar);
  if (cCode < 48 || cCode > 57 ) {
    var myNumber = val.value.substring(0, (strLength) - 1);
    val.value = myNumber;
  }
  return false;
}

function onlyNumber(evt){
	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}else{
		keynum = evt.which;
	}
		//comprobamos si se encuentra en el rango
	if((keynum>47 && keynum<58) || keynum==0 || (keynum>=8 && keynum<=11)){
		return true;
	}else{
		return false;
	}
}
function onlyPhoneNumber(evt){
	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}else{
		keynum = evt.which;
	}
		//comprobamos si se encuentra en el rango

	if((keynum>47 && keynum<58) || keynum==45 || keynum==0 || (keynum>=8 && keynum<=11)){
		return true;
	}else{
		return false;
	}
}
function onlyNumber2(evt){
	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}else{
		keynum = evt.which;
	}
		//comprobamos si se encuentra en el rango

	if((keynum>47 && keynum<58) || keynum==0 || (keynum>=8 && keynum<=11)){
		return true;
	}else{
		return false;
	}
}

function onlyAlphabet(evt){
	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}else{
		keynum = evt.which;
	}
	//comprobamos si se encuentra en el rango
        //|| keynum==32 || keynum==8 || keynum==13
	if(!onlyPhoneNumbre(evt) ){
		return true;
	}else{
		return false;
	}
}


function onlyEmail(evt,param){
	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}else{
		keynum = evt.which;
	}
		//comprobamos si se encuentra en el rango
	if(!validarEmail(getValor(0,param)))
		setValor(0,param,"");
}
/*
function validarEmail(val) {
	var valor=getValor(0,val);
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(valor)){
		return true	;
  }else{
  	  	 setValor(0,val,"");
	     Ext.Msg.alert("Campos obligatorios","Email ingresado no valido ");
  		return false;
  }
}*/
/****************************************************************************************************************************************************/
 function validarEmail(val){ //isMail(Cadena)   
   
     Punto = val.substring(val.lastIndexOf('.') + 1, val.length)            // Cadena del .com  
     Dominio = val.substring(val.lastIndexOf('@') + 1, val.lastIndexOf('.'))  // Dominio @lala.com  
     Usuario = val.substring(0, val.lastIndexOf('@'))                  // Cadena lalala@  
     Reserv = "@&#8260;º\"\'+*{}\\<>?¿[]áéíóú#·¡!^*;,:"                      // Letras Reservadas  
       
     // Añadida por El Codigo para poder emitir un alert en funcion de si email valido o no  
     valido = true  
       
     // verifica qie el Usuario no tenga un caracter especial  
     for (var Cont=0; Cont<Usuario.length; Cont++) {  
         X = Usuario.substring(Cont,Cont+1)  
         if (Reserv.indexOf(X)!=-1)  
                     valido = false  
     }  
   
     // verifica qie el Punto no tenga un caracter especial  
     for (var Cont=0; Cont<Punto.length; Cont++) {  
         X=Punto.substring(Cont,Cont+1)  
         if (Reserv.indexOf(X)!=-1)  
             valido = false  
     }  
                           
     // verifica qie el Dominio no tenga un caracter especial  
     for (var Cont=0; Cont<Dominio.length; Cont++) {  
         X=Dominio.substring(Cont,Cont+1)  
         if (Reserv.indexOf(X)!=-1)  
             valido = false  
         }  
   
     // Verifica la sintaxis básica.....  
     if (Punto.length<2 || Dominio <1 || val.lastIndexOf('.')<0 || val.lastIndexOf('@')<0 || Usuario<1) {  
         valido = false  
     }  
      
     // Añadido por El Código para que emita un alert de aviso indicando si email válido o no  
     if (valido) {  
             
	 //cambiar por return true para hacer el submit del formulario en caso de validacion correcta  
     } else {  
         Ext.Msg.alert('Verificaci&oacute;n','Email no v&aacute;lido.');         
     }  
	 return valido;
 }  
