/**** **/

var view_strings = [
	'',
	'two_col',
	'three_col',
	'six_col'
];

var current_row = "";
var current_page = 1;
var current_view = 2;
var done = false;
var current_offset = 0;
var last_offset = 0;
var current_sort_by = 'lotno';
var current_sort_direction = 'asc';
var current_filter_string = 'none';
var last_query;
var last_hash = '';
var last_total = 0;
var last_direction = 'desc';
var last_sort_by;
var pagination = ['page 1', 'page 2', 'page 3', 'page 4', 'page 5', 'page 6', 'page 7', 'page 8', 'page 9', 'page 10', 'page 11', 'page 12'];


$(document).ready(function() {
     if (document.all) {
        $(".nav li").fixHover();
	 }
	
	check_hash();
	load_content();
	hash_listener();
/* 	load_pager(); */
	last_sort_by = current_sort_by;
});

$(window).scroll(function(){
	var wh = $(document).height() - $(window).height();
	if  ($(window).scrollTop() >= (wh-400)){
		scroll_handler();
	}
});

/* functions */

function clear_search() {
	$('#filter_string').val('');
	check_filter();
	load_page();
}

function set_hash() {
	if (current_sort_direction == 'asc') 
		var hash_direction = 'A';
	else 
		var hash_direction = 'D';
 	
	if (current_sort_by == 'lotno') 
		hash_sort_by = 'L';
	
	if (current_sort_by == 'artist') 
		hash_sort_by = 'A';
	
	if (current_sort_by == 'estimate') 
		hash_sort_by = 'E';

	window.location.hash = '#'+hash_sort_by+hash_direction+'/'+current_filter_string+'/'+current_row+'/'+current_page;
	
	current_hash = last_hash = window.location.hash;
}

function check_hash() {
	
	var current_hash =  window.location.hash.substr(1);
		
	if (current_hash.length>2) {
		// current_view = current_hash.substr(0,1);
		
		var sort_temp = current_hash.substr(0,1);
		
		if (sort_temp == 'L') 
			current_sort_by = 'lotno';
			
		if (sort_temp == 'A') 
			current_sort_by = 'artist';
		
		if (sort_temp == 'E')
			current_sort_by = 'estimate';
		
		if (current_hash.substr(1,1)=='A')
			current_sort_direction = 'asc';
		else
			current_sort_direction = 'desc';
			
		var subsection = current_hash.substr(3).split('/');

		var filter_string = subsection[0];

		current_row = subsection[1];
		
		current_page = subsection[2]; 

		if (filter_string != 'none') {
			current_filter_string = filter_string.replace(/ /g, '_');
			$('#filter_string').val(filter_string.replace(/_/g, ' '));
			$('#filter_reset').show();
		} else {
			current_filter_string = 'none';
			$('#filter_string').val('');
			$('#filter_reset').hide();
		}
		
		$('#pager').val(current_page);		
		// $('#filter_string').val($('#filter_string').val().replace(/_/g, ' '));
		
		$('#sort_options').val(current_sort_by+'_'+current_sort_direction);
		
		last_hash = current_hash;
		load_content();
	}
}

function check_filter() {
	var filter_string = $('#filter_string').val();
		
	if (filter_string.length>2 && filter_string != current_filter_string) {
		current_row="";
		current_filter_string = filter_string.replace(/ /g, '_');
		done = false;
		current_offset = 0;
		last_offset = 0;
		current_page = 1;
		
		load_content();
		set_hash();
		$('#filter_reset').show();
	}
	if (filter_string.length==0) {
		current_row="";
		current_filter_string = 'none';
		$('#filter_reset').hide();
		done = false;
		current_offset = 0;
		last_offset = 0;
		load_content();
		set_hash();
	}
}

var is_loading = false;

function load_content() {
	if (current_page != 0)
		page_offset = (current_page-1)*16;
	else
		page_offset = 0;
	
	var my_id = new Date().getTime();
	
	is_loading = true;
	
	$('#wrapper').html('<div class="loading" id="loading'+my_id+'">Loading&hellip;</div>');
	$.getJSON("/ajax/auction/"+auction_fd_key+"/"+session_fd_key+"/"+view_strings[current_view]+"/"+current_filter_string+"/"+current_sort_by+'_'+current_sort_direction+"/"+current_page+"/"+page_offset+"/"+"4"+'/'+new Date().getTime(),
		function(data) {
			is_loading = false;
			if(data.count != 4)
				done = true;	
			
			if (data.count==0) {
				data.html = '<span style="font-size: 11px; font-weight: bold">No items match your criteria.</span>';
			}
			
			pagination = data.pagination;
			
			current_offset = data.count;
			$('#wrapper #loading'+my_id).html(data.html);
			total_items = data.total_count;
			load_pager();

			$('#coverup').fadeOut('slow');
			// if (current_filter_string != 'none')	
		}
	);
}

