/** 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 marque / modèle
 *	sender : id de l'élément qui a envoyé l'evt onchange
 *
 *
 */   
	function pa_setmarq(sender){
		// properties
		
		var marq_select = new form_select($('id_marque'));
		var model_select = new form_select($('id_modele'));

		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 'id_marque':
				/* oups ! pas de propriété length dans un atableau associatif en 
				javascript - pas moyen de compter simplement le nb d'éléments ! */
			//	alert (options.length);
			//	 if (options.length > 0){
  				model_select.def_option = {'' : 'Divers autres modèles'};
  			  model_select.reset();
  			  model_select.populate(options);
    			model_select.disable(false);
  		//	} else {
      //    model_select.def_option = {'' : 'nc'};
      //    model_select.reset();
      //    model_select.disable(true);
      ///    }
				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 'id_marque':	
        model_select.def_option = {'' : 'nc'};			
				model_select.reset();
				model_select.disable(true);
			
				var sel = marq_select.getSelectedOption();
				// pas de requête si selected est null ou -1
				if (sel=='' || sel==-1) action = null;
				else action = 'pa_updatemodels';
			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_country()
	



