var stepTo = "";

function handleValidation(listParams)
{
	if (listParams != null)
	{
		if ("" == listParams.error)
		{
			if ( (listParams.erreurs != null) && (listParams.erreurs.length > 0) )
			{
				for (i=0;i<listParams.erreurs.length;i++)
				{
					alert(listParams.erreurs[i].label); // temp
				}
			}
			else // OK
			{
				goStep(stepTo);
			}
		}
		else
		{
			if (listParams.errorField != "")
			{
				document.getElementById("err"+listParams.errorField).style.display="block";
				document.getElementById("err"+listParams.errorField).innerHTML = listParams.error;
			}
			else
			{
				alert(listParams.error);
			}
			currentError = listParams.errorField;
		}
	}
}

function CheckStep(stepTo)
{
	var go = 0;
	var errors = new Array();

	switch(CurrentStep)
	{
		case 0: 
			go=1;
			break;
		case 1:
			var dateDebutEffet = getDateLiteral("date-prise-garantie");
			var achatVeh = getRadioValue("radioAchat");
			var achat = "dummy";
			var dateAss = "1234568790";
			var garanties = "dummy";
	
			if ("true" == achatVeh)
			{
				achat = getRadioValue("achat");
			}
			else
			{
				dateAss = getDateLiteral("echeance");
				garanties = document.getElementById('garantie').value;
			}
			var gta = getRadioValue("GTA");
			var CG = getRadioValue("radioCG");
			var anneeMEC = "dummy";
			if ("true" == CG)
			{
				anneeMEC = document.getElementById("anneecircuMines").value;
			}
			else
			{
				anneeMEC = document.getElementById('anneecircu').value;
			}
			if ( (infosDevis != null) && ("INFO" == infosDevis.typeInfo) )
			{
				cg = "ok";
				anneeMEC = "0000";
				gta = "ok";
			}
	        
			if (dateDebutEffet.length < 10) errors.push("Merci de bien vouloir choisir la date de d\u00e9but d'effet");
				else if (!isDateValid(dateDebutEffet)) errors.push("Merci de bien vouloir choisir une date de d\u00e9but d'effet valide");
	        if ("" == achatVeh) errors.push("Merci de bien vouloir indiquer si vous allez acheter ou si vous poss\u00e9dez le v\u00e9hicule");
	        if ("" == achat) errors.push("Merci de bien vouloir choisir le mode d'achat de votre v\u00e9hicule");
	        if (dateAss.length < 10) errors.push("Merci de bien vouloir choisir la date d'\u00e9ch\u00e9ance de votre dernier contrat d'assurance");
	        if ("" == garanties) errors.push("Merci de bien vouloir choisir le type de garanties de votre dernier contrat d'assurance");
	        if ("" == gta) errors.push("Merci de bien vouloir s\u00e9lectionner un v\u00e9hicule");
	        if (anneeMEC.length < 4) errors.push("Merci de bien vouloir choisir la date de mise en circulation de votre v\u00e9hicule");
			if ( (document.getElementById("cp-garage").value != "") && (!dijit.byId("cp-garage").isValid()) )
			{
				errors.push("Merci de bien vouloir saisir un code postal valide");
			}
			if ("" == document.getElementById('cp-garage').value) errors.push("Merci de bien vouloir saisir le code postal de votre garage");
			if ("" == document.getElementById('commune-garage').value) errors.push("Merci de bien vouloir choisir la ville de votre garage");
		break;
		
		case 2:
			var dateNaiss = getDateLiteral("date-naissance-conducteur");
			var datePermis = getDateLiteral("date-permis-conducteur");

			if (dateNaiss.length < 10) errors.push("Merci de bien vouloir choisir la date de naissance");
				else if (!isDateValid(dateNaiss)) errors.push("Merci de bien vouloir choisir une date de naissance valide");
			if (datePermis.length < 10) errors.push("Merci de bien vouloir choisir la date de permis");
				else if (!isDateValid(datePermis)) errors.push("Merci de bien vouloir choisir une date de permis valide");
			if (0 == document.getElementById("coef").value.length) errors.push("Merci de bien vouloir saisir votre coefficient de r\u00e9duction/majoration");
			if (0 == getRadioValue("remorque").length) errors.push("Merci de bien vouloir indiquer si vous tractez une remorque de plus de 750 Kg");
		break;
		
		case 3:
			if (0 == getRadioValue("annulation-permis").length) errors.push("Merci de bien vouloir indiquer si vous avez eu une annulation de permis");
			if (0 == getRadioValue("resiliation-assureur").length) errors.push("Merci de bien vouloir indiquer si vous avez �t� r�sili� par votre pr�c�dent assureur");
			if (0 == getRadioValue("alcoolemie").length) errors.push("Merci de bien vouloir indiquer si vous avez fait l'objet d'une sanction pour alcool�mie");
			if (0 == getRadioValue("stupefiants").length) errors.push("Merci de bien vouloir indiquer si vous avez fait l'objet d'une sanction pour prise de stup�fiants");

			/* S�curit� pour remont�e des donn�es corporel non-responsable */
			if ("" == document.getElementById("sinistres-corporels-non-responsable").value) errors.push("Merci de bien vouloir indiquer le nombre de vos sinistres corporels non responsables");

			if ("1" == getRadioValue("resiliation-assureur"))
			{
				var dateResil = getDateLiteral("date-resiliation");

				if (dateResil.length < 10) errors.push("Merci de bien vouloir choisir la date de r\u00e9siliation");
					else if (!isDateValid(dateResil)) errors.push("Merci de bien vouloir choisir une date de r\u00e9siliation valide");
/*
				if ( ("3" == document.getElementById("motif-resiliation").value) && ("" == getRadioValue("multirecidive")) )
					errors.push("Merci de bien vouloir indiquer si vous avez �t� r�sili� plusieurs fois pour non-paiement de prime");
*/
			}

			if ("1" == getRadioValue("alcoolemie"))
			{
				if ("" == document.getElementById("taux-alcoolemie").value) errors.push("Merci de bien vouloir indiquer votre taux d'alcool\u00e9mie");
				if (0 == getRadioValue("accident-alcoolemie").length) errors.push("Merci de bien vouloir indiquer si vous avez eu un accident");
				if (0 == getRadioValue("delit-fuite-alcoolemie").length) errors.push("Merci de bien vouloir indiquer si vous avez fait un d�lit de fuite");

				var dateAlcoo = getDateLiteral("date-controle-alcoolemie");

				if (dateAlcoo.length < 10) errors.push("Merci de bien vouloir choisir la date de contr\u00f4le d'alcool\u00e9mie");
					else if (!isDateValid(dateAlcoo)) errors.push("Merci de bien vouloir choisir une date de contr\u00f4le d'alcool\u00e9mie valide");
			}

			if ("1" == getRadioValue("stupefiants"))
			{
				if (0 == getRadioValue("accident-stupefiants").length) errors.push("Merci de bien vouloir indiquer si vous avez eu un accident");
				if (0 == getRadioValue("delit-fuite-stupefiants").length) errors.push("Merci de bien vouloir indiquer si vous avez fait un d�lit de fuite");

				var dateStups = getDateLiteral("date-controle-stupefiants");

				if (dateStups.length < 10) errors.push("Merci de bien vouloir choisir la date de contr\u00f4le de stup\u00e9fiants");
					else if (!isDateValid(dateStups)) errors.push("Merci de bien vouloir choisir une date de contr\u00f4le de stup\u00e9fiants valide");
			}
		break;
		
		case 4:
			var email = dijit.byId("email").getValue();
			var email2 = dijit.byId("email2").getValue();
			var mdp = dijit.byId("pass").getValue();
			var mdp2 = dijit.byId("pass2").getValue();

			if ("" == dijit.byId("nom").getValue()) errors.push("Merci de bien vouloir saisir votre nom");
			if ("" == dijit.byId("prenom").getValue()) errors.push("Merci de bien vouloir saisir votre pr\u00e9nom");
			if ("" == email) errors.push("Merci de bien vouloir saisir votre adresse e-mail");
			else if ("" == email2) errors.push("Merci de bien vouloir saisir la confirmation de votre adresse e-mail");
			else if (!dijit.byId("email").isValid()) errors.push("Merci de bien vouloir saisir une adresse e-mail valide");
			else if (email != email2) errors.push("Les deux adresses e-mail que vous avez saisies ne correspondent pas. Merci de bien vouloir v\u00e9rifier votre saisie.");

			var numTel = dijit.byId("telephone").getValue();

			if (document.getElementById("acceptePasMail").checked) 
			{
				errors = new Array();
				errors.push("Nous ne pouvons donner suite \u00e0 votre demande puisque le Bureau National des R\u00e9sili\u00e9s communique essentiellement via Internet pour faire ses propositions");
			}
			
			if (0 == mdp.length) errors.push("Merci de bien vouloir saisir un mot de passe");
			if (mdp != mdp2) errors.push("Les mots de passe que vous avez saisis ne sont pas identiques. Merci de bien vouloir v\u00e9rifier votre saisie.");
		break;
		   
      default: go=0;break;
	}

	if (0 == errors.length)
	{
		valideDevis(stepTo);
		go = 1;
	}
	else
	{
		var error = "";
		var i = 0;
		for(i=0; i<errors.length; i++) error = error + "- "+errors[i]+'\n';
		alert(error);
	}

 	return go;
}

