var requete = null;
function creerRequete() {
    try {
        requete = new XMLHttpRequest(); /* On essaye de créer un objet XmlHTTPRequest */
    } catch (microsoft) {
        /* Microsoft utilise une autre technique, on tente de créer un objet ActiveX */
        try {
            requete = new ActiveXObject('Msxml2.XMLHTTP');
        } catch(autremicrosoft) {
            /* On en teste une autre méthode si la première n'a pas marchée */
            try {
                requete = new ActiveXObject('Microsoft.XMLHTTP');
            } catch(echec) {
                /* Si aucune méthode ne fonctionne, il ne reste plus qu'à mettre à jour le navigateur ! */
                requete = null;
            }
        }
    }
    if (requete == null) {
        alert('Votre navigateur ne semble pas supporter les objets XMLHttpRequest.');
    }
}

function getVideo(lien) {
	creerRequete();
	var url = 'ajax/video_humour.php?vid='+lien;
	requete.open('GET', url, true);
	requete.onreadystatechange = function() {
		if(requete.readyState == 4) {
			if(requete.status == 200) {
				document.getElementById('box-video-humour-contenu').innerHTML = requete.responseText;
			}
		}
	};
	requete.send(null);
}

function VerifNum(field) {
	var exp=new RegExp("^[0-9]+$");
	numtest = "";
	
	$('#' + field).removeClass("inputerror");
	if(trim($('#' + field).val()) == "") {
		numtest += "x";
	} else {
		val_field = $('#' + field).val();	
	}

	if (exp.test(val_field)) {
		
	} else {	
		numtest += "x";
		$('#' + field).addClass("inputerror");
	}

	return numtest;

}



function VerifPrixminmax(fieldmin,fieldmax) {
	var exp=new RegExp("^[0-9]+$");
	duotest = "";
	
	$('#' + fieldmin).removeClass("inputerror");
	$('#' + fieldmax).removeClass("inputerror");
	
	if(trim($('#' + fieldmin).val()) == "") {
		val_fieldmin = 0;
	} else {
		val_fieldmin = $('#' + fieldmin).val();	
	}
	
	if(trim($('#' + fieldmax).val()) == "") {
		val_fieldmax = 0;
	} else {
		val_fieldmax = $('#' + fieldmax).val();	
	}


	if (exp.test(val_fieldmin)) {
	} else {
		
		duotest += "x1";
		$('#' + fieldmin).addClass("inputerror");
	}

	if (exp.test(val_fieldmax)) {
	} else {
		
		duotest += "x2";
		$('#' + fieldmax).addClass("inputerror");
	}
		
		
	if (duotest == "") {
		if (parseInt($('#' + fieldmax).val()) < parseInt($('#' + fieldmin).val())) {
			$('#' + fieldmin).addClass("inputerror");
			$('#' + fieldmax).addClass("inputerror");
			duotest += "x3";
		}

	}
	
	return duotest;

}





function getModele(field_marque) {
	
		$.ajax({
			type:		"GET",
			url:		"ajax/modeles.php",
			data:	{ marque: $(field_marque).val() },
			async: false,
			success: function(echo){
				_error = "off";
				$('select[@name=modele]').html(echo);
			},
			error: function(echo){
				_error = "on";
				alert("Error - " + echo);
			}
		});	
}



function getTyype(field_modele) {

		$.ajax({
			type:		"GET",
			url:		"ajax/types.php",
			data:	{ marque: $('select[@name=marque]').val(), modele: $(field_modele).val() },
			async: false,
			success: function(echo){
				_error = "off";
				$('select[@name=type]').html(echo);
			},
			error: function(echo){
				_error = "on";
				alert("Error - " + echo);
			}
		});

}




function getOptions(fieldoptiottxt) {

		$.ajax({
			type:		"GET",
			url:		"ajax/options.php",
			data:	{ action: "preview" , optiottxt: $(fieldoptiottxt).val() },
			async: false,
			success: function(echo){
				_error = "off";
				$('select[@name=option]').html(echo);
			},
			error: function(echo){
				_error = "on";
				alert("Error - " + echo);
			}
		});		

}

function fillVideo() {
	document.getElementById('video').checked = true;
}


