/*
File : forms.js 
18/01/09

geolinko project
copyright : lpCom

Accents : éèàêôîûù
%*µ£$€
'entre quote'
"entre dbquotes"
dièse #
<inf sup>
/entre slashes/
\entre antislashes\
& et commercial

*/
/**************************************************** CONSULTATION ********************************************************/

var serviceShownConsultation = '';
var serviceShownRegistration = '';
var menuShownRegistration = '';


/**************************************************** Visualisation annonce *******************************************************/
function specialChars(str) {
var string = str;
string = string.replace(/\&/g,'&amp;');
string = string.replace(/\</g,'&lt;');
string = string.replace(/\>/g,'&gt;');
string = string.replace(/\n/g,'<br>');
return string;
}

function specialChars2(str) {
var string = str;
string = string.replace(/\&/g,'%26');
string = string.replace(/\</g,'%3C');
string = string.replace(/\>/g,'%3E');
string = string.replace(/\+/g,'%2B');
return string;
}

/**************************************************** ENREGISTREMENT *******************************************************/ 

function isDate(d) {
// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
if (d == "") // si la variable est vide on retourne faux
return false;

e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");

if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
return false; // Si pas bon, retourne faux

// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
j = parseInt(d.split("/")[0], 10); // jour
m = parseInt(d.split("/")[1], 10); // mois
a = parseInt(d.split("/")[2], 10); // année

// Si l'année n'est composée que de 2 chiffres on complète automatiquement
if (a < 1000) {
if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
else a+=1900;
}

// Définition du dernier jour de février
// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
else fev = 28;

// Nombre de jours pour chaque mois
nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
} 

function days_validation(id) {
if ((id=='_101_ITEM_FIN_MOIS') || (id=='_101_ITEM_FIN_ANNEE')) {
	var mois = document.getElementById('_101_ITEM_FIN_MOIS').value;
	var an = document.getElementById('_101_ITEM_FIN_ANNEE').value;
	var itemjour = '_101_ITEM_FIN_JOUR_';
	}
	else {
		var mois = document.getElementById('_101_ITEM_DEBUT_MOIS').value;
		var an = document.getElementById('_101_ITEM_DEBUT_ANNEE').value;
		var itemjour = '_101_ITEM_DEBUT_JOUR_';
		}	
	for (var i=1; i<=31; i++) {
		if (i<10) day='0'+i; else day=i;
		if (isDate(day+'/'+mois+'/'+an))
			document.getElementById(itemjour+day).disabled = false;
			else document.getElementById(itemjour+day).disabled = true;
		}
}

function getTitleForm(service) {
	var labelTitle;
	var infoTitle;
	if (TAB_LABEL_TITLE[service]) labelTitle = TAB_LABEL_TITLE[service];
		else labelTitle = TAB_LABEL_TITLE['default'];
	if (TAB_INFO_TITLE[service]) infoTitle = TAB_INFO_TITLE[service];
		else infoTitle = TAB_INFO_TITLE['default'];
	return '<p><tr><td><span class="main"><b>'+labelTitle+'</b></span>'+info(infoTitle)+'<br><input class="title" type="text" id="title" name="title" maxlength="'+MAX_LENGTH_TITLE+'" value=""></td></tr></p>';
}

function getDescoForm(service) {
	var labelDesco;
	var infoDesco;
	if (TAB_LABEL_DESCO[service]) labelDesco = TAB_LABEL_DESCO[service];
		else labelDesco = TAB_LABEL_DESCO['default'];
	if (TAB_INFO_DESCO[service]) infoDesco = TAB_INFO_DESCO[service];
		else infoDesco = TAB_INFO_DESCO['default'];
	return '<p><tr><td><span class="main"><b>'+labelDesco+'</b></span>'+info(infoDesco)+'<br><textarea class="desco" id="desco" name="desco" onkeypress="javascript:maxlength(this,'+MAX_LENGTH_DESCRIPTION+');"></textarea></td></tr></p>';
}

function getVisuForm() {
	return '<p><tr><td><table align="center"><td><input onclick="visualize(this.form);return false" type="button" value="'+TEXT_VISUALIZE+'"></td><td><input class="important" type="submit" value="'+TEXT_SUBMIT+'"></td></table></td></tr></p>';
}

function testLink() {
	var url = validLink(document.getElementById('link').value);
	if ((url == null) || (url=='')) jAlertWarning(ALERT_FORM_MESS15, '');
		else window.open(url, '', 'location=yes');
}

function getLinkForm() {
	return '<p><tr><td><span class="main"><b>'+TEXT_LINK+'</b></span>'+info(TEXT_INFO_LINK)+'       <a class="smallText" onmouseout="this.style.color=\'#c8ad66\';" onmouseover="this.style.color=\'#000088\'; this.style.cursor=\'pointer\';" onclick="testLink()">'+TEXT_LINK_TEST+'</a>'+'<br><input class="title" type="text" id="link" maxlength="'+MAX_LENGTH_LINK+'" value="http://"></td></tr></p>';
}

function info(textInfo) {
	return '<a class="info" onclick=\'return false\' href="#">   <img src="images/help.png">'+'<span>'+textInfo+'</span></a>';
}

function maxlength(text,length) {
	if(text.value.length>length)
		text.value=text.value.substr(0,length);
} 

function getPhotosChecked() {
var nb='';
for (var i=1; i<= serviceNbPhotos(serviceShownRegistration); i++) {
	if (document.getElementById('photo'+i).checked)
		nb+=i+' ';
	}
return nb;
}

function getPhotoFormOnChangeAction(i) {
	return '<input id="input_photo'+i+'" type="file" size="'+PHOTO_INPUT_SIZE+'" name="filename'+i+'" onchange="ajaxUpload(this.form, \'filename'+i+'\','+i+'); return false;" />';
}

function resetPhotoForm(i) {
	document.getElementById('fileInputContainer'+i).innerHTML = getPhotoFormOnChangeAction(i);
							
	document.getElementById('input_photo'+i).value = '';						
	document.getElementById('photo'+i).checked = false;
	document.getElementById('upload_area'+i).innerHTML = '';			
	document.getElementById('photo_fieldset'+i).style.display = 'none';
}

function photoForm(i) {
if (i==1)
	return '<tr><td><input id="photo'+i+'" type="checkbox" onclick="addPhotoForm('+i+')"><label for="photo'+i+'">'+TEXT_PHOTO_INSERTION+'('+i+')</label>  '+info(TEXT_INFO_PHOTO)+'<br><fieldset class="photo" id="photo_fieldset'+i+'"><div id=fileInputContainer'+i+'>'+getPhotoFormOnChangeAction(i)+'</div><div id="upload_area'+i+'"></div></fieldset></td></tr>';
	else return '<tr><td><input id="photo'+i+'" type="checkbox" onclick="addPhotoForm('+i+')"><label for="photo'+i+'">'+TEXT_PHOTO_INSERTION+'('+i+')</label><br><fieldset class="photo" id="photo_fieldset'+i+'"><div id=fileInputContainer'+i+'>'+getPhotoFormOnChangeAction(i)+'</div><div id="upload_area'+i+'"></div></fieldset></td></tr>';
}

function endFormHTML(service) {
	var endForm = getTitleForm(service) + getDescoForm(service);
	if (serviceLink(service))
		endForm += getLinkForm();		
	for (var i=1; i<= serviceNbPhotos(service); i++) endForm += photoForm(i);
	endForm = '<tr><td><table width="100%"><td><fieldset class="announce"><legend class="textlegend">'+TEXT_YOUR_ANNOUNCE+'</legend><table>'+endForm +'</table></fieldset></td></table></td></tr>';
	endForm += getVisuForm();
	return endForm;
}

function addPhotoForm(i) {
if (document.getElementById('photo'+i).checked) {
	document.getElementById('photo_fieldset'+i).style.display = 'block';
	}
	else {
		//del_tmp(i); 
		document.getElementById('photo_fieldset'+i).style.display = 'none';
		//document.getElementById('upload_area'+i).innerHTML = '';
	}
}

function initSearchFormConsultation(service) {
	switch (service) {
		default :
			document.getElementById('dep_rech_id').innerHTML = TEXT_ZONE_RECHERCHE;		
			break;		
		}
}

