var loader;
var web;
var blog;
var news;
var video;
var wiki;
var site;
// GreenLOAD *******************************************************************************
function GreenLoad() {
  web = new GreenLinks('web');
  blog = new GreenLinks('blog');
  news = new GreenLinks('news');
  video = new GreenLinks('video');
  wiki = new GreenLinks('wiki');
  site = new GreenLinks('site');
  GSearch.getBranding($("brand"));
  GSearch.getBranding($("poweredbygoogle"));
} 
// *****************************************************************************************
// ** GreenLinks
// *****************************************************************************************
function GreenLinks(search) { 
  this.buildSearchControl(search); 
}
// *****************************************************************************************
GreenLinks.prototype.buildSearchControl = function(search) {
 switch (search) {
  case 'web': 
      this.ws = new GwebSearch(); 
      break;
  case 'blog': 
      this.ws = new GblogSearch(); 
      break;
  case 'news': 
      this.ws = new GnewsSearch(); 
      break;      
  case 'video': 
      this.ws = new GvideoSearch(); 
      break;      
 case 'wiki': 
      this.ws = new GwebSearch(); 
      this.ws.setQueryAddition('inurl:wikipedia.org');
      break;            
  case 'site': 
      this.ws = new GwebSearch(); 
      var cseId = "011484338777810776253:9qwnoe6jmxy";
      this.ws.setSiteRestriction(cseId,"digitalinsane.com");
      break;      
  } 
  this.ws.name=search;
  this.ws.setResultSetSize(GSearch.SMALL_RESULTSET);
  this.ws.setNoHtmlGeneration(); 
  this.ws.setSearchCompleteCallback(this, GreenLinks.prototype.searchComplete, [null]);
}
// *****************************************************************************************
GreenLinks.prototype.execute = function(query) {
  this.ws.execute(query);
}
// *****************************************************************************************
GreenLinks.prototype.clearAllResults = function () {
  this.ws.clearAllResults;
}
// *****************************************************************************************
GreenLinks.prototype.searchComplete = function () {
 loader++;
   if (loader==6)
    {
	 $('respreload').setStyle({display: 'none'});	
     $('rescontainer').setStyle({display: 'block'});
	}
  resultarr= this.ws.results;
  var panel=$(this.ws.name);
  resTable=document.createElement('div');
  if (resultarr.length==0) {
	      resTable.style.padding="10px";
	      resTable.innerHTML='Query did not match any documents.';
		                       }
  else  	  
  for (i=0; i < resultarr.length; i++ )
	  { 
	    rcont=document.createElement('div');
 	    rcont.className='gs-result';
	    if ((i%2)==0) rcont.style.background='#f1fafe';
// ** VideoThumb ************************************** 
	    if (this.ws.name=="video") {
 	    vThumb=document.createElement('div');
		with (vThumb) {
             setAttribute('style','width:80px;margin:0 5px;float:left;'); 
		     style.width='80px';
		     style.styleFloat='left';
	         style.padding='5px';
		              }
	    LINK=document.createElement('a');
		LINK.setAttribute('target','_blank');
		LINK.href=resultarr[i].url;
		IMG=document.createElement('img');
		with (IMG) {
 			 setAttribute('src',resultarr[i].tbUrl);
		     style.width='80px';
			 style.height='55px';	
			 setAttribute('align','left');	
			 setAttribute('width','80px');
			 setAttribute('height','55px');
			       }
		LINK.appendChild(IMG);
		vThumb.appendChild(LINK);
		                  }	    
 // ** TOP LINK *******************************************
	    title=document.createElement('div');
	    LINK=document.createElement('a');
		LINK.setAttribute('target','_blank');
	    LINK.className= 'gs-title';
	    LINK.href=resultarr[i].unescapedUrl;
	    if (this.ws.name=='blog') LINK.href=resultarr[i].postUrl;
		if (this.ws.name=='video') LINK.href=resultarr[i].url;
		LINK.innerHTML=resultarr[i].title;
        title.appendChild(LINK);
 // ** Add **************************************** 		
    	if (this.ws.name=='blog') {
	    blogadd=document.createElement('div');
	    SPAN=document.createElement('span');
		SPAN.style.color='#008000';
		SPAN.innerHTML='<b>Author:</b> '+resultarr[i].author+'<br /><b>Date:</b> '+resultarr[i].publishedDate;
		blogadd.appendChild(SPAN);
		}
		if (this.ws.name=='news') {
	    newsadd=document.createElement('div');
	    SPAN=document.createElement('span');
		SPAN.style.color='#008000';
		SPAN.innerHTML='<b>Location: </b>'+resultarr[i].location+'<br /><b>Date:</b> '+resultarr[i].publishedDate+'<br /><b>Publisher:</b> '+resultarr[i].publisher;
	    newsadd.appendChild(SPAN);
		}		
		if (this.ws.name=='video') {
	    vidadd=document.createElement('div');
	    SPAN=document.createElement('span');
		SPAN.style.color='#008000';
		SPAN.innerHTML='<b>Duration: </b>'+resultarr[i].duration+'<br /><b>Date:</b> '+resultarr[i].published+'<br /><b>Publisher:</b> '+resultarr[i].publisher;
	    vidadd.appendChild(SPAN);
		}	        
 // ** DESCRIPTION *****************************************        
        desc=document.createElement('div');
		with (desc) {
	    	 className= 'gs-text-box';
	         innerHTML=resultarr[i].content;
			        }
 // ** BOTTOM LINK ******************************************			        
		links=document.createElement('div');
		links.style.padding='2px';
 	    LINK=document.createElement('a');
		LINK.setAttribute('target','_blank');
		LINK.innerHTML=resultarr[i].url;
	    LINK.className= 'gs-visibleUrl';
		switch (this.ws.name) {
		  case 'web':
 		     LINK.innerHTML=resultarr[i].visibleUrl;
   		     LINK.href='http://'+resultarr[i].visibleUrl;
			 break;
		  case 'blog':	 
		     LINK.innerHTML=resultarr[i].blogUrl;
   		     LINK.href=resultarr[i].blogUrl;
             break;
		  case 'news':
 		     LINK.innerHTML='';
             break;
		  case 'video':	 
 		     LINK.innerHTML='';
			 break;
		}
		links.appendChild(LINK);
   // add to bookmark ****************************************	        
        btnAdd=document.createElement('div');
		btnAdd.className='btnbar';
 	    LINK=document.createElement('a');
		LINK.setAttribute('target','_blank');
		LINK.className='btnlink';
			u=resultarr[i].unescapedUrl;
    	if (this.ws.name=='blog') u=resultarr[i].postUrl;
		if (this.ws.name=='video')u=resultarr[i].url;
		u=convertURL(u);
		v=resultarr[i].titleNoFormatting;
		t=convertURL(v);
		LINK.href='http://www.google.com/bookmarks/mark?op=add&bkmk='+u+'&title='+t+'&annotation='+'GreenLinks(digitalinsane.com)';	
		IMG=document.createElement('img');
		with (IMG) {
 		   setAttribute('alt','Add To Google');
		   setAttribute('src','http://www.digitalinsane.com/img/greenlinks/add-to-google-plus.gif');
		   setAttribute('border','0');
		   style.border="0";
		           }
		LINK.appendChild(IMG);
		btnAdd.appendChild(LINK); 		        
      /* ******************************************************* */
	   	if (this.ws.name=='video') rcont.appendChild(vThumb);	     	   
	    rcont.appendChild(title);
     	if (this.ws.name=='blog') rcont.appendChild(blogadd);
        if (this.ws.name=='news') rcont.appendChild(newsadd);
        if (this.ws.name=='video') rcont.appendChild(vidadd);						
	    rcont.appendChild(desc);
  	    rcont.appendChild(links);
		rcont.appendChild(btnAdd);
        resTable.appendChild(rcont);	                  
	  }
	    panel.appendChild(resTable);  
}

