﻿function checkField(obj,type,lgmin,lgmax) {
	lgmin = lgmin ? lgmin : 0;

	switch (type) {
		case "txt":
			ok =  obj.value.length>=lgmin && (lgmax ? obj.value.length<=lgmax : true);
		break;
			
		case "email":
			ok = testMail(obj.value);
		break;
			 
		case "numeric":
			ok = isNumeric(obj.value) && obj.value.length>=lgmin && (lgmax ? obj.value.length<=lgmax : true);
		break;

		case "date":
			ok = testDate(obj.value);
		break;

		case "select_list":
			ok = obj.selectedIndex ? true : false;
		break;

		case "chkbox":
			ok = obj.checked ? true : false;
		break;
}
	
	
	if (!ok) {
		displayKO(obj);
	}
	else {
		displayOK(obj);
	}
	return ok;
}

function displayOK(obj) {
	$$('label').each(function(item) {
						if(item.htmlFor == obj.id) my_label = item;
					 }
	);

	my_label.setStyle('color', '');
}

function displayKO(obj) {
	$$('label').each(function(item) {
						if(item.htmlFor == obj.id) my_label = item;
					 }
	);

	my_label.setStyle('color', '#bc1040');
}


function checkForm(service) {
	switch (service) {
		case "essai":
			OK = true;
			OK = checkField($('code'),'select_list') && OK;
			OK = checkField($('civilite'),'select_list') && OK;
			OK = checkField($('prenom'),'txt',2) && OK;
			OK = checkField($('nom'),'txt',2) && OK;
			OK = checkField($('email'),'email') && OK;
			OK = checkField($('rue'),'txt',2) && OK;
			OK = checkField($('ville'),'txt',2) && OK;
			OK = checkField($('postcode'),'txt',5,5) && OK;
			OK = checkField($('telephone'),'numeric',10,10) && OK;
			OK = checkField($('expected-replacement'),'select_list') && OK;
			OK = checkField($('department'),'select_list') && OK;
			OK = checkField($('dealer'),'select_list') && OK;
		break;
		case "brochure":
			OK = true;
			OK = checkField($('code'),'select_list') && OK;
			OK = checkField($('civilite'),'select_list') && OK;
			OK = checkField($('prenom'),'txt',2) && OK;
			OK = checkField($('nom'),'txt',2) && OK;
			OK = checkField($('email'),'email') && OK;
			OK = checkField($('expected-replacement'),'select_list') && OK;
		break;
	}

	if (OK) {
	$('right').style.display = "none";
	$('confirm').style.display = "block";
	load_service(service);
	}
	else
		alert('Merci de renseigner\nles champs obligatoires');
//	return false;
}

function testMail(lemail) {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		if (filter.test(lemail))
			return true;
		else
			return false;
}

function isNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++){
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	return IsNumber;
} 

function testDate(d) {
  var amin=1970; // année mini
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(d.substring(0,2));
  var m=(d.substring(3,5));
  var a=(d.substring(6));
  var ok=1;
  if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
	 ok=0;
  }
  if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
	 ok=0;
  }
  if ( ((isNaN(a))||(a<amin)) && (ok==1) ) {
	 ok=0;
  }
  if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
	 ok=0;
  }
  if (ok==1) {
	 var d2=new Date(a,m-1,j);
	 j2=d2.getDate();
	 m2=d2.getMonth()+1;
	 a2=d2.getFullYear();
	 if (a2<=100) {a2=1900+a2}
	 if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
	ok=0;
	 }
  }
  return ok;
}





























