////////////////////////
//File  : blog_ajax_json_search.js
//site  : http://java.cocolog-nifty.com/
//author: naoyuki
//year  : 2006
//この作品は、クリエイティブ・コモンズの帰属-同一条件許諾 2.1 日本ライセンスの下でライセンスされています。この使用許諾条件を見るには、http://creativecommons.org/licenses/by-sa/2.1/jp/をチェックするか、クリエイティブ･コモンズに郵便にてお問い合わせください。住所は：559 Nathan Abbott Way, Stanford, California 94305, USA です。
////////////////////////


var is_loaded2 = false;
var backnumber_url_list2;
var entries2;
var search_keyword2;
var result_content2;
var timerId2;

load_center_id();
function load_center_id() {
    var center = document.getElementById( 'center' );
    if ( center ) {
        ligting_search_keyword2( center );
    } else {
        window.setTimeout( 'load_center_id()', 5000 );
    }
}

function ligting_search_keyword2( center ) {
    var args = getHashArgs();
    var searched_keyword2 = args.search_word;
    if ( searched_keyword2 ) {
        searched_keyword2 = searched_keyword2.replace( /([\/\\\.\*\+\?\|\(\)\[\]\{\}\$\^])/g, "\\$1" );
        searched_keyword2 = searched_keyword2.replace( /( +|　+)/, ' ' );
        searched_keyword2 = searched_keyword2.replace( /( |　)$/, '' );
        var keywords = searched_keyword2.split(/ |　/);
        var h3 = center.getElementsByTagName( 'h3' );
        h3[0].innerHTML = highlight( h3[0].innerHTML, keywords );
        var div = center.getElementsByTagName( 'div' );
        for ( var i = 0; i < div.length; i++ ) {
            if ( div[i].className == 'entry-body-text' || div[i].className == 'comment-content' ) {	//	patched by furyu: add 'comment-content'
                div[i].innerHTML = highlight( div[i].innerHTML, keywords );
            }
        }
    }
}