function scroll_handler() {
	if (!is_loading) {
		if (current_offset != last_offset && !done) {
/* 			current_offset += 4; // set for # expected */
		// 		
		
		if (current_offset >= 12 && current_page != 0) {
			done = true;
		}
				
		is_loading = true;

/* 		page_offset = -4; */

		var my_id = new Date().getTime();
		
		$('#wrapper').append('<div class="loading" id="loading'+my_id+'"> </div>');
		$('#scroll_coverup').css('display','block').fadeTo("slow", 0.85);
		$.getJSON("/ajax/auction/"+auction_fd_key+"/"+session_fd_key+"/"+view_strings[current_view]+"/"+current_filter_string+"/"+current_sort_by+'_'+current_sort_direction+"/"+current_page+"/"+(page_offset+current_offset)+"/"+"4"+'/'+new Date().getTime(),
				function(data){
					is_loading = false;
					
					if(data.count != 4)
						done = true;
					current_offset += data.count; // correct for # received
					$('#wrapper div#loading'+my_id).html(data.html);
					$('#scroll_coverup').fadeOut('slow');
				}
			);
		}
	}
}

function set_sort_select() {
	var v = $('#sort_options').val().split('_');
	set_sort(v[0], v[1]);
}

function set_sort(sort_by, sort_direction) {
	if (sort_by != current_sort_by || sort_direction != current_sort_direction) {
		current_sort_by = sort_by;
		current_sort_direction = sort_direction;
		done = false;
		current_offset = 0;
		last_offset = 0;
		current_row="";
		current_page = 1;
		load_content();
		set_hash();
	}
}

function click_item(row, hr) {
	current_row = row;
 	set_hash();
	return true;
/*
	alert('click');
	return false;
*/
}

var scrolled_to_anchor = true;

function hash_listener() {
	var current_hash =  window.location.hash;
	if (last_hash != current_hash) {
		check_hash();
		last_hash = current_hash;
	}
	setTimeout('hash_listener()', 500);
	
	var found_anchor = false;
	var my_id = new Date().getTime();

	$('#wrapper a').each(function() {
		if (this.name == last_hash.substring(1)) {
			found_anchor = true;
			this.id = 'found_anchor_'+my_id;
		}
	})	
		
	if (!found_anchor && current_row != '' && current_row != '0' && current_row.length==4)  {
		document.body.scrollTop = 0;
 		$('#coverup').css('display','block').fadeTo("slow", 0.85); 

		scrolled_to_anchor = false;
		if (!done && !is_loading) {
			is_loading = true;
			$.getJSON("/ajax/auction/"+auction_fd_key+"/"+session_fd_key+"/"+view_strings[current_view]+"/"+current_filter_string+"/"+current_sort_by+'_'+current_sort_direction+"/"+current_page+"/"+(page_offset+current_offset)+"/"+"4"+'/'+my_id,
				function(data){
					if(data.count != 4)
						done = true;

					if (current_offset >= 12 && current_page != 0) {
						done = true;
					}

					current_offset += data.count; 
					is_loading = false;
					$('#wrapper').append(data.html);
				}
			);
		}
	} else {
		if (found_anchor && !scrolled_to_anchor) {
			$.scrollTo('#found_anchor_'+my_id, 2400, {offset:-124, onAfter: function() { $('#coverup').fadeOut('slow'); } });
			scrolled_to_anchor = true;

		}
	}

}

function pager_previous() {
	var total_pages = Math.ceil(total_items/16);

	if (current_page > 1)  {
		current_page--;
		if (current_page == 1) {
/* 			alert('.'); */
			$('#pager_previous').css('color','#ffffff');
		} else {
			$('#pager_previous').css('color','#555');
		}
		
		if (current_page == total_pages) {
			$('#pager_next').css('color','#ffffff');
		} else {
			$('#pager_next').css('color','#555');
		}

		
		$('#pager').val(current_page);		
		done = false;
		current_offset = 0;
		last_offset = 0;
		current_row="";
		load_content();
		set_hash();
	}
}

function pager_next() {
	var total_pages = Math.ceil(total_items/16);
	
	current_page++;
	
	if (current_page == 1) {
		$('#pager_previous').css('color','#ffffff');
	} else {
		$('#pager_previous').css('color','#555');
	}

	if (current_page == total_pages) {
		$('#pager_next').css('color','#ffffff');
	} else {
		$('#pager_next').css('color','#555');
	}
	
	if (current_page>total_pages) {
		current_page = total_pages;
		$('#pager_next').addClass('inactive');
	}
	else {
		$('#pager').val(current_page);		
		done = false;
		current_offset = 0;
		last_offset = 0;
		current_row="";
		load_content();
		set_hash();
	}
}

function check_pager() {
	current_page = $('#pager').val();
	done = false;
	current_offset = 0;
	last_offset = 0;
	current_row="";
	load_content();
	set_hash();
}

function load_pager() {
	if (total_items != last_total || last_direction != current_sort_direction || last_sort_by != current_sort_by) {
		var total_pages = Math.ceil(total_items/16);
		var pager = '';
				
		if (current_sort_by == 'lotno' && current_filter_string == 'none') {
			for(var i=0; i<total_pages; i++) {
				pager += '<option value="'+(i+1)+'"';
				if ((i+1)==current_page)
					pager += ' selected="selected"';
				pager += '>'+pagination[i]+'</option>';
			}
		} 
		else {			
			for(var i=0; i<total_pages; i++) {
				pager += '<option value="'+(i+1)+'"';
				if ((i+1)==current_page)
					page += ' selected="selected"';
				pager += '>page'+(i+1)+'</option>';
			}
		}
		
		if (total_pages>1) {	
			$('#pager').html(pager+'<option value="0">show all</option>');
		} else {
			$('#pager').html(pager);
		}
		
		last_total = total_items;
		last_direction = current_sort_direction;
		last_sort_by = current_sort_by;
	} 
}