function get(id){
	return document.getElementById(id);
}


function checkContactForm(){
	var err = '';

	if(!get('gender_m').checked && !get('gender_mlle').checked && !get('gender_mme').checked){
		err+="La civilité est obligatoire.\n";
	}

	if(!get('name').value) err+= "Le nom est obligatoire.\n";

	if(!get('phone_input').value) err+= "Le numéro de téléphone est obligatoire.\n";

	if(get('email_input').value && !isEmail(get('email_input').value)){
		err+= "Le champs \"Email\" n'est pas correctement renseigné.\n";
	}

	if(!get('object').selectedIndex) err+= "L'objet est obligatoire.\n";

	if(!get('message').value) err+= "Le message est obligatoire.\n";

	if(err) alert(err);
	else get('contact_form').submit();
}

function createObject(type){
	var select = get('object');

	var size = select.length;
	for(i = 0 ; i < size ; i++){
		select.remove(0);
	}

	var client = new Array(
	'-- Choisissez un objet --',
	'Remarque générale',
	'Attestation préfecture',
	'Relevé d\'informations',
	'Duplicata carte verte',
	'Information tarif',
	'Demande de  devis',
	'Renseignement sur un sinistre'
	);

	var no_client = new Array('-- Choisissez un objet --','Remarque générale','Information tarif','Demande de  devis');

	if(type == 'client'){
		list_array = client;
	}else{
		list_array = no_client;
	}

	for(i = 0 ; i < list_array.length ; i++){
		y=document.createElement('option');
		y.text  = list_array[i];
		y.value = list_array[i];
		try{
			select.add(y,null); // standards compliant
		}catch(ex){
			select.add(y); // IE only
		}
	}
}


function nextDevisForm(){
	var err = '';
	var perso = '';
	var car = '';
	var prefix = '     -> ';

	if(!get('type').selectedIndex)
	perso+= prefix+"Type de structure\n";
	else if(get('type').selectedIndex == 2 && !get('raison').value)
	perso+=  prefix+"Raison sociale\n";

	if(!get('gender_m').checked && !get('gender_mlle').checked && !get('gender_mme').checked){
		perso+=  prefix+"Civilité\n";
	}

	if(!get('name').value) perso+=  prefix+"Nom\n";

	if(!get('permis_month').selectedIndex || !get('permis_year').selectedIndex){
		perso+= prefix+"Date du permis\n";
	}

	if(!get('phone_input').value) perso+=  prefix+"Numéro de téléphone\n";

        if(!get('city').value) perso+=  prefix+"Ville\n";

        if(get('email_input').value && !isEmail(get('email_input').value)){
		perso+=  prefix+"Email incorrect\n";
	}

	if(!get('zip').value) perso+= prefix +"Code postal\n";
	else if(!isNumeric(get('zip').value) || get('zip').value.length != 5){
		perso += prefix + "Code postal incorrect (5 chiffres)\n";
	}

	if(perso){
		perso = "Informations personnelles\n" + perso + "\n";
		err += perso;
	}


	if(!get('car_mark').value) car+= prefix +"Marque\n";
	if(!get('car_name').value) car+= prefix +"Appellation commerciale\n";
	if(!get('car_cv').value) car+= prefix +"CV fiscaux\n";
	if(!get('titu').value) car+= prefix +"Titulaire de la carte grise\n";
	if(!get('car_nrj').value) car+= prefix +"Energie\n";
	if(!get('car_year').value) car+= prefix +"Année du véhicule\n";

	if(car){
		car = "Informations véhicule\n" + car + "\n";
		err += car;
	}

	if(err) alert("Certains champs obligatoires du formulaire ne sont pas remplis ou sont incorrects : \n\n" + err);
	else{
		get('step_1').style.visibility = "hidden";
		get('step_2').style.visibility = "visible";
	}
}

function checkDevisForm(){
	var err = '';
	var prefix = '     -> ';


	var histo = '';
	var accident = '';

	if(!get('offer_1').checked && !get('offer_2').checked && !get('offer_3').checked){
		err+=  "Vous devez choisir une offre d'assurance.\n\n";
	}

	if(!get('histo_0_yes').checked && !get('histo_0_no').checked) histo += prefix + "Délit de fuite\n";
        if(get('histo_0_yes').checked && !get('histo_0_annee').value) histo += prefix + "Année du délit de fuite\n";

	if(!get('histo_1_yes').checked && !get('histo_1_no').checked) histo += prefix + "Conduite en état d'ivresse\n";
        if(get('histo_1_yes').checked && !get('histo_1_annee').value) histo += prefix + "Année de la conduite en état d'ivresse\n";

	if(!get('histo_2_yes').checked && !get('histo_2_no').checked) histo += prefix + "Suspension, retrait ou annulation du permis de conduire\n";
	if(get('histo_2_yes').checked && !get('histo_2_annee').value) histo += prefix + "Année de suspension, retrait ou annulation du permis de conduire\n";

        if(!get('histo_3_yes').checked && !get('histo_3_no').checked) histo += prefix + "Contrat résilié par votre précédent assureur\n";
        if(get('histo_3_yes').checked && !get('histo_3_annee').value) histo += prefix + "Année du contrat résilié par votre précédent assureur\n";

	if(histo){
		histo = "Antécédents du conducteur sur 36 mois\n" + histo + "\n";
		err += histo;
	}

	if(!get('accident_0_yes').checked && !get('accident_0_no').checked) accident += prefix + "Corporel responsable\n";
	if(get('accident_0_yes').checked && !get('accident_0_annee').value) accident += prefix + "Année du sinistre corporel responsable\n";

	if(!get('accident_1_yes').checked && !get('accident_1_no').checked) accident += prefix + "Matériel responsable\n";
	if(get('accident_1_yes').checked && !get('accident_1_annee').value) accident += prefix + "Année du sinistre matériel responsable\n";

	if(!get('accident_2_yes').checked && !get('accident_2_no').checked) accident += prefix + "Bris de glace\n";
	if(get('accident_2_yes').checked && !get('accident_2_annee').value) accident += prefix + "Année du sinistre brise glace\n";

	if(!get('accident_3_yes').checked && !get('accident_3_no').checked) accident += prefix + "Incendie/Vol\n";
	if(get('accident_3_yes').checked && !get('accident_3_annee').value) accident += prefix + "Année du sinistre incendie/vol\n";

	if(accident){
		accident = "Antécédents sinistres sur 36 mois\n" + accident + "\n";
		err += accident;
	}

	if(err) alert("Certaines questions obligatoires du formulaire ne sont pas renseignées : \n\n" + err);
	else{
		get('devis_form').submit();
	}
}

function returnDevisForm(){
	get('step_2').style.visibility = "hidden";
	get('step_1').style.visibility = "visible";
}

// returns true if the string is a valid email
function isEmail(str){
	var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
	return re.test(str);
}

// returns true if the string only contains characters 0-9 and is not null
function isNumeric(str){
	var re = /[\D]/g
	if (re.test(str)) return false;
	return true;
}