﻿var app;
function OnLoad() {
    app = new App();
}

function App() {
    google.load('search', '1', { language: 'nl' });
    google.setOnLoadCallback(function () {
        var customSearchControl = new google.search.CustomSearchControl('015826645924577670457:p1y1qg9bqlu');
        customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        var options = new google.search.DrawOptions();
        options.setSearchFormRoot('cse-search-form');

        options.setAutoComplete(true);
        customSearchControl.draw('cse', options);
        customSearchControl.setSearchCompleteCallback(this, App.prototype.OnSearchComplete);
    }, true);

    setTimeout("setClearStyle('none')", 500);
}

App.prototype.OnSearchComplete = function (sc, searcher) {
    setClearStyle('');

    var e;
    if ((e = findByClass('div', 'gsc-clear-button')) != null) {
        if (e.addEventListener) {
            e.addEventListener(
                    'click', OnClearClick, false);
        } else if (e.attachEvent) {
            e.attachEvent(
                  'onclick', OnClearClick);
        }
    }
}

App.prototype.onClear = function (form) {
    OnClearClick();
    return true;
}

function setClearStyle(myStyle) {
    var mainDiv = document.getElementById('cse-search-form');
    var clearFound = 0;
    if (mainDiv) {
        var divs = mainDiv.getElementsByTagName("div");

        for (var i = 0; i < divs.length; i++) {
            if (divs[i].className == 'gsc-clear-button') {
                divs[i].style.display = myStyle;
                clearFound = 1;
                break;
            }
        }
    }
    if (clearFound == 0) {
        setTimeout("setClearStyle('" + myStyle + "')", 500);
    }
}

function findByClass(tagName, className) {
    var r = new RegExp('\\b' + className + '\\b');
    var elements = document.getElementsByTagName(tagName);
    for (var i = 0; i < elements.length; i++) {
        var e = elements[i];
        if (e.className && r.test(e.className)) {
            return e;
        }
    }
    return null;
}

function OnClearClick() {
    setClearStyle('none');
    return true;
}

OnLoad();
