/* $Id$ */

function SolrRequest() {
	//set the query for this request
	this.solrQuery = document.getElementById("searchBox").query.value;
    this.searchType = document.getElementById("searchBox").searchType.value;
	
if(this.searchType=='profile')
{
	
SolrRequest.SERVER = ctx+"/search/search.htm?searchDomain=solr.profile.server&hl=on&wt=json&json.wrf=searchProfile&rows=10&hl=on&q=";
}
else if (this.searchType=='venture'){
	
SolrRequest.SERVER = ctx+"/search/search.htm?searchDomain=solr.venture.server&hl=on&wt=json&json.wrf=searchVenture&rows=10&hl=on&q=";
}
else if (this.searchType=='event'){
	
SolrRequest.SERVER = ctx+"/search/search.htm?searchDomain=solr.event.server&hl=on&wt=json&json.wrf=searchEvent&rows=10&hl=on&q=";
}
else if (this.searchType=='blog'){
	
SolrRequest.SERVER = ctx+"/search/search.htm?searchDomain=solr.blog.server&hl=on&wt=json&json.wrf=searchBlog&rows=10&hl=on&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 searchProfile(obj) {

	var results = "";
	var pageLinks = "";
	var j;
	// figure out how many results are in the current page
	if (obj.response.numFound - obj.response.start < 10) {
		j = obj.response.numFound - obj.response.start;
	} else {
		j = 10;
	}

	
	//resutl htere
	if (obj.response.numFound>0)
	{
		for (var i=0; i<j; i++) {
		    results+="<li class=\"friend_item\" >";
			
			
			results+="<!-- image -->";
			results+="<div class=\"friends_image\">";
				if(obj.response.docs[i].imageUrl)
				{
					var profileImage=getUserThumbnail("http://images-int.our1change.com/user_images"+obj.response.docs[i].imageUrl);
				}
				else
				{
					var profileImage=ctx+"/images/default_user.gif";
				}			
				results+="<a href=\""+ctx+"/profile/"+obj.response.docs[i].username+"\">";
				results+="<img src=\""+profileImage+"\" alt=\""+obj.response.docs[i].username+"\" title=\""+obj.response.docs[i].username+"\" />";
				results+="</a>";
			results+="</div>";
			
			results+="<!-- detail -->";
			results+="<div class=\"friends_name\">";
				results+="<div class=\"search_item_detail_box\">";
					results+="<a href=\""+ctx+"/profile/"+obj.response.docs[i].username+"\" class=\"pers-info\">"+obj.response.docs[i].username+"</a>";
				results+="</div>"; 
				results+="<div class=\"search_item_detail_box\">";
					results+=obj.response.docs[i].firstName+" "+obj.response.docs[i].lastName;
				results+="</div>"; 
				results+="<div class=\"search_item_detail_box\">";
					results+="City: "+obj.response.docs[i].city;
				results+="</div>";
				if(obj.response.docs[i].cohort){
				results+="<div class=\"search_item_detail_box\">";
					results+="Cohort: "+obj.response.docs[i].cohort;
				results+="</div>"; 
				}
				if(obj.response.docs[i].region){
				results+="<div class=\"search_item_detail_box\">";
					results+="Region: "+obj.response.docs[i].region;
				results+="</div>";
				}
			results+="</div>";
			results+="<br class=\"clearit\" />";
			
			/* Displays after every 5 entry */
			if(i>0 && i%5==0){
			  //results+="this is fifth photo";
			 }
			 
		    results+="</li>";	
		}
		
		}
		else
		{
			results+="No Result";
		}
		
		//
	// create page links
	var pages = Math.ceil(obj.response.numFound/10);
	if(pages>1)
	{
	   if(obj.response.start!=0)
	     {
		   pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start-10) + ")'>Previous</a> ";
		 }
		if(obj.response.start<90)
		 {
			 var initialLimit=0;
			 var upperLimit=10;
			 	
		  }
		  else{
		    var initialLimit=((obj.response.start/10)-9);
			var upperLimit=((obj.response.start/10)+10);
		}
		if(pages<10 || upperLimit>pages)
		{
		  var upperLimit=pages;
		}
		for (var i=initialLimit; i<upperLimit; i++) {
	    if(i!=(obj.response.start/10))
		{
		pageLinks += "<a href='#' onclick='requestHandler(" + eval(i*10) + ")'>" + eval(i+1) + "</a> ";
		}
		else{
		  pageLinks += eval(i+1);
		}
		 
		
		
		
		
	 }
	 
	 if (obj.response.numFound - obj.response.start >10)
		{
		  pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start+10) + ")'>Next</a> ";
		}
	}
	// write to document
	document.getElementById('search_results').innerHTML = results;
	document.getElementById('pages').innerHTML = pageLinks;
}