function initSearchFormRegistration(service) {
	switch (service) {
		case 'service_benevolatReg' :
		case 'service_artisansReg' :
		case 'service_menageReg' :
		case 'service_aideReg' :
		case 'service_jardinageReg' :
		case 'service_bricolageReg' :
		case 'service_animauxReg' :
		case 'service_autres_servicesReg' :	
			document.getElementById('dep_rech_id').innerHTML = TEXT_ZONE_DEPLACEMENT;		
			break;
		default :
			document.getElementById('dep_rech_id').innerHTML = TEXT_ZONE_RECHERCHE;		
			break;		
		}
}

function initializeFormsRegistration(service) {
	menuShownRegistration = '';
	serviceShownRegistration = '';
	if (!(service && serviceIsDefined('service_'+service))) 
		service = 'evenementsReg';//élément checked dans annonce.php
	if (service == 'affairesReg')
		showMenuRegistration(serviceCategorie('service_'+service), 'item_'+service, 1);
		else showMenuRegistration(serviceCategorie('service_'+service), 'item_'+service);
}

function showMenuRegistration(menu, item, hideMenu) {
	if (menuShownRegistration) {
		if (document.getElementById('menu-'+menuShownRegistration)) document.getElementById('menu-'+menuShownRegistration).style.display = 'none';
		document.getElementById(menuShownRegistration).checked = false;		
		}
	document.getElementsByName("catServ")[INDEX_MENU[menu]].checked = true;		
	if (document.getElementById('menu-'+menu)) {
		if (hideMenu==1) {
			document.getElementById('menu-'+menu).style.display = 'none';
			}
			else {
				document.getElementById('menu-'+menu).style.display = 'block';
				document.getElementById(item).checked = true;
				}
		}		
	menuShownRegistration=menu;
	showFormRegistration(item);
}

function showFormRegistration(item) {
	if (serviceShownRegistration) {
/* semble inutile et ne résoud pas le bug avec firefox qui semble rester à charger quelque chose (?)
		if (serviceNbPhotos(serviceShownRegistration)) 
			for (var i=1; i<= serviceNbPhotos(serviceShownRegistration); i++) {
				document.getElementById('upload_area'+i).innerHTML = '';			
				document.getElementById('photo_fieldset'+i).style.display = 'none'
				}	
*/			
		del_tmp(0);
		document.getElementById('end_'+serviceShownRegistration).innerHTML = '';	
		document.getElementById(serviceShownRegistration).reset();			
		document.getElementById(serviceShownRegistration).style.display = 'none';	
		hidePolyzone(polyZoneIntervention);
		}
	var service = item.replace(/item_/, "service_");
	document.getElementById('rubLinkConsult').innerHTML = '<img src="images/show_opt.gif"> <a href="index.php?typ='+serviceId(service)+'">'+TEXT_RUB_CONSULT+'</a>';	
	document.getElementById('end_'+service).innerHTML = endFormHTML(service);	
	if (serviceNbPhotos(service)) 
		for (var i=1; i<= serviceNbPhotos(service); i++)
			document.getElementById('photo_fieldset'+i).style.display = 'none';
	MAX_SEARCH_AREA = serviceMaxSearchArea(service);
	initSearchFormRegistration(service);	
	if (serviceSearchForm(service)) {
		document.getElementById('searchForm').style.display='block';
		if (polyZoneIntervention) enablePolyzone(polyZoneIntervention); else createPolyzone();
		}
		else {
			document.getElementById('searchForm').style.display='none';
			}
	document.getElementById(service).style.display = 'block';
	specialInitFormsRegistration(service);
	serviceShownRegistration=service;
}

function specialInitFormsRegistration(service) {
	switch (service) { //initialisations particulières
		case 'service_evenementsReg' :
			var today = new Date();
			var jour = today.getDate(); if (jour<10) jour='0'+jour.toString();
			var mois = today.getMonth()+1; if (mois<10) mois='0'+mois.toString();
			var annee = today.getFullYear();
			document.getElementById('_101_ITEM_DEBUT_JOUR').value = jour;
			document.getElementById('_101_ITEM_DEBUT_MOIS').value = mois;			
			document.getElementById('_101_ITEM_DEBUT_ANNEE').value = annee;	
			document.getElementById('_101_ITEM_FIN_JOUR').value = jour;
			document.getElementById('_101_ITEM_FIN_MOIS').value = mois;			
			document.getElementById('_101_ITEM_FIN_ANNEE').value = annee;
			days_validation('_101_ITEM_DEBUT_MOIS');
			days_validation('_101_ITEM_FIN_MOIS');			
			break;
		}
}

/*********************************************************************/
function enableTS() {
	document.getElementById('_104_ITEM_TOUS_SECTEURS').disabled = true;
	document.getElementById('_104_ITEM_SECTEUR').disabled = false;
	document.getElementById('_104_ITEM_TOUS_SECTEURS').checked = false;
}

function disableTS() {
	document.getElementById('_104_ITEM_TOUS_SECTEURS').disabled = false;
}

function setTS() {
	if (document.getElementById('_104_ITEM_TOUS_SECTEURS').checked)
		document.getElementById('_104_ITEM_SECTEUR').disabled = true;
		else document.getElementById('_104_ITEM_SECTEUR').disabled = false;
}

function flipflopTS(secteurId, toussecteursId) {
	if (document.getElementById(toussecteursId).checked)
		document.getElementById(secteurId).disabled = true;
		else document.getElementById(secteurId).disabled = false;
}

function dateDebutChange() {
	if (!document.getElementById('_101_ITEM_FIN').checked) {
		document.getElementById('_101_ITEM_FIN_JOUR').value = document.getElementById('_101_ITEM_DEBUT_JOUR').value;
		document.getElementById('_101_ITEM_FIN_MOIS').value = document.getElementById('_101_ITEM_DEBUT_MOIS').value;
		document.getElementById('_101_ITEM_FIN_ANNEE').value = document.getElementById('_101_ITEM_DEBUT_ANNEE').value;	
		}
}

function dateFinFlipFlop() {
	if (document.getElementById('_101_ITEM_FIN').checked) {
		document.getElementById('_101_ITEM_FIN_JOUR').disabled = false;
		document.getElementById('_101_ITEM_FIN_MOIS').disabled = false;
		document.getElementById('_101_ITEM_FIN_ANNEE').disabled = false;
		}
		else {
			document.getElementById('_101_ITEM_FIN_JOUR').value = document.getElementById('_101_ITEM_DEBUT_JOUR').value;
			document.getElementById('_101_ITEM_FIN_MOIS').value = document.getElementById('_101_ITEM_DEBUT_MOIS').value;
			document.getElementById('_101_ITEM_FIN_ANNEE').value = document.getElementById('_101_ITEM_DEBUT_ANNEE').value;			
			document.getElementById('_101_ITEM_FIN_JOUR').disabled = true;
			document.getElementById('_101_ITEM_FIN_MOIS').disabled = true;
			document.getElementById('_101_ITEM_FIN_ANNEE').disabled = true;		
		}
}

function dateFinFlipFlopConsult() {
	if (document.getElementById('_101_ITEM_FIN').checked) {
		document.getElementById('_101_ITEM_FIN_JOUR').disabled = false;
		document.getElementById('_101_ITEM_FIN_MOIS').disabled = false;
		document.getElementById('_101_ITEM_FIN_ANNEE').disabled = false;
		document.getElementById('_101_ITEM_FIN_JOUR').value = document.getElementById('_101_ITEM_DEBUT_JOUR').value;;
		document.getElementById('_101_ITEM_FIN_MOIS').value = document.getElementById('_101_ITEM_DEBUT_MOIS').value;;
		document.getElementById('_101_ITEM_FIN_ANNEE').value = document.getElementById('_101_ITEM_DEBUT_ANNEE').value;;		
		}
		else {
			document.getElementById('_101_ITEM_FIN_JOUR').value = '';
			document.getElementById('_101_ITEM_FIN_MOIS').value = '';
			document.getElementById('_101_ITEM_FIN_ANNEE').value = '';			
			document.getElementById('_101_ITEM_FIN_JOUR').disabled = true;
			document.getElementById('_101_ITEM_FIN_MOIS').disabled = true;
			document.getElementById('_101_ITEM_FIN_ANNEE').disabled = true;		
		}
}

