function formSubmit(LG) {

var d=document.Inscription;

//Infos durée Séjour
var m="La zone 'Les informations sur la durée de votre séjour sont incomplètes";
if (d.jourDateE.value+''+d.moisDateE.value+''+d.anneeDateE.value == "" ) return formError('jourDateE',m );
if (!isDate(d.jourDateE.value+'/'+d.moisDateE.value+'/'+d.anneeDateE.value)) return formError('jourDateE',m + ' (date invalide)');
if (d.DureeS.value.length<1) return formError('DureeS',m);
if (d.TypeS[0].checked==false && d.TypeS[1].checked==false && d.TypeS[2].checked==false) return formError('TypeS[0]',m) ;
if (d.TypeS[2].checked==true && d.TsAutre.value.length<1) return formError('TsAutre',m) ;

//Infos Demandeur
var m="La zone 'Coordonnées personnelle' est incomplète";

if (d.Nom.value.length<2) return formError('Nom',m);
if (d.Prenom.value.length<2) return formError('Prenom',m); 
if (d.Sexe[0].checked==false && d.Sexe[1].checked==false) return formError('Sexe[0]',m) ;
if (d.Adresse_1.value.length<1) return formError('Adresse_1',m) ;
if (d.CP.value.length<1) return formError('CP',m) ;
if (d.Ville.value.length<1) return formError('Ville',m) ;
if (d.Pays.value.length<1) return formError('Pays',m) ;
if (d.T_perso.value.length<1) return formError('T_perso',m);
if (d.Email.value.length<1) return formError('Email',m);
if ( !d.Email.value.indexOf("@")>1 || d.Email.value.lastIndexOf(".") == d.Email.value.length -1 || d.Email.value.lastIndexOf(".") < d.Email.value.lastIndexOf("@")) return formError('Email',m);

if (d.Bjour.value+''+d.Bmois.value+''+d.Bannee.value == "" ) return formError('Bjour',m );
if (!isDate(d.Bjour.value+'/'+d.Bmois.value+'/'+d.Bannee.value)) return formError('Bjour',m + ' (date invalide)');
if (d.Nation.value.length<1) return formError('Nation',m) ;

//Infos Logement
var m="La zone 'Logement' est incomplète";
/*if (d.Hotel[0].checked==false && d.Hotel[1].checked==false) return formError('Hotel[0]',m) ;
if (d.Hotel[0].checked==true && !(d.EtaJ.value>=1 && d.EtaJ.value<=31)) return formError('EtaJ',m) ;
if (d.Hotel[0].checked==true && !(d.EtaM.value>=1 && d.EtaM.value<=12)) return formError('EtaM',m) ;
if (d.Hotel[0].checked==true && !(d.EtaA.value>=2004 && d.EtaA.value<=2050)) return formError('EtaA',m) ;
*/


if (d.Ljour.value+''+d.Lmois.value+''+d.Lannee.value != "" ) {
if (!isDate(d.Ljour.value+'/'+d.Lmois.value+'/'+d.Lannee.value)) return formError('Ljour',m + ' (date invalide)');
}
/*
if (d.Malade[0].checked==false && d.Chambre[1].checked==false) return formError('Chambre[0]',m) ;
if (d.DemPens[0].checked==false && d.DemPens[1].checked==false) return formError('DemPens[0]',m) ;
if (d.Studio[0].checked==false && d.Studio[1].checked==false) return formError('Studio[0]',m) ;
if (d.Malade.value.length<1) return formError('Malade',m) ;
if (d.Fumeur[0].checked==false && d.Fumeur[1].checked==false) return formError('Fumeur[0]',m) ;
*/



//Infos Formation
var m="La zone 'Formation' est incomplète";
//if (d.Forma[0].checked==false && d.Forma[1].checked==false && d.Forma[2].checked==false && d.Forma2.value.length<1) return formError('Forma[0]',m) ;
if (d.DureeF.value.length<1) return formError('DureeF',m) ;
//if (d.Apprenti.value.length<1) return formError('Apprenti',m) ;
if (d.Francais.value.length<1) return formError('Francais',m) ;

//Infos Attente
var m="La zone 'Attente' est incomplète";
if (d.Libre.value.length<1) return formError('Libre',m) ;

//Infos Attente
var m="La zone 'Etudiants mineurs' est incomplète";

if (d.mineur.checked){
	if (d.Libre.value.mere<1) return formError('mere',m) ;
	if (d.Libre.value.pere<1) return formError('pere',m) ;
}else{
	if (mineur(d.Bannee.value,d.Bmois.value,d.Bjour.value,d.anneeDateE.value,d.moisDateE.value,d.jourDateE.value)) return formError('pere',m) ;
}
//Validation
d.submit();
}

function formError(f,m) {
alert(m);
eval('document.Inscription.'+f+'.focus()');
return false;
}



function annuler(nom,nombre){
	for(i=0;i<nombre;i++){
		eval("document.Inscription." + nom)[i].checked=false
	}
}


/*********************************************************
* DATES FONCTIONS
**********************************************************/



