// Generated from /dynamic/collectors/proxy.phtml?showstub=true&objectname=CollectorController, DO NOT EDIT!
if(typeof(CollectorController) == 'undefined')
    CollectorController = new Object();

Object.extend(CollectorController,
{
    _callback4a5aeea9af329: "/dynamic/collectors/proxy.phtml",
    _getJSON: function(r, j)
    {
        j = (j || r.headerJSON || r.responseJSON);
        if(j == null)
            return null;
        if(j.errors || j.failed)
        {
            var f = function(a, c)
            {
                var e = $(c);
                if(a.length > 0)
                {
                    var s = '<ul>';
                    $(a).each(function(e){ s += '<li>'+e+'</li>'; });
                    s += '</ul>';
                    if(e){ e.update(s); e.show(); }
                }
                else
                {
                    if(e){ e.hide(); }
                }
            }
            if(!j.errors)
            {
                j.errors = {error: [], warning: [], info: []}
                if(j.failed)
                    j.errors.error[0] = j.message;
            }

            f(j.errors.error, 'globuleError');
            f(j.errors.warning, 'globuleWarning');
            f(j.errors.info, 'globuleInfo');
        }
        return j;
    },

    _proxy: function(callbackurl, methodName, args, sync)
    {
        var targs = $H();
        for(var i = 0; i < args.length-1; i++){ targs.set('args[' + i + ']', args[i]); }
        callback = args[args.length-1];
        var ar = new Ajax.Request(callbackurl + '?method=' + methodName,
        {
            method: 'post',
            asynchronous: (!sync),
            parameters: targs,
            onComplete: (sync)?null:callback,
            onException: function(request, e){console.debug(request, e);}
        });
        if(sync)
            return new Ajax.Response(ar);
    },

    _autoCompleter: function(){ this._proxy(this._callback4a5aeea9af329, '_autoCompleter', arguments, false); },
    _autoCompleter_sync: function(){ return this._proxy(this._callback4a5aeea9af329, '_autoCompleter', arguments, true); },

    _t: ''
});
// End of generated code
    


