/*SUBMIT*/
(new Image()).src = animate_img_src = '/shop/images/activity.gif'; //preload image
function animate_submit_button(form){
	$(form).find('input[type=submit],button[type=submit]').addClass('sf_busy_button').before('<img src="'+animate_img_src+'" class="sf_busy_img">');	
}



/*SEARCH SUGGEST*/
var searchSuggestBusy = false;
var searchSuggestTimeout;

function searchSuggestFunction(){
	if(searchSuggestBusy){
		searchSuggestSetTimeout();
	}else{
		var q = $('#searchform #q').val() + '';
		if(/\w\w/.test(q)){ //only start suggesting if query has at least 2 letters
			searchSuggestBusy = true;	
			$.get('/shop/action.php',{search_suggest:q}, function(data){
				$('#search_suggest').html(data);
				searchSuggestVisibility();
				searchSuggestBusy = false;
			});		
		}else{
			$('#search_suggest').html('');	
				searchSuggestVisibility();
		}
	}
}	

function searchSuggestVisibility(){
	if( $('#search_suggest ul li').size() )
		$('#search_suggest').fadeIn();
	else		
		$('#search_suggest').hide();
}

function searchSuggestSetTimeout(){
	clearTimeout(searchSuggestTimeout);
	searchSuggestTimeout = setTimeout('searchSuggestFunction();',500);
}
	


$(document).ready(function() {
	$('form').submit(function(){
		animate_submit_button(this);
		return true;
	});

	

	
	$('#searchform #q').keypress(function(){
		searchSuggestSetTimeout();
	});
	
	searchSuggestVisibility();

	
	
						   
	/*NAV*/
	
	var scheduleNavHideTimeout = null;
	function scheduleNavHide(){
		scheduleNavHideTimeout = setTimeout(function(){$('ul#nav>li>ul').fadeOut(200);$('ul#nav a.navlink').removeClass('active');},300);	
	}
	
	function navShow(obj){
		clearTimeout(scheduleNavHideTimeout);									
		var $a = $(obj);
		var $ul = $(obj).next('ul');
		if(!$ul.size()){	//this is a sub-menu link
			$ul = $(obj).parents('ul:first');
			$a = $ul.prev('a');
		}
		$('ul#nav>li>ul').not($ul).hide();
		$('ul#nav a.navlink').not($a).removeClass('active');
		var ofs = $a.offset();
		if($a.hasClass('navlink')) $a.addClass('active');
		
		$ul.css({display:'block',left:ofs.left-(160-$a.outerWidth())/2,top:ofs.top+22});		
	};
	
	$('a.navlink.dropdown').click(function(){
		navShow(this);
		return false;
	});
	
	$('a.navlink.dropdown').hover(function(){
		navShow(this);
	},function(){
		scheduleNavHide();		
	});
	
	$('.subnav a').hover(function(){
		clearTimeout(scheduleNavHideTimeout);
	},function(){
		scheduleNavHide();		
	});
	
	

	/*SLIDESHOW*/
	$('#homeslides').hover(function(){
		$('.slide_arrow').css('visibility','visible');
	},function(){
		$('.slide_arrow').css('visibility','hidden');
	});	
	
	var slide_index = 0;	
	if($('.slide_dot').size())
		var slide_interval = setInterval(function(){slide_move({delta:1,keep_interval:true})},4500)
	function slide_move(param){
		var slide_count = $('.slide').size();
		var $slide_old = $('.slide').eq(slide_index);
		if('slide_index' in param) slide_index = param.slide_index;		
		if('delta' in param) slide_index =  (slide_index  + slide_count + param.delta) % slide_count;
		if(param.keep_interval  !== true) clearInterval(slide_interval);		
		var $slide_new = $('.slide').eq(slide_index);
		$('.slide').not($slide_old).stop(true,true).hide();	 //for fast clickers	
		$slide_old.fadeOut(500);
		$slide_new.fadeIn(1000);		
		$('.slide_dot').removeClass('active');
		$('.slide_dot').eq(slide_index).addClass('active');		
		
	}
	
	$('a.slide_left').click(function(){slide_move({delta:-1});return false;});
	$('a.slide_right').click(function(){slide_move({delta:1});return false;});
	$('a.slide_dot').click(function(){slide_move({slide_index:$(this).index()});return false;});	
	
	/*FAVOURITE*/
	$('#set_favourite[href^="#"]').click(function(){	
		$obj = $(this).animate({opacity:0.1},300);									   
		$.get('/shop/action.php',{set_favourite:$(this).attr('href').substring(1)},function(data){
			$obj['active' == data ? 'addClass' : 'removeClass']('active');																  
			$obj.stop().animate({opacity:1},100);									   
		});
		return false;
	});
	
	$('div.thumb.fav_del').hover(function(){
		$(this).find('a.fav_del').show();										  
	},function(){
		$(this).find('a.fav_del').hide();		
	});

	$('a.fav_del').click(function(){
		$obj = $(this).parent().animate({opacity:0.1},300);									   
		$.get('/shop/action.php',{set_favourite:$(this).attr('href').substring(1),fav_del:1},function(data){
			$obj.stop().animate({width:0,opacity:0},100,function(){$obj.remove();});									   								
		});
		return false;
	});


	/*MESSAGE*/
	$('.sf_message').css({visibility:'visible',opacity:0}).animate({opacity:1},500);
	

	
	/*POPUP*/
	$('a[href^="/shop/login.php"]').click(function(){
		popup_show($(this).attr('href'));												   
		return false;		
	});

	$('#overlay').css('opacity',0.8).add('#popup_close').click(function(){
		popup_hide();
		return false;
	});
	
	function popup_show(url){
		url += (-1 == url.indexOf('?')) ? '?popup=1' : '&popup=1';
		$('#overlay').fadeIn(500);		
		$.get(url, function(data){
			$('#popup_content').html(data);			
			$('#popup').fadeIn(250);											
			$('#popup').css({top: get_scroll_top() + 200});			
		});

	}

	/*EXPAND*/
	$('a.expand').click(function(){
		$(this).nextAll('.expandTarget').css($(this).toggleClass('open').hasClass('open') ? {position:'static',visibility:'visible'} : {position:'absolute',visibility:'hidden'});
		return false;
	});
	
});

function get_scroll_top(){
	var v = $('html').scrollTop();	//Safari reacts to 'body', other browsers to 'html'
	return v ? v : $('body').scrollTop();
}


function set_scroll_top(y){
	$('html,body').scrollTop(y);
}

function ajax_login_submit(form){
	animate_submit_button(form);
	$(form).ajaxSubmit({success:function(responseText){
		if('{' == responseText.substr(0,1)){
			data = eval('(' + responseText + ')');
			//redirect through intermediary script to ensure page reload with login credentials)
			location.href = '/shop/login_redirect.php?return_url=' + encodeURIComponent(data.return_url)+
				'&auto_login=' + encodeURIComponent(data.auto_login) + '&rand='+Math.random();
		}else{			
			$('#popup_content').html(responseText);
		}
		return false;
	}});
}

function popup_hide(){
	$('#popup').fadeOut(250);
	$('#overlay').fadeOut(500);
}
