function ajaxRequest(url)
{
	var xhr=null;
	try
	{
        xhr=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
	{
        try
		{
            xhr=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
		{
            xhr=false;
        }
    }
	
    if (!xhr && typeof XMLHttpRequest!='undefined')
        xhr=new XMLHttpRequest();
	
	xhr.open("GET","http://extranet.tarificateur.net/"+url, false);
	xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xhr.send(null);
	var reponse = xhr.responseText;
	return reponse;
}

function utf8_encode ( argString ) {
    var string = (argString+''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
	var utftext = "";
    var start = 0, end = 0;
	var stringl = string.length;
	
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

function utf8_decode ( str_data ) {
    var tmp_arr = [];
	var i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    str_data += '';

    while(i < str_data.length) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}

function videBoiteSelection(formName,elementName)
{
	sel = document.forms[formName].elements[elementName];
	while (sel.options.length>0)
	{
		sel.options[0] = null;
	}
	var optionVide = new Option(utf8_decode("Sélectionnez..."),"",false,false);
	sel.options[sel.length] = optionVide;
	sel.disabled = true;
}

function chargeModeles(marque,anneeCirculation)
{
	if (marque!='')
	{
		var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
		
		videBoiteSelection('nameFrmVehicule','gamme');
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','puissance');
		videBoiteSelection('nameFrmVehicule','carosserie');
		
		sel = document.forms['nameFrmVehicule'].elements['gamme'];
		
		var date = new Date();
		var data = new Object();
		data['fonction'] = "modeles";
		data['time'] = date.getTime();
		data['marque'] = marque;
		data['anneeCirculation'] = anneeCirculation;

		$.post(url, data, function(data) {
				var resultat = exploser(data, ";@");
				var longueur = resultat.length;
		
				for(i=0;i<longueur;i++)
				{
					var optionModele = new Option(resultat[i],resultat[i],false,false);
					sel.options[sel.length] = optionModele;
				}
				sel.disabled = false;
			});
	}
	else
	{
		videBoiteSelection('nameFrmVehicule','gamme');
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','puissance');
		videBoiteSelection('nameFrmVehicule','carosserie');
	}
	return true;
}

function chargePuissance(marque,anneeCirculation,gamme)
{
	if (gamme!='')
	{
		var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
		
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','puissance');
		videBoiteSelection('nameFrmVehicule','carosserie');
			
		var date = new Date();
		var data = new Object();
		data['fonction'] = 'puissance';
		data['time'] = date.getTime();
		data['marque'] = marque;
		data['gamme'] = gamme;
		data['anneeCirculation'] = anneeCirculation;
		
		$.post(url, data, function(data) {
				sel = document.forms['nameFrmVehicule'].elements['puissance'];

				var resultat = exploser(data,";@");
				var longueur = resultat.length;

				for(i=0;i<longueur;i++)
				{
					var optionModele = new Option(resultat[i],resultat[i],false,false);
					sel.options[sel.length] = optionModele;
				}
				sel.disabled = false;
			});
	}
	else
	{
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','puissance');
		videBoiteSelection('nameFrmVehicule','carosserie');
	}
	
}

function chargeCarburant(marque,anneeCirculation,gamme,puissance)
{
	if (puissance!='')
	{
		var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
		
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carosserie');
		
		var date = new Date();
		var data = new Object();
		data['fonction'] = 'carburant';
		data['time'] = date.getTime();
		data['marque'] = marque;
		data['gamme'] = gamme;
		data['puissance'] = puissance;
		data['anneeCirculation'] = anneeCirculation;

		$.post(url, data, function(data) {
				sel = document.forms['nameFrmVehicule'].elements['carburant'];

				var resultat = exploser(data,";@");
				var longueur = resultat.length;

				for(i=0;i<longueur;i++)
				{
					var optionModele = new Option(resultat[i],resultat[i],false,false);
					sel.options[sel.length] = optionModele;
				}
				sel.disabled = false;
			});
	}
	else
	{
		videBoiteSelection('nameFrmVehicule','carburant');
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carosserie');
	}
}

function chargeCarosserie(marque,anneeCirculation,gamme,puissance,carburant)
{
	var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
	
	videBoiteSelection('nameFrmVehicule','carosserie');
	
	var date = new Date();
	var data = new Object();
	data['fonction'] = 'carosserie';
	data['time'] = date.getTime();
	data['marque'] = marque;
	data['gamme'] = gamme;
	data['puissance'] = puissance;
	data['carburant'] = carburant;
	data['anneeCirculation'] = anneeCirculation;

	$.post(url, data, function(data) {
			sel = document.forms['nameFrmVehicule'].elements['carosserie'];

			var resultat = exploser(data,";@");
			var longueur = resultat.length;

			for(i=0;i<longueur;i++)
			{
				var optionModele = new Option(resultat[i],resultat[i],false,false);
				sel.options[sel.length] = optionModele;
			}
			sel.disabled = false;
		});
}

function chargeVersion(marque,anneeCirculation,gamme,puissance,carburant,carosserie)
{
	if (carosserie!='')
	{
		var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
		
		videBoiteSelection('nameFrmVehicule','modele');
	
		var date = new Date();
		var data = new Object();
		data['fonction'] = 'version';
		data['time'] = date.getTime();
		data['marque'] = marque;
		data['gamme'] = gamme;
		data['puissance'] = puissance;
		data['carburant'] = carburant;
		data['carosserie'] = carosserie;
		data['anneeCirculation'] = anneeCirculation;

		$.post(url, data, function(data) {
				sel = document.forms['nameFrmVehicule'].elements['modele'];

				var resultat = exploser(data,";@");
				var longueur = resultat.length;

				while (sel.options.length>0) {
					sel.options[0] = null;
				}

				var optionVide = new Option(utf8_decode("Sélectionnez..."),"",false,false);
				sel.options[sel.length] = optionVide;
				var optionPasDeModele = new Option(utf8_decode("pas de dénomination commerciale"),"",false,false);
				sel.options[sel.length] = optionPasDeModele;

				for(i=0;i<longueur;i++)
				{
					var optionModele = new Option(resultat[i],resultat[i],false,false);
					sel.options[sel.length] = optionModele;
				}
				sel.disabled = false;
			});

		return true;
	}
	else
	{
		videBoiteSelection('nameFrmVehicule','modele');
		videBoiteSelection('nameFrmVehicule','carosserie');
		return false;
	}
}

function chargeMine(marque,anneeCirculation,gamme,puissance,carburant,carrosserie,modele)
{
	var url= "http://extranet.tarificateur.net/ajaxFonctions.php";
	
	var date = new Date();
	var data = new Object();
	data['fonction'] = 'mine';
	data['time'] = date.getTime();
	data['marque'] = marque;
	data['gamme'] = gamme;
	data['puissance'] = puissance;
	data['carburant'] = carburant;
	data['carrosserie'] = carrosserie;
	data['modele'] = modele;
	data['anneeCirculation'] = anneeCirculation;
	
	$.post(url, data, function(data) {
			var resultat = exploser(data,";@");

			valideMine(resultat[0]);
		});

	return true;
}

function valideMine(id)
{
	changeclass('typeMine', 'displayko');
	document.forms['nameFrmVehicule'].elements['idVehicule'].value = id;
	var url= "http://extranet.tarificateur.net/ajaxFonctions.php";

	changeclass('selVehicule_div', 'displayko');
	
	var date = new Date();
	var data = new Object();
	data['fonction'] = 'recap';
	data['time'] = date.getTime();
	data['idVehicule'] = id;
	data['moisCirculation'] = document.forms['nameFrmVehicule'].elements['moisCirculation'].value;
	data['anneeCirculation'] = document.forms['nameFrmVehicule'].elements['anneeCirculation'].value;
	
	$.post(url, data, function(data) {
			changeclass('recapVehicule', 'displayok');
			setDesc('recapVehicule',data);
		});
}

function groupeClasseVehicule(id)
{
	var date = new Date();
	url = "ajaxFonctions.php?fonction=gcv";
	url += "&time=" + date.getTime() + "&idVehicule=" + id ;
	xhr = ajaxRequest(url);
}
function listeVilles(formName,cp)
{
	if (cp != undefined && cp != '' && cp.length>4)
	{
		
		if((cp.charAt(0) == '2' && cp.charAt(1) == '0') || (cp.charAt(0) == '9' && cp.charAt(1) == '7'))
		{
			alert(utf8_decode("Désolé, votre situation ne nous permet pas de vous communiquer un devis en ligne.\nPour satisfaire votre demande et vous proposer une solution adaptée à un prix compétitif, contactez un conseiller."));
		}
		else
		{
			var xhr=null;
			var url=null;
			var i;
			var date = new Date();
			url = "ajaxFonctions.php?fonction=villes";
			url += "&time=" + date.getTime() + "&cp=" + cp;
			xhr = ajaxRequest(url);
			var resultat = exploser(xhr,";@");
			var longueur = resultat.length;
			while (document.forms[formName].elements['villeStationneVehicule'].options.length>0)
			{
				document.forms[formName].elements['villeStationneVehicule'].options[0] = null;
			}
			for(i=0;i<longueur;i++)
			{
				var optionVille = new Option(resultat[i],resultat[i],false,false);
				document.forms[formName].elements['villeStationneVehicule'].options[document.forms[formName].elements['villeStationneVehicule'].length] = optionVille;
			}
		}
	}
}

function listeVilles2(formName,cp)
{
	if (cp != undefined && cp != '' && cp.length>4)
	{
		var xhr=null;
		var url=null;
		var i;
		var date = new Date();
		url = "ajaxFonctions.php?fonction=villes";
		url += "&time=" + date.getTime() + "&cp=" + cp;
		xhr = ajaxRequest(url);
		var resultat = exploser(xhr,";@");
		var longueur = resultat.length;
		while (document.forms[formName].elements['villeConducteur'].options.length>0)
		{
			document.forms[formName].elements['villeConducteur'].options[0] = null;
		}
		for(i=0;i<longueur;i++)
		{
			var optionVille = new Option(resultat[i],resultat[i],false,false);
			document.forms[formName].elements['villeConducteur'].options[document.forms[formName].elements['villeConducteur'].length] = optionVille;
		}
	}
}

function exploser(chaine, separateur) 
{
	var retour = new Array();
	var position=chaine.indexOf(separateur);
	
	while (position!=-1)
	{
		retour.push(chaine.slice(0, position));
		chaine=chaine.slice(position+separateur.length);
		position=chaine.indexOf(separateur);
	}
	
	if (chaine.length>0)
		retour.push(chaine);
	
	return retour;
}

function focusAnneeCircule()
{
	document.forms['nameFrmVehicule'].elements['marque'].disabled = true;
	videBoiteSelection('nameFrmVehicule','gamme');
	videBoiteSelection('nameFrmVehicule','modele');
	videBoiteSelection('nameFrmVehicule','carburant');
	videBoiteSelection('nameFrmVehicule','puissance');
	videBoiteSelection('nameFrmVehicule','carosserie');
}

function changeAnneeCircule()
{
		
	if(document.forms['nameFrmVehicule'].elements['anneeCirculation'].value != ""
	&& document.forms['nameFrmVehicule'].elements['moisCirculation'].value != "")
	{
		document.forms['nameFrmVehicule'].elements['marque'].disabled = false;
		document.forms['nameFrmVehicule'].elements['marque'].selectedIndex=0;
		changeclass('detailsmodele', 'displayok');
		changeclass('callhelp', 'displayok');
	}
	else
	{
		document.forms['nameFrmVehicule'].elements['marque'].disabled = true;
		changeclass('detailsmodele', 'displayko');
		changeclass('callhelp', 'displayko');
	}
}

function initVehicule()
{
	setDesc('recapVehicule','');
	changeclass('recapVehicule', 'displayko');
	changeclass('selVehicule_div', 'displayok');
	
	document.forms['nameFrmVehicule'].elements['idVehicule'].value = "";
}
