function tqImagePreloader(images, callback) {
   this.callback = callback;

   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;

   this.nImages = images.length;

   for ( var i = 0; i < images.length; i++ ) {
      this.preload(images[i]);
   }

}

tqImagePreloader.prototype.preload = function(image) {
   var oImage = new Image;
   this.aImages.push(oImage);

   oImage.onload = tqImagePreloader.prototype.onload;
   oImage.onerror = tqImagePreloader.prototype.onerror;
   oImage.onabort = tqImagePreloader.prototype.onabort;
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;
   oImage.src = image;
}

tqImagePreloader.prototype.onComplete = function() {
   this.nProcessed++;
   if ( this.nProcessed == this.nImages ) {
      this.callback(this.aImages, this.nLoaded);
   }
}

tqImagePreloader.prototype.onload = function() {
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
}

tqImagePreloader.prototype.onerror = function() {
   this.bError = true;
   this.oImagePreloader.onComplete();
}

tqImagePreloader.prototype.onabort = function() {
   this.bAbort = true;
   this.oImagePreloader.onComplete();
}

function tqOpenPopup(url,title) {
	var tqPopup = window.open( url, title, "width=450,height=700,resizable=yes,scrollbars=yes,toolbar=no,screenX=100,screenY=100" );
	tqPopup.focus();
}


function tqOpenInline(url) {
	var container		= top.document.getElementById( "t3ContentScrollWrapper" );

	var inlineFrame	= top.document.getElementById("tqInlineFrame");
	if( inlineFrame ) {
		container.removeChild(inlineFrame);
	}

	var inlineFrame	= top.document.createElement("iframe");
	inlineFrame.setAttribute( "id", "tqInlineFrame" );
	inlineFrame.setAttribute( "name", "tqInlineFrame" );
	inlineFrame.setAttribute( "src", url );
	inlineFrame.setAttribute( "frameBorder", "0" );

	container.appendChild( inlineFrame );

	// show container
	container.style.visibility	= "visible";
	container.style.display		= "block";

	inlineFrame.style.width		= 450+"px";
	inlineFrame.style.height	= 700+"px";
}
