function HGRoll (rname, path, base, ext, norm, over, down)
{
	this.rname=rname;
	this.base=base;
	this.path=path;
	this.ext=ext;
	this.norm=norm;
	this.over=over;
	this.down=down;
	this.elem=document.getElementById(rname);
	this.iNorm = new Image();
	this.iNorm.src = this.path + this.base + this.norm + this.ext;
	this.iOver = new Image();
	this.iOver.src = this.path + this.base + this.over + this.ext;
	this.iDown = new Image();
	this.iDown.src = this.path + this.base + this.down + this.ext;
//	this.setNormal = function() {  this.elem.src = this.iNorm.src;  return false; };

 //   this.setOver=function() {this.elem.src=this.iOver.src;	return true; };
  //  this.setDown=function(){ this.elem.src=this.iDown.src;	return false;};
	//alert(this.elem.src);
}

function showAllOf(p){
	var s = "";
	for (var i in p){
		s += i + "= " + p[i] + "\n";
	}
	alert(s);
}

HGRoll.prototype.setNormal = function() {  this.elem.src = this.iNorm.src;  return false; }

HGRoll.prototype.setOver=function() {this.elem.src=this.iOver.src;	return true; }

HGRoll.prototype.setDown=function(){	this.elem.src=this.iDown.src;return false;}

HGRoll.getPath = function (fullpath){
	var path = "";
	var end = fullpath.lastIndexOf("/");
	if (  end != -1){
		path = fullpath.slice(0, end+1);
	}
	return path;
}

HGRoll.getExt = function (fullpath){
	var path = "";
	var end = fullpath.lastIndexOf(".");
	if (  end != -1){
		path = fullpath.slice(end, fullpath.length);
	}
	return path;
}

function newHGRollStr(rname, base, norm, over, down)
{
 	var fullpath = document.getElementById(rname).src;
 	var path = HGRoll.getPath(fullpath);
 	var ext = HGRoll.getExt(fullpath);
 	
 	//alert("fullpath = " + fullpath +"\n path = " + path + "\n ext = " + ext);
	var r = new HGRoll(rname, path, base, ext, norm, over, down);
	r.elem.onmouseout = function() {return r.setNormal();};
	r.elem.onmouseover =  function() {return r.setOver();};
	r.elem.onmousedown =  function() {return r.setDown();};
	r.elem.onmouseup = function() {return r.setNormal();};
	return r; 
}

function HGRSet(prefId, prefSrc, norm, over, down){
	this.prefId=prefId;
	this.prefSrc=prefSrc;
	this.norm=norm;
	this.over=over;
	this.down=down;
	this.elems = new Array();
}

HGRSet.prototype.ins = function(base, area){
	var rname = 	this.prefId+base;
	var fullpath = document.getElementById(rname).src;
	var a=document.getElementById(area);
	var path = HGRoll.getPath(fullpath);
	var ext = HGRoll.getExt(fullpath);
	var r  = new HGRoll(rname, path, this.prefSrc+base, ext, this.norm, this.over, this.down);
	a.onmouseout = function() {return r.setNormal();};
	a.onmouseover =  function() {return r.setOver();};
	a.onmousedown =  function() {return 	r.setDown();};
	a.onmouseup = function() {return r.setOver();};
	this.elems[base] = r;
	
	return r;
};

function hgEvLink(e1, e2){
	var el1=document.getElementById(e1);
	var el2=document.getElementById(e2);
	
	var p = new Object();
	p.e1 = new Object();
	p.e2 = new Object();
	
	p.e1.onmouseout  = el1.onmouseout;
	p.e1.onmousedown = el1.onmousedown;
	p.e1.onmouseup = el1.onmouseup;
	p.e1.onmouseover = el1.onmouseover;
	
	p.e2.onmouseout = el2.onmouseout;
	p.e2.onmousedown = el2.onmousedown;
	p.e2.onmouseup = el2.onmouseup;
	p.e2.onmouseover = el2.onmouseover;
	
//	alert("el1:\n" + el1.onmouseup);
//	alert("el2:\n" + el2.onmouseup);
//	alert("e1:\n" + p.e1.onmouseup);
//	alert("e2:\n" + p.e2.onmouseup);

	
	el1.onmouseout = function(){ p.e1.onmouseout();  	p.e2.onmouseout(); }; 
	el1.onmouseover = function(){	p.e1.onmouseover(); 	p.e2.onmouseover();  };
	el1.onmousedown = function(){p.e1.onmousedown(); 	p.e2.onmousedown(); }; 	
	el1.onmouseup = function(){ 	p.e1.onmouseup(); p.e2.onmouseup(); }; 	

	el2.onmouseout = function(){ p.e1.onmouseout();  	p.e2.onmouseout();  }; 
	el2.onmouseover = function(){ p.e1.onmouseover(); 	p.e2.onmouseover();  }; 	
	el2.onmousedown = function(){ p.e1.onmousedown();  p.e2.onmousedown();  }; 	
	el2.onmouseup = function(){ p.e1.onmouseup();   p.e2.onmouseup();  }; 	
	
//	alert("el1:\n" + el1.onmouseup);
//	alert("el2:\n" + el2.onmouseup);
 
//	alert("e1:\n" + p.e1.onmouseup);
//	alert("e2:\n" + p.e2.onmouseup);

}

