var sPath = "http://" + document.location.host + "/js/get_ref.cfm?cb=2&l=";
var objDest;
var SelectedCat = null;
var SelectedMarque = null;
var SelectedPeriode = null;
var SelectedModele = null;
var SelectedVersion = null;
var SelectedEnergie = null;
var SelectedBoite = null;
var SelectedDept = null;
var SelectedMill = null;
var SelectedSousRubrique = null;
var SelectedRegion = null;
var SelectedGamme = null;
var SelectedCarr = null;
var SelectedDpt = null;
var SelectedRegion = null;
var SelectedAnnonceur = null;
var bBO = 0;
var b1015 = 0;
var bAutoDisable = true;
var aXmlDocs = new Array();
var bComboDisabled = false;

var aXmlDocsElt = function(objDest, SelectedId, bWithNull) {
	this.SelectedId = SelectedId;
	this.objDest = objDest;
	this.bWithNull = bWithNull;
	if (typeof window.ActiveXObject != 'undefined' ) {
		this.obj = new ActiveXObject("Microsoft.XMLHTTP");
		this.obj.onreadystatechange = processData ;
	} else {
		this.obj = new XMLHttpRequest();
		this.obj.onload = processData ;
	}
}

function call (obj, dest, sURL, bWithNull, SelectedId, varName, periode) {
	var myValue;	
	
	if ( arguments.length == 7 ) {
		objDest = obj.elements[dest];
		myValue = periode;
	} else if ( obj.type ) {
		if ( obj.type == 'hidden' ) { 
			objDest = obj.form.elements[dest];
			myValue = obj.value;
		} else {
			objDest = obj.form.elements[dest];
			if ( obj.options.length == 0 ) {
				myValue = '';
			} else {
				myValue = obj.options[obj.selectedIndex].value;
			}
		}
	} else {
		objDest = obj.elements[dest];
		myValue = -1;
	}
	if ( arguments.length < 4 ) {
		bWithNull = true;
	}

	var myBlc;
	for (myBlc=0; myBlc < aXmlDocs.length; myBlc++) {
		if ( aXmlDocs[myBlc] && (aXmlDocs[myBlc].objDest == objDest) ) {
			aXmlDocs[myBlc] = null;
		}
	}
	
	if ( bWithNull ) {
		objDest.options.length = 1;
		sLib = objDest.getAttribute("libdefaut");
		if ( !sLib ) {
			sLib = 'Indifférent';
		}
		objDest.options[0] = new Option(sLib,'');
	} else {
		objDest.options.length = 0;
	}	
	
	if ( myValue != '' ) {
		aXmlDocs[aXmlDocs.length] = new aXmlDocsElt(objDest, SelectedId, bWithNull);
		var elt = aXmlDocs.length-1;
		
		if ( varName && myValue ) {
			eval(varName + " = '" + myValue.toString().replace("'", "\\'") + "'");
		}
		
		if ( bAutoDisable ) {
			objDest.disabled = true;
			disableCombos(objDest.form, true);
		}
		
		aXmlDocs[elt].obj.open( "GET", sURL + '&d=1&bo=' + bBO + '&x=' + b1015 + '&v=' + escape(myValue), true );
		aXmlDocs[elt].obj.send( null );
		setTimeout("autoEnableCombos()", 60000);
	} else {
		if ( (objDest.getAttribute("autoload") != "0") && objDest.onchange ) {
			if ( objDest.getAttribute("autoload") == "2" ) {
				eval(objDest.getAttribute("onchange2").replace("this", "document." + objDest.form.name + "." + objDest.name));
			} else {
				objDest.onchange();
			}
		}
	}		
	return myValue;
}

