$(function() {
	/**
	 * Fonction de rechargement des définitions jquery appelée après chaque requête ajax.
	 * Permet d'appliquer jquery aux nouveaux éléments.
	 */
	function initAjax(){
		// On transforme en formulaire ajax tous les formulaires marqués comme tel par la classe "ajaxForm" et ceux contenus dans les onglets.
		$('.ui-tabs-panel form, .ajaxForm').each(function(key, element){
			$(element).ajaxForm({target: $(element).parents(".ui-tabs-panel"), replaceTarget: false, success: initAjax});
		});
		
		// On court circuite le fonctionnement des tokens csrf symfony pour préparer un override. (voir plus bas)
		$('a[onclick*="_csrf_token"]').attr('onclick', '');
	}
	
	/**
	 * Fix de la suppression en ajax pour symfony.
	 * La construction dynamique du formulaire de delete est interceptée et réalisée en ajax par jquery.
	 */
	$('a[onclick*="_csrf_token"]').live('click', function(){
		var f = document.createElement('form'); 
		f.style.display = 'none'; 
		this.parentNode.appendChild(f); 
		f.method = 'post'; 
		f.action = this.href;
		var m = document.createElement('input'); 
		m.setAttribute('type', 'hidden'); 
		m.setAttribute('name', 'sf_method');
		m.setAttribute('value', 'delete'); 
		f.appendChild(m);
		var m = document.createElement('input'); 
		f.appendChild(m);
		$(f).ajaxSubmit({target: ".ui-tabs-panel", replaceTarget: false, success: initAjax});
		return false;
	});
	
	/**
	 * Initialisation du système d'onglets.
	 */
	$( "#tabs").tabs({
		select: function(event, ui) {
				var url = $.data(ui.tab, 'load.tabs');
				if( url ) {
					location.href = url;
					return false;
				}
				return true;
			}
	});
	
	$('.tryIt').click(function(){
		$( "#tabs").tabs("select", 1);
	});
	
	
	$('#tabs-1 a, #tabs-2 a').not('.noButton').button({});
	

	$('input.colorpicker').not('.processed').colorPicker();
	$('input.colorpicker').addClass('processed'); // fix pour empêcher double création du colorpicker.
});
