// Temporary Storage Arrays
var thumbs = new Array();

// Save last loaded href to prevent reloading unecessarily
var lastHref = "";

// Target Element to load images
var targetElement = "";

// Matrix user defined design code for loading image pages
var user_defined_design = "blank";

// Add event
function addEvent(obj, evType, fn) { 
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false); 
   		return true;
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
   		return false; 
 	} // End if
}// End addEvent

// Get xmlhttprequest
function getRequest() {
	// Try and create an XMLHttpRequest object to load data file
	try {
		request = new XMLHttpRequest();
	} catch(e) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP")
		} catch(e) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				request = false;
			}// End try
		}// End try
	}// End try
	return request
}

var ImageListing = function() {

}// End ImageListing

var ImageThumbnail = function(divElem) {
	this.div = divElem;
	for (j = 0; j <= this.div.childNodes.length; j++ ) {
		if ( this.div.childNodes[j] && this.div.childNodes[j].nodeName.toLowerCase() == "a" ) {
			this.hyperlink = this.div.childNodes[j];
			this.hyperlink.onmouseover = function() {				
				if ( lastHref != this.href ) {
					targetElement.innerHTML = "Loading...";
					request = getRequest();
					request.open("GET",this.href + "?SQ_DESIGN_NAME=" + user_defined_design + "&rand=" + parseInt(Math.random()*999999999999),true);
					request.onreadystatechange=function() {
						if ( request.readyState == 4 ) {
							targetElement.innerHTML = request.responseText;
						}// End if
					}// End function
					request.send(null);
					lastHref = this.href;
				}
			}// End onmouseover
		}// End if
	}// End for
}// End ImageThumbnail

ImageListing.prototype = {

	bind: function(elemId,targetId) {
		this.listingParentElement = document.getElementById(elemId);
		if ( ! this.listingParentElement ) {
			alert("bind: Failed to bind to element id '" + elemid + "'");
			return false;
		}// End if
		
		targetElement = document.getElementById(targetId);
		if ( ! targetElement || targetElement == "" ) {
			alert("bind: Failed to bind to target element id '" + targetId + "'");
			return false
		}// End if
		
		this.parseItems();
	},// End bind
	
	parseItems: function() {
		var items = this.listingParentElement.childNodes
		for ( i = 0; i <= items.length; i ++ ) {
			node = items[i];
			if ( node && node.nodeName.toLowerCase() == "div" ) {
				thumbs.push(new ImageThumbnail(node));
			}
		}// End for
	}// End parseITems
}// End ImageListing.prototype