/* Valida si parColor = #color en hexadecimal */
function esColor(parColor)
{
/*
	var varExpresion = /^#{6}([0-9]|[A-F]|[a-f])$/;
	return (varExpresion.test(parColor));
*/
	return true;
}

/* Valida si el parAmetro de entrada es un formato numerico valido (incluido decimales) 
	- Parametro de entrada: valor numerico a comprobar (parValue)
	- Retorna: True si es un formato numerico correcto, False en caso contrario.
*/

function esNumerico(parValue)
{
   if (parValue=='') return true;
  //var varValidChars = "0123456789";   
  var varValidChars = "0123456789.,";    
  var varIsNumber=true;
   var varChar;
   
   for (i = 0; i < parValue.length && varIsNumber == true; i++) 
      { 
      varChar = parValue.charAt(i); 
      if (varValidChars.indexOf(varChar) == -1) 
         {
         varIsNumber = false;
         }
      }
   return varIsNumber;
 }


/* Valida si el parametro de entrada es un formato numerico ENTERO valido (SIN DECIMALES) 
	- Parametro de entrada: valor numerico a comprobar (parValue)
	- Retorna: True si es un formato numerico correcto, False en caso contrario.
*/
function esEntero(parValue)
{
   if (parValue=='') return true;
   var varValidChars = "0123456789";   
   var varIsNumber=true;
   var varChar;
   
   for (i = 0; i < parValue.length && varIsNumber == true; i++) 
      { 
      varChar = parValue.charAt(i); 
      if (varValidChars.indexOf(varChar) == -1) 
         {
         varIsNumber = false;
         }
      }
   return varIsNumber;

}

/*  Valida si el rango de fechas es correcto, es decir, si parFechaIni es menor que parFechaFin
	 - Parámetros entrada:  parFechaIni es la fecha más pequeña y parFechaFin es la fecha mayor
	 - Retorna: True si el rango de fechas es correcto, False en caso contrario
*/

/*
SE UTILIZA EN VARIOS SITIOS PERO NO FUNCIONA,
PENDIENTE DE HACER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/

function esValidoRangoFechas(parFechaFin, parFechaIni) 
{ 
/*
    varOK=false;
    varFI=Date.parse(parFechaIni);
    varFF=Date.parse(parFechaFin);
    if (varFF>varFI) varOK=true; //INTERVALO OK
    else             varOK=false;//INTERVALO ERROR
    return varOK;
	*/
	return true;
} 

/* Valida si parFecha es un formato válido o no. 
	parFecha: Fecha a validar
	parFormato: idIdioma a mostrar la fecha
	Retorna:True si parFecha es una fecha correcta
	NO COMPROBADA!!!

function esValidaFecha(parFecha,parFormato)
{
	switch (parFormato)
	{
		case 1: //hispano
			re = /^(3[01]|0?[1-9]|[12]d)/(0?[1-9]|1[012])/d{4}/;
			break;
		case 2: //anglosajon
			re = /^(0?[1-9]|1[012])/(3[01]|0?[1-9]|[12]d)/d{4}/;
			break;
		default: //hispano
			re = /^(3[01]|0?[1-9]|[12]d)/(0?[1-9]|1[012])/d{4}/;
			break
	}
	return parFecha.replace(re, "$1");
}
*/

function esFechaCorrecta(dia,mes,anyo)
{
/* Valida a partir del dia, mes y año, si una fecha es correcta dependiendo si el es año bisiesto. 
*/
	var bisiesto=0;
	var fecha=new Date();
		
	bisiesto=anyo%4;
	anyo_actual=fecha.getYear(); 
	mes_actual=fecha.getMonth()+1; 
	dia_actual=fecha.getDate();

	/*control de meses que tienen 31 dias*/
	if (dia==31 && (mes==2 || mes==4 || mes==6 || mes==9 || mes==11) )
	{
		return false;
	}

	/*año bisiesto*/
	if (dia>28 && mes==2 && bisiesto!=0)
	{
		return false;
	}
	return true;
}

/* Función que valida cualquier cuadro de texto de un formlario. Si el cuadro de texto está vacío no envia los datos.
	- Parámetros de entrada: nombre del cuadro de texto que se quiere validar (campo)
	- Devuelve falso si el campo no está vacío y cierto en caso contrario
	- Llamada  --> onClick="return esVacio(document.NOMBRE_FORMULARIO.NOMBRE_CUADRO_TEXTO);"
*/
function esVacio(campo)
{
	if (trim(campo) == '')
	{
		return true;
	}
	return false;
}