function getHashArgs () {
    var args = new Object();
    var query = location.href.replace(/.*?#/,"");
   query = decodeURIComponent( query );
    var pairs = query.split("&");
    for ( var i = 0; i < pairs.length; i++ ) {
        var pos = pairs[i].indexOf('=');
        if ( pos == -1 ) continue;
        var argname = pairs[i].substring( 0, pos );
        var value = pairs[i].substring( pos + 1 );
        args[argname] = value;
    }
    return args;
}

function blogAjaxJsonSearch2( archive_file_path, text ) {
    search_keyword2 = text;

	if (search_keyword2) { search_keyword2 += ' '; }
	var g22 = document.getElementById('g22').checked;
	var g23 = document.getElementById('g23').checked;
	var g24 = document.getElementById('g24').checked;
	var g25 = document.getElementById('g25').checked;
	var g26 = document.getElementById('g26').checked;
	var g27 = document.getElementById('g27').checked;
	var g28 = document.getElementById('g28').checked;
	var g29 = document.getElementById('g29').checked;
	var g30 = document.getElementById('g30').checked;
	var g31 = document.getElementById('g31').checked;
	var g32 = document.getElementById('g32').checked;
	var g33 = document.getElementById('g33').checked;
	var g34 = document.getElementById('g34').checked;
	var g35 = document.getElementById('g35').checked;
	var g36 = document.getElementById('g36').checked;
	var g37 = document.getElementById('g37').checked;
	var g38 = document.getElementById('g38').checked;
	var g39 = document.getElementById('g39').checked;
	var g40 = document.getElementById('g40').checked;
	var g41 = document.getElementById('g41').checked;
	var g42 = document.getElementById('g42').checked;
	var g43 = document.getElementById('g43').checked;
	
	<!--com0 = document.getElementsByName("com")[0].checked;-->
	
	article = document.getElementsByName("article")[0].selectedIndex;
	block = document.getElementsByName("block")[0].selectedIndex;
	layout = document.getElementsByName("layout")[0].selectedIndex;
	rent = document.getElementsByName("rent")[0].selectedIndex;
	progress = document.getElementsByName("progress")[0].selectedIndex;

	if (g22) {search_keyword2 += '駐車場2台以上 ';}
	if (g23) {search_keyword2 += 'ペット可 ';}
	if (g24) {search_keyword2 += '南向き ';}
	if (g25) {search_keyword2 += '角部屋 ';}
	if (g26) {search_keyword2 += '即入居可 ';}
	if (g27) {search_keyword2 += 'オール電化 ';}
	if (g28) {search_keyword2 += 'オートロック ';}
	if (g29) {search_keyword2 += 'ドアホン ';}
	if (g30) {search_keyword2 += 'ロフト付き ';}
	if (g31) {search_keyword2 += '対面キッチン ';}
	if (g32) {search_keyword2 += 'バス・トイレ別 ';}
	if (g33) {search_keyword2 += 'ウォシュレット ';}
	if (g34) {search_keyword2 += '給湯 ';}
	if (g35) {search_keyword2 += '追い炊き機能付 ';}
	if (g36) {search_keyword2 += 'シャワー ';}
	if (g37) {search_keyword2 += 'シャンプードレッサー ';}
	if (g38) {search_keyword2 += '浴室乾燥機 ';}
	if (g39) {search_keyword2 += '室内洗濯機置場 ';}
	if (g40) {search_keyword2 += 'ウォークインクローゼット ';}
	if (g41) {search_keyword2 += '床下収納 ';}
	if (g42) {search_keyword2 += '光インターネット対応 ';}
	if (g43) {search_keyword2 += 'CATV対応 ';}
	
	if (article == 1) {search_keyword2 += 'マンション ';}
	if (article == 2) {search_keyword2 += 'アパート ';}
	if (article == 3) {search_keyword2 += '貸家 ';}
	if (article == 4) {search_keyword2 += '貸地 ';}
	if (article == 5) {search_keyword2 += '貸店舗 ';}
	if (article == 6) {search_keyword2 += '貸工場 ';}
	
	if (block == 1) {search_keyword2 += '西都市 ';}
	if (block == 2) {search_keyword2 += '高鍋町 ';}
	if (block == 3) {search_keyword2 += '新富町 ';}
	if (block == 4) {search_keyword2 += '宮崎市 ';}
	if (block == 5) {search_keyword2 += 'その他 ';}

	if (layout == 1) {search_keyword2 += '1R・1K・1DK・1LDK ';}
	if (layout == 2) {search_keyword2 += '2K・2DK・2LDK ';}
	if (layout == 3) {search_keyword2 += '3K・3DK・3LDK ';}
	if (layout == 4) {search_keyword2 += '4K・4DK以上 ';}

	if (rent == 1) {search_keyword2 += '3万円未満 ';}
	if (rent == 2) {search_keyword2 += '3万円以上～4万円未満 ';}
	if (rent == 3) {search_keyword2 += '4万円以上～5万円未満 ';}
	if (rent == 4) {search_keyword2 += '5万円以上～6万円未満 ';}
	if (rent == 5) {search_keyword2 += '6万円以上 ';}

	if (progress == 1) {search_keyword2 += '新築 ';}
	if (progress == 2) {search_keyword2 += '5年以内 ';}	
	if (progress == 3) {search_keyword2 += '6年～10年 ';}	
	if (progress == 4) {search_keyword2 += '11年～20年 ';}	
	if (progress == 5) {search_keyword2 += '21年以上 ';}	
	
    var div_tag = document.getElementsByTagName('div');
    for ( var i = 0; i < div_tag.length; i ++ ) {
        if ( div_tag[i].className == 'result' ) { // Pached by Dificlo
            result_content2 = div_tag[i];
        }
    }
    result_content2.innerHTML = 'now searching.';
    added_period( result_content2 );
    if ( is_loaded2 ) {
        search();
    } else {
        new Ajax.Request( archive_file_path, {method: 'get', onComplete: function(request){ parse_archive_data( request ); } } );    
    }
}

function added_period( content ) {
    if ( !is_loaded2 ) {
        result_content2.innerHTML += '.';
        timerId2 = setTimeout("added_period()", 50 );
    }
}

function parse_archive_data( request ) {
        var data_string = request.responseText;
        data_string = data_string.replace( new RegExp( '<.*?>', "i"), '' )
        entries2 = eval( data_string );
        search();
}

function show_all_backnumbers() {
    var text = '<ol type=1 start=1 style="text-align:left;">';
    for ( var i = 0; i < entries2.length-1; i++ ) {	//	patched by furyu: entries2.length => entries2.length-1
        text += '<li><a href="' + entries2[i].link + '">' +entries2[i].title + '</a</li>';
    }
    text += '</ol>';
    document.getElementById('center').innerHTML = text;
}

function search() {
    var result_data = new Array();
    search_keyword2=search_keyword2.replace( /([\/\\\.\*\+\?\|\(\)\[\]\{\}\$\^])/g, "\\$1" );
    search_keyword2 = search_keyword2.replace( /( +|　+)/, ' ' );
    search_keyword2 = search_keyword2.replace( /( |　)$/, '' );
    var keywords = search_keyword2.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<entries2.length-1; i++ ) {	//	patched by furyu: entries2.length => entries2.length-1
        var is_match = true;
        for ( var j= 0; j<key.length; j++ ) {
            var res_body = key[j].exec( entries2[i].body );
            var res_title = key[j].exec( entries2[i].title );
//hack
            var res_tag = key[j].exec( entries2[i].tag );
            if ( !res_body && !res_title && !res_tag ) {
//hack
//if ( !res_body && !res_title ) {
                is_match = false;
            }
        }
        if ( is_match ) {
            result_data[ result_data.length ] = entries2[i];
        }
    }
    var result_html = '';
    if ( result_data.length == 0 ) {
        result_html = build_no_result_html( result_data, keywords ); // Pached by Digiclo
    } else {
        result_html = build_search_result_html( result_data, keywords );
    }
    var div = window.document.getElementsByTagName('div');
//	var content;
//	var original_content_html = '';
//	for ( var i = 0; i < div.length; i ++ ) {
//		if ( div[i].className == 'content' ) {
//			content = div[i];
//			original_content_html = content.innerHTML;
//		}
//	}
    is_loaded2 = true;
    clearTimeout(timerId2);
    result_content2.innerHTML = result_html;
}

