/* $Id$ */

function SolrRequest() {
	//set the query for this request
	this.solrQuery = document.getElementById("searchBox").query.value;
}

SolrRequest.SERVER = ctx+"/search/search.htm?searchDomain=solr.roller&hl=on&fl=id,entryTitle,entryTeaser,category,categoryDescription,pubtime&wt=json&json.wrf=solrResponse&rows=20&q=";


SolrRequest.prototype.makeRequest = function(page) {
/*
 * Dynamically creates the script tag which then
 * sends the request to the Solr server.
 */

	
	this.jsonReq = new SolrScript(SolrRequest.SERVER + this.solrQuery +"&sort=&start=" + page);

	this.jsonReq.makeTag();
	this.jsonReq.addTag();
}

function requestHandler(page) {
/*
 * Called on search form submit and on results page request;
 * starting page argument is optional and defaults to 0.
 */
	var pageNum = page || 0;
	var solrReq = new SolrRequest();
	solrReq.makeRequest(pageNum);
	return false; //needed to keep the form from performing action
}

function solrResponse(obj) {
/*
 * Catches the response from the Solr server. Displays
 * results and adds page links to paginated results. This
 * function assumes 30 results per page.
 */
	var results = "";
	var pageLinks = "";
	var j; 
	// figure out how many results are in the current page
	if (obj.response.numFound - obj.response.start < 20) {
		j = obj.response.numFound - obj.response.start;
	} else {
		j = 20;
	}

	
	
	//resutl htere
	if (obj.response.numFound>0)
	{
	
		 //results+="<div class=\"blue_header\"><span>Blog Posts</span></div>";
		for (var i=0; i<j; i++) {
			var blogLink='blog';
			if(obj.response.docs[i].handle=='ccsmusicblog')
			{
			  blogLink='features'
			}

			results+="<div class=\"blog float_left\">";
			results+="<div class=\"blog_title_container float_left full_length\"><a  class=\"float_left\" href=\""+ ctx+"/blog/entry/"+obj.response.docs[i].id+"\">" +obj.response.docs[i].entryTitle+"</a>";
			results+="<span class=\"float_right\">"+obj.response.docs[i].pubtime+"</span></div>";
			results+="<div class=\"blog_category float_left full_length\"><a href=\""+ctx+"/"+blogLink+"/"+obj.response.docs[i].category+"\">"+obj.response.docs[i].categoryDescription+"</a></div>";
			results+="<div class=\"blog_content float_left full_length\">"+obj.response.docs[i].entryTeaser+"</div>";
			results+="<a href=\""+ ctx+"/blog/entry/"+obj.response.docs[i].id+"\")\" class=\"read_more\"><img src=\"http://images-int.uturf.com/images/buttons/readmore_button.jpg\" /></a>";

		
			results+="<div class=\"entry_post_info float_left full_length\">Posted in <a href=\""+ctx+"/"+blogLink+"/"+obj.response.docs[i].category+"\">"+obj.response.docs[i].categoryDescription+"</a></div>";
			
			 
			results+="<div class=\"permalink blue_font float_left full_length\"><a href=\""+ ctx+"/blog/entry/"+obj.response.docs[i].id+"\">Comments</a> &nbsp;|&nbsp; <a href=\""+ ctx+"/blog/entry/"+obj.response.docs[i].id+"\">Permalink</a></div>"; 
					
		
			results+="</div>";
			
		
		}
		//results+="</ul>";
		
	}else{
	  results+="<div class=\"blog float_left\">Sorry, no result!</div>";
	}
		
	
	
	    var pageLink="/blog/page/";
	
	 
	   
	var pages = Math.ceil(obj.response.numFound/20);
	if(pages>1)
	{
	   if(obj.response.start!=0)
	     {
		    var pagePrevious= eval((obj.response.start)/20)
		    pageLinks +=  "<a id=\"previous_btn\" class=\"float_left\" href='"+pageLink+pagePrevious+"/'><img src=\"http://images-int.uturf.com/images/buttons/previous_button.jpg\"/></a>";
		 }
		if(obj.response.start<180)
		 {
			 var initialLimit=0;
			 var upperLimit=60;
			 	
		  }
		  else{
		    var initialLimit=((obj.response.start/20)-18);
			var upperLimit=((obj.response.start/20)+20);
		}
		if(pages<20 || upperLimit>pages)
		{
		  var upperLimit=pages;
		}
		for (var i=initialLimit; i<upperLimit; i++) {
	    if(i!=(obj.response.start/20))
		{
		pageLinks += "<a class=\"hide_paging\" href='"+pageLink+eval(i+1)+"/'>" + eval(i+1) + "</a> ";
		}
		else{
		  pageLinks += "<a class=\"hide_paging\">"+eval(i+1)+"</a> ";
		}
		 
		
		
		
		
	 }
	 
	 if (obj.response.numFound - obj.response.start >20)
		{
		 	var pageNext= eval((obj.response.start+40)/20)
		    pageLinks +=  "<a id=\"next_btn\" class=\"float_right\" href='"+pageLink+pageNext+"/'><img src=\"http://images-int.uturf.com/images/buttons/next_button.jpg\"/></a>";
		}
	}
	// write to document
	document.getElementById('blog_module').innerHTML = results;
	document.getElementById('pages').innerHTML = pageLinks;

}

function SolrScript(url) {
/*
 * This class manages the dynamic script tag. Script
 * tag is added with id="solrScript".
 */
    this.url = url;
    this.headTag = document.getElementsByTagName("head").item(0);
	// clean up previous dynamic script tag
	if (document.getElementById("solrScript")) {
		this.headTag.removeChild(document.getElementById("solrScript"));
	}
}

SolrScript.prototype.makeTag = function () {
    this.scriptTag = document.createElement("script");
    this.scriptTag.setAttribute("type", "text/javascript");
    this.scriptTag.setAttribute("src", this.url + '&time=' + (new Date()).getTime());
    this.scriptTag.setAttribute("id", "solrScript");
}

SolrScript.prototype.addTag = function () {
    this.headTag.appendChild(this.scriptTag);
}