//Version 2 de las librerias estaticas (soporta 3 niveles de anidamientos de capas)
function verifyCompatibleBrowser() {
	this.ver=navigator.appVersion 
	this.dom=document.getElementById?1:0 
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE")>-1 && this.dom)?1:0; 
	this.ie4=(document.all && !this.dom)?1:0; 
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0; 
	this.bw=(this.ie5 || this.ie6 || this.ie4 || this.ns4 || this.ns5) 
	return this 
} 

function ConstructObject(obj,nest,nest2){ 
	
	sufijo = "Object";
	// Comprobamos si existe una instancia para este objeto HTML.
	if (eval("typeof " + obj + sufijo) != 'undefined') return eval(obj + sufijo);

	bw = new verifyCompatibleBrowser() 
	nest=(!nest) ? '':'document.layers["'+nest+'"].';
	nest=(!nest2) ? nest:'document.layers["'+nest2+'"].'+nest;
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.layers["'+obj+'"]'):0;
	this.css=bw.dom?this.el.style:bw.ie4?this.el.style:bw.ns4?this.el:0;
	this.h=bw.ns4?this.css.document.height:this.el.offsetHeight;
	this.w=bw.ns4?this.css.document.width:this.el.offsetWidth;
	this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight;
	this.clipWidth=bw.ns4?this.css.clip.width:this.el.offsetWidth;
	this.x=parseInt(this.css.left);
	this.y=parseInt(this.css.top);
	
	this.stopped=true;
	this.pathX=[];
	this.pathY=[];
		
	this.obj = obj + sufijo;
	eval(this.obj + "=this");
	
	return this
}
	
ConstructObject.prototype.moveTo = function(x,y) {
	if (x!=null) {this.x=x; this.css.left=(bw.dom)?this.x+"px":this.x};
	if (y!=null) {this.y=y; this.css.top=(bw.dom)?this.y+"px":this.y};
} 

ConstructObject.prototype.show = function() {
	this.css.visibility=(bw.ns4)?'show':'visible';
}	 
ConstructObject.prototype.hide = function() {
	this.css.visibility=(bw.ns4)?'hide':'hidden';
} 

ConstructObject.prototype.writeHTML = function(html) {
	if (document.layers){
		this.el.document.open();
		this.el.document.write(html);
		this.el.document.close();
	} else {
		this.el.innerHTML=html;	
	}
}

ConstructObject.prototype.setClip = function(t,r,b,l){
		this.clipTop=t;
		this.clipRight=r;
		this.clipBottom=b;
		this.clipLeft=l;
	if (document.layers) {
		this.css.clip.left= l;	
		this.css.clip.top = t;
		this.css.clip.width = (r-l);
		this.css.clip.height= (b-t);		
	}else{
		eval(this.obj+'.css.clip = "rect('+t+'px '+r+'px '+b+'px '+l+'px)"');
	}
}

ConstructObject.prototype.slideTo = function(x,y,numPasos,ms,onSlideEnd){
	this.setPath(x,y,numPasos);
	this.startSlideTo(ms,onSlideEnd);
}
ConstructObject.prototype.setPath = function(x,y,numPasos){
	var incX=((x-this.x)/numPasos);
	var incY=((y-this.y)/numPasos);
	this.pathY.length=this.pathX.length=numPasos+1
	this.pathX[numPasos]=this.x
	this.pathY[numPasos]=this.y
	for (var i=numPasos-1;i>0;i--) {this.pathX[i]=parseInt(x-(incX*i));this.pathY[i]=parseInt(y-(incY*i))}
	this.pathX[0]=x;this.pathY[0]=y;
}

ConstructObject.prototype.startSlideTo = function(ms,onSlideEnd){
	this.stopped = false;
	this.run(ms,onSlideEnd);	
}

ConstructObject.prototype.run = function(ms,onSlideEnd){
	if (this.pathX.length<=0){
		if (onSlideEnd) eval(onSlideEnd);
	}else{
		this.moveTo(this.pathX[this.pathX.length-1],this.pathY[this.pathY.length-1]);
		this.pathX.length--;this.pathY.length--;
		setTimeout(this.obj+".run("+ms+",\'"+onSlideEnd+"\')",ms);
	}
}


