//Funcion que calcula cunatos dias tiene un mes y los agrega al select de los dias
function dias_mes(formulario, prefijo){
	var select_ano=eval("formulario."+prefijo+"_ano");
	var select_mes=eval("formulario."+prefijo+"_mes");
	var select_dia=eval("formulario."+prefijo+"_dia");
	
	var dias =new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	//Si se seleccionó un año y un mes, entonces realiza el proceso
	if (select_ano.value!="-" && select_mes.value!="-"){
		var valor_ano=parseInt(select_ano.value,10);
		var valor_mes=parseInt(select_mes.value,10);
		var num_dias=0;
		if (valor_mes==2){
			if (valor_ano%4==0 && valor_ano%100!=0 && valor_ano%400!=0)
				num_dias=29;
			else
				num_dias=28;
		}else{
				num_dias=dias[valor_mes];
		}
		select_dia.options.length=0;
		for (i=1; i<=num_dias; i++){
			var str_i=i;
			if (i<10)
				str_i="0"+i;
			select_dia.options[i-1] = new Option(str_i,str_i,false, false);			
		}
	}
}


//De numeros a letras
function numeros_a_letras(numero, documento){
	var letras="";
	var mil_letras="";
	var millones_letras="";
	var miles_millones_letras="";
	var billones_letras="";
	s_numero=numero;
	var numero=new Number(numero);
	unidades=["un","dos","tres","cuatro","cinco","seis","siete","ocho","nueve"];
	dieces=["diez","once","doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve"];
	veintes=["veinte","veintiun","veintidos","veintitres","veinticuatro","veinticinco","veintiseis","veintisiete","veintiocho","veintinueve"];
	decenas =["diez","veinte","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa"];
	centenas=["ciento","doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos"];
	var str_numero=new String(numero);
	if (s_numero=="" || valida_vacio(s_numero)==false){
		documento.getElementById('cuantia_letras').innerHTML="";	
	}else	if (str_numero!="0"){
			letras="";
		num_unidad="0";
		num_decena="0";
		num_centena="0";
		//Unidades
		var num_unidad=str_numero.substring(str_numero.length-1,str_numero.length);
		if (num_unidad!="0")
			letras=unidades[parseInt(num_unidad,10)-1];
		//Decenas
		if (str_numero.length>1){
			var num_decena=str_numero.substring(str_numero.length-2,str_numero.length-1);
			if (num_decena!="0"){
				if (num_decena!="1" && num_decena!="2"){
					if (num_unidad=="0")
						letras=decenas[parseInt(num_decena,10)-1];	
					else
						letras=decenas[parseInt(num_decena,10)-1]+" y "+letras;	
				}else if (num_decena=="1")
					letras=dieces[parseInt(num_unidad,10)];
				else if (num_decena=="2")
					letras=veintes[parseInt(num_unidad,10)];
			}
				
		}
		//Centenas
		if (str_numero.length>2){
			var num_centena=str_numero.substring(str_numero.length-3,str_numero.length-2);
			if (num_centena!="0"){
				if (num_centena=="1" && num_decena=="0" && num_unidad=="0")
					letras="cien";
				else
					letras=centenas[parseInt(num_centena,10)-1]+" "+letras;
			}
		}
		
		num_unidad_mil="0";
		num_decena_mil="0";
		num_centena_mil="0";
		
		//Unidades de Mil
		if (str_numero.length>3){
			var num_unidad_mil=str_numero.substring(str_numero.length-4,str_numero.length-3);
			if (num_unidad_mil!="0"){
				if (num_unidad_mil!="1")
					mil_letras=unidades[parseInt(num_unidad_mil,10)-1];	
			}
		}
		
		//Decenas de mil
		if (str_numero.length>4){
			var num_decena_mil=str_numero.substring(str_numero.length-5,str_numero.length-4);
			if (num_decena_mil!="0"){
				if (num_decena_mil!="1" && num_decena_mil!="2"){
					if (num_unidad_mil=="0")
						mil_letras=decenas[parseInt(num_decena_mil,10)-1]+" "+mil_letras;	
					else
						mil_letras=decenas[parseInt(num_decena_mil,10)-1]+" y "+mil_letras;	
				}else if (num_decena_mil=="1")
					mil_letras=dieces[parseInt(num_unidad_mil,10)];
				else if (num_decena_mil=="2")
					mil_letras=veintes[parseInt(num_unidad_mil,10)];
			}
				
		}
		
		//Centenas de mil
		if (str_numero.length>5){
			var num_centena_mil=str_numero.substring(str_numero.length-6,str_numero.length-5);
			if (num_centena_mil!="0"){
				if (num_centena_mil=="1" && num_decena_mil=="0" && num_unidad_mil=="0")
					mil_letras="cien";
				else
					mil_letras=centenas[parseInt(num_centena_mil,10)-1]+" "+mil_letras;
			}
		}
		
		if (num_centena_mil!="0" || num_decena_mil!="0" || num_unidad_mil!="0")
			mil_letras=mil_letras; //+" mil";
			
		num_unidad_millon="0";
		num_decena_millon="0";
		num_centena_millon="0";
		millones_letras="";
		
		//Unidades de Millon
		if (str_numero.length>6){
			var num_unidad_millon=str_numero.substring(str_numero.length-7,str_numero.length-6);
			if (num_unidad_millon!="0"){
				if (num_unidad_millon!="1")
					millones_letras=unidades[parseInt(num_unidad_millon,10)-1];	
			}
		}
		
		//Decenas de millon
		if (str_numero.length>7){
			var num_decena_millon=str_numero.substring(str_numero.length-8,str_numero.length-7);
			if (num_decena_millon!="0"){
				if (num_decena_millon!="1" && num_decena_millon!="2"){
					if (num_unidad_millon=="0")
						millones_letras=decenas[parseInt(num_decena_millon,10)-1]+" "+millones_letras;	
					else
						millones_letras=decenas[parseInt(num_decena_millon,10)-1]+" y "+millones_letras;	
				}else if (num_decena_millon=="1")
					millones_letras=dieces[parseInt(num_unidad_millon,10)];
				else if (num_decena_millon=="2")
					millones_letras=veintes[parseInt(num_unidad_millon,10)];
			}
				
		}
		
		//Centenas de millon
		if (str_numero.length>8){
			var num_centena_millon=str_numero.substring(str_numero.length-9,str_numero.length-8);
			if (num_centena_millon!="0"){
				if (num_centena_millon=="1" && num_decena_millon=="0" && num_unidad_millon=="0")
					millones_letras="cien";
				else
					millones_letras=centenas[parseInt(num_centena_millon,10)-1]+" "+millones_letras;
			}
		}
		
		if (num_centena_millon!="0" || num_decena_millon!="0" || num_unidad_millon!="0"){
			if (!(num_centena_millon=="0" && num_decena_millon=="0" && num_unidad_millon=="1"))
				millones_letras=millones_letras; //+" millones";
		}
		
		//Mil millones
		num_unidad_mm="0";
		num_decena_mm="0";
		num_centena_mm="0";
		miles_millones_letras="";
		
		//Unidades de mil Millones
		if (str_numero.length>9){
			var num_unidad_mm=str_numero.substring(str_numero.length-10,str_numero.length-9);
			if (num_unidad_mm!="0"){
				if (num_unidad_mm!="1")
					miles_millones_letras=unidades[parseInt(num_unidad_mm,10)-1];	
			}
		}
		
		//Decenas de mil millones
		if (str_numero.length>10){
			var num_decena_mm=str_numero.substring(str_numero.length-11,str_numero.length-10);
			if (num_decena_mm!="0"){
				if (num_decena_mm!="1" && num_decena_mm!="2"){
					if (num_unidad_mm=="0")
						miles_millones_letras=decenas[parseInt(num_decena_mm,10)-1]+" "+miles_millones_letras;	
					else
						miles_millones_letras=decenas[parseInt(num_decena_mm,10)-1]+" y "+miles_millones_letras;	
				}else if (num_decena_mm=="1")
					miles_millones_letras=dieces[parseInt(num_unidad_mm,10)];
				else if (num_decena_mm=="2")
					miles_millones_letras=veintes[parseInt(num_unidad_mm,10)];
			}
				
		}
		
		//Centenas de mil millones
		if (str_numero.length>11){
			var num_centena_mm=str_numero.substring(str_numero.length-12,str_numero.length-11);
			if (num_centena_mm!="0"){
				if (num_centena_mm=="1" && num_decena_mm=="0" && num_unidad_mm=="0")
					miles_millones_letras="cien";
				else
					miles_millones_letras=centenas[parseInt(num_centena_mm,10)-1]+" "+miles_millones_letras;
			}
		}
		
		if (num_centena_mm!="0" || num_decena_mm!="0" || num_unidad_mm!="0"){
			if (!(num_centena_mm=="0" && num_decena_mm=="0" && num_unidad_mm=="1"))
				miles_millones_letras=miles_millones_letras; //+" mil";
		}
		
		//Billones
		num_unidad_billon="0";
		num_decena_billon="0";
		num_centena_billon="0";
		billones_letras="";
		
		//Unidades de billon
		if (str_numero.length>12){
			var num_unidad_billon=str_numero.substring(str_numero.length-13,str_numero.length-12);
			if (num_unidad_billon!="0"){
				if (num_unidad_billon!="1")
					billones_letras=unidades[parseInt(num_unidad_billon,10)-1];	
			}
		}
		
		//Decenas de billon
		if (str_numero.length>13){
			var num_decena_billon=str_numero.substring(str_numero.length-14,str_numero.length-13);
			if (num_decena_billon!="0"){
				if (num_decena_billon!="1" && num_decena_billon!="2"){
					if (num_unidad_billon=="0")
						billones_letras=decenas[parseInt(num_decena_billon,10)-1]+" "+billones_letras;	
					else
						billones_letras=decenas[parseInt(num_decena_billon,10)-1]+" y "+billones_letras;	
				}else if (num_decena_billon=="1")
					billones_letras=dieces[parseInt(num_unidad_billon,10)];
				else if (num_decena_billon=="2")
					billones_letras=veintes[parseInt(num_unidad_billon,10)];
			}
				
		}
		
		//Centenas de mil millones
		if (str_numero.length>14){
			var num_centena_billon=str_numero.substring(str_numero.length-15,str_numero.length-14);
			if (num_centena_billon!="0"){
				if (num_centena_billon=="1" && num_decena_billon=="0" && num_unidad_billon=="0")
					billones_letras="cien";
				else
					billones_letras=centenas[parseInt(num_centena_billon,10)-1]+" "+billones_letras;
			}
		}
		
		if (num_centena_billon!="0" || num_decena_billon!="0" || num_unidad_billon!="0"){
			if (!(num_centena_billon=="0" && num_decena_billon=="0" && num_unidad_billon=="1"))
				billones_letras=billones_letras; //+" billones";
		}
		
		//Casos especiales
		/*
		num_unidad
		num_decena
		num_centena
		num_unidad_mil
		num_decena_mil
		num_centena_mil
		num_unidad_millon
		num_decena_millon
		num_centena_millon
		num_unidad_mm
		num_decena_mm
		num_centena_mm
		num_unidad_billon
		num_decena_billon
		num_centena_billon
		*/
		
		
		if (num_unidad_mil=="1" && num_decena_mil=="0" &&	num_centena_mil=="0"){ 
			mil_letras="mil";
		}else if (num_unidad_mil=="1" && ( (num_decena_mil>"2" || num_decena_mil=="0") &&	num_centena_mil>"0")){
			mil_letras=mil_letras+"un mil";
		}else	if (num_unidad_mil>"0" || num_decena_mil>"0" ||	num_centena_mil>"0"){
			//Si los miles son mas de uno y las unidades de mil son diferentes de 1
			mil_letras=mil_letras+" mil";
		}
		
		
		if (num_unidad_mm=="1" && num_decena_mm=="0" &&	num_centena_mm=="0"){
			miles_millones_letras="mil";
		}else if (num_unidad_mm=="1" && (num_decena_mm>"2" &&	num_centena_mm>"0")){
			miles_millones_letras=miles_millones_letras+" un mil";
		}else if (num_unidad_mm>"1" || num_decena_mm>"0" ||	num_centena_mm>"0"){
			miles_millones_letras=miles_millones_letras+" mil";
		}
		
		//Si es Un millón
		if (num_unidad_millon=="1" && num_decena_millon=="0" &&	num_centena_millon=="0" &&	num_unidad_mm=="0" && num_decena_mm=="0" &&	num_centena_mm=="0"){
			miles_millones_letras="";
			millones_letras="un millón";
		}else if (num_unidad_millon=="1" && num_decena_millon=="0" &&	num_centena_millon=="0" &&	(num_unidad_mm>"0" || num_decena_mm>"0" ||	num_centena_mm>"0")){
			millones_letras=millones_letras+" un millones";
		}else if (num_unidad_millon=="1" && (num_decena_millon>"2" ||	num_centena_millon>"0")){
			millones_letras=millones_letras+" un millones";
		}else	if (num_unidad_millon>"0" || num_decena_millon>"0" ||	num_centena_millon>"0" ||	num_unidad_mm>"0" || num_decena_mm>"0" ||	num_centena_mm>"0"){
			//Si los millones son mas de uno
			millones_letras=millones_letras+" millones";
		}
		

		//Billones
		if (num_unidad_billon=="1" && num_decena_billon=="0" && num_centena_billon=="0")		
			billones_letras="un billon";	
		else if (num_unidad_billon=="1" && (num_decena_billon>"2" || num_centena_billon>"0"))		
			billones_letras=billones_letras+" un billones";
		else if (num_unidad_billon>"0" || num_decena_billon>"0" || num_centena_billon>"0")		
			billones_letras=billones_letras+" billones";	
			
		var cadena_mostrar="";
		//alert(num_unidad+":"+num_decena+":"+num_centena+":"+num_unidad_mil+":"+num_decena_mil+":"+num_centena_mil+":"+num_unidad_millon+":"+num_decena_millon+":"+num_centena_millon+":"+num_unidad_mm+":"+num_decena_mm+":"+num_centena_mm+":"+num_unidad_billon+":"+num_decena_billon+":"+num_centena_billon);
		if (num_unidad=="1" && num_decena=="0" && num_centena=="0" && num_unidad_mil=="0" && num_decena_mil=="0" && num_centena_mil=="0" && num_unidad_millon=="0" && num_decena_millon=="0" && num_centena_millon=="0" && num_unidad_mm=="0" && num_decena_mm=="0" && num_centena_mm=="0" && num_unidad_billon=="0" && num_decena_billon=="0" && num_centena_billon=="0")		
			cadena_mostrar=billones_letras+" "+miles_millones_letras+" "+millones_letras+" "+mil_letras+" "+letras+" peso colombiano";	
		else
			cadena_mostrar=billones_letras+" "+miles_millones_letras+" "+millones_letras+" "+mil_letras+" "+letras+" pesos colombianos";	
			
		var pos_inicial=0;
		for (i=0; i<cadena_mostrar.length; i++){
			if (cadena_mostrar.substring(i,i+1)==" ")
				pos_inicial=i+1;
			else
				i=cadena_mostrar.length;
		}
		cadena_mostrar=cadena_mostrar.substring(pos_inicial,pos_inicial+1).toUpperCase()+cadena_mostrar.substring((pos_inicial+1),cadena_mostrar.length);
		documento.getElementById('cuantia_letras').innerHTML=cadena_mostrar;
	}else
		documento.getElementById('cuantia_letras').innerHTML="Cero pesos colombianos";	
		
}

