window.addEvent('domready', function() {
	$$('a.js-confirm').each(function(item) {
		item.addEvent('click', function(e) {
			if (!confirm('Sure?')) new Event(e).stop();
		});
	});
	//
	ajaxizeObjects();
	//
	$$('input.label-inside').each(function(item) {
		item.initialLabel=item.value;
		item.addClass('focus-out');
		item.addEvent('focus', function() {
			if (item.value!=item.initialLabel) return;
			item.removeClass('focus-out');
			item.value='';
		});
		item.addEvent('blur', function() {
			if (item.value!='') return;
			item.addClass('focus-out');
			item.value=item.initialLabel;
		});
	});
});
function ajaxizeObjects() {
	var objects=$$('a.via-ajax, form.via-ajax');
	objects.each(function(item, index) {
		if (item.ajaxized) return;
		item.ajaxized=true;
		//
		if (item.get('tag')=='a') {
			// Les liens
			item.href+=item.href.indexOf('?')>-1 ? '&inline' : '?inline';
			item.addEvent('click', function(e) {
				new Event(e).stop();
				var xhr=new Request({url:item.href});
				xhr.addEvent('onComplete', function(res) {
					manageAjaxizedRes(item, res);
				});
				xhr.send();
			});
		} else {
			// Les formulaires
			item.addEvent('submit', function (e) {
				new Event(e).stop();
				if (!item.ajaxHidden) {
					var hiddenInput=new Element('input', {'type':'hidden', 'name':'called-via-ajax', 'value':'yes'});
					item.ajaxHidden=hiddenInput;
					item.adopt(hiddenInput);
				}
				item.set('send', {onSuccess:function(res) {
					manageAjaxizedRes(item, res);
				}});
				item.send();
			});
		}
	});
}
function manageAjaxizedRes(item, res) {
	//alert(res);
	var o=JSON.decode(res);
	if (o.label) item.set('html', o.label);
	if (o.href) item.href=(o.href)+'?inline';
	if (o.update) $(o.update).set('html', o.updateData);
	if (o.removeClass) item.removeClass(o.removeClass);
	if (o.addClass) item.addClass(o.addClass);
	if (o.toggleClass) item.toggleClass(o.toggleClass);
	if (o.alert) alert(o.alert);
	if (o.evalAfter) eval(o.evalAfter);
	ajaxizeObjects();
}
// On masque les champs de date à masquer...
window.addEvent('domready', function() {
	var fields=$$('.date-field input.hidden');
	fields.each(function(item) {
		toggleVis(item.parentNode);
	});
});
//
var activeToggler;
function getToggler(idLink, idBlock) {
	var o=$(idLink);
	var s=new Fx.Slide($(idBlock)).hide();
	// Pour plus tard...
	o.slide=s;
	s.slideTarget=$(idBlock);
	s.slideToggler=o;
	//
	o.addClass('toggler-closed');
	o.addEvent('click', function(e) {
    	new Event(e).stop();
    	toggleToggler(o/*, s*/);
    	/*o.toggleClass('toggler-closed');
		o.toggleClass('toggler-open');
    	if (!s.open) {
    		// alert('opening');
	   		if (activeToggler && activeToggler!=s) activeToggler.slideOut();
	    	activeToggler=s;
    		try {
    			var input=$(idBlock).getElement('input');
    			if (input) {
    				input.focus();
    				input.select();
    			}
    		} catch (e) {}
    	}
		s.toggle();*/
	});
	return s;
}
function toggleToggler(o, now) {
	s=o.slide;
	o.toggleClass('toggler-closed');
	o.toggleClass('toggler-open');
   	if (!s.open) {
   		if (activeToggler && activeToggler!=s) {
   			activeToggler.slideOut();
   			activeToggler.slideToggler.removeClass('toggler-open');
   			activeToggler.slideToggler.addClass('toggler-closed');
   		}
    	activeToggler=s;
   		try {
   			var input=s.slideTarget.getElement('input');
   			if (input) {
   				input.focus();
   				input.select();
   			}
   		} catch (e) {}
   	}
	if (now) s.open ? s.hide() : s.show();
	else s.toggle();
}
function toggleLogForm() {
	toggleToggler($('client-log-toggle'));
}
function toggleVis(o) {
	o=$(o);
	if (!o) return;
	o.setStyle('display', o.getStyle('display')=='none' ? '' : 'none');
}
function show(o) {
	if (!$(o)) return;
	$(o).setStyle('display', '');
}
function hide(o) {
	if (!$(o)) return;
	$(o).setStyle('display', 'none');
}
//
function mod(x, y) {
	return ((x % y < 0) ? (x % y + y) : x % y);
}
//
var langLabels={'fr':'Français', 'en':'English', 'es':'Español', 'de':'Deutsch', 'nl':'Nederlands', 'ar':'العربية', 'ma':'Marocain'};