function AddOption(option) {

		$.ajax({
			type:		"GET",
			url:		"ajax/options.php",
			data:	{ action: "add" , idoption: option },
			async: false,
			success: function(echo){	
				$('#opt_' + option).attr( "checked", "checked" );
				ViewOptions();
			},
			error: function(echo){
				alert("Error - " + echo);
			}
		});	

}

function DelOption(option) {
		
		$.ajax({
			type:		"GET",
			url:		"ajax/options.php",
			data:	{ action: "del" , idoption: option },
			async: false,
			success: function(echo){
				$('#opt_' + option).removeAttr( "checked" );
				ViewOptions();
				
			},
			error: function(echo){
				alert("Error - " + echo);
			}
		});
		
}

function ViewOptions() {
		$.ajax({
			type:		"GET",
			url:		"ajax/options.php",
			data:	{ action: "view" },
			async: false,
			success: function(echo){
				$('#options-list').html(echo);
			},
			error: function(echo){
				alert("Error - " + echo);
			}
		});	
		
	$('#delallopt').click(function(){
		$.ajax({
			type:		"GET",
			url:		"ajax/options.php",
			data:	{ action: "delall" },
			async: false,
			success: function(echo){
				$('[@id^=opt_]').removeAttr( "checked" );
				ViewOptions();
			},
			error: function(echo){
				alert("Error - " + echo);
			}
		});				
	});
	
	$('[@id^=delopt_]').click(function(){
		_idselected = $(this).attr("id");
		_strlength = _idselected.length;
		_idselected = _idselected.substring(7, _strlength);
		DelOption(_idselected);
	});
	precalculer();
}


function add_filtre(action) {

	$.ajax({
		type:		"GET",
		url:		"ajax/add_filtre.php",
		data:	{ action: action },
		async: false,
		success: function(echo){
		},
		error: function(echo){
		}
	});		

}


function SendForm() {

		formisvalid = "";
		
		formisvalid = test_vide('marque');
		formisvalid = test_vide('modele');
		formisvalid = test_vide('type');
		formisvalid = test_vide('province');
		formisvalid = test_vide('carburant');
		formisvalid = test_vide('carrosserie');
		formisvalid = test_vide('km');
		formisvalid = VerifPrixminmax('prixmin','prixmax');
		
		if (formisvalid == "") {
			
			if ($('#video').attr("checked")) {
				$('#form_search').attr({ action : $('#formactionvideo').val() });
			}
			
			$('#marque_txt').val($("#marque option:selected").text());
			$('#marquetxt_txt').val($("select[name='marquetxt'] option[value=" + $('#marque').val() + "]").text());
			
			$('#modele_txt').val($("#modele option:selected").text());
			$('#type_txt').val($("#type option:selected").text());
			$('#province_txt').val($("#province option:selected").text());
			$('#carburant_txt').val($("#carburant option:selected").text());
			
			$('#transmis_txt').val($("#transmis option:selected").text());
			$('#nbportes_txt').val($("#nbportes option:selected").text());
			$('#couleur_txt').val($("#couleur option:selected").text());
			$('#dateconstruct_txt').val($("#dateconstruct option:selected").text());
			$('#etat_txt').val($("#etat option:selected").text());
			$('#km_txt').val($("#km option:selected").text());	
			$('#carrosserie_txt').val($("#carrosserie option:selected").text());
			$('#form_search').submit();
						
		} 
	
}