//Funcion para calcular la fecha actual
function fecha_actual(){
	var fecha_actual=new Date();
	var ano=fecha_actual.getFullYear();
	var mes=fecha_actual.getMonth()+1;
	var dia=fecha_actual.getDate();
	if (mes<10)
		mes="0"+mes;
	if (dia<10)
		dia="0"+dia;
	var str_fecha=ano+"-"+mes+"-"+dia;
	return str_fecha;
}

function alternar_seccion(seccion,ocultar){
	if (seccion.style.display=="none"){
		seccion.style.display="";
		ocultar.innerHTML='Ocultar';
	}else{
		seccion.style.display="none";
		ocultar.innerHTML='Ver';
	}
}

function controlar_check_todos(formulario,objeto,todos,cuantos){ 
	if (objeto.checked==true)
		todos.value=parseInt(todos.value,10)+1;
	else
		todos.value=parseInt(todos.value,10)-1;
	if (todos.value==cuantos)
		todos.checked=true;
	else
		todos.checked=false;
	
}
function calcular_con_iva_proms(objeto,iva,documento){
	var valor_con_iva=0;
	var restonombre=objeto.id.substring(16,20);
	var objetoiva=Object(documento.getElementById(iva));
	valor_con_iva=objeto.value/(1+(objetoiva.value/100))*100;
	valor_con_iva_completo=valor_con_iva/100;
	valor_con_iva=Math.round(valor_con_iva)/100;
	var spannombre="span_val_producto_"+restonombre;
	var hd_valor="hd_valor_"+restonombre;
	if (isNaN(valor_con_iva)==true)
		valor_con_iva=0;
	documento.getElementById(spannombre).innerHTML=valor_con_iva;
	documento.getElementById(hd_valor).value=valor_con_iva_completo;
}
function calcular_con_iva(objeto,iva,documento){
	var valor_con_iva=0;
	var restonombre=objeto.id.substring(13,20);
	var objetoiva=Object(documento.getElementById(iva));
	valor_con_iva=objeto.value/(1+(objetoiva.value/100))*100;
	valor_con_iva_completo=valor_con_iva/100;
	valor_con_iva=Math.round(valor_con_iva)/100;
	var spannombre="span_val_producto_"+restonombre;
	if (isNaN(valor_con_iva)==true)
		valor_con_iva=0;
	var hd_valor="hd_valor_"+restonombre;
	documento.getElementById(hd_valor).value=valor_con_iva_completo;
	documento.getElementById(spannombre).innerHTML=valor_con_iva;
}
function valida_linea(form){
	var len_codigo=0;
	for (i=0;i<form.txt_cod_lin.value.length;i++){
		if (valida_vacio(form.txt_cod_lin.value.substring(i,i+1))==true)
			len_codigo=len_codigo+1;
	}
	if (len_codigo!=3){
		alert("El codigo de la línea debe ser de 3 digitos");
		form.txt_cod_lin.focus();
		return false;
	}	
	if (valida_datos(form)==false)
		return false;
}
function sel_todosasignuevo(form){
	valor=form.chk_sel.checked;
	for (x=0;x<form.elements.length;x++){
		if (form.elements[x].type=="checkbox" && form.elements[x].name!="chk_aplicarsel")
			form.elements[x].checked=valor;
	}	
}

//Funciones realizadas en JavaScript
function valida_producto_promocion(form){
	var cuantos=0;
	var restonombre="";
	var len_rnombre=0;
	/*
	for (i=0;i<form.elements.length;i++){
		if (form.elements[i].type=="checkbox" && form.elements[i].name.substring(0,7)=="chk_prd" && form.elements[i].checked==true){
			restonombre=form.elements[i].name.substring(7,30);
			len_rnombre=restonombre.length;
			for (j=0;j<form.elements.length;j++){					
				if (form.elements[j].type=="checkbox" && form.elements[j].name.substring(0,7)=="chk_age" && form.elements[j].checked==true && form.elements[j].name.substring(7,7+len_rnombre)==restonombre){
					cuantos++;
				}
				
			}
		}
	}*/
	/*if (cuantos>0){
		for (i=0;i<form.elements.length;i++){
			if (form.elements[i].type=="checkbox" && form.elements[i].checked==false){
				var objeto=new Object(form.elements[i]);
				objeto.parentNode.removeChild(objeto);
			}
		}
		return true;
	}else{
		alert("Debe existir algun producto seleccionado con sus respectivos puntos de venta, si no desea agregar algun producto entonces haga clic en Volver");
		return false;
	}*/
		return true;
}

function valida_nueva_promocion(form,fechas_iniciales,fechas_finales,documento){
	var fecha=new Date();
	var ano="";var mes="";var dia="";
	ano=fecha.getFullYear();
	mes=fecha.getMonth()+1;
	dia=fecha.getDate();
	var mi_fecha=new String("");
	if (verificar_fechas(form,fechas_iniciales,fechas_finales)==false){
		return false;
	}
	if (mes<10)
		mes="0"+mes;
	if (dia<10)
		dia="0"+dia;
	mi_fecha=ano+"-"+mes+"-"+dia;
	mi_fecha2=ano+"/"+mes+"/"+dia;
	if (valida_vacio(form.txt_nombre.value)==false){
		alert("Digite el nombre de la promoción.");
		return false;
	}else if (form.txt_fechaini.value<mi_fecha){
		alert("La fecha inicial de esta promocion no puede ser menor a la fecha actual "+mi_fecha2);
		form.txt_fechaini.focus();
		return false;
	}else if (form.txt_fechaini.value>form.txt_fechafin.value){
		alert("La fecha inicial no puede ser mayor a la fecha final");
		form.txt_fechaini.focus();
		return false;
	}else{
		/*
		var cuantos=0;
		var restonombre="";
		var len_rnombre=0;
		var inicial=new Number(0);
		var encontrado=new Boolean(false);
		
		for (i=inicial;i<form.elements.length;i++){
			if (form.elements[i].type=="checkbox" && form.elements[i].name.substring(0,7)=="chk_prd" && form.elements[i].checked==true){
				restonombre=form.elements[i].name.substring(7,30);
				len_rnombre=restonombre.length;
				encontrado=false;
				for (j=i;j<form.elements.length;j++){					
					if (form.elements[j].type=="checkbox" && form.elements[j].name.substring(0,7)=="chk_age" && form.elements[j].checked==true && form.elements[j].name.substring(7,7+len_rnombre)==restonombre){
						cuantos++;
						encontrado=true;
					}else{
						if (encontrado==true){
							inicial=j--;
							j=form.elements.length;
						}
					}
				}
			}
		}*/
		/*
		if (cuantos>0){
			for (i=0;i<form.elements.length;i++){
				if (form.elements[i].type=="checkbox" && form.elements[i].checked==false){
					var objeto=new Object(form.elements[i]);
					objeto.parentNode.removeChild(objeto);
				}
			}
			return true;
		}else{
			alert("Debe existir algun producto seleccionado con sus respectivos puntos de venta");
			return false;
		}
		*/
		/*
		for (i=0;i<form.elements.length;i++){
			if (form.elements[i].type=="checkbox" && form.elements[i].checked==false){
				var objeto=new Object(form.elements[i]);
				objeto.parentNode.removeChild(objeto);
			}
		}
		*/
		return true;
	}
}

