/*
retorna  una cadena sin espacios en blanco al comienzo  
o al final de la misma
y deja un solo espacio en blanco entre palabras
*/
function trim(cad){
	cad2=cad;
	if(cad2.length>0){
		while(cad2.length>0 && cad2.charAt(0) == ' '){
			if(cad2.length >1)cad2=cad2.substr(1);
			else cad2='';
		}
		while(cad2.length>0 && cad2.charAt(cad2.length-1) == ' '){
			cad2=cad2.substr(0,cad2.length-1);
		}
		while(cad2.length>0 && cad2.indexOf('  ') >= 0){
			cad2=cad2.replace('  ',' ');
		}
	}
	return cad2;
}
/*
	Funcion compararFechas
	(Formato de las fechas aaaa/mm/dd)
	Parametros: fi - fecha de inicio
				ff - fecha de fin
	Retorna: false - si ff > fi
			  true - si fi < ff
*/
function compararFechas(fi, ff){
	var anio1=fi.substring(0,4);	
	var mes1 =fi.substring(5,2);
	var dia1 =fi.substring(8);
	
	var anio2=ff.substring(0,4);	
	var mes2 =ff.substring(5,2);
	var dia2 =ff.substring(8);
	
	
	dia1 = parseInt(dia1, 10);
	mes1 = parseInt(mes1, 10);
	anio1= parseInt(anio1, 10);
	
	dia2 = parseInt(dia2, 10);
	mes2 = parseInt(mes2, 10);
	anio2= parseInt(anio2, 10); 
	
	/*iniciamos comparando los años*/	
	if (anio1 > anio2) {
		return false;
	} 
	/*Ahora se comparan los meses*/
	if ((anio1<=anio2) && (mes1 > mes2)) {
		return false;
	} 
	/*Ahora se comparan los dias*/
	if ((anio1<=anio2) && (mes1<=mes2) && (dia1 <= dia2)) {
		return true;
	} 
	return false; 
}

/*
	Otra función que valida dos fechas. 
	Cumple Tres (3) Funciones:
	
	1. Cuando tipo == 1 verifica que la fecha de inicio (fini) sea menor o igual que la de finalizacion (ffin).
	2. Cuando tipo == 2 verifica que la fecha inicial sea Menor o igual a la fecha actual del sistema.
					  El parametro ffin debe ser igual a cadena vacia ('').
	3. Cuando tipo != 1 y 2 verifica que la fecha inicial sea mayor o igual a la fecha actual del sistema.
					  El parametro ffin debe ser igual a cadena vacia ('').
	
*/
function validar_fecha(fini, ffin, tipo) {
	// alert('Desde fechas.js'); // - OK USADA
	
	/* Anterior funcion
	
	Cumple dos funciones:
		1. Cuando tipo !=1 verifica que la fecha inicial sea mayor o igual a la fecha actual del sistema. El parametro ffin debe ser igual a cadena vacia ('').
		2. Cuando tipo  =1 verifica que la fecha de inicio (fini) sea menor o igual que la de finalizacion (ffin).
	
	var fini = fini.split("-");
	anoi = parseInt(fini[0]);
	mesi = parseInt(fini[1]);
	diai = parseInt(fini[2]);

	if (tipo == '1' || tipo == '2') {
		var ffin = ffin.split("-");
		ano = parseInt(ffin[0]);
		mes = parseInt(ffin[1]);
		dia = parseInt(ffin[2]);
		anoa = anoi;
		mesa = mesi;
		diaa = diai;
		anoi = ano;
		mesi = mes;
		diai = dia;
	} else {
		fecha = new Date();
		diaa = fecha.getDate();
		mesa = parseInt(fecha.getMonth())+1;
		anoa = fecha.getFullYear();
	}
	if (tipo == '2') {
		if (anoi == anoa) {
			if (mesi == mesa) {
				if (diai == diaa) {
					return false;
				}
			}
		}
	}
	if (anoi == anoa) {
		if (mesi == mesa){
			if (diai < diaa){
				return false;	
			}
			else{
				return true;	
			}
		}else if (mesi < mesa){
			return false;	
		}
		else{
			return true;	
		}
	}
	else if (anoi < anoa) {
		return false;
	} else{
		return true;
	}
	*/
	
	var fini = fini.split("-"); // Saca fecha inicial (fini) dd-m-yyyy --> ej: 14-4-2009
	ano_ini = parseInt(fini[0], 10);
	mes_ini = parseInt(fini[1], 10);
	dia_ini = parseInt(fini[2], 10);
	
	if (tipo == '1') { // Caso 1
		var ffin = ffin.split("-"); // Saca fecha final (ffin) dd-m-yyyy --> ej: 14-4-2009
		ano_fin = parseInt(ffin[0], 10);
		mes_fin = parseInt(ffin[1], 10);
		dia_fin = parseInt(ffin[2], 10);
	}else if (tipo == '2'){ // Caso 2
		fecha = new Date(); // Saca fecha actual del sistemas dd-m-yyyy --> ej: 14-4-2009
		dia_fin = fecha.getDate();
		mes_fin = parseInt(fecha.getMonth(), 10) + 1; // mesa = parseInt(fecha.getMonth()) + 1; // Anterior sin base 10
		ano_fin = fecha.getFullYear();
	}else{
		// Se cambian variables ini por fin
		ano_fin = ano_ini;
		mes_fin = mes_ini;
		dia_fin = dia_ini;
		fecha = new Date();
		dia_ini = fecha.getDate();
		mes_ini = parseInt(fecha.getMonth(), 10) + 1;
		ano_ini = fecha.getFullYear();
	}
	
	/* La misma fecha
	if (tipo == '2') {
		if (anoi == anoa) {
			if (mesi == mesa) {
				if (diai == diaa) {
					return false;
				}
			}
		}
	}
	*/
	
	if(ano_fin == ano_ini){
		if (mes_fin == mes_ini){
			if (dia_fin < dia_ini){
				return false;	
			}else{
				return true;	
			}
		}else if (mes_fin < mes_ini){
			return false;	
		}else{
			return true;	
		}
	}else if (ano_fin < ano_ini){
		return false;
	}else{
		return true;
	}
}


