
var xbImage_cache = new Object();

function xbImageCache_Get(src) {
	return xbImage_cache[src];
}

function xbImageCache_Add(src) {
	if(!xbImageCache_Get(src)) {
		xbImage_cache[src] = new Image();
		xbImage_cache[src].src = src;
        xbImage_cache[xbImage_cache[src].src]=xbImage_cache[src];

		// alert('src='+src+"\nimage.src="+xbImage_cache[src].src); -- они РАЗНЫЕ!!
	}
//	return xbImage_cache[src];
}

function xbImageCache_GetList() {
	var t="";
	var i=0;
	for(i in xbImage_cache) {
		t+=""+i+"\n";
	}
	return t;
}

xbImage.prototype.onAbort = function(event) {
	alert("onAbort");
}

xbImage.prototype.onError = function(event) {
	alert("xbImage.onError\n"+
	       "\tURL='"+this.parent.getSrc()+"'\n"+
	       "\tname='"+this.parent.name+"'");
}

xbImage.prototype.onKeyDown = function(event) {
	alert("onKeyDown");
}


xbImage.prototype.onKeyPress = function(event) {
	alert("onKeyPress");
}

xbImage.prototype.onKeyUp = function(event) {
	alert("onKeyUp");
}


xbImage.prototype.onLoad = function(event) {
	var _object=this.parent; // это работает !!!!
	window.status="onLoad '"+_object.name+"'\n"+"url :'"+_object.obj.src+"'";

/*    if(_object.obj.src.indexOf("check_on.gif")!=-1)
    	_object.obj.src="pics/check_off.gif";
    else if (_object.obj.src.indexOf("check_off.gif")!=-1)
    	_object.obj.src="pics/check_on.gif";
*/
}

xbImage.prototype.setSrc = function(src) {
	for(i=0;i < _images.length ; ++i) {
		if(true && (_images[i].SRC==src)) {
			this.obj=_images[i];
//			alert("found '"+src+"' on "+i);
			break;
		}
	}
	if(i==_images.length) {
		this.obj.src = src;
		_images[i]=this.obj;
		_images[i].SRC=src;
/*		alert("add '"+src+"' on "+i+"\n'"+
		      _images[i].src+"'\n"+
		      "subst='"+_images[i].src.substr(-1*src.length)+"'\n"+
		      "src.length="+src.length);
*/
	}
}

xbImage.prototype.onMouseMove = function(e) {
	alert("onMouseMove");
}

xbImage.prototype.setRollOver = function(overimage_src) {
	this.rollover = new xbImage();
    this.rollover.setSrc(overimage_src);
}

function xbImage_viewOut(_xbImage) {
	var im;
//	window.status=window.status+" xbImage_viewOut("+_xbImage.rollover_name+") ";
	if(_xbImage.image) im=_xbImage.image;
	im=dfind("xbImage_image_"+_xbImage.name);
	if(im) {
		im.src=_xbImage.obj.src;
		_xbImage.image=im;
	}
}

function xbImage_viewOver(_xbImage) {
	var im;
//	window.status=window.status+" xbImage_viewOver("+_xbImage.rollover_name+")";
	if(_xbImage.image) im=_xbImage.image;
	im=dfind("xbImage_image_"+_xbImage.name);
	if(im) {
		im.src=_xbImage.rollover.obj.src;
		_xbImage.image=im;
	}
}

xbImage.prototype.createDst = function(obj_name) {
    if(obj_name) {
    	var o=dfind(obj_name);
        if(o) {
        	var html="";
			this.rollover_name=obj_name;
			this.rollover_obj=0;
        	html=html+"<span "+
		                "onMouseOut =\"javascript:xbImage_viewOut(window['"+this.name+"']);\" "+
        	            "onMouseOver=\"javascript:xbImage_viewOver(window['"+this.name+"']);\" "+
		                ">";
		    html=html+"<img id=xbImage_image_"+this.name+" src='"+this.obj.src+"'>";
			html=html+"<"+"/span>";
			o.innerHTML=html; // outer тоже работает - токо пропадают все стили и т.д.
		}
    } else alert("can't find.1 '"+obj_name+"'");
}

xbImage.prototype.setSrcImage = function(image) {
	if(!image || (image.src=="undefined")) alert("can't SetSrcImage");
	this.docImage=image;
}

xbImage.prototype.viewImage = function(i) {
//	window.status="ViewImage("+i+")";
	if(this.docImage && (i < this.images.length)) {
		this.docImage.src = this.images[i].getSrc();
//		window.status="xbImage.viewImage("+i+")='"+this.images[i].getSrc()+"'";
	}
}

xbImage._name=0;
_images=new Array();

xbImage.prototype.AddImage = function(src) {
	var i=this.images.length;
	this.images[i]=new xbImage();
	this.images[i].setSrc(src);
//	window.status=this.images[i].getSrc();
	return this.images[i];
}

xbImage.prototype.getSrc = function() {
	return this.obj.src;
}

function xbImage() {
	this.name="xbImage"+(++xbImage._name);
    this.obj = new Image(); //arguments
    if(arguments.length) alert("calling with arguments");
	this.obj.onabort=xbImage.prototype.onAbort;
    this.obj.onerror=xbImage.prototype.onError;
    this.obj.onkeydown=xbImage.prototype.onKeyDown;
    this.obj.onkeypress=xbImage.prototype.onKeyPress;
    this.obj.onkeyup=xbImage.prototype.onKeyUp;
    this.obj.onload=xbImage.prototype.onLoad;
    this.obj.parent=this; // вот и сделали связь с xbImage !!!!
    this.images = new Array();
    window[this.name]=this;
}

// xbImage.prototype = new Image()