$(document).ready(function(){
	
	//initial load
//	ls();
//	$.get($.fn.ProductSelect.srv, $.fn.ProductSelect.state, function (data){
//		$("#products").html(data);
//		lh();
//		
//	});
	register();
	
	//handle scroll
	$(window).scroll(function (){handle_scroll();});
	
	//handle filters
	$("form#filters").find("select").change(function(){handle_filter();});
});

function handle_scroll()
{
	var top = (window.scrollY) ? window.scrollY : document.documentElement.scrollTop;
	var tot = (window.scrollMaxY) ? window.scrollMaxY : (document.documentElement.scrollHeight - document.documentElement.offsetHeight);
	var scroll_pct = ((top)?top:1) / ((tot)?tot:1);

	if(!$.fn.ProductSelect.loading && scroll_pct > $.fn.ProductSelect.scroll_threshold)
	{
		load_next_page();
	}
}

function handle_filter()
{
	$.fn.ProductSelect.state.metal = $("#metal").val();
	$.fn.ProductSelect.state.width = $("#width").val();
	$.fn.ProductSelect.state.sort = $("#sort").val();
	$.fn.ProductSelect.state.page = 0;
	
	$.fn.ProductSelect.state.reload = "pages";
	//$("#products").html($.fn.ProductSelect.load_msg);
	ls();
	$.get($.fn.ProductSelect.srv, $.fn.ProductSelect.state, function(data){
		$.fn.ProductSelect.num_pages = parseInt(data);
	});
	$.fn.ProductSelect.state.reload = "reload";
	$.get($.fn.ProductSelect.srv, $.fn.ProductSelect.state, function(data){
		$("#products").html(data);
		register();
		lh();
	});
	$.fn.ProductSelect.state.reload = false; 
}

function load_next_page()
{
	if(++$.fn.ProductSelect.state.page < $.fn.ProductSelect.num_pages)
	{		
		$.fn.ProductSelect.loading = true;
		//$("#products").append($.fn.ProductSelect.load_msg);
		ls();
		$.get($.fn.ProductSelect.srv, $.fn.ProductSelect.state, function(data){
			$.fn.ProductSelect.loading = false;
			$("#products").append(data);
			register();			
			if(window.scrollY){handle_scroll();} // check for need to load again if not ie
			
			//$("#products").find("div.loading").remove();
			lh();
			
		});
	}
}

function ls(){ $("#fixed-load").show();}
function lh(){ $("#fixed-load").hide();}

function register()
{
	$("div.productSelectSettings").find("img").click(function(){if(!$.fn.ProductSelect.changing){change_image(this);}});	
//	$("div.productSelectImage").cluetip({arrows: true, positionBy: 'auto', 
//										 dropShadowSteps: 6, topOffset: 40, width: 400, cluezIndex:101,
//										 hoverIntent : { sensitivity: 4, interval: 2000, timeout: 2000},
//										 onShow : function (ct, c) { 
//										 	$(ct).addClass("productSelect"); 
//										 }
//					//					 ,sticky: true
//										}).bgiframe();
}

/* -- example of how to setup cluetip
$(document).ready(function(){
	$('.hlight_6').cluetip({
		attribute: 'id', 
		arrows: true, 
		sticky: true,
		dropShadowSteps: 6, 
		closePosition: 'title', 
		leftOffset: 13, 
		width: 200, 
		cluezIndex: 101, 
		closeText: "<img src='/images/close_02.gif' alt='close' />", 
		mouseOutClose: true
	});
});
*/

function change_image(o)
{
	$.fn.ProductSelect.changing = true;
	$.fn.ProductSelect.state.change = $(o).attr("sku"); 
	$.fn.ProductSelect.state.shape = $(o).attr("alt");
	$.get($.fn.ProductSelect.srv, $.fn.ProductSelect.state, function(data){
		//$(o).parent().parent().find(".productSelectImage").css("background-image", data);	
		$(o).parent().parent().find(".productSelectImage img").attr("src", data);
		$(o).parent().parent().find('a').each(function(){
			var d=$(this).attr('href');
			var s=$.fn.ProductSelect.state.shape;
			$(this).attr('href', d.replace(/\?.*/, '') + '?setting=' + s);
		});	
		$.fn.ProductSelect.changing = false;
		$.fn.ProductSelect.state.change = false; 
		$.fn.ProductSelect.state.shape = false; 
	});
}