	//LAYERS
	var layerRef="null",layerStyleRef="null",styleSwitch="null";
	var currDrawerOpen="null";
	var w3c = document.getElementById;
	//var ns();
	var ie;
	var LAYERS="";
	var LAYERS_MENU="";
	var LAYERS_MENU_ACTIVO="";


	if(!w3c)
	{
		//ns() = (document.layers) ? true : false;
		ie = (document.all) ? true : false;
	}

	if (navigator.appName == "Netscape")
	{
		if(!document.layers)
		{
			layerStyleRef="layer.style.";
			layerRef="document.all";
			styleSwitch=".style";
		}
		else
		{
			layerStyleRef="layer.";
			layerRef="document.layers";
			styleSwitch="";
		}
	}
	else
	{
		layerStyleRef="layer.style.";
		layerRef="document.all";
		styleSwitch=".style";
	}
	function ns()
	{
		var x;
		if(!w3c)x=(document.layers) ? true : false;
		return x;
	}
	function explorer()
	{
		return (document.all) ? true : false;
	}
	function js_showLayer(layerName,top,left)
	{
		if(top)
			document.getElementById(layerName).style.top = top;

		if(left)
			document.getElementById(layerName).style.left = left;

		document.getElementById(layerName).style.visibility = "visible";
	}

	function js_hideLayer(layerName)
	{
		document.getElementById(layerName).style.visibility = "hidden";
	}

	function js_undeleteLayer(layerName, top, left)
	{
		document.getElementById(layerName).style.display = "";

		if(top)
			document.getElementById(layerName).style.top = top;

		if(left)
			document.getElementById(layerName).style.left = left;
	}

	function js_deleteLayer(layerName)
	{
		document.getElementById(layerName).style.display = "none";
	}

	function js_deleteLayers(layerString)
	{
		LAYERS_ARRAY = new Array();

		LAYERS_ARRAY = layerString.split(":")
		for(i = 0; i < LAYERS_ARRAY.length; i++)
		{
			if(LAYERS_ARRAY[i])
				js_deleteLayer(LAYERS_ARRAY[i]);
		}
	}

	function js_undeleteLayers(layerString)
	{
		LAYERS_ARRAY = new Array();

		LAYERS_ARRAY = layerString.split(":")
		for(i = 0; i < LAYERS_ARRAY.length; i++)
		{
			if(LAYERS_ARRAY[i] != "")
				js_undeleteLayer(LAYERS_ARRAY[i]);
		}
	}

	function js_checkDisplay(layerName)
	{
		if(document.getElementById(layerName).style.display == "none")
			return false;
		else
			return true;
	}

	function js_switchLayer(layerName, top, left)
	{
		if(document.getElementById(layerName).style.visibility == "hidden")
			if(top)
				js_showLayer(layerName, top, left);
			else
				js_showLayer(layerName);
		else
			js_hideLayer(layerName);
	}

	function js_switchLayerDelete(layerName, top, left)
	{
		if(!js_checkDisplay(layerName))
			if(top)
				js_undeleteLayer(layerName, top, left);
			else
				js_undeleteLayer(layerName);
		else
			js_deleteLayer(layerName);
	}

	function js_hideSub()
	{
		LAYERS_ARRAY = new Array();

		LAYERS_ARRAY = LAYERS.split(":")
		for(i = 0; i < LAYERS_ARRAY.length; i++)
		{
			if(LAYERS_ARRAY[i] != "")
				js_hideLayer(LAYERS_ARRAY[i]);
		}
	}

	function js_hideMenu()
	{
		LAYERS_ARRAY = new Array();

		LAYERS_ARRAY = LAYERS_MENU.split(":")
		for(i = 0; i < LAYERS_ARRAY.length; i++)
		{
			if(LAYERS_ARRAY[i] != "" && LAYERS_MENU_ACTIVO.search(LAYERS_ARRAY[i]) < 0)
				js_hideLayer(LAYERS_ARRAY[i]);
		}
	}

	function js_hideMenuAll()
	{
		LAYERS_ARRAY = new Array();

		LAYERS_ARRAY = LAYERS_MENU.split(":")
		for(i = 0; i < LAYERS_ARRAY.length; i++)
		{
			if(LAYERS_ARRAY[i] != "")
				js_hideLayer(LAYERS_ARRAY[i]);
		}
	}

	function js_menuActivo(BUSCAR, AGREGAR)
	{
		var BUSQUEDA = LAYERS_MENU_ACTIVO.search(BUSCAR);
		if(BUSQUEDA >= 0)
			LAYERS_MENU_ACTIVO = LAYERS_MENU_ACTIVO.substring(0, BUSQUEDA + BUSCAR.length) + AGREGAR
		else
			LAYERS_MENU_ACTIVO = AGREGAR
	}

	function js_getimgleft(img)
	{
		if(ie || w3c) {
			var x, obj;
			x = 0;
			obj = img;
			while (obj.offsetParent != null) {
				x += obj.offsetLeft;
				if(obj.parentNode.scrollLeft > 0)
					x -= obj.parentNode.scrollLeft;
				obj = obj.offsetParent;
			}
			x += obj.offsetLeft;
			return x;
		}
		if(w3c)
			return img.offsetLeft;
		if(ns())
			return img.x;
		return -1;
	}

	function js_getimgtop(img) {
		if(ie || w3c) {
			var y, obj;
			y = 0;
			obj = img;
			while (obj.offsetParent != null) {
				y += obj.offsetTop;
				if(obj.parentNode.scrollTop > 0)
					y -= obj.parentNode.scrollTop;
				obj = obj.offsetParent;
			}
			y += obj.offsetTop;
			return y;
		}

		if(w3c)
			return img.offsetTop;

		if(ns())
			return img.y;

		return -1;
	}

	var CURRENT_TOOLTIP;
	var TOOLTIP_OFFSET_X = 0;
	var TOOLTIP_OFFSET_Y = 0;
	function js_initToolTip()
	{
		if(ns()) document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = js_toolTipGetMouse;
	}

	function js_showToolTip(toolLayer, offset_x, offset_y)
	{
		if(offset_x)
			TOOLTIP_OFFSET_X = offset_x;
		else
			TOOLTIP_OFFSET_X = 0;

		if(offset_y)
			TOOLTIP_OFFSET_Y = offset_y;
		else
			TOOLTIP_OFFSET_Y = 0;

		var x = (ns()) ? e.pageX : event.x + document.body.scrollLeft;
		var y = (ns()) ? e.pageY : event.y + document.body.scrollTop;

		CURRENT_TOOLTIP = toolLayer;
		js_showLayer(toolLayer, y + 15 + TOOLTIP_OFFSET_Y, x + 15 + TOOLTIP_OFFSET_X);
	}

	function js_hideToolTip()
	{
		js_hideLayer(CURRENT_TOOLTIP);
		CURRENT_TOOLTIP = null;
	}

	function js_toolTipGetMouse(e){
		if(!explorer())
		{
			var x = (ns()) ? e.pageX : window.Event.x + document.body.scrollLeft;
			var y = (ns()) ? e.pageY : window.Event.y + document.body.scrollTop;
		}
		else
		{
			var x = (ns()) ? e.pageX : event.x + document.body.scrollLeft;
			var y = (ns()) ? e.pageY : event.y + document.body.scrollTop;
		}
		if(CURRENT_TOOLTIP != null)
			js_showLayer(CURRENT_TOOLTIP, y + 15 + TOOLTIP_OFFSET_Y, x + 15 + TOOLTIP_OFFSET_X);
	}

	//Funcion que devuelve la posicion del scroll vertical
	function js_get_scrollTop()
	{
		if(ns())
			return window.pageYOffset;
		else
			return document.body.scrollTop;
	}

	//Funcion que devuelve la posicion del scroll horizontal
	function js_get_scrollLeft()
	{
		if(ns())
			return window.pageXOffset;
		else
			return document.body.scrollLeft;
	}

	function js_hide_tag_elements(TAG)
	{
		var ar = document.getElementsByTagName(TAG);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			cc.style.visibility = "hidden";
		}
	}

	function js_show_tag_elements(TAG)
	{
		var ar = document.getElementsByTagName(TAG);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			cc.style.visibility = "visible";
		}
	}

	function js_switch_tag_elements(TAG)
	{
		var ar = document.getElementsByTagName(TAG);
		var cc = null;

		for (var i = ar.length; i > 0;) {
			cc = ar[--i];

			if(cc.style.visibility == "hidden")
				cc.style.visibility = "visible";
			else
				cc.style.visibility = "hidden";
		}
	}

	function f_hide_elements(OBJ_ID)
	{
		var LAYER = document.getElementById(OBJ_ID);
		var TAGS = new Array("iframe", "select");
		var LPOS = f_get_position(LAYER);
		var LSIZE = {X: (LAYER.offsetWidth + LPOS.X), Y: (LAYER.offsetHeight + LPOS.Y)};

		for (var k = TAGS.length; k > 0;)
		{
			var UN_TAG = document.getElementsByTagName(TAGS[--k]);
			var OBJ = null;
			for (var i = UN_TAG.length; i > 0;)
			{
				OBJ = UN_TAG[--i];
				OPOS = f_get_position(OBJ);

				var OSIZE = {X: (OBJ.offsetWidth + OPOS.X), Y: (OBJ.offsetHeight + OPOS.Y)};

				if (!OBJ.__msh_save_visibility)
				{
					OBJ.__msh_save_visibility = get_style_property(OBJ, "visibility");
				}

				if ((OPOS.X > LSIZE.X) || (OSIZE.X < LPOS.X) || (OPOS.Y > LSIZE.Y) || (OSIZE.Y < LPOS.Y))
				{
					OBJ.style.visibility = OBJ.__msh_save_visibility;
				}
				else
				{
					OBJ.style.visibility = "hidden";
				}
			}
		}
	}

	function f_show_elements()
	{
		var TAGS = new Array("iframe", "select");

		for (var k = TAGS.length; k > 0;)
		{
			var UN_TAG = document.getElementsByTagName(TAGS[--k]);
			var OBJ = null;
			for (var i = UN_TAG.length; i > 0;)
			{
				OBJ = UN_TAG[--i];
				if (!OBJ.__msh_save_visibility)
				{
					OBJ.__msh_save_visibility = get_style_property(OBJ, "visibility");
				}

				OBJ.style.visibility = OBJ.__msh_save_visibility;
			}
		}
	}

	function get_style_property(OBJ, STYLE)
	{
		var VALUE = OBJ.style[STYLE];

		if (!VALUE)
		{
			if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") // Gecko, W3C
			{
				VALUE = document.defaultView.getComputedStyle(OBJ, "").getPropertyValue(STYLE);
			}
			else if(OBJ.currentStyle) // IE
			{
				VALUE = OBJ.currentStyle[STYLE];
			}
			else
			{
				VALUE = OBJ.style[STYLE];
			}
		}

		if (!VALUE && STYLE=='visibility') // safari 1.1
		{
			VALUE = 'visible';
		}

		return VALUE;
	}

	function f_get_position(ELEMENT)
	{
		var R = {X: ELEMENT.offsetLeft, Y: ELEMENT.offsetTop};

		if (ELEMENT.offsetParent)
		{
			var TEMP = f_get_position(ELEMENT.offsetParent);
			R.X += TEMP.X;
			R.Y += TEMP.Y;
		}
		return R;
	}

	function js_attach_event(JS_EVENT, ACTION)
	{
		document.attachEvent(JS_EVENT, ACTION);

		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}

	function js_detach_event(JS_EVENT, ACTION)
	{
		document.detachEvent(JS_EVENT, ACTION);
	}

	function js_clicked_on_me(LAYER, e)
	{
		CLICKED_ELEMENT = window.event.srcElement;
		WINDOW_LAYER = document.getElementById(LAYER);

		for (; CLICKED_ELEMENT != null && CLICKED_ELEMENT != WINDOW_LAYER; CLICKED_ELEMENT = CLICKED_ELEMENT.parentNode);

		if (CLICKED_ELEMENT == null)
			return true;
		else
			return false;
	}


	var TOOLTIP_OBSERVER;
	var TOOLTIP_CANCELBUBBLE;

	function show_tooltip(NAME, WIDTH, HEIGHT)
	{
		var CLONE_TT;
		var CLONE_TT_IMG;
		var LEFT;
		var REF_LEFT;
		var REF_TOP;

		if(document.getElementById('LAYER_TOOLTIP').name == NAME)
		{
			hide_tooltip(document.getElementById('LAYER_TOOLTIP').name);
		}
		else
		{
			REF_LEFT = js_getimgleft(document.getElementById('REF_IMG_' + NAME));
			REF_TOP = js_getimgtop(document.getElementById('REF_IMG_' + NAME));

			document.getElementById('TOOLTIP_CONTENT').innerHTML = document.getElementById('TOOLTIP_' + NAME).innerHTML;
			LAYER_TT = document.getElementById('LAYER_TOOLTIP');
			RIGHT = REF_LEFT + (WIDTH / 2) + document.getElementById('REF_IMG_' + NAME).offsetWidth;

			if (RIGHT > document.body.clientWidth)
				LEFT = REF_LEFT - (WIDTH / 2) - (RIGHT - document.body.clientWidth) + document.body.scrollLeft;
			else
				LEFT = REF_LEFT - (WIDTH / 2) + document.body.scrollLeft;

			LAYER_TT.name = NAME;
			LAYER_TT.style.top = (REF_TOP - (HEIGHT + 12)) + 'px';
			LAYER_TT.style.left = LEFT + 'px';
			LAYER_TT.style.width = WIDTH + 'px';
			LAYER_TT.style.height = HEIGHT + 'px';
			LAYER_TT.style.display = '';

			LAYER_TT_IMG = document.getElementById('TOOLTIP_IMG');
			LAYER_TT_IMG.style.top = (REF_TOP - document.getElementById('REF_IMG_' + NAME).offsetHeight) + 'px';
			LAYER_TT_IMG.style.left = REF_LEFT + 'px';
			LAYER_TT_IMG.style.display = '';

			f_hide_elements("LAYER_TOOLTIP");
			Event.observe(document.getElementById('REF_IMG_' + NAME), 'click', TOOLTIP_CANCELBUBBLE = function(event){ event.cancelBubble = true; }, true);
			Event.observe(document.getElementsByTagName('body').item(0), 'click', TOOLTIP_OBSERVER = function(event){ hide_tooltip(NAME);}, true);
		}
	}

	function hide_tooltip(NAME)
	{
		//alert(TOOLTIP_OBSERVER);
		if(TOOLTIP_OBSERVER)
		{
			//alert('hide');
			document.getElementById('LAYER_TOOLTIP').style.display = 'none';
			document.getElementById('TOOLTIP_IMG').style.display = 'none';
			f_show_elements();
			Event.stopObserving(document.getElementById('REF_IMG_' + NAME), 'click', TOOLTIP_CANCELBUBBLE, true);
			Event.stopObserving(document.getElementsByTagName('body').item(0), 'click', TOOLTIP_OBSERVER, true);
			TOOLTIP_OBSERVER = '';
		}
		else
		{
			document.getElementById('LAYER_TOOLTIP').name = '';
		}
	}

