var hasRun;
function fncEmulation (){
				if (!hasRun){
					//Browsing detection
					var d, dom, ie, ie4, ie5x, moz, mac, win, lin, old, ie5mac, ie5xwin, op;
					d = document;
					n = navigator;
					na = n.appVersion;
					nua = n.userAgent;
					win = ( na.indexOf( 'Win' ) != -1 );
					mac = ( na.indexOf( 'Mac' ) != -1 );
					lin = ( na.indexOf( 'Linux' ) != -1 );
					
					if ( !d.layers ){
						dom = ( d.getElementById );
						op = ( nua.indexOf( 'Opera' ) != -1 );
						konq = ( nua.indexOf( 'Konqueror' ) != -1 );
						saf = ( nua.indexOf( 'Safari' ) != -1 );
						moz = ( nua.indexOf( 'Gecko' ) != -1 );// will be true for safari as well
						ie = ( d.all && !op );
						ie4 = ( ie && !dom );
					
						/*
						ie5x tests only for functionality. ( dom||ie5x ) would be default settings. 
						Opera will register true in this test if set to identify as IE 5
						*/
						ie5x = ( d.all && dom );
						ie5mac = ( mac && ie5x );
						ie5xwin = ( win && ie5x );
					}
					//End Browsing detection
					
					if (moz||saf||konq||op){
						EmulateElements();
					}
					hasRun = true;
				}
				return null;
			}
			
			function EmulateElements() {
				
				// document.all
				var allGetter = function () {
				   var a = this.getElementsByTagName("*");
				   var node = this;
				   a.tags = function (sTagName) {
				  return node.getElementsByTagName(sTagName);
				   };
				   return a;
				};
				HTMLDocument.prototype.__defineGetter__("all", allGetter);
				HTMLElement.prototype.__defineGetter__("all", allGetter);
			
				// parentElement
				HTMLElement.prototype.__defineGetter__("parentElement", function () {
				   if (this.parentNode == this.ownerDocument) return null;
				   return this.parentNode;
				});
			
				// outerHTML
				HTMLElement.prototype.__defineGetter__("outerHTML", function () {
				   var attrs = this.attributes;
				   var str = "<" + this.tagName;
				   for (var i = 0; i < attrs.length; i++)
				  str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";
				
				   if (_emptyTags[this.tagName])
				  return str + ">";
				
				   return str + ">" + this.innerHTML + "</" + this.tagName + ">";
				});
			
				HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {
				   var r = this.ownerDocument.createRange();
				   r.setStartBefore(this);
				   var df = r.createContextualFragment(sHTML);
				   this.parentNode.replaceChild(df, this);
				});
			
				
				//----------- outerText
				HTMLElement.prototype.__defineSetter__("outerText", function (sText) {
				   this.outerHTML = sText.replace(/\&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
				});
			
				// insertAdjacentHTML
				HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) {
				   var df;   // : DocumentFragment
				   var r = this.ownerDocument.createRange();
				   
				   switch (String(sWhere).toLowerCase()) {  // convert to string and unify case
				  case "beforebegin":
					 r.setStartBefore(this);
					 df = r.createContextualFragment(sHTML);
					 this.parentNode.insertBefore(df, this);
					 break;
					 
				  case "afterbegin":
					 r.selectNodeContents(this);
					 r.collapse(true);
					 df = r.createContextualFragment(sHTML);
					 this.insertBefore(df, this.firstChild);
					 break;
					 
				  case "beforeend":
					 r.selectNodeContents(this);
					 r.collapse(false);
					 df = r.createContextualFragment(sHTML);
					 this.appendChild(df);
					 break;
					 
				  case "afterend":
					 r.setStartAfter(this);
					 df = r.createContextualFragment(sHTML);
					 this.parentNode.insertBefore(df, this.nextSibling);
					 break;
				   }   
				};
			}
			
			
			
			fncEmulation ();
			
		function reDoPage(init) { 
				if (init==true) with (navigator) {
					if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
					document.pgW=innerWidth; document.pgH=innerHeight; onresize=reDoPage; }
				}
				else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();
			}
			reDoPage(true);	


