function clearThis(box, val){
	var defaultVal = clearThis.arguments[2];
	var cmpstr = '';
	if(defaultVal){
		cmpstr = defaultVal;
	}
	else {
		cmpstr = defaultSearchValue;
	}
	if(val==cmpstr){
		box.value='';
	}
	else{
		box.select();
	}
}

function resetThis(box, val){
	var defaultVal = resetThis.arguments[2];
	if(val==''){
		if(defaultVal){
			box.value=defaultVal;
		}
		else{
			box.value=defaultSearchValue;
		}
	}
}

function addSection(section){
	if(document.searchfrm.userf){
		for(var i=0;i<document.searchfrm.userf.length;i++){
			if(document.searchfrm.userf[i].value.indexOf(section)!=-1){
				document.searchfrm.userf[i].checked=true;
			}
			else{
				document.searchfrm.userf[i].checked=false;
			}
		}
		document.searchfrm.p.value=1;
		document.searchfrm.submit();
	}
}

function trimstr(s) {
        while(''+s.charAt(s.length-1)==' ') s = s.substring(0,s.length-1)
        while(''+s.charAt(0)==' ') s = s.substring(1,s.length)
        return s
}

function displayError(msg){
	document.getElementById('error_message').innerHTML = msg;
	document.getElementById('error_table').style.display = 'block';
	window.location='#error';
}

function validate_quick_search(frm){
	if(frm.q_all.value == defaultSearchValue){
		frm.q_all.value = '';
	}
	frm.q_all.value = trimstr(frm.q_all.value);
	if(frm.q_all.value == ''){
		alert("Veuillez saisir au moins un mot-clé afin d'effectuer une recherche.");
		frm.q_all.focus();
		return false;
	}
	return true;
}

function validate_form(frm){
	var errors_msgs = '';
	if(frm.q_any.value == defaultSearchValue || frm.q_any.value == defaultSearchAnyVal){
		frm.q_any.value = '';
	}
	if(frm.q_all.value == defaultSearchValue || frm.q_all.value == defaultSearchAllVal){
		frm.q_all.value = '';
	}
	if(frm.q_exact.value == defaultSearchValue || frm.q_exact.value == defaultSearchExaVal){
		frm.q_exact.value = '';
	}

	frm.q_any.value = trimstr(frm.q_any.value);
	frm.q_all.value = trimstr(frm.q_all.value);
	frm.q_exact.value = trimstr(frm.q_exact.value);

	if(frm.q_any.value == '' && frm.q_all.value == '' && frm.q_exact.value == ''){
		errors_msgs = "La saisie d'au moins un <a href='#keywords'>mot-clé</a> est obligatoire.<br />";
		frm.q_any.value = defaultSearchAnyVal;
		frm.q_all.value = defaultSearchAllVal;
		frm.q_exact.value = defaultSearchExaVal;
		frm.q_all.focus();
		frm.q_all.select();
	}
	if(typeof(frm.type_selection_date)){
		if(frm.type_selection_date[0].checked){
			frm.dpos.value=frm.specific_date.selectedIndex;
			frm.dtext.value=frm.specific_date.options[frm.specific_date.selectedIndex].text;
		}
		else if(frm.type_selection_date[1].checked){
			frm.dtext.value='';
			if(!checkEffectivesDates(frm, errors_msgs)){
				return false;
			}
		}
	}

	if(errors_msgs != ''){
		displayError(errors_msgs);
		return false;
	}
		
	return true;
}

function popHelpWin(popupName,url,popupWidth,popupHeight) {
	popupDef = window.open(url, popupName,"width=" + popupWidth + ",height=" + popupHeight + ",top=100,left=200,resizable=no,scrollbars=yes,toolbar=no,status=no,location=no,directories=no");
}

function modsearch(frm){
	frm.mod.value=1;
	frm.action='index.cgi';
	frm.submit();
}

function mv(frm,p){
	frm.p.value=p;
	frm.submit();
}

function setSort(frm, sorttype){
	frm.usort.value = sorttype;
	frm.submit();
}

