
var registerFuncs = [];
function register ( func ) {
	registerFuncs[ registerFuncs.length ] = func;
}
function pageLoad () {
	for ( var i=0; i < registerFuncs.length; i++ )
		registerFuncs[ i ]();
}

function set ( name, value ) {
	document.cookie = name + "=" + escape( value ) + "; expires=Thu, 01-Jan-2100 00:00:01 GMT; path=/";
}
function get ( name ) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf( "; " + prefix );
	if ( begin == -1 ) {
		begin = dc.indexOf( prefix );
		if ( begin != 0 ) return "";
	} else
		begin += 2;
	var end = document.cookie.indexOf( ";", begin );
	if ( end == -1 ) end = dc.length;
	return unescape( dc.substring(begin + prefix.length, end) );
}

function trim ( text ) {
	if ( !text ) return "";
	text = text + "";
	while ( text.substring(0, 1) == " " ) 
		text = text.substring( 1, text.length );
	while ( text.substring(text.length - 1, text.length) == " " )
		text = text.substring( 0, text.length - 1 );
	return text;
} 

function formatPrice ( price ) {
	if ( price == null ) price = 0;
	price = price + "";

	var after;
	var decimalIndex = price.indexOf( "." );
	if ( decimalIndex != -1 ) {
		after = price.slice( decimalIndex, decimalIndex + 3 );
		if ( after.length == 2 )
			after += "0";
		else if ( after.length == 1 )
			after += "00";
	} else
		after = ".00";

	price = parseInt( price );
	if ( isNaN(price) ) price = 0;
	return "$" + price + after;
}

function rand ( from, to ) {
	return parseInt( Math.random() * (to - from) + from );
}

function registerListing ( id, func, attribute ) {
	var table = document.getElementById( id );
	table.onmouseover = function () {
		var row = getListingRow();
		if ( row ) row.className = "resultHighlightedRow";
	};
	table.onmouseout = function () {
		var row = getListingRow();
		if ( row ) row.className = "";
	};
	table.onclick = function () {
		var row = getListingRow();
		if ( row && row.attributes.getNamedItem(attribute) ) func( row.attributes.getNamedItem(attribute).value, row );
	};
}
function getListingRow () {
	var cell = window.event.srcElement;
	while ( cell && cell.cellIndex == null )
		cell = cell.parentNode;
	if ( !cell ) return;
	if ( cell.attributes.getNamedItem("noSelect") ) return null;
	var row = cell.parentElement;
	return row.rowIndex > 0 ? row : null;
}
function checkAll ( id, bool ) {
	var rows = document.getElementById( id ).rows;
	for ( var i=1; i < rows.length; i++ )
		rows[ i ].cells[ 0 ].children [ 0 ].checked = bool;
}

var ourPriceWindow = null;
function ourPrice ( itemID, optionID ) {
	var url = "/ourPrice.php?itemID=" + itemID;
	if ( optionID ) url += "&optionID=" + optionID;
	ourPriceWindow = window.open( url, "ourPrice", "left=480,top=434,width=320,height=160,toolbar=0,menubar=0,statusbar=0" );
}

