
/**
 * 
 */
var SearchConst = {
		SERVICE		: "ComSrcnCnts0000",
		RQ_SEARCH	: "RQ_SEARCH",
		RQ_CONVERT	: "RQ_CONVERT",
		RQ_WORD		: "RQ_WORD"
};


/**
 * 
 */
var SearchHandler = new (Class.extend({
	
	/**
	 * Initialize the Search
	 */
	init: function(context)
	{
		console.log("Initialize the search...");
	},
	
	call: function(context)
	{
		SearchHandler.init(context);
		
		(!!context.search	) ? SearchHandler.search(context) : null;
		(!!context.convert	) ? SearchHandler.convert(context) : null;
		(!!context.word		) ? SearchHandler.word(context) : null;
	},
	
	callback: function(context)
	{
		(!!context.callback	) ? context.callback(context.result) : null;
	},
	
	search: function(context)
	{
		var request = context.search;
		var jexAjax = jexjs.createAjaxUtil(SearchConst.SERVICE);
		jexjs.comm.setAjaxErrTrx(true);
		
//		jexAjax.set(SearchConst.RQ_SEARCH, context.search);
		jexAjax.set("TASK"			, "BCS_ComSrcnCnts"		);
		jexAjax.set("QUERY"			, request.query			);
		jexAjax.set("SORT"			, request.sort			);
		jexAjax.set("REQUERY"		, request.requery		);
		jexAjax.set("COLLECTION"	, request.collection	);
		jexAjax.set("START_COUNT"	, request.start_count	);
		jexAjax.set("LIST_COUNT"	, request.list_count	);
		jexAjax.set("LANG"			, request.lang			);
		
		jexAjax.execute(function (result) {
			context.result = result;
			
			SearchHandler.callback(context);
		});
	},
	
	convert: function(context)
	{
		var request = context.convert;
		var jexAjax = jexjs.createAjaxUtil(SearchConst.SERVICE);
		jexjs.comm.setAjaxErrTrx(true);
		
//		jexAjax.set(SearchConst.RQ_CONVERT, context.convert);
		jexAjax.set("TASK"		, "BCS_ComSrcnConvert");
		jexAjax.set("TARGET"	, request.target	);
		jexAjax.set("QUERY"		, request.query		);
		jexAjax.set("CONVERT"	, request.convert	);
		jexAjax.set("CHARSET"	, request.charset	);
		jexAjax.set("DATATYPE"	, request.datatype	);
		
		jexAjax.execute(function (result) {
			context.result = result;
			
			SearchHandler.callback(context);
		});
	},
	
	word: function(context)
	{
		var request = context.word;
		var jexAjax = jexjs.createAjaxUtil(SearchConst.SERVICE);
		jexjs.comm.setAjaxErrTrx(true);
		
//		jexAjax.set(SearchConst.RQ_WORD, context.word);
		jexAjax.set("TASK"		, "BCS_ComSrcnWord"	);
		jexAjax.set("TARGET"	, request.target	);
		jexAjax.set("COLLECTION", request.collection);
		jexAjax.set("RANGE"		, request.range		);
		jexAjax.set("DATATYPE"	, request.datatype	);
		
		jexAjax.execute(function (result) {
			context.result = result;
			
			SearchHandler.callback(context);
		});
	}
	
	
}))();