function valida_tipoprecio(form){
	if (valida_datos(form)==false)
		return false;
	else if (validar_almenos_una(form,'chk_sel',' un producto.')==false)
		return false;
	else
		return true;
}

function dias(mes,ano,form){
	var num_dias=0;
	if (mes=="01" || mes=="03" || mes=="05" || mes=="07" || mes=="08" || mes=="10" || mes=="12")
		num_dias=31;
	else if (mes=="04" || mes=="06" || mes=="09" || mes=="11")
		num_dias=30;
	else if (mes=="02")
		num_dias=28;
		
	if (num_dias==28){
		if (ano%4==0)
			num_dias=num_dias+1;
	}
	try{
		for (i=form.cmb_dia.options.length-1;i>=0;i--){
			form.cmb_dia.options.remove(i);
		}
	}catch(e){
		form.cmb_dia.options.length=0;
	}
	var str_i=new String("");
	for (i=0;i<num_dias;i++){
			if (i+1<10)
				str_i="0"+(i+1);
			else
				str_i=i+1;
			form.cmb_dia.options[i]=new Option(str_i,str_i,false,false);
	}
}
function colocar_icono(valor){
	var ruta_imagen="";
	for (i=0;i<document.images.length;i++){
		if (document.images[i].id.substring(0,9)=="img_file_"){
			if (valor==true){
				ruta_imagen="imagenes/chulito_azul.jpg";
			}else{
				ruta_imagen="imagenes/sin_chulito.jpg";
			}
				document.images[i].src=ruta_imagen;
		}
	}
}
function cargar_prefijos(matriz,objeto,valor_buscado){
	var objSelect;
	var intContadorSelect = 1;
	intContadorSelect = 1;
	objeto.options.length=0;
	objeto.options[0] = new Option("-- Seleccionar --","-",false, false);
	for (var i = 0; i < matriz.length; i++) {
		if (valor_buscado == matriz[i][0]) {
		  objeto.options[intContadorSelect] = new Option(matriz[i][1],matriz[i][1],false, false);
		  intContadorSelect++;
		 }
	}
	return true;
}


function validar_generar_siigo(form){
	if (validar_almenos_una(form,'chk_sel','un archivo.')==false)
		return false;
	else{
		var restonombre="";
		for (i=0;i<form.elements.length;i++){
			if (form.elements[i].type=="checkbox" && form.elements[i].checked==true && form.elements[i].name!="chk_sel"){
				restonombre=form.elements[i].id.substring(9,30);
				if (valida_vacio(form.elements["nam_file_"+restonombre].value)==false){
					alert("Digite un nombre para el archivo seleccionado");
					form.elements["nam_file_"+restonombre].focus();
					return false;
				}
			}
		}
	}
}
function validar_almenos_una(form,objeto_sel_todos,mensaje){
	var hay=false;
	for (i=0;i<form.elements.length;i++){
		if (form.elements[i].type=="checkbox" && form.elements[i].checked==true && form.elements[i].name!=objeto_sel_todos)
			return true;
	}
	alert("Debe seleccionar al menos "+mensaje);
	return false;
}

function valida_edicion_promocion(form,fechas_iniciales,fechas_finales,codigo_promociones,documento){
	if (verificar_fechas_editar(form,fechas_iniciales,fechas_finales,codigo_promociones,form.hd_codigo.value)==false){
		return false;
	}
	if (valida_vacio(form.txt_nombre.value)==false){
		alert("Digite el nombre de la promoción.");
		form.txt_nombre.focus();
		return false;
	}else if (form.txt_fechaini.value>form.txt_fechafin.value){
		alert("La fecha inicial no puede ser mayor a la fecha final");
		form.txt_fechaini.focus();
		return false;
	}else{
		var restonombre="";
		var horainicial="";
		var horafinal="";
		for (i=0;i<form.elements.length; i++){
			if (form.elements[i].id.substring(0,12)=="cmb_horaini_"){
				restonombre=form.elements[i].id.substring(12,20);
				horainicial=String(form.elements["cmb_horaini_"+restonombre].value)+String(form.elements["cmb_minini_"+restonombre].value);
				horafinal=String(form.elements["cmb_horafin_"+restonombre].value)+String(form.elements["cmb_minfin_"+restonombre].value);
				if(horainicial>=horafinal){
					alert("La hora inicial debe ser mayor a la hora final");
					form.elements[i].focus();
					return false;
				}
				codigo_producto="hd_prd_"+restonombre;
				valor_producto=form.elements[codigo_producto].value;
				for (j=parseInt(restonombre,10)+1;j<50;j++){
					try{
						horainicial2=String(form.elements["cmb_horaini_"+j].value)+String(form.elements["cmb_minini_"+j].value);
						horafinal2=String(form.elements["cmb_horafin_"+j].value)+String(form.elements["cmb_minfin_"+j].value);
						
						codigo_producto="hd_prd_"+String(j);
						codigo_prd=form.elements[codigo_producto].value;
						if (codigo_prd==valor_producto){
							if (horainicial2>=horainicial && horainicial2<=horafinal){
								alert("La hora inicial esta entre dos tiempos ya asignados.");
								form.elements["cmb_minini_"+j].focus();
								return false;
							}
							if (horafinal2>=horainicial && horafinal2<=horafinal){
								alert("La hora final esta entre dos tiempos ya asignados.");
								form.elements["cmb_minfin_"+j].focus();
								return false;
							}
						}
					}catch(e){
						j=50;
					}
					
				}
			}
			if (form.elements[i].id.substring(0,9)=="txt_pague"){
				if (valida_vacio(form.elements[i].value)==false){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
				if (isNaN(form.elements[i].value)==true){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}else if (form.elements[i].value<=0){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
			}
			if (form.elements[i].id.substring(0,9)=="txt_lleve"){
				restonombre=form.elements[i].id.substring(9,20);
				if (valida_vacio(form.elements[i].value)==false){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
				if (isNaN(form.elements[i].value)==true){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}else if (form.elements[i].value<=0){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
				var nombre_pague=new String("txt_pague"+restonombre);
				var unidades_pagadas=new Object(documento.getElementById(nombre_pague));
				if (parseInt(form.elements[i].value,10)<parseInt(unidades_pagadas.value,10)){
					alert("Las unidades llevadas deben ser mayor o igual a las unidades pagadas");
					form.elements[i].focus();
					return false;
				}
			} 
			if (form.elements[i].id.substring(0,15)=="txt_precio_unid"){
				if (valida_vacio(form.elements[i].value)==false){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
				if (isNaN(form.elements[i].value)==true){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}else if (form.elements[i].value<=0){
					alert("Las unidades pagadas, llevadas ó el precio deben ser mayor a cero");
					form.elements[i].focus();
					return false;
				}
			}
		}
			return true;
	}
}
function sel_agencias(form,alt,obj_sel,elem_ini,cuantos){
	var encontrado=0;
	var nuevo=0;anterior=0;
	obj_sel.value=cuantos;
	for (i=elem_ini-1;i<form.elements.length;i++){
		if (form.elements[i].type=="checkbox" && form.elements[i].alt==alt){
			form.elements[i].checked=obj_sel.checked;
			nuevo++;
		}
		
		if (nuevo>0 && anterior!=nuevo-1)
			i=form.elements.length;
		anterior=nuevo;
		
	}
}

function hay_seleccionados(form){
	for (i=0;i<form.elements.length;i++){
		if (form.elements[i].type=="checkbox" && form.elements[i].checked==true)
			return true;
	}
		alert("Seleccione al menos una tabla");
		return false;
}

function valida_asignacion(form,edita){
	var fecha=new Date();
	var ano="";var mes="";var dia="";
	ano=fecha.getFullYear();
	mes=fecha.getMonth()+1;
	dia=fecha.getDate();
	var mi_fecha=new String("");
	if (mes<10)
		mes="0"+mes;
	if (dia<10)
		dia="0"+dia;
	mi_fecha=ano+"-"+mes+"-"+dia;
	
	var restonombre=new String("");
	var k=0;
	if (valida_datos(form)==false){
		return false;
	}else{
		if (edita=="no"){
			//Aplicar valores a los campos
			
			for (i=0;i<form.elements.length;i++){
				if (form.elements[i].type=="checkbox"){
					if (form.elements[i].id.substring(0,12)=="chk_producto" && form.elements[i].checked==true){
						k++;
						if (form.elements[i].name.substring(0,12)=="txt_fechain_"){
							if (form.elements[i].value<mi_fecha){
								alert("La fecha inicial debe ser mayor a la fecha actual");
								return false;
							}
						}
						restonombre=form.elements[i].id.substring(12,30);
						valor=form.elements["val_producto"+restonombre];
						//alert("Fecha Inicial: "+fecha_ini.value+". Fecha Final: "+fecha_fin.value);
						if (isNaN(parseInt(valor.value,10))==true){
							alert("Debe ingresar un numero en el valor para el producto");
							valor.focus();
							return false;
						}else if (parseInt(valor.value,10)<=0){
							alert("Debe ingresar un valor para el producto que sea mayor a cero");
							valor.focus();
							return false;
						}
						
					}
				}
			}
			if (form.chk_aplicarsel.checked==true && form.txt_fechadef.value>=mi_fecha){
				for (i=0;i<form.elements.length;i++){
					if (form.elements[i].name.substring(0,12)=="txt_fechain_")
						form.elements[i].value=form.txt_fechadef.value;
					if (form.elements[i].name.substring(0,11)=="cmb_horaini")
						form.elements[i].value=form.cmb_horadef.value;
					if (form.elements[i].name.substring(0,10)=="cmb_minini")
						form.elements[i].value=form.cmb_mindef.value;
				}
			}
			if (form.chk_aplicarsel.checked==true && form.txt_fechadef.value<mi_fecha){
				alert("La fecha que desea aplicar a los productos, debe ser mayor o igual a la fecha actual");
				return false;
			}
			if (k==0){
				alert("Seleccione al menos un producto");
				return false;
			}else
				return true;
		}else{ //Si esta editando las asignaciones de precios
			var contador=0;
			var contador_fechas=0;
			for (i=0;i<form.elements.length;i++){
				if (form.elements[i].name.substring(0,12)=="txt_fechain_"){
					if (form.elements[i].value<mi_fecha){
						contador_fechas++;
					}
				}
				if (form.elements[i].type=="text" && form.elements[i].name.substring(0,8)=="val_prod"){
					if (isNaN(parseInt(form.elements[i].value,10))==true || parseInt(form.elements[i].value,10)<=0){
						contador++;
					}
				}
			}
			var validado=true;
			if (contador_fechas>0){
				validado=confirm("Uno o más productos tienen fechas inferiores a la fecha actual. Desea continuar? ");	
			}
			if (validado==false)
				return false;
				
			if (contador>0){
				alert("Uno o mas productos tienen precios cero, imposible continuar.");
			 	return false;
			}
		}
	}
}

//Cuando presiono el link de editar
function coloca_resolucion(form_destino,radio,mensaje1,mensaje2){
	var sel=false;
	var valor=0;
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  j=radio.length;
	   }
	}	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
			form_destino.cmb_resdian.value=valor;
			form_destino.cmb_resdian.onchange();
			self.close();
	}
		return false;
}

function valida_turno(form){
	var hi=0;
	var mi=0;
	var hf=0;
	var mf=0;
	if (valida_vacio(form.txt_nombre.value)==false){
		alert("Digite el nombre");
		form.txt_nombre.focus();
		return false;
	}
	//Lunes
	if (form.chk_lunes.checked==true){
		hi=form.cmb_horaini_lunes.value;
		mi=form.cmb_minini_lunes.value;
		hf=form.cmb_horafin_lunes.value;
		mf=form.cmb_minfin_lunes.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_lunes.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_lunes.focus();
				return false;
			}
		}
	}
	
	//Martes
	if (form.chk_martes.checked==true){
		hi=form.cmb_horaini_martes.value;
		mi=form.cmb_minini_martes.value;
		hf=form.cmb_horafin_martes.value;
		mf=form.cmb_minfin_martes.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_martes.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_martes.focus();
				return false;
			}
		}
	}
	
	//Miercoles
	if (form.chk_miercoles.checked==true){
		hi=form.cmb_horaini_miercoles.value;
		mi=form.cmb_minini_miercoles.value;
		hf=form.cmb_horafin_miercoles.value;
		mf=form.cmb_minfin_miercoles.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_miercoles.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_miercoles.focus();
				return false;
			}
		}
	}

	//Jueves
	if (form.chk_jueves.checked==true){
		hi=form.cmb_horaini_jueves.value;
		mi=form.cmb_minini_jueves.value;
		hf=form.cmb_horafin_jueves.value;
		mf=form.cmb_minfin_jueves.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_jueves.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_jueves.focus();
				return false;
			}
		}
	}
	
	//Viernes
	if (form.chk_viernes.checked==true){
		hi=form.cmb_horaini_viernes.value;
		mi=form.cmb_minini_viernes.value;
		hf=form.cmb_horafin_viernes.value;
		mf=form.cmb_minfin_viernes.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_viernes.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_viernes.focus();
				return false;
			}
		}
	}

	//Sabado
	if (form.chk_sabado.checked==true){
		hi=form.cmb_horaini_sabado.value;
		mi=form.cmb_minini_sabado.value;
		hf=form.cmb_horafin_sabado.value;
		mf=form.cmb_minfin_sabado.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_sabado.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_sabado.focus();
				return false;
			}
		}
	}

	//Domingo
	if (form.chk_domingo.checked==true){
		hi=form.cmb_horaini_domingo.value;
		mi=form.cmb_minini_domingo.value;
		hf=form.cmb_horafin_domingo.value;
		mf=form.cmb_minfin_domingo.value;
		if (hi>hf){
			alert("La hora inicial, no puede ser mayor a la hora final");
			form.cmb_horaini_domingo.focus();
			return false;
		}else if (hi==hf){
			if (mi>mf){
				alert("La hora inicial, no puede ser mayor a la hora final");
				form.cmb_horaini_domingo.focus();
				return false;
			}
		}
	}
	
	if (form.txt_fechaini.value>form.txt_fechafin.value){
		alert("La fecha inicial, no puede ser mayor a la fecha final");
		form.txt_fechaini.focus();
		return false;			
	}
		return true;
}

