window.addEvent('domready', function() {
  /* Input reset */
  $$('input.reset, textarea.reset').each(function(input) {
    input.addEvents({
      focus: function() {
        if(this.value == this.get('rel')) {
          this.value = '';
        }
      },
      blur: function() {
        if(this.value == '') {
          this.value = this.get('rel');
        }
      }
    });
  });
  
  /* Submit hover */
  $$('input.submit').each(function(e) {
  	e.addEvents({
  		'mouseover': function() {
  			$(this).setProperty('src', '/files/peugeot/img/input-laheta-hover.png');
  		},
  		'mouseout': function() {
  			$(this).setProperty('src', '/files/peugeot/img/input-laheta.png');
  		}
  	})  	
  });
  
  /* Image selectors */
  $$('.image-selector').each(function(image_selector) {
    new ImageSelector(image_selector, 4, image_selector.getPrevious('img'));
    image_selector.getElement('img').fireEvent('click');
  });
  
  var imgs;
  $$('.ajahyvin-scroller').each(function(ajahyvin_scroller) {
    new ImageSelector(ajahyvin_scroller, 6);
    
    var hover = ajahyvin_scroller.getElement('.ajahyvin-hover');
    
    var fx = new Fx.Morph(hover, {duration: 150, link: 'cancel'});
    
    var pos = ajahyvin_scroller.getPosition();
    var reqUrl = '/peugeot_suomessa/aja_hyvin_lehti/ajahyvin_ajax';
    if(ajahyvin_scroller.get('rel') == 'kamppis')
    	reqUrl = '/peugeot_suomessa/media/mainokset/mainokset_ajax';
    
    var req = new Request.HTML({
      url: reqUrl,
      onComplete: function(response) {
        $('ajahyvin-ajax').empty().adopt(response);     	
	if($('ajahyvin-ingressi')) {
	        $('ajahyvin-ingressi').setStyle('display', 'none');
	        Rotate($('ajahyvin-ajax').getElement('img'), -0.14);
	        Cufon.refresh();
	} else {
		var tabberOptions = {
			'onClick': function(args) {

			$$('.tabberlive li').removeClass('selected');
			$$('.tabberlive div').setStyle('display', 'none');

			// Set clicked header active and show tab contents		
			$(args.tabber.tabs[args.index].li).addClass('selected');		
			$($$('.tabberlive div')[args.index]).setStyle('display', 'block');

			return false;
			}
		};
		tabberAutomatic(tabberOptions);
		$$('.tabberactive').addClass('selected');
		Cufon.refresh();
	}
      }
    });
    
    imgs = ajahyvin_scroller.getElements('img').addEvents({
      'mouseover': function(e) {
        var e = new Event(e);
        
        hover.set('text', this.get('alt'));
        
        fx.start({
          left: this.getPosition().x - pos.x,
          opacity: 1
        });
        
        this.set('morph', {duration: 250});
        this.morph({opacity: 0.66});
      },
      'mouseout': function() {
        fx.start({
          opacity: 0
        });
      
        this.morph({opacity: 1});
      },
      'click': function() {
        req.get({id: this.get('rel')});
      }
    });
    
//    imgs[0].fireEvent('click');
  });
  
  /* Show latest Aja Hyvin */
  $$('#latest-magazine').addEvent('click', function(){
	imgs[0].fireEvent('click');  	
	return false;
  });
  
  $$('.colors, .furnishing').each(function(colors) {
    var hover = colors.getElement('.colors-hover');
    
    var fx = new Fx.Morph(hover, {
      duration: 200,
      link: 'cancel'
    });
    
    var pos = colors.getPosition();
    
    var image_slot = colors.getElement('.image');
    
    var imgs = colors.getElements('li img').addEvents({
      'mouseover': function(e) {
        var e = new Event(e);
        
        hover.set('text', this.get('alt'));
        
        fx.set({
          top: this.getPosition().y - pos.y,
          left: this.getPosition().x - pos.x
        });
        
        fx.start({
          opacity: 1
        });
        
        this.set('morph', {duration: 150});
        this.morph({opacity: 0.66});
      },
      'mouseout': function() {
        fx.start({
          opacity: 0
        });
      
        this.morph({opacity: 1});
      },
      'click': function() {
     	if(this.getParent('div').get('class') == "furnishing") {
		image_slot.empty().adopt(new Element('a', {
						href: this.get('orig'),
						events: {
							'click': function() {
								Slimbox.open(this.get('href'),
								     'Sulje kuva klikkaamalla mustalla alueella',
							             {captionAnimationDuration: 150});

							             return false;
							}
						}
					}).adopt(new Element('img', {src: this.get('rel')})));
 	} else {      
        	image_slot.empty().adopt(new Element('img', {src: this.get('rel')}));
	}
      }
    });
    
    if(imgs.length > 0) {
      imgs[0].fireEvent('click');
    }
  });
  
  
  /* Styled selects */
  
  $$('select.styled').each(function(select) {
    select.setStyle('display', 'none');
    
    var make = function() {
      var newSelect = new Element('div', {'class': 'select-styled'}).inject(select, 'after');
      var span = new Element('span').inject(newSelect);
      var arrow = new Element('a', {'class': 'arrow'}).inject(newSelect);
      
      if(select.get('id')) {
        newSelect.set('id', 'new-'+select.get('id'));
      }
      
      var options = new Element('ul').inject(newSelect);
      
      for(i = 0; i < select.options.length; i++) {
        var option = $(select.options[i]);
        
        var li = new Element('li', {text: option.get('text')}).inject(options);
        li.set('rel', option.value);
      }
      
      span.set('text', select.options[select.selectedIndex].text);
      
      if(Browser.Engine.trident4) {
        options.addEvents({
          'mouseover': function(e) {
            $(e.target).addClass('hover');
          },
          'mouseout': function(e) {
            $(e.target).removeClass('hover');
          }
        });
      }
      
      
      var hideTimer = false;
      
      newSelect.addEvents({
        'click': function(e) {
          if(e.target.get('tag') == 'li' && !e.target.hasClass('disabled')) {
            span.set('text', e.target.get('text'));
            
            select.set('value', e.target.get('rel'));
            select.fireEvent('change');
            
            if(select.onchange) {
              select.onchange();
            }
          }
          
          this.toggleClass('select-opened');
        },
        'mouseenter': function() {
          $clear(hideTimer);
        },
        'mouseleave': function() {
          hideTimer = (function() {
            newSelect.removeClass('select-opened');
          }).delay(500);
        }
      });
    };
    
    make();
    
    select.update = function() {
      select.getNext('div.select-styled').destroy();
      make();
    }
  });
  
  
  
  
  /* Kartta */
    
  var reseller_map = $$('.reseller-map');
  
  if(reseller_map.length > 0) {
    reseller_map = reseller_map[0];
    
    var hovers = reseller_map.getElements('.hover');
    
    hovers.each(function(hover) {
      hover.fx = new Fx.Morph(hover, {
        duration: 250,
        link: 'cancel'
      });
      
      if(Browser.Engine.trident4) {
        hover.setStyle('display', 'none').setStyle('opacity', 1);
      }
      else {
        hover.fx.set({opacity: 0});
      }
    });
    
    var areas = reseller_map.getElements('area');
    
    var clickMethod = function(self) {
      if(!self) {
        return;
      }
      
      areas.each(function(area) {
        if(area != self) {
          area.selected = false;
          $('map-'+area.get('rel')).fx.start({opacity: 0});
        }
      });
      
      new Request.HTML({
        url: '/myynti_ja_palvelut/jalleenmyyjat/ajax_paikkakunnat',
        onComplete: function(response) {
          $('phase-2').empty().adopt(response);
          Cufon.refresh();
          
          $('phase-3').empty();
          $('phase-2').getElements('li').addEvent('click', function() {
            new Request.HTML({
              url: '/myynti_ja_palvelut/jalleenmyyjat/ajax_jalleenmyyjalista',
              onComplete: function(response) {
                $('phase-3').empty().adopt(response);
              }
            }).get({
              paikkakunta: this.get('text').trim()
            });
          });
        }
      }).get({
        area: self.get('rel')
      });
      
      self.selected = true;
      var map_self = $('map-'+self.get('rel'));
      map_self.setStyle('display', 'block');
      map_self.fx.start({opacity: 1});
    };
    
    areas.addEvents({
      'mouseover': function() {
        if(!this.selected) {
          if(Browser.Engine.trident4) {
            $('map-'+this.get('rel')).setStyle('display', 'block');
          }
          else {
            $('map-'+this.get('rel')).fx.set({opacity: 0.5});
          }
        }
      },
      'mouseout': function() {
        if(!this.selected) {
          if(Browser.Engine.trident4) {
            $('map-'+this.get('rel')).setStyle('display', 'none');
          }
          else {
            $('map-'+this.get('rel')).fx.start({opacity: 0});
          }
        }
      },
      'click': function() {
        clickMethod(this);
      }
    });
    
    clickMethod($('preloaded-area'));
  }
  
  
  
  $$('#content-center table').each(function(t) {
    zebra(t);
  });
  $$('table.zebra').each(function(t) {
    zebra(t);
  });
  
  $$('table').set({cellpadding: 0, cellspacing: 0});
  
  
  
  $$('h2.varusteet').each(function(h2) {
    var next = h2.getNext();
    
    if(!h2.hasClass('selected')) {
      next.addClass('hidden');
    }
    
    h2.addEvent('click', function() {
      this.toggleClass('selected');
      next.toggleClass('hidden');
      
      Cufon.refresh();
    });
  });
  
  
  
  $$('#image-header').each(function(h) {
    new Element('div', {'class': 'top'}).inject(h, 'top');
    new Element('div', {'class': 'bottom'}).inject(h, 'bottom');
  });
  
  
  $$('.toggler').addEvent('click', function() {
    this.toggleClass('toggler-open');
    this.getNext().toggleClass('hidden');
  });
});


