ncsj.namespace("support");

if (typeof(ncsj.support.Category) == "undefined")
{
	ncsj.support.Category = function(){				
				
		ncsj.support.Category.target = null;
		ncsj.support.Category.onSuccess = null;
		
		this.setTarget =
		function(elementID){
			ncsj.support.Category.target = document.getElementById(elementID.getAttribute("target"));
		}
		
		this.getCategoryList =
		function(selService){						
			this.setTarget(selService);
			var serviceID = selService[selService.selectedIndex].value;
			if(serviceID == 0) return;
			var httpRequest = new ncsj.util.HttpRequest();
			httpRequest.SetUrl(document.location.protocol + '//' + document.domain + '/faq/getCategoryList.nc');
			httpRequest.AddQueryString('serviceID', serviceID);
			httpRequest.SetOnSuccess(ncsj.support.Category.onSuccess);
			httpRequest.SetOnFailure('OnFailure');
			httpRequest.Open('POST', true);	
		}
		
		this.setOnSuccess =
		function(methodName){
			ncsj.support.Category.onSuccess = methodName;
		}
		
		this.getSubCategoryList =
		function(selCategory){
			this.setTarget(selCategory);
			var categoryID = selCategory[selCategory.selectedIndex].value;
			if(categoryID == 0) return;
			var httpRequest = new ncsj.util.HttpRequest();
			httpRequest.SetUrl(document.location.protocol + '//' + document.domain + '/faq/getSubCategoryList.nc');
			httpRequest.AddQueryString('categoryID', categoryID);
			httpRequest.SetOnSuccess(ncsj.support.Category.onSuccess);
			httpRequest.SetOnFailure('onFailure');
			httpRequest.Open('POST', false);						
		}
		
		onSuccessGetCategoryList =
		function (response){
			
			var categoryList = response["body"]["categoryList"];
			var selCategory = ncsj.support.Category.target;			
			
			selCategory.length = 0;								
			
			var option = document.createElement("option");
			option.text = "カテゴリーを選択";
			option.value = "0";
			selCategory.options.add(option);
			
			for(var i = 0; i < categoryList.length; i++){			
				var option = document.createElement("option");
				option.text = categoryList[i]["categoryName"];
				option.value = categoryList[i]["categoryID"];
				selCategory.options.add(option);
			}
		}
		
		onFailure =
		function(response){
			var message = ncsj.util.Message.GetMessage("${G_MESSAGE_URL}", response["header"]["code"]);
			(new Lightbox()).show({"message": message, "option": ID_OK});
		}
		
	};	
}
