/**
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne brian(at)cherne(dot)net
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);


$(document).ready(function(){
	//nav
	var isOver = false;
	//var is_subpage = $('#subnavbar').hasClass('is_subpage');
	var is_subpage = false
	var config = {    
     over: function(){
			if(!is_subpage){
				$('#subnavbar:hidden').slideDown();
				$('#services_but').addClass('currentsub');
			}
		}, 
     timeout: 500,  
     out: function(){
			if(!isOver && !is_subpage) {
				$('#subnavbar').slideUp();
				setTimeout(function(){
            	$('#services_but').removeClass('currentsub');
      			},400);
			}
		}   
	};
	$('#services_but,#subnavbar').hover(function(){isOver=true},function(){isOver=false});
	$('#services_but,#subnavbar').hoverIntent( config )
	
	//s = (Math.floor((940-$('#nav').outerWidth())/($('#nav li').length-1)));
	//$('#nav li:not(:last)').each(function(){
		//$(this).css('margin-right',s+'px');
	//});

	//home slider
	if($('#homeslider').length != 0){
		if($('#homeslider li').length>1){
			$('#homeslider').bxSlider({
				controls: false,
				pager: true, 
				mode: 'fade',
				easing: 'easeInOutExpo',
				speed: 1000,
				pause: 5000,  
				auto:true
			});
		}
	}
	
	$("#homeslider-wrapper").hover(
		function () {
			$(this).toggleClass('frame_hover')
		}, 
		function () {
			//$(this).find("span:last").remove();
			$(this).toggleClass('frame_hover')
		}
	);
	
	//3 sliders
	$('#homefeature1').bxSlider({
		controls: false,
		pager: false, 
		mode: 'fade',
		easing: 'easeInOutExpo',
		speed: 1000,
		pause: 5000,  
		auto:true
	});
	$('#homefeature2').bxSlider({
		controls: false,
		pager: false, 
		mode: 'fade',
		easing: 'easeInOutExpo',
		speed: 1000,
		pause: 5000,  
		auto:true
	});
	$('#homefeature3').bxSlider({
		controls: false,
		pager: false, 
		mode: 'fade',
		easing: 'easeInOutExpo',
		speed: 1000,
		pause: 5000,  
		auto:true
	});


	
	//page slider
	if($('#slider').length != 0){
		$("#slider").sudoSlider({continuous:true});
	}

	//catalogue
	function loadLots(index){
		var Images = $('#slide_'+index+' img');
		Images.each(function(e){
				var src = $(this).attr('title');
				var margin = $(this).attr('longdesc');
				$(this).attr('src',src);
				$(this).attr('style','margin-top:'+margin);
		});	
		//scroll to top
		gotoCatalogueTop();
		$('#loading').show();
		Images.imgpreload({
				all: function(){
					//catalogue_slider.goToNextSlide();
					catalogue_slider.goToSlide(index);
					$('#loading').delay(500).fadeOut(500);
					updatepages();
				}
		});
	}
	function gotoCatalogueTop(){
		if($('#catalogue-controls').length != 0){
			$.scrollTo('#catalogue-controls',500,{easing: 'easeInOutExpo'});
		}else{
			$.scrollTo('#catalogue',500,{easing: 'easeInOutExpo'});
		}	
	}
	if($('#catalogue').length != 0){
		  var catalogue_slider = $('#catalogue').bxSlider({
			  controls: false,
			  easing: 'easeInOutExpo',
			  speed: 1000,
			  pause: 5000,
			  onAfterSlide: function(currentSlideNumber){
				 //remove rel from a from copies bxslider generates
				 $('#catalogue li:not(.pager)').find("a[rel^='prettyPhoto']").attr('rel','');
				 //resize to slide container
				 $('#catalogue').animate({height:$('#slide_'+currentSlideNumber).height()+'px'}, 500);
        	  }   
		  });
		  $('.slider-prev').click(function(e) {
				e.preventDefault()
				catalogue_slider.goToPreviousSlide();
				gotoCatalogueTop();
				updatepages();
				return false;
			});
		  $('.slider-next').click(function(e) {
			   e.preventDefault()
			   loadLots(catalogue_slider.getCurrentSlide()+1);
			   return false;
		  });
		  
		  $('.page_num').live('click', function(e) {
			   e.preventDefault();
			   pagenum = $(e.target).attr('href');
			   //catalogue_slider.goToSlide(pagenum-1);
			   loadLots(pagenum-1);
			   //loadLots(catalogue_slider.getCurrentSlide()+1);
			   //return false;
		  });
		  
		  
		  function updatepages(){
			  var total = catalogue_slider.getSlideCount()+1;
			  var current = catalogue_slider.getCurrentSlide()+1;
			  var pages = '';
			  for(i=1;i<total;i++){
				  current_class = (current==i) ? " current" : "";
				  pages += '<a href="'+i+'" class="page_num'+current_class+'">'+i+'</a>'; 
			  }
			  
			  $('.catalogue-pagination').html(pages);
			  //$('#catalogue-pagination').html('Page ' + (catalogue_slider.getCurrentSlide()+1) + " of " + catalogue_slider.getSlideCount());
			  if(catalogue_slider.getCurrentSlide()>0) $('.slider-prev').fadeIn(); else $('.slider-prev').fadeOut();
			  if(catalogue_slider.getCurrentSlide()!=catalogue_slider.getSlideCount()-1) $('.slider-next').fadeIn(); else $('.slider-next').fadeOut();
		  }
		  updatepages();
		  
		  $('.view_switcher').click(function(e){
			  e.preventDefault();
			  var style = $('#catalogue_view').attr('href')
			  var path = style.substr(0,style.lastIndexOf('/'));
			  var css = $(this).attr('href').substr(1);
			  
			  //reset height 
			  $('#catalogue').height('auto')
			  
			  //load css
			  $('#loading').show().delay(1000).fadeOut(500);
			  $('#catalogue_view').attr('href',path+'/'+css+'.css');
			  //format stuff
			  switch (css){
				  case 'grid': 
					  $('.lot_info').hide();
				  break;
				  case 'list': 
					  $('.lot_info').show();
				  break;
			  }
		  });
		  
		  $('#sort_lots_by').change(function(){
			  var style = $('#catalogue_view').attr('href')
			  var a=style.lastIndexOf('/')+1;
			  var b=style.lastIndexOf('.');
			  var css = style.substr(a,b-a);
			  
			  window.location='?catalogue='+css+'&sort='+$(this).val();
		  });
	}
	
	//pretty photo
	$("a[rel^='prettyPhoto']").prettyPhoto({
		overlay_gallery : false,
		show_title : false
	});
	
	//center on screen
    if($.browser.msie && $.browser.version=="6.0"){
		$('#loading').css("position","absolute");
   		$('#loading').css("top", (($(window).height() - $('#loading').outerHeight()) / 2) + $(window).scrollTop() + "px");
    	$('#loading').css("left", (($(window).width() - $('#loading').outerWidth()) / 2) + $(window).scrollLeft() + "px");
	}
	
	

	//archive if more than one page
	if($('#archive li').length>1){
		  var archive_slider = $('#archive').bxSlider({
			  controls: false,
			  easing: 'easeInOutExpo',
			  speed: 1000,
			  pause: 5000
		  });
		  $('#archive-prev').click(function() {
				archive_slider.goToPreviousSlide();
				$.scrollTo('.big',500,{easing: 'easeInOutExpo'});
				updateArchivePages();
				return false;
			});
		  $('#archive-next').click(function() {
				archive_slider.goToNextSlide();
				$.scrollTo('.big',500,{easing: 'easeInOutExpo'});
				updateArchivePages();
			   return false;
		  });
		  function updateArchivePages(){
			  $('#pagination').html('Page ' + (archive_slider.getCurrentSlide()+1) + " of " + archive_slider.getSlideCount());
			  if(archive_slider.getCurrentSlide()>0) $('#archive-prev').fadeIn(); else $('#archive-prev').fadeOut();
			  if(archive_slider.getCurrentSlide()!=archive_slider.getSlideCount()-1) $('#archive-next').fadeIn(); else $('#archive-next').fadeOut();
		  }
		  updateArchivePages();
	}
});
