function stripHTML(txt){ 
    return txt.replace(/(<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)|(<!--.*?-->)/gim, "")
}
function date_retourRequest(date) {
	// requete ajax pour ajouter 1 semaine à la date à partir du datepicker ou de l'input
	// En javascript cela aurait pu être moins lourd ;) mais plus prise de tête
	var result = $('date_retour');
	var aRequest  = new Request({
		url: 'ajax_resa.php',
		method: 'get',
		 onSuccess: function(txt){
			result.set('value', txt);
		},
		data: {
			'date_depart':date,
			'cmd':'date_retour'
		}
	});
	aRequest.send();
}
function datePickerCallback(date_depart) {
	// Evenement pour ajouter une semaine à la date de fin à partir de l'input
	date_retourRequest(date_depart.dd + '/' + date_depart.mm + '/' + date_depart.yyyy);
}
window.addEvent('domready',function(){
	// Chargement des agences de retour et des catégories
	$('agence_depart').addEvent('change', function(e) {
		e = new Event(e).stop();
		var result = $('agence_retour');
		var agence_retourRequest  = new Request({
			url: 'ajax_resa.php',
			method: 'get',
			onRequest: function(){
				result.set('html', '<option value="0">Chargement...</option>');
			},
			 onSuccess: function(txt){
				result.set('html', txt);
				result.set('value',$('agence_depart').getProperty('value')); // selectionne
			},
			data: {
				'agence_depart':($('agence_depart').getProperty('value')),
				'cmd':'agence_retour'
			} 
		});
		agence_retourRequest.send();
		var categorieresult = $('categorie');
		var categorieRequest  = new Request({
			url: 'ajax_resa.php',
			method: 'get',
			onRequest: function(){
				categorieresult.set('html', '<option value="0">Chargement...</option>');
			},
			 onSuccess: function(txt){
				categorieresult.set('html', txt);
				categorieresult.set('value','A');
			},
			data: {
				'agence_depart':($('agence_depart').getProperty('value')),
				'cmd':'categorie'
			} 
		});
		categorieRequest.send();
	});
	// Evenement pour ajouter une semaine à la date de fin à partir de l'input
	$('date_depart').addEvent('change', function(e) {
		date_retourRequest($('date_depart').getProperty('value'));
	});
	// Evenement pour mettre l'heure de fin à l'identique de l'heure de debut
	$('heure_depart').addEvent('change', function(e) {
		$('heure_retour').setProperty('value',this.getProperty('value'));
	});	
	// Affichage des message d'erreurs
	$('devis_express').addEvent('submit', function(e) {
		new Event(e).stop();
		
		var checkDevisEpressRequest  = new Request.HTML({
			url: 'ajax_resa.php?cmd=setDevisEpress',
			onRequest: function(){
				$('spinner').set('html', '<img src="javascripts/MooDialog/css/spinner.gif" alt="chargement" />');
			},
			evalScripts:false, // on désactive le javascript
			evalResponse:false, // on l'exécute manuellement
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){
				$exec(responseJavaScript);
				$('spinner').set('html', '');
				//alert(responseHTML);
				if (responseHTML == '1') { $('devis_express').submit(); }  // Devis express ok
				else {
					if (responseHTML != '') {
						new MooDialog.Error(stripHTML(responseHTML)); // Affichage erreur php
						// stripHTML a cause d'un bug ie
					}
				}
			}
		})
		checkDevisEpressRequest.post($('devis_express'));
	});
});