if ( !document.all ) { Event.prototype.__defineSetter__("returnValue",function ( b ) {if ( !b ) this.preventDefault();});Event.prototype.__defineSetter__("cancelBubble",function ( b ) {if ( b ) this.stopPropagation();});Event.prototype.__defineGetter__("srcElement",function () {var node = this.target;while ( node.nodeType != 1 )node = node.parentNode;return node;});Event.prototype.__defineGetter__("fromElement",function () {var node;if ( this.type == "mouseover" )node = this.relatedTarget;else if ( this.type == "mouseout" )node = this.target;if ( !node ) return;while ( node.nodeType != 1 )node = node.parentNode;return node;});Event.prototype.__defineGetter__("toElement",function () {var node;if (this.type == "mouseout")node = this.relatedTarget;else if (this.type == "mouseover")node = this.target;if (!node) return;while (node.nodeType != 1) node = node.parentNode;return node;});Event.prototype.__defineGetter__("offsetX",function () {return this.layerX;});Event.prototype.__defineGetter__("offsetY",function () {return this.layerY;});HTMLDocument.prototype.attachEvent = HTMLElement.prototype.attachEvent = function ( sType, fHandler ) {var shortTypeName = sType.replace( /on/, "" );fHandler._ieEmuEventHandler = function ( e ) {window.event = e;return fHandler();};this.addEventListener( shortTypeName, fHandler._ieEmuEventHandler, false );};HTMLDocument.prototype.detachEvent = HTMLElement.prototype.detachEvent = function ( sType, fHandler ) {var shortTypeName = sType.replace( /on/, "" );if ( typeof(fHandler._ieEmuEventHandler) == "function" )this.removeEventListener( shortTypeName, fHandler._ieEmuEventHandler, false );elsethis.removeEventListener( shortTypeName, fHandler, true );};var _eventNames = [ "click", "dblclick", "mouseover", "mouseout", "mousedown", "mouseup", "mousemove", "keydown", "keypress", "keyup" ];for (var i = 0; i < _eventNames.length; i++) {document.addEventListener(_eventNames[i],function ( e ) { window.event = e; },true);}HTMLElement.prototype.__defineGetter__("parentElement",function () {if ( this.parentNode == this.ownerDocument ) return null;return this.parentNode;});HTMLElement.prototype.__defineGetter__("children",function () {var tmp = [];var j = 0;var n;for ( var i = 0; i < this.childNodes.length; i++ ) {n = this.childNodes[ i ];if ( n.nodeType == 1 ) {tmp[ j++ ] = n;if ( n.name ) {if ( !tmp[n.name] )tmp[n.name] = [];tmp[ n.name ][ tmp[n.name].length ] = n;}if ( n.id ) tmp[ n.id ] = n;}}return tmp;});HTMLElement.prototype.contains = function ( oEl ) {if ( oEl == this ) return true;if ( oEl == null ) return false;return this.contains( oEl.parentNode );};HTMLElement.prototype.insertAdjacentHTML = function ( sWhere, sHTML ) {var df;var r = this.ownerDocument.createRange();switch ( String(sWhere).toLowerCase() ) {case "beforebegin":r.setStartBefore( this );df = r.createContextualFragment( sHTML );this.parentNode.insertBefore( df, this );break;case "afterbegin":r.selectNodeContents( this );r.collapse( true );df = r.createContextualFragment( sHTML );this.insertBefore( df, this.firstChild );break;case "beforeend":r.selectNodeContents( this );r.collapse( false );df = r.createContextualFragment( sHTML );this.appendChild( df );break;case "afterend":r.setStartAfter( this );df = r.createContextualFragment( sHTML );this.parentNode.insertBefore( df, this.nextSibling );break;}};HTMLElement.prototype.__defineGetter__("canHaveChildren",function () {switch (this.tagName) {case "AREA":case "BASE":case "BASEFONT":case "COL":case "FRAME":case "HR":case "IMG":case "BR":case "INPUT":case "ISINDEX":case "LINK":case "META":case "PARAM":return false;}return true;});HTMLElement.prototype.__defineSetter__("outerHTML",function ( sHTML ) {var r = this.ownerDocument.createRange();r.setStartBefore( this );var df = r.createContextualFragment( sHTML );this.parentNode.replaceChild( df, this );return sHTML;});HTMLElement.prototype.__defineGetter__("outerHTML",function () {var attr;var attrs = this.attributes;var str = "<" + this.tagName;for ( var i = 0; i < attrs.length; i++ ) {attr = attrs[ i ];if ( attr.specified )str += " " + attr.name + '="' + attr.value + '"';}if ( !this.canHaveChildren ) return str + ">";return str + ">" + this.innerHTML + "</" + this.tagName + ">";});HTMLElement.prototype.__defineSetter__("innerText",function ( sText ) {this.innerHTML = SP.util.textToHTML( sText );return sText;});HTMLElement.prototype.__defineGetter__("innerText",function () {var r = this.ownerDocument.createRange();r.selectNodeContents( this );return r.toString();});HTMLElement.prototype.__defineSetter__("outerText",function ( sText ) {this.outerHTML = SP.util.textToHTML( sText );return sText;});HTMLElement.prototype.__defineGetter__("outerText",function () {var r = this.ownerDocument.createRange();r.selectNodeContents( this );return r.toString();});HTMLElement.prototype.insertAdjacentText = function ( sWhere, sText ) {this.insertAdjacentHTML( sWhere, SP.util.textToHTML(sText) );};Node.prototype.removeNode = function ( bRemoveChildren ) {var parent = this.parentNode;if ( parent && !bRemoveChildren ) {var df = document.createDocumentFragment();for( var i=0; i < this.childNodes.length; i++ )df.appendChild( this.childNodes[i] );parent.insertBefore( df, this )}return parent ? parent.removeChild( this ) : this;} }