function enhanceDate(input) {
	try {
		var tmp = input.value;
		var len = tmp.length;
		var dat = "";
		var sep = 0;
		var abc = 0;

		if (verboseDate(input) == -1) {
			for (var i = 0; i < tmp.length; i++) {
				var c = tmp.substr(i, 1);
				if (c == "/") {
					sep++;
					dat += "/";
				} else if (c == "-") {
					sep++;
					dat += "/";
				} else if (c == ".") {
					sep++;
					dat += "/";
				} else if (c == " ") {
					sep++;
					dat += "/";
				} else if (c < "0") {
					abc++;
				} else if (c > "9") {
					abc++;
				} else {
					dat += c;
				}
			}
			if (abc == 0) {
				len = dat.length;
				var year = new Date().getFullYear();
				var month = new Date().getMonth()+1;
				if (month < 10) month = "0"+month;
				if ((len == 2) && (sep == 0)) {
				// Suppose DD
					dat = dat.substr(0, 2) + "/" + month + "/" + year.toString();
				}else if ((len == 4) && (sep == 0)) {
					// Suppose DDMM
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + year.toString();
				} else if ((len == 5) && (sep == 1)) {
					// Suppose DD/MM
					dat = dat.substr(0, 5) + "/" + year.toString();
				} else if ((len == 6) && (sep == 0)) {
					// Suppose DDMMYY
					if (dat.substr(4, 2) >= "20") {
						year = year - 100;
					}
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + year.toString().substr(0, 2) + dat.substr(4, 2);
				} else if ((len == 8) && (sep == 2)) {
					// Suppose DD/MM/YY
					if (dat.substr(6, 2) >= "20") {
						year = year - 100;
					}
					dat = dat.substr(0, 6) + year.toString().substr(0, 2) + dat.substr(6, 2);
				} else if ((len == 8) && (sep == 0)) {
					// Suppose DDMMCCYY
					dat = dat.substr(0, 2) + "/" + dat.substr(2, 2) + "/" + dat.substr(4, 4);
				}
				input.value = dat;
			}
		}
	}
	catch (e) {}
	if ( !isDate(input.value)){
 		input.value ="";
	}
}

function verboseDate(input) {
	var tmp = input.value.toLowerCase();
	var ret = 0;

	if (tmp.indexOf("dem") != -1) {
		input.value = formatDate(addDay(new Date(),1));
	} else if (tmp.indexOf("hier") != -1) {
		input.value = formatDate(addDay(new Date(),-1));
	} else if (tmp.indexOf("auj") != -1) {
		input.value = formatDate(new Date());
	} else {
		var re = new RegExp("(dim|lun|mar|mer|jeu|ven|sam)([a-z]{0,})($|\\+{1,3}|-{1,3})");
		var rs = re.exec(tmp);

		if (rs != null) {
			var dt = new Date();
			var day = -1;

			switch(rs[1].substr(0,3)) {
				case "lun": day = 1; break;
				case "mar": day = 2; break;	
				case "mer": day = 3; break;	
				case "jeu": day = 4; break;	
				case "ven": day = 5; break;	
				case "sam": day = 6; break;	
				case "dim": day = 7; break;
			}
			if(rs[3].indexOf("+") != -1) {
				day = day + 7 * rs[3].length;
			} else if (rs[3].indexOf("-") != -1) {
				day = day - 7 * rs[3].length;
			}
			input.value = formatDate(addDay(dt, day - dt.getDay()));
		} else {
			ret = -1;
		}
	}
	return ret;
}

function formatDate(obj) {
  var dt = leftPad(obj.getDate().toString(), 2, "0");
	dt += "/" + leftPad((obj.getMonth()+1).toString(), 2, "0");
  dt += "/" + obj.getFullYear().toString();
	return dt;
}

function addDay(objDate, jour) {
	objDate.setTime(objDate.getTime() + (jour * 86400000));
	return objDate;
}

function leftPad(str, len, car) {
	while(str.length < len) {
		str = car + str;
	}
	return str;
}


function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}
function jourparmois(mois,an) {
	// mois de 0 à 11
	var tabjour = new Array();
	tabjour[0] = 31;
	tabjour[1] = 28;
	tabjour[2] = 31;
	tabjour[3] = 30;
	tabjour[4] = 31;
	tabjour[5] = 30;
	tabjour[6] = 31;
	tabjour[7] = 31;
	tabjour[9] = 30;
	tabjour[10] = 31;
	tabjour[11] = 30;
	tabjour[12] = 31;
	
	jj = (mois+1);
	if (mois == 1){
		jj = daysInFebruary(year);
	}else{
		jj = tabjour[mois];
	}
   return jj;
}


function isDate(dtStr){

	 
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
	//	alert("The date format should be : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
	//	alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	//	alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	//	alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	//	alert("Please enter a valid date")
		return false
	}
return true
}

function mineur(ban,bmois,bjour,an, mois, jour){

	if (an - ban < 18) {
		return true;
		//mineur
	}else{
		if (an - ban > 18){
			return false;
			//majeur
		}else{
			//a  18 ans
			if (mois > bmois ){
				return false;
				//deja eu son anniversaire donc majeur
			}else{
				if (mois < bmois ){
					return true;
					//pas encore eu son anniv mineur
				}else{
					// mois d'anniversaire
					if (jour >= bjour){
						return false;
						//deja eu son anniversaire donc majeur
					}else{
						return true;
						//mineur
					}
				}			
			}
		}	
	}
}


