var lLetras=' ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZabcçdefghijklmnñopqrstuvwxyz';
var lExtraCorreo='@_-.';
var lExtraTelefono='#*';
var lExtraDireccion = '.#\'';
var lExtraBusqueda = '.\'';
var lExtraNombre = '\'-&';
var lNumeros='1234567890';
var lExtraNumeros='-'
var lExtraDecimales='-.'
var lSigns=',.:;@-\'';
var lMathsigns='+-=()*/';
var lCustom='<>#$%&?¿';

String.prototype.trimAll =
  function() {
    return this.replace(/^\s+|(\s+(?!\S))/mg,"");
  };

function $(id){
	if(document.all){
		return document.all[id];
	}
	else{
		if(document.getElementById){
			return document.getElementById(id);
		}
		else{
			for(var _2=1;_2<document.layers.length;_2++){
				if(document.layers[_2].id==id){
					return document.layers[_2];
				}
			}
		}
	}
	return false;
}

function trim(s){
var t = s;
t = t.replace(/^\s+|\s+$/, '');
t = t.replace(/^\s+|\s+$/, '');
return t;
}

function unescape2(s){
	s = s.replace(/\+/g," ");
	s = unescape(s);
	return s;
}

function limpiarResponse(cadena){
	//Juan Pablo : Logica agregada para eliminar la cabecera en Prod. que se agrega a los Requests
	var script2 = "</" + "SCRIPT>" + "\n";
	
	if (cadena.indexOf(script2) != -1){
		rspText = cadena.substring(cadena.indexOf(script2) + script2.length);
	}
	else{
		rspText = cadena;
	}
	return rspText;
}

function todoMayusculas(){
	var i;
	var tbs = document.getElementsByTagName("input");
	for(i=0; i<tbs.length; i++){
		if(tbs[i].type == "text"){
			//tbs[i].value = trim(tbs[i].value.toUpperCase());
			tbs[i].value = tbs[i].value.toUpperCase().trimAll();
        }
    }
}

//valida si la fecha fin es posterior a la fecha inicio
function validarSecuenciaFechasDMA(strInicio,strFin){
	var fIni = new Date(strInicio.substring(6,10),strInicio.substring(3,5)-1,strInicio.substring(0,2)) ;
	var fFin = new Date(strFin.substring(6,10),strFin.substring(3,5)-1,strFin.substring(0,2)) ;
	
	if(fIni < fFin)
		return true;
	return false;
}

function esEntero(sText){
   if(isNaN(sText)){
      return false;
   }
   
   var ValidChars = lNumeros + lExtraNumeros;
   var IsNumber=true;
   var Char;
   
   for (i = 0; i < sText.length; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
         break;
      }
   }
   return IsNumber;
}

function esNumerico(sText){
   if(isNaN(sText)){
      return false;
   }
   
   var ValidChars = lNumeros + lExtraDecimales;
   var IsNumber=true;
   var Char;
   
   for (i = 0; i < sText.length; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
         break;
      }
   }
   return IsNumber;
}

function esPositivo(sText){
	if(isNaN(sText)){
      return false;
   }
   
   return (sText>=0);
}

function esEmail(str) {
	if(str!=str.match(/\b(^(\S+@).+((\.gob)|(\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.biz)|(\.org)|(\..{2,2}))$)\b/gi)){
		return false;
	}
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1)
	   return false;

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	   return false;

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	    return false;

	 if (str.indexOf(at,(lat+1))!=-1)
	    return false;

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	    return false;

	 if (str.indexOf(dot,(lat+2))==-1)
	    return false;
	
	 if (str.indexOf(" ")!=-1)
	    return false;

	return true;		
}

function longitudCadena(s,min,max){
	res = false;
	if(s!=null){
		if(s.length>=min && s.length<=max){
			res = true;
		}
	}
	return res;
}

