function validar(inputs)
	{
	var alerta = '';
	if(inputs == undefined || inputs.length==0)
		inputs = $('input,select,textarea');
	var oblig_texto = inputs.filter(".required_txt");
	var oblig_email = inputs.filter(".required_mail");
	var op_email = inputs.filter(".not_required_mail");
	var oblig_selcs = inputs.filter(".required_selc");
	var oblig_digit = inputs.filter(".required_dgt");
	var op_digit = inputs.filter(".not_required_dgt");
	var oblig_price = inputs.filter(".required_price");
	var op_price = inputs.filter(".not_required_price");
	var oblig_selcs_mult = inputs.filter(".required_selc_mult");
	var oblig_float = inputs.filter(".required_float");
	var op_float = inputs.filter(".not_required_float");
	var i;
	
	//Validacion de los campos de texto
	for(i=0; i<oblig_texto.length; i++)
		{
		if(oblig_texto.eq(i).val()=="" || oblig_texto.eq(i).val().length == 0 || /^\s+$/.test(oblig_texto.eq(i).val()))
			alerta += oblig_texto.eq(i).attr('title')+'\n';
		}
		
	//Validacion de los campos email
	for(i=0; i<oblig_email.length; i++)
		{
		if(oblig_email.eq(i).val()=="" || oblig_email.eq(i).val().length == 0 ||
				 !(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(oblig_email.eq(i).val())) )
			alerta += oblig_email.eq(i).attr('title')+'\n';
		}
	
	//Validacion de los campos email NO OBLIGATORIOS
	for(i=0; i<op_email.length; i++)
		{
		if(op_email.eq(i).val()!="" && op_email.eq(i).val().length != 0 &&
				 !(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(op_email.eq(i).val())) )
			alerta += op_email.eq(i).attr('title')+'\n';
		}
		
	//Validacion de los campos select
	for(i=0; i<oblig_selcs.length; i++)
		{
		if(oblig_selcs.eq(i).val()=="-")
			alerta += oblig_selcs.eq(i).attr('title')+'\n';
		}
		
	//Validacion de campos numericos
	for(i=0; i<oblig_digit.length; i++)
		{
		if(oblig_digit.eq(i).val()=="" || oblig_digit.eq(i).val().length == 0 || !/^\d+$/.test(oblig_digit.eq(i).val()))
			alerta += oblig_digit.eq(i).attr('title')+'\n';
		}
	
	//Validacion de campos numericos no obligatorios
	for(i=0; i<op_digit.length; i++)
		{
		if(op_digit.eq(i).val()!="" && !/^\d+$/.test(op_digit.eq(i).val()))
			alerta += op_digit.eq(i).attr('title')+'\n';
		}
	
	//Validacion de precios obligatorios
	for(i = 0; i<oblig_price.length; i++)
		{
		if(oblig_price.eq(i).val() == null || oblig_price.eq(i).val().length == 0 || !(/^[-+]?[0-9]+(\x2E[0-9]+)?$/.test(oblig_price.eq(i).val())) )
			alerta += oblig_price.eq(i).attr('title')+"\n";
		}
	
	//Validacion de precios opcionales
	for(i = 0; i<op_price.length; i++)
		{
		if(op_price.eq(i).val().length != 0 && !(/^[-+]?[0-9]+(\x2E[0-9]+)?$/.test(op_price.eq(i).val())) )
			alerta += op_price.eq(i).attr('title')+"\n";
		}
	
//Validacion de numeros decimales
	for(i = 0; i<oblig_float.length; i++)
		{
		if(oblig_float.eq(i).val() == null || oblig_float.eq(i).val().length == 0 || !(/^(\d+)(\x2E(\d{1,})){0,1}$/.test(oblig_float.eq(i).val())) )
			alerta += oblig_float.eq(i).attr('title')+"\n";
		}
	
	//Validacion de numeros decimales opcionales
	for(i = 0; i<op_float.length; i++)
		{
		if(op_float.eq(i).val().length != 0 && !(/^(\d+)(\x2E(\d{1,})){0,1}$/.test(op_float.eq(i).val())) )
			alerta += op_float.eq(i).attr('title')+"\n";
		}
	
	//Validacion de select multiple con al menos una opcion
	for(i=0; i<oblig_selcs_mult.length; i++)
		{
		if($("#"+oblig_selcs_mult.eq(i).attr("id")+" option").length <=0)
			alerta += oblig_selcs_mult.eq(i).attr('title')+'\n';
		}
		
	if(alerta!='')
		{
		alert(alerta);
		return false;
		}
	return true;
	}

function fecha_valida(anio,mes,dia)
	{
	var v_anio = parseFloat(anio);
	var v_mes = parseFloat(mes);
	var v_dia = parseFloat(dia);
	
	switch(v_mes)
		{
		case 1:case 3: case 5: case 7: case 8: case 10: case 12:
			{
			if(v_dia>=1&&v_dia<=31)
				return true
			return false;
			}break;
		case 4:case 6: case 9: case 11:
			{
			if(v_dia>=1&&v_dia<=30)
				return true
			return false;
			}break;
		case 2:
			{
			if((v_anio%4)==0)
				{
				if(v_dia>=1&&v_dia<=29)
					return true
				return false
				}
			else
				{
				if(v_dia>=1&&v_dia<=28)
					return true
				return false
				}
			}
		}
	}