function avant(date1, date2) { //return true si date1 avant date2
	if (!date2 ||(date2=='')) return true;
	var reg=new RegExp("[-]+", "g");
	var d = date1.split(reg);
	var f = date2.split(reg);
	var d1 = new Date(d[0], d[1]-1, d[2]);
	var d2 = new Date(f[0], f[1]-1, f[2]);
	if (Date.parse(d1.toGMTString()) < Date.parse(d2.toGMTString())) return true;
		else return false;
}

function apres(date1, date2) { //return true si date1 après date2
	if (!date2 ||(date2=='')) return true;
	var reg=new RegExp("[-]+", "g");
	var d = date1.split(reg);
	var f = date2.split(reg);
	var d1 = new Date(d[0], d[1]-1, d[2]);
	var d2 = new Date(f[0], f[1]-1, f[2]);
	if (Date.parse(d1.toGMTString()) > Date.parse(d2.toGMTString())) return true;
		else return false;
}

function formatDate(annee, mois, jour) {
return document.getElementById(annee).value+'-'+document.getElementById(mois).value+'-'+document.getElementById(jour).value;
}

function getArrayDate(date) {
	var reg=new RegExp("[-]+", "g");
	return date.split(reg);	 
}

/**************************************************** VALIDATION FORMULAIRES *******************************************************/
function getValue_Multiple_P2(itemId) {
var value=0;
var elmt = document.getElementById(itemId);
	for (var i=0; i<elmt.options.length; i++)
		if (elmt.options[i].selected == true) {
			value += Math.pow(2, elmt.options[i].value);	// Attention de ne pas dépasser la taille du int dans la base
			}
	return value;
}

function setValue_Multiple_P2(itemId, value_P2) {
var elmt = document.getElementById(itemId);
	for (var i=0; i<elmt.options.length; i++)
		if (value_P2 & Math.pow(2, elmt.options[i].value))
			elmt.options[i].selected = true;
			else elmt.options[i].selected = false;
}

function getValue_P2(service, tabIds) {
var value=0;
	for (var i=0; i<tabIds.length; i++)
		if (document.getElementById(tabIds[i]).checked) {
			var val_item = serviceItemValue(service, tabIds[i]); 
			value += Math.pow(2, val_item);	// Attention de ne pas dépasser la taille du int dans la base
			}
	return value;
}

function isOneChecked(tabIds) {
	for (var i=0; i<tabIds.length; i++)
		if (document.getElementById(tabIds[i]).checked) return true;
	return false;
}

function valid_searchZoneForm(requestType) {
var data='';
var dataBounds;
	if (requestType == WATCH_REQUEST) {
		dataBounds = getZoneBounds(polyZoneIntervention);
		data += '&nrow='+dataBounds[0]+'&ncol='+dataBounds[1]+'&srow='+dataBounds[2]+'&scol='+dataBounds[3];
		data +='&xml='+polyzoneToXml();					
		}
		else {
			if (dataBounds = getDeltaBounds()) data +=dataBounds; /* null is returned if no change */
				else return null;
			}
	return data;			
}

function validForm_common1(service, requestType, itemOffre, itemCherche) {
var data='';
	var Ids = serviceItemsIds(service);
	if (!isOneChecked(Ids)) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
		return null;
		} 
		else {
			if (document.getElementById(itemCherche).checked) {
				var dataBounds = valid_searchZoneForm(requestType);
				if (dataBounds) data += dataBounds;
					else return null;
				data += '&offre=' + serviceItemValue(service, itemCherche);
				}
				else data += '&offre=' + serviceItemValue(service, itemOffre);
			data += '&services_p2='+getValue_P2(service, Ids);
			if (document.getElementById('TEXT_ET').checked)
				data += '&et_ou='+_ET_VALUE;
				else data += '&et_ou='+_OU_VALUE;
			}
	return data;
}

function validForm_common2(service, requestType, item1, item2) {
var data='';
var Ids = serviceItemsList(service);
	if (!isOneChecked(Ids)) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
		return null;
		}		
	if (document.getElementById(item1).checked) {
		var dataBounds = valid_searchZoneForm(requestType);
		if (dataBounds) data += dataBounds;
			else return null;
		data += '&offre=' + serviceItemValue(service, item1);
		}
		else data += '&offre=' + serviceItemValue(service, item2);
	return data;
}

function validForm_common3(service, requestType, itemOffre, itemCherche, Ids1, Ids2, itemVal) {
var data='';
	if ((Ids1 && !isOneChecked(Ids1)) || !isOneChecked(Ids2)) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11);
		return null;
		}
	if ((document.getElementById(itemOffre).checked && document.getElementById(Ids2[0]).checked) 
		||(document.getElementById(itemCherche).checked && document.getElementById(Ids2[1]).checked)){
		var dataBounds = valid_searchZoneForm(requestType);
		if (dataBounds) data += dataBounds;
			else return null;
		}
	if (document.getElementById(itemOffre).checked)
		data += '&offre=' + serviceItemValue(service, itemOffre);
		else data += '&offre=' + serviceItemValue(service, itemCherche);
	data += '&localisation_p2='+getValue_P2(service, Ids2);
	if (Ids1) data += '&niveau_p2='+getValue_P2(service, Ids1);	
	if (itemVal) data += '&matiere='+document.getElementById(itemVal).value;			
	return data;		
}

function validForm_common4(service, requestType, itemOffre, itemCherche, itemPrix, itemCurrencie, itemPieces, itemChambres, itemMeuble, Ids1, Ids2, Ids3) {
var data='';
	if (!isOneChecked(Ids1)) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
		return null;
		}
	data += '&type_bien_p2='+getValue_P2(service, Ids1);				
	if (!isOneChecked(Ids2)) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
			return null;
		}
	data+='&offreur_p2='+getValue_P2(service, Ids2);									
	var price = document.getElementById(itemPrix).value;
	var monnaie = document.getElementById(itemCurrencie).value;
	if (price != '') {
		if (!(price = validPrice(price, monnaie))) {
			jAlertWarning(ALERT_FORM_MESS17, '');
			return null;
			}
			else {
				data += '&prix_max='+price;
				data += '&monnaie='+monnaie;
				}
		}	
	if (document.getElementById(itemOffre).checked) {
		data += '&offre=' + serviceItemValue(service, itemOffre);
		var dataBounds = valid_searchZoneForm(requestType);
		if (dataBounds) data += dataBounds;
			else return null;
		}
		else data += '&offre=' + serviceItemValue(service, itemCherche);
	data+='&capacite='+document.getElementById(itemPieces).value;	
	data+='&nb_chambres='+document.getElementById(itemChambres).value;	
	data += '&equipement_p2='+getValue_P2(service, Ids3);
	if (document.getElementById('TEXT_ET').checked)
		data += '&et_ou='+_ET_VALUE;
		else data += '&et_ou='+_OU_VALUE;
	if (itemMeuble)
		if (document.getElementById(itemMeuble).checked)
			data+='&meuble=1';
			else data+='&meuble=0';			
	return data;		
}

function validForm_common5(service, requestType, itemOffre, itemCherche, itemPrix, itemCurrencie, Ids1, Ids2, Ids3) {
var data='';
	if ((Ids1 && (!isOneChecked(Ids1))) || (Ids2 && (!isOneChecked(Ids2)))  || (Ids3 && (!isOneChecked(Ids3)))) {
		if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
		return null;
		} else {
			var price = document.getElementById(itemPrix).value;
			var monnaie = document.getElementById(itemCurrencie).value;
			if (price != '') {
				if (!(price = validPrice(price, monnaie))) {
					jAlertWarning(ALERT_FORM_MESS17, '');
					return null;
					}
					else {
						data += '&prix_max='+price;
						data += '&monnaie='+monnaie;
						}
				}	
			if (Ids1) data += '&offreur_p2='+getValue_P2(serviceShownConsultation, Ids1);
			if (Ids2) data += '&location_p2='+getValue_P2(serviceShownConsultation, Ids2);
			if (Ids3) data += '&type_bien_p2='+getValue_P2(serviceShownConsultation, Ids3);
			if (document.getElementById(itemOffre).checked) {
				data += '&offre=' + serviceItemValue(serviceShownConsultation, itemOffre);
				var dataBounds = valid_searchZoneForm(requestType);
				if (dataBounds) data += dataBounds;
					else return null;
				}
				else data += '&offre=' + serviceItemValue(serviceShownConsultation, itemCherche);
			}	
	return data;		
}