function precalculer() {

	var _nbraverifier = new Array("#prixmin","#prixmax");
	var _selectaverifier = new Array("#marque","#modele","#type","#province","#carburant","#transmis","#nbportes","#couleur","#dateconstruct","#etat","#km","#carrosserie");
	var _checkaverifier = new Array("#video","#photo");

	var exp=new RegExp("^[0-9]+$");

	$('[@id^=opt_]').each(function() {
		_checkaverifier.push("#" + $(this).attr("id"));
	});
	calcultestnotok = "1";
	errorfatale = "";

	 var n = _nbraverifier.length;
	 for (i=0; i<n; i++)
	 {
	   if ($(_nbraverifier[i]).val() != "") 
	   {
		   	if (exp.test($(_nbraverifier[i]).val())) {
				
			} else {
				errorfatale = "1";	
			}
			calcultestnotok = "";
	   }
	 }
	 var n = _selectaverifier.length;
	 for (i=0; i<n; i++) {
	   if ($(_selectaverifier[i]).val() != 0) {
			calcultestnotok = "";
	   }
	 }
	 var n = _checkaverifier.length;
	 for (i=0; i<n; i++) {
	   if ($(_checkaverifier[i]).attr("checked") == true)
	   {
			calcultestnotok = "";
	   }
	 }
	 
	if (errorfatale != "") {
		calcultestnotok = errorfatale;
	}

	if ( calcultestnotok != "" ) {
		$('#precalresult').html('');
	} else {
		
		$('#precalresult').html('<img src="pictures/mini_loader.gif" border="0">');
		var options = { 
			target:    '#precalresult',
			url:       'pages/results.php?ajaxrecupnbr'	
		};
		$('#form_search').ajaxSubmit(options); 

		return false;	

	}
	
}




$(document).ready(function(){
ViewOptions();

_fieldaverifier = "#prixmin,#prixmax,#marque,#modele,#type,#province,#carburant,#transmis,#nbportes,#couleur,#dateconstruct,#etat,#km,#carrosserie,#photo,#video";

	$('#addoptio').click(function(){
		_idselected = $('#option').val();		
		AddOption(_idselected);
	});




	$('[@id^=opt_]').click(function(){
		_idselected = $(this).attr("id");
		_strlength = _idselected.length;
		_idselected = _idselected.substring(4, _strlength);	
		
			if ($(this).attr("checked")) {
				AddOption(_idselected);
			} else {
				DelOption(_idselected);	
			}
	});



	$('#video').click(function(){
		
			if ($(this).attr("checked")) {
				add_filtre('avecvideo');
			} else {
				add_filtre('sansvideo');	
			}
		
	});
	
	$('#photo').click(function(){
		
			if ($(this).attr("checked")) {
				add_filtre('avecphoto');
			} else {
				add_filtre('sansphoto');	
			}
		
	});




	$('select[@name=marque]').change(function(){
			
		getModele(this);
		
		($('select[@name=modele]')[0]).selectedIndex = 0;
				
	});						   
						   
	$('#fieldset-options-legend').click(function(){
		$('#options-tab').toggle();	
		$('#options-tab-title').toggle();	
		if ($('#options-title-puce').html() == '+') {
			$('#options-title-puce').html('-');
		} else {
			$('#options-title-puce').html('+');
		}
	});
	
	$('[@id^=optgroup_]').click(function(){
		_idselected = $(this).attr("id");
		_objectclick = this;
		_strlength = _idselected.length;
		_idselected = _idselected.substring(9, _strlength);
		
		$('#optgrouptab_' + _idselected).toggle();
		if ($('#optgroupico_' + _idselected).html() == '+') {
			$('#optgroupico_' + _idselected).html('-');
		} else {
			$('#optgroupico_' + _idselected).html('+');
		}		
	});

	
	$('select[@name=modele]').change(function(){
				
		getTyype(this);
		
		($('select[@name=type]')[0]).selectedIndex = 0;
					
	});	

	


	$('#searchoptio').click(function(){
				
		getOptions($('#optiosrch'));
		
		($('select[@name=option]')[0]).selectedIndex = 0;
					
	});

	$('#numannon').focus(function(){
		$('#numannon').removeClass("inputerror");
	});

	$('#prixmin').focus(function(){
		$('#prixmin').removeClass("inputerror");
	});
	
	$('#prixmax').focus(function(){
		$('#prixmax').removeClass("inputerror");
	});


	$('#submitsearchnum').click(function(){
	
		formisvalid = "";
		
		formisvalid = VerifNum('numannon');									  
		if (formisvalid == "") {
			$('#numannon_txt').val($('#numannon').val());
			$('#form_searchnum').submit();				
		} 
		
	});
	
	/*
	$('#resetsearch').click(function(){
		document.location.href = $('#urlreset').val();
	});
	*/

	$('#submitsearch').click(function(){
		SendForm();
	});	

	$('#submitsearch2').click(function(){
		SendForm();	
	});	


	$(_fieldaverifier).change(function(){
		precalculer();					  
	});

	$('#precal').click(function(){
		precalculer(); 
		
	});	


});