function valhora(field){
	var cam = document.getElementById(field);
	val = cam.value;
	val = val.replace(':','');
	res = '';
	for(x=0;x<val.length;x++){
		res+=val.charAt(x);
		if(x==1){
			res=res+':';
		}
	}
	if(res.length>4){
		res = res.substring(0,5);
	}
	cam.value = res;
}

function to24(txt, mer){
	var vec = txt.split(':');
	var hor = vec[0];
	var min = vec[1];
	if(mer=='am'){
		if(hor==12)hor = '00';
	}
	if(mer=='pm'){
		if(hor!=12){
			hor=parseInt(hor) + 12.0;
		}
	}
	if(hor.Length==1)hor = '0'+hor;
	return (hor+":"+min+":00")
}

function compararHoras(hi, hf, mer, mer1){
	var hini = to24(hi, mer);
	var hfin = to24(hf, mer1);
	
	hini = hi.split(":");
	hori = parseInt(hini[0]);
	mini = parseInt(hini[1]);
	var hfin = hf.split(":");
	hor = parseInt(hfin[0]);
	minu = parseInt(hfin[1]);
	if(hori<hor){
		return true;
	}else if(hori > hor){
		return true;
	}
	if(hori==hor){
		if(mini<=minu){
			return false;
		}else
		return true;
	}
}

/*
isDATE-> Evalua una cadena de fecha y retorna falso o verdadero si es válida o no.
Recibe: dateStr=Cadena de fecha en formato año-mes-dia.
Retorna: true o false un mensaje de alerta de error.
*/
function isDate(dateStr) {
	if(dateStr=='')return true;
	var datePat = /^(\d{4})(\-)(\d{2,2})(\-)(\d{2,2})$/;
	
	var matchArray = dateStr.match(datePat); // is the format ok?
	//si la cadena entrante no coincide genera un alert
	if (matchArray == null) {
		alert("Por favor ingrese una fecha con el formato  Año-Mes-Día así (aaaa-mm-dd)");
		return false;
	}
	//Distribuye las variables para año, mes y dia
	year = matchArray[1];
	month = matchArray[3]; 
	day = matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
		alert("El mes debe estar entre 1 y 12.");
		return false;
	}

	if (day < 1 || day > 31) {
		alert("El día debe estar entre 1 y 31.");
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("El mes "+month+" no tiene 31 días!")
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			alert("Febrero " + year + " no tiene " + day + " días!");
			return false;
		}
	}
return true; // date is valid
}
/*formaFecha-> Da formato a la cadena de fecah adicionandole "-" segun corresponda.
Recibe:los caracteres digitados en el evento de un cuadro de texto.
Retorna: retorna una cadena con el formato correspondiente.
*/
function formaFecha(fec_pag){
	val = fec_pag;
	val = val.replace('-','');
	val = val.replace('-','');
	res = '';
	for(x=0;x<val.length;x++){
		res+=val.charAt(x);
		if(x==3){
			res=res+'-';
		}
		if(x==5){
			res=res+'-';	
		}
	}
	return res;
}
function validaEnero(fecha){
	
	if(fecha>'2007-10-31'&& fecha< ''){
	}
	return false;
}
/*
isTime-> Evalua una cadena de hora y retorna falso o verdadero si es válida o no.
Recibe: timeStr=Cadena de fecha en formato hh:mm
Retorna: true o false un mensaje de alerta de error.
*/
function isTime(timeStr) {
	if(timeStr=='')return true;
	var timePat = /^(\d{2})(\:)(\d{2,2})$/;
	
	var matchArray = timeStr.match(timePat); // is the format ok?
	//si la cadena entrante no coincide genera un alert
	if (matchArray == null) {
		alert("Por favor ingrese una hora con el formato hh:mm.");
		return false;
	}
	//Distribuye las variables para año, mes y dia
	hour = matchArray[1];
	mins = matchArray[3]; 
	
	if (hour < 0 || hour > 23) { // check month range
		alert("La hora debe estar entre 00 y 23.");
		return false;
	}

	if (mins < 0 || mins > 59) {
		alert("los minutos deben estar entre 00 y 59.");
		return false;
	}	
return true; // date is valid
}
function formaHora(hor){
	val = hor;
	val = val.replace(':','');
	res = '';
	for(x=0;x<val.length;x++){
		res+=val.charAt(x);
		if(x==1){
			res=res+':';
		}
	}
	return res;
}