function valida_puntoventa(form){
	//Validacion de Usuario
	var len_codigo=0;
	for (i=0;i<form.txt_codigo.value.length;i++){
		if (valida_vacio(form.txt_codigo.value.substring(i,i+1))==true)
			len_codigo=len_codigo+1;
	}
	if (len_codigo!=4){
		alert("El codigo del punto de venta debe ser de 4 caracteres");
		form.txt_codigo.focus();
		return false;
	}
	if (valida_datos(form)==false){
		return false;
	}else if (form.cmb_region.value=="-"){
		alert("Seleccione una región");
		form.cmb_region.focus();
		return false;
	}else if (form.cmb_municipio.value=="-" || form.cmb_municipio.value==""){
		alert("Seleccione un municipio");
		form.cmb_municipio.focus();
		return false;
	}else if (form.cmb_tipoprecio.value=="-"){
		alert("Seleccione un tipo de precio");
		form.cmb_tipoprecio.focus();
		return false;
	}else if (form.cmb_resdian.value=="-"){
		alert("Seleccione una resolución DIAN");
		form.cmb_resdian.focus();
		return false;
	}else if (form.cmb_prefijo.value=="-"){
		alert("Seleccione un prefijo de la resolución DIAN");
		form.cmb_prefijo.focus();
		return false;
	}else if (form.cmb_zonacontable.value=="-"){
		alert("Seleccione una zona contable");
		form.cmb_zonacontable.focus();
		return false;
	}else
		return true;
}

// JavaScript Document
function sel_todos(form,valor,alt){
	for (x=0;x<form.elements.length;x++){
		if (alt=="TODOS"){
			if (form.elements[x].type=="checkbox" && (form.elements[x].alt=="POS" || form.elements[x].alt=="WEB" || form.elements[x].alt=="TODOS"))
				form.elements[x].checked=valor;
		}else{
			if (form.elements[x].type=="checkbox" && form.elements[x].alt==alt)
				form.elements[x].checked=valor;
		}
	}
}

// JavaScript Document
function sel_todos2(form){
	valor=form.chk_sel.checked;
	for (x=0;x<form.elements.length;x++){
		if (form.elements[x].type=="checkbox")
			form.elements[x].checked=valor;
	}
}
function valida_producto(form){
	var len_codigo=0;
	var len_codigo_largo=0;
	for (i=0;i<form.txt_codcor.value.length;i++){
		if (valida_vacio(form.txt_codcor.value.substring(i,i+1))==true)
			len_codigo=len_codigo+1;
	}
	for (i=0;i<form.txt_codlar.value.length;i++){
		if (valida_vacio(form.txt_codlar.value.substring(i,i+1))==true)
			len_codigo_largo=len_codigo_largo+1;
	}
	if (valida_datos(form)==false){
		return false;
	}else if(len_codigo_largo<4){
		alert("El codigo largo del producto debe tener minimo 4 digitos");
		form.txt_codlar.focus();
		return false;
	}else if(len_codigo!=3 && len_codigo!=0){
		alert("El codigo corto del producto debe tener 3 digitos");
		form.txt_codcor.focus();
		return false;
	}else if (form.txt_poriva.value>100){
		alert("El porcentaje del IVA no puede ser mayor a 100");
		form.txt_poriva.focus();
		return false;
	}else if (form.txt_porrte.value>100){
		alert("El porcentaje de Rete fuente no puede ser mayor a 100");
		form.txt_porrte.focus();
		return false;
	}else if (form.cmb_estado.value=="-"){
		alert("Seleccione un estado");
		form.cmb_estado.focus();
		return false;
	}else if (form.cmb_linea.value=="-"){
		alert("Seleccione una línea");
		form.cmb_linea.focus();
		return false;
	}else if (form.cmb_sublinea.value=="--"){
		alert("Seleccione una sublínea");
		form.cmb_sublinea.focus();
		return false;
	}else if (parseInt(form.txt_emb.value,10)<=0){
		alert("El embalaje debe ser mayor a cero");
		form.txt_emb.focus();
		return false;
	}else
		return true;
}

function valida_sublinea(form){
	var len_codigo=0;
	for (i=0;i<form.txt_cod_sli.value.length;i++){
		if (valida_vacio(form.txt_cod_sli.value.substring(i,i+1))==true)
			len_codigo=len_codigo+1;
	}
	if (len_codigo!=4){
		alert("El codigo de la sublínea debe ser de 4 caracteres");
		form.txt_cod_sli.focus();
		return false;
	}
	if (valida_datos(form)==false){
		return false;
	}else if (form.cmb_linea.value=="-"){
		alert("Seleccione una línea");
		form.cmb_linea.focus();
		return false;
	}else
		return true;
}

function valida_datos(form){
		for (i=0;i<form.elements.length;i++){
			if (form.elements[i].type=="text" || form.elements[i].type=="password"){
				alts=form.elements[i].alt.split(":");
				if (alts.length==4){
					if (alts[0]=="Obligatorio"){
						switch (alts[3]){
							case "texto":{ 
								if (valida_vacio(form.elements[i].value)==false){
									alert(alts[2]);
									form.elements[i].focus();
									return false;
								}
								break; 
							}
							case "email":{ 
								if (valida_email(form.elements[i].value)==false){
									alert(alts[2]);
									form.elements[i].focus();
									return false;
								}
								break; 
							}
							case "numero":{ 
								if (form.elements[i].value<=0){
									alert(alts[2]);
									form.elements[i].focus();
									return false;
								}
								break; 
							}
						}
					}
				}
			}
		}
			return true;
	//Finaliza de recorrer los campos del formulario
}

//Cargar sublineas
function cargar_sublineas(matriz,objeto,valor_buscado){
	var objSelect;
	var intContadorSelect = 1;
	intContadorSelect = 1;
	objeto.options.length=0;
	objeto.options[0] = new Option("-- Seleccione una sublínea --","--",false, false);

	for (var i = 0; i < matriz.length; i++) {
		if (valor_buscado == matriz[i][0]) {
		  objeto.options[intContadorSelect] = new Option(matriz[i][2],matriz[i][1],false, false);
		  intContadorSelect++;
		 }
	}
	objeto.options[intContadorSelect] = new Option("Ninguna","-",false, false);
	return true;
}

//Cargar Municipios por Departamento
function cargar_municipios(matriz,objeto,valor_buscado){
	var objSelect;
	var intContadorSelect = 1;
	intContadorSelect = 1;
	objeto.options.length=0;
	objeto.options[0] = new Option("-- Seleccionar --","-",false, false);
	for (var i = 0; i < matriz.length; i++) {
		if (valor_buscado == matriz[i][0]) {
		  objeto.options[intContadorSelect] = new Option(matriz[i][2],matriz[i][1],false, false);
		  intContadorSelect++;
		 }
	}
	return true;
}

//Cargar Municipios por Region
function cargar_municipios_por_region(matriz,objeto,valor_buscado){
	var objSelect;
	var intContadorSelect = 1;
	intContadorSelect = 1;
	objeto.options.length=0;
	objeto.options[0] = new Option("-- Seleccione un municipio --","-",false, false);
	for (var i = 0; i < matriz.length; i++) {
		if (valor_buscado == matriz[i][0]) {
		  objeto.options[intContadorSelect] = new Option(matriz[i][2]+':'+matriz[i][3],matriz[i][1],false, false);
		  intContadorSelect++;
		 }
	}
	return true;
			
}

//Cuando presiono el link de eliminar
function eliminar(form,destino,radio,mensaje1,mensaje2,mensaje3){
	var sel=false;
	var valor=0;
	var tipo="";
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  tipo=radio[j].value;
		  j=radio.length;
	   }
	}
	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
		if (confirm(mensaje3))
			self.location=destino+'?eliminar='+valor;
	}
		return false;
}


//Cuando presiono el link de editar
function editar(form,destino,radio,mensaje1,mensaje2){
	var sel=false;
	var valor=0;
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  j=radio.length;
	   }
	}
	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
			self.location=destino+'?editar='+valor;
	}
		return false;
}