// Quitar espacios al principio
function LTrim(value) {
	
	var re = /\s*((\S+\s*)*)/;
	if(value)
		return value.replace(re, "$1");
	return null;
	
}

// Quitar espacios al final
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	if(value)
		return value.replace(re, "$1");
	return null;
	
}

// Quitar espacios al principio y al final
function trim( value ) {
	return LTrim(RTrim(value));
}

// Validar correo
function checkemail(str){
//microsoft:
//"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(( [a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"

  var filter=/^.+@.+\..{2,3}$/
  return (filter.test(str))
}


function existe_en_array (valor,array)
{
/* Busca en un array un valor. Devuelve la posicion del array en la que se encuentra si el valor existe, si no lo encuentra devuelve -1. */

	for(var i=0;i<array.length;i++)
	{
		if(array[i]=== valor)
		{
			return i;
		}
	}
	return -1;
}

function buenporcentaje(parValue)
{ 
 if ((parValue < 0)||(parValue > 100) ||( parValue == ''))
	{
		return false;
	}
	return true;
 }

function ip_valida(ip) 
{ 
/* Mira si el parametro ip es una direccion IP valida*/
    partes=ip.split('.'); 

    if (partes.length!=4) 
	{ 
        return false; 
    } 
    for (i=0;i<4;i++)
	{  
        num=partes[i]; 
        if (num>255 || num<0 || num.length==0 || isNaN(num))
		{ 
			return false; 
		} 
    }
	return true;
}  

function comprueba_dominio(nombre_dominio)
{
/* Valida si un dominio es correcto. Susana (25-10-2007) */
	var arr = new Array('.com','.net','.org','.biz','.coop','.info','.museum','.name','.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag','.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw','.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm','.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc','.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr','.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz','.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm','.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm','.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm','.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq','.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki','.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li','.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg','.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng','.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf','.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py','.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg','.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv','.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn','.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um','.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws','.wf','.ye','.yt','.yu','.za','.zm','.zw');

	var comprobacion = nombre_dominio;
	var val = true;
	var punto = comprobacion.lastIndexOf(".");
	var nombre_dominio = comprobacion.substring(0,punto);
	var extension = comprobacion.substring(punto,comprobacion.length);
	if(punto>2 && punto<57)
	{
		for(var i=0; i<arr.length; i++)
		{
			if(extension == arr[i])
			{
				val = true;
			break;
			} 
			else
			{
				val = false;
			}
		}
		if(val == false)
		{
			alert("La extensionension de tu dominio "+extension+" no es correcta");
			return false;
		}
		else
		{
			for(var j=0; j<nombre_dominio.length; j++)
			{
				var dh = nombre_dominio.charAt(j);
				var hh = dh.charCodeAt(0);
				if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
				{
					if((j==0 || j==nombre_dominio.length-1) && hh == 45) 
					{
						alert("Tu nombre de dominio no puede contener el simbolo guion '-' al principio ni al final");
						return false;
					}
				}
				else
				{
					alert("El dominio no puede contener caracteres especiales");
					return false;
				}
			}
		}
	}
	else
	{
		alert("El numero de caracteres insertado no es correcto para el nombre de dominio ");
		return false;
	} 
	return true;
}

function validaciones_es_fotojpg(imagen)
{
/* Comprueba que la imagen sea formato jpg o jpeg a partir de su nombre */
	var extensiones = new Array("jpg","jpeg");
	var extension = imagen.split('.');

	if (existe_en_array(extension[extension.length-1].toLowerCase(),extensiones) > -1)
	{
		return true
	}
	else
		return false;
}

function validar_es_imagen(imagen)
{
/* Comprueba que el archivo sea una imagen. Susana (30-10-2007) */

	var extensiones = new Array("jpg","jpeg","png","gif","tif");
	var extension = imagen.split('.');

	if (existe_en_array(extension[extension.length-1].toLowerCase(),extensiones) > -1)
	{
		return true
	}
	else
		return false;
}

function validar_es_color(color)
{
/* Valida si el parámetro es un color en hexagesimal o no. Susana (30-10-2007)*/
	var colores = /^#[0-9a-fA-F]{6}$/;
	
	if(!colores.test(color))
		return false;
	else
		return true;
}