function processData() {
	var myBlc;
	bAllNull = true;
	for (myBlc=0; myBlc < aXmlDocs.length; myBlc++) {
		if ( aXmlDocs[myBlc] ) {
			if ( aXmlDocs[myBlc].obj.readyState == 4 ) {
				if (aXmlDocs[myBlc].obj.status == 200) {
					delX= "\n";
					delY= ",";
					valArray2 = aXmlDocs[myBlc].obj.responseText.split(delX);
					if ( (valArray2.length == 2) && !aXmlDocs[myBlc].bWithNull ) {
						aXmlDocs[myBlc].objDest.options.length = 0;
					}
					for (var i=1; i < valArray2.length; i++ ) {
						pairArray2 = valArray2[i-1].split(delY);
						aXmlDocs[myBlc].objDest.options[aXmlDocs[myBlc].objDest.options.length] = new Option(pairArray2[1], pairArray2[0]);
						
						if ( aXmlDocs[myBlc].SelectedId == pairArray2[0] ) {
							aXmlDocs[myBlc].objDest.selectedIndex = aXmlDocs[myBlc].objDest.options.length-1;
						}
					}
					if ( (aXmlDocs[myBlc].SelectedId == null) && (b1015 == 2) && (aXmlDocs[myBlc].objDest.name == "Annee") ) {
						aXmlDocs[myBlc].objDest.selectedIndex = aXmlDocs[myBlc].objDest.options.length-1;
					}
					if ( bAutoDisable ) {
						aXmlDocs[myBlc].objDest.disabled = false;
						disableCombos(aXmlDocs[myBlc].objDest.form, false);
					}
					if ( (aXmlDocs[myBlc].objDest.getAttribute("autoload") != "0") && aXmlDocs[myBlc].objDest.onchange ) {
						oTmp = aXmlDocs[myBlc].objDest;
						aXmlDocs[myBlc] = null;
						if ( oTmp.getAttribute("autoload") == "2" ) {
							eval(oTmp.getAttribute("onchange2").replace("this", "document." + oTmp.form.name + "." + oTmp.name));
						} else if ( oTmp.getAttribute("autoload") == "3" ) {
 							setTimeout(oTmp.getAttribute("onchange3"),1);
						} else {
							oTmp.onchange();
						}
					} else {
						aXmlDocs[myBlc] = null;
					}
				} else {
					alert("Une erreur a eu lieu lors de la récupération de la liste...:\n" + aXmlDocs[myBlc].obj.statusText);
					if ( bAutoDisable ) {
						aXmlDocs[myBlc].objDest.disabled = false;
						disableCombos(aXmlDocs[myBlc].objDest.form, false);
					}
				}
			} else {
				bAllNull = false;
			}
		}
	}
	if ( bAllNull ) {
		aXmlDocs = new Array();
	}
}

function disableCombos(obj, bDisable) {
	bComboDisabled = bDisable;
	for ( elt in obj.elements ) {
		if ( (typeof obj.elements[elt] == "object") && obj.elements[elt] && (obj.elements[elt].type == "select-one") ) {
			try {
				if ( (obj.elements[elt].donotenable != 1) || bDisable ) {
					obj.elements[elt].disabled = bDisable;
				}
			}
			catch (e) {}
		}
	}
}

function autoEnableCombos() {
	var lastform = null;
	if ( bComboDisabled && bAutoDisable ) {
		for (myBlc = 0; myBlc < aXmlDocs.length; myBlc++) {
			if ( aXmlDocs[myBlc] && aXmlDocs[myBlc].objDest ) {
				if ( lastform != aXmlDocs[myBlc].objDest.form ) {
					disableCombos(aXmlDocs[myBlc].objDest.form, false);
					lastform = aXmlDocs[myBlc].objDest.form;
				}
			}
		}
	}
}

function loadMarques(obj, dest, liste) {
	if ( arguments.length != 3 ) {
		liste = 'b';
	}		
	call(obj, dest, sPath + liste + '&t=marque', true, SelectedMarque, 'SelectedCat');	
}

function loadMarquesVN(obj, dest, liste) {	
	if ( obj.options[obj.selectedIndex].value == '' ) {
		call(obj.form, dest, sPath + liste + '&t=marqueVN', true, SelectedMarque, 'SelectedCat', 99);
	} else {
		call(obj, dest, sPath + liste + '&t=marqueVN', true, SelectedMarque, 'SelectedCat');
	}
}
function loadMarquesId(obj, dest, liste, id) {
	call(obj, dest, sPath + liste + '&t=marque', true, SelectedMarque, 'SelectedCat', id);
}

function loadPeriodes(obj, dest, liste) {
	if ( arguments.length != 3 ) {
		liste = 'b';
	}
	if (obj.type == 'hidden' ) {
		SelectedCat = 1;
	}
	call(obj, dest, sPath + liste + '&c=' + SelectedCat + '&t=periode', false, SelectedPeriode, 'SelectedMarque');
}

function loadModeles(obj, dest, liste) {
	if ( arguments.length != 3 ) {
		liste = 'b';
	}
	call(obj, dest, sPath + liste + '&c=' + SelectedCat + '&t=modele', true, SelectedModele, 'SelectedMarque');
}

function loadModelesPeriode(obj, dest, liste, periode) {
	if ( (SelectedMill == null) || (SelectedMill == '') || ((SelectedMill != null) && periode) ) {
		if ( arguments.length == 4 ) {
			call(obj, dest, sPath + liste + '&c=' + SelectedCat + '&m=' + SelectedMarque + '&t=modele', true, SelectedModele, 'SelectedPeriode', periode);
		} else {
			call(obj, dest, sPath + liste + '&c=' + SelectedCat + '&m=' + SelectedMarque + '&t=modele', true, SelectedModele, 'SelectedPeriode');
		}
		SelectedMill = null;
	}
}