function validForm(requestType) {
var data='';
var Ids;
	switch (serviceShownConsultation) {
		case 'service_echange' :
			Ids1 = serviceItemsIds(serviceShownConsultation);
			if (!isOneChecked(Ids1)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				}
			var dataBounds = valid_searchZoneForm(requestType);
			if (dataBounds) data += dataBounds;
				else return null;				
			data += '&type_bien_p2='+getValue_P2(serviceShownConsultation, Ids1);				
			data+='&capacite='+document.getElementById('_408_ITEM_CAPACITE').value;	
			data+='&nb_chambres='+document.getElementById('_408_ITEM_CHAMBRES').value;	
			var Ids2 = new Array('_408_ITEM_EQUIPEMENT1', '_408_ITEM_EQUIPEMENT2','_408_ITEM_EQUIPEMENT3', '_408_ITEM_EQUIPEMENT4', '_408_ITEM_EQUIPEMENT5', '_408_ITEM_EQUIPEMENT6', '_408_ITEM_EQUIPEMENT7', '_408_ITEM_EQUIPEMENT8');		
			data += '&equipement_p2='+getValue_P2(serviceShownConsultation, Ids2);
			if (document.getElementById('TEXT_ET').checked)
				data += '&et_ou='+_ET_VALUE;
				else data += '&et_ou='+_OU_VALUE;
			data+='&region='+document.getElementById('_408_ITEM_REGION').value; // Si plusieurs régions sont sélectionnées, seule la 1ère est retenue
			break;
		case 'service_colocation' :		
			if (!(data = validForm_common5(serviceShownConsultation, requestType, '_407_ITEM_OFFRE', '_407_ITEM_CHERCHE', '_407_ITEM_PRIX', '_407_ITEM_CURRENCIE', null, null, null))) return null;			
			break;	
		case 'service_parking' :
			Ids1 = new Array('_404_ITEM_PARTICULIER', '_404_ITEM_PROFESSIONNEL');
			Ids2 = new Array('_404_ITEM_LOCATION', '_404_ITEM_VENTE');
			Ids3 = new Array('_404_ITEM_PLACE', '_404_ITEM_BOX');			
			if (!(data = validForm_common5(serviceShownConsultation, requestType, '_404_ITEM_OFFRE', '_404_ITEM_CHERCHE', '_404_ITEM_PRIX', '_404_ITEM_CURRENCIE', Ids1, Ids2, Ids3))) return null;			
			break;		
		case 'service_terrain' :
			Ids1 = new Array('_403_ITEM_PARTICULIER', '_403_ITEM_PROFESSIONNEL');
			Ids2 = new Array('_403_ITEM_LOCATION', '_403_ITEM_VENTE');		
			if (!(data = validForm_common5(serviceShownConsultation, requestType, '_403_ITEM_OFFRE', '_403_ITEM_CHERCHE', '_403_ITEM_PRIX', '_403_ITEM_CURRENCIE', Ids1, Ids2, null))) return null;			
			break;
		case 'service_vacance' :
			Ids = serviceItemsIds(serviceShownConsultation);
			var Ids2 = new Array('_405_ITEM_PARTICULIER', '_405_ITEM_PROFESSIONNEL');
			var Ids3 = new Array('_405_ITEM_EQUIPEMENT1', '_405_ITEM_EQUIPEMENT2','_405_ITEM_EQUIPEMENT3', '_405_ITEM_EQUIPEMENT4', '_405_ITEM_EQUIPEMENT5', '_405_ITEM_EQUIPEMENT6', '_405_ITEM_EQUIPEMENT7', '_405_ITEM_EQUIPEMENT8');
			if (!(data = validForm_common4(serviceShownConsultation, requestType, '_405_ITEM_OFFRE', '_405_ITEM_CHERCHE', '_405_ITEM_PRIX', '_405_ITEM_CURRENCIE', '_405_ITEM_CAPACITE', '_405_ITEM_CHAMBRES', null, Ids, Ids2, Ids3))) return null;			
			break;			
		case 'service_vente' :
			Ids = serviceItemsIds(serviceShownConsultation);
			var Ids2 = new Array('_402_ITEM_PARTICULIER', '_402_ITEM_PROFESSIONNEL');
			var Ids3 = new Array('_402_ITEM_EQUIPEMENT1', '_402_ITEM_EQUIPEMENT2','_402_ITEM_EQUIPEMENT3', '_402_ITEM_EQUIPEMENT4');
			if (!(data = validForm_common4(serviceShownConsultation, requestType, '_402_ITEM_OFFRE', '_402_ITEM_CHERCHE', '_402_ITEM_PRIX', '_402_ITEM_CURRENCIE', '_402_ITEM_PIECES', '_402_ITEM_CHAMBRES', null, Ids, Ids2, Ids3))) return null;			
			break;	
		case 'service_location' :
			Ids = serviceItemsIds(serviceShownConsultation);
			var Ids2 = new Array('_401_ITEM_PARTICULIER', '_401_ITEM_PROFESSIONNEL');
			var Ids3 = new Array('_401_ITEM_EQUIPEMENT1', '_401_ITEM_EQUIPEMENT2','_401_ITEM_EQUIPEMENT3', '_401_ITEM_EQUIPEMENT4');
			if (!(data = validForm_common4(serviceShownConsultation, requestType, '_401_ITEM_OFFRE', '_401_ITEM_CHERCHE', '_401_ITEM_PRIX', '_401_ITEM_CURRENCIE', '_401_ITEM_PIECES', '_401_ITEM_CHAMBRES', '_401_ITEM_MEUBLE', Ids, Ids2, Ids3))) return null;			
			break;			
		case 'service_affaires' :
			Ids = serviceItemsIds(serviceShownConsultation);
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				} else {
					var price = document.getElementById('_501_ITEM_PRIX').value;
					var monnaie = document.getElementById('_501_ITEM_CURRENCIE').value;
					if (price != '') {
						if (!(price = validPrice(price, monnaie))) {
							jAlertWarning(ALERT_FORM_MESS17, '');
							return null;
							}
							else {
								data += '&prix_max='+price;
								data += '&monnaie='+monnaie;
								}
						}	
					data += '&secteur_p2='+getValue_P2(serviceShownConsultation, Ids);
					if (document.getElementById('_501_ITEM_OFFRE').checked) {
						data += '&offre=' + serviceItemValue(serviceShownConsultation, '_501_ITEM_OFFRE');
						var dataBounds = valid_searchZoneForm(requestType);
						if (dataBounds) data += dataBounds;
							else return null;
						}
						else data += '&offre=' + serviceItemValue(serviceShownConsultation, '_501_ITEM_CHERCHE');
					}
			break;	
		case 'service_autres_cours' :
			var Ids2 = new Array('_307_ITEM_LOCALISATION_PROF', '_307_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_307_ITEM_OFFRE', '_307_ITEM_CHERCHE', null, Ids2, null))) return null;			
			break;	
		case 'service_informatique' :
			var Ids2 = new Array('_306_ITEM_LOCALISATION_PROF', '_306_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_306_ITEM_OFFRE', '_306_ITEM_CHERCHE', null, Ids2, null))) return null;			
			break;					
		case 'service_arts' :
			var Ids2 = new Array('_305_ITEM_LOCALISATION_PROF', '_305_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_305_ITEM_OFFRE', '_305_ITEM_CHERCHE', null, Ids2, '_305_ITEM_ARTS'))) return null;			
			break;	
		case 'service_theatre' :
			var Ids2 = new Array('_304_ITEM_LOCALISATION_PROF', '_304_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_304_ITEM_OFFRE', '_304_ITEM_CHERCHE', null, Ids2, '_304_ITEM_THEATRE'))) return null;			
			break;	
		case 'service_musique' :
			var Ids2 = new Array('_303_ITEM_LOCALISATION_PROF', '_303_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_303_ITEM_OFFRE', '_303_ITEM_CHERCHE', null, Ids2, '_303_ITEM_INSTRUMENT'))) return null;			
			break;		
		case 'service_langues' :
			var Ids1 =  new Array('_302_ITEM_NIVEAU1', '_302_ITEM_NIVEAU2', '_302_ITEM_NIVEAU3');
			var Ids2 = new Array('_302_ITEM_LOCALISATION_PROF', '_302_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_302_ITEM_OFFRE', '_302_ITEM_CHERCHE', Ids1, Ids2, '_302_ITEM_LANGUE'))) return null;			
			break;		
		case 'service_soutien' :
			var Ids1 =  new Array('_301_ITEM_NIVEAU1', '_301_ITEM_NIVEAU2', '_301_ITEM_NIVEAU3');
			var Ids2 = new Array('_301_ITEM_LOCALISATION_PROF', '_301_ITEM_LOCALISATION_ELEVE');
			if (!(data = validForm_common3(serviceShownConsultation, requestType, '_301_ITEM_OFFRE', '_301_ITEM_CHERCHE', Ids1, Ids2, '_301_ITEM_MATIERE'))) return null;						
			break;		
		case 'service_animaux' :
			if (!(data = validForm_common1(serviceShownConsultation, requestType, '_206_ITEM_OFFRE', '_206_ITEM_CHERCHE'))) return null;
			break;		
		case 'service_bricolage' :
			if (!(data = validForm_common1(serviceShownConsultation, requestType, '_205_ITEM_OFFRE', '_205_ITEM_CHERCHE'))) return null;
			break;	
		case 'service_aide' :
			if (!(data = validForm_common1(serviceShownConsultation, requestType, '_203_ITEM_OFFRE', '_203_ITEM_CHERCHE'))) return null;
			break;	
		case 'service_menage' :
			if (!(data = validForm_common1(serviceShownConsultation, requestType, '_202_ITEM_OFFRE', '_202_ITEM_CHERCHE'))) return null;
			break;	
		case 'service_baby_sitting' :
			Ids = serviceItemsIds(serviceShownConsultation);		
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				}
			if ((document.getElementById('_201_ITEM_OFFRE').checked && document.getElementById('_201_ITEM_EXTERIOR').checked) 
				||(document.getElementById('_201_ITEM_CHERCHE').checked && document.getElementById('_201_ITEM_HOME').checked)){
				var dataBounds = valid_searchZoneForm(requestType);
				if (dataBounds) data += dataBounds;
					else return null;
				}
			if (document.getElementById('_201_ITEM_OFFRE').checked)
				data += '&offre=' + serviceItemValue(serviceShownConsultation, '_201_ITEM_OFFRE');
				else data += '&offre=' + serviceItemValue(serviceShownConsultation, '_201_ITEM_CHERCHE');
			data += '&home_exterior_p2='+getValue_P2(serviceShownConsultation, Ids);
			break;	
		case 'service_jardinage' :
			if (!(data = validForm_common2(serviceShownConsultation, requestType, '_204_ITEM_CHERCHE', '_204_ITEM_OFFRE'))) return null;;
			break;
		case 'service_autres_services' :
			if (!(data = validForm_common2(serviceShownConsultation, requestType, '_207_ITEM_CHERCHE', '_207_ITEM_OFFRE'))) return null;;
			break;
		case 'service_nourrices' :
			if (!(data = validForm_common2(serviceShownConsultation, requestType, '_208_ITEM_OFFRE', '_208_ITEM_CHERCHE'))) return null;;
			break;	
		case 'service_refuges' :
			if (!(data = validForm_common2(serviceShownConsultation, requestType, '_209_ITEM_OFFRE', '_209_ITEM_CHERCHE'))) return null;;
			break;
		case 'service_neuf' :
			if (!(data = validForm_common2(serviceShownConsultation, requestType, '_406_ITEM_OFFRE', '_406_ITEM_CHERCHE'))) return null;;
			break;				
		case 'service_appels' :
		case 'service_faire_part' :
		case 'service_bars' :
		case 'service_autres_vie_locale' :			
			data = valid_searchZoneForm(requestType);
			break;	
		case 'service_evenements' :	
			if ((!isDate(document.getElementById('_101_ITEM_DEBUT_JOUR').value+'/'+document.getElementById('_101_ITEM_DEBUT_MOIS').value+'/'+document.getElementById('_101_ITEM_DEBUT_ANNEE').value)) 
				||
				(document.getElementById('_101_ITEM_FIN').checked 
					&& (!isDate(document.getElementById('_101_ITEM_FIN_JOUR').value+'/'+document.getElementById('_101_ITEM_FIN_MOIS').value+'/'+document.getElementById('_101_ITEM_FIN_ANNEE').value)))) {
				jAlertWarning(ALERT_FORM_MESS12, '');
				return null;
				}		
			var debut = formatDate('_101_ITEM_DEBUT_ANNEE', '_101_ITEM_DEBUT_MOIS', '_101_ITEM_DEBUT_JOUR');			
			if (document.getElementById('_101_ITEM_FIN').checked) {
				var fin = formatDate('_101_ITEM_FIN_ANNEE', '_101_ITEM_FIN_MOIS', '_101_ITEM_FIN_JOUR');			
				if (apres(debut, fin)) {
					jAlertWarning(ALERT_FORM_MESS12, '');
					return null;
					}
				}
				else var fin = null;					
			data += '&debut='+debut+'&fin='+fin;		
			Ids = serviceItemsList(serviceShownConsultation);			
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				} else {				
					var dataBounds = valid_searchZoneForm(requestType);
					if (dataBounds) data += dataBounds;
						else return null;
					data += '&secteur_p2='+getValue_P2(serviceShownConsultation, Ids); // pour enregistrement watch						
					}
			break;	
		case 'service_perdu' :
			Ids = serviceItemsList(serviceShownConsultation);
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				}
			if (data = valid_searchZoneForm(requestType)) {
				data += '&perdu_trouve_p2='+getValue_P2(serviceShownConsultation, Ids); // pour enregistrement watch
				}
				else return null;
			break;
		case 'service_emploi' :
			Ids = serviceItemsIds(serviceShownConsultation);
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				} 
				else {
					if (document.getElementById('_104_ITEM_OFFRE').checked) {
						var dataBounds = valid_searchZoneForm(requestType);
						if (dataBounds) data += dataBounds;
							else return null;
						data += '&offre=' + serviceItemValue(serviceShownConsultation, '_104_ITEM_OFFRE');
						}
						else data += '&offre=' + serviceItemValue(serviceShownConsultation, '_104_ITEM_CHERCHE');
					data += '&type_emploi_p2='+getValue_P2(serviceShownConsultation, Ids);
					if (document.getElementById('_104_ITEM_TOUS_SECTEURS').checked)
						data += '&secteur='+ serviceItemValue(serviceShownConsultation, '_104_ITEM_TOUS_SECTEURS');
						else data += '&secteur='+document.getElementById('_104_ITEM_SECTEUR').value;
					}
			break;
		case 'service_assos' :
			Ids = serviceItemsList(serviceShownConsultation);
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				} else {
					data += '&secteur_p2='+getValue_P2(serviceShownConsultation, Ids); // pour enregistrement watch
					var dataBounds = valid_searchZoneForm(requestType);
					if (dataBounds) data += dataBounds;
						else return null;			
					}
			break;
		case 'service_commerces' :
			if (data = valid_searchZoneForm(requestType)) {
				if (document.getElementById('_108_ITEM_TOUS_SECTEURS').checked)
					data += '&secteur='+ serviceItemValue(serviceShownConsultation, '_108_ITEM_TOUS_SECTEURS');
					else data += '&secteur='+document.getElementById('_108_ITEM_SECTEUR').value;
				}
				else return null;
			break;
		case 'service_rencontres' :
			Ids = serviceItemsList(serviceShownConsultation);
			if (!isOneChecked(Ids)) {
				if (requestType == WATCH_REQUEST) jAlertWarning(ALERT_FORM_MESS11, '');
				return null;
				} else {
					data += '&secteur_p2='+getValue_P2(serviceShownConsultation, Ids); // pour enregistrement watch
					var dataBounds = valid_searchZoneForm(requestType);
					if (dataBounds) data += dataBounds;
						else return null;			
					}
			break;
		case 'service_artisans' :
			if (document.getElementById('_107_ITEM_TOUS_SECTEURS').checked)
				data += '&secteur='+ serviceItemValue(serviceShownConsultation, '_107_ITEM_TOUS_SECTEURS');
				else data += '&secteur='+document.getElementById('_107_ITEM_SECTEUR').value;
			break;			
		case 'service_benevolat' :
			if (document.getElementById('_106_ITEM_CHERCHE').checked) {
				var dataBounds = valid_searchZoneForm(requestType);
				if (dataBounds) data += dataBounds;
					else return null;
				data += '&offre=' + serviceItemValue(serviceShownConsultation, '_106_ITEM_CHERCHE');
				}
				else data += '&offre=' + serviceItemValue(serviceShownConsultation, '_106_ITEM_OFFRE');
			break;	
		}
	if (data) {
		data += '&type=' + serviceId(serviceShownConsultation);
		if ((requestType == WATCH_REQUEST) && document.getElementById('key_words'))
			data += '&key_words=' + specialChars2(document.getElementById('key_words').value);
		}	
	return data;
}

