var text_color = '#000000';
var back_color = '#f8f8f8';
var back_color_ff = 'rgb(248, 248, 248)';

function GetCacheValues(form){
	
	for(var i = 0; i < form.length; i++){
		
		try{
			
			if (form.elements[i].style.backgroundColor == back_color || 
				form.elements[i].style.backgroundColor == back_color_ff){
				
				form.elements[i].focus();
			}
		
		} catch(err) {
			
			// NE FAIT RIEN //
		}
	}
}

function format_date(objEvent, field){
	
	if (field.value.length == 1 && (objEvent.keyCode == 106 || objEvent.keyCode == 51)){
		
		today = new Date;
		numero = today.getDate();
		if (numero < 10)
			numero = "0" + numero;
			
		mois = today.getMonth();
		mois++;
		
		if (mois < 10)
			mois = "0" + mois;
		
		annee = today.getFullYear();
		
		field.value = numero + "." + mois + "." + annee;
	}
	
	if (field.value.length == 2 && objEvent.keyCode != 8){
		
		field.value += '.';
	}
	
	if (field.value.length == 5 && objEvent.keyCode != 8){
		
		field.value += '.';
	}
}

function format_time(objEvent, field){
	
	if (field.value.length == 1 && (objEvent.keyCode == 106 || objEvent.keyCode == 51)){
		
		today = new Date;
		hh = today.getHours();
		if (hh < 10)
			hh = "0" + hh;
			
		ii = today.getMinutes();
		if (ii < 10)
			ii = "0" + ii;
			
		field.value = hh + ":" + ii;
	}
	
	if (field.value.length == 2 && objEvent.keyCode != 8){
			
		field.value += ':';
	}
}

function ValidForm(form){
	
	GetCacheValues(form);

	var valid_bool = true;
	var fields = "";
	
	for(var i = 0; i < form.length; i++){
		
		if (form.elements[i].style.backgroundColor == back_color || 
			form.elements[i].style.backgroundColor == back_color_ff){
			
			valid_bool = false;
			
			if (form.elements[i].id != "" && form.elements[i].id){
					
				fields += "- " + form.elements[i].id + "\n";
			} else {
				
				fields += "- " + form.elements[i].name + "\n";
			}
		}
	}
	
	if (!valid_bool){
		
		alert("Vous devez remplir le(s) champ(s) suivant(s) :" + "\n" + fields);
	}
	
	return valid_bool;
}

function valid_format(field, type, obligatory){
	
	field.style.background = "#FFFFFF";
	field.style.color = "#000000";
	
	if (field.value != '' && field.value != null){
		
		switch (type){
		
			case 'text':
				// Rajouter option texte
				break;
				
			case 'num':
				if (isNaN(field.value)){
					
					field.style.backgroundColor = back_color;
					field.style.color = text_color;
				}
				break;
				
			case 'date':
				if (!valid_date(field.value)){
					
					field.style.backgroundColor = back_color;
					field.style.color = text_color;
				}
				break;
			
			case 'time':
				if (!valid_time(field.value)){
					
					field.style.backgroundColor = back_color;
					field.style.color = text_color;
				}
				break;
			
			case 'mail':
				if (!valid_mail(field.value)){
					
					field.style.backgroundColor = back_color;
					field.style.color = text_color;
				}
				break;
				
			default:
				alert('Type inconnu');
				break;
		}
	}
	
	if ((obligatory == 1 ||  obligatory == true) && (field.value == '' || field.value == null)){
		
		field.style.backgroundColor = back_color;
		field.style.color = text_color;
	}
}

function valid_date(date){
	
	var tab = date.split(".");
	var j = tab[0];
	var m = tab[1];
	var a = tab[2];
	
	if (tab.length != 3){
		
		return false;
	}
	
	if ((isNaN(j)) || (j < 01) || (j > 31)) {
	
		return false;
	}
	
	if ((isNaN(m)) || (m < 01) || (m > 12)) {
	
		return false;
	}
	
	if (isNaN(a)) {
	
		return false;
	}
	
	return true;
}

function valid_time(time){
	
	var tab = time.split(":");
	var h = tab[0];
	var i = tab[1];
	
	if (tab.length != 2){
		
		return false;
	}
	
	if ((isNaN(h)) || (h < 00) || (h > 23)) {
	
		return false;
	}
	
	if ((isNaN(i)) || (i < 00) || (i > 59)) {
	
		return false;
	}
	
	return true;
}

function valid_mail(value){
	
	var place = value.indexOf("@", 1);
	var point = value.indexOf(".", place + 1);
	
	if ((place > -1) && (value.length > 2) && (point > 1)){
		
		return true;
	} else {
		
		return false;
	}
}