function searchVenture(obj) {

	var results = "";
	var pageLinks = "";
	var j;
	// figure out how many results are in the current page
	if (obj.response.numFound - obj.response.start < 10) {
		j = obj.response.numFound - obj.response.start;
	} else {
		j = 10;
	}

	
	//resutl htere
	if (obj.response.numFound>0)
	{
		for (var i=0; i<j; i++) {
		    results+="<li class=\"friend_item\" >";
			
			
			results+="<!-- image -->";
			results+="<div class=\"friends_image\">";
			if(obj.response.docs[i].imageUrl)
			{
				var profileImage=getUserThumbnail("http://images-int.our1change.com/user_images"+obj.response.docs[i].imageUrl);				
				/*var profileImage=getUserThumbnail("http://images-int.uturf.com/user_images/"+obj.response.docs[i].imageUrl);*/
			}
			else
			{
				var profileImage=ctx+"/images/default_user.gif";
			}			
				results+="<a href=\""+ctx+"/profile/"+obj.response.docs[i].username+"\">";
				results+="<img src=\""+profileImage+"\" alt=\""+obj.response.docs[i].username+"\" title=\""+obj.response.docs[i].username+"\" />";
				results+="</a>";
			results+="</div>";
			
			results+="<!-- detail -->";
			results+="<div class=\"friends_name\">";
			
				results+="<div class=\"search_item_detail_box\">";
					results+="<a href=\""+ctx+"/venture/"+obj.response.docs[i].id+"\" class=\"pers-info\">"+obj.response.docs[i].name+"</a>";
				results+="</div>"; 
				if(obj.response.docs[i].url){
				results+="<div class=\"search_item_detail_box\">";
					results+="URL: <a href=\""+obj.response.docs[i].url+"\" target=\"_blank\">"+obj.response.docs[i].url+"</a>";
				results+="</div>";
				}
				if(obj.response.docs[i].cohort){
				results+="<div class=\"search_item_detail_box\">";
					results+="Cohort: "+obj.response.docs[i].cohort;
				results+="</div>"; 
				}
				if(obj.response.docs[i].region){
				results+="<div class=\"search_item_detail_box\">";
					results+="Region: "+obj.response.docs[i].region;
				results+="</div>";
				}			
			results+="</div>";
			results+="<br class=\"clearit\" />";
		}
		
		}
		else
		{
			results+="No Result";
		}
		
		//
	// create page links
	var pages = Math.ceil(obj.response.numFound/10);
	if(pages>1)
	{
	   if(obj.response.start!=0)
	     {
		   pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start-10) + ")'>Previous</a> ";
		 }
		if(obj.response.start<90)
		 {
			 var initialLimit=0;
			 var upperLimit=10;
			 	
		  }
		  else{
		    var initialLimit=((obj.response.start/10)-9);
			var upperLimit=((obj.response.start/10)+10);
		}
		if(pages<10 || upperLimit>pages)
		{
		  var upperLimit=pages;
		}
		for (var i=initialLimit; i<upperLimit; i++) {
	    if(i!=(obj.response.start/10))
		{
		pageLinks += "<a href='#' onclick='requestHandler(" + eval(i*10) + ")'>" + eval(i+1) + "</a> ";
		}
		else{
		  pageLinks += eval(i+1);
		}
		 
		
		
		
		
	 }
	 
	 if (obj.response.numFound - obj.response.start >10)
		{
		  pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start+10) + ")'>Next</a> ";
		}
	}
	// write to document
	document.getElementById('search_results').innerHTML = results;
	document.getElementById('pages').innerHTML = pageLinks;
}