/**************************************************************************************/

function getXmlBounds() {
	var data ='&xml='+polyzoneToXml();
	var bounds = getZoneBounds(polyZoneIntervention);
	data +='&nrow='+bounds[0]+'&ncol='+bounds[1]+'&srow='+bounds[2]+'&scol='+bounds[3];
	return data;
}				

function validStringField(idForm, nameParam, errorMsg) {
var str = document.getElementById(idForm).value;
	if (str=='') {
		jAlertWarning(errorMsg, '');
		}
		else {
			str ='&' + nameParam + '=' + specialChars2(str);
			}
	return str;
}

function validStringLength(service, string, maxLength, tabLabel) {
	if (string.length > maxLength) {
		if (tabLabel[service])
			jAlertWarning(tabLabel[service]+' : '+ALERT_FORM_MESS16, '');
			else jAlertWarning(tabLabel['default']+' : '+ALERT_FORM_MESS16, '');			
		return false;
		}
	return true;
}

function validLink(url) {
//var reg =/(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/g;
var reg =/^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/g;
if ((url=="http://") || (url==''))
	return '';
if (url.match(reg))
	return url;
	else return null;
}

function validPrice(stringPrice, currencieIndex) {
	var parts = stringPrice.split(CURRENCIES[currencieIndex]['mil_point']);
	stringPrice = '';
	for (var i=0; i<parts.length; i++) stringPrice += parts[i];
	stringPrice = stringPrice.replace(CURRENCIES[currencieIndex]['decimal_point'], '.');
	if (isNaN(stringPrice)) return null;	
	var p = parseFloat(stringPrice);
	return p;
}

		
function valid_commonFormReg(service) {
var data='';
var str='';
var link;
	var n=0;
	for (var i=0; i<document.getElementById('desco').value.length; i++)
		if (document.getElementById('desco').value.charCodeAt(i)==10) n +=1;
	if (n > MAX_LINES_DESCRIPTION) {
		if (TAB_LABEL_DESCO[service])
			jAlertWarning(TAB_LABEL_DESCO[service]+' : '+ALERT_FORM_MESS16, '');
			else jAlertWarning(TAB_LABEL_DESCO['default']+' : '+ALERT_FORM_MESS16, '');			
		return false;
		}
	if (!validStringLength(service, document.getElementById('title').value, MAX_LENGTH_TITLE, TAB_LABEL_TITLE)) return false;
	if (!validStringLength(service, document.getElementById('desco').value, MAX_LENGTH_DESCRIPTION, TAB_LABEL_DESCO)) return false;
		
	if (str = validStringField('title', 'title', ALERT_FORM_MESS4))	data += str; else return false;
	if (str = validStringField('desco', 'desco', ALERT_FORM_MESS5))	data += str; else return false;
	data +='&photo='+ getPhotosChecked();
	if (serviceLink(service)) {
		link = validLink(document.getElementById("link").value);
		if (link == null) {
			jAlertWarning(ALERT_FORM_MESS15, '');
			return false;
			}
			else if (link != '') data += '&link='+specialChars2(link);
		}
	return data;
}

