/* 
 * js-zlib.js
 * 
 * @title: Zappos Javascript Library
 * @desc: These are commonly used Javascript functions. It includes useful functions without a full framework.
 */

/*
 * @use: getElementsByClassName(document, '*', 'do-something') => returns a list of all elements with the class of 'do-something'
 */
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

/* Remove any IE flicker */
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

/* --- End Browser OnDomReady Config --- */
function init() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    if (_timer) clearInterval(_timer);

		onDomReady(); //define this function in your application instead of window.onload()
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}


/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            init(); // call the onload handler
        }
    }, 10);
}

/* for other browsers */
window.onload = init;
/* --- End Browser OnReady Config --- */