function keyword_checkin(obj) {
	try {
		if (obj.value == '...Tìm kiếm...') {
			obj.value = '';
		}
		else {
			obj.select();
		}
	}
	catch (e) {}
}

function keyword_checkout(obj) {
	try {
		if (obj.value == '') {
			obj.value = '...Tìm kiếm...';
		}
	}
	catch (e) {}
}

function keyword_checklast() {
	try {
		if ((!document.getElementById('key').value) || (document.getElementById('key').value == '...Tìm kiếm...')) {
			return false;
		}
		else {
			return true;
		}
	}
	catch (e) {}
}


function clearById(obj_id) {
	clear(document.getElementById(obj_id));
}

function clear(obj) {
	while (obj.firstChild) {
		obj.removeChild(obj.firstChild);
	}
}

function get_result() {
	var search_check_start_page = false;
	if (get_url_params('start')) {
		search_check_start_page = true;
	}
	
	var key = get_url_params('key');
	var type = get_url_params('type');
	var key_display = key;
	$('keyword').value = key;
	temp = $('templates').innerHTML;

	temp_img = $('templates-img').innerHTML;

	cate = $('cate-id').innerHTML;
	config.is_report = false;

	if(key) key = process_key(key);

	if(get_url_params('type') == 'date') {
		key_display = get_url_params('key').split('-')[2] + '/' + get_url_params('key').split('-')[1] + '/' + get_url_params('key').split('-')[0];
		key = 'cateid:' + get_url_params('cateid') + ' AND date:[' + get_url_params('key') + 'T00:00:00.000Z TO ' + get_url_params('key') + 'T23:59:59.999Z]';
		$('keyword').value = '';
	}

	switch(cate) {
		case'4665':
			config.search_per_page = 20;
			if(!key) {
				url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + "&start=0&rows=1&r=&wt=xml";
				//alert(url);
			}
			else {
				url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + " AND " + encodeURI(key) + "&start=0&rows=1&r=&wt=xml";
				config.is_report = true;
			}
			break;
		case'4630':
		case'4648':
		case'4649':
		case'4650':
		case'4631':
		case'4632':
		case'4633':
		case'4634':
		case'4635':
			if(!key)
				url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + "&start=0&rows=1&r=&wt=xml";
			else
				url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + " AND " + encodeURI(key) + "&start=0&rows=1&r=&wt=xml";
			break;
		default:
			if(type == 'cate')
				url = "/search/select/?q=siteid:" + config.siteid + " AND " + encodeURI(get_url_params('key')) + "&start=0&rows=1&r=&wt=xml";
			else
			url = "/search/select/?q=siteid:" + config.siteid + " AND " + encodeURI(key) + "&start=0&rows=1&r=&wt=xml";
			config.is_report = true;
	}

	var handleSuccess = function(o) {
		var numFound = o.responseXML.getElementsByTagName("result").item(0).getAttribute("numFound");
		if ((!numFound) || (numFound <= 0)) {
			clearById('paging');
			clearById('result');
			$('result').innerHTML = '<div style="color: #000; padding: 5px; text-align: center">Không tìm thấy kết quả nào</div>';
			return;
		}

		YAHOO.util.Event.onDOMReady(function() {

			var list = YAHOO.namespace('vsolutions');
			list.content = YAHOO.util.Dom.get('result');

			var get_search_data = function(xmlData, key, start, row_per_page) {
				var strHTML = "";
				var strAvatar = new Array();
				var strCateName = new Array();
				var strCateId = new Array();
				var strArticleId = new Array();
				var strTitle = new Array();
				var strLead = new Array();
				var strUrl = new Array();
				var strCate = new Array();
				var strSite = new Array();
				var strDate = new Array();
				var strHighLightLead = new Array();
				var strHighLightTitle = new Array();
				var end = 0;

				var rowData = xmlData.getElementsByTagName("doc");
				var highLight = xmlData.getElementsByTagName("lst");

				var to = start + row_per_page;
				var from = start + 1;



				if (to > numFound) {
					to = numFound;
				}
				for (var i = 0 ; i < rowData.length ; i ++ ) {
					var strNodes = rowData.item(i).getElementsByTagName("str");
					strAvatar[i] = "";
					strLead[i] = "";
					strTitle[i] = "";
					strUrl[i] = "";
					strDate[i] = "";
					strArticleId[i] = "";

					try {
						strDate[i] = rowData.item(i).getElementsByTagName("date").item(0).childNodes.item(0).data;
						strDate[i] = strDate[i].replace("T"," ").replace("Z"," [GMT+7]");
						strDate[i] = strDate[i].split(" ")[0].split("-")[2] + "/" + strDate[i].split(" ")[0].split("-")[1] + "/" + strDate[i].split(" ")[0].split("-")[0] + " " + strDate[i].split(" ")[1] + " " + strDate[i].split(" ")[2];
					}
					catch (e) {
						strDate[i] = "";
					}

					for(var j = 0; j < strNodes.length; j++) {
						if(strNodes.item(j).getAttribute('name') == 'avatar')
							strAvatar[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'lead')
							strLead[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'title')
							strTitle[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'url')
							strUrl[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'cate')
							strCate[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'id')
							strArticleId[i] = strNodes.item(j).childNodes.item(0).data;
						if(strNodes.item(j).getAttribute('name') == 'site')
							strSite[i] = strNodes.item(j).childNodes.item(0).data;
					}
				}
				
				for(var j = 0; j < strArticleId.length; j++) {

					strHighLightLead[j] = "";
					strHighLightTitle[j] = "";

					for (var i = 0 ; i < highLight.length; i ++) {
						var strHighlight = highLight.item(i).getElementsByTagName("arr");

						if (highLight.item(i).getAttribute("name") == strArticleId[j]) {

							for (var k= 0; k < strHighlight.length; k++) {

								strContent = strHighlight.item(k).getElementsByTagName("str");

								if (strHighlight.item(k).getAttribute('name') == 'title' && strHighLightTitle[j] =='') {
									strHighLightTitle[j] = strContent.item(k).childNodes.item(0).data;
								}

								if (strHighlight.item(k).getAttribute('name') == 'content'  && strHighLightLead[j] =='') {
									for (l = 0; l < strContent.length; l++) {
										strHighLightLead[j] += strContent.item(l).childNodes.item(0).data;
									}
								}
							}
						}
					}
				}


				// Thông báo kết quả
				if(config.is_report)
					strHTML += '<div class="report">Kết quả từ <span><strong>' + from + '</strong></span> - <span><strong>' + to + '</strong></span> trong <span> <strong>' + numFound + '</strong> </span> kết quả cho từ khóa <font class="key"><b>' + key_display + '</b></font></div>';
				if (rowData.length > 0) {
					for (i = 0 ; i < rowData.length; i ++ ) {

						if (strHighLightLead[i] != '') {
							strLead[i] = strHighLightLead[i];
						}

						if (strHighLightTitle[i] != '') {
							strTitle[i] = strHighLightTitle[i];
						}

						var cate_url = '/' + strUrl[i].split('/').slice(3, 5).join('/')
						var page_url = '/' + strUrl[i].split('/').slice(3, 10).join('/');




				// Giao diện hiển thị ITEM kết quả search
				//---------------------------------------------------------------------------
					if (strAvatar[i] == '/dataimages/normal/' || strAvatar[i] == '/dataimages/original/') {
						tem = temp.replace(/@TITLE@/g, strTitle[i]);
						tem = tem.replace(/@PAGE_URL@/g, page_url);
						tem = tem.replace(/@LEAD@/g, strLead[i]);
					}
					else {
						tem = temp_img.replace(/@TITLE@/g, strTitle[i].replace(/<(?:.|\s)*?>/g, ""));
						tem = tem.replace(/@PAGE_URL@/g, page_url);
						tem = tem.replace(/@LEAD@/g, strLead[i]);
						tem = tem.replace(/@IMAGE@/g, strAvatar[i]);
						tem = tem.replace(/normal/g, 'original');
					}
					strHTML += tem;
				//---------------------------------------------------------------------------
					}

				}

				list.content.innerHTML =  strHTML;
			}

			var get_search_list = function(key, start, row_per_page) {
				if(search_check_start_page) {
					var start = get_url_params('start');
					search_check_start_page = false;
				}

				switch(cate) {
					case'4665':
						config.search_per_page = 20;
						if(!key)
							url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
						else
							url = "/search/select/?q=siteid:" + config.siteid + "AND cateid:" + cate + " AND " + encodeURI(key) + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
						break;
					case'4630':
					case'4648':
					case'4649':
					case'4650':
					case'4631':
					case'4632':
					case'4633':
					case'4634':
					case'4635':
						if(!key)
							url = "/search/select/?q=siteid:" + config.siteid + " AND cateid:" + cate + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
						else
							url = "/search/select/?q=siteid:" + config.siteid + "AND cateid:" + cate + " AND " + encodeURI(key) + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
						break;
					default:
						if(type == 'cate')
							url = "/search/select/?q=siteid:" + config.siteid + " AND " + encodeURI(get_url_params('key')) + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
						else
							url = "/search/select/?q=siteid:" + config.siteid + " AND " + encodeURI(key) + "&start=" + start + "&rows=" + row_per_page + "&r=&wt=xml";
				}

				var handleSuccess = function(o) {
					if (o.responseXML !== undefined) {
						get_search_data(o.responseXML, key, start, row_per_page) ;
					}
				};

				var handleFailure = function(o) {
					if (o.responseText !== undefined) {}
				};

				var callback = {
					success: handleSuccess,
					failure: handleFailure
				};

				var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
			};

			list.handlePagination = function (state) {
				var startIndex = state.recordOffset;
				get_search_list(key, startIndex, state.rowsPerPage);
				list.paginator.setState(state);
			};

			list.paginator = new YAHOO.widget.Paginator({
					rowsPerPage: config.search_per_page,
					totalRecords: numFound,
					containers: ['paging'],
					template : '{PreviousPageLink}{PageLinks}{NextPageLink}', 
					previousPageLinkLabel : "Trang trước", 
					nextPageLinkLabel : "Trang sau",
					pageLinks : 10
			});

			list.paginator.subscribe('pageChange', function() {
				window.location.href = '#';
			});
			list.paginator.subscribe('changeRequest', list.handlePagination);
			list.paginator.render();
			list.handlePagination(list.paginator.getState());
		});
	};

	var handleFailure = function(o) {
		if (o.responseText !== undefined) {}
	};

	var callback = {
		success: handleSuccess,
		failure: handleFailure
	};
	var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}

function process_key(key) {
	if ((key.indexOf('AND') >= 0) || (key.indexOf('OR') >= 0)) {
		// có AND OR
		key = get_and_or(check_quote(key));
	}
	else {
		// ko có AND OR // add double quote
		if (key.indexOf('"') == -1){// khong co quote
			key = '"' + key + '"';
		}
		else{ // có quote
			key = check_quote(key);
		}
	}
	return key;
}

function check_quote(key) {
	var arr = key.split('"');
	if((arr.length == 2) || (arr.length > 2 && arr.length % 2 == 0)) {
		// có 1 quote
		key = key + '"';
	}
	return key;
}

function get_and_or(key){
	var arr = key.split(' ');
	var check = true;
	for (var i = 0; i < arr.length; i++) {
		if(arr[0] == "AND" || arr[0] == "OR") {
			key = arr.slice(1, arr.length).join(' ');
		}
		else if(arr[arr.length - 1] == "AND" || arr[arr.length - 1] == "OR"){
			key = arr.slice(0, arr.length - 1).join(' ');
		}
		else {
			check = false;
		}
	}

	if (check) {
		return get_and_or(key);
	}
	else {
		return key;
	}
}

function hoidap_seach() {
	redirect('?key=' + $('keyword').value);
}
