// JavaScript Document
Cufon.replace('.cf',{fontFamily: 'Gotham Book'});
Cufon.replace('h1.cf',{fontFamily: 'Gotham Extra Light'});

(function($) {
  $.fn.niceSelect = function(config) {
     var defaults = {
       slideSpeed: 30,
       change: null     
     };  
     var config = $.extend(defaults, config);

     return this.each(function() {
      var select = $(this);
      select.hide();
      
      var items = '';
      select.find('option').each(function() {
        items += '<li><span class="value-' + this.value + '">' + this.innerHTML + '</span></li>';
      });
      
      var selector = $(
        '<div class="selector">\
           <div class="control"><span></span></div>\
           <div class="options">\
             <ul></ul>\
           </div>\
         </div>'
      );
      
      var control = selector.find('.control');
      var options = selector.find('.options');
      control.children().addClass('value-' + select.val())
        .text(select.find(':selected').text());
      options.find('ul').append(items);

      options.find('ul').mouseenter(function() {
        options.find('li.selected').removeClass('selected');
      });
      
      control.click(function() {
        var value = select.val();
        options.find('li.selected').removeClass('selected');
        options.find('span.value-'+value).parent().addClass('selected');

        options.slideToggle(config.slideSpeed);
      });        
      selector.mouseleave(function() {
        options.slideUp(config.slideSpeed);
      });
      options.delegate('li', 'click', function() {
        var value = $(this).children().attr('class').substring(6);
        select.val(value);
        
        control.children().replaceWith($(this).children().clone());
        options.slideUp(config.slideSpeed);
        
        if (config.change) {
          config.change(value, select);
        }
      });
      select.after(selector);
    });
  }
})(jQuery);

(function($) {
  $.fn.niceRadioAndCheckbox = function(config) {
     var defaults = {
     };  
     var config = $.extend(defaults, config);

     return this.each(function() {
      var element = $(this);
      
      var type = element.attr('type');
      var wrapper = $('<span class="'+type+'"></span>');
      if (element.get(0).checked) {
        wrapper.addClass('checked');
      }
      element.wrap(wrapper);
      
      element.change(function() {
        $('input[name='+this.name+']').parent().removeClass('checked');
        
        if (element.get(0).checked) {
          element.parent().addClass('checked');
        }
      });
    });
  }
})(jQuery);

(function($) {
  $.fn.hgallery = function(config) {
    var defaults = {
      duration: 1000,
      spaceDuration: 10000     
    };  
    var config = $.extend(defaults, config);

    return this.each(function() {
      var gallery = $(this);
      var items = gallery.children().slice(0, 4);
      var additionalItems = gallery.children().slice(4);
      items.find('img').addClass('active').css({opacity: 1});
      additionalItems.find('img').css({opacity: 0});
      
      for (var i = 0; i < additionalItems.length; ++i) {
        $(items[i % 4]).prepend($(additionalItems[i]).children());
      };
      additionalItems.remove();
      
      timer = null;
      innerfade = function() {
        items.each(function() {
          var images = $(this).find('img');
          if (images.length > 1) {
            var curr = images.filter('.active');
            var prev = (images.index(curr) > 0) ? curr.prev() : $(images[images.length-1]);
          
            curr.removeClass('active');
            prev.addClass('active');
          
            curr.animate({opacity: 0}, config.duration);
            prev.animate({opacity: 1}, config.duration);
          }
        });
      };
      timer = function(duration, firstDuration) { setTimeout(function() { innerfade(); timer(duration); }, firstDuration || duration); }
      timer(config.duration + config.spaceDuration, config.spaceDuration);
    });
  }
})(jQuery);

$(document).ready(function(){
	$("#nav-global .active").next().css('background-position', 'left bottom');
	$("#nav-global .img-btn").mouseover(function(){
		$(this).next().not('.active').css('background-position', 'left bottom');
		$(this).css('background-position', 'left center');
	});
	$("#nav-global .img-btn").mouseout(function(){
		$("#nav-global .img-btn").not(".active").css('background-position', 'left top');
		$("#nav-global .active").next().css('background-position', 'left bottom');
	});
	
	$('.filter input[type=radio]').change(function() { location.href = this.value; });

	$('.lang select').niceSelect({change: function(value, select) { location.href = select.find(':selected').attr('rel'); }});
	$('.filter input').niceRadioAndCheckbox();
	$('#homepage-gallery').hgallery();
});


