var Wykresy = Class.create();

     Wykresy.prototype = {
          initialize: function()
          {
               this._ZakresTerytorialny=document.forms['form1'].elements['zakres_terytorialny'];
               this._AnalizujButton=$('button_analizuj');
               this._MoveSelectedButton=$('button_move_selected');
               this._DeleteSelectedButton=$('button_delete_selected');
               this._MoveAllButton=$('button_move_all');
               this._DeleteAllButton=$('button_delete_all');
               this._Url = '/analizy.php';
               this._ZakresTerytorialny.onchange = this.zakresTerytorialny.bindAsEventListener(this);
               this._AnalizujButton.onclick = this.analizujButton.bindAsEventListener(this);
               this._MoveSelectedButton.onclick = this.moveButton.bindAsEventListener(this);
               this._DeleteSelectedButton.onclick = this.deleteButton.bindAsEventListener(this);
               this._MoveAllButton.onclick = this.moveButton.bindAsEventListener(this);
               this._DeleteAllButton.onclick = this.deleteButton.bindAsEventListener(this);
          },


          zakresTerytorialny: function()
          {
               $('badane_jednostki').innerHTML='';
               for(ii=0;ii<this._ZakresTerytorialny.length;ii++)
               {
                   if(this._ZakresTerytorialny[ii].selected)
                   {
                         this.usunListy();
                         switch(this._ZakresTerytorialny[ii].value)
                         {
                              case "p":
                                   this.pobierzZakresTerytorialny('wojewodztwa',0,0);
                                   this.pobierzZakresTerytorialny('powiaty',1,0);
                                   this._poziomZaglebienia='powiaty';
                                    $('table_gminy').style.display='none';
                              break;
                              case "g":
                                   this.pobierzZakresTerytorialny('wojewodztwa',0,0);
                                   this.pobierzZakresTerytorialny('powiaty',0,0);
                                   this.pobierzZakresTerytorialny('gminy',1,0);
                                   this._poziomZaglebienia='gminy';
                              break;
                              default:
                                   this.pobierzZakresTerytorialny('wojewodztwa',1,0);
                                   this._poziomZaglebienia='w';
                                   $('table_powiaty').style.display='none';
                                   $('table_gminy').style.display='none';
                              break;
                         }
                   }

               }
               $('zakres_terytorialny').blur();
               window.focus();
          },
          

          createForm: function()
          {
               var f=Array('rodzaj_analizy','sel_branze','sel_podbranze',
                           'zakres_terytorialny','przedmiot', 'obiekt_analizy','rodzaj_wykresu');
               var q='';
               for (ii=0;ii<f.length;ii++)
               {
                    if($(f[ii])!=null)
                         q+='&'+f[ii]+'='+$(f[ii]).value;
               }


               switch($('zakres_terytorialny').value)
               {
                    case "p": q+='&sel_wojewodztwo='+$('sel_wojewodztwo').value;
                    break;
                    case "g": q+='&sel_powiat='+$('sel_powiat').value;
                    break;
               }


               var sel = document.forms['form1'].elements['badane_jednostki'];
               var badane_jednostki='';

               for(ii=0;ii<sel.length;ii++)
               {
                     if(badane_jednostki!='')
                        badane_jednostki+=','+sel[ii].value;
                     else badane_jednostki+='&badane_jednostki='+sel[ii].value;
               }
               q+=badane_jednostki;

               var data='&data_od='+$('rok_od').value+'-'+$('miesiac_od').value+'-'+$('dzien_od').value;
                   data+='&data_do='+$('rok_do').value+'-'+$('miesiac_do').value+'-'+$('dzien_do').value;
               q+=data;
               return(q);
          },


          analizujButton: function()
          {
               var q=this.createForm();
               $('wykres').innerHTML='';
		           var pars = 'akcja=xml'+q;
		           var myAjax = new Ajax.Request(this._Url,{method: 'post', parameters: pars, onComplete: this.odpAnalizujButton});
          },


          odpAnalizujButton: function(odpowiedz)
          {
               if(odpowiedz.responseText!=0)
               {
                    var wykres=$('rodzaj_wykresu').value;
                    var chart1 = new FusionCharts("/swf/chart/"+wykres+"?ChartNoDataText=Brak danych", "chart1Id", "600", "520", "0", "0");
			              chart1.setDataXML(odpowiedz.responseText);
			              chart1.render("wykres");
			              window.scrollBy(0,400);
               }
               else $('wykres').innerHTML='<center class="logowanie_err">Brak danych</center>';
          },


          moveButton: function (event)
          {
               switch(this._ZakresTerytorialny.value)
               {
                    case "p": var name="sel_powiat";
                    break;
                    case "w": var name="sel_wojewodztwo";
                    break;
                    case "g": var name="sel_gmina";
                    break;
               }

               var orginal = document.forms['form1'].elements[name];
               var obj = $('badane_jednostki');

               for(ii=0;ii<orginal.length;ii++)
               {
                    if(Event.element(event).id=='button_move_all')
                    {
                         var newOpt = new Option(orginal[ii].title, orginal[ii].value);
                         obj.options[obj.length] = newOpt;
                    }
                    else if(orginal[ii].selected && Event.element(event).id=='button_move_selected')
                    {
                         var newOpt = new Option(orginal[ii].title, orginal[ii].value);
                         obj.options[obj.length] = newOpt;
                    }
               }
          },


          deleteButton: function (event)
          {
               var obj = $('badane_jednostki');

	             for (i = obj.length - 1; i>=0; i--)
		                if(Event.element(event).id=='button_delete_all')
		                {
		                     obj.options[i]=null;
			              }
			              else if(obj.options[i].selected && Event.element(event).id=='button_delete_selected')
			              {
		                     obj.options[i]=null;
			              }
          },

          pobierzZakresTerytorialny: function(zakres, multiple, _parent)
          {

               //funkcja dla powiatu
               if(_parent && zakres=='powiaty')
               {
                    $('sel_wojewodztwo').blur();
                    window.focus();

                    _parent=document.forms['form1'].elements['sel_wojewodztwo'].value;
                    if(this._poziomZaglebienia!=zakres)multiple=0;
               }
               //funkcja dla gminy
               if(_parent && zakres=='gminy')
               {
                    _parent=document.forms['form1'].elements['sel_powiat'].value;
                    if(this._poziomZaglebienia!=zakres)multiple=0;
                    $('sel_powiat').blur();
                    window.focus();
               }


               var pars = 'akcja='+zakres+'&multiple='+multiple+'&poziom_zag='+this._poziomZaglebienia
                         +'&parent='+_parent;
               var myAjax = new Ajax.Updater('div_'+zakres, this._Url, { method: 'post', parameters: pars});
               $('table_'+zakres).style.display='block';
               $('div_'+zakres).style.display='block';
          },



          usunListy: function()
          {
               Array('div_wojewodztwa','div_powiaty','div_gminy').each(function(value, index){
                 $(value).innerHTML="";
                 $(value).style.display='none';});
          },

          pobierzBranze: function()
          {
               var pars = 'akcja=branze';
               var myAjax = new Ajax.Updater('div_branze', this._Url, { method: 'post', parameters: pars});
          },



          pobierzPodbranze: function()
          {
               var branza=document.forms['form1'].elements['sel_branze'];

               if(branza.value=='0')
               {
                    $('div_podbranze').innerHTML="";
                    $('div_podbranze').style.display='none';
                    $('table_podbranze').style.display='none';
               }
               else {
                    $('table_podbranze').style.display='block';
                    $('div_podbranze').style.display='block';
                    $('sel_branze').blur();
                    window.focus();
                    var pars = 'akcja=podbranze&id_branzy='+branza.value;
                    var myAjax = new Ajax.Updater('div_podbranze', this._Url, { method: 'post', parameters: pars});
               }
          }

  };
  var o=new Wykresy();
