// 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_field").hide();
    
    var valide = true;
    form_class.find('input, select, textarea').each(function(event){
	   //Validation d'un champ text
       if($(this).hasClass('req-string')){
          if($(this).attr('minlength') != ''){
              if($(this).attr('minlength') > $(this).val().length || $(this).val() == $(this).attr('title')){
				var id = $(this).attr('id');
				if(id.indexOf("_txt_")>-1)
					id = id.substr(0, id.indexOf("_txt_")+4)
                $('#error_'+id).show();
                valide = false;
              }              
          } else {
             if($(this).val() == '' || $(this).val() == $(this).attr('title')){
				var id = $(this).attr('id');
				if(id.indexOf("_txt_")>-1)
					id = id.substr(0, id.indexOf("_txt_")+4)
                $('#error_'+id).show();
                valide = false;
             }
          }
       }
       if($(this).hasClass('req-number')){
          if($(this).attr('minlength') != ''){
              if($(this).attr('minlength') > $(this).val().length || isNaN($(this).val())){
                $('#error_'+$(this).attr('id')).show();
                valide = false;
              }
          } else {
             alert($(this).val());
             if($(this).val() == '' || isNaN($(this).val())){
                $('#error_'+$(this).attr('id')).show();
                valide = false;
             }
          }
       }
       //Validation du champ select
       if($(this).hasClass('req-select')){
           if($(this).val() == '' || $(this).val() == "null"){
                $('#error_'+$(this).attr('id')).show();
                valide = false;
            }
       }
       //Validation du champ date
       if($(this).hasClass('req-date')){
            //diff = date_1.getTime()-date_2.getTime()
          /*  var today = new Date();
            var date_1 = new Date();
            var spl = $(this).val().split('-');
            date_1.setFullYear(spl[0],(parseInt(spl[1])-1),spl[2]);

            alert(date_1);
            alert(today);
            if(date_1>today){
               $("#error_"+$(this).attr('id')).show();
               valide = false;
            }*/
       }
       //Validation du courriel
       if($(this).hasClass('req-email')){
           if(!is_email($(this).val())){
               $('#error_'+$(this).attr('id')).show();
               valide = false;
           }
       }
	   
	   
	   //Validation du téléphone
       if($(this).hasClass('req-tel')){
           if(!is_tel($(this).val())){
               $('#error_'+$(this).attr('id')).show();
               valide = false;
           }
       }
	    //Validation du téléphone
       if($(this).hasClass('string-tel')){
		   if($(this).val() != "" && $(this).val() != $(this).attr('title')){
			   if(!is_tel($(this).val())){
				   $('#error_'+$(this).attr('id')).show();
				   valide = false;
			   }
		   }
       }
	   
	   //Validation du téléphone
       if($(this).hasClass('req-codepostal')){
           if(!is_postalcode($(this).val())){
               $('#error_'+$(this).attr('id')).show();
               valide = false;
           }
       }

       //Validation d'un check box
     if($(this).hasClass('req-check')){
         if (!($(this).is(':checked'))){
         $('#error_'+$(this).attr('id')).show();
         valide = false;
        }
     }

    });

    return valide;
}