function valida_ingreso_usuario(form,edita){
	
	//Validacion de Usuario
	if (valida_datos(form)==false){
		return false;
	}else if (form.cmb_genero_usu.value=="-"){
		alert("Seleccione un genero");
		form.cmb_genero_usu.focus();
		return false;
	}else if (form.cmb_tipo_usu.value=="-"){
		alert("Seleccione un tipo de usuario");
		form.cmb_tipo_usu.focus();
		return false;
	}else if (form.cmb_estado_usu.value=="-"){
		alert("Seleccione un estado");
		form.cmb_estado_usu.focus();
		return false;
	}else if (form.cmb_departamento_usu.value=="-"){
		alert("Seleccione un departamento");
		form.cmb_departamento_usu.focus();
		return false;
	}else if (form.cmb_municipio_usu.value=="-"){
		alert("Seleccione un municipio");
		form.cmb_municipio_usu.focus();
		return false;
	}else if (form.cmb_agencia_usu.value=="-"){
		alert("Seleccione un punto de venta");
		form.cmb_agencia_usu.focus();
		return false;
	}else if (form.cmb_permiso_usu.value=="-"){
		alert("Seleccione un permiso para el usuario");
		form.cmb_permiso_usu.focus();
		return false;
	}else{
		var tipo=form.cmb_tipo_usu.value;
		if (tipo=="2"){
			if (form.cmb_superior_usu.value=="-"){
				alert("Seleccione un superior");
				form.cmb_superior_usu.focus();
				return false;
			}else if (form.cmb_horario_usu.value=="-"){
				alert("Seleccione un horario para el usuario");
				form.cmb_horario_usu.focus();
				return false;
			}
		}
	}
	if (edita=="no"){
		if (valida_vacio(form.txt_pwd_usu.value)==false){
			alert("Digite la contraseña");
			return false;
		}
		if (form.txt_pwd_usu.value!=form.txt_repwd_usu.value){
			alert("El password y la confirmacion deben ser iguales");
			form.txt_repwd_usu.focus();
			return false;
		}
			Encripta(form.txt_pwd_usu,form.pwd_3des_usu);
	}else if (edita=="si" && form.chk_cng_pwd.checked==true){
		if (valida_vacio(form.txt_pwd_usu.value)==false){
			alert("Digite la contraseña");
			form.txt_pwd_usu.focus();
			return false;
		}
		if (form.txt_pwd_usu.value!=form.txt_repwd_usu.value){
			alert("El password y la confirmacion deben ser iguales");
			form.txt_repwd_usu.focus();
			return false;
		}
			Encripta(form.txt_pwd_usu,form.pwd_3des_usu);
	}
		return true;
}

function valida_vacio(s){
	
	var i=0;
	var j=0;
	for (i=0;i<s.length;i++){
		if (s.substring(i,i+1)==" ")
			j++;
	}
		if (j==s.length)
			return false;
		else
			return true;
}

function valida_email(s){
	var b=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if (b.test(s))
		return (true)
	 else 
		return (false);
	
}

//FUNCIONES BASICAS
////////////////////////////////////////////////////////////////////////////////////////////
//Funciones para validar las cadenas de texto que se ingresan


var lowercaseLetters = " abcdefghijklmnopqrstuvwxyzáéíóúñü";
var uppercaseLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ";
var whitespace = " \t\n\r";
var defaultEmptyOK = false;


///////////////////////////////////////////////////////////////////////////////////////////
//Funcion solo numeros
var nav4 = window.Event ? true : false;
function acceptNum(evt){	
    	var key = nav4 ? evt.which : evt.keyCode;	
    	return (key <= 13 || (key >= 48 && key <= 57));
}
//Funcion solo numeros decimales
var nav4 = window.Event ? true : false;
function acceptNum2(evt){	
    	var key = nav4 ? evt.which : evt.keyCode;	
    	return (key <= 13 || (key >= 48 && key <= 57) || key==46);
}

//Funcion solo numeros decimales sin dos puntos
var nav4 = window.Event ? true : false;
function acceptNumDec(evt,valor){	
		var pos_punto=0;
    	var key = nav4 ? evt.which : evt.keyCode;	
    	if (key <= 13 || (key >= 48 && key <= 57)){
			window.status='';
			return true;
		}else if (key==46){
			pos_punto=valor.indexOf(".");
			if (pos_punto==-1){
				window.status='';
				return true;
			}else{
				window.status='El valor ya tiene el separador decimal';
				return false;
			}
		}else{
			window.status='Tecla ingresada no válida';
			return false;
		}
}

//Función para validar ingreso de solo números al momento de teclear


var nav4 = window.Event ? true : false;
function acceptAlphaNum(evt,texto){	
    	var key = nav4 ? evt.which : evt.keyCode;	
    	if (key == 8 || (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key >= 97 && key <= 122))
			return key;
		else{
			alert(texto+": Admite solo caracteres alfanuméricos");
			return false;
		}
}


///////////////////////////////////////////////////////////////////////////////////////////


//Función para validar el olvido de password

function validarpassword(v){
	
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("Correo nulo o inválido");
		v.email.focus();
		return false; 
	}
	else {
		return true;
	} 
	
} 

// Comillas simples o dobles
function isNice(s)
{
        var i = 1;
        var sLength = s.length;
        var b = 1;
        while(i<sLength) {
                if( (s.charAt(i) == "\"") || (s.charAt(i) == "'" ) ) b = 0;
                i++;
        }
        return b;
}



///////////////////////////////////////////////////////////////////////////////////////////

//Función para ventanas emergentes

function nu_ventana(url,nombre, ancho, alto, barra) {
	izquierda = (screen.width) ? (screen.width-ancho)/2 : 100
	arriba = (screen.height) ? (screen.height-alto)/2 : 100
	opciones = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + barra + ',resizable=0,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + ''
	window.open(url, nombre, opciones)
}

function nu_ventana2(url,nombre, ancho, alto, barra) {
	izquierda = (screen.width) ? (screen.width-ancho)/2 : 100
	arriba = (screen.height) ? (screen.height-alto)/2 : 100
	opciones = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + barra + ',resizable=1,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + ''
	window.open(url, nombre, opciones)
}


function Encripta(password,new_password)
{
	// CAPICOM Constants                                                          
	var CAPICOM_ENCRYPTION_ALGORITHM_RC2 = 0;
	var CAPICOM_ENCRYPTION_ALGORITHM_RC4 = 1;
	var CAPICOM_ENCRYPTION_ALGORITHM_DES = 2;
	var CAPICOM_ENCRYPTION_ALGORITHM_3DES = 3;
	var CAPICOM_ENCRYPTION_ALGORITHM_AES = 4;
	var CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM = 0;
	var CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS = 1;
	var CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS = 2;
	var CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS = 3; 
	var CAPICOM_ENCRYPTION_KEY_LENGTH_192_BITS = 4; 
	var CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS = 5; 
	var CAPICOM_SECRET_PASSWORD = 0;
	var CAPICOM_ENCODE_BASE64 = 0;
	var CAPICOM_ENCODE_BINARY = 1;
	var CAPICOM_ENCODE_ANY = -1;
	
	if (password.value != "") {
	
		// instantiate the CAPICOM objects
		var EncryptedData = new ActiveXObject("CAPICOM.EncryptedData");
		
		// Setup the Algorithm object based off of the users choice
		EncryptedData.Algorithm.KeyLength=5;
		EncryptedData.Algorithm.Name =3;
		
		
		// Set the secret to be used when deriving the key
		EncryptedData.SetSecret('GCSAFT',CAPICOM_SECRET_PASSWORD);
		
		// Provide the Encrypted Data object with the text to encrypt
		EncryptedData.Content = password.value;
		
		// Encrypt the data and return it in Base64
		try
		{
			new_password.value = EncryptedData.Encrypt(CAPICOM_ENCODE_BASE64);
		}
		catch (e)
		{
			alert(e.description);
		}
		
		// clean up
		EncryptedData = null;
		return true;
		
	}
	
	else {
		alert("Ingrese su contraseña");
		return false;
	}
	
}

function nuevo(form,destino,radio,mensaje1,mensaje2){
	var sel=false;
	var valor=0;
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  j=radio.length;
	   }
	}
	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
			self.location=destino+'?tipoprecio='+valor;
	}
		return false;
}

function eliminar_asignacion(form,destino,radio,mensaje1,mensaje2){
	var sel=false;
	var valor=0;
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  j=radio.length;
	   }
	}
	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
			self.location=destino+'?eliminar='+valor;
	}
		return false;
}

function impresion(url,nombre) {
	opciones = 'toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=1,width='+ screen.width +',height='+ screen.height +',left=0,top=0'
	window.open(url,nombre,opciones)
}

function sel_reporte(form,radio,mensaje1,mensaje2){
	var sel=false;
	var valor=0;
	for(var j = 0; j < radio.length; j++){
	   sel=radio[j].checked;
	   if(sel==true) {
		  valor=radio[j].value;
		  j=radio.length;
	   }
	}
	
	if (sel==false){
		if (!radio.length)
			alert(mensaje1);
		else
			alert(mensaje2);
	}else{
			return true;
	}
		return false;
}

//Cargar Municipios por Departamento en nuevo proponente
function cargar_municipios_proponente(objeto,valor_buscado,matriz){
	var objSelect;
	var intContadorSelect = 1;
	intContadorSelect = 1;
	objeto.options.length=0;
	objeto.options[0] = new Option("-- Elija el municipio --","-",false, false);
	for (var i = 0; i < matriz.length; i++) {
		if (valor_buscado == matriz[i][0]) {
		  objeto.options[intContadorSelect] = new Option(matriz[i][2],matriz[i][1],false, false);
		  intContadorSelect++;
		 }
	}
	return true;
}

//Funcion solo numeros y letras
var nav4 = window.Event ? true : false;
function acceptAlfaNum(evt){	
    	var key = nav4 ? evt.which : evt.keyCode;	
					//alert(key);
					if (key>=48 && key<=57){ //Numeros
						return true;	
					}else if (key>=65 && key<=90){ //Letras mayusculas
						return true;	
					}else if (key>=97 && key<=122){ //Letras minusculas
						return true;	
					}else if (key==45 || key==8){ //Guion del medio y barra de retroceso
						return true;	
					}else if (key <= 13){
						return true;
					}else
						return false;
}

function valida_AlfaNum(s){
	var i=0;
	var caracter=0;
	for (i=0;i<s.length;i++){
		caracter=s.charCodeAt(i);
		if (caracter>=48 && caracter<=57)
			continue;
		else if (caracter>=65 && caracter<=90)
			continue;
		else if (caracter>=97 && caracter<=122)
			continue;
		else if (caracter==45 || caracter==8)
			continue;
		else if (caracter<=13)
			continue;
		else
			return false;
	}
		
}