function valideDevis(iStepTo)
{
	stepTo = iStepTo;
	doValideDevis();
}

function doValideDevis()
{
	if ( (1 == CurrentStep) || (2 == CurrentStep) || (3 == CurrentStep) )
	{
		var dateNaissance = "";
		var datePermis = "";
		var crm = "";
		var ancAss = "";
		var nbDelitFuite = 0;
		var nbSinistresCorporels = 0;
		var nbSinistresCorporelsResp = 0;
		var nbSinistres = 0;
		var tauxAlcoolemie = 0;
		var nbSinistresVolIncBG = 0;
		var stupefiants = "false";
		var motifResiliation = "";
		var recidiveResiliation = "false";
		var recidiveAlcoolemie = "false";
		var recidiveStupefiants = "false";
		var annulationPermis = "false";
		
		var dateResiliation = "";

		if (CurrentStep > 1)
		{
			dateNaissance = getDateLiteral("date-naissance-conducteur");
			datePermis = getDateLiteral("date-permis-conducteur");
			ancAss = document.getElementById("moisAssur").value;
			
			crm = document.getElementById("coef").value;
			if (crm > 9)
			{
				crm = "0.5";
			}

			if (CurrentStep > 2)
			{
				if ( ("0" != getRadioValue("alcoolemie")) && ("0" != getRadioValue("delit-fuite-alcoolemie")) )
				{
					nbDelitFuite++;
				}
				if ( ("0" != getRadioValue("stupefiants")) && ("0" != getRadioValue("delit-fuite-stupefiants")) )
				{
					nbDelitFuite++;					
				}

				if ( (document.getElementById("resiliationPanel")) && ("0" != getRadioValue("resiliation-assureur")) )
				{
					if ("2" == getRadioValue("resiliation-assureur"))
					{
						recidiveResiliation = "1";
					}
					dateResiliation = getDateLiteral("date-resiliation");
					motifResiliation = document.getElementById("motif-resiliation").value;
				}

				nbSinistresCorporelsResp = parseInt(document.getElementById("sinistres-corporels-responsable").value);
				nbSinistresCorporels = nbSinistresCorporelsResp+parseInt(document.getElementById("sinistres-corporels-non-responsable").value);
				nbSinistres = parseInt(document.getElementById("sinistres-materiels-responsable").value)+parseInt(document.getElementById("sinistres-materiels-non-responsable").value)+parseInt(document.getElementById("sinistres-corporels-responsable").value)+parseInt(document.getElementById("sinistres-corporels-non-responsable").value)+parseInt(document.getElementById("sinistres-vols-incendie").value)+parseInt(document.getElementById("sinistres-brisdeglace").value);
				nbSinistresVolIncBG = parseInt(document.getElementById("sinistres-vols-incendie").value)+parseInt(document.getElementById("sinistres-brisdeglace").value);
				if ( "0" != getRadioValue("alcoolemie") ) 
				{
					if ("2" == getRadioValue("alcoolemie"))
					{
						recidiveAlcoolemie = "1";
					}
					tauxAlcoolemie = document.getElementById("taux-alcoolemie").value;
				}
				stupefiants = getRadioValue("stupefiants");
				if ("2" == stupefiants)
				{
					recidiveStupefiants = "1";
					stupefiants = "1";
				}
				annulationPermis = getRadioValue("annulation-permis");
			}
		}
		
		var GTA = getRadioValue("GTA");

		// V\u00e9hicule non modifi\u00e9

		if ("" == GTA)
		{
			GTA = infosDevis.groupeClasseVersionVehicule;
			dateMEC = infosDevis.dateMEC;
		}

		Auto_malusse_ProxyValidationDevis.Execute(
							"bnr",
							String(CurrentStep-1),
							dateNaissance,
							datePermis,
							crm,
							ancAss,
							GTA,
							document.getElementById("cp-garage").value,
							nbSinistresCorporels,
							nbSinistres,
							tauxAlcoolemie,
							stupefiants,
							nbDelitFuite,
							dateResiliation,
							getDateLiteral("date-prise-garantie"),
							nbSinistresVolIncBG,
							motifResiliation,
							recidiveResiliation,
							recidiveAlcoolemie,
							recidiveStupefiants,
							annulationPermis,
							"",
							nbSinistresCorporelsResp,
							"D",
							handleValidation
		);
	}
	else
	{
		goStep(stepTo);
	}
}