﻿function _unset_array (array, value)
{
	for (var i = 0; i < array.length; i++)
	{
		if (array[i] == value)
		{
			array.splice (i, 1);
		}
	}
}
function _in_array (array, value)
{
	for (var i = 0; i < array.length; i++)	
	{
		if (array[i] == value)
		{
			return true;
		}
	}
	return false;
}
function _getRandomNumber (min, max)
{
	var nb = Math.floor(Math.random() * (max - min + 1)) + min;
	return nb;
}
function _setWrongStyle (element)
{
	element.setStyles({
						color      : '#FF0000',
						fontWeight : 'bold'
					});
}
function _setRightStyle (element)
{
	element.setStyles({
						color      : '#969087',
						fontWeight : 'normal'
					});
}
function _getDateFromString (string){ // 00/00/0000
	var aSplit = string.split("/");
	if (aSplit.length != 3){
		return false;
	}
	else{
		var day   = parseInt(aSplit[0], 10);
		var month = parseInt(aSplit[1], 10) - 1;
		var year  = parseInt(aSplit[2], 10);
		var date = new Date(year, month, day);
	}
	return date;
}
function _getFormLabel (form_id, label_name)
{
	var aLabels = $(form_id).getElements("label");
	for (var i = 0; i < aLabels.length; i++)
	{
		var name = aLabels[i].getProperty ("for");
		if (name == label_name)	return aLabels[i];
	}
	return false;
}
function _isNumeric (str) // Boolean
{
	var result = true;
	var len    = str.length;
	for (var i = 0; i < len; i++)
	{
		var charCode = str.charCodeAt(i);
		if (charCode < 48 || charCode > 57)
		{
			result = false;
			break;
		}
	}
	return result;
}
function _isAlphabetic (str) // Boolean
{
	var result = true;
	var len    = str.length;
	for (var i = 0; i < len; i++)
	{
		var charCode = str.charCodeAt(i);
		if ((charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122))
		{
			result = false;
			break;
		}
	}
	return result;
}
function _checkMail (email) //Boolean
{
	var aEmail  = [];
	var aDomain = [];
	
	if (email.length < 1) // moins d'un caractère
		return false;
	
	aEmail = email.split("@");
	
	if (aEmail.length != 2) // seulement un @ autorisé
		return false;

	var aDomain = aEmail[1].split(".");
	
	if (aDomain.length < 2) // au moins un point 
	{
		return false;
	}
	
	if (aDomain[aDomain.length - 1].length < 2 || aDomain[aDomain.length - 1].length > 4)
		return false; // un . est permis et entre 2 et 4 caractères après le .
	
	if(!_checkString (aEmail[0].toString()) || !_checkString (aEmail[1].toString()))
		return false;	// il y a un caractère invalide
	
	return true;
}
function _checkString (str) // Boolean
{
	var len	= str.length; // longueur de la chaine
	// je parcours la chaine
	for (var i = 0; i < len; i++)
		if (!_checkChar(str.charCodeAt(i)))
			return false; // la chaine contient au moins un caractère invalide
	return true;
}
function _checkChar (charCode) // Boolean
{
	var ASCII_ALLOWED = [[38,39],[42,43],[45,57],[61,61],[63,63],[65,90],[94,95],[97,123],[125,126]];
	// je parcours les caractères invalide
	for (var j = 0; j < ASCII_ALLOWED.length; j++)
	{
		if (charCode >= ASCII_ALLOWED[j][0] && charCode <= ASCII_ALLOWED[j][1])
		{
			return true;	// le caractère est dans l'intervalle des caractères permis
		}
	}
	return false;
}