;function buildSimpleFormQuery(form) {
	var saisi = trim(form.motclesaisi.value);
	saisi = saisi.replace(/"/g,"'"); //remplace double quote par des simples
    if(saisi == '') {
		alert('Veuillez indiquer votre recherche');
		return false;
	}
	var objRegExp = /(^\*)|(\:\*)|(\sAND\s\*)|(\sOR\s\*)|(\s\+\*)|(\s\-\*)/;
	if(saisi.match(objRegExp)) {
		alert('Votre recherche sur un champ ne peut commencer par *');
		return false;
	}
	form.query.value = saisi;
}

function buildAdvancedFormQuery(form) {
	var query = '';
	var saisi = trim(form.motclesaisi.value);
	var theme = form['theme[]'];
	var motcle = trim(form.motcle.value);
	var type = form['type[]'];
	var ministre = trim(form.ministre.value);
	var startDate = trim(form.datedebut.value);
	var endDate = trim(form.datefin.value);
	
	saisi = saisi.replace(/"/g,"'");//remplace double quote par des simples
	
	/*if(saisi == '' && !isChecked(theme) && motcle == '0' && !isChecked(type) && ministre == '0' && startDate == '' && endDate == '') {
		alert('Veuillez indiquer votre recherche');
		return false;
	}*/
	var objRegExp = /(^\*)|(\:\*)|(\sAND\s\*)|(\sOR\s\*)|(\s\+\*)|(\s\-\*)/;
	if(saisi.match(objRegExp)) {
		alert('Votre recherche sur un champ ne peut commencer par *');
		return false;
	}
	if(startDate != '' && !isValidDate(startDate)) {
		alert('La date de d\u00E9but doit \u00EAtre au format JJ/MM/YYYY');
		return false;
	}
	if(endDate != '' && !isValidDate(endDate)) {
		alert('La date de fin doit \u00EAtre au format JJ/MM/YYYY');
		return false;
	}
	if(startDate != '' && endDate != '' && !isOrderDates(startDate, endDate)) {
		alert('La date de d\u00E9but doit \u00EAtre inf\u00E9rieure ou \u00E9gale \u00E0 celle de fin');
		return false;
	}
	if(saisi != '') query += saisi;
	if(isChecked(theme)) query += query.length != 0 ? ' AND ' + getQChkbox(theme, 'theme_libelle') : getQChkbox(theme, 'theme_libelle');
	if(motcle != '0') query += query.length != 0 ? ' AND ' + 'motcle_libelle:"' + motcle + '"' : 'motcle_libelle:"' + motcle + '"';
	if(isChecked(type)) query += query.length != 0 ? ' AND ' + getQChkbox(type, 'type_libelle') : getQChkbox(type, 'type_libelle');
	if(ministre != '0') query += query.length != 0 ? ' AND ' + 'ministre_libelle:"' + ministre + '"' : 'ministre_libelle:"' + ministre + '"';
	if(startDate != '' || endDate != '') query += query.length != 0 ? ' AND ' + getQDate(startDate, endDate) : getQDate(startDate, endDate);
	form.query.value = query;
	//alert('query : ' + form.query.value);
	return true;
}

function buildSallelectureFormQuery(form) {
	var query = '';
	var saisi = trim(form.motclesaisi.value);
	var thematique = '0';
	var theme = trim(form.theme.value);
	var soustheme = trim(form.soustheme.value);
	var type = trim(form.type.value);
	var startDate = trim(form.datedebut.value);
	var endDate = trim(form.datefin.value);
	var auteur = trim(form.auteur.value);
	var collection = trim(form.collection.value);
	var niveau = trim(form.niveau.value);
	var langue = trim(form.langue.value);
	
	if(theme != '0') {
	    thematique = theme;
	    if(soustheme != '0') thematique += ' : ' + soustheme;
	}
	
	/*if(saisi == '' && thematique == '0' && type == '0' && collection == '0' && niveau == '0' && langue == '0' && auteur == '0' && startDate == '' && endDate == '') {
		alert('Veuillez indiquer votre recherche');
		return false;
	}*/
	
	var objRegExp = /(^\*)|(\:\*)|(\sAND\s\*)|(\sOR\s\*)|(\s\+\*)|(\s\-\*)/;
	if(saisi.match(objRegExp)) {
		alert('Votre recherche sur un champ ne peut commencer par *');
		return false;
	}
	if(startDate != '' && !isValidDate(startDate)) {
		alert('La date de d\u00E9but doit \u00EAtre au format JJ/MM/YYYY');
		return false;
	}
	if(endDate != '' && !isValidDate(endDate)) {
		alert('La date de fin doit \u00EAtre au format JJ/MM/YYYY');
		return false;
	}
	if(startDate != '' && endDate != '' && !isOrderDates(startDate, endDate)) {
		alert('La date de d\u00E9but doit \u00EAtre inf\u00E9rieure ou \u00E9gale \u00E0 celle de fin');
		return false;
	}
	if(saisi != '') query += saisi;
	if(theme != '0') query += query.length != 0 ? ' AND ' + getQThematique(theme, soustheme) : getQThematique(theme, soustheme);
	if(type != '0') query += query.length != 0 ? ' AND ' + 'type_doc:"' + type + '"' : 'type_doc:"' + type + '"';
	if(auteur != '0') query += query.length != 0 ? ' AND ' + 'auteur:"' + auteur + '"' : 'auteur:"' + auteur + '"';
	if(collection != '0') query += query.length != 0 ? ' AND ' + 'collection:"' + collection + '"' : 'collection:"' + collection + '"';
	if(langue != '0') query += query.length != 0 ? ' AND ' + 'langue:"' + langue + '"' : 'langue:"' + langue + '"';
	if(niveau != '0') query += query.length != 0 ? ' AND ' + 'niveau:"' + niveau + '"' : 'niveau:"' + niveau + '"';
	if(startDate != '' || endDate != '') query += query.length != 0 ? ' AND ' + getQDate(startDate, endDate) : getQDate(startDate, endDate);
	form.query.value = query;
	//alert('query : ' + form.query.value);
	return true;
}
	
function isChecked(tabchkbox) {
	var chkOk = 0;
	//alert('Length : ' + tabchkbox.length);
	if(tabchkbox.length == undefined) {
		//alert('checked : ' + tabchkbox.checked);
		if(tabchkbox.checked) chkOk = 1;
	} else {
		for(var i = 0; i < tabchkbox.length; i++)
		{
			//alert('checked : ' + tabchkbox[i].checked);
			if(tabchkbox[i].checked == true)
			{
	           chkOk = 1;
	           break;
	        }
	    }
    }
	//alert('chkOk : ' + chkOk);
	if(!chkOk) return false;
	return true;
}

function getQChkbox(tabchkbox, field) {
	var query = '';
	//alert('Length : ' + tabchkbox.length);
	if(tabchkbox.length == undefined) {
		//alert('checked : ' + tabchkbox.checked);
		if(tabchkbox.checked) query += '(' + field + ':"' + trim(tabchkbox.value) + '")';
	} else {
		var limit = tabchkbox.length;
		for(var i = 0; i < limit; i++)
		{
			//alert('checked : ' + tabchkbox[i].checked);
			if(tabchkbox[i].checked == true)
			{
	           if(query.length == 0) query += '(';
	           query += query != '(' ? ' OR ' + field + ':"' + trim(tabchkbox[i].value) + '"' : field + ':"' + trim(tabchkbox[i].value) + '"';
	        }
	        if(query.length != 0 && i == limit - 1) query += ')';
	    }
    }
	return query;
}

function getQThematique(theme, soustheme) {
	var thematique = '';
	//alert('Length : ' + sousthemes.length);
	sousthemes = soustheme.split('|');
	if(sousthemes.length == 1) {
		//alert('value : ' + sousthemes[0]);
		thematique = '(thematique_libelle:"' + trim(theme);
		if(sousthemes[0] != '0') thematique += ' : ' + trim(sousthemes[0]);
		thematique += '")';
	} else {
		var limit = sousthemes.length;
		thematique = '(';
		for(var i = 0; i < limit; i++) {
		    //alert('value : ' + sousthemes[i]);
            thematique += thematique != '(' ? ' OR thematique_libelle:"' + trim(theme) + ' : ' + trim(sousthemes[i]) + '"' : 'thematique_libelle:"' + trim(theme) + ' : ' + trim(sousthemes[i]) + '"';
	    }
	    thematique += ')';
    }
	return thematique;
}

function isValidDate(strDate) {
	try {
		var objRegExp = /^(0[1-9]|[1,2][\d]|3[0,1])\/(0[1-9]|1[0,1,2])\/\d{4}$/;
		if(strDate.match(objRegExp)) return true;
	} catch(ex) {}
	return false;
}

function isOrderDates(startDate, endDate) {
	if(!isValidDate(startDate) || !isValidDate(endDate)) return false;
	var sDate = getDate(startDate);
	var eDate = getDate(endDate);
	if(compare(eDate, sDate) == -1) return false;
	return true;
}

//On suppose que la date entree a ete validee auparavant
//au format dd/mm/yyyy
function getDate(strDate){	  
    var day = strDate.substring(0, 2);
	var month = strDate.substring(3, 5);
	var year = strDate.substring(6, 10);
	var d = new Date(year, month, day);
	return d;  
}
		
//return :
//   0 if date1 = date2
 	//   1 if date1 > date2
//  -1 if date1 < date2
function compare(date1, date2) {
    diff = date1.getTime() - date2.getTime();
    return ( diff == 0 ? diff : diff/Math.abs(diff));
}

function dateFormat(strDate){
    if(!isValidDate(strDate)) return '';
    var day = strDate.substring(0, 2);
	var month = strDate.substring(3, 5);
	var year = strDate.substring(6, 10);
	return year + '-' + month + '-' + day + 'T00:00:00Z';
}

function getQDate(startDate, endDate) {
	if(startDate.length != 0 && !isValidDate(startDate)) return '';
	if(endDate.length != 0 && !isValidDate(endDate)) return '';
	startDate = dateFormat(startDate);
	endDate = dateFormat(endDate);
	if(startDate.length == 0) startDate = '*';
	if(endDate.length == 0) endDate = '*';
	var query = 'date:[' + startDate + ' TO ' + endDate + ']';
	return query;
}

function gup( name ) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return unescape(decodeURI(results[1]).replace(/\+/gi, ' '));
}

function theme_change(form, sousthemes) {
   var soustheme_param = gup('soustheme');
   var v = form.theme.options[form.theme.selectedIndex].value;
   form.soustheme.options.length = 0;
   if (typeof(sousthemes[v]) != 'undefined') {
		var current = sousthemes[v];
		var v2 = current[0];
        var o = new Option('Tous les sous-th\u00E8mes', v2);
        form.soustheme.options[0] = o;
		for (var i = 1; i < current.length; i++) {
            var v2 = current[i];
            var o = new Option(v2, v2);
            form.soustheme.options[i] = o;
        }
   } else {
       var newElement = new Option('Tous les sous-th\u00E8mes', '0');
       form.soustheme.options[form.soustheme.length] = newElement;
   }
}

/**
* Fonction de suppression des blancs ра gauche et ра droite
*/
function trim(string) {
	return string.replace(/(^\s*)|(\s*$)/g,'');
}
