/** ajax handler on client Side
 *  tous les appels ajax arrivent sur le point d'entrée ajax.php à la racine.
 *
 *
 *
 */    

/** modifie les cascading select choix theme / rubrique
 *	sender : id de l'élément qui a envoyé l'evt onchange
 *
 *
 */   
	function pa_setSubRub(sender){
		// properties
		var rubrique_select = new form_select($('type'));
		var subrub_select = new form_select($('srub'));
		
		var action = null;
		
		var processing = function(flag) {
			// wait indicator
			var waiting =  '<img src="'+BASEURL+'ajax/img/indicator.gif" border="0" alt="processing" />';
			var done = '&nbsp;';
			$('processing').innerHTML = (flag) ? waiting : done;
		};	

		/** ============== response =============
		 *
		 */     		
		var response = function (){
			eval ('var options = '+ ajax.response);
			
			switch (sender) {
				case 'type':
					subrub_select.def_option = {'' : 'Toutes les Sous-Rubriques'};
					subrub_select.reset();
					subrub_select.populate(options);
					subrub_select.disable(false);
					break;
			}
			
			processing(false);
		};
		
		
		//  ==============  contructor : make request  =========================
		
		// waiting indicator
		processing(true);

		var ajax = new sack();
		if (ajax.failed) {
			alert ('Ajax Failed !!!');
		}
		
	   	ajax.requestFile = BASEURL + "ajax.php";
		// si ajax.execute est vrai, exécute un eval() sur le contenu de ajax.response;
		ajax.execute = false;
		ajax.onCompletion = response;
		
		// action controller
		switch (sender) {
			case 'type':	
        		subrub_select.def_option = {'' : 'nc'};			
				subrub_select.reset();
				subrub_select.disable(true);
			
				var sel = rubrique_select.getSelectedOption();
				// pas de requête si selected est null ou -1
				if (sel=='' || sel==-1) action = null;
				else action = 'pa_updateRubriques';
			break;

			default:
				alert ('Action non gérée');
				action = null;
		}
		
		if (action){
			// passe les variables :
			ajax.setVar('i', sel);
			ajax.setVar('action', action);
			ajax.runAJAX();
		} else {
			ajax = null;					
			processing(false);
		}


	} // end update