var ImageSelector = new Class({
  initialize: function(image_selector, count, image) {
    var count = count;
    
    if(image) {
      image_selector.getElements('img').addEvent('click', function() {
        image.set('src', this.get('rel'));
        image.set('orig', this.get('orig'));
        image.addEvent('click', function(){
        	Slimbox.open(this.get('orig'),
		     'Sulje kuva klikkaamalla mustalla alueella',
	             {captionAnimationDuration: 150});
	             return false;
        });
      });
    }
    
    var lis = image_selector.getElements('li.image');
    
    lis.each(function(li, i) {
      if(i >= count) {
        li.addClass('hidden');
      }
    });
    
    var i = 0;
    
    
    var prev = image_selector.getElement('.prev');
    var next = image_selector.getElement('.next');
    
    if(lis.length <= count && next) {
      next.addClass('disabled');
    }
    
    var update = (function() {
      lis.each(function(li, e) {
        if(e < i || e > i+count-1) {
          li.addClass('hidden');
        }
        else {
          li.removeClass('hidden');
        }
        
        if(i <= 0) {
          prev.addClass('disabled');
        }
        else {
          prev.removeClass('disabled');
        }
        
        if(i >= lis.length - count) {
          next.addClass('disabled');
        }
        else {
          next.removeClass('disabled');
        }
      });
    });
    
    prev.addEvent('click', function() {
      if(!this.hasClass('disabled')) {
        i--;
        update();
      }
    });
    next.addEvent('click', function() {
      if(!this.hasClass('disabled')) {
        i++;
        update();
      }
    });
  }
});

