var FILTER_INV_STATUS		= 'Products.InventoryStatus';
var FILTER_STATUS			= 'Products.ProductStatus';




var filters = new Object();
var search_opts = false;
var sort_field = 'SCORE';
var sort_dir = 'DESC';
var page = 1;
var total_pages;
var total_objects;
var ajax_url = '/includes/products.php';

var loading = false;

/*
function set_sort(field) {
	offset = 0;
	page = 1;
	
	if(field == sort_field) {
		if(sort_dir == "ASC") {
			sort_dir = "DESC";	
		} else {
			sort_dir = "ASC";	
		}
	} else {
		sort_field = field;
		sort_dir = "ASC";
	}
	get_objects();
}*/

function bind_filters() {
	bind_filter('bid');
	bind_filter('st');
	bind_filter('pt');
	bind_filter('color');
	bind_filter('size');
	
	$("input.filter.price").click(function() {
		set_price_range($(this), true);									 
	});
	
	$("select.filter.price").change(function() {
		set_price_range($(this), true);									 
	});
}

function bind_filter(type) {
	$("input.filter." + type).click(function() {
		if(this.checked) {
			set_filter(type, $(this).attr("id").substr(1), '=', true);
		}else{
			set_filter(type, $(this).attr("id").substr(1), 'CLEAR', true);
		}
	});
	
	$("select.filter." + type).change(function() {
		delete filters[type];
		if($(this).val() == 'CLEAR' ) {
			set_page(1, false);
			get_objects();
		}else{
			set_filter(type, $(this).val(), '=', true);
		}
	});
}

function set_price_range(jq,get_obj) {
	if(typeof(get_obj) == 'undefined') { get_obj = false; }
	delete filters.price;
	filters.price = { v: {}, j: 'AND'}
	
	if(jq.tag() == 'input') {
		if( $("input.filter.price:checked").length <= 0 ) { delete filters.price; }
		else {
			if( $("input.filter.price:checked:first").parents('li.filter_w').find('.p1').length > 0) {
				filters.price.v[ $("input.filter.price:checked:first").parents('li.filter_w').find('.p1').html() ] = '>=';	
			}
			if( $("input.filter.price:checked:last").parents('li.filter_w').find('.p2').length > 0) {
				filters.price.v[ $("input.filter.price:checked:last").parents('li.filter_w').find('.p2').html() ] = '<=';
			}
		}
	} else {
		if( jq.val() == 'CLEAR' ) { delete filters.price; }
        else {
            filters.price = { v: {}, j: 'AND'}
            var lim = jq.val().split("::");
            filters.price.v[lim[0]] = '>=';
            filters.price.v[lim[1]] = '<=';
        }
	}
	if(get_obj) { get_objects(); }
}

function set_page(pg, get_obj) {	
	if(typeof(get_obj) == 'undefined') { get_obj = false; }
	page = pg;
	if(get_obj) { get_objects(); }
}

function set_filter(filter, id, op, get_obj) {
	if(typeof(get_obj) == 'undefined') { get_obj = false; }
	
	if( !objPropExists(filters,filter) ) {
		filters[filter] = { v: {}, j: 'OR' }
	} 
	if(typeof(op) == 'undefined') { op = '='; }	
	if(op == 'CLEAR') {
		delete filters[filter].v[id];
		if(objPropLength(filters[filter].v) == 0) {
			delete filters[filter];	
		}
	} else {
		filters[filter].v[id] = op;	
	}
	set_page(1, false);
	if(get_obj) { get_objects(); }
}

function set_search(query, field, type, get_obj) {
	if(typeof(get_obj) == 'undefined') { get_obj = false; }
	
	if(query.length == 0) {
		search_opts = false;
	}else {
		var space_reg = new RegExp(/^\s*$/);
		if( space_reg.test( query ) ) { return false; } else {
			search_opts = new Object();
			search_opts['search_field'] = field;
			search_opts['search_type'] = type;
			search_opts['search_string'] = query;
		}
	}
	if(get_obj) { get_objects(); }
}


function get_objects(callback_function) {
	if(!loading) {
		loading = true;
		var filtersJSON = $.toJSON(filters);
		if(search_opts == false) {
			var searchJSON = false;	
		} else {
			var searchJSON = $.toJSON(search_opts);
		}
		$("div.ploader").show();
		
		$.ajax({
		   type: "POST",
		   url: ajax_url,
		   data: constructQueryString('get_objects',page, filtersJSON, searchJSON, false),
		   dataType: "html",
		   success: function(result) {
			  loading = false;
			  $("#pdiv").html(result);
			  if(typeof(callback_function) == 'function') {
				  callback_function();
			  }
			  $("div.ploader").hide();
		   }
		 });
	}
}
/*

function set_search(action, do_reload) {
	if( typeof(do_reload) == "undefined" ) {
		do_reload = true;
	}
	if(action == "CLEAR") {
		search_opts = false;
		$("input.search_string").val('');
		$("span.search_string_disp").hide();
	}else {
		var space_reg = new RegExp(/^\s*$/);
		if( space_reg.test($("input.search_string").val()) ) { return false; } else {
			search_opts = new Object();
			search_opts['search_field'] = $("select.search_field").val();
			search_opts['search_type'] = $("select.search_type").val();
			search_opts['search_string'] = $("input.search_string").val();
			$("span.search_string_disp").show().find("span.link a").html(search_opts['search_string']);
		}
	}
	if(do_reload) {
		get_objects();
	}
}
*/