﻿
google.load('search', '1',{"language" : language});

n = 0;
function catchItemCallback(sc, searcher, query) {

    var stype = searcher.Na;
    if (!stype) stype = "unknown";
    
    // save query by webservice call
    Search.Services.SearchMonitor.SaveQuery(query, stype, saveQueryOK, saveQueryFail, null);
    
    if ((n % 5) == 0) {
        setCookie('searchVal', query);
    }
    n++;
}

// for debug purposes only
function saveQueryOK(arg) {
    //alert('saveQueryOK');
}

function saveQueryFail(arg) {
    //alert('saveQueryFail: ' + arg._message);
}


function OnLoad() {
    //debugger;
    // Create a search control
    var forms = getElementsByClassName("formCreator");
    forms[0].style.display = "none";
    searchVal = getCookie('searchVal');

    if (searchVal != null && searchVal != "") {
        forms[0].style.display = "block";
    }
    
    var searchControl = new google.search.SearchControl();
    searchControl.setLinkTarget(searchControl.LINK_TARGET_SELF);
    
    searchControl.setSearchStartingCallback(this, catchItemCallback);
    
    var options = new google.search.SearcherOptions();
    options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
    
    // Add in a full set of searchers     
 
    // create a drawOptions objectvar 
    drawOptions = new google.search.DrawOptions();
    drawOptions.setAutoComplete(true);
    
     // tell the searcher to draw itself in tabbed mode
     drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
    
     var lang = "sk";
     pathArray = window.location.pathname.split('/');
     if (pathArray.length > 1) {
         if (pathArray[1].length == 2) {
             lang = pathArray[1].toLowerCase();
         }
     }

    if (lang == "sk") {
        var siteSearchSK = new google.search.WebSearch();
        siteSearchSK.setUserDefinedLabel("Všetko");
        siteSearchSK.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "skall");
        searchControl.addSearcher(siteSearchSK);

        var siteSearchSKPRESS = new google.search.WebSearch();
        siteSearchSKPRESS.setUserDefinedLabel("Tlačové správy");
        siteSearchSKPRESS.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "skpress");
        searchControl.addSearcher(siteSearchSKPRESS);

        var siteSearchSKPublication = new google.search.WebSearch();
        siteSearchSKPublication.setUserDefinedLabel("Publikácie");
        siteSearchSKPublication.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "skpublication");
        searchControl.addSearcher(siteSearchSKPublication);

        var siteSearchSKStatistics = new google.search.WebSearch();
        siteSearchSKStatistics.setUserDefinedLabel("Štatistika");
        siteSearchSKStatistics.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "skstatistics");
        searchControl.addSearcher(siteSearchSKStatistics);

        var siteSearchSKLegislation = new google.search.WebSearch();
        siteSearchSKLegislation.setUserDefinedLabel("Legislatíva");
        siteSearchSKLegislation.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "sklegislation ");
        searchControl.addSearcher(siteSearchSKLegislation);
    }
    if (lang == "en") {
        var siteSearchEN = new google.search.WebSearch();
        siteSearchEN.setUserDefinedLabel("All");
        siteSearchEN.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "enall");
        searchControl.addSearcher(siteSearchEN);

        var siteSearchENPRESS = new google.search.WebSearch();
        siteSearchENPRESS.setUserDefinedLabel("Press Releases");
        siteSearchENPRESS.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "enpress");
        searchControl.addSearcher(siteSearchENPRESS);

        var siteSearchENPublication = new google.search.WebSearch();
        siteSearchENPublication.setUserDefinedLabel("Publication");
        siteSearchENPublication.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "enpublication");
        searchControl.addSearcher(siteSearchENPublication);

        var siteSearchENStatistics = new google.search.WebSearch();
        siteSearchENStatistics.setUserDefinedLabel("Statistics");
        siteSearchENStatistics.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "enstatistics");
        searchControl.addSearcher(siteSearchENStatistics);

        var siteSearchENLegislation = new google.search.WebSearch();
        siteSearchENLegislation.setUserDefinedLabel("Legislation");
        siteSearchENLegislation.setSiteRestriction("010310028646543628852:d2oguaxgd7w", "enlegislation");
        searchControl.addSearcher(siteSearchENLegislation);
    }

     searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
     searchControl.draw(document.getElementById("searchcontrol"),drawOptions);

     searchVal = getCookie('searchVal');

     if (searchVal != null && searchVal != "") {
 /*
         if (searchVal != "") {
             search = searchVal;
         }*/
         // execute an inital search
         searchControl.execute(searchVal);
     }
}

google.setOnLoadCallback(OnLoad);

function getCookie(name) {
    if (document.cookie.length > 0) {
        start = document.cookie.indexOf(name + "=");
        if (start != -1) {
            start = start + name.length + 1;
            end = document.cookie.indexOf(";", start);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(start, end));
        }
    }
    return "";
} 

function setCookie(name, value, expiredays) {
    var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = name + "=" + escape(value) + ";path=/";
}

function getElementsByClassName(classname, node) {
    if (!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className)) a.push(els[i]);
    return a;
}