function agregar_proponente(documento, form){
	var str_fecha_actual=fecha_actual();

	//Tipo de documento
	var tipodocumento="";
	for (i=0; i<form.rb_tipodocumento.length; i++){
		if (form.rb_tipodocumento[i].checked==true)	
			tipodocumento=form.rb_tipodocumento[i].value;
	}
	//Personeria o naturaleza
	var naturaleza="";
	for (i=0; i<form.rb_naturaleza.length; i++){
		if (form.rb_naturaleza[i].checked==true)	
			naturaleza=form.rb_naturaleza[i].value;
	}
	//Regimen tributario
	var regimen="";
	for (i=0; i<form.rb_regimen.length; i++){
		if (form.rb_regimen[i].checked==true)	
			regimen=form.rb_regimen[i].value;
	}
	if (form.txt_nombre.value==""){ //Validación del nombre
		alert("Debe ingresar el nombre del proponente");
		form.txt_nombre.focus();
		return false;
	}else if (valida_vacio(form.txt_nombre.value)==false){
		alert("Debe ingresar el nombre del proponente");
		form.txt_nombre.select();
		return false;
	}else if (form.txt_representante.value==""){ //Validación del nombre del representante legal
		alert("Debe ingresar el nombre del representante del proponente");
		form.txt_representante.focus();
		return false;
	}else if (valida_vacio(form.txt_representante.value)==false){
		alert("Debe ingresar el nombre del representante del proponente");
		form.txt_representante.select();
		return false;
	}else if (tipodocumento==""){ //Validación del tipo de dentificación
		alert("Debe seleccionar el tipo de identificación");
		return false;
	}else if (form.txt_documento.value==""){	//Validación de la identificación
		alert("Debe ingresar la identificación del proponente");
		form.txt_documento.focus();
		return false;
	}else if (valida_vacio(form.txt_documento.value)==false){
		alert("Debe ingresar el documento del proponente");
		form.txt_documento.select();
		return false;
	}else if (regimen==""){ //Validación del régimen tributario
		alert("Debe seleccionar el régimen tributario");
		return false;
	}else if (naturaleza==""){ //Validación del tipo de sociedad ó naturaleza
		alert("Debe seleccionar el tipo de sociedad");
		return false;
	}
	
	//Validando que el usuario haya seleccionado una fecha de nacimiento ó de vigencia de sociedad
	var fechas=str_fecha_actual.split("-");
	var anio=fechas[0];
	var mes=fechas[1];
	var dia=fechas[2];
	if (form.fecnac_ano.value=="-"){
		alert("Debe seleccionar el año de la fecha de nacimiento");	
		form.fecnac_ano.focus();
		return false;	
	}else if (form.fecnac_mes.value=="-"){
		alert("Debe seleccionar el mes de la fecha de nacimiento");	
		form.fecnac_mes.focus();
		return false;	
	}else if (form.fecnac_dia.value=="-"){
		alert("Debe seleccionar el dia de la fecha de nacimiento");	
		form.fecnac_dia.focus();
		return false;	
	}
	
	if (naturaleza=="N"){
		//Validar que no sea menor de edad
		var anios_diferencia=parseInt(anio,10)-parseInt(form.fecnac_ano.value,10);
		if (anios_diferencia<18){
			alert("El proponente no puede ser menor de edad");
			form.fecnac_ano.focus();
			return false;
		}else if (anios_diferencia==18){
			if (parseInt(mes,10)<parseInt(form.fecnac_mes.value,10)){
				alert("El proponente no puede ser menor de edad");
				form.fecnac_mes.focus();
				return false;
			}else if (parseInt(mes,10)==parseInt(form.fecnac_mes.value,10)){
				if (parseInt(dia,10)<parseInt(form.fecnac_dia.value,10)){
					alert("El proponente no puede ser menor de edad");
					form.fecnac_dia.focus();
					return false;
				}
			}
		}
			
	}else if (naturaleza=="J"){
		var fecha_vigencia=form.fecnac_ano.value+"-"+form.fecnac_mes.value+"-"+form.fecnac_dia.value;
		if(fecha_vigencia>str_fecha_actual){
			alert("la fecha de vigencia de la sociedad("+fecha_vigencia+") no puede ser mayor a la fecha actual("+str_fecha_actual+")");	
			form.fecnac_ano.focus();
			return false;
		}
	}
	
	if (form.cmb_departamento.value=="-"){ //Validación del departamento
		alert("Debe seleccionar el departamento");
		form.cmb_departamento.focus();
		return false;
	}else if (form.cmb_municipio.value=="-"){ //Validación del municipio o ciudad
		alert("Debe seleccionar el municipio");
		form.cmb_municipio.focus();
		return false;
	}else if(form.txt_capacidad1.value==""){ //Validación de la capacidad como consultor
		alert("Debe ingresar la capacidad de contratación como consultor");
		form.txt_capacidad1.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad1.value)==false){
		alert("Debe ingresar la capacidad de contratación como consultor");
		form.txt_capacidad1.focus();
		return false;
	}else if(parseInt(form.txt_capacidad1.value,10)<0){
		alert("La capacidad de contratación como consultor, debe ser mayor ó igual a cero");
		form.txt_capacidad1.focus();
		return false;
	}else if(form.txt_capacidad2.value==""){ //Validación de la capacidad como constructor
		alert("Debe ingresar la capacidad de contratación como constructor");
		form.txt_capacidad2.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad2.value)==false){
		alert("Debe ingresar la capacidad de contratación como constructor");
		form.txt_capacidad2.focus();
		return false;
	}else if(parseInt(form.txt_capacidad2.value,10)<0){
		alert("La capacidad de contratación como constructor, debe ser mayor ó igual a cero");
		form.txt_capacidad2.focus();
		return false;
	}else if(form.txt_capacidad3.value==""){ //Validación de la capacidad como proveedor
		alert("Debe ingresar la capacidad de contratación como proveedor");
		form.txt_capacidad3.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad3.value)==false){
		alert("Debe ingresar la capacidad de contratación como proveedor");
		form.txt_capacidad3.focus();
		return false;
	}else if(parseInt(form.txt_capacidad3.value,10)<0){
		alert("La capacidad de contratación como proveedor, debe ser mayor ó igual a cero");
		form.txt_capacidad3.focus();
		return false;
	}else if (form.txt_email.value==""){ //Validación del correo electrónico
		alert("Debe ingresar el correo electrónico");
		form.txt_email.focus();
		return false;
	}else if (valida_email(form.txt_email.value)==false){	
		alert("El correo electrónico es inválido");
		form.txt_email.focus();
		return false;
	}else if (form.txt_password.value==""){	//Validación del password
		alert("Debe ingresar el password");
		form.txt_password.focus();
		return false;
	}else if (valida_vacio(form.txt_password.value)==false){
		alert("Debe ingresar el password");
		form.txt_password.select();
		return false;
	}else if (form.txt_password.value!=form.txt_password2.value){
		alert("El password y la confirmacion del password deben ser iguales");
		form.txt_password.select();
		return false;
	}else if (form.cmb_grupo.value=="-"){ //Validación del grupo de proponente
		alert("Debe seleccionar el grupo de proponentes");
		form.cmb_grupo.focus();
		return false;
	}else{		
		//Validando datos del RUP
		if (form.txt_vencimiento_rup.value<=str_fecha_actual){ //Validación de la fecha de vigencia del RUP
			var x=confirm("La fecha de expiración del RUP("+form.txt_vencimiento_rup.value+") es menor ó igual a la fecha actual("+str_fecha_actual+"), es decir que ya caducó, Desea continuar?");	
			if (x==false)
				return false;
		}
		
		if (form.chk_cond.checked==false){ //Aceptar las condiciones de uso
			alert("Debe aceptar las condiciones de uso");
			form.chk_cond.focus();
			return false;
		}else{
			form.hd_password.value=hex_md5(form.txt_password.value);
			form.txt_password.value="";
			form.txt_password2.value="";
			form.action='proponentes_nuevo2.php';
			form.target='_self';
			form.submit();
			return true;
		}
	}
}

function mostrar_ocultar_rup(documento,si_o_no){
	for (i=1; i<=5; i++){
			if (si_o_no=="S"){
				documento.getElementById("fila_rup"+i).style.display='';
			}else if (si_o_no=="N"){
				documento.getElementById("fila_rup"+i).style.display='none';
			}
	}	
}

function validar_inicio(d,v){
	
	if (v.txt_email.value == ''){
		alert("Ingrese el email");
		v.txt_email.focus();
		return false;
	}else if (v.txt_password.value == ''){
		alert("Ingrese el password");
		v.txt_password.focus();
		return false;
	}
	else if (valida_vacio(v.txt_email.value)==false || valida_vacio(v.txt_password.value)==false){
		alert("Ingrese el email y el password");
		return false;
	}
	else if (isNice(v.txt_email.value)==0 || isNice(v.txt_password.value)==0){
		alert("No puede ingresar comillas simples o dobles en el email o el password");
		return false;
	}
	else {
		v.hd_email.value=hex_md5(v.txt_email.value);
		v.hd_password.value=hex_md5(v.txt_password.value);
		v.txt_email.value="";
		v.txt_password.value="";
		v.action='proponentes_actualizar2.php';
		v.target='_self';
		v.submit();
		return true;
	} 
	
} 

//Muestra pantalla para cambiar password
function olvido_password(){
		try{
			ancho=screen.width;
			alto=screen.height;
		}catch(e){
			ancho=screen.Width;
			alto=screen.Height;
		}
		arriba=(alto-250)/2;
		izquierda=(ancho-450)/2;
		window.open("olvido_password.php",'NewWindow','top='+arriba+', left='+izquierda+', width='+450+', height='+250+', resizable=no, menubar=no, scrollbars=0');
}



function descargar(archivo, documento){
		documento.frm_descargar.hd_documento.value=archivo;
		documento.frm_descargar.action='admin/descargar.php';
		documento.frm_descargar.target='_blank';
		documento.frm_descargar.submit();
}










