/**
*
* funciones javascript a utilizar en el site
*
*
* @package      Website Júlia
* @copyright    Website Júlia
* @author		Órbital
* @version		1.0
*/

/**
*  Válida la sintaxis del email
*
*  Comprobaciones :
*    - Mínimo de 5 caracteres
*    - Caracteres no permitidos : "+*|,\":<>[]{}`';()&$#% "
*    - Que la @ tenga algún caracter delante y alguno detrás
*    - Que exista '.' a partir del cuarto carácter (x@x.x)
*    - Que no acabe en '.'
*    - Que el punto esté detrás de la @
*
*	@param		string		email	E-mail a comprobar la sintaxis
*
*	@return		boolean				True  -> sintaxis correcta
*									False -> sintaxis incorrecta
*/	
function isEmail(email){

	// Mínimo de 5 caracteres
	if (email.length < 5)
		return false

	// Cadena de caracteres no permitidos
	var iChars = "+*|,\":<>[]{}`';()&$#% ";

	// Primero comprobamos que en el email no haya algún
	// caracter no permitido
	var eLength = email.length;
	for (var i=0; i < eLength; i++)	{
		if (iChars.indexOf(email.charAt(i)) != -1)
			return false
	}

	// Comprobamos que la @ tenga algún caracter delante y alguno detrás
	var atIndex = email.lastIndexOf("@");
	if(atIndex < 1 || (atIndex == eLength - 1))
		return false

	// Comprobamos que exista '.' a partir del cuarto carácter, pero
	// que no acabé en '.'
	var pIndex = email.lastIndexOf(".");
	if(pIndex < 3 || (pIndex == eLength - 1))
		return false;

	// Por último, comprobamos que el punto esté detrás de la @
	if(atIndex > pIndex)
		return false

	return true
}

/**
*	Chequea si la fecha es válida segun el formato dd/mm/yyyy
*
*	@param		string		indate		Fecha a comprobar
*
*	@return		boolean					True  -> fecha correcta
*										False -> fecha incorrecta
*/
function fechaCorrecta(indate) {
	
	if ( indate.length != 10 ) return false
	
    var sdate = indate.split("/")
  
    var chkDate = new Date(Math.abs(sdate[2]),(Math.abs(sdate[1])-1),Math.abs(sdate[0]))

    var cmpDate = (chkDate.getDate())+"/"+(chkDate.getMonth()+1)+"/"+(chkDate.getFullYear())
    var indate2 = (Math.abs(sdate[0]))+"/"+(Math.abs(sdate[1]))+"/"+(Math.abs(sdate[2]))
    
    if (indate2 != cmpDate || cmpDate == "NaN/NaN/NaN") return false
    else return true;
}

/**
*	Elimina la posicion 'i' del array 'ar'
*
*	@param		array		ar			Array del que queremos eliminar una posición
*	@param		int			i			Posició que queremos borrar
*
*	@return		array					Array con la posición eliminada
*/
function array_splice( ar , i ) {
	
	if ( i > 0 ) {
		var part1 = ar.slice(0,i)
		var part2 = ar.slice( ( new Number(i) + 1 ) )
		ar = part1.concat(part2)
	} else
		ar = ar.slice(1)
		
	return ar
}


/**
*	Remplaza los carácteres '<' y '>' por sus correspondientes codificaciones HTML &lt; y &gt;
*
*	@param		string		txt		Texto en el que buscaremos los caracteres > y < para codificarlos
*
*	@return 	string				Texto con los caracteres remplazados
*/
function htmlentities(txt) {
	var txtCodif = txt.replace("<","&lt;")
	txtCodif = txtCodif.replace(">","&gt;")
	return txtCodif
}
