var listechamps;

function TestRegExp(re, str)
{
	if (re.test(str))
		return true;
	else
		return false;
}

function isNumeric(str)
{
	if(str=="")
		return true;

	var validPatterns = /^[0-9]+$/;
	return TestRegExp(validPatterns, str);
}

function isFloat(str)
{
	if(str=="")
		return true;

	var validPatterns = /^[0-9]+([,|\.][0-9]{1,2})?$/;
	return TestRegExp(validPatterns, str);
}

function isTelMobileFR(str)
{
	if(str=="")
		return true;

	var validPatterns = /^(06|\+{0,1}336)[0-9]{8}$/;
	return TestRegExp(validPatterns, str);
}

function isTelFixeFR(str)
{
	if(str=="")
		return true;

	var validPatterns = /^(0|\+{0,1}33)[0-9]{9}$/;
	return TestRegExp(validPatterns, str);
}

function isValidMsisdn (str)
{
 if(str=="")
		return false;

	var validPatterns = /^(\+?\s*\d{1,3}\s*\((\d+\))*)*\s*(\d\s*){4,12}$/;
	return validPatterns.test(str);
}

function isYear(str)
{
	var validPatterns = /^[0-9]{4}$/;
	return (TestRegExp(validPatterns, str)||(str==""));
}

function isDateFR(str)
{
	if (str=="")
	return true;

	reg = new RegExp("^([0-9]{1,2})[ \/]([0-9]{1,2})[ \/]([0-9]{4})$", "g");
	result = reg.exec(str);
	if (result)
	{
		DateStrUser = eval(result[1]) + " " + eval(result[2] - 1) + " " + eval(result[3]);
		DateUser = new Date(result[3], eval(result[2] - 1), result[1]);
		VerifiedDateStr = DateUser.getDate() + " " + DateUser.getMonth() + " " + DateUser.getFullYear();
		if (DateStrUser == VerifiedDateStr)
			return true;
		else
			return false;
	}
	else return false;
}

function SizedNoSpace(str, junk, size)
{
	var validPatterns = new RegExp("^[^\\s]{" + size + "}$", "g");
	return (TestRegExp(validPatterns, str)||(str==""));
}

function isCPFR(str)
{
	if (str=="") return true;

	if ((isNumeric(str)) && (str.length == 5))
		return true;
	else
		return false;
}

function isCP(str)
{
	if (str=="") return true;

	if ((isNumeric(str)) && (str.length <= 5))
		return true;
	else
		return false;
}

function isDeptFR(str)
{
	if (str=="") return true;

	if ((isNumeric(str)) && (str.length == 2))
		return true;
	else
		return false;
}

function isChecked(field)
{
	var fieldCount = field.length;
	var result = false;

	for ( var i = 0 ; i < fieldCount ; i++ )
	{
		if (field[i].checked)
		{
			result = true;
			break;
		}
	}

	return result;
}

function isValidEmail(str)
{
	if(str!="")
	{
		var ok = false;
		var invalidPatterns = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
		var validPatterns = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

		if (window.RegExp)
		{
			if (!invalidPatterns.test(str) && validPatterns.test(str))
			{
				ok = true;
			}
		}
		else
		{
			if(str.indexOf("@") >= 0)
			{
				ok = true;
			}
		}
		return ok;
	}
	else
		return false;
}


function CheckField(field, fonc)
{
	var val = field.value;

	if (!eval(fonc+"('" + field.value + "')"))
	{
		field.value = "";
		alert("Ce champ n'est pas valide, veuillez le saisir à nouveau.");
	}
}

function TestField(str, field, junk)
{
	var ok = true;

	if(str!="")
		if(field == "") ok = false;

	return ok;
}

function CompareField(str, field, junk)
{
	var ok = true;

	if(str!="")
		if(field != str) ok = false;

	return ok;
}

function ChecknSubmit(zeForm, confirmation)
{
	var mesg = '';
	var param = '';

	if (listechamps != null)
	{
		for(var i=0; i<listechamps.length; i++)
		{
			if (zeForm.elements[listechamps[i][0]] != null)
			{
				if (listechamps[i][2] != '')
				{
					param = '';
					valeur = zeForm.elements[listechamps[i][0]].value;
					if (listechamps[i][3] != null)
						param = ", '"+zeForm.elements[listechamps[i][3]].value+"', '"+listechamps[i][3]+"'";
					if (!eval(listechamps[i][2]+"('"+valeur+"'"+param+")"))
						mesg += listechamps[i][1];
				}
				else
				{
					if (zeForm.elements[listechamps[i][0]].value=='')
						mesg += listechamps[i][1];
				}
			}
		}
	}

	if (mesg!='')
	{
		alert('Certains champs requis ne sont pas corrects :\n' + mesg);
		return false;
	}
	else if (confirmation != undefined)
	{
		if (confirm(confirmation))
		zeForm.submit();
	}
	else zeForm.submit();
}

function ConfirmSuppres(lien)
{
	if (confirm("!! ATTENTION !!\nVous vous apprêtez à supprimer un �lément.\nToutes les données seront DEFINITIVEMENT perdues\nVoulez vous continuer ?"))
		document.location = lien;
}


function toUpper(champ)
{
	champ.value = champ.value.toUpperCase();
}

function toLower(champ)
{
	champ.value = champ.value.toLowerCase();
}

function osDetection()
{
	var OSName="Unknown OS";

	if (navigator.appVersion.indexOf("Win")!=-1)		OSName="Windows";
	if (navigator.appVersion.indexOf("Mac")!=-1)		OSName="MacOS";
	if (navigator.appVersion.indexOf("X11")!=-1)		OSName="UNIX";
	if (navigator.appVersion.indexOf("Linux")!=-1)		OSName="Linux";

	return OSName;
}

function browserDetection()
{
	var browserName	= "Unknown Browser";

	return browserName = navigator.appName;
}

function addToFavorite(varUrl,varName)
{
	if (navigator.appName != 'Microsoft Internet Explorer')
		window.sidebar.addPanel(varName,varUrl,"");
	else
		window.external.AddFavorite(varUrl,varName);
}

function detect_enter(varEvent)
{
	var enter = false;

	NavName = navigator.appName;
	if(NavName=="Microsoft Internet Explorer")
		var key = varEvent.keyCode;
	else
		var key = varEvent.which;

	// On a appuyé sur Entrée
	if (key==13)
	{
		enter = true;
	}

	return enter;
}