//De numeros a letras
function numeros_a_letras2(numero, documento, mi_div){
	var letras="";
	var mil_letras="";
	var millones_letras="";
	var miles_millones_letras="";
	var billones_letras="";
	var s_numero=numero;
	var numero=new Number(numero);
	unidades=["un","dos","tres","cuatro","cinco","seis","siete","ocho","nueve"];
	dieces=["diez","once","doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve"];
	veintes=["veinte","veintiun","veintidos","veintitres","veinticuatro","veinticinco","veintiseis","veintisiete","veintiocho","veintinueve"];
	decenas =["diez","veinte","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa"];
	centenas=["ciento","doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos"];
	var str_numero=new String(numero);
	if (s_numero=="" || valida_vacio(s_numero)==false){
		documento.getElementById(mi_div).innerHTML="";	
	}else	if (str_numero!="0"){
		letras="";
		num_unidad="0";
		num_decena="0";
		num_centena="0";
		//Unidades
		var num_unidad=str_numero.substring(str_numero.length-1,str_numero.length);
		if (num_unidad!="0")
			letras=unidades[parseInt(num_unidad,10)-1];
		//Decenas
		if (str_numero.length>1){
			var num_decena=str_numero.substring(str_numero.length-2,str_numero.length-1);
			if (num_decena!="0"){
				if (num_decena!="1" && num_decena!="2"){
					if (num_unidad=="0")
						letras=decenas[parseInt(num_decena,10)-1];	
					else
						letras=decenas[parseInt(num_decena,10)-1]+" y "+letras;	
				}else if (num_decena=="1")
					letras=dieces[parseInt(num_unidad,10)];
				else if (num_decena=="2")
					letras=veintes[parseInt(num_unidad,10)];
			}
				
		}
		//Centenas
		if (str_numero.length>2){
			var num_centena=str_numero.substring(str_numero.length-3,str_numero.length-2);
			if (num_centena!="0"){
				if (num_centena=="1" && num_decena=="0" && num_unidad=="0")
					letras="cien";
				else
					letras=centenas[parseInt(num_centena,10)-1]+" "+letras;
			}
		}
		
		num_unidad_mil="0";
		num_decena_mil="0";
		num_centena_mil="0";
		
		//Unidades de Mil
		if (str_numero.length>3){
			var num_unidad_mil=str_numero.substring(str_numero.length-4,str_numero.length-3);
			if (num_unidad_mil!="0"){
				if (num_unidad_mil!="1")
					mil_letras=unidades[parseInt(num_unidad_mil,10)-1];	
			}
		}
		
		//Decenas de mil
		if (str_numero.length>4){
			var num_decena_mil=str_numero.substring(str_numero.length-5,str_numero.length-4);
			if (num_decena_mil!="0"){
				if (num_decena_mil!="1" && num_decena_mil!="2"){
					if (num_unidad_mil=="0")
						mil_letras=decenas[parseInt(num_decena_mil,10)-1]+" "+mil_letras;	
					else
						mil_letras=decenas[parseInt(num_decena_mil,10)-1]+" y "+mil_letras;	
				}else if (num_decena_mil=="1")
					mil_letras=dieces[parseInt(num_unidad_mil,10)];
				else if (num_decena_mil=="2")
					mil_letras=veintes[parseInt(num_unidad_mil,10)];
			}
				
		}
		
		//Centenas de mil
		if (str_numero.length>5){
			var num_centena_mil=str_numero.substring(str_numero.length-6,str_numero.length-5);
			if (num_centena_mil!="0"){
				if (num_centena_mil=="1" && num_decena_mil=="0" && num_unidad_mil=="0")
					mil_letras="cien";
				else
					mil_letras=centenas[parseInt(num_centena_mil,10)-1]+" "+mil_letras;
			}
		}
		
		if (num_centena_mil!="0" || num_decena_mil!="0" || num_unidad_mil!="0")
			mil_letras=mil_letras; //+" mil";
			
		num_unidad_millon="0";
		num_decena_millon="0";
		num_centena_millon="0";
		millones_letras="";
		
		//Unidades de Millon
		if (str_numero.length>6){
			var num_unidad_millon=str_numero.substring(str_numero.length-7,str_numero.length-6);
			if (num_unidad_millon!="0"){
				if (num_unidad_millon!="1")
					millones_letras=unidades[parseInt(num_unidad_millon,10)-1];	
			}
		}
		
		//Decenas de millon
		if (str_numero.length>7){
			var num_decena_millon=str_numero.substring(str_numero.length-8,str_numero.length-7);
			if (num_decena_millon!="0"){
				if (num_decena_millon!="1" && num_decena_millon!="2"){
					if (num_unidad_millon=="0")
						millones_letras=decenas[parseInt(num_decena_millon,10)-1]+" "+millones_letras;	
					else
						millones_letras=decenas[parseInt(num_decena_millon,10)-1]+" y "+millones_letras;	
				}else if (num_decena_millon=="1")
					millones_letras=dieces[parseInt(num_unidad_millon,10)];
				else if (num_decena_millon=="2")
					millones_letras=veintes[parseInt(num_unidad_millon,10)];
			}
				
		}
		
		//Centenas de millon
		if (str_numero.length>8){
			var num_centena_millon=str_numero.substring(str_numero.length-9,str_numero.length-8);
			if (num_centena_millon!="0"){
				if (num_centena_millon=="1" && num_decena_millon=="0" && num_unidad_millon=="0")
					millones_letras="cien";
				else
					millones_letras=centenas[parseInt(num_centena_millon,10)-1]+" "+millones_letras;
			}
		}
		
		if (num_centena_millon!="0" || num_decena_millon!="0" || num_unidad_millon!="0"){
			if (!(num_centena_millon=="0" && num_decena_millon=="0" && num_unidad_millon=="1"))
				millones_letras=millones_letras; //+" millones";
		}
		
		//Mil millones
		num_unidad_mm="0";
		num_decena_mm="0";
		num_centena_mm="0";
		miles_millones_letras="";
		
		//Unidades de mil Millones
		if (str_numero.length>9){
			var num_unidad_mm=str_numero.substring(str_numero.length-10,str_numero.length-9);
			if (num_unidad_mm!="0"){
				if (num_unidad_mm!="1")
					miles_millones_letras=unidades[parseInt(num_unidad_mm,10)-1];	
			}
		}
		
		//Decenas de mil millones
		if (str_numero.length>10){
			var num_decena_mm=str_numero.substring(str_numero.length-11,str_numero.length-10);
			if (num_decena_mm!="0"){
				if (num_decena_mm!="1" && num_decena_mm!="2"){
					if (num_unidad_mm=="0")
						miles_millones_letras=decenas[parseInt(num_decena_mm,10)-1]+" "+miles_millones_letras;	
					else
						miles_millones_letras=decenas[parseInt(num_decena_mm,10)-1]+" y "+miles_millones_letras;	
				}else if (num_decena_mm=="1")
					miles_millones_letras=dieces[parseInt(num_unidad_mm,10)];
				else if (num_decena_mm=="2")
					miles_millones_letras=veintes[parseInt(num_unidad_mm,10)];
			}
				
		}
		
		//Centenas de mil millones
		if (str_numero.length>11){
			var num_centena_mm=str_numero.substring(str_numero.length-12,str_numero.length-11);
			if (num_centena_mm!="0"){
				if (num_centena_mm=="1" && num_decena_mm=="0" && num_unidad_mm=="0")
					miles_millones_letras="cien";
				else
					miles_millones_letras=centenas[parseInt(num_centena_mm,10)-1]+" "+miles_millones_letras;
			}
		}
		
		if (num_centena_mm!="0" || num_decena_mm!="0" || num_unidad_mm!="0"){
			if (!(num_centena_mm=="0" && num_decena_mm=="0" && num_unidad_mm=="1"))
				miles_millones_letras=miles_millones_letras; //+" mil";
		}
		
		//Billones
		num_unidad_billon="0";
		num_decena_billon="0";
		num_centena_billon="0";
		billones_letras="";
		
		//Unidades de billon
		if (str_numero.length>12){
			var num_unidad_billon=str_numero.substring(str_numero.length-13,str_numero.length-12);
			if (num_unidad_billon!="0"){
				if (num_unidad_billon!="1")
					billones_letras=unidades[parseInt(num_unidad_billon,10)-1];	
			}
		}
		
		//Decenas de billon
		if (str_numero.length>13){
			var num_decena_billon=str_numero.substring(str_numero.length-14,str_numero.length-13);
			if (num_decena_billon!="0"){
				if (num_decena_billon!="1" && num_decena_billon!="2"){
					if (num_unidad_billon=="0")
						billones_letras=decenas[parseInt(num_decena_billon,10)-1]+" "+billones_letras;	
					else
						billones_letras=decenas[parseInt(num_decena_billon,10)-1]+" y "+billones_letras;	
				}else if (num_decena_billon=="1")
					billones_letras=dieces[parseInt(num_unidad_billon,10)];
				else if (num_decena_billon=="2")
					billones_letras=veintes[parseInt(num_unidad_billon,10)];
			}
				
		}
		
		//Centenas de mil millones
		if (str_numero.length>14){
			var num_centena_billon=str_numero.substring(str_numero.length-15,str_numero.length-14);
			if (num_centena_billon!="0"){
				if (num_centena_billon=="1" && num_decena_billon=="0" && num_unidad_billon=="0")
					billones_letras="cien";
				else
					billones_letras=centenas[parseInt(num_centena_billon,10)-1]+" "+billones_letras;
			}
		}
		
		if (num_centena_billon!="0" || num_decena_billon!="0" || num_unidad_billon!="0"){
			if (!(num_centena_billon=="0" && num_decena_billon=="0" && num_unidad_billon=="1"))
				billones_letras=billones_letras; //+" billones";
		}
		
		//Casos especiales
		/*
		num_unidad
		num_decena
		num_centena
		num_unidad_mil
		num_decena_mil
		num_centena_mil
		num_unidad_millon
		num_decena_millon
		num_centena_millon
		num_unidad_mm
		num_decena_mm
		num_centena_mm
		num_unidad_billon
		num_decena_billon
		num_centena_billon
		*/
		
		
		if (num_unidad_mil=="1" && num_decena_mil=="0" &&	num_centena_mil=="0"){ 
			mil_letras="mil";
		}else if (num_unidad_mil=="1" && ( (num_decena_mil>"2" || num_decena_mil=="0") &&	num_centena_mil>"0")){
			mil_letras=mil_letras+"un mil";
		}else	if (num_unidad_mil>"0" || num_decena_mil>"0" ||	num_centena_mil>"0"){
			//Si los miles son mas de uno y las unidades de mil son diferentes de 1
			mil_letras=mil_letras+" mil";
		}
		
		
		if (num_unidad_mm=="1" && num_decena_mm=="0" &&	num_centena_mm=="0"){
			miles_millones_letras="mil";
		}else if (num_unidad_mm=="1" && (num_decena_mm>"2" &&	num_centena_mm>"0")){
			miles_millones_letras=miles_millones_letras+" un mil";
		}else if (num_unidad_mm>"1" || num_decena_mm>"0" ||	num_centena_mm>"0"){
			miles_millones_letras=miles_millones_letras+" mil";
		}
		
		//Si es Un millón
		if (num_unidad_millon=="1" && num_decena_millon=="0" &&	num_centena_millon=="0" &&	num_unidad_mm=="0" && num_decena_mm=="0" &&	num_centena_mm=="0"){
			miles_millones_letras="";
			millones_letras="un millón";
		}else if (num_unidad_millon=="1" && num_decena_millon=="0" &&	num_centena_millon=="0" &&	(num_unidad_mm>"0" || num_decena_mm>"0" ||	num_centena_mm>"0")){
			millones_letras=millones_letras+" un millones";
		}else if (num_unidad_millon=="1" && (num_decena_millon>"2" ||	num_centena_millon>"0")){
			millones_letras=millones_letras+" un millones";
		}else	if (num_unidad_millon>"0" || num_decena_millon>"0" ||	num_centena_millon>"0" ||	num_unidad_mm>"0" || num_decena_mm>"0" ||	num_centena_mm>"0"){
			//Si los millones son mas de uno
			millones_letras=millones_letras+" millones";
		}
		

		//Billones
		if (num_unidad_billon=="1" && num_decena_billon=="0" && num_centena_billon=="0")		
			billones_letras="un billon";	
		else if (num_unidad_billon=="1" && (num_decena_billon>"2" || num_centena_billon>"0"))		
			billones_letras=billones_letras+" un billones";
		else if (num_unidad_billon>"0" || num_decena_billon>"0" || num_centena_billon>"0")		
			billones_letras=billones_letras+" billones";	
			
		var cadena_mostrar="";
		//alert(num_unidad+":"+num_decena+":"+num_centena+":"+num_unidad_mil+":"+num_decena_mil+":"+num_centena_mil+":"+num_unidad_millon+":"+num_decena_millon+":"+num_centena_millon+":"+num_unidad_mm+":"+num_decena_mm+":"+num_centena_mm+":"+num_unidad_billon+":"+num_decena_billon+":"+num_centena_billon);
		if (num_unidad=="1" && num_decena=="0" && num_centena=="0" && num_unidad_mil=="0" && num_decena_mil=="0" && num_centena_mil=="0" && num_unidad_millon=="0" && num_decena_millon=="0" && num_centena_millon=="0" && num_unidad_mm=="0" && num_decena_mm=="0" && num_centena_mm=="0" && num_unidad_billon=="0" && num_decena_billon=="0" && num_centena_billon=="0")		
			cadena_mostrar=billones_letras+" "+miles_millones_letras+" "+millones_letras+" "+mil_letras+" "+letras+" peso colombiano";	
		else
			cadena_mostrar=billones_letras+" "+miles_millones_letras+" "+millones_letras+" "+mil_letras+" "+letras+" pesos colombianos";	
			
		var pos_inicial=0;
		for (i=0; i<cadena_mostrar.length; i++){
			if (cadena_mostrar.substring(i,i+1)==" ")
				pos_inicial=i+1;
			else
				i=cadena_mostrar.length;
		}
		cadena_mostrar=cadena_mostrar.substring(pos_inicial,pos_inicial+1).toUpperCase()+cadena_mostrar.substring((pos_inicial+1),cadena_mostrar.length);
		
		documento.getElementById(mi_div).innerHTML=cadena_mostrar;
	}else
		documento.getElementById(mi_div).innerHTML="Cero pesos colombianos";	
}