function ingresoCifras(e){
	var key;
	var valid = '' + lNumeros;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoBusqueda(e){
	var key;
	var valid = '' + lLetras + lNumeros + lExtraBusqueda;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoCifras(e){
	var key;
	var valid = '' + lNumeros;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoNumeros(e){
	var key;
	var valid = '' + lNumeros + lExtraDecimales;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoLetras(e){
	var key;
	var valid = '' + lLetras;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoLetrasNumeros(e){
	var key;
	var valid = '' + lLetras + lNumeros + lExtraDecimales;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoNombres(e){
	var key;
	var valid = '' + lLetras + lExtraNombre;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}
function ingresoNombresNumeros(e){
	var key;
	var valid = '' + lLetras + lExtraNombre + lNumeros;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}
function ingresoLetrasNumerosExtra(e){
	var key;
	var valid = '' + lLetras + lExtraNombre + lNumeros + lExtraDecimales;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoDireccion(e){
	var key;
	var valid = '' + lLetras + lNumeros + lExtraDireccion;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoTelefono(e){
	var key;
	var valid = '' + lNumeros + lExtraTelefono;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function ingresoEmail(e){
	var key;
	var valid = '' + lLetras + lNumeros + lExtraCorreo;
	
	if(e.which){
		key = String.fromCharCode(e.which);
		if (valid.indexOf("" + key) == "-1")
			e.preventDefault();
	}
	else if(e.keyCode){
		key = String.fromCharCode(e.keyCode);
		if (valid.indexOf("" + key) == "-1")
			e.keyCode = 0;
	}
}

function esRUC(r){
	var i;
	res = false;
	if(esNumerico(r) && r.length==11){
		if(r.substring(0,2)=="10" || r.substring(0,2)=="20"){
			var digitos = new Array(0,0,0,0,0,0,0,0,0,0);
			var pesos = new Array(5,4,3,2,7,6,5,4,3,2);
			var valorXpeso = new Array(0,0,0,0,0,0,0,0,0,0);
			var sumaProd=0;
			var cociente;
			var entero;
			var result;
			var diferencia;
			var digitoVerif;
			
			for(i=0;i<10;i++){
				digitos[i] = r.substring(i,i+1);
				valorXpeso[i] = digitos[i]*pesos[i];
				sumaProd+=valorXpeso[i];
			}
			
			cociente = sumaProd%11;
			entero = (sumaProd-cociente)/11;
			result = sumaProd - (entero * 11);
			diferencia = 11 - result; 
			
			if(diferencia==10)
				digitoVerif = 0;
			else if(diferencia==11)
				digitoVerif = 1;
			else
				digitoVerif = diferencia;
			
			if(r.substring(10,11)==digitoVerif)
				res = true;
		}
	}
	
	return res;
}

function esTelefono(s){
	return (s.length>5);
}

function esDOI(s){
	return esDOI(0);
}

function esDOI(s,tipo){
	res = false;
	if(esNumerico(s)){
		if(tipo==0){
			if(s.length==8)
				res = true;
		}else{
			if(s.length==11)
				res = true;
		}
	}
	return res;
}

function esPorcentaje(s){
	res = false;
	if(esNumerico(s)){
		if(s>=0 && s<=100)
			res = true;
	}
	return res;
}

function esProyectoCOD(o){
	var i;
	var letra = 'WXYZ';
	var numero = '0123456789';
	
	if(o.length!=5)
		return false;
	
	if(letra.indexOf(o.substring(0,1))<0)
		return false;
	
	for(i=1; i<5; i++){
		if(numero.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}

function esProyecto(o){
	var i;
	var letra = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var numero = '0123456789';
	
	if(o.length!=5)
		return false;
	
	if(letra.indexOf(o.substring(0,1))<0)
		return false;
	
	for(i=1; i<5; i++){
		if(numero.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}

function esRegistro(o){
	var i;
	var letra = 'P';
	var numero = '0123456789';
	
	if(o.length!=7)
		return false;
	
	if(letra.indexOf(o.substring(0,1))<0)
		return false;
	
	for(i=1; i<7; i++){
		if(numero.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}

function esDireccion(o){
	var i;
	var valid = '' + lLetras + lNumeros + lExtraDireccion;
	
	for(i=0; i<o.length; i++){
		if(valid.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}

function esBusqueda(o){
	var i;
	var valid = '' + lLetras + lNumeros + lExtraBusqueda;
	
	for(i=0; i<o.length; i++){
		if(valid.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}

function esLetrasNumeros(o){
	var i;
	var valid = '' + lLetras + lNumeros;
	
	for(i=0; i<o.length; i++){
		if(valid.indexOf(o.substring(i,i+1))<0)
			return false;
	}
	return true;
}


function validaTipoCuenta(cuenta){
	if (eval(cuenta.substr(0, 4)) == 0 ){
		//alert("No se ha informado la entidad de la cuenta tecleada");
		return false;
	} else if (eval(cuenta.substr(4,10)) == 0 ){
		//alert("La cuenta tecleada no es correcta");
		return false;
	}else if ( cuenta == 11111111111111 ){
		return false;
	}

	var pCamp1=2;
	var pCamp2=7;
	var pCamp3=6;
	var pCamp4=5;
	var pCamp5=4;
	var pCamp6=3;
	var pCamp7=2;
	var pCamp8=7;
	var pCamp9=6;
	var pCamp10=5;
	var pCamp11=4;
	var pCamp12=3;
	var pCamp13=2;
	
	v1 = cuenta.substr(0, 1);
	v2 = cuenta.substr(1, 1);
	v3 = cuenta.substr(2, 1);
	v4 = cuenta.substr(3, 1);
	v5 = cuenta.substr(4, 1);
	v6 = cuenta.substr(5, 1);
	v7 = cuenta.substr(6, 1);
	v8 = cuenta.substr(7, 1);
	v9 = cuenta.substr(8, 1);
	v10 = cuenta.substr(9, 1);
	v11 = cuenta.substr(10, 1);
	v12 = cuenta.substr(11, 1);
	v13 = cuenta.substr(12, 1);
	v14 = cuenta.substr(13, 1);
	
	vGeneral = eval(  (pCamp1 * v1) +
			(pCamp2 * v2) +
			(pCamp3 * v3) +
			(pCamp4 * v4) +
			(pCamp5 * v5) +
			(pCamp6 * v6) +
			(pCamp7 * v7) +
			(pCamp8 * v8) +
			(pCamp9 * v9) +
			(pCamp10 * v10) +
			(pCamp11 * v11) +
			(pCamp12 * v12) +
			(pCamp13 * v13));
	
	
	
	residuo = vGeneral%11;
	res = 11 - residuo;
	
	if ( res == 10 ){
		res = 1;	
	}else if (res == 11){
		res = 0;
	}
	
	
	if ( res != v14 ){
		return false;
	}
	return true;

}
var fila_='';
function agregarfila(fila,content){
fila_=fila_+trim(fila)+'|';
$(content).value=fila_;
}

function edit_SRP(obj){
var content=$(obj).value;
var array=content.split("|");
var sub_array;
for(i=0;i<array.length;i++){
subarray=array[i].split(":");
var obj=document.getElementById(subarray[0])
if(obj)
obj.value=subarray[1];
var obj_=document.getElementById(subarray[0]+'_');
if(obj_)
obj_.value=1;
}
}

function valida_SRP(obj){

var content=$(obj).value;
var array=content.split("|");
for(i=0;i<array.length;i++){

var subarray=array[i].split(":");
var obj=document.getElementById(subarray[0]);
if(obj){
if(obj.value==''){
alert('La casilla ('+subarray[1]+') , se encuentra vacia');
obj.focus();
return false;
}
if(!esPositivo(obj.value)){
	alert('La casilla ('+subarray[1]+') ,debe ser un número positivo');
	obj.focus();
	return false;
}
if((obj.value)>100){
	alert('La casilla ('+subarray[1]+') ,debe ser menor o igual que el 100%');
	obj.focus();
	return false;
}	
}

}
return true;
}

/*function verificaCheckPadre(objPadre,objHijo_){
	objPadre.checked=false;
	var cont=0;
	var objHijo=new Array(1);
	if(!objHijo_.length) objHijo[0] = objHijo_;
	else  objHijo=objHijo_;
	for (i = 0; i < objHijo.length; i++){
		if(objHijo[i].checked ==true ) cont=cont+1;
	}
	if(cont>0) objPadre.checked=true;
}*/

function verificaCheckPadre(name,id){
	var name='menu'+name;
	var id='menu'+id;
	var names=document.getElementsByName(name);//recolecta hermanos
	document.getElementById(name).checked=false;//padre sin check
	var cont=0;
	var hermanos=new Array(1);
	if(!names.length) hermanos[0] = name;
	else  hermanos=names;
	for (i = 0; i < hermanos.length; i++){
		if(hermanos[i].checked ==true ) cont=cont+1;//numero de hermanos activos
	}
	if(cont>0) {
	document.getElementById(name).checked=true;//padre con check
	}
	name=document.getElementById(name).name;
	name=name.substring(4,name.length);
	id=name;
	id=id.substring(4,id.length);
	if(hermanos.length>1){
	verificaCheckPadre(name,id);
	}
	if(cont>0){
	document.getElementById("menu0").checked=true;
	}
	
}
function CheckAll(id,state){
	var id='menu'+id;
	var hijos=document.getElementsByName(id);//recolecta hijos
	var cont=0;
	if(hijos.length>1){
	for (var i = 1; i < hijos.length; i++){
		var id=hijos[i].id;
		document.getElementById(id).checked=state;
		id=hijos[i].id.substring(4,hijos[i].id.length);
		if(hijos[i]){
		CheckAll(id,state);
		}
	}
	}
}


/*function verificaTodosCheckPadre(){
	var foundCount = 0;
	var strChks="";
	for(i=0;i<document.getElementsByTagName("input").length;i++)
	{
	if(document.getElementsByTagName("input")[i].type == "checkbox")
	{
	var id=document.getElementsByTagName("input")[i].id;
	var name=document.getElementsByTagName("input")[i].name;
	//alert("id:"+id+"name"+name);
	//verificaUnCheckPadre_(id,name);
	foundCount++;
	}
	}
	alert(foundCount);
}*/



function detectaActivos(){
	var foundCount = 0;
	var strChks="";
	for(i=0;i<document.getElementsByTagName("input").length;i++)
	{
	if(document.getElementsByTagName("input")[i].type == "checkbox")
	{
	if(document.getElementsByTagName("input")[i].checked == true)
	{
	foundCount++;
	strChks=strChks+document.getElementsByTagName("input")[i].id+"_1"+"|";
	}
	else
	strChks=strChks+document.getElementsByTagName("input")[i].id+"_0"+"|";
	}
	}
	$('checkActivos').value=strChks;
}
function construyeEdicion(){
var values=$('checkActivos').value.split('|');
var values_;
if($('checkActivos').value!=''){
document.getElementById("menu0").checked=true;
}
for(i=0;i<values.length;i++){
values_=values[i].split('_')
if(values_[1]==1){
var num=parseInt(values_[0],10);
var id='menu'+num;
document.getElementById(id).checked=true;
}
}
}

function validarNumero(e){
/*tecla_codigo = (document.all) ? e.keyCode : e.which;
patron =/\d+\.?\d*$/;
patron=/^[+-]?\d+([,.]\d+)?$/;
//return /^\d+\.?\d*$/.test(tecla_codigo);
tecla_valor = String.fromCharCode(tecla_codigo); */
var tecla_valor=e.value;

patron=/^[+-]?\d+([,.]\d+)?$/;
var a=patron.test(tecla_valor);
if(!a&& tecla_valor!=''){
alert('Ingrese un pocentaje valido');
e.focus();
}
else{
if(tecla_valor>100){
alert('Ingrese un porcentaje valido');
e.focus();
}
}
$('flgValidacion').value=a;
//return a; 

}



