//-----------------------------------------------------------------------------------------------------
// Formally declare the ZeekImageCache namespace object.
//-----------------------------------------------------------------------------------------------------
if (typeof DIImageCache != "object") {
	DIImageCache = new Object(); 
}



DIImageCache.preloadImages = function(DIConstants) {
	try {
		if (DIConstants.baseHref===null || ""===DIConstants.baseHref) { throw -1; }
		if (!document.images) { throw -2; }
		
		var baseHrefLen = DIConstants.baseHref.length;
		var curHREF = document.URL;
		var lastIdx = (curHREF.lastIndexOf(DIConstants.baseHref))+baseHrefLen;
		var newBaseHREF = curHREF.substring(0,lastIdx);	
		
		var imageDir = newBaseHREF + "/_i/";
		
		//If we have already loaded the cache - do not do it again
		//NOTE: The use of the single equals sign in the !=null syntax is 
		//totally intentional!  Do NOT use !==null, since we do NOT want  
		//such a "deep equals" comparison.  If you set it up with !==null
		//it actually causes a browser error in ALL browsers!
		if (DIImageCache.imageCache!=null && 
			DIImageCache.imageCache.length>0) { 
			return; 
		}
		
		
		DIImageCache.imageCache = new Array();
		
		var pic1 = new Image(200,267); 
		pic1.name = "sunset";
		pic1.src = imageDir + "sunset.jpg";
		DIImageCache.imageCache.push(pic1);
		
		//var pic2 = new Image(294,507);
		//pic2.name = "preview";
		//pic2.src=imageDir + "preview.jpg"; 
		//DIImageCache.imageCache.push(pic2);
		
		
	} catch(errNbr) {
	 	switch(errNbr) {
			case -1: alert("(-1): DIImageCache.preloadImages():\n The baseHREF arg DNE."); break;
			case -2: alert("(-2): DIImageCache.preloadImages():\n Browser does NOT support image caching.  Must upgrade browser."); break;
			default: alert("(DfltErr): DIImageCache.preloadImages():\n " + errNbr); break;
		}
	}
};




DIImageCache.getImgAttr = function(imageName,attrName) {
	var returnAttr = null;
	try {
		if (imageName===null || ""===imageName) { throw -1; }
		
		var curImageObj = null;
		for (var n=0; n<DIImageCache.imageCache.length; n++) {
			curImageObj = DIImageCache.imageCache[n]; 
			switch(attrName) {
				case "name":
					if (curImageObj.name==imageName) { returnAttr=curImageObj.name; }
					break;
				case "width":
					if (curImageObj.name==imageName) { returnAttr=curImageObj.width; }
					break;
				case "height":
					if (curImageObj.name==imageName) { returnAttr=curImageObj.height; }
					break;
				case "complete":
					if (curImageObj.name==imageName) { returnAttr=curImageObj.complete; }
					break;
				case "src":
					if (curImageObj.name==imageName) { returnAttr=curImageObj.src; }
					break;
				default:
					break;
			}
		}
		
		return returnAttr;
	} catch(errNbr) {
	 	switch(errNbr) {
			case -1: alert("(-1): DIImageCache.getImg_width():\n The imageName arg DNE."); break;
			default: alert("(DfltErr): DIImageCache.getImg_width():\n " + errNbr); break;
		}
	}
};