function setQTE(frm, qte){
	var nres = 0;
	var actpg = 0;
	if(frm.nres.value){
		nres = eval(frm.nres.value);
	}
	if(frm.p.value){
		actpg = eval(frm.p.value);
	}
	var maxpg = Math.round(eval(nres/qte));
	var extrares = eval(nres%qte);
	if(extrares && nres!=extrares){
		maxpg+=1;
	}
	if(actpg > maxpg){
		frm.p.value = maxpg;
	}
	document.searchfrm.submit();
}

function fixDateBoxes(frm){
	if(typeof(frm.type_selection_date)){
		if(frm.type_selection_date[0].checked){
			frm.specific_date.disabled = false;
			frm.beginning_month.disabled = true;
			frm.beginning_year.disabled = true;
			frm.ending_month.disabled = true;
			frm.ending_year.disabled = true;
		}
		else if(frm.type_selection_date[1].checked){
			frm.specific_date.disabled = true;
			frm.beginning_month.disabled = false;
			frm.beginning_year.disabled = false;
			frm.ending_month.disabled = false;
			frm.ending_year.disabled = false;
		}
	}
}

function checkEffectivesDates(frm, base_errmsg){
	if(typeof(frm.type_selection_date) && frm.type_selection_date[1].checked){
		var monthArray = new Array(12);
		monthArray[0] = "Jan";
		monthArray[1] = "Feb";
		monthArray[2] = "Mar";
		monthArray[3] = "Apr";
		monthArray[4] = "May";
		monthArray[5] = "Jun";
		monthArray[6] = "Jul";
		monthArray[7] = "Aug";
		monthArray[8] = "Sep";
		monthArray[9] = "Oct";
		monthArray[10] = "Nov";
		monthArray[11] = "Dec";

		var bmon = frm.beginning_month.options[frm.beginning_month.selectedIndex].value;
		var byear = frm.beginning_year.options[frm.beginning_year.selectedIndex].value;
		var emon = frm.ending_month.options[frm.ending_month.selectedIndex].value;
		var eyear = frm.ending_year.options[frm.ending_year.selectedIndex].value;
		
		var intBMonth = parseInt(bmon, 10);
		var intBYear = parseInt(byear, 10);
		var intEMonth = parseInt(emon, 10);
		var intEYear = parseInt(eyear, 10);

		if(!(isNaN(intBMonth) || isNaN(intBYear) || isNaN(intEMonth) || isNaN(intEYear))){
			var bdate = monthArray[intBMonth-1] + " 1" + " " + byear;
			var edate = monthArray[intEMonth-1] + " 1" + " " + eyear;
			var inv_msgs_order = 0;
			if(Date.parse(bdate) > Date.parse(edate)){
				var tmpdate = bdate;
				bdate = edate;
				edate = tmpdate;
				inv_msgs_order = 1;
			}
			var firtdate = "Sep 1 2000";
			var today = new Date();
			var date_errors = '';
			var early_date_msg = "Il n'existe aucun article avant septembre 2000. Veuillez choisir une <a href='#dates'>autre période</a>.";
			var late_date_msg = "Les articles de la période sélectionnée ne sont pas encore en ligne. Veuillez choisir une <a href='#dates'>autre période</a>.";

			if(Date.parse(edate) < Date.parse(firtdate) || Date.parse(bdate) < Date.parse(firtdate)){
				if(inv_msgs_order && (Date.parse(bdate) > Date.parse(today) || Date.parse(edate) > Date.parse(today))){
					date_errors = base_errmsg + late_date_msg;
				}
				else{
					date_errors = base_errmsg + early_date_msg;
				}
			}
			if(Date.parse(bdate) > Date.parse(today) || Date.parse(edate) > Date.parse(today)){
				if(date_errors !=''){
					date_errors = date_errors + '<br />';
				}
				else{ 
					date_errors = base_errmsg;
				}
				
				if(inv_msgs_order && (Date.parse(edate) < Date.parse(firtdate) || Date.parse(bdate) < Date.parse(firtdate))){
					date_errors = date_errors + early_date_msg;
				}
				else{
					date_errors = date_errors + late_date_msg;
				}
			}
			if(date_errors != ''){
				displayError(date_errors);
				return false;
			}
		}
		return true;
	}
}

function daysInMonth(m,y) {
	var dm = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (m != 2) return dm[m - 1];
	if (y%4 != 0) return dm[1];
	if (y%100 == 0 && y%400 != 0) return dm[1];
	return dm[1] + 1;
}
