var jquery_loader = 'http://www.all-iwami.com/images/lightbox-ico-loading.gif';
var json_search_data = 'http://www.all-iwami.com/search_data.txt';
var json_search_data2 = 'http://www.all-iwami.com/spot/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 = '<b class="SightSpotHead">SightSpot Head</b>';

	if (result_data.length == 0)
	{
		result_html += '<h3 class="result">検索結果（0件）</h3><div id="SightSpot"><span id="ERROR">見つかりませんでした。キーワードを変えて検索してください。</span>';
		result_html += '</div><b class="SightSpotBottom">SightSpot Bottom</b>';
	}
	else
	{
		result_html += json_search_result_html(result_data, keywords);
		result_html += '</div><b class="SightSpotBottom">SightSpot Bottom</b>';
	}

	$('#search-content').css('height', 'auto')
		.css('background-image', 'none')
		.html(result_html);
}

function json_search_result_html(result_data, keywords)
{
	var html = '<h3 class="result">検索結果（' + result_data.length + '件ヒット ）</h3><div id="SightSpot"><ul>';

	for (var i= 0;i < result_data.length;i++)
	{
		html += '<li><a href="' + result_data[i].link + '#search_word=' + json_search_keyword + '" target="_blank">' + result_data[i].title + '</a><p>' + result_data[i].excerpt +'</p></li>';
    }
    html += '</ul>';

	return html;
}

function trunc( text, keyword ) {
    var key = new RegExp( keyword, "i" );
    var res = key.exec( text );

    if ( res ) {
    	var index  = res.index;
    	var length = res[0].length;
    	var start;
    	var end;

    	start = index - 20;
    	end = 55;
    	text = text.substring( start, index ) + text.substr( index, length ) + text.substr( index + length, end ) +'...';
    } else {
        text = text.substring( start, 50 );
    }
    return text;
}

function highlight( text, keywords ) {
    var keyword = '';
    for ( var i= 0; i<keywords.length; i++ ) {
        if ( i == keywords.length - 1 ) {
            keyword += keywords[i];
        } else {
            keyword += keywords[i] + '|'; 
        }
    }
// patched by furyu  --- from --- ( referred to 'cocolog_ajax_search.js' )
/* // original //
    return text.replace( new RegExp( '(' + keyword + ')', "ig"), '<span style="background-color: #FFCC33;">' + "$1" + '</span>' );
*/
    var	replaced_text = text.replace( new RegExp( '(' + keyword + ')', "ig"), '<span style="background-color: #FFCC33;">' + "$1" + '</span>' );
    while( replaced_text.match( new RegExp( '(<[^>]+)<span style="background-color: #FFCC33;">(' + keyword + ')</span>(.*?>)', "ig") ) ) {
        replaced_text = replaced_text.replace( new RegExp( '(<[^>]+)<span style="background-color: #FFCC33;">(' + keyword + ')</span>(.*?>)', "ig"), "$1$2$3" );
    }
    return replaced_text;
// patched by furyu  ---  to  ---

}

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').css('height', 'auto')
				.css('background-image', 'none')
				.html('Error loading XML document');
			},
			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 json_search2()
{
	json_search_keyword = $('input#search_box2').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_data2, type: 'GET', dataType: 'xml', timeout: 1500,
			error: function() {
			$('#search-content').css('height', 'auto')
				.html('Error loading XML document');
			},
			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('');
}