//  <<<   <<<   VALIDACION GENERAL   >>>   >>>  //

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü "
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑÜ"
var numbers = "0123456789"

/// Variables de Browser
var isIE = document.all?true:false;
var isNS = document.layers?true:false;


function esVacio(val){
  	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}

function esNumero(val){
	for(var i=0;i<val.length;i++){
		if(!esDigito(val.charAt(i))){return false;}
		}
	return true;
	}

function esFlotante(val){
var a=0;
	for(var i=0;i<val.length;i++){
		if(!esDigito(val.charAt(i))){
			if ( ! esPunto(val.charAt(i))){
				return false;
				}else{
				if ( a != 0) return false;
				a++;
				}
			}
		}
	return true;
	}

function esDigito(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}
	
function esPunto(num) {
	if (num.length>1){return false;}
	var string=".";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

function soloDigitos(e) {
	var digito = -1;
  	if (e && e.which) digito = e.which; // NS
  	else if (window.event && window.event.keyCode) digito = window.event.keyCode; // IE
 	return (digito > -1 ? ( ( digito > 47 && digito < 58 ) || digito == 27 ) : true);
}

function solodigitos(e,decReq) {
	var key = (isIE) ? window.event.keyCode : e.which;
	var obj = (isIE) ? event.srcElement : e.target;
	var isNum = (key > 47 && key < 58) ? true:false;
	var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;
	window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
	e.which = (!isNum && !dotOK && isNS) ? 0:key;
	return (isNum || dotOK);
}

function esNumeroConBlancos(val){return(parseFloat(val,10)==(val*1));}

function isAlphabeticAndNumeric (s){
    var i;
    for (i = 0; i < s.length; i++) {   
        var c = s.charAt(i);
        if (!isLetterNumber(c))
        return false;
    }
    return true;
}

function isAlphabetic (s){
   var i;
   for (i = 0; i < s.length; i++)  {   
        var c = s.charAt(i);
        if (!isLetter(c))
        return false;
   }
   return true;
}

function isLetterNumber (c){
	var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
	var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	var numbers = "0123456789"
		if( uppercaseLetters.indexOf( c ) != -1 ) return true;
		if ( lowercaseLetters.indexOf( c ) != -1 ) return true;
		if ( numbers.indexOf( c ) != -1 ) return true;
		return false;
}

function isLetter (c){
	if( uppercaseLetters.indexOf( c ) != -1 ) return true;
	if ( lowercaseLetters.indexOf( c ) != -1 ) return true;
	return false;
}

function esNumeroConBlancos(val){return(parseFloat(val,10)==(val*1));}

function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
    return (true)
  } else {
    return (false);
  }
}

function validarFecha(dia, mes, ano){
	valida = true;
	switch (mes){
	case "02":
		if (dia == "30" || dia == "31")
			valida = false;
		break;
	case "04":
	case "06":
	case "09":
	case "11":
		if( dia == "31")
			valida = false;
		break;
	};
	return valida;
}


//  <<<   <<<   VALIDACION DE FECHAS   >>>   >>>  //

function compararFechas(fechaIni, fechaFin){
	comparar = false;
	arrFechaIni = fechaIni.split("-");
	strFechaIni = arrFechaIni[2] + arrFechaIni[1] + arrFechaIni[0];
	valFechaIni = new Number(strFechaIni); 

	arrFechaFin = fechaFin.split("-");
	strFechaFin = arrFechaFin[2] + arrFechaFin[1] + arrFechaFin[0];
	valFechaFin = new Number(strFechaFin);
	
	if (valFechaIni >= valFechaFin) 
		comparar = true;
	return (comparar);
}

function esFechaMayor(fechaIni, fechaFin){
	comparar = false;
	arrFechaIni = fechaIni.split("-");
	strFechaIni = arrFechaIni[2] + arrFechaIni[1] + arrFechaIni[0];
	valFechaIni = new Number(strFechaIni); 

	arrFechaFin = fechaFin.split("-");
	strFechaFin = arrFechaFin[2] + arrFechaFin[1] + arrFechaFin[0];
	valFechaFin = new Number(strFechaFin);
	
	if (valFechaIni > valFechaFin) 
		comparar = true;
	return (comparar);
}

//  <<<   <<<   VERIFICACION DE RADIOS & CHECKS   >>>   >>>  //

function chequearCheckBox(){
retorno = false;
	for (var i=0;i < document.forms[0].elements.length;i++)
	{	var elemento = document.forms[0].elements[i];
		if (elemento.type == "checkbox"){
			if (elemento.checked)
				retorno = true;
		}		
	}
	return (retorno);
}

