// JavaScript Document
function isInteger (s){
	var i;
	
	if (isEmpty(s))
	if (isInteger.arguments.length == 1) return 0;
	else return (isInteger.arguments[1] == true);
	
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	
	return true;
}

function isEmpty(s){
	return ((s == null) || (s.length == 0))
}

function isDigit (c){
	return ((c >= "0") && (c <= "9"))
}

function isCurrency(s){
	var oRegExp = /^-?\d{1,6}(\.\d{2})?$/;
	return oRegExp.test(s);
}

function isEmail(email) {
	var oRegExp = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
	return oRegExp.test(email);
}

function isTel(email) {
	var oRegExp = /^([0-9]){3}-([0-9]){3}-([0-9]){4}$/;
	return oRegExp.test(email);
}

function isCP(email) {
	var oRegExp = /^([a-zA-Z]){1}([0-9]){1}([a-zA-Z]){1}\s{0,1}([0-9]){1}([a-zA-Z]){1}([0-9]){1}$/;
	return oRegExp.test(email);
}

function FormatNumber(number){
        return number.toFixed(2);
}


function isValidDate(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 isValidHour(hour, minute){

	var int_hour = parseFloat(hour)
	var int_minute = parseFloat(minute)
	
	if (int_hour <= 23 && int_hour >= 0 && int_minute <= 59 && int_minute >= 0 )
		return true;
		
	return false;
}




function currencyFormat(fld, milSep, decSep, e) {
  var sep = 0;
  var key = '';
  var i = j = 0;
  var len = len2 = 0;
  var strCheck = '0123456789';
  var aux = aux2 = '';
  var whichCode = (window.Event) ? e.which : e.keyCode;

  if (whichCode == 13) return true;  // Enter
  if (whichCode == 8) return true;  // Delete
  key = String.fromCharCode(whichCode);  // Get key value from key code
  if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
  len = fld.value.length;
  for(i = 0; i < len; i++)
  if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
  aux = '';
  for(; i < len; i++)
  if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
  aux += key;
  len = aux.length;
  if (len == 0) fld.value = '';
  if (len == 1) fld.value = '0'+ decSep + '0' + aux;
  if (len == 2) fld.value = '0'+ decSep + aux;
  if (len > 2) {
    aux2 = '';
    for (j = 0, i = len - 3; i >= 0; i--) {
      if (j == 3) {
        aux2 += milSep;
        j = 0;
      }
      aux2 += aux.charAt(i);
      j++;
    }
    fld.value = '';
    len2 = aux2.length;
    for (i = len2 - 1; i >= 0; i--)
    fld.value += aux2.charAt(i);
    fld.value += decSep + aux.substr(len - 2, len);
  }
  return false;
}



var a_error = Array();
	
	
	function affecterErreur(id_label,id_field, msg_error){
		a_error.push(Array(id_label,msg_error, id_field))
	}
	
	function initError(){
		for (var a=0; a<a_error.length; a++){
			if(document.getElementById(a_error[a][0]))
				document.getElementById(a_error[a][0]).style.color = "";
			if(typeof a_error[a][2] == "string"){
				if (document.getElementById(a_error[a][2]))
					document.getElementById(a_error[a][2]).style.backgroundColor = "#fff";
			}else{
				for(var b=0; b<a_error[a][2].length; b++){
					if (document.getElementById(a_error[a][2][b]))
						document.getElementById(a_error[a][2][b]).style.backgroundColor = "#fff";
				}
			}
		}
		a_error = Array();
		document.getElementById("div_error").innerHTML = "";
	}
	
	function traiterErreur(){
		str_message = "";
		for (var a=0; a<a_error.length; a++){
			if(document.getElementById(a_error[a][0]))
				document.getElementById(a_error[a][0]).style.color = "#ff0000";
			if(typeof a_error[a][2] == "string"){
				if (document.getElementById(a_error[a][2]))
					document.getElementById(a_error[a][2]).style.backgroundColor = "#f1d7d7";
			}else{
				for(var b=0; b<a_error[a][2].length; b++){
					if (document.getElementById(a_error[a][2][b]))
						document.getElementById(a_error[a][2][b]).style.backgroundColor = "#f1d7d7";
				}
			}
			str_message += '<li>'+a_error[a][1]+'</li>';
		}
		if (a_error.length > 0){
			str_message = '<div class="title"><span style="color:#00D1C9">&raquo;</span> LISTE DES ERREURS</div>'+str_message
		}
		document.getElementById("div_error").innerHTML = str_message;
		document.getElementById("div_error").style.display = "block";
	}
	
	
	
		function onBlurDateField(target, type){
		var num = parseFloat(target.value);
		var invalid = false;
		if(isNaN(num)){
			invalid = true;
		}else{
			switch (type){
			case "jour":
				if(num<1 || num>31){
					invalid = true;
				}
				break;
	
			case "mois":
				if(num<1 || num>12){
					invalid = true;
				}
				break;
				
			case "an":
				var today = new Date();
				if(num<1900 || num>today.getFullYear()+5){
					invalid = true;
				}
				break;
			}
		}
		
		
		if(invalid){
			switch (type){
			case "jour":
				target.value = "JJ";
				break;
	
			case "mois":
				target.value = "MM";
				break;
				
			case "an":
				target.value = "AAAA";
				break;
			}
		}
	}
	
	function onBlurNumberField(target){
		target.value = target.value.replace(/\,/g,'.'); // 
		if (isNaN(parseFloat(target.value)))
			target.value = "";
		else
			target.value = parseFloat(target.value);
	}
	
	
	function onBlurCurencyField(target){
		onBlurNumberField(target);
		
		if (target.value != ""){
			num = parseFloat(target.value);
			target.value = num.toFixed(2);
		}
	}
	
	
	
	function onBlurHourField(target, type){
		var num = parseFloat(target.value);
		var invalid = false;
		if(isNaN(num)){
			invalid = true;
		}else{
			switch (type){
			case "hour":
				if(num<0 || num>23){
					invalid = true;
				}
				break;
	
			case "minute":
				if(num<0 || num>59){
					invalid = true;
				}
				break;
				
			}
		}
		
		
		if(invalid){
			switch (type){
			case "hour":
				target.value = "HH";
				break;
	
			case "minute":
				target.value = "MM";
				break;
				
			}
		}
	}
	

