
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

	Site: WHO DID IT?
	File: jquery.ajax.js
	=====
	Last Update: 2011/09/02
	Create Date: 2011/09/01

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */

var jquery_loader = 'http://whodidit.jp/assets/images/ajax-loader.gif';
var json_search_data = 'http://whodidit.jp/search_data.txt';
var json_search_keyword = '';
var json_search_is_loaded = false;
var json_search_entries;
 
function json_search_archive() {
	var result_data = new Array();
	json_search_keyword = json_search_keyword.replace(/([\/\\\.\*\+\?\|\(\)\[\]\{\}\$\^])/g, "\\$1");
	json_search_keyword = json_search_keyword.replace(/( +|　+)/, ' ');
	json_search_keyword = json_search_keyword.replace(/( |　)$/, '');
	var keywords = json_search_keyword.split(/ |　/);
	var key = new Array();
	for (var i = 0;i < keywords.length;i++) {
		key[key.length] = new RegExp(keywords[i], "i");
	}
	for (var i = 0;i < json_search_entries.length - 1;i++) {
		var is_match = true;
		for (var j = 0;j < key.length;j++) {
			var res_body = key[j].exec( json_search_entries[i].body );
			var res_title = key[j].exec( json_search_entries[i].title );
			
			if (!res_body && !res_title) {
				is_match = false;
			}
		}
		if (is_match) {
			result_data[result_data.length] = json_search_entries[i];
		}
	}
	var result_html = '';
	if (result_data.length == 0) {
		result_html = '<p id="search_notice" style="text-align:left;">[ Search Result : 0 ]</p><p class="search_hide"><a class="imgbutton" href="javascript:void(0)" onclick="clear_block(\'#search-content\')">× CLOSE</a></p>';
	} else {
		result_html = json_search_result_html(result_data, keywords);
	}
	$('#search-content').html(result_html).slideDown(400); //.css({height:'auto', backgroundImage:'none'});
}
 
function json_search_result_html(result_data, keywords) {
	var html = '<p id="search_notice" style="text-align:left;">[ Search Result : ' + result_data.length + ' ]</p><div class="module-content"><ul>';
	for (var i= 0;i < result_data.length;i++) {
		html += '<li><a href="' + result_data[i].link + '#search_word=' + json_search_keyword + '">' + result_data[i].title + '</a></li>';
	}
	html += '</ul></div><p class="search_hide"><a class="imgbutton" href="javascript:void(0)" onclick="clear_block(\'#search-content\')">× CLOSE</a></p>';
	return html;
}
 
function json_search() {
	json_search_keyword = $('input#search_box').val();
	//$('#search-content').html('').css('height', '100px').css('background', 'transparent url(' + jquery_loader + ') no-repeat center center');
	if (json_search_is_loaded) {
		json_search_archive();
	} else {
		$.ajax({url: json_search_data, type: 'GET', dataType: 'xml', timeout: 1500,
			error: function() {
				$('#search-content').html('<p id="search_notice" style="text-align:left;">[ Error loading XML document ]</p><p class="search_hide"><a class="imgbutton" href="javascript:void(0)" onclick="clear_block(\'#search-content\')">× CLOSE</a></p>').slideDown(400);//.css('height', 'auto').css('background-image', 'none');
			},
			complete: function(xml) {
				var data_string = xml.responseText;
				data_string = data_string.replace(new RegExp('<.*?>', "i"), '');
				json_search_entries = eval(data_string);
				json_search_archive();
				json_search_is_loaded = true;
			}
		});
	}
}
 
function clear_block(blockid) {
	//$(blockid).html('');
	$(blockid).slideUp(500);
}

$(function() {
	$('#searchBtn').click(json_search);
});	


