var loader;
var web;
var blog;
var news;
var video;
var wiki;
var site;
// OnGreenLOAD *******************************************************************************
function OnGreenLoad() {
  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(document.getElementById("brand"));
  GSearch.getBranding(document.getElementById("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";          // <- Put your custom search engine Id
      this.ws.setSiteRestriction(cseId,"digitalinsane.com");    // <- Address of your site
      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)
    {
	 document.getElementById('respreload').style.display='none';		
     document.getElementById('rescontainer').style.display='block';
	}
  resultarr= this.ws.results;
  var panel=document.getElementById(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';	
		IMG=document.createElement('img');
		with (IMG) {
 		   setAttribute('alt','Add To Google');
		   setAttribute('src','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) {
	   document.getElementById('respreload').style.display='block';		
       document.getElementById('rescontainer').style.display='none';
       with (document) {
            getElementById('web').style.display='none';
            getElementById('blog').style.display='none';
            getElementById('news').style.display='none';
            getElementById('video').style.display='none';
            getElementById('wiki').style.display='none';
            getElementById('site').style.display='none';
                      }
       removeIn();
       loader=0;
       web.clearAllResults();
       blog.clearAllResults();
       news.clearAllResults();
       video.clearAllResults();
       wiki.clearAllResults();
       site.clearAllResults();  
	   document.getElementById("gquery").innerHTML=handle.innerHTML;
	   gcon=document.getElementById("glinkpanel");
	   gcon.className="glcontainer";
       gclose=document.getElementById("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);
       document.getElementById('web').style.display='block';
       checktab('btnweb');
}
// *********************************************************************************************
function btnClick(btn) {
       checktab(btn);
	   show(btn);
}
// *********************************************************************************************
function checktab(btn) {
       with (document) {
             getElementById('btnweb').className="unclicked";
			 getElementById('btnblog').className="unclicked";
			 getElementById('btnnews').className="unclicked";
			 getElementById('btnvideo').className="unclicked";             
			 getElementById('btnwiki').className="unclicked";             
			 getElementById('btnsite').className="unclicked";             
			            }
       document.getElementById(btn).className="tabclick";
}
// *********************************************************************************************
function show(btn) {
       with (document) {
            getElementById('web').style.display='none';
            getElementById('blog').style.display='none';
            getElementById('news').style.display='none';
            getElementById('video').style.display='none';
            getElementById('wiki').style.display='none';
            getElementById('site').style.display='none';
   	        switch(btn) {
			  case 'btnweb': getElementById('web').style.display='block'; break;
			  case 'btnblog': getElementById('blog').style.display='block'; break;			  
			  case 'btnnews': getElementById('news').style.display='block'; break;			  
			  case 'btnvideo': getElementById('video').style.display='block'; break;			  
			  case 'btnwiki': getElementById('wiki').style.display='block'; break;			  
			  case 'btnsite': getElementById('site').style.display='block'; break;			  
                        }
			}			
}
// *********************************************************************************************
function gBack() {
      with (document) {
            getElementById('web').style.display='none';
            getElementById('blog').style.display='none';
            getElementById('news').style.display='none';
            getElementById('video').style.display='none';
            getElementById('wiki').style.display='none';
            getElementById('site').style.display='none';
                      }
       web.clearAllResults();
       blog.clearAllResults();
       news.clearAllResults();
       video.clearAllResults();
       wiki.clearAllResults();
       site.clearAllResults(); 
       removeIn();
 	   document.getElementById("glinkpanel").className="glhide";
}
// *********************************************************************************************
function removeIn() {
   	   with (document) {
		    getElementById('web').innerHTML="";
		    getElementById('blog').innerHTML="";		    
		    getElementById('news').innerHTML="";		    
		    getElementById('video').innerHTML="";		    
		    getElementById('wiki').innerHTML="";		    
		    getElementById('site').innerHTML="";		    
   	   		            }
}
// *********************************************************************************************
function convertURL(url) {
  url=url.replace(/ /g,'%20');
  url=url.replace(/&/g,'%26');
  return url;
}
// *********************************************************************************************
function gPage() {
       x=document.getElementById('gpage');
       n=document.getElementById('gquery');
       x.href="http://www.google.com/search?q="+n.innerHTML;
}

// *********************************************************************************************** 
// END OF GREEN-LINKS
// *********************************************************************************************** 