function eBayCategoriesSelector(display_categories_string) {
	YAHOO.namespace("catalog.details");
	eBayCategoriesSelector.prototype.display_categories_string = display_categories_string;
	eBayCategoriesSelector.prototype.proccess_message = new ProcessingMessage();
	eBayCategoriesSelector.prototype.proccess_message.create(100, 20);
	eBayCategoriesSelector.prototype.init();
}

eBayCategoriesSelector.prototype.init = function() {
	YAHOO.catalog.details.ebay_categories = new YAHOO.widget.Panel("categories", { width:"650px", height:"270px", visible:false, draggable:true, close:true, fixedcenter: true, modal: true } );
	YAHOO.catalog.details.ebay_categories.setHeader("Select eBay category");
	YAHOO.catalog.details.ebay_categories.render(document.body);
	$("categories").style.display = "none";
}

eBayCategoriesSelector.prototype.refresh_list = function(level, pid) {
	var selected_category_text = "";
	var current_level = 1;
	var site_id = $("search_site_select").value;

	for (current_level = 1; current_level <= level; current_level++ ) {
		selected_category_text += " " + $("category_" + current_level).options[$("category_" + current_level).options.selectedIndex].text;
	}

	if (eBayCategoriesSelector.prototype.display_categories_string) {
		if (selected_category_text != "") {
			$("search_in_categories").innerHTML = "Search in: " + selected_category_text;
		} else {
			$("search_in_categories").innerHTML = "Search in: All categories";
		}
	}
	$("search_category").value = pid;

	for (var i = level + 1; i <= 6; i++ ) {
		var current_element = document.getElementById('category_' + i);
		eBayCategoriesSelector.prototype.clearDynaList(current_element);
	}

	var url = "/ebaysearches/getcategoriesxml.html/?pid=" + pid + "&level=" + (level+1) + "&site_id=" + site_id;
	var AjaxRequest = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: "",
			onCreate: eBayCategoriesSelector.prototype.proccess_message.show(true),
			onSuccess: eBayCategoriesSelector.prototype.get_category_success,
			onFailure: null
		}
	);
}

eBayCategoriesSelector.prototype.get_category_success = function(originalRequest) {
	eBayCategoriesSelector.prototype.proccess_message.hide();
	var result = eval('(' + originalRequest.responseText + ')');
	if (result.items.length > 0) {
		result.items.each(
			function(node){
				var current_list = document.getElementById('category_' + result.level);
				if (node.is_leaf == "false") {
					current_list.options[current_list.options.length] = new Option(node.name + " ->", node.id);
				} else {
					current_list.options[current_list.options.length] = new Option(node.name, node.id);
				}
			}
		);
	}
}

eBayCategoriesSelector.prototype.change_site_id = function(site_id) {
	eBayCategoriesSelector.prototype.refresh_list(0, 0);
	//window.location = "/ebaysearches/advancedsearch.html/?site_id=" + site_id;
}

eBayCategoriesSelector.prototype.clearDynaList = function(oList) {
	for (var i = oList.options.length; i >= 0; i--) {
		oList.options[i] = null;
	}
	oList.selectedIndex = -1;
}

eBayCategoriesSelector.prototype.select_categories_popup = function() {
	$("categories").style.display = "";
	YAHOO.catalog.details.ebay_categories.show();
}

eBayCategoriesSelector.prototype.save_category = function() {
	YAHOO.catalog.details.ebay_categories.hide();
}

eBayCategoriesSelector.prototype.cancel_category = function() {
	$("search_category").value = "";
	if (eBayCategoriesSelector.prototype.display_categories_string) {
		$("search_in_categories").innerHTML = "Search in: All categories";
	}
	YAHOO.catalog.details.ebay_categories.hide();
}

/*
function eBayCategoriesSelector.prototype.is_final_category(id) {
	var url = "/ebaysearches/isfinalcategoryxml.html/?id=" + id;
	var AjaxRequest = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: "",
			onSuccess: eBayCategoriesSelector.is_final_category_success,
			onFailure: null
		}
	);
}

function eBayCategoriesSelector.prototype.is_final_category_success(originalRequest) {
	var result = eval('(' + originalRequest.responseText + ')');
	switch (result) {
		case "true":
			eBayCategoriesSelector.save_category();
		break;
		default:
			eBayCategoriesSelector.cancel_category();
		break;
	}
}
*/