//Actualizar un proponente
function actualizar_proponente(documento, form){
	var str_fecha_actual=fecha_actual();
	//Tipo de documento
	var tipodocumento="";
	for (i=0; i<form.rb_tipodocumento.length; i++){
		if (form.rb_tipodocumento[i].checked==true)	
			tipodocumento=form.rb_tipodocumento[i].value;
	}
	//Personeria o naturaleza
	var naturaleza="";
	for (i=0; i<form.rb_naturaleza.length; i++){
		if (form.rb_naturaleza[i].checked==true)	
			naturaleza=form.rb_naturaleza[i].value;
	}
	//Regimen tributario
	var regimen="";
	for (i=0; i<form.rb_regimen.length; i++){
		if (form.rb_regimen[i].checked==true)	
			regimen=form.rb_regimen[i].value;
	}
	if (form.txt_nombre.value==""){ //Validación del nombre
		alert("Debe ingresar el nombre del proponente");
		form.txt_nombre.focus();
		return false;
	}else if (valida_vacio(form.txt_nombre.value)==false){
		alert("Debe ingresar el nombre del proponente");
		form.txt_nombre.select();
		return false;
	}else if (form.txt_representante.value==""){ //Validación del nombre del representante legal
		alert("Debe ingresar el nombre del representante del proponente");
		form.txt_representante.focus();
		return false;
	}else if (valida_vacio(form.txt_representante.value)==false){
		alert("Debe ingresar el nombre del representante del proponente");
		form.txt_representante.select();
		return false;
	}else if (tipodocumento==""){ //Validación del tipo de dentificación
		alert("Debe seleccionar el tipo de identificación");
		return false;
	}else if (form.txt_documento.value==""){	//Validación de la identificación
		alert("Debe ingresar la identificación del proponente");
		form.txt_documento.focus();
		return false;
	}else if (valida_vacio(form.txt_documento.value)==false){
		alert("Debe ingresar el documento del proponente");
		form.txt_documento.select();
		return false;
	}else if (regimen==""){ //Validación del régimen tributario
		alert("Debe seleccionar el régimen tributario");
		return false;
	}else if (naturaleza==""){ //Validación del tipo de sociedad ó naturaleza
		alert("Debe seleccionar el tipo de sociedad");
		return false;
	}
	
	//Validacion de fecha de nacimiento o vigencia de sociedad
	var fechas=str_fecha_actual.split("-");
	var anio=fechas[0];
	var mes=fechas[1];
	var dia=fechas[2];
	if (form.fecnac_ano.value=="-"){
		alert("Debe seleccionar el año de la fecha de nacimiento");	
		form.fecnac_ano.focus();
		return false;	
	}else if (form.fecnac_mes.value=="-"){
		alert("Debe seleccionar el mes de la fecha de nacimiento");	
		form.fecnac_mes.focus();
		return false;	
	}else if (form.fecnac_dia.value=="-"){
		alert("Debe seleccionar el dia de la fecha de nacimiento");	
		form.fecnac_dia.focus();
		return false;	
	}
	
	if (naturaleza=="N"){
		//Validar que no sea menor de edad
		var anios_diferencia=parseInt(anio,10)-parseInt(form.fecnac_ano.value,10);
		if (anios_diferencia<18){
			alert("El proponente no puede ser menor de edad");
			form.fecnac_ano.focus();
			return false;
		}else if (anios_diferencia==18){
			if (parseInt(mes,10)<parseInt(form.fecnac_mes.value,10)){
				alert("El proponente no puede ser menor de edad");
				form.fecnac_mes.focus();
				return false;
			}else if (parseInt(mes,10)==parseInt(form.fecnac_mes.value,10)){
				if (parseInt(dia,10)<parseInt(form.fecnac_dia.value,10)){
					alert("El proponente no puede ser menor de edad");
					form.fecnac_dia.focus();
					return false;
				}
			}
		}
			
	}else if (naturaleza=="J"){
		var fecha_vigencia=form.fecnac_ano.value+"-"+form.fecnac_mes.value+"-"+form.fecnac_dia.value;
		if(fecha_vigencia>str_fecha_actual){
			alert("la fecha de vigencia de la sociedad("+fecha_vigencia+") no puede ser mayor a la fecha actual("+str_fecha_actual+")");	
			form.fecnac_ano.focus();
			return false;
		}
	}
	
	if (form.cmb_departamento.value=="-"){ //Validación del departamento
		alert("Debe seleccionar el departamento");
		form.cmb_departamento.focus();
		return false;
	}else if (form.cmb_municipio.value=="-"){ //Validación del municipio o ciudad
		alert("Debe seleccionar el municipio");
		form.cmb_municipio.focus();
		return false;
	}else if(form.txt_capacidad1.value==""){ //Validación de la capacidad como consultor
		alert("Debe ingresar la capacidad de contratación como consultor");
		form.txt_capacidad1.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad1.value)==false){
		alert("Debe ingresar la capacidad de contratación como consultor");
		form.txt_capacidad1.focus();
		return false;
	}else if(parseInt(form.txt_capacidad1.value,10)<0){
		alert("La capacidad de contratación como consultor, debe ser mayor ó igual a cero");
		form.txt_capacidad1.focus();
		return false;
	}else if(form.txt_capacidad2.value==""){ //Validación de la capacidad como constructor
		alert("Debe ingresar la capacidad de contratación como constructor");
		form.txt_capacidad2.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad2.value)==false){
		alert("Debe ingresar la capacidad de contratación como constructor");
		form.txt_capacidad2.focus();
		return false;
	}else if(parseInt(form.txt_capacidad2.value,10)<0){
		alert("La capacidad de contratación como constructor, debe ser mayor ó igual a cero");
		form.txt_capacidad2.focus();
		return false;
	}else if(form.txt_capacidad3.value==""){ //Validación de la capacidad como proveedor
		alert("Debe ingresar la capacidad de contratación como proveedor");
		form.txt_capacidad3.focus();
		return false;
	}else	if(valida_vacio(form.txt_capacidad3.value)==false){
		alert("Debe ingresar la capacidad de contratación como proveedor");
		form.txt_capacidad3.focus();
		return false;
	}else if(parseInt(form.txt_capacidad3.value,10)<0){
		alert("La capacidad de contratación como proveedor, debe ser mayor ó igual a cero");
		form.txt_capacidad3.focus();
		return false;
	}else if (form.txt_email.value==""){ //Validación del correo electrónico
		alert("Debe ingresar el correo electrónico");
		form.txt_email.focus();
		return false;
	}else if (valida_email(form.txt_email.value)==false){	
		alert("El correo electrónico es inválido");
		form.txt_email.focus();
		return false;
	}else if (form.cmb_grupo.value=="-"){ //Validación del grupo de proponente
		alert("Debe seleccionar el grupo de proponentes");
		form.cmb_grupo.focus();
		return false;
	}else{		
		//Validando datos del RUP
		if (form.txt_vencimiento_rup.value<=str_fecha_actual){ //Validación de la fecha de vigencia del RUP
			var x=confirm("La fecha de expiración del RUP("+form.txt_vencimiento_rup.value+") es menor ó igual a la fecha actual("+str_fecha_actual+"), es decir que ya caducó, Desea continuar?");	
			if (x==false)
				return false;
		}
		if (form.chk_cambiarpassword.checked==true){			
			if (form.txt_password.value==""){
				alert("Debe ingresar el password");
				form.txt_password.focus();
				return false;
			}else if (valida_vacio(form.txt_password.value)==false){
				alert("Debe ingresar el password");
				form.txt_password.select();
				return false;
			}else if (form.txt_password.value!=form.txt_password2.value){
				alert("El password y la confirmacion del password deben ser iguales");
				form.txt_password.select();
				return false;
			}
		}
			form.hd_password.value=hex_md5(form.txt_password.value);
			form.txt_password.value="";
			form.txt_password2.value="";
			form.action='proponentes_actualizar3.php';
			form.target='_self';
			form.submit();
			return true;
	}
}

function validar_aclaracion(documento, form){
	if (form.txt_email.value==""){
		alert("Debe ingresar el correo electrónico.");
		form.txt_email.focus();
		return false;
	}else if (valida_vacio(form.txt_email.value)==false){
		alert("Debe ingresar el correo electrónico.");
		form.txt_email.select();
		return false;
	}else if (valida_email(form.txt_email.value)==false){
		alert("El correo electrónico tiene un formato inválido.");
		form.txt_email.select();
		return false;
	}else if (form.txt_password.value==""){
		alert("Debe ingresar el password.");
		form.txt_password.focus();
		return false;
	}else if (valida_vacio(form.txt_password.value)==false){
		alert("Debe ingresar el password.");
		form.txt_password.select();
		return false;
	}else if (form.txt_pregunta.value==""){
		alert("Debe ingresar la pregunta.");
		form.txt_pregunta.focus();
		return false;
	}else if (valida_vacio(form.txt_pregunta.value)==false){
		alert("Debe ingresar la pregunta.");
		form.txt_pregunta.select();
		return false;
	}else if (form.txt_pregunta.value.length>2048){
		alert("El texto de la pregunta excede los 2048 caracteres. Actualmente tiene "+form.txt_pregunta.value.length+" caracteres");
		form.txt_pregunta.focus();
		return false;
	}else{
		form.hd_password.value=hex_md5(form.txt_password.value);
		form.hd_email.value=hex_md5(form.txt_email.value);
		form.txt_password.value="";
		form.txt_email.value="";
		documento.getElementById('tabla_datos').style.display='none';
		documento.getElementById('tabla_cargando').style.display='';
		form.action='aclaraciones_solicitar.php';
		form.target='frm_solicitar_aclaracion';
		form.submit();
		return true;
	}
}
