if ("undefined"==typeof(SearchShortcut))
    var SearchShortcut= {};

if ("undefined"==typeof(GlobalSearch))
    var GlobalSearch= {};

GlobalSearch.findPlaceholder = function() {
    var form= document.getElementById("g-search");
    var labels= form.getElementsByTagName("label");
    var i;
    var len= labels.length;
    var span;
    
    for (i=0; i<len; ++i) {
        var l= labels[i];
        if ('sp-searchtext'!=l.htmlFor)
            continue;
        span= l.getElementsByTagName('span')[0];
        return span?span.innerHTML:"";
    }

    return "";
}

SearchShortcut.findAllQuicktimeMovies = function(container) {
    container= container || document;
    var objects= container.getElementsByTagName("OBJECT");
    var embeds= container.getElementsByTagName("EMBED");
    
    //  Obviously, only a QT movie will respond to GetQuickTimeVersion.
    function isQuicktimeMovie(node) {
        try {
            node.GetQuickTimeVersion();
            return true;
        } catch (e) {
            return false;
        }
    }
    
    objects= Array.filter(objects, isQuicktimeMovie);
    embeds= Array.filter(embeds, isQuicktimeMovie);
    return objects.concat(embeds);
}

SearchShortcut.hideAllQuicktimeMovies = function() {
    var movies= this.findAllQuicktimeMovies();

    function hideMovie(movie) {
        try {
            movie._previousRate= movie.GetRate();
            movie.Stop();
            movie.style.visibility="hidden";
        } catch (e) {
            //  ignore the error
            // console.log("hideMovie: " + e.message);
        }
    }
    
    movies.forEach(hideMovie);
}

SearchShortcut.showAllQuicktimeMovies = function() {
    var movies= this.findAllQuicktimeMovies();
    
    function showMovie(movie) {
        try {
            movie.style.visibility= "visible";
            if (movie._previousRate)
                movie.Play();
        } catch (e) {
            //  ignore the error
            // console.log("showMovie: " + e.message);
        }
    }
    
    movies.forEach(showMovie);
}

SearchShortcut.setShortcutUrl = function(newUrl) {
    if (!newUrl)
        return;
    this.baseUrl= newUrl;
}

SearchShortcut.setGlobalSearchUrl = function(newUrl) {
	if (!newUrl)
		return;
	this._globalSearchUrl= newUrl;
}