function searchEvent(obj) {

	var results = "";
	var pageLinks = "";
	var j;
	// figure out how many results are in the current page
	if (obj.response.numFound - obj.response.start < 10) {
		j = obj.response.numFound - obj.response.start;
	} else {
		j = 10;
	}

	
	//resutl htere
	if (obj.response.numFound>0)
	{
		for (var i=0; i<j; i++) {
		    results+="<li class=\"friend_item\" >";
			
			
			results+="<!-- image -->";
			
			results+="<!-- detail -->";
			results+="<div class=\"friends_name\">";
			
				results+="<div class=\"search_item_detail_box\">";
					results+="<a href=\""+ctx+"/cohort/event/view/"+obj.response.docs[i].id+"\" class=\"pers-info\">"+obj.response.docs[i].title+"</a>";
				results+="</div>";
				if(obj.response.docs[i].eventLocation){
				results+="<div class=\"search_item_detail_box\">";
					results+="Location: "+obj.response.docs[i].eventLocation;
				results+="</div>";
				} 
				if(obj.response.docs[i].eventDate){
				results+="<div class=\"search_item_detail_box\">";
					results+="Time: "+obj.response.docs[i].eventDate;
				results+="</div>";
				}
				if(obj.response.docs[i].cohort){
				results+="<div class=\"search_item_detail_box\">";
					results+="Cohort: "+obj.response.docs[i].cohort;
				results+="</div>"; 
				}
				if(obj.response.docs[i].region){
				results+="<div class=\"search_item_detail_box\">";
					results+="Region: "+obj.response.docs[i].region;
				results+="</div>";
				}			
			results+="</div>";
			results+="<br class=\"clearit\" />";
		}
		
		}
		else
		{
			results+="No Result";
		}
		
		//
	// create page links
	var pages = Math.ceil(obj.response.numFound/10);
	if(pages>1)
	{
	   if(obj.response.start!=0)
	     {
		   pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start-10) + ")'>Previous</a> ";
		 }
		if(obj.response.start<90)
		 {
			 var initialLimit=0;
			 var upperLimit=10;
			 	
		  }
		  else{
		    var initialLimit=((obj.response.start/10)-9);
			var upperLimit=((obj.response.start/10)+10);
		}
		if(pages<10 || upperLimit>pages)
		{
		  var upperLimit=pages;
		}
		for (var i=initialLimit; i<upperLimit; i++) {
	    if(i!=(obj.response.start/10))
		{
		pageLinks += "<a href='#' onclick='requestHandler(" + eval(i*10) + ")'>" + eval(i+1) + "</a> ";
		}
		else{
		  pageLinks += eval(i+1);
		}
		 
		
		
		
		
	 }
	 
	 if (obj.response.numFound - obj.response.start >10)
		{
		  pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start+10) + ")'>Next</a> ";
		}
	}
	// write to document
	document.getElementById('search_results').innerHTML = results;
	document.getElementById('pages').innerHTML = pageLinks;
}