function valid_commonFormReg1(service, itemOffre, itemCherche) {
var data='';
var serviceReg = service+'Reg';
var Ids = serviceItemsIds(service);
	if (!isOneChecked(Ids)) {
		jAlertWarning(ALERT_FORM_MESS10, '');
		return null;
		}
	if (document.getElementById(itemOffre).checked) {
		data+='&offre='+serviceItemValue(serviceReg, itemOffre);
		data += getXmlBounds();
		}
		else {
			data+='&offre='+serviceItemValue(serviceReg, itemCherche);				
			}
	data += '&services_p2='+getValue_P2(service, Ids);
	return data;
}

function valid_commonFormReg2(service, itemOffre, itemCherche, Ids1, Ids2, itemVal) {
var data='';
var serviceReg = service+'Reg';
	if ((Ids1 && !isOneChecked(Ids1)) || !isOneChecked(Ids2)) {
		jAlertWarning(ALERT_FORM_MESS10, '');
		return null;
		}
	if (document.getElementById(itemOffre).checked) {
		data+='&offre='+serviceItemValue(service, itemOffre);
		if (document.getElementById(Ids2[1]).checked)
			data += getXmlBounds();
		}
		else {
			data+='&offre='+serviceItemValue(service, itemCherche);
			if (document.getElementById(Ids2[0]).checked)
				data += getXmlBounds();					
			}
	if (Ids1) data += '&niveau_p2='+getValue_P2(service, Ids1);
	data += '&localisation_p2='+getValue_P2(service, Ids2);
	if (itemVal) data += '&matiere='+document.getElementById(itemVal).value;	
	return data;
}

function valid_commonFormReg3(service, itemOffre, itemCherche, itemPrix, itemCurrencie, itemParticulier, itemProfessionnel, itemType, itemPieces, itemChambres, itemMeuble, Ids) {
var data='';
	var prix = document.getElementById(itemPrix).value;
	if (document.getElementById(itemCherche).checked) {
		if (prix!='')
			if (prix = validPrice(prix, document.getElementById(itemCurrencie).value))
				data+='&prix='+prix;
			else {
				jAlertWarning(ALERT_FORM_MESS17, '');
				return null;
				}					
		data+='&offre='+serviceItemValue(service, itemCherche);
		data += getXmlBounds();
		}
		else {
			if (!(prix = validPrice(prix, document.getElementById(itemCurrencie).value))) {
				jAlertWarning(ALERT_FORM_MESS17, '');
				return null;
				}	
			data+='&prix='+prix;						
			data+='&offre='+serviceItemValue(service, itemOffre);	
			}
	if (document.getElementById(itemParticulier).checked)
		data+='&offreur='+serviceItemValue(service, itemParticulier);	
		else data+='&offreur='+serviceItemValue(service, itemProfessionnel);
	data+='&monnaie='+document.getElementById(itemCurrencie).value;
	data+='&type_bien='+document.getElementById(itemType).value;
	data+='&capacite='+document.getElementById(itemPieces).value;	
	data+='&nb_chambres='+document.getElementById(itemChambres).value;	
	data += '&equipement_p2='+getValue_P2(service, Ids);
	if (itemMeuble)
		if (document.getElementById(itemMeuble).checked)
			data+='&meuble=1';
			else data+='&meuble=0';
	return data;
}