function chequearRadio(){
retorno = false;
	for (var i=0;i < document.forms[0].elements.length;i++)
	{	var elemento = document.forms[0].elements[i];
		if (elemento.type == "radio"){
			if (elemento.checked)
				retorno = true;
		}		
	}
	return (retorno);
}

function chequearRadioNum(num){
retorno = false;
	for (var i=0;i < document.forms[num].elements.length;i++)
	{	var elemento = document.forms[num].elements[i];
		if (elemento.type == "radio"){
			if (elemento.checked)
				retorno = true;
		}		
	}
	return (retorno);
}
//  <<<   <<<   VISUALIZACION DE SPAN   >>>   >>>  //

function setVisibility(obj){
	v = document.getElementById(obj);
	v = v.style
	if (v.display == "none"){
		document.getElementById("Img" + obj).src = "../images/menos.gif";
		b = true;
	}else{
		document.getElementById("Img" + obj).src = "../images/mas.gif";
	    b = false;
	}	
	var s = (b)?"block":"none";
	if (v.display != s)
		v.display = s;
}

function setVisibility2(o, b){
	if (document.getElementById)
		v = document.getElementById(o).style;
	else if (document.all)
		v = document.all[o].style;
	else
		return;
	var s = (b)?"block":"none";
	if (v.display != s)
		v.display = s;
}

//  <<<   <<<    CARGA DINAMICA DE COMBOS   >>>   >>>  //


function cargaCombo(myArray, forma){
	for(i=0; i<myArray.length; i++){
		list = myArray[i];
		forma.options[i] = new Option(list[1], list[0]);
        forma.selectedIndex = 0;
	}	
}

function recargaCombo(myArray, forma, filtro, pos){
var j = 0;
forma.options.length = 0;
	for(i=0; i<myArray.length; i++){
		list = myArray[i];
		var cad1 = list[pos];
		var cad2 = filtro;
		if(cad1==cad2){
  		    forma.options[j] = new Option(list[1], list[0]);
		    j = j + 1;
		}
        forma.selectedIndex = 0;
	}	
}

function recargaComboComp(myArray, forma, filtro, pos, id){
var j = 0;
forma.options.length = 0;
	for(i=0; i<myArray.length; i++){
		list = myArray[i];
		var cad1 = list[pos];
		var cad2 = filtro;
		var numId = list[pos+1];
		if(cad1==cad2 && numId==id){
  		    forma.options[j] = new Option(list[1], list[0]);
		    j = j + 1;
		}
        forma.selectedIndex = 0;
	}	
}

function loadFirst(myArray, forma){ //Carga el Primer Combo
	cargaCombo(myArray, forma);  
}

function loadOthers(myArray, formaPadre, formaHija, pos){ //Carga Otros Combos
    if(formaPadre.options.length  > 0)
  		number = "" + formaPadre.options[formaPadre.selectedIndex].value;
	else	
  		number = "";
	
	if(number.length > 0){
		recargaCombo(myArray, formaHija, number, pos);
	}else{
		formaHija.options.length = 0;
	}
}

function loadOthersComp(myArray, formaPadre, formaHija, pos, id){ //Carga Otros Combos
    if(formaPadre.options.length  > 0)
  		number = "" + formaPadre.options[formaPadre.selectedIndex].value;
	else	
  		number = "";
	
	if(number.length > 0){
		recargaComboComp(myArray, formaHija, number, pos, id);
	}else{
		formaHija.options.length = 0;
	}
}


// funciones para recargar sitios, para el manejo de las zonas 

function selectValue(forma, valor){
  for(i=0; i<forma.length; i++){
		if(forma.options[i].value == valor){
			forma.selectedIndex = i;
		}
  }
}

///Metodo especial... no modificar
function selectPadre(arrPadre, arrHijo, valor){
var retorno = "";
	
	for(i=0; i<arrHijo.length; i++){
		list = arrHijo[i];
		var cad1 = list[0];
		var cad2 = list[1];
		var cad3 = list[2];
		if(cad1 == valor){
		    retorno = cad3;
		}
	}
return retorno;	
}


///// Validar Checks y Radios

function validaArrayObjects(element){
	var bOk = false;
	if(element.length){
		for(var i=0; i < element.length; i++){
			if(element[i].checked){
				bOk=true;
			}
		}
	}else
		if(element.checked){
			bOk = true;
	}
	return bOk;
}

// Eliminar espacios

function trim(s){
	return rtrim(ltrim(s));
}

function ltrim(s){
	var l=0;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	return s.substring(l, s.length);
}

function rtrim(s){
	var r=s.length -1;
	while(r > 0 && s[r] == ' ')
	{	r-=1;	}
	return s.substring(0, r+1);
}