function build_search_result_html( result_data, keywords ) {
    var html = '<p><img src="http://www.oohirasangyo.co.jp/img/common/mdsKenKekka.gif" alt="検索結果一覧" /></p><div class="entry"><h3>' + result_data.length + '件の物件が見つかりました。</h3><div class="entry-body-top"><div class="body"><h3 class="gedan"><img src="/img/chintai/mdsShibori.gif" alt="カテゴリで絞り込む" width="168" height="20" /></h3><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/mansion/">マンション</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/apart/">アパート</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/house/">貸家</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/land/">貸地</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/store/">貸店舗</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/cat39/">貸倉庫</a></p></div><hr /></div></div><div class="entry-body"><div class="entry-body-text"><ol type=1 start=1 style="text-align:left;">';
    for ( var i= 0; i<result_data.length; i++ ) {
    	html += '<li><div class="titleCt610"><span class="icon"><img height="30" width="30" src="http://www.oohirasangyo.co.jp/img/chintai/icon' + result_data[i].adress + '.gif"/></span><a href="' + result_data[i].link + '#search_word=' + search_keyword2 + '" target="_blank">' + highlight( result_data[i].title, keywords ) + '</a></div><div class="thumb">' + result_data[i].image + '</div><span class="price">' + result_data[i].kakaku + '円</span><br /><br />' + highlight( trunc( result_data[i].body, keywords[0] ), keywords ) + '<br />' + highlighttag( trunc( result_data[i].tag, keywords[0] ), keywords ) + '<p align="right"><a href="' + result_data[i].link + '#search_word=' + search_keyword2 + '" target="_blank"><img height="25" width="50" alt="詳細" src="http://www.oohirasangyo.co.jp/img/common/btnSyousai_off.gif"/></a></p><hr /></li>';
    }
    html += '</ol></div></div><div class="entry-body-bottom"></div><p class="posted" style="text-align:right;"><span class="post-footers"></span><span class="separator"></span><span class="bo_so_copyright"><a href="#" title="元のページに戻る" onclick="location.reload(true); return false;" onkeypress="location.reload(true); return false;">[元のページに戻る]</a></span></p></div><div class="entry-bottom"></div><div class="date-footer"></div>';
    return html;
}
// Add by Digiclo
function build_no_result_html( result_data, keywords ) {
    var html = '<div class="entry-top"></div><p><img src="http://www.oohirasangyo.co.jp/img/common/mdsKenKekka.gif" alt="検索結果一覧" /></p><p>&nbsp;</p><div class="entry"><div class="entry-body-top"><div class="body"><h3 class="gedan"><img src="/img/chintai/mdsShibori.gif" alt="カテゴリで絞り込む" width="168" height="20" /></h3><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/mansion/">マンション</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/apart/">アパート</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/house/">貸家</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/land/">貸地</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/store/">貸店舗</a></p></div><div class="gedanMenuBox"><p><a href="http://www.oohirasangyo.co.jp/rent/cat39/">貸倉庫</a></p></div><hr /></div></div><div class="entry-body"><div class="entry-body-text"><ol type=1 start=1 style="text-align:left;"><p><em>一致するものはありませんでした。</em></p>';
html += '</ol></div></div><div class="entry-body-bottom"></div><p class="posted" style="text-align:right;"><span class="post-footers"></span><span class="separator"></span><span class="bo_so_copyright"><a href="#" title="元のページに戻る" onclick="location.reload(true); return false;" onkeypress="location.reload(true); return false;">[元のページに戻る]</a></span></p></div><div class="entry-bottom"></div><div class="date-footer"></div>';
    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] + '|'; 
        }
    }
    return text.replace( new RegExp( '(' + keyword + ')', "ig"), '<span style="background-color: #FFCC33;">' + "$1" + '</span>' );
}

function highlighttag( text, keywords ) {
    var keyword = '';
    for ( var i= 0; i<keywords.length; i++ ) {
        if ( i == keywords.length - 1 ) {
            keyword += keywords[i];
        } else {
            keyword += keywords[i] + '|';
        }
    }
    return text.replace( new RegExp( '(' + keyword + ')', "ig"), '<span style="background-color: plum;">' + "$1" + '</span>' );
}

