/*=============================================================================
script :        verif.js
auteur :        Rémi Buisson
contenu :       Script Javascript : fonctions général permettant de vérifier des champs de formulaire
											
date creation : 06/08/2008

modifications :
=============================================================================*/
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function trim(string){
// renvoie string en enlevant les espaces en début et fin de chaine
	return string.replace(/(^\s*)|(\s*$)/g,'');
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function isNumberInt(nb){
// renvoie vrai si <nb> est un entier (pas de virule), faux sinon
  return (!isNaN(parseInt(nb))) ? true : false;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function isNumberFloat(nb){
// renvoie vrai si <nb> est un reel (virule), faux sinon
  return (!isNaN(parseFloat(nb))) ? true : false;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function date_mysql_to_date(date_mysql){
// on renvoie une date au format fr (jj/mm/aaaa) à partir d'une date au format anglais (aaaa-mm-jj)
// prérequi : il faut controler que <date_mysql> soit au bon format
 
 	// on récupère les 3 éléments
	a=date_mysql.substring(0,4);
	m=date_mysql.substring(5,7);
	j=date_mysql.substring(8,10);
	
	//on renvoi le tout dans l'odre voulu :
	return j+'/'+m+'/'+a;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function date_to_date_mysql(date){
// on renvoie une date au format mysql (aaaa-mm-jj) à partir d'une date au format anglais (jj/mm/aaaa)
// prérequi : il faut controler que <date> soit au bon format
 
 	// on récupère les 3 éléments
	j=date.substring(0,2);
	m=date.substring(3,5);
	a=date.substring(6,10);
	
	//alert(j+'/'+m+'/'+a); // pour debug
	
	//on renvoi le tout dans l'odre voulu :
	return a+'-'+m+'-'+j;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_date(d) {
	// renvoie vrai si la date <d> est de la forme "jj/mm/aaaa"
	
	var dateaverifier=d
	// rangement de la date dans des variables
	if (dateaverifier.substring(0,1)=="0"){
		var j=parseInt(dateaverifier.substring(1,2));
	}
	else {
		var j=parseInt(dateaverifier.substring(0,2));
	}
	if (dateaverifier.substring(3,4)=="0"){
		var m=parseInt(dateaverifier.substring(4,5));
	}
	else {
		var m=parseInt(dateaverifier.substring(3,5));
	}
	var a=parseInt(dateaverifier.substring(6,10));
	//si la longueur est différent de 10 , problème
	if (dateaverifier.length != 10) {
		return false;
	}
	//les caratères "/" ne sont pas aux endroits attendus
	else {
		if((dateaverifier.charAt(2) != '/') && (dateaverifier.charAt(5) != '/')) {
			return false;
		}
	}
	//l'année n'est pa un chiffre
	if (isNaN(a)) {
		return false;
	}
	//le mois n'est pas un chiffre ou n'est pas compris entre 0 et12
	if ((isNaN(m))||(m<1)||(m>12)) {
		return false;
	}
	//test si il s'agit d'une année bissextile pour accepter le 29/02
	if (((a % 4)==0 && (a % 100)!=0) || (a % 400)==0){
		if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>29)))) {
			return false;
		}
	}
	else {
		if ((isNaN(j)) || ((m!=2) && ((j<1)||(j>31))) || ((m==2) && ((j<1)||(j>28)))){
			return false;
		}
	}
	return true;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_email(mail) {
// renvoie vrai si le mail <mail> est valide, faux sinon

	//alert(mail);
	if (mail.indexOf("@") != "-1" &&
			mail.indexOf(".") != "-1" &&
			mail != "")
			return true;
	
	return false;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_url(url){
// renvoie vrai si <url> est correct, faux sinon (avec 'http://')

	if (url == ''){ // si le champs est vide => OK
	
		return  true;
	}
	else if (url.substring(0,7) != 'http://'){ // si le champs commence par 'http://'
		
		return  false;
	}
	else { 
		
		return  true;
	}
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_url_image(url){
// renvoie vrai si <url> est une url de type image ex: monimage.jpg

	var extension = get_extension(url);
	
	if ( (extension.toLowerCase() == "jpg")
					 || (extension.toLowerCase() == "gif")
					 || (extension.toLowerCase() == "png")
					 || (extension.toLowerCase() == "jpeg")){ 
		return  true;
	}
	else { 
		
		return  false;
	}
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_url_pub(url){
// renvoie vrai si <url> est une url de type image ex: monimage.jpg

	var extension = get_extension(url);
	
	if ( (extension.toLowerCase() == "jpg")
					 || (extension.toLowerCase() == "gif")
					 || (extension.toLowerCase() == "png")
					 || (extension.toLowerCase() == "jpeg")
					 || (extension.toLowerCase() == "swf")){ 
		return  true;
	}
	else { 
		
		return  false;
	}
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_url_video(url){
// renvoie vrai si <url> est une url de type image ex: monimage.jpg

	var extension = get_extension(url);
	
	if ( (extension.toLowerCase() == "avi")
				 || (extension.toLowerCase() == "mpeg")
				 || (extension.toLowerCase() == "mpg")
				 || (extension.toLowerCase() == "wmv")
				 || (extension.toLowerCase() == "wmx")){ 
		return  true;
	}
	else { 
		
		return  false;
	}
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function verif_url_document(url){
// renvoie vrai si <url> est une url de type image ex: monimage.jpg

	var extension = get_extension(url);
	
	if ((extension.toLowerCase() == "jpg")
				 || (extension.toLowerCase() == "gif")
				 || (extension.toLowerCase() == "png")
				 || (extension.toLowerCase() == "jpeg")
				 
				 || (extension.toLowerCase() == "txt")
				 || (extension.toLowerCase() == "doc")
				 || (extension.toLowerCase() == "rtf")
				 || (extension.toLowerCase() == "xls")
				 || (extension.toLowerCase() == "pps")
				 || (extension.toLowerCase() == "ppt")
				 
				 || (extension.toLowerCase() == "pdf")){ 
		return  true;
	}
	else { 
		
		return  false;
	}
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function get_extension( url ){
// renvoie l'enxtion de l'url : ex html , jpg ...
//faux si erreur

	var reg=new RegExp("[.]+", "g"); // on met dans un tableau toutes les chaines séparé par les points
	var tableau=url.split(reg);
	var extension = tableau[tableau.length-1]; // on prend l'extension
	return extension;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function copie_tab_sans_doublon(TabInit){
// retourne un tableau copie du tableau <TabInit> sans d'envetuel doublons
	
	NvTab= new Array();
	var q=0;
	var LnChaine= TabInit.length;
	 for(x=0;x<LnChaine;x++)
			{
			for(i=0;i<LnChaine;i++)
					{
					if(TabInit[x]==  TabInit[i] && x!=i) TabInit[i]='faux';
					}
			if(TabInit[x]!='faux'){  NvTab[q] = TabInit[x]; q++}
			}
	return NvTab;
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function is_array( mixed_var ) {
// *     example 1: is_array(['un', 'joli', 'tableau']);
// *     returns 1: true
// *     example 2: is_array('un joli tableau');
// *     returns 2: false
 
    return ( mixed_var instanceof Array );
}
//--------------------------------------------------------------------------------------------
//
//
//--------------------------------------------------------------------------------------------
// 
//--------------------------------------------------------------------------------------------
function in_array(tab, enr) {
//renvoie true si <enr> est dans le tableau <tab>
	
	var i=0;
	var trouver = false;
	while( (i<=tab.length) || (trouver == true) ) {
		
		if(calendar.tab_date_reserve[i] == enr) {
			
			return trouver = true;
		}
		i++;
	}
	return trouver; 
}
