var categories = null;
var categoryIndex = 0;
var storeId = "";
var cateType = "";
var selectedValues = null;
var endFunction = "";

// category ¸¦ select ·Î ±¸¼º
function makeSelectCategory(categoryObj, storeId, cateType, cateId, selectedValues, endFunction) {

	if (typeof(categoryObj) == "undefined") {
		alert("Ä«Å×°í¸® °´Ã¼¸¦ ¼³Á¤ÇÏ¼¼¿ä");
		return;
	}
	
	if (typeof(storeId) == "undefined") {
		alert("»óÁ¡À» ¼³Á¤ÇÏ¼¼¿ä");
		return;
	}
	
	if (typeof(cateType) == "undefined") {
		alert("Ä«Å×°í¸® Á¾·ù¸¦ ¼³Á¤ÇÏ¼¼¿ä");
		return;
	}
	
	if (typeof(cateId) == "undefined") {
		alert("Ä«Å×°í¸®¸¦ ¼³Á¤ÇÏ¼¼¿ä");
		return;
	}
	
	if (typeof(selectedValues) != "undefined" && selectedValues.length > 0) {
		this.selectedValues = selectedValues;
	}
	
	if (typeof(endFunction) != "undefined") {
		this.endFunction = endFunction;
	}
	
	categories = document.getElementsByName(categoryObj.name);
	
	for (var i = 0; i < categories.length; i++) {
	
		if (categories[i] == categoryObj) {
			categoryIndex = i;
			break;
		}
	}

	for (var i = categories.length - 1; i >= categoryIndex; i--) {
	
		if (categories[i].options.length > 0 && categories[i].options[0].value == "") {				
			categories[i].options.length = 1;
		} 
		else {
			categories[i].options.length = 0;
		}
		
		categories[i].options.selectedIndex = 0;
	}
	
	if (storeId == "" || cateType == "" || cateId == "") {
		return;
	}
	
	this.storeId = storeId;
	this.cateType = cateType;
	
	getCategories(cateId);
}

// Ä«Å×°í¸® °¡Á®¿À±â 
function getCategories(cateId) {

	var param = {storeId:this.storeId, cateType:this.cateType, prntCateId:cateId};
	
	ajaxRequest("getCategories", param, getCategoriesCallBack);
}

// callback
function getCategoriesCallBack(list) {

	if (list != null && typeof(list) == "object" && list.length > 0) {
		
		var categoryObj = categories[categoryIndex];
		
		// category ¿É¼Ç°ª Ãß°¡
		dwr.util.addOptions(categoryObj, list, "cate_id", "cate_name");
		
		if (selectedValues != null && selectedValues.length > 0 && selectedValues[categoryIndex].value != "") {
		
			categoryObj.value = selectedValues[categoryIndex].value;
			
			selectedValues[categoryIndex].value = "";
			
			categoryIndex = categoryIndex + 1;
			
			getCategories(categoryObj.value);
		}
	} 
	else {
	
		// Ä«Å×°í¸® ±¸¼º ÈÄ ÃÊ±âÈ­
		categories = null;
		categoryIndex = 0;
		storeId = "";
		cateType = "";
		
		if (endFunction != "") {
		
			eval(endFunction + "()");
			endFunction = "";
		}
	}
}

// category ¸¦ checkbox ·Î ±¸¼º
function createCategory(parentElementName, categoryObjName, cateTypeValue, storeIdValue, categoryIndex, cateId) {

	var parentElementObj = document.getElementById(parentElementName);
	var targetObj;
	
	if (parentElementObj.hasChildNodes() == true) {
	
		targetObj = document.getElementById(categoryObjName + cateId);
		
		// ÇÏÀ§ Ä«Å×°í¸®°¡ ÀÖÀ¸¸é ÇÏÀ§ Ä«Å×°í¸®¸¦ »èÁ¦ÇÑ´Ù.
		if (targetObj.hasChildNodes() == true) {
		
			targetObj.innerHTML = "";
			
			return;
		}
	} 
	else {
	
		targetObj = document.getElementById(parentElementName);
	}
	
	var param = {cateType:cateTypeValue, prntCateId:cateId, storeId:storeIdValue};
	
	// Ä«Å×°í¸® °¡Á®¿À±â
	ajaxRequest("getCategories", param, 
		function (list) {

			if (list != null && typeof(list) == "object" && list.length > 0) {

				var category;
				var str = "";
				var space = "";
				
				for (var i = 0; i < categoryIndex * 8; i++) {
					space += "&nbsp;";
				}
			
				for (var i = 0; i < list.length; i++) {
				
					category = list[i];
					
					str += space + "<input type=\"checkbox\" name=\"" + categoryObjName + "\" value=\"" + category.cate_id + "\" />&nbsp;";
					
					if (category.leaf == 0) {
					
						str += category.cate_name + "<br />";
					} 
					else {
						str += "<a href=\"javascript:createCategory('" + parentElementName + "', ";
						str += "'" + categoryObjName + "', ";
						str += "'" + cateTypeValue + "', ";
						str += "'" + storeIdValue + "', ";
						str += (categoryIndex + 1) + ", ";
						str += "'" + category.cate_id + "');\">";
						str += category.cate_name + "</a> ";
						str += "(" + FormatNumber3(category.leaf) + ")";
						str += "<div id=\"" + categoryObjName + category.cate_id + "\" style=\padding:1px 0 0 0;\"></div>";
					}						
				}
				targetObj.innerHTML = str;
			}
		}
	);
}

// checkbox ·Î ±¸¼ºµÈ Ä«Å×°í¸® Á¦°Å
function removeCheckBoxCategory(parentElementName) {

	document.getElementsByName(parentElementName)[0].innerHTML = "";
}