window.addEvent('domready', function() {
  initUpdateModels = function () {
    if ($defined($('model_select')) && $defined($('make_select'))) {
      if ($('model_select').getProperty('value') == 'All' || $('model_select').getProperty('value') == 'Tous') {
        updateModels();
      }
      $('make_select').removeEvents('change');
      $('make_select').addEvent('change', function() {
        updateModels();
      });
    }
    if ($defined($('model_select_detailed')) && $defined($('make_select_detailed'))) {
      if ($('model_select_detailed').getProperty('value') == 'All' || $('model_select_detailed').getProperty('value') == 'Tous') {
        updateModels();
      }
      $('make_select_detailed').removeEvents('change');
      $('make_select_detailed').addEvent('change', function() {
        updateModels();
      });
    }
  };
  updateModels = function () {
    if ($defined($('model_select')) && $defined($('make_select'))) {
      $('model_select').empty();
      var selectedmake = $('make_select').getValue();
      for (optionkey in ModelsObject[selectedmake]) {
        new Element('option').setProperty('value',optionkey).setText(ModelsObject[selectedmake][optionkey]).injectInside($('model_select'));
      };
    }
    if ($defined($('model_select_detailed')) && $defined($('make_select_detailed'))) {
      $('model_select_detailed').empty();
      var selectedmake = $('make_select_detailed').getValue();
      for (optionkey in ModelsObject[selectedmake]) {
        new Element('option').setProperty('value',optionkey).setText(ModelsObject[selectedmake][optionkey]).injectInside($('model_select_detailed'));
      };
    }
  };
  initUpdateModels();
  doRollovers = function(elements) {
    elements.each(function(thisnavitem){
      var MouseFx = new Fx.Style(thisnavitem, 'opacity', {
        wait: false,
        duration: 250,
        transition: Fx.Transitions.Quart.easeInOut
      });
      var src = thisnavitem.getProperty('src');
      src = src.replace('_ro','');
      var extension = src.substring(src.lastIndexOf('.'),src.length);
      thisnavitem.getParent().getParent().setStyle('background','url('+src.replace(extension,'_ro' + extension)+') no-repeat');
      thisnavitem.addEvent('mouseenter', function() { MouseFx.start(1, 0.01); });
      thisnavitem.addEvent('mouseleave', function() { MouseFx.start(0.01, 1); });
    });
  };
  doRollovers($$('.rollover'));
  $$('.fader').each(function(thisa) {
    thisa.addEvent('mouseenter', function() {
      new Fx.Style(thisa, 'opacity', {duration:200}).start(.8);
    });
    thisa.addEvent('mouseleave', function() {
      new Fx.Style(thisa, 'opacity', {duration:200}).start(1);
    });
  });
  addFavorite = function (id,el) {
    var favorites = Cookie.get('favorites');
    if ($$('.resultat_img').length > 0) {
      var favimg = $E('.resultat_img',$(el).getParent().getParent().getParent());
    } else if ($defined($$('.fiche_thumb img'))) {
      var favimg = $E('.fiche_thumb img');
    }
    if ($defined(favimg)) {
      var favimgpos = favimg.getPosition();
      var newfavimg = favimg.clone();
      newfavimg.setStyle('position','absolute');
      newfavimg.injectAfter(favimg);
      var favpos = $('nav_favoris').getPosition();
    }
    if (favorites && favorites.match(id)) {
      if ($defined(favimg)) {
        new Fx.Styles(newfavimg, {
          wait: false,
          duration: 500,
          transition: Fx.Transitions.Quart.easeIn
        }).start({
          'opacity': .5,
          'top': [favimgpos['y'],favpos['y']],
          'left': [favimgpos['x'],favpos['x']]
        }).chain(function() {
          new Fx.Styles(newfavimg, {
            wait: false,
            duration: 500,
            transition: Fx.Transitions.Quart.easeOut
          }).start({
            'opacity': 0,
            'top': favimgpos['y'],
            'left': favimgpos['x']
          }).chain(function() {
            newfavimg.remove();
          });
        });
      } else {
        if (language == 'en') {
          alert('This vehicule is already in your favorites');
        } else {
          alert('Ce véhicule est déjà dans vos favoris');
        }
      }
    } else {
      if (favorites) {
        favorites = favorites+','+id;
      } else {
        favorites = id;
      }
      Cookie.set('favorites',favorites,{duration: 365, path: '/'});
      if ($defined(favimg)) {
        new Fx.Styles(newfavimg, {
          wait: false,
          duration: 1000,
          transition: Fx.Transitions.Quart.easeInOut
        }).start({
          'opacity': 0,
          'top': [favimgpos['y'],favpos['y']],
          'left': [favimgpos['x'],favpos['x']]
        }).chain(function() {
          newfavimg.remove();
        });
      } else {
        if (language == 'en') {
          alert('This vehicule has been added to your favorites');
        } else {
          alert('Ce véhicule a été ajouté à vos favoris');
        }
      }
    }
  };
  delFavorite = function (id,el) {
    var favorites = Cookie.get('favorites');
    if (favorites.match(','+id+',')) {
      favorites = favorites.replace(id+',','');
    } else if (favorites.match(','+id)) {
      favorites = favorites.replace(','+id,'');
    } else if (favorites.match(id+',')) {
      favorites = favorites.replace(id+',','');
    } else {
      favorites = favorites.replace(id,'');
    }
    Cookie.set('favorites',favorites,{duration: 365, path: '/'});
    removeResult(el);
  };
  removeResult = function (el) {
    var str_results = $('search_results_title_'+language+'').getText();
    var arr_results = str_results.split(' ');
    $('search_results_title_'+language+'').setText((arr_results[0].toInt()-1)+' '+arr_results[1]);
    var resultel = $(el).getParent().getParent().getParent().getParent();
    new Fx.Style(resultel, 'opacity', {
      wait: false,
      duration: 500,
      transition: Fx.Transitions.Quart.easeOut
    }).start(0).chain(function(){
      $(resultel).remove();
    });
  };
  switchImgSrc = function(imgsrc) {
    var imglink = $E('a',$('resultat_fiche_img'));
    imglink.setProperty('href', imgsrc.replace('_main',''));
    var imgel = $E('img',$('resultat_fiche_img'));
    var loaderel = $E('.loader',$('resultat_fiche_img'));
    var loaderelpos = imgel.getPosition();
    loaderel.setStyles({'top':(loaderelpos['y']+125)+'px','left':(loaderelpos['x']+200)+'px','opacity':.3});
    loaderel.addClass('loading');
    new Asset.images([imgsrc], {
      onComplete: function() {
        $('resultat_fiche_img').setStyle('background','url('+imgsrc+') no-repeat');
        new Fx.Style(imgel,'opacity', {
          wait: false,
          duration: 250,
          transition: Fx.Transitions.Quart.easeIn
        }).start(0).chain(function(){
          imgel.setProperty('src', imgsrc);
          imgel.setStyle('opacity',1);
          $('resultat_fiche_img').setStyle('background','none');
          loaderel.removeClass('loading');
        });
      }
    });
  };
  newWindow = function (URL,w,h) {
    var day = new Date();
    var randid = day.getTime();
    eval("page" + randid + " = window.open(URL, '" + randid + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width="+w+",height="+h+"');");
  };

//   if ($defined($('refine_toprice_select'))) {
//     $('refine_toprice_select').addEvent('change', function() {
//       var refineaction = $('refine_search_form').getProperty('action');
//       if (!$defined(refineaction.match('/5000')) && this.options[this.selectedIndex].value == 5000) {
//           $('refine_search_form').setProperty('action',refineaction+'/1/5000');
//       } else if ($defined(refineaction.match('/5000'))) {
//           $('refine_search_form').setProperty('action',refineaction.replace('/5000',''));
//       }
//     });
//   }
  refineReset = function() {
    $('trans_select').setProperty('value','any');
    $('refine_fromprice_select').setProperty('value','1000');
    $('refine_toprice_select').setProperty('value','100000');
    $('refine_frommileage_select').setProperty('value','1000');
    $('refine_tomileage_select').setProperty('value','200000');
    $('refine_cylinders_select').setProperty('value','any');
    $('refine_fueltype_select').setProperty('value','any');
    $('refine_drivetrain_select').setProperty('value','any');
    $('refine_bodytype_select').setProperty('value','any');
    $('refine_cabintype_select').setProperty('value','any');
    $('refine_ac_checkbox').setProperty('checked',false);
    $('refine_leatherinterior_checkbox').setProperty('checked',false);
    $('refine_electricwindows_checkbox').setProperty('checked',false);
  };

  refineSearch = function(make,model,year) {
    refineReset();
    var d = new Date();
    var curr_year = d.getFullYear();
    $('make_select').removeEvents('onChange');
    $('make_select').setProperty('value',make);
    updateModels();
    $('model_select').setProperty('value',model);
    if (year < (curr_year - 5)) {
      $('refine_fromyear_select').setProperty('value',1995);
    } else {
      $('refine_fromyear_select').setProperty('value',year);
    }
    $('refine_toyear_select').setProperty('value',year);
//     var orderbyel = new Element('input').setProperties({
//       id: 'orderby',
//       name: 'orderby',
//       type: 'hidden',
//       value: 'price'
//     }).injectInside('refine_search_form');
    $('refine_orderby').setProperty('value','price');
    $('refine_search_form').submit();
  };

  setBodyCity = function(body,city) {
    refineReset();
    $('refine_bodytype_select').setProperty('value',body);
    $('refine_city_select').setProperty('value',city);
    $('refine_search_form').submit();
  };

  switchDetailed = function() {
    $('home_recherche_detailed').fireEvent('click');
  };

  var ImgTooltip = new Tips($$('.imgtooltip'), {
    offsets: {'x':-340,'y':-100},
    initialize: function(){
      this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
    },
    onShow: function(toolTip) {
      if (window.ie6 && !this.frame) {
        this.frame = new Element('iframe').setStyle('display', 'none').setProperties({ 'frameBorder': 0, 'scrolling': 'no' }).injectInside(toolTip);
      }
      if (window.ie6 && this.frame) {
        var size = toolTip.getSize();
        this.frame.setStyles({ 'display':'', 'width': (size.size.x - 10), 'height': (size.size.y - 10)});
        toolTip.getFirst().setStyle('position', 'absolute');
      }
      var imgsrc = toolTip.getElement('img').getProperty('src');
      new Asset.images([imgsrc], {
        onComplete: function() {
          this.fx.start(1);
        }.bind(this)
      });
    },
    onHide: function(toolTip) {
      this.fx.start(0);
    }
  });

  if ($defined($('home_recherche_simple')) && $defined($('home_recherche_type')) && $defined($('home_recherche_detailed'))) {
    var selectedcity = $('city_select').getProperty('value');
    $('home_recherche_simple').addEvent('click', function() {
      var src = $('home_recherche_simple').getProperty('src');
      src = src.replace('_ro','');
      var extension = src.substring(src.lastIndexOf('.'),src.length);
      $('home_recherche_simple').setProperty('src',src.replace(extension,'_ro' + extension));
      $('home_recherche_type').setProperty('src',$('home_recherche_type').getProperty('src').replace('_ro',''));
      $('home_recherche_detailed').setProperty('src',$('home_recherche_detailed').getProperty('src').replace('_ro',''));
      $('home_undertab').setProperty('src','images/home_undertab_make.png');
      $('simple_tab_content').injectAfter($('home_undertab'));
      $('simple_tab_content').setStyle('display','');
      $('type_tab_content').setStyle('display','none');
      $('detailed_tab_content').setStyle('display','none');
      //doRollovers($$('.tab_content .rollover'));
      //$('city_select').setProperty('value',selectedcity);
    });
    $('home_recherche_type').addEvent('click', function() {
      var src = $('home_recherche_type').getProperty('src');
      src = src.replace('_ro','');
      var extension = src.substring(src.lastIndexOf('.'),src.length);
      $('home_recherche_type').setProperty('src',src.replace(extension,'_ro' + extension));
      $('home_recherche_simple').setProperty('src',$('home_recherche_simple').getProperty('src').replace('_ro',''));
      $('home_recherche_detailed').setProperty('src',$('home_recherche_detailed').getProperty('src').replace('_ro',''));
      $('home_undertab').setProperty('src','images/home_undertab_type.png');
      $('type_tab_content').injectAfter($('home_undertab'));
      $('simple_tab_content').setStyle('display','none');
      $('type_tab_content').setStyle('display','');
      $('detailed_tab_content').setStyle('display','none');
      //doRollovers($$('.tab_content .rollover'));
      //$('city_select').setProperty('value',selectedcity);
    });
    $('home_recherche_detailed').addEvent('click', function() {
      var src = $('home_recherche_detailed').getProperty('src');
      src = src.replace('_ro','');
      var extension = src.substring(src.lastIndexOf('.'),src.length);
      $('home_recherche_detailed').setProperty('src',src.replace(extension,'_ro' + extension));
      $('home_recherche_simple').setProperty('src',$('home_recherche_simple').getProperty('src').replace('_ro',''));
      $('home_recherche_type').setProperty('src',$('home_recherche_type').getProperty('src').replace('_ro',''));
      $('home_undertab').setProperty('src','images/home_undertab_detailed.png');
      $('detailed_tab_content').injectAfter($('home_undertab'));
      $('simple_tab_content').setStyle('display','none');
      $('type_tab_content').setStyle('display','none');
      $('detailed_tab_content').setStyle('display','');
      //doRollovers($$('.tab_content .rollover'));
      //$('city_select').setProperty('value',selectedcity);
    });
    $('type_tab_content').setStyle('display','none');
    $('detailed_tab_content').setStyle('display','none');
    //$('city_select').setProperty('value',selectedcity);
    //doRollovers($$('.tab_content .rollover'));
  }

  switchBodytype = function(img,imgvalue) {
    $ES('img','searchform_bodytypes').each( function(el) {
      var imgsrc = el.getProperty('src').replace('_ro','');
      el.setProperty('src',imgsrc);
    });
    var imgsrc = img.getProperty('src').replace('.png','_ro.png');
    img.setProperty('src',imgsrc);
    $('hidden_bodytype').setProperty('value',imgvalue);
  };

  if (window.webkit) {
    $$('.select','.select_wrapper','.refine_select_wrapper','.refine_select_wrapper_right').each(function(el){
      el.setStyle('border','none');
    });
  }
//   var userAgent = navigator.userAgent.toLowerCase();
//   if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox/2')!=-1) {
//     $E('body').setStyle('opacity',0.9999);
//     if ($defined($('top_ad'))) {
//       $('top_ad').setStyle('opacity',1);
//     }
//     if ($defined($('home_rect_ad'))) {
//       $('home_rect_ad').setStyle('opacity',1);
//     }
//     if ($defined($('home_right_block'))) {
//       $('home_right_block').setStyle('opacity',1);
//     }
//   }
});

Element.implement({
  isVisible: function(){
    return (this.getStyle('display') || 'none') != 'none' && this.getStyle('visibility') != 'hidden';
  },
  show: function(){
    return this.setStyle('display', this.retrieve('display', '')).set('opacity', 1);
  },
  hide: function(visibility){
    if (!this.retrieve('display')){
      var display = this.getStyle('display');
      this.store('display', (display == 'none') ? 'block' : display);
    }
    return (visibility) ? this.set('opacity', 0) : this.setStyle('display', 'none');
  },
  toggle: function(visibility){
    return this[this.isVisible() ? 'hide' : 'show'](visibility);
  }
});