Object.extend(CollectorController,
{
	init: function()
	{
		if($('locality'))
		{
			new Ajax.Autocompleter('locality','ac_locality_choices','/collectors/proxy.phtml?method=_autoCompleter', { minChars: 2,afterUpdateElement : this.setLocalityId,callback:this.getParameter} );
			new Ajax.Autocompleter('districtStreet','ac_district_street_choices','/collectors/proxy.phtml?method=_autoCompleter', { minChars: 2,afterUpdateElement : this.setDistrictStreetId,callback:this.getParameter} );
		}
	},
	init2: function()
	{
		
		YAHOO.example.Combobox = function() 
		{
			// Instantiate DataSources
			//var bDS = new YAHOO.util.LocalDataSource(YAHOO.example.Data.menu.locality);
			var lDS = new YAHOO.util.XHRDataSource("/collectors/proxy.phtml?method=_autoCompleteryui");
			// Set the responseType
			lDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
			// Define the schema of the JSON results
			lDS.responseSchema = {
				resultsList : "ResultSet.Result",
				fields: ["label", "id", "zoneId"]
			};
			
			// Instantiate AutoCompletes
			var oConfigs = {
				prehighlightClassName: "yui-ac-prehighlight",
				useShadow: true,
				queryDelay: 0,
				minQueryLength: 0,
				animVert: .01
			}
			var lAC = new YAHOO.widget.AutoComplete("locality", "ac_locality_choices", lDS, oConfigs);
			lAC.generateRequest = function(sQuery) {
				return '&output=json&results=1000&object=locality&localityId='+$F('localityId')+'&locality=' + sQuery ;
			};
			lAC.maxResultsDisplayed = 1000;
			// Breakfast combobox
			var bToggler = YAHOO.util.Dom.get("toggleB");
			var oPushButtonB = new YAHOO.widget.Button({container:bToggler});
			var toggleB = function(e) {
				//YAHOO.util.Event.stopEvent(e);
				if(!YAHOO.util.Dom.hasClass(bToggler, "open")) {
					YAHOO.util.Dom.addClass(bToggler, "open")
				}				
				// Is open
				if(lAC.isContainerOpen()) {  //console.debug('fermer');
					//$$('div#ac_locality_choices .yui-ac-content')[0].setStyle({height: '0px'});
					//$('ac_locality_choices').setStyle({height: '0px'});
					lAC.collapseContainer();
				}
				// Is closed
				else {   //console.debug('ouvrir');
					//$$('div#ac_locality_choices .yui-ac-content')[0].setStyle({height: '154px'});
					//$('ac_locality_choices').setStyle({height: '154px'});
					lAC.getInputEl().focus(); // Needed to keep widget active
					setTimeout(function() { // For IE
						lAC.sendQuery("");
					},0);
				}
			}
			oPushButtonB.on("click", toggleB);
			lAC.containerCollapseEvent.subscribe(function(){YAHOO.util.Dom.removeClass(bToggler, "open")});
			var lHandler = function(sType, aArgs) { 
				var myAC = aArgs[0]; // reference back to the AC instance 
				var elLI = aArgs[1]; // reference to the selected LI element 
				var oData = aArgs[2]; // object literal of selected item's result data
				
				$('btnCalendar').hide();
				$('localityId').value=oData[1];
				
				$$('div#ac_locality_choices .yui-ac-content')[0].setStyle({height: '0px'});
				$('ac_locality_choices').setStyle({height: '0px'});
				
				if(oData[2] != "" && oData[2] != null) {
					$('submitCalendar').update('Afficher le calendrier de '+oData[0]);
					$('btnCalendar').show();
					$('zoneId').value=oData[2];
				}
				else {
					$('districStreetInput').show();
				}
			}; 
			lAC.itemSelectEvent.subscribe(lHandler);
			
			
			
			
			
			

			// Instantiate DataSources
			//var bDS = new YAHOO.util.LocalDataSource(YAHOO.example.Data.menu.locality);
			var dsDS = new YAHOO.util.XHRDataSource("/collectors/proxy.phtml?method=_autoCompleteryui");
			// Set the responseType
			dsDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
			// Define the schema of the JSON results
			dsDS.responseSchema = {
				resultsList : "ResultSet.Result",
				fields: ["label", "id", "zoneId"]
			};
			
			// Instantiate AutoCompletes
			var lConfigs = {
				prehighlightClassName: "yui-ac-prehighlight",
				useShadow: true,
				queryDelay: 0,
				minQueryLength: 0,
				animVert: .01
			}
			var dsAC = new YAHOO.widget.AutoComplete("districtStreet", "ac_district_street_choices", dsDS, lConfigs);
			dsAC.generateRequest = function(sQuery) {
				return '&output=json&results=1000&object=districtStreet&localityId='+$F('localityId')+'&districtStreet=' + sQuery ;
			};
			dsAC.maxResultsDisplayed = 1000;
			// Breakfast combobox
			var dsToggler = YAHOO.util.Dom.get("toggleDistrictStreet");
			var dsPushButtonB = new YAHOO.widget.Button({container:dsToggler});
			var toggleDistrictStreet = function(e) {
				//YAHOO.util.Event.stopEvent(e);
				if(!YAHOO.util.Dom.hasClass(dsToggler, "open")) {
					YAHOO.util.Dom.addClass(dsToggler, "open")
				}				
				// Is open
				if(dsAC.isContainerOpen()) {
					//$$('div#ac_district_street_choices .yui-ac-content')[0].setStyle({height: '0px'});
					//$('ac_district_street_choices').setStyle({height: '0px'});
					dsAC.collapseContainer();
				}
				// Is closed
				else { 
					//$$('div#ac_district_street_choices .yui-ac-content')[0].setStyle({height: '154px'});
					//$('ac_district_street_choices').setStyle({height: '154px'});
					dsAC.getInputEl().focus(); // Needed to keep widget active
					setTimeout(function() { // For IE
						dsAC.sendQuery("");
					},0);
				}
			}
			dsPushButtonB.on("click", toggleDistrictStreet);
			dsAC.containerCollapseEvent.subscribe(function(){YAHOO.util.Dom.removeClass(dsToggler, "open")});
			var dsHandler = function(sType, aArgs) { 
				var myAC = aArgs[0]; // reference back to the AC instance 
				var elLI = aArgs[1]; // reference to the selected LI element 
				var oData = aArgs[2]; // object literal of selected item's result data
				
				$$('div#ac_district_street_choices .yui-ac-content')[0].setStyle({height: '0px'});
				$('ac_district_street_choices').setStyle({height: '0px'});
				
				$('districtStreetId').value=oData[1];
				$('zoneId').value=oData[2];
				$('submitCalendar').update('Afficher le calendrier de '+oData[0]);
				$('btnCalendar').show();
			}; 
			dsAC.itemSelectEvent.subscribe(dsHandler);			
			
			return {
				lDS: lDS,
				lAC: lAC,
				dsDS: dsDS,
				dsAC: dsAC
			}		
		}();
	
		
	},
	setLocalityId : function (text, li)
	{
    	$('btnCalendar').hide();
    	$('localityId').value=li.id;
       
       	if($(li).getAttribute('zoneId') != "")
       	{
       		$('submitCalendar').update('Afficher le calendrier de '+$(li).innerHTML);
       		$('btnCalendar').show();
       		$('zoneId').value=$(li).getAttribute('zoneId');
       	}
		else
		{
			$('districStreetInput').show();
		}
    },
    setDistrictStreetId : function (text, li)
	{
    	$('districtStreetId').value=li.id;
    	$('zoneId').value=$(li).getAttribute('zoneId');
       	$('submitCalendar').update('Afficher le calendrier de '+$(li).innerHTML);
        $('btnCalendar').show();
     
    },
    getParameter : function (element,entry)
    {
    	return entry+'&object='+element.id+'&localityId='+$('localityId').value;
    }

	 		 
});