function valid_commonFormReg4(service, itemOffre, itemCherche, itemPrix, itemCurrencie, itemParticulier, itemProfessionnel, itemLocation, itemVente, itemPlace, itemBox) {
var data='';
	var prix = document.getElementById(itemPrix).value;
	if (document.getElementById(itemCherche).checked) {
		if (prix!='')
			if (prix = validPrice(prix, document.getElementById(itemCurrencie).value))
				data+='&prix='+prix;
			else {
				jAlertWarning(ALERT_FORM_MESS17, '');
				return null;
				}					
		data+='&offre='+serviceItemValue(service, itemCherche);
		data += getXmlBounds();
		}
		else {
			if (!(prix = validPrice(prix, document.getElementById(itemCurrencie).value))) {
				jAlertWarning(ALERT_FORM_MESS17, '');
				return null;
				}	
			data+='&prix='+prix;						
			data+='&offre='+serviceItemValue(service, itemOffre);	
			}
	data+='&monnaie='+document.getElementById(itemCurrencie).value;	
	if (itemLocation)
		if (document.getElementById(itemLocation).checked)
			data+='&location='+serviceItemValue(service, itemLocation);
			else data+='&location='+serviceItemValue(service, itemVente);
	if (itemParticulier)
		if (document.getElementById(itemParticulier).checked)
			data+='&offreur='+serviceItemValue(service, itemParticulier);
			else data+='&offreur='+serviceItemValue(service, itemProfessionnel);
	if (itemPlace)
		if (document.getElementById(itemPlace).checked)
			data+='&type_bien='+serviceItemValue(service, itemPlace);
			else data+='&type_bien='+serviceItemValue(service, itemBox);		
	return data;
}