// ---------------------------------------------------------------------------------------------------------//
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0

  var i,p,v,obj, args = MM_showHideLayers.arguments;
  
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { 
  	
  	v=args[i+2];
    
    if (obj.style) { 
    	obj = obj.style; 
    	v = (v == 'show') ? 'visible': ( v == 'hide') ? 'hidden' : v; 
    }
    
    obj.visibility=v;
    
   }
}


/*
FUNCION MoveMenues
Calcula la posicion de los menues para que cambie cuando se hace un resize de la ventana, para esto poner esta linea en el BODY de la pagina:

	onresize="MoveMenues()"

Y ovbiamente incluir este archivo!
*/
function MoveMenu(){
	//Obtengo el largo actual de la ventana
		var w_newWidth;	//,w_newHeight;
		var w_newTop;
		
		//Largo maximo de la ventana
		var w_maxWidth=3000;	//, w_maxHeight=1200;
		
		//Ancho preprogramado en el disenio
		//var oMaintable = document.getElementById('maintable');
		//var w_designWidth = oMaintable.width;
		
		var w_designWidth =950;
		
		w_newTop = 88;
		
		//var winW = 950;
		
		if (parseInt(navigator.appVersion)>3) {
			if (navigator.appName=="Netscape") {
				w_newWidth = window.innerWidth;
			}
			if (navigator.appName.indexOf("Microsoft")!=-1) {
				w_newWidth = document.body.offsetWidth;
				w_newTop = 95;
			}
		}
		
				
		//alert(window.width);
		/*
		if (navigator.appName.indexOf("Microsoft") != -1)
		{
			w_newWidth=document.body.clientWidth;
			//w_newHeight=document.body.clientHeight;
		}else{
			var netscapeScrollWidth=3;
			w_newWidth=window.innerWidth-netscapeScrollWidth;
			//w_newHeight=window.innerHeight-netscapeScrollWidth;
		}
		*/
		var varoffset;
		//alert("Window w_newWidth = " + w_newWidth + " w_maxWidth = " + w_maxWidth);
		
		
		
		
				/*
		trace('Top:' + oSub.style.top);
		trace('Left:' + oSub.style.left);
		trace('Width:' + oSub.style.width);
		trace('Height:' + oSub.style.height);
		*/
		
		//si la ventana es mas chica que el disenio
		/*
		if (w_newWidth < w_designWidth){
			trace("mas chica");
			if (parseInt(navigator.appVersion)>3) {
				
				if (navigator.appName=="Netscape") {
					//alert('netscape');
					varoffset = 8;
				}
				
				if (navigator.appName.indexOf("Microsoft")!=-1) {
					varoffset = 8;
				}
				
				if (navigator.userAgent.indexOf("Firefox") != -1) {
					varoffset = 8;
				}
	
			}
			
		//si la ventana es ma grande que el disenio
		}else if (w_newWidth >= w_designWidth) {
			trace('mas grande');
			varoffset = (w_newWidth + 1 - w_designWidth) / 2;
			
			if (navigator.userAgent.indexOf("Firefox") != -1) {
				varoffset = (w_newWidth - w_designWidth) / 2;
			}
		
		}
		*/
		//alert("Window w_newWidth = " + w_newWidth + " w_maxWidth = " +  w_maxWidth);
		//alert("offset = " + varoffset);
	   //if (w_newHeight>w_maxHeight)
	   ///w_newHeight=w_maxHeight;
	   
	//Calcula el offset

	//Aplica el offset a cada DIV que es un menu
	var oSub = document.getElementById('sub1');
	var pos1 = findPos(oSub);
	
	var oSub = document.getElementById('sub2');
	var pos2 = findPos(oSub);
	
	var oSub = document.getElementById('sub3');
	var pos3 = findPos(oSub);
	
	var oSub = document.getElementById('sub4');
	var pos4 = findPos(oSub);
	
	var oSub = document.getElementById('sub5');
	var pos5 = findPos(oSub);
	
	var oSub = document.getElementById('sub6');
	var pos6 = findPos(oSub);
		

	var obj1 = document.getElementById("menu1");
	var obj2 = document.getElementById("menu2");
	var obj3 = document.getElementById("menu3");
	var obj4 = document.getElementById("menu4");
	var obj5 = document.getElementById("menu5");
	var obj6 = document.getElementById("menu6");
	
	var divhide = document.getElementById("divhide");
	
	divhide.style.left = String(Number(pos1[0] - 200) + "px");
	//alert(divhide.style.left);
	
	obj1.style.left = pos1[0] + "px"; //(257 + varoffset)
	obj2.style.left = String(Number(pos2[0] - 1) + "px"); //(401 + varoffset) + "px";
	obj3.style.left = String(Number(pos3[0] - 1) + "px"); //(508 + varoffset) + "px";
	obj4.style.left = String(Number(pos4[0] - 1) + "px"); //(585 + varoffset) + "px";
	obj5.style.left = String(Number(pos5[0] - 1) + "px"); //(679 + varoffset) + "px";
	obj6.style.left = String(Number(pos6[0] - 1) + "px"); //(795 + varoffset) + "px";
	
	
	obj1.style.top = w_newTop + "px";
	obj2.style.top = w_newTop + "px"; 
	obj3.style.top = w_newTop + "px"; 
	obj4.style.top = w_newTop + "px"; 
	obj5.style.top = w_newTop + "px"; 
	obj6.style.top = w_newTop + "px"; 
	
	/*
	if (navigator.appName.indexOf("Netscape") != -1) {
		
		obj1.style.left = (255 + varoffset) + "px";
		obj2.style.left = (398 + varoffset) + "px";
		obj3.style.left = (506 + varoffset) + "px";
		obj4.style.left = (582 + varoffset) + "px";
		obj5.style.left = (678 + varoffset) + "px";
		obj6.style.left = (795 + varoffset) + "px";
	
	}*/
	
	//if (navigator.userAgent.indexOf("Firefox") != -1) {
		/*if(navigator.appVersion.indexOf("Mac") != -1){
			obj1.style.left = (256 + varoffset) + "px";
			obj2.style.left = (399 + varoffset) + "px";
			obj3.style.left = (507 + varoffset) + "px";
			obj4.style.left = (583 + varoffset) + "px";
			obj5.style.left = (679 + varoffset) + "px";
			obj6.style.left = (796 + varoffset) + "px";
		
		}else{*/
		/*	obj1.style.left = (254 + varoffset) + "px";
			obj2.style.left = (398 + varoffset) + "px";
			obj3.style.left = (505 + varoffset) + "px";
			obj4.style.left = (582 + varoffset) + "px";
			obj5.style.left = (676 + varoffset) + "px";
			obj6.style.left = (792 + varoffset) + "px";
		*/
		//}
		
	//}
	
	//alert(navigator.appName + " " +navigator.appVersion);
	
	
	/*
	document.all.close1.style.left = varoffset + "px";
	
	
	document.all.sub2.style.left = (<%=sub2Left%> + varoffset) + "px";
	document.all.close2.style.left = varoffset + "px";
	
	document.all.sub3.style.left = (<%=sub3Left%> + varoffset) + "px";
	document.all.close3.style.left = varoffset + "px";
	
	document.all.sub4.style.left = (<%=sub4Left%> + varoffset) + "px";
	document.all.close4.style.left = varoffset + "px";
	
	document.all.sub5.style.left = (<%=sub5Left%> + varoffset) + "px";
	document.all.close5.style.left = varoffset + "px";
	
	document.all.sub8.style.left = (<%=sub8Left%> + varoffset) + "px";
	document.all.close8.style.left = varoffset + "px";
	*/
	
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function changeClass(id, css){
	var obj = document.getElementById(id);
	obj.className = css;
}
function trace(str){
	var oDebug = document.getElementById('debug');
	oDebug.innerHTML = "<hr>" + str + oDebug.innerHTML;
}