Event.observe(window, 'load', page_loaded, false);
function page_loaded()
{
    Event.observe('submit', 'click', get_result, false);
    Event.observe('keyword', 'change', get_result, false);
    Element.hide('loading');

    // check location.search
    if(location.search){
	var result = location.search.match(/\?header_keyword=(.*)/); 
	$('keyword').value = decodeURIComponent(result[1].replace(/\+/, "%20"));
	get_result();	
    }
}

var Results = Class.create();
Results.prototype = {
    search_server: 'http://search.onezeek.com/search',
    ac: 'embeddedworks-ws',
    g: 'website',
    item_num_per_page: 20,
    pages: 0,
    results: null,
    initialize: function(records){
	this.results = records;
	if(this.results.length){
	    this.pages = (this.results.length-1) / this.item_num_per_page;
	    this.errmsg = "";
	}else{
	    this.errmsg = "Sorry, there is no result.";
	}
    },
    view_results: function(page){
	// no result
	if(this.errmsg){
	    $("search_result").innerHTML=this.errmsg;
	    return;
	}
	
	var html = '';
        // pager
 	html += this.get_pager(page);

	// results
 	html +='<ul class="search_result_items">\n';
	var trTemplate = new Template('\
  <li>#{index}. <a href="' + this.search_server + '#{link}&ac=' + this.ac + '&g=' + this.g + '">#{name}</a><br />\n\
    <div class="search_result_item">\n\
      <span class="search_result_context">#{context}</span><br />\n\
      <span class="search_result_content">#{content}</span><br />\n\
      <span class="search_result_info">#{path}/#{name}</span>\n\
    </div>\n\
  </li>\n');
	var keys = {};
	    
 	for(var i=0; i<this.item_num_per_page; i++){
 	    if(!this.results[this.item_num_per_page*page+i])
		break;
	    keys = this.results[this.item_num_per_page*page+i];
	    keys.index = this.item_num_per_page*page+i + 1;
  	    html += trTemplate.evaluate(keys);
 	}
	html += '  </ul>\n';
        // pager
 	html += this.get_pager(page);

        // result table
	$("search_result").innerHTML=html;
    },
    get_pager: function (page){
	var rtn = '<div class="pager">';
	for(var i=0; i<=this.pages; i++){
	    if(i==page){
		rtn+='<a class="page_selected">' +
		    (i+1) +
		    '</a>&nbsp;&nbsp;&nbsp;';
	    }else{
		rtn+='<a class="page" href="#search_top" onclick="results.view_results('+ i +');">' +
		    (i+1) + '</a>&nbsp;&nbsp;&nbsp;';
	    }
	}
	rtn+='</div><br />\n';
	return rtn;
    }
}

var results;

function jsonp(json){
    var records = json.records;
    var i;
    results = new Results(json.records);
    results.view_results(0);
    Element.hide('loading');
}

function get_result()
{
    $('search_result').innerHTML = '';
    Element.show('loading');
    
    var ac = 'embeddedworks-ws';
    var g = 'website';
    var keyword = $F('keyword');
    var context = $F('context');
    var num = 200;
    var offset = 0;
    var search_url = 'http://search.onezeek.com/search?ac=' + ac + '&g=' + g + '&k=' + keyword + '&n=' + num + '&c=' + context + '&x=json';
    var script = document.createElement('script');
    script.src = search_url;
    script.type = 'text/javascript';
    document.lastChild.appendChild(script);
    //document.lastChild.removeChild(script);
}