function validFormReg(service) {
var data='';
var d;
	if (!(data = valid_commonFormReg(service))) return null;
	switch (service) {
		case 'service_echangeReg' :
			data+='&type_bien='+document.getElementById('_408_ITEM_TYPE').value;
			data+='&capacite='+document.getElementById('_408_ITEM_CAPACITE').value;	
			data+='&nb_chambres='+document.getElementById('_408_ITEM_CHAMBRES').value;
			var Ids = new Array('_408_ITEM_EQUIPEMENT1', '_408_ITEM_EQUIPEMENT2','_408_ITEM_EQUIPEMENT3', '_408_ITEM_EQUIPEMENT4', '_408_ITEM_EQUIPEMENT5', '_408_ITEM_EQUIPEMENT6', '_408_ITEM_EQUIPEMENT7', '_408_ITEM_EQUIPEMENT8');					
			data += '&equipement_p2='+getValue_P2(service, Ids);
			data += '&region_p2='+getValue_Multiple_P2('_408_ITEM_REGION');
			break;
		case 'service_colocationReg' :
			if (!(d = valid_commonFormReg4(service, '_407_ITEM_OFFRE', '_407_ITEM_CHERCHE', '_407_ITEM_PRIX', '_407_ITEM_CURRENCIE', null, null, null, null, null, null))) return null;		
			data += d;
			break;
		case 'service_neufReg' :
			if (document.getElementById('_406_ITEM_CHERCHE').checked) {
				data+='&offre='+serviceItemValue(service, '_406_ITEM_CHERCHE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_406_ITEM_OFFRE');
			break;	
		case 'service_parkingReg' :
			if (!(d = valid_commonFormReg4(service, '_404_ITEM_OFFRE', '_404_ITEM_CHERCHE', '_404_ITEM_PRIX', '_404_ITEM_CURRENCIE', '_404_ITEM_PARTICULIER', '_404_ITEM_PROFESSIONNEL', '_404_ITEM_LOCATION', '_404_ITEM_VENTE', '_404_ITEM_PLACE', '_404_ITEM_BOX'))) return null;		
			data += d;	
			break;		
		case 'service_terrainReg' :
			if (!(d = valid_commonFormReg4(service, '_403_ITEM_OFFRE', '_403_ITEM_CHERCHE', '_403_ITEM_PRIX', '_403_ITEM_CURRENCIE', '_403_ITEM_PARTICULIER', '_403_ITEM_PROFESSIONNEL', '_403_ITEM_LOCATION', '_403_ITEM_VENTE', null, null))) return null;		
			data += d;	
			break;	
		case 'service_vacanceReg' :
			var Ids = new Array('_405_ITEM_EQUIPEMENT1', '_405_ITEM_EQUIPEMENT2','_405_ITEM_EQUIPEMENT3', '_405_ITEM_EQUIPEMENT4', '_405_ITEM_EQUIPEMENT5', '_405_ITEM_EQUIPEMENT6', '_405_ITEM_EQUIPEMENT7', '_405_ITEM_EQUIPEMENT8');		
			if (!(d = valid_commonFormReg3(service, '_405_ITEM_OFFRE', '_405_ITEM_CHERCHE', '_405_ITEM_PRIX', '_405_ITEM_CURRENCIE', '_405_ITEM_PARTICULIER', '_405_ITEM_PROFESSIONNEL', '_405_ITEM_TYPE', '_405_ITEM_CAPACITE', '_405_ITEM_CHAMBRES', null, Ids))) return null;
			data += d;		
			break;				
		case 'service_venteReg' :
			var Ids = new Array('_402_ITEM_EQUIPEMENT1', '_402_ITEM_EQUIPEMENT2','_402_ITEM_EQUIPEMENT3', '_402_ITEM_EQUIPEMENT4');
			if (!(d = valid_commonFormReg3(service, '_402_ITEM_OFFRE', '_402_ITEM_CHERCHE', '_402_ITEM_PRIX', '_402_ITEM_CURRENCIE', '_402_ITEM_PARTICULIER', '_402_ITEM_PROFESSIONNEL', '_402_ITEM_TYPE', '_402_ITEM_PIECES', '_402_ITEM_CHAMBRES', null, Ids))) return null;
			data += d;		
			break;		
		case 'service_locationReg' :
			var Ids = new Array('_401_ITEM_EQUIPEMENT1', '_401_ITEM_EQUIPEMENT2','_401_ITEM_EQUIPEMENT3', '_401_ITEM_EQUIPEMENT4');
			if (!(d = valid_commonFormReg3(service, '_401_ITEM_OFFRE', '_401_ITEM_CHERCHE', '_401_ITEM_PRIX', '_401_ITEM_CURRENCIE', '_401_ITEM_PARTICULIER', '_401_ITEM_PROFESSIONNEL', '_401_ITEM_TYPE', '_401_ITEM_PIECES', '_401_ITEM_CHAMBRES', '_401_ITEM_MEUBLE', Ids))) return null;
			data += d;		
			break;	
		case 'service_affairesReg' :
			var prix = document.getElementById('_501_ITEM_PRIX').value;
			if (document.getElementById('_501_ITEM_CHERCHE').checked) {
				if (prix!='')
					if (prix = validPrice(prix, document.getElementById('_501_ITEM_CURRENCIE').value))
						data+='&prix='+prix;
					else {
						jAlertWarning(ALERT_FORM_MESS17, '');
						return null;
						}					
				data+='&offre='+serviceItemValue(service, '_501_ITEM_CHERCHE');
				data += getXmlBounds();
				}
				else {
					if (!(prix = validPrice(prix, document.getElementById('_501_ITEM_CURRENCIE').value))) {
						jAlertWarning(ALERT_FORM_MESS17, '');
						return null;
						}	
					data+='&prix='+prix;						
					data+='&offre='+serviceItemValue(service, '_501_ITEM_OFFRE');	
					}
			data+='&monnaie='+document.getElementById('_501_ITEM_CURRENCIE').value;	
			data+='&secteur='+document.getElementById('_501_ITEM_AFFAIRES').value;					
			break;		
		case 'service_autres_coursReg' :
			var Ids2 = new Array('_307_ITEM_LOCALISATION_PROF', '_307_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_autres_cours', '_307_ITEM_OFFRE', '_307_ITEM_CHERCHE', null, Ids2, null))) return null;
			data += d;		
			break;	
		case 'service_informatiqueReg' :
			var Ids2 = new Array('_306_ITEM_LOCALISATION_PROF', '_306_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_informatique', '_306_ITEM_OFFRE', '_306_ITEM_CHERCHE', null, Ids2, null))) return null;
			data += d;		
			break;	
		case 'service_artsReg' :
			var Ids2 = new Array('_305_ITEM_LOCALISATION_PROF', '_305_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_arts', '_305_ITEM_OFFRE', '_305_ITEM_CHERCHE', null, Ids2, '_305_ITEM_ARTS'))) return null;
			data += d;		
			break;	
		case 'service_theatreReg' :
			var Ids2 = new Array('_304_ITEM_LOCALISATION_PROF', '_304_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_theatre', '_304_ITEM_OFFRE', '_304_ITEM_CHERCHE', null, Ids2, '_304_ITEM_THEATRE'))) return null;
			data += d;		
			break;		
		case 'service_musiqueReg' :
			var Ids2 = new Array('_303_ITEM_LOCALISATION_PROF', '_303_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_musique', '_303_ITEM_OFFRE', '_303_ITEM_CHERCHE', null, Ids2, '_303_ITEM_INSTRUMENT'))) return null;
			data += d;		
			break;	
		case 'service_languesReg' :
			var Ids1 = new Array('_302_ITEM_NIVEAU1', '_302_ITEM_NIVEAU2', '_302_ITEM_NIVEAU3');
			var Ids2 = new Array('_302_ITEM_LOCALISATION_PROF', '_302_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_langues', '_302_ITEM_OFFRE', '_302_ITEM_CHERCHE', Ids1, Ids2, '_302_ITEM_LANGUE'))) return null;
			data += d;		
			break;		
		case 'service_soutienReg' :
			var Ids1 = new Array('_301_ITEM_NIVEAU1', '_301_ITEM_NIVEAU2', '_301_ITEM_NIVEAU3');
			var Ids2 = new Array('_301_ITEM_LOCALISATION_PROF', '_301_ITEM_LOCALISATION_ELEVE');
			if (!(d = valid_commonFormReg2('service_soutien', '_301_ITEM_OFFRE', '_301_ITEM_CHERCHE', Ids1, Ids2, '_301_ITEM_MATIERE'))) return null;
			data += d;							
			break;	
		case 'service_animauxReg' :
			if (!(d = valid_commonFormReg1('service_animaux', '_206_ITEM_OFFRE', '_206_ITEM_CHERCHE'))) return null;
			data += d;
			break;	
		case 'service_bricolageReg' :
			if (!(d = valid_commonFormReg1('service_bricolage', '_205_ITEM_OFFRE', '_205_ITEM_CHERCHE'))) return null;
			data += d;
			break;		
		case 'service_aideReg' :		
			if (!(d = valid_commonFormReg1('service_aide', '_203_ITEM_OFFRE', '_203_ITEM_CHERCHE'))) return null;
			data += d;
			break;		
		case 'service_menageReg' :
			if (!(d = valid_commonFormReg1('service_menage', '_202_ITEM_OFFRE', '_202_ITEM_CHERCHE'))) return null;
			data += d;
			break;	
		case 'service_refugesReg' :
			if (document.getElementById('_209_ITEM_CHERCHE').checked) {
				data+='&offre='+serviceItemValue(service, '_209_ITEM_CHERCHE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_209_ITEM_OFFRE');
			break;
		case 'service_nourricesReg' :
			if (document.getElementById('_208_ITEM_CHERCHE').checked) {
				data+='&offre='+serviceItemValue(service, '_208_ITEM_CHERCHE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_208_ITEM_OFFRE');
			break;
		case 'service_jardinageReg' :
			if (document.getElementById('_204_ITEM_OFFRE').checked) {
				data+='&offre='+serviceItemValue(service, '_204_ITEM_OFFRE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_204_ITEM_CHERCHE');
			break;
		case 'service_autres_servicesReg' :
			if (document.getElementById('_207_ITEM_OFFRE').checked) {
				data+='&offre='+serviceItemValue(service, '_207_ITEM_OFFRE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_207_ITEM_CHERCHE');
			break;			
		case 'service_baby_sittingReg' :
			var Ids = serviceItemsIds(service);		
			if (!isOneChecked(Ids)) {
				jAlertWarning(ALERT_FORM_MESS10, '');
				return null;
				}
			if (document.getElementById('_201_ITEM_OFFRE').checked) {
				data+='&offre='+serviceItemValue(service, '_201_ITEM_OFFRE');
				if (document.getElementById('_201_ITEM_HOME').checked)
					data += getXmlBounds();
				}
				else {
					data+='&offre='+serviceItemValue(service, '_201_ITEM_CHERCHE');
					if (document.getElementById('_201_ITEM_EXTERIOR').checked)
						data += getXmlBounds();					
					}
			data += '&home_exterior_p2='+getValue_P2('service_baby_sitting', Ids);
			break;
		case 'service_evenementsReg' :
			data += '&secteur='+document.getElementById('_101_ITEM_SECTEUR').value;
			var debut = formatDate('_101_ITEM_DEBUT_ANNEE', '_101_ITEM_DEBUT_MOIS', '_101_ITEM_DEBUT_JOUR');
			var fin = formatDate('_101_ITEM_FIN_ANNEE', '_101_ITEM_FIN_MOIS', '_101_ITEM_FIN_JOUR');
			if ((!isDate(document.getElementById('_101_ITEM_DEBUT_JOUR').value+'/'+document.getElementById('_101_ITEM_DEBUT_MOIS').value+'/'+document.getElementById('_101_ITEM_DEBUT_ANNEE').value)) 
				||
				(document.getElementById('_101_ITEM_FIN').checked 
					&& (!isDate(document.getElementById('_101_ITEM_FIN_JOUR').value+'/'+document.getElementById('_101_ITEM_FIN_MOIS').value+'/'+document.getElementById('_101_ITEM_FIN_ANNEE').value)))) {
				jAlertWarning(ALERT_FORM_MESS12, '');
				return null;
				}			
			if (document.getElementById('_101_ITEM_FIN').checked) {
				if (apres(debut, fin)) {
					jAlertWarning(ALERT_FORM_MESS12, '');
					return null;
					}
				}
			data += '&debut='+debut+'&fin='+fin; //on pourrait aussi vérifier l'existence d'une date ex : 31 février;
			break;
		case 'service_perduReg' :
			if (document.getElementById('_103_ITEM_PERDU').checked) 
				data+='&perdu='+serviceItemValue(service, '_103_ITEM_PERDU');
				else data+='&perdu='+serviceItemValue(service, '_103_ITEM_TROUVE');
			break;			
		case 'service_assosReg' :
			data += '&secteur='+document.getElementById('_105_ITEM_SECTEUR').value;
			break;
		case 'service_artisansReg' :
			data += '&secteur='+document.getElementById('_107_ITEM_SECTEUR').value;
			data += getXmlBounds();
			break;
		case 'service_emploiReg' :
			if (document.getElementById('_104_ITEM_OFFRE').checked)
				data+='&offre='+serviceItemValue(service, '_104_ITEM_OFFRE');
				else {
					data+='&offre='+serviceItemValue(service, '_104_ITEM_CHERCHE');
					data += getXmlBounds();
					}
			if (document.getElementById('_104_ITEM_EMPLOI').checked)
				data+='&type_emploi='+serviceItemValue(service, '_104_ITEM_EMPLOI');
				else if (document.getElementById('_104_ITEM_STAGE').checked)
					data+='&type_emploi='+serviceItemValue(service, '_104_ITEM_STAGE');
					else data+='&type_emploi='+serviceItemValue(service, '_104_ITEM_JOB');
			if (document.getElementById('_104_ITEM_TOUS_SECTEURS').checked)
				data += '&secteur='+serviceItemValue(service, '_104_ITEM_TOUS_SECTEURS');
				else data += '&secteur='+document.getElementById('_104_ITEM_SECTEUR').value;
			break;
		case 'service_commercesReg' :
			data += '&secteur='+document.getElementById('_108_ITEM_SECTEUR').value;
			break;
		case 'service_benevolatReg' :
			if (document.getElementById('_106_ITEM_OFFRE').checked) {
				data+='&offre='+serviceItemValue(service, '_106_ITEM_OFFRE');
				data += getXmlBounds();
				}
				else data+='&offre='+serviceItemValue(service, '_106_ITEM_CHERCHE');
			break;
		case 'service_rencontresReg' :
			if (document.getElementById('_110_ITEM_PROJETS').checked) data+='&secteur='+serviceItemValue(service, '_110_ITEM_PROJETS');
			if (document.getElementById('_110_ITEM_AMITIE').checked) data+='&secteur='+serviceItemValue(service, '_110_ITEM_AMITIE');
			if (document.getElementById('_110_ITEM_AFFINITES').checked) data+='&secteur='+serviceItemValue(service, '_110_ITEM_AFFINITES');
			break;
		default : //tous les autres services (qui sont déjà validés par valid_commonFormReg)
			break;
		}
	return data;
}

		
