// if (!XMLHttpRequest) {
//   function XMLHttpRequest() {
//     return new ActiveXObject('Microsoft.XMLHTTP');
//   }
// }

// function sendRequest(url,callback,postData) {
// 	var req = createXMLHTTPObject();
// 	if (!req) return;
// 	var method = (postData) ? "POST" : "GET";
// 	req.open(method,url,true);
// 	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
// 	if (postData)
// 		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
// 	req.onreadystatechange = function () {
// 		if (req.readyState != 4) return;
// 		if (req.status != 200 && req.status != 304) {
// //			alert('HTTP error ' + req.status);
// 			return;
// 		}
// 		callback(req);
// 	}
// 	if (req.readyState == 4) return;
// 	req.send(postData);
// }
// 
// var XMLHttpFactories = [
// 	function () {return new XMLHttpRequest()},
// 	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
// 	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
// 	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
// ];
// 
// function createXMLHTTPObject() {
// 	var xmlhttp = false;
// 	for (var i=0;i<XMLHttpFactories.length;i++) {
// 		try {
// 			xmlhttp = XMLHttpFactories[i]();
// 		}
// 		catch (e) {
// 			continue;
// 		}
// 		break;
// 	}
// 	return xmlhttp;
// }

function InputElement(options) {
  var input = document.createElement("input");
  for (var key in options) {
    input[key] = options[key];
  }
  return input;
}

function FormElement(options) {
  this.form = document.createElement('form');

  for (var key in options) {
    this.form[key] = options[key];
  }
  this.addFields = function() {
    for(var i=0; i<arguments.length; i++) {
      this.form.appendChild(arguments[i]);
    }
  };
    
  this.renderAfter = function(id) {
    document.getElementById(id).parentNode.appendChild(this.form);
  };
  
  return this;
}

function addCss(cssCode) {
var styleElement = document.createElement("style");
  styleElement.type = "text/css";
  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = cssCode;
  } else {
    styleElement.appendChild(document.createTextNode(cssCode));
  }
  document.getElementsByTagName("head")[0].appendChild(styleElement);
}

function tybit_inject() {

  var q = document.getElementById("tybit_sf");

  if ( q.value.length == 0) {
    q.focus();
    return false;
  }
  else {
    if ("createEvent" in document) {
      var element = document.createElement("tyBitSearch");
      element.setAttribute("query", q.value);
      element.setAttribute("source", "Web");
      document.documentElement.appendChild(element);
      var evt = document.createEvent("Events");
      evt.initEvent("tyBitSearchEvent", true, false);
      element.dispatchEvent(evt);
    }
    return true;
  }
}

(function() {
  var myform      = new FormElement({action:"http://www.tybit.com/search/", method:"get", id:"tybitminisearch", onsubmit:tybit_inject});
  var myhidden    = new InputElement({type: "hidden", value: "Web", name: "t", id: "t_search"});
  var mysearchbox = new InputElement({type: "text", name: "q", id: "tybit_sf", size:"20", title: "tyBit Search"});
  var mybutton    = new InputElement({type: "submit", value: "Search", title: "Perform a tyBit search"});
  mybutton.style.marginLeft = "5px";
    
  myform.addFields(myhidden, mysearchbox, mybutton);
  myform.renderAfter("tybit_syndication");
})();