<!--
/**************************************************************
*  Script Name: Custom Google Search for jollywatcher.com
*  Version: v1.0
*  Author: Vision Jinx - www.visionjinx.net - 2009
*  --- All Rights are Reserved ---
**************************************************************/


var regexp=/(.+)(\-.+)/;
var vj=vj||{};(function(){
vj.getID=function(x){return document.getElementById?document.getElementById(x):null};
vj.encode=function(x){return window.encodeURIComponent?encodeURIComponent(x):escape(x)};
vj.notags=function(x){return x.replace(/<\/?[^>]+>/gi,"")};
vj.stripHTML=function(str){var temp=vj.notags(str.replace(/\<.*?\>/gi,' '));var cleansumm=temp.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"");return cleansumm;};
vj.remE=function(x){vj.getID(x).parentNode.removeChild(vj.getID(x));};
vj.rc=function(p){while(p.firstChild){p.removeChild(p.firstChild);}};
vj.iHTML=function(x,y){if(vj.getID(x)){vj.rc(vj.getID(x));vj.getID(x).innerHTML=y;vj.getID(x).style.display='block';}else{return false;}};
vj.google_apikey='ABQIAAAAQ5fnmo-PmahwzIPVJF1rehQslH_KC74lcCC2volOu4O5DGlLbhTmrgzoBrpjBDKDYfajklUxx__j2A';
vj.searchPrefs={web:{context:'searchResults',callback:'vj.webCallback',rsz:'large',cx:'005225586522549267618:bc6jsjymafe'}};
// Google Search Core Function
vj.gapi=function(query,opts){
 if (typeof vj.google_apikey=="undefined" || vj.google_apikey==''){alert('Google API Key required');return false;}
 var apikey='&key='+vj.notags(vj.google_apikey);
 var q=(query&&query!='')?query.replace(/<V?[^>]+>/gi,""):false;
 var gQ=(q)?'?q='+vj.encode(q):false;
 var params='';
 if(typeof opts=='object' && vj.getID(opts.context) && opts.callback){(opts.v)?opts.v:opts.v='1.0';
  for(i in opts){var a=opts[i];
   params+='&'+vj.encode(i)+'='+vj.encode(a);
  }
  if(vj.getID('gapi_search')){
   vj.getID('gapi_search').setAttribute('value',q);
  }
  else{
   var iEl=document.createElement('input');
   iEl.setAttribute('id','gapi_search');
   iEl.setAttribute('type','hidden');
   iEl.setAttribute('value',q);
   document.getElementsByTagName('body')[0].appendChild(iEl);
  }
  var queryURL='http://ajax.googleapis.com/ajax/services/search/web'+gQ+params+apikey;
  var script=document.createElement('script');
  script.setAttribute('id','jsonScript');
  script.setAttribute('src',queryURL);
  script.setAttribute('type','text/javascript');
  //document.documentElement.firstChild.appendChild(script);
  document.getElementsByTagName('head')[0].appendChild(script)
  
 }
 else{
  return false;
 }
};
// Web Callback - Parse JSON Data
vj.webCallback=function(id,json,status){
	
	
	
	
	



var results=json.results;
var cursor=json.cursor;
var html='';
var htmlAr = new Array();


 if(results&&results.length>0){
  htmlAr.push('<div class="gapiResultsWrapper">');
  htmlAr.push('<h3>Your search results for: '+vj.getID('gapi_search').value+'</h3>');
  //html+='<h3>Your search results for: '+vj.getID('gapi_search').value+'</h3>';

   //Google Branding
  // htmlAr.push('<div id="vjGoogleLogo">Powered by: <img src="/img/google_search_logo.gif" width="62" height="20" alt="Google" /></div>');
   htmlAr.push('<div id="searchResultsClose">&times;</div>');
  for(var i=0;i<results.length;i++){var r=results[i];
   var GsearchResultClass=(r.GsearchResultClass)?r.GsearchResultClass:'';
   var unescapedUrl=(r.unescapedUrl)?r.unescapedUrl:'#';
   var url=(r.url)?r.url:'#';
   var visibleUrl=(r.visibleUrl)?r.visibleUrl:'#';
   var cacheUrl=(r.cacheUrl)?r.cacheUrl:'#';
   var title=(r.title)?r.title:'';
   var titleNoFormatting=(r.titleNoFormatting)?r.titleNoFormatting:'';
   var content=(r.content)?vj.stripHTML(r.content):'';
   var contentHTML=(r.content)?r.content:'';
   var titleLink=titleNoFormatting.link(unescapedUrl);
   htmlAr.push('<div class="vjWebResults">');
   htmlAr.push('<div class="vjWebResultsTitle">'+titleLink.replace(regexp,"$1</a>")+'</div>');
   //htmlAr.push('<div class="vjWebResultsTitle"><span class="vjWebResultsCount">'+(i+1)+'</span>'+titleLink+'</div>');
   htmlAr.push('<div class="vjWebResultsContent">'+content+'</div>');
 //htmlAr.push('<div class="vjWebResultsVisibleUrl">'+unescapedUrl+'</div>');
   htmlAr.push('</div>');
  }
  if(cursor&&cursor.pages){
   var pages=cursor.pages;
   var estimatedResultCount=cursor.estimatedResultCount;
   var currentPageIndex=cursor.currentPageIndex;
  // var moreResultsUrl=cursor.moreResultsUrl;
 //  var mru='More Results';
  // mru=mru.link(moreResultsUrl);
   htmlAr.push('<div class="gwsSubpageDiv">Page: ');
   for(var j=0;j<pages.length;j++){var p=pages[j];
    var selected=([j]==currentPageIndex)?'gapi_link gapi_link_active':'gapi_link gapi_link_inactive';
    htmlAr.push('<span class="'+selected+'" onclick="vj.gapiPage(\''+id+'\',\''+p.start+'\')">'+p.label+'</span> ');
   }
   
  htmlAr.push('</div>');
    htmlAr.push('</div>');
   htmlAr.push('&nbsp;');
 htmlAr.push('<div id="userResults">&nbsp;</div>&nbsp;');
		     //searchUsers();
			 
  }

  vj.iHTML(id,htmlAr.join('')); // Output HTML to div
  vj.remE('jsonScript'); // remove old JSON script from searchUsers
  //alert("onComplete ");
$.scrollTo( {top:'0'}, 1000 );
$('#search_container').unblock();
$('#searchResults').fadeIn();						   
$('#searchResultsClose').click(function(){
$('#searchResults').fadeOut();	
});
}
 else{
	// no results  -- vj.iHTML(id,'Missing or Invalid Data');	 
	   htmlAr.push('<div class="gapiResultsWrapper">');
  		htmlAr.push('<h3>Your search results for: '+vj.getID('gapi_search').value+'</h3>');
	   htmlAr.push('<span style="float:left">Sorry no site search results</span>');
	      htmlAr.push('</div>');
   htmlAr.push('&nbsp;');
	     // htmlAr.push('Users');
        htmlAr.push('<div id="userResults">&nbsp;</div>&nbsp;');
		     //searchUsers();
	vj.iHTML(id,htmlAr.join('')); // Output HTML to div
	vj.remE('jsonScript'); // remove old JSON script from searchUsers
	$.scrollTo( {top:'0'}, 1000 );
$('#search_container').unblock();
$('#searchResults').fadeIn();	
	return false;
 }
};
// Revised Google Results Subpage Handler
vj.gapiPage=function(id,start){
 if(typeof vj.searchPrefs.web=='object'&&!isNaN(start)){
  var x=vj.searchPrefs.web;
  var opts={};
  for(i in x){opts[i]=x[i];}
  opts.start=start;
  (vj.getID(x.context))?vj.gapi(vj.getID('gapi_search').value,opts):false;
 }
};
 // Attach search onclick event
 var sbf=vj.getID('site_search');
 var sbt=vj.getID('site_search_inputtext');
 var sb=vj.getID('site_search_button');
 if(sbf&&sbt&&sb){
  sb.onclick=function(){
   vj.gapi(sbt.value,vj.searchPrefs.web);
  // alert("clicked")
  $('#search_container').block({centerY:0,centerX:0,overlayCSS:{backgroundColor:'#B8E4FA', cursor:'wait', width:'150px', left:'0px'},css:{top:'8px', left:'-20px',border:'0', background:'transparent'},message: '<img src="/img/search_loader.gif" /></h1>'});

  };
  sbf.onsubmit=function(){
   vj.gapi(sbt.value,vj.searchPrefs.web);
  $('#search_container').block({centerY:0,centerX:0,overlayCSS:{backgroundColor:'#B8E4FA', cursor:'wait', width:'150px', left:'0px'},css:{top:'8px', left:'-20px',border:'0', background:'transparent'},message: '<img src="/img/search_loader.gif" /></h1>'});
   
   return false;
  };
 }
})();


function searchUsers(){
	  var uid;
   user = $('#site_search_inputtext').val();
  $.ajax({
    url: "/apps/search/ajax_user_suggest.asp",
    data: "q=" + user + "&limit=20",
		
    beforeSend: function () {
     // $('#search_container').block({centerY:0,centerX:0,overlayCSS:{backgroundColor:'#B8E4FA', width:'150px', left:'0px'},css:{top:'8px', left:'-20px',border:'0', background:'transparent'},message: '<img src="/img/search_loader.gif"/>'});
//$('#userResults').append("test")
    },
    success: function (html) {
     // console.log(html);
	 // $("#searchResults").append("<div id='userResults'>hello world</div>")
	  $('#userResults').html(html);
	  //alert(html);


      //$('#newsfeed').append(html);
    },
    error: function () {
      //$('#more_news').unblock();
      alert("Please try again, a server error occurred");
    }
  });
	
	}



-->