// JavaScript Document

	function is_int(s){
		var i;
		
		if (is_empty(s))
		if (is_int.arguments.length == 1) return 0;
		else return (is_int.arguments[1] == true);
		
		for (i = 0; i < s.length; i++){
			var c = s.charAt(i);
			if (!is_digit(c) && (i=0 && c!="-")) return false;
		}
		
		return true;
	}
	
	function is_empty(s){
		return ((s == null) || (s.length == 0))
	}
	
	function is_digit (c){
		return ((c >= "0") && (c <= "9"))
	}
	
	function format_number(number){
		return number.toFixed(2);
	}
	
	function remove_all_non_digits(str) {
		return str.replace(/[^\d]/g, "");
	}
	
	function is_currency(s){
		var oRegExp = /^-?\d{1,6}(\.\d{1,2})?$/;
		return oRegExp.test(s);
	}
	
	function is_email(myEmail) {
		return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test(myEmail));
	}
	
	function is_tel(tel) {
		return (/^([0-9]){3}-([0-9]){3}-([0-9]){4}$/.test(tel));
	}
	
	function is_postalcode(postalcode) {
		return (/^([a-zA-Z]){1}([0-9]){1}([a-zA-Z]){1}\s{0,1}([0-9]){1}([a-zA-Z]){1}([0-9]){1}$/.test(postalcode));
	}
	
	function is_zipcode(zipcode) {
		return (/^([0-9]){5}$/.test(zipcode));
	}
	
	function is_url(url){ 
		return (/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(url)); 
	}
	
	function is_time(time){
		return (/^(2[0-3])|[01][0-9]:[0-5][0-9]$/.test(time));
	}
	
	function is_date(jour, mois, an){
		var nbJour
	
		switch (mois){
			case 1:
				nbJour=31 ;
				break;
			case 2:
				if(an % 4 == 0){
					nbJour=29;
					if(an % 100 == 0){
						if(an % 400){
							nbJour=29;
						}else{
							nbJour=28;
						}
					}
				}else{
					nbJour=28;
				}
				break;
			case 3:
				nbJour=31;
				break;
			case 4:
				nbJour=30;
				break;
			case 5:
				nbJour=31;
				break;
			case 6:
				nbJour=30;
				break;
			case 7:
				nbJour=31;
				break;
			case 8:
				nbJour=31;
				break;
			case 9:
				nbJour=30;
				break;
			case 10:
				nbJour=31;
				break;
			case 11:
				nbJour=30;
				break;
			case 12:
				nbJour=31;
				break;
			default:
				return false;
		}
		
		if (jour > nbJour)
			return false;
			
		return true;
	}
	
	function left(str, n){
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}
	
	function right(str, n){
		if (n <= 0)
		   return "";
		else if (n > String(str).length)
		   return str;
		else {
		   var iLen = String(str).length;
		   return String(str).substring(iLen, iLen - n);
		}
	}
	
	function trim(myString) { 
		return myString.replace(/^\s+/g,'').replace(/\s+$/g,'') 
	}
	
	function rnd(lowerbound, upperbound) {
		//Al�atoire de lowerbound � upperbound
		return parseInt((upperbound - lowerbound + 1) * Math.random( ) + lowerbound);
	}
	
	function is_password(str){
		var oRegExp = /[\/+\n'&\s;\\"%]/;
		return !oRegExp.test(str);
	}
	
	
	function form_validation(form_class){
		$(".error_msg").hide();
		var valide = true;
		form_class.find('input, select').each(function(event){
			
		   //Validation d'un champ text
		   if($(this).hasClass('req-string')){
			  if($(this).attr('minlength') != ''){
				  if(parseInt($(this).attr('minlength')) > $(this).val().length){
					var id = $(this).attr('id');
					if(id.indexOf("_txt_")>-1)
						id = id.substr(0, id.indexOf("_txt_")+4)
						$('#error_'+id).fadeIn(500);
						valide = false;
				  }else{
						$('#error_'+id).hide();
				  }          
			  } else {
				 if($(this).val() == ''){
					var id = $(this).attr('id');
					if(id.indexOf("_txt_")>-1){
						id = id.substr(0, id.indexOf("_txt_")+4)}
					$('#error_'+id).fadeIn(500);
					valide = false;
				 }else{
				  	$('#error_'+id).hide();
				 } 
			  }
		   }
		   
		   if($(this).hasClass('req-number')){ 
			  if($(this).attr('minlength') != ''){
				  if(parseInt($(this).attr('minlength')) > $(this).val().length && !isNaN($(this).val())){					
					$('#error_'+$(this).attr('id')).fadeIn(500);
					valide = false;
				  }
			  } else {
				 if($(this).val() == '' || !isNaN($(this).val())){
					$('#error_'+$(this).attr('id')).fadeIn(500);
					valide = false;
				 }
			  }
		   }
			//Validation du champ select
		   if($(this).hasClass('req-select')){
				if($(this).val() == '' || $(this).val() == "null"){
					$('#error_'+$(this).attr('id')).fadeIn(500);
					valide = false;
				}
		   }
		   
		   //Validation du champ date
		   if($(this).hasClass('req-date')){
	
		   }
		   
		   //Validation du courriel
		   if($(this).hasClass('req-email')){
			   if(!is_email($(this).val())){
				   $('#error_'+$(this).attr('id')).fadeIn(500);
				   valide = false;
			   }
		   }
		   
		   //Validation d'un check box
		   if($(this).hasClass('req-check')){
				if (!($(this).is(':checked'))){
					$('#error_'+$(this).attr('id')).fadeIn(500);
					valide = false;
				}
		   }
		   
		   //Validation d'un check box
		   if($(this).hasClass('req-radio')){
			   var name = $(this).attr("name");
			   var check = false;
			   
			   $('input[name="question"]').each(function(){
					if ($(this).is(':checked'))	
						check = true;
				})
				if (!check){
					$('#error_'+$(this).attr('name')).fadeIn(500);
					valide = false;
				}
		   }
		   
		   
		   
		   if ($("#qstmath").val() != ""){
			   //console.log($("#qstmath").val());
			if(!parseInt($("#qstmath").val())){
				$('#error_'+$(this).attr('id')).fadeIn(500);
				valide = false;
			}else{
				//vérifier le résultat
				var a_number = new Array();
				var a_sign = new Array();

				var str_number_1 = $("#math_number_1").html();
				var str_number_2 = $("#math_number_2").html();
				var str_number_3 = $("#math_number_3").html();
				a_sign[0] = $("#math_sign_1").html();

				a_number[0] = convertStringToNumber(str_number_1, lang);
				a_number[1] = convertStringToNumber(str_number_2, lang);
				a_number[2] = convertStringToNumber(str_number_3, lang);
				
				if(parseInt($("#qstmath").val()) == getResult(a_number, a_sign)){
					$("#qstmath_good").val("Oui");
				}else{
					$("#qstmath_good").val("Non");
				}
				/*//console.log(getResult(a_number, a_sign));
				if(parseInt($("#qstmath").val()) != getResult(a_number, a_sign)){
					//alert($("#qstmath").val() + " != "+getResult(a_number, a_sign))
					$('#error_qstmath').fadeIn(500);
					valide = false;
				}*/

			}
		  }else{
			  $('#error_qstmath').fadeIn(500);
			  valide = false;
		  }
	
		});
	
		return valide;
	}
	
	
function convertStringToNumber(string, lang){
				var a_string_fr = new Array("zéro","un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix")
				var a_string_en = new Array("zero","one","two","tree","four","five","six","seven","eight","nine","ten")
				
				var number = NaN; 
		
				switch(lang){
				case "fr":
					number = array_search(string,a_string_fr)
					break;
				default:
					number = array_search(string,a_string_en)
					break;
				}
		
				return number;
		
			}
			
			function array_search(string, array){
				for(var a=0; a<array.length; a++){
					if(array[a] == string){
						return a;
						break;
					}
				}
			}
		   
		   function getResult(numbers, signs){
				var resultat = 0;
				resultat = numbers[1] * numbers[2] + numbers[0];
				return resultat;
			}
