// ==UserScript==
// @name           SSSF Google Search
// @namespace      http://psychogeeks.com
// @author         Chris W <sssfgeek@psychogeeks.com>
// @version        2008-02-15
// @description    Adds a SSSF targetted Google search to the SSSF tool bar
// @include        http://www2b.abc.net.au/science/k2/stn/toolbar.shtm
// @include        http://www2b.abc.net.au/science/techtalk/toolbar.shtm
// ==/UserScript==

var sssfGoogleSearch = {
  addSearch: function(formName, formAction, formTarget, formElms) {
    lastSibling = function(node){
	// Utility function. Accounts for firefox treating /n as a node.
	var tempObj=node.parentNode.lastChild;
	while(tempObj.nodeType!=1 && tempObj.previousSibling!=null){
	    tempObj=tempObj.previousSibling;
	}
	return (tempObj.nodeType==1)?tempObj:false;
    }
    
    // Find named img, then find its parent TD
    var node = document.getElementsByName('byTime');
    if(!node) return;
    node = node[node.length-1];
    node = node.parentNode;

    var searchForm = document.createElement('form');
    searchForm.setAttribute('name', formName);
    searchForm.setAttribute('action', formAction);
    searchForm.setAttribute('target', formTarget);
    searchForm.innerHTML = formElms;

    var newTableCell = document.createElement('td');
    newTableCell.setAttribute('height', '25');
    newTableCell.setAttribute('nowrap', 'nowrap');
    newTableCell.setAttribute('id', 'sssfgs');
    newTableCell.appendChild(searchForm);

    // To the the TR's content add the new table cell before the last TD cell
    node.parentNode.insertBefore(newTableCell, lastSibling(node));
  },

  sssfgs: function() {
    var uName = 'f';
    var uAction = 'http://www.google.com/search';
    var uTarget = 'main';
    var uElms = (
       '<input maxlength="2048" name="as_q" size="25" title="SSSF Google Search" value="">\n' +
       '<input name="hl" value="en" type="hidden">\n' +
       '<input name="c2coff" value="1" type="hidden">\n' +
       '<input name="num" value="10" type="hidden">\n' +
       '<input name="as_epq" value="" type="hidden">\n' +
       '<input name="as_oq" value="" type="hidden">\n' +
       '<input name="as_eq" value="" type="hidden">\n' +
       '<input name="lr" value="" type="hidden">\n' +
       '<input name="cr" value="" type="hidden">\n' +
       '<input name="as_ft" value="i" type="hidden">\n' +
       '<input name="as_filetype" value="" type="hidden">\n' +
       '<input name="as_qdr" value="all" type="hidden">\n' +
       '<input name="as_nlo" value="" type="hidden">\n' +
       '<input name="as_nhi" value="" type="hidden">\n' +
       '<input name="as_occt" value="any" type="hidden">\n' +
       '<input name="as_dt" value="i" type="hidden">\n' +
       '<input name="as_sitesearch" value="www2b.abc.net.au/science" type="hidden">\n' +
       '<input name="as_rights" value="" type="hidden">\n' +
       '<input name="safe" value="images" type="hidden">\n' +
       '<input name="btnG" value="Go" type="submit">'
    );
    this.addSearch(uName, uAction, uTarget, uElms);
  }
}

sssfGoogleSearch.sssfgs();