// *********************************************************************************************
// *********************************************************************************************
// *********************************************************************************************
// *********************************************************************************************

function gLink(handle) {
	   $('respreload').setStyle({display: 'block'});
       $('rescontainer').setStyle({display: 'none'});
	   ['web','blog','news','video','wiki','site'].each(function(el){
	   	   $(el).innerHTML=''; 
		   $(el).setStyle({display: 'none'});});
       loader=0;
       web.clearAllResults();
       blog.clearAllResults();
       news.clearAllResults();
       video.clearAllResults();
       wiki.clearAllResults();
       site.clearAllResults();  
	   $('gquery').innerHTML=handle.innerHTML;
	   $('glinkpanel').setStyle({ display: 'block' });
       gclose=$("btnBack");
	   gclose.href='#'+handle.name;
       web.execute(handle.innerHTML);
       blog.execute(handle.innerHTML);
       news.execute(handle.innerHTML);
       video.execute(handle.innerHTML);
       wiki.execute(handle.innerHTML);
       site.execute(handle.innerHTML);
       $('web').setStyle({display: 'block'});
       checktab('btnweb');
}
// *********************************************************************************************
function btnClick(btn) {
       checktab(btn);
	   show(btn);
}
// *********************************************************************************************
function checktab(btn) {
	   ['btnweb','btnblog','btnnews','btnvideo','btnwiki','btnsite'].each(function(el){$(el).className='unclicked'});
       $(btn).className="tabclick";
}
// *********************************************************************************************
function show(btn) {
	  ['web','blog','news','video','wiki','site'].each(function(el){$(el).setStyle({display: 'none'});}); 
	  switch(btn) {
	    case 'btnweb': $('web').setStyle({display: 'block'}); break;
		case 'btnblog': $('blog').setStyle({display: 'block'}); break;			  
		case 'btnnews': $('news').setStyle({display: 'block'}); break;			  
		case 'btnvideo': $('video').setStyle({display: 'block'}); break;			  
		case 'btnwiki': $('wiki').setStyle({display: 'block'}); break;			  
		case 'btnsite': $('site').setStyle({display: 'block'}); break;			  
                   }
}
// *********************************************************************************************
function gBack() {
       ['web','blog','news','video','wiki','site'].each(function(el){$(el).setStyle({display: 'none'});});
       web.clearAllResults();
       blog.clearAllResults();
       news.clearAllResults();
       video.clearAllResults();
       wiki.clearAllResults();
       site.clearAllResults(); 
       $('web','blog','news','video','wiki','site').innerHTML='';
 	   $("glinkpanel").setStyle({display: 'none'});
}
// *********************************************************************************************
function convertURL(url) {
     url=url.replace(/ /g,'%20');
     url=url.replace(/&/g,'%26');
     return url;
}
// *********************************************************************************************
function gPage() {
   x=$('gpage');
   n=$('gquery');
   x.href="http://www.google.com/search?q="+n.innerHTML;
}

// *********************************************************************************************** 
// END OF GREEN-LINKS
// *********************************************************************************************** 

function SearchLoad() {
	  searchCTRL = new GSearchControl();
	  searchCTRL.setResultSetSize(GSearch.LARGE_RESULTSET);
      var di = new GwebSearch();
	  di.setUserDefinedLabel("digitalinsane.com");
	  di.setSiteRestriction("digitalinsane.com");
	  searchCTRL.addSearcher(di);
	  searchCTRL.addSearcher(new GwebSearch());
      searchCTRL.addSearcher(new GvideoSearch());
      searchCTRL.addSearcher(new GblogSearch());
      searchCTRL.addSearcher(new GnewsSearch());
      var drawOptions = new GdrawOptions();
	  GSearch.getBranding($("brand"));
	  GSearch.getBranding($("temp_div134234"));	  
      drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);
      searchCTRL.draw($("searchcnt"),drawOptions);
}

