// JavaScript Document

 google.load('search', '1.0');
	
	var siteSearch;

    function searchRequest(searchstring) {
      // Initialize the web searcher	
      var searchControl = new google.search.SearchControl();
 
      siteSearch = new GwebSearch();
	  
	  siteSearch.setUserDefinedLabel("boei.nl");
      siteSearch.setUserDefinedClassSuffix("siteSearch");
      siteSearch.setSiteRestriction("boei.nl");
      searchControl.addSearcher(siteSearch);

      siteSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET); 
	  siteSearch.setSearchCompleteCallback(this, searchComplete, null); 
	  
      siteSearch.execute(searchstring);
    }
	
	
	 function addPaginationLinks() {
    
      var cursor = siteSearch.cursor;
      var curPage = cursor.currentPageIndex; // check current page
      var pagesDiv = document.createElement('div');
	  	  pagesDiv.setAttribute("class", 'pages-wrapper'); 
		  pagesDiv.setAttribute("className", 'pages-wrapper');   
		  
	  var text = document.createElement('span');			  
		  text.innerHTML = "Pagina's: <br/>";    
      	  pagesDiv.appendChild(text);
		  
		 if(curPage > 0){
	  var prevLink = document.createElement('a');
	 	  prevLink.href = 'javascript:siteSearch.gotoPage('+(curPage-1)+');';
         
		  prevLink.setAttribute("class", 'pages'); 
		  prevLink.setAttribute("className", 'pages');

		  prevLink.innerHTML = "&laquo; vorige";     		  		 
          pagesDiv.appendChild(prevLink);
	  }
		  
	  for (var i = 0; i < cursor.pages.length; i++) {
	  	 
        var page = cursor.pages[i];
        if (curPage == i) {
			
		  var label = document.createElement('div');			  
		  label.innerHTML = page.label;     
          label.setAttribute("class", 'active-page'); 
		  label.setAttribute("className", 'active-page');
		  pagesDiv.appendChild(label);

        } else {
        		 
		  var pageLink = document.createElement('a');
          pageLink.href = 'javascript:siteSearch.gotoPage('+i+');';
         
		  pageLink.setAttribute("class", 'pages'); 
		  pageLink.setAttribute("className", 'pages'); 

		  pageLink.innerHTML = page.label;     		  		 
          pagesDiv.appendChild(pageLink);
		 
        }
      }
	  if(curPage < (cursor.pages.length-1)){
	  var nextLink = document.createElement('a');
	 	  nextLink.href = 'javascript:siteSearch.gotoPage('+(curPage+1)+');';
         
		  nextLink.setAttribute("class", 'pages'); 
		  nextLink.setAttribute("className", 'pages');

		  nextLink.innerHTML = "volgende &raquo;";     		  		 
          pagesDiv.appendChild(nextLink);
	  }
	  
      var contentDiv = document.getElementById('searchresults');
      contentDiv.appendChild(pagesDiv);
    }

    function searchComplete() {

	  var contentDiv = document.getElementById('searchresults');
      contentDiv.innerHTML = '';
      
	  if (siteSearch.results && siteSearch.results.length > 0) {    
       
	    var total = document.createElement('div');	 	 
         
		  total.setAttribute("class", 'total'); 
		  total.setAttribute("className", 'total');
		  
		  total.innerHTML = "Totaal aantal gevonden resultaten: "+siteSearch.cursor.estimatedResultCount;     		  		 
         // contentDiv.appendChild(total);	   
	   
        var results = siteSearch.results;
        for (var i = 0; i < results.length; i++) {       
		
  	     var result = results[i];
		 var ext = getfileextension(result.url);
		
		 if(ext != ''){
			ext = "("+ ext +")";
		 }
		 
         var resultHTML="";
		 resultHTML += "<p>";
		 resultHTML += "<a class='page-title' href=\"" + result.unescapedUrl + "\">" + result.title + "<\/a><br \/>";
         resultHTML += result.content + "<br \/>";
		 resultHTML += "<a href=\"" + result.unescapedUrl + "\">meer &raquo;<\/a> " + ext + "<br \/>";
		// resultHTML += "<span class=\"url\">" + result.url + "<\/span>";&raquo;
		 resultHTML += "<\/p>";	
          var title = document.createElement('div');
          title.innerHTML = resultHTML;
          contentDiv.appendChild(title);
		  
        }        
        addPaginationLinks(siteSearch);
      
	  }else{
		
		var noResults = document.createElement('div');	 	 
         
		  noResults.innerHTML = "Uw zoekopdracht heeft geen resultaten opgeleverd";     		  		 
          contentDiv.appendChild(noResults);		  
	  }
    } 
	
	
function getfileextension(file) 
{ 	 
	 if(!file ) return ""; 
	 
	 var filename = file; 
	 
	 if( filename.length == 0 ) return ""; 
	 
	 var dot = filename.lastIndexOf("."); 
	 
	 if( dot == -1 ) return ""; 
	 
	 var extension = filename.substr(dot,filename.length); 
	 
	 var docExtensions = new Array();		
		 docExtensions[0]=".doc"
		 docExtensions[1]=".docx"
		 docExtensions[2]=".log"
		 docExtensions[3]=".msg"
		 docExtensions[4]=".pages"
		 docExtensions[5]=".rtf"
		 docExtensions[6]=".txt"
		 docExtensions[7]=".wpd"
		 docExtensions[8]=".pdf"
			 
	 var docType = '';
	 docType = in_array(extension, docExtensions);

	 return docType; 		
} 


function in_array( what, where ){
	var ext='';
	for(var i=0;i<where.length;i++){
	  if(what == where[i]){
	    ext=what;
        break;
	  }
	}
	return ext;
}