﻿if(typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {
	HTMLElement.prototype.insertAdjacentElement = function (where, parsedNode) {
		switch (where) {
			case "beforeBegin": this.parentNode.insertBefore(parsedNode, this); break;
			case "afterBegin": this.insertBefore(parsedNode, this.firstChild); break;
			case "beforeEnd": this.appendChild(parsedNode); break;
			case "afterEnd":
				if(this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
				else this.parentNode.appendChild(parsedNode);
			break;
		}
	}
	HTMLElement.prototype.insertAdjacentHTML = function (where, str) {
		var range = this.ownerDocument.createRange();
		range.setStartBefore(this);
		var parsedHTML = range.createContextualFragment(str);
		this.insertAdjacentElement(where, parsedHTML);
	}
	HTMLElement.prototype.insertAdjacentText = function (where, str) {
		var parsedText = document.addTextNode(str);
		this.insertAdjacentElement(where, parsedText);
	}
	HTMLElement.prototype.__defineSetter__("innerText", function (str) { this.textContent = str; });
	HTMLElement.prototype.__defineGetter__("innerText", function () { return this.textContent; });

	var EmptyTags = {
		"IMG": true,
		"BR": true,
		"INPUT": true,
		"META": true,
		"LINK": true,
		"PARAM": true,
		"HR": true
	}

	HTMLElement.prototype.__defineGetter__("outerHTML", function () {
		var attributes = this.attributes;
		var tagName = this.tagName.toLowerCase();
		var str = "<" + tagName;
		var len = attributes.length, i = 0;
		while (i < len) { str += " " + attributes[i].name + "=\"" + attributes[i].value + "\""; i++; }
		if(EmptyTags[tagName]) { return str + ">"; }
		return str + ">" + this.innerHTML + "</" + tagName + ">";
	});
	HTMLElement.prototype.__defineSetter__("outerHTML", function (str) {
	   var range = this.ownerDocument.createRange();
	   range.setStartBefore(this);
	   var parsedHTML = range.createContextualFragment(str);
	   this.parentNode.replaceChild(parsedHTML, this);
	});
}

function progressiveEnhancement() {
	var searchInput = document.getElementById("SearchInput");
	EventManager.Add(searchInput, "focus", searchProducts);
	EventManager.Add(searchInput, "blur", searchProducts);
}

function searchProducts() {
	if(this.value == "Search") { this.value = ""; }
	else if(this.value == "") { this.value = "Search"; }
}

EventManager.Add(window, "load", progressiveEnhancement);