function makeSingleOption (e, msg) {
  e.innerHTML = '';
  var opt = document.createElement ('option');
  opt.value = '';
  opt.innerHTML = msg;
  e.appendChild (opt);
}
function addOption (e, v) {
  var opt = document.createElement ('option');
  opt.value = v;
  opt.innerHTML = v;
  e.appendChild (opt);
}
function tabs (l){
  if (l.endsWith('carros')) {l='carros'};
  if (l.endsWith('motos')) {l='motos'};
  if (l.endsWith('pesados')) {l='pesados'};
  $$('.tab').invoke ('hide');
  $('tab'+l).show ();
  $$('ul.tabs a').invoke ('removeClassName', 'selected')
  $$('a[href=#'+l+']').first ().addClassName ('selected')
}
function pegaFabricantes (url) {
  makeSingleOption (porteElm.next (), 'Aguarde...');
  new Ajax.Request (url,{
    onSuccess: function (t) {
      var a = eval (t.responseText);
      makeSingleOption (porteElm.next (), 'Selecione um fabricante');
      for (var i=0,total = a.length; i<total; i++) { addOption (porteElm.next (), a[i]); }
    }
  });
}
Event.onReady( function (){
  new Ajax.Autocompleter('s','s_return', './ajax/palavras', {});
  Event.observe ('s', 'click', function (e) {
    var elm = Event.element(e);
    elm.value='';
    if (BrowserDetect.browser == 'Explorer' && (BrowserDetect.version <= 6))
      elm.style.height='28px';
  });
  Event.observe ($$('form.busca')[0], 'submit', function (event) {
    var inp = $$('form.busca p input')[0];
  });
  Event.observe ($('minhaContaTrigger'), 'click', function (e) {
    DGwindow.show ('minhaConta', getScrollXY()[1] + 200);
    Event.stop (e);
  });
  Event.observe ($('avancadaTrigger'), 'click', function (e) {
    tabs ('carros');
    DGwindow.show ('avancado', getScrollXY()[1] + 100);
    Event.stop (e);
  });
  $$('select.estados').each (function (e){
    Event.observe (e, 'change', function (e) {
      estadoElm = Event.element (e);
      makeSingleOption (estadoElm.next (), 'Aguarde...');
      new Ajax.Request (localhost+'/ajax/cidades/'+$F(estadoElm),{
        onSuccess: function (t) {
          var a = eval (t.responseText);
          makeSingleOption (estadoElm.next (), 'Selecione uma cidade, se desejar');
          for (var i=0,total = a.length; i<total; i++) { addOption (estadoElm.next (), a[i]); }
        }
      });
    });
  });
  $$('select.fabricante').each (function (e){
    Event.observe (e, 'change', function (e) {
      fabricanteElm = Event.element (e);
      makeSingleOption (fabricanteElm.next (), 'Aguarde...');
      new Ajax.Request (localhost+'/ajax/modelos/'+$F(fabricanteElm.form.tipo)+'/'+$F(fabricanteElm),{
        onSuccess: function (t) {
          var a = eval (t.responseText);
          makeSingleOption (fabricanteElm.next (), 'Selecione um modelo');
          for (var i=0,total = a.length; i<total; i++) { addOption (fabricanteElm.next (), a[i]); }
        }
      });
    });
  });
  $$('select.porte').each (function (e){
    Event.observe (e, 'change', function (e) {

      porteElm = Event.element (e);

      $F(porteElm).scan (/Caminh(a|)o/, function (){
          var url = localhost+'/ajax/fabricantes/pesado_caminhoes';
          pegaFabricantes (url);
        });
      $F(porteElm).scan (/(|)nibus/, function (){
          var url = localhost+'/ajax/fabricantes/pesado_onibus';
          pegaFabricantes (url);
      });
    });
  });
  $$('ul.tabs a').each (function (e){
    Event.observe (e, 'click', function (e){
      var elm = Event.element (e);
      var l = elm.getAttribute ('href').substring (1);
      tabs(l);
      elm.blur ();
      Event.stop (e);
    });
  });
  $$('#avancado .valorCkbox').each (function (e){
    Event.observe (e, 'click', function (e){
      var ckBox = Event.element (e);
      if (!ckBox.checked) {
        ckBox.up ('p').setStyle ({color:'#CCC'})
        ckBox.up ('p').descendants ().each (function (e) { e.setStyle ({color: '#CCC'}); });
        ckBox.siblings().each (function (e){
          e.disabled = 'disabled';
          e.setStyle ({background:'#FFF', border:0});
        });
      } else {
        ckBox.up ('p').setStyle ({color:'#000'})
        ckBox.up ('p').descendants ().each (function (e) { e.setStyle ({color: '#000'}); });
        ckBox.siblings().each (function (e){
          e.disabled = false;
          e.setStyle ({background:'#FFF', border:0});
        });
        ckBox.up('p').down ('input.valor', 0).setStyle ({border:'1px solid #CCC'});
        ckBox.up('p').down ('input.valor', 1).setStyle ({border:'1px solid #CCC'});
      }
    });
  });
});