function searchBlog(obj) {

	var results = "";
	var pageLinks = "";
	var j;
	// figure out how many results are in the current page
	if (obj.response.numFound - obj.response.start < 10) {
		j = obj.response.numFound - obj.response.start;
	} else {
		j = 10;
	}

	
	//resutl htere
	if (obj.response.numFound>0)
	{
		for (var i=0; i<j; i++) {
		    results+="<li class=\"friend_item\" >";
			
			
			results+="<!-- image -->";
			results+="<div class=\"friends_image\">";
			if(obj.response.docs[i].posterImageUrl)
			{
			        var profileImage=getUserThumbnail("http://images-int.our1change.com/user_images/"+obj.response.docs[i].posterImageUrl);
			}
			else
			{
				var profileImage=ctx+"/images/default_user.gif";
			}			
				results+="<a href=\""+ctx+"/profile/"+obj.response.docs[i].posterUserName+"\">";
				results+="<img src=\""+profileImage+"\" alt=\""+obj.response.docs[i].posterUserName+"\" title=\""+obj.response.docs[i].posterUserName+"\" />";
				results+="</a>";
			results+="</div>";
			
			results+="<!-- detail -->";
			results+="<div class=\"friends_name\">";
			
				results+="<div class=\"search_item_detail_box\">";
					results+="Title: <a href=\""+ctx+"/blog/view/"+obj.response.docs[i].id+"\" class=\"pers-info\">"+obj.response.docs[i].title+"</a>";
				results+="</div>"; 
				if(obj.response.docs[i].posterUserName){
				results+="<div class=\"search_item_detail_box\">";
					results+="Posted by: <a href=\""+ctx+"/profile/"+obj.response.docs[i].posterUserName+"\">"+obj.response.docs[i].posterUserName+"</a>";
				/*results+="</div>";*/
				}
				if(obj.response.docs[i].timePosted){
				var dot=obj.response.docs[i].timePosted.lastIndexOf(".");
				var dateString=obj.response.docs[i].timePosted.substring(0,dot);
				/*results+="<div class=\"search_item_detail_box\">";*/
					results+=" on: "+dateString;
				results+="</div>";
				}
				if(obj.response.docs[i].teaser){
				results+="<div class=\"search_item_detail_box\">";
					results+="Summary: "+obj.response.docs[i].teaser.substring(0,500);
				results+="</div>"; 
				}			
			results+="</div>";
			results+="<br class=\"clearit\" />";
		}
		
		}
		else
		{
			results+="No Result";
		}
		
		//
	// create page links
	var pages = Math.ceil(obj.response.numFound/10);
	if(pages>1)
	{
	   if(obj.response.start!=0)
	     {
		   pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start-10) + ")'>Previous</a> ";
		 }
		if(obj.response.start<90)
		 {
			 var initialLimit=0;
			 var upperLimit=10;
			 	
		  }
		  else{
		    var initialLimit=((obj.response.start/10)-9);
			var upperLimit=((obj.response.start/10)+10);
		}
		if(pages<10 || upperLimit>pages)
		{
		  var upperLimit=pages;
		}
		for (var i=initialLimit; i<upperLimit; i++) {
	    if(i!=(obj.response.start/10))
		{
		pageLinks += "<a href='#' onclick='requestHandler(" + eval(i*10) + ")'>" + eval(i+1) + "</a> ";
		}
		else{
		  pageLinks += eval(i+1);
		}
		 
		
		
		
		
	 }
	 
	 if (obj.response.numFound - obj.response.start >10)
		{
		  pageLinks += "<a href='#' onclick='requestHandler(" + eval(obj.response.start+10) + ")'>Next</a> ";
		}
	}
	// write to document
	document.getElementById('search_results').innerHTML = results;
	document.getElementById('pages').innerHTML = pageLinks;
}

function getUserThumbnail(uri)
    {
        var thumbImage = uri.substring( 0, uri.lastIndexOf( "/" ) + 1 );
        thumbImage = thumbImage + "thumb_";
        thumbImage = thumbImage + uri.substring( uri.lastIndexOf( '/' ) + 1, uri.length );
        return thumbImage;
   }

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);
}