function avaaVarusteOverlay(url) {
  var dim = $('dim');
  if(!dim) {
    dim = new Element('div', {id: 'dim'}).inject(document.body);
  }
  
  if(!dim.fx) {
    dim.fx = new Fx.Tween(dim, {property: 'opacity', duration: 333});
  }
  
  dim.fx.set(0);
  
  var overlay = $('varusteet-overlay');
  if(!overlay) {
    overlay = new Element('div', {id: 'varusteet-overlay'}).inject(document.body);
  }
  overlay.setStyle('display', 'block');
  
  
  dim.fx.start(0.1);
  
  
  new Request.HTML({
    'url': url,
    onComplete: function(response) {
      overlay.empty().adopt(response);
      
      overlay.getElement('a.close').addEvent('click', function() {
        dim.fx.start(0);
        overlay.empty().setStyle('display', 'none');
      });
      
      Cufon.refresh();
    }
  }).get();
  
  dim.addEvent('click', function() {
    dim.fx.start(0);
    overlay.empty().setStyle('display', 'none');
  });
  
  if(Browser.Engine.trident4) {
    document.documentElement.scrollTop = 0;
  }
}


function zebra(table) {
  $(table).getElements('tr').each(function(tr, i) {
    if(i % 2 == 0) {
      tr.addClass('even');
    }
    else {
      tr.addClass('odd');
    }
    
    var tds = tr.getElements('td');
    
    if(tds.length > 0) {
      tds[tds.length-1].addClass('last');
    }
  });
}




/* Cufon */

Cufon.replace('.models .left h1', {fontFamily: 'Lion'});
Cufon.replace('.models .right h1, .gillsans', {fontFamily: 'Gill Sans'});
Cufon.replace('#front-content h1', {fontFamily: 'Gill Sans'});
Cufon.replace('#lifts p', {fontFamily: 'Gill Sans'});
Cufon.replace('#toptabs li a', {fontFamily: 'Gill Sans'});
Cufon.replace('#toptabs h3', {fontFamily: 'Gill Sans'});
Cufon.replace('#owner-lifts a', {fontFamily: 'Gill Sans'});
Cufon.replace('.frontpage h1, .models-frontpage h1, .subpage h1, .area-frontpage h1', {fontFamily: 'Gill Sans'});
Cufon.replace('#front-models ul a', {fontFamily: 'Lion'});
Cufon.replace('#check-also a', {fontFamily: 'Gill Sans'});
Cufon.replace('h2', {fontFamily: 'Gill Sans'});
Cufon.replace('#content-right h3', {fontFamily: 'Gill Sans'});
Cufon.replace('.lion', {fontFamily: 'Lion'});  