/*
 * Filename	:	dom.js
 * Function	:
 * Comment	:
 * History	:	2005/08/30, jerry, setup
 *
 * Version	:	1.0
 * Author		:	Copyright (c) 2005 by JC Square Inc. All Rights Reserved.
 */

/***************************************************
*	insert element/HTML/text
****************************************************/

function insertElement(obj, where, parsedNode) {
	switch (where) {
		case 'BeforeBegin':
			obj.parentNode.insertBefore(parsedNode, this)
			break;
		case 'AfterBegin':
			obj.insertBefore(parsedNode, obj.firstChild);
			break;
		case 'BeforeEnd':
			obj.appendChild(parsedNode);
			break;
		case 'AfterEnd':
			if (obj.nextSibling) {obj.parentNode.insertBefore(parsedNode, obj.nextSibling);}
			else {obj.parentNode.appendChild(parsedNode);}
			break;
	}
}

function insertHTML(obj, where, htmlStr) {
	var range = obj.ownerDocument.createRange();
	range.setStartBefore(obj);
	var parsedHTML = range.createContextualFragment(htmlStr);
	insertElement(obj, where, parsedHTML);
}

function insertText(obj, where, txtStr) {
	var parsedText = document.createTextNode(txtStr);
	insertElement(obj, where, parsedText);
}

/*
if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {alert("here!!!");
	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, htmlStr) {
		var range = this.ownerDocument.createRange();
		range.setStartBefore(this);
		var parsedHTML = range.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where, parsedHTML);
	}

	HTMLElement.prototype.insertAdjacentText = function(where, txtStr) {
		var parsedText = document.createTextNode(txtStr);
		this.insertAdjacentElement(where, parsedText);
	}
}
*/