function loadSousRubriqueSuCj(obj,dest,liste,choix) {
	call(obj, dest, sPath + liste + '&t=sousrubrique' + '&prd=' + escape(sProdSousRubriqueSuCj) + '&grp=' + iGrpSousRubriqueSuCj + '&choix=' + choix, true, SelectedSousRubrique, 'SelectedSousRubrique');
}

function loadDpt(obj,dest,liste,choix) {	
	call(obj, dest, sPath + liste + '&t=dpt' + '&choix=' + choix, true, SelectedDpt, 'SelectedDpt');	
}

function onKDPeriode(e) {
	if ( e.keyCode == 13 ) {
		e.cancelBubble = true;
		e.returnValue = false;
		if ( e.preventDefault ) {
			e.preventDefault();
		}
		if ( e.stopPropagation ) {
			e.stopPropagation();
		}
		return false;
	}
}

function loadVersions(obj, dest, liste) {
	call(obj, dest, sPath + liste + '&c=' + SelectedCat + '&m=' + SelectedMarque + '&p=' + SelectedPeriode + '&t=version', true, SelectedVersion, 'SelectedModele');
}

function loadEnergie(obj, dest, liste) {
	if ( arguments.length != 3 ) {
		liste = 'b';
	}
	if ( obj.options[obj.selectedIndex].value == '' ) {
		call(obj.form, dest, sPath + liste + '&t=energie' + '&c=' + SelectedCat, true, SelectedEnergie, false, 'null');
	} else {
		call(obj, dest, sPath + liste + '&t=energie' + '&c=' + SelectedCat, true, SelectedEnergie);
	}
}

function loadBoite(obj, dest, liste) {
	if ( arguments.length != 3 ) {
		liste = 'b';
	}
	if ( obj.options[obj.selectedIndex].value == '' ) {
		call(obj.form, dest, sPath + liste + '&t=boite&c=' + SelectedCat, true, SelectedBoite, false, 'null');
	} else {
		call(obj, dest, sPath + liste + '&t=boite&c=' + SelectedCat, true, SelectedBoite);
	}
}

function loadDept(obj, dest) {
	call(obj, dest, sPath + '&t=dept', true, SelectedDept);
}

// fonctions Vehicules industriels
function loadMarquesVI(obj, dest, liste) {	
	call(obj, dest, sPath + liste + '&t=marqueVI',true, SelectedMarque,'SelectedCat');
}
function loadCarr(obj, dest, liste) {
	call(obj, dest, sPath + liste + '&t=carr',true, SelectedCarr,'SelectedCat');
}
function loadGamme(obj, dest, liste) {	
	call(obj, dest, sPath + liste + '&t=gamme&c=' + obj.form.type.options[obj.form.type.selectedIndex].value,true, SelectedGamme,'SelectedMarque');
}

// fonctions Promo de la semaine site pro
function loadRegionPromo(obj, dest, liste) {
	call(obj, dest, sPath + liste + '&t=sRegion',true, SelectedRegion,'SelectedCat');
}
function loadAnnonceurPromo(obj, dest, liste) {
	call(obj, dest, sPath + liste + '&t=sAnnonceur',true, SelectedAnnonceur,'SelectedCat');
}

// fonctions StockAuto
function loadModelesVN(obj, dest, liste) {	
	call(obj, dest, sPath + liste + '&c=' + SelectedMarque + '&t=modeleVN', true, SelectedModele, 'SelectedMarque');	
}

function loadCategVN(obj, dest, liste) {	
	if ( obj.selectedIndex <= 0 ) {
		SelectedModele = null;
		call(obj.form.marque, dest, sPath + liste + '&t=categVN', true, SelectedCat, 'SelectedMarque');		
	}else{
		call(obj, dest, sPath + liste + '&c=' + SelectedModele + '&t=ModeleCategVN', true, SelectedCat, 'SelectedModele');
	}
}

function loadCategEnergieVN(obj, dest, liste) {	
	if (obj.options[obj.selectedIndex].value == '') {
		SelectedCat = null;
		if (obj.form.modele.options[obj.form.modele.selectedIndex].value == ''){
			call(obj.form.marque, dest, sPath + liste + '&t=energieMarqueVN', true, SelectedEnergie, 'SelectedMarque');
		} else{ 
			call(obj.form.modele, dest, sPath + liste + '&c=' + SelectedMarque + '&t=EnergieVN', true, SelectedEnergie, 'SelectedModele');
		}
		
	} else {
		call(obj, dest, sPath + liste + '&c=' + SelectedModele + '&q=' + SelectedMarque + '&t=CategEnergieVN', true, SelectedEnergie, 'SelectedCat');
	}
}
// Fin fonctions StockAuto
