/* GLOBAL variables */

AjaxPrqaspec = {
  init : function() {
    if ($('prqaspec[draw]').value == 2){
      var url = AjaxPrqaspec.url;
      var args = "prqaspec[init]=1" + "&prqaspec[draw]=" + $('prqaspec[draw]').value;
      Logger.note(url + '?' + args);
      var myAjax = new Ajax.Request(
	          url,
			  {
			    method: 'get',
			    parameters: args,
	            onComplete: function(response) {
	              Logger.trace('Response received!');
                  responseTag = response.responseText.substring(0, 5);
                 
                  if (responseTag != '<?xml') {
                    Logger.error('Received response is malformed!');
                  } else {
                    AjaxPrqaspec.handleInitResponse(response);
                  }
	            }
	          }
		
	  );
	}
  },
    
    handleRequest : function(el) {
    	var url = AjaxPrqaspec.url;
        var args = "";
	    
	    switch (el.name) {
	        case "prqaspec[draw]":
	            $('prqaspec[annees]').options[0].selected = "selected";
	            $('prqaspec[secteurs]').options[0].selected = "selected";
	            $('prqaspec[polluants]').options[0].selected = "selected";
	            $('prqaspec[enjeux]').options[0].selected = "selected";
		  	  	$('prqaspec[annees]').disabled = "disabled";
		  	  	$('prqaspec[secteurs]').disabled = "disabled";
		  	  	$('prqaspec[polluants]').disabled = "disabled";
		  	  	$('prqaspec[enjeux]').disabled = "disabled";
	    		this.emptySelectElement($('prqaspec[annees]'));
	            args = el.name + "=" + el.value;
	            break;
	        case "prqaspec[annees]":
	            $('prqaspec[secteurs]').options[0].selected = "selected";
	            $('prqaspec[polluants]').options[0].selected = "selected";
	            $('prqaspec[enjeux]').options[0].selected = "selected";
		  	  	$('prqaspec[secteurs]').disabled = "disabled";
		  	  	$('prqaspec[polluants]').disabled = "disabled";
		  	  	$('prqaspec[enjeux]').disabled = "disabled";
	    		this.emptySelectElement($('prqaspec[secteurs]'));
	            args = el.name + "=" + el.value + "&prqaspec[draw]=" + $('prqaspec[draw]').value;
	            break;
	        case "prqaspec[secteurs]":
	            $('prqaspec[polluants]').options[0].selected = "selected";
	            $('prqaspec[enjeux]').options[0].selected = "selected";
		  	  	$('prqaspec[polluants]').disabled = "disabled";
		  	  	$('prqaspec[enjeux]').disabled = "disabled";
	    		this.emptySelectElement($('prqaspec[polluants]'));
	    		this.emptySelectElement($('prqaspec[enjeux]'));
	            args = el.name + "=" + el.value + "&prqaspec[draw]=" + $('prqaspec[draw]').value + "&prqaspec[annees]=" + $('prqaspec[annees]').value;
	        case "prqaspec[enjeux]":
	            $('prqaspec[polluants]').options[0].selected = "selected";
		  	  	$('prqaspec[polluants]').disabled = "disabled";
	    		this.emptySelectElement($('prqaspec[polluants]'));
	            args = el.name + "=" + el.value + "&prqaspec[secteurs]=" + $('prqaspec[secteurs]').value + "&prqaspec[draw]=" + $('prqaspec[draw]').value + "&prqaspec[annees]=" + $('prqaspec[annees]').value;
	    }
	    
	    Logger.note(url + '?' + args);
	    var myAjax = new Ajax.Request(
	        url,
			{
			  method: 'get',
			  parameters: args,
	          onComplete: function(response) {
	             Logger.trace('Response received!');
	             AjaxPrqaspec.handleInitResponse(response);
	          }	          
			}
	    );
    },
    
    emptySelectElement : function(select) {
        var l = select.length;
        for (var i = 1; i < l; i++) {
            select.removeChild(select.options[1]);
        }
    },
    
    fillSelectElement : function(select, xml) {
        var l = xml.length;
        for (var i = 0; i < l; i++) {
            var id = xml.item(i).getAttribute("key");
            var label = xml.item(i).getAttribute("value");
            select.options[i + 1] = new Option(label, id, false, false);
        }
        select.disabled = '';
    },
    
    handleInitResponse : function(response) {
        var annees = response.responseXML.getElementsByTagName('response')[0].getElementsByTagName('annees')[0].getElementsByTagName('item');
        var select = $('prqaspec[annees]');
        this.fillSelectElement(select, annees);
        
        var enjeux = response.responseXML.getElementsByTagName('response')[0].getElementsByTagName('enjeux')[0].getElementsByTagName('item');
        var select = $('prqaspec[enjeux]');
        this.fillSelectElement(select, enjeux);

        var secteurs = response.responseXML.getElementsByTagName('response')[0].getElementsByTagName('secteurs')[0].getElementsByTagName('item');
        var select = $('prqaspec[secteurs]');
        this.fillSelectElement(select, secteurs);
        
        var polluants = response.responseXML.getElementsByTagName('response')[0].getElementsByTagName('polluants')[0].getElementsByTagName('item');
        var select = $('prqaspec[polluants]');
        this.fillSelectElement(select, polluants);
        
    }
};
