var webSearch;    

var siteCatalog = '011754960752163863468:umuc9fwjqku';
var siteSite = 'http://www.nordic-land.com';
var siteWWW = '*';
google.load('search', '1', {'nooldnames': true, 'language': 'ru-RU', 'nocss': true});
google.setOnLoadCallback(onPageLoad);


function onPageLoad() {
   webSearch = new google.search.WebSearch();
   webSearch.setSiteRestriction(siteCatalog);
   webSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);                    
   webSearch.setNoHtmlGeneration();
   webSearch.setSearchCompleteCallback(this, onWebSearchComplete);            

   $('.search-form :submit, .search-form :image').click(function() {
      if ($('.search-form :text').val() != '') {
         searchLocation = $("input:radio:checked").val();
         switch(searchLocation){
            case 'www': 
               webSearch.setSiteRestriction(siteWWW);
               break;
            case 'catalog': 
               webSearch.setSiteRestriction(siteCatalog);
               break;
            default:
               webSearch.setSiteRestriction( $("#restriction").html() );
         }
         onWebSearchStarting();
         webSearch.execute($('.search-form :text').val());
         $('.search-popup').hide();
      }
      return false;
   }).click();
}


function onWebSearchStarting() {
   $('.search-result .results').empty();
   $('.search-result .paging ul').empty();
   $('.search-result').hide();
   $('.search-failed').hide();
   $('.search-loading').show();   
   
   if ( $('.search-form :text').val() != ''){
      $.ajax({
         async: false,
         type: 'GET',
         url: 'add.php',
         data: {'text': $('.search-form :text').val()},
         dataType: 'json'
      });
   }
}


function onWebSearchComplete() {    
    $('.search-loading').hide();        
        
    if (webSearch.results.length > 0) {   
        $('.search-result .query').text($('.search-form :text').val());
        
        showSearchResults($('.search-result .results'));        
                
        if (webSearch.cursor.pages.length > 1) {
            showSearchPaging($('.search-result .paging ul'))            
            $('.search-result .paging').show();
        }
        else {
            $('.search-result .paging').hide();        
        }
        
        $('.search-result').show();
    }
    else {
        $('.search-failed').show();
    }
}


function showSearchResults(resultsContainer) {
    resultsContainer.attr('start', Number(webSearch.cursor.pages[webSearch.cursor.currentPageIndex].start) + 1);        
    
    $.each(webSearch.results, function(i, resItem) {            
        $('<li/>')
            .append( $('<a/>').html(resItem.titleNoFormatting).attr('href', resItem.unescapedUrl) )
            .append( $('<p/>').html(resItem.content) )
            .appendTo(resultsContainer);
    });
}


function showSearchPaging(pagingContainer) {
    if (webSearch.cursor.currentPageIndex > 0) {
        $('<li>')
            .append ( $('<a/>').attr('href', '#').text('Назад').data('pageNumber', webSearch.cursor.currentPageIndex - 1) )
            .appendTo(pagingContainer);
    }            

    $.each(webSearch.cursor.pages, function(pageIndex, pageItem) {            
        (webSearch.cursor.currentPageIndex == pageIndex
            ? $('<li/>').text(pageItem.label)
            : $('<li/>').append( $('<a/>').attr('href', '#').text(pageItem.label).data('pageNumber', pageIndex) )
        ).appendTo(pagingContainer);
    });

    if (webSearch.cursor.currentPageIndex < webSearch.cursor.pages.length - 1) {
        $('<li/>')
            .append ( $('<a/>').attr('href', '#').text('Далее').data('pageNumber', webSearch.cursor.currentPageIndex + 1) )
            .appendTo(pagingContainer);
    }
    
    pagingContainer.find('a').click(function() {
        var pageNum = $(this).data('pageNumber');
        onWebSearchStarting();
        webSearch.gotoPage(pageNum);
        return false;
    });
}
