var autosizeNodes = false;
var autoclose = true;
var lengthPerLevel = 3;
var changeStyleClass = false;
var classNameExpanded = 'menuExpandido';
var classNameCollapsed = 'menuContraido';
var classNameDefault = 'menuNormal';
var classNameActive = 'menuSeleccionado';

function getNode(regionid, regionnode) {
		
	var nodes, index;

	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {
			
		if (regionnode == getAttribute(nodes[index], 'regionnode')) {
			return (nodes[index]);
		};
			
	};
	
};	

function getNodeByAttribute(regionid, attribute, value) {

	var nodes, index;

	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {

		if (value == getAttribute(nodes[index], attribute)) {
			return (nodes[index]);
		};
			
	};
	
}

function getNodeDescription(regionid, regionnode) {
		
	var node, regionposition;
	var nodes, index;
	var path = '';
	
	node = getNode(regionid, regionnode);
	regionposition = getAttribute(node, 'regionposition');
	
	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {
			
		if (regionposition.substr(0, getAttribute(nodes[index], 'regionposition').length) == getAttribute(nodes[index], 'regionposition')) {
			
			path = path + ' > ' + nodes[index].innerText;
			
		};
			
	};

	return(path);

};

function nodeSelect(regionid, regionnode) {
		
	var node, regionposition;
	var nodes, index;
	
	node = getNode(regionid, regionnode);
	regionposition = getAttribute(node, 'regionposition');
	
	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {
			
		if (regionposition.substr(0, getAttribute(nodes[index], 'regionposition').length) == getAttribute(nodes[index], 'regionposition') && 
				regionnode != getAttribute(nodes[index], 'regionnode') &&
				getAttribute(nodes[index], 'regionexpanded') == '0') {
			
			nodeClick(regionid, getAttribute(nodes[index], 'regionnode'));
			
		};
			
	};

};

function closeNodesLevel(regionid, regionnode) {
		
	var node, regionposition;
	var nodes, index;
	
	if (!document.all) return;
	
	node = getNode(regionid, regionnode);
	regionposition = getAttribute(node, 'regionposition');
	
	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {

		if (getAttribute(nodes[index], 'regionposition').length == regionposition.length && 
		    getAttribute(nodes[index], 'regionexpanded') == '1' &&
		    nodes[index].className == classNameExpanded) {

			nodeClick(regionid, getAttribute(nodes[index], 'regionnode'));
		};

	};

};

function nodeClick(regionid, regionnode, notify) {

	var node, regionposition;
	var nodes, index;
	var expand;
	
	node = getNode(regionid, regionnode);
	
	if (notify && node && window.nodeActionUser) {
		nodeActionUser(node);
		return;
	};
	
	regionposition = getAttribute(node, 'regionposition');
	
	nodes = document.getElementsByName(regionid);
	for(index = 0; index < nodes.length; index++) {

		// Nodo sobre el cual se acciono
		if (getAttribute(nodes[index], 'regionnode') == regionnode) {	

			if (nodes[index].className != classNameDefault && nodes[index].className != classNameActive) {

				if (window.nodeExpandCollapseUser) {
					/*
					nodeExpandCollapseUser(nodes[index]);
					return;
					*/
					if (nodeExpandCollapseUser(nodes[index]) == true) return;
				};
				
				/*} else {*/
					expand = (getAttribute(nodes[index], 'regionexpanded') == '1') ? '0':'1';
					if (expand == '1' && autoclose) closeNodesLevel(regionid, regionnode);
				
					setAttribute(nodes[index], 'regionexpanded', expand);
					if (changeStyleClass) {
						nodes[index].className = (expand == '1') ? classNameExpanded : classNameCollapsed;
					};
				/*};*/
				
			} else {
				if (window.nodeActionUser) {
					nodeActionUser(nodes[index]);
					return;
				} else {
					//nodeAction
				};
			};

		// Nodos hijos
		} else if (getAttribute(nodes[index], 'regionposition').substr(0, regionposition.length) == regionposition) {
			
			if (expand == '1' && getAttribute(nodes[index], 'regionposition').length == (regionposition.length + lengthPerLevel)) {

				nodes[index].style.display = 'block';
				if (autosizeNodes) nodesAutosize(regionid, nodes[index]);
					
			} else if (expand == '0') {
				
				nodes[index].style.display = 'none';
				if (nodes[index].className != classNameDefault && nodes[index].className != classNameActive) {
					
					setAttribute(nodes[index], 'regionexpanded', '0');
					if (changeStyleClass) {
						nodes[index].className = classNameCollapsed;
					};
					
				};

			};
				
		};
			
	};
	
};


function nodesAutosize(regionid, node) {
	var nodes, index, text, simpleHeight;

	if (!document.all) return;
	
	if (node) {
		nodes = new Array(node);
	} else {
		nodes = document.getElementsByName(regionid);
		if (!nodes) return;
		if (!nodes.length) nodos = new Array(nodes);
	};
	
	if (nodes.length > 0) {
		if (nodes[0].all('regionnodetext')) {
			text = nodes[0].all('regionnodetext').innerText;
			nodes[0].all('regionnodetext').innerText = '...';
			simpleHeight = nodes[0].offsetHeight;
			nodes[0].all('regionnodetext').innerText = text;
				
			for (index = 0; index<nodes.length; index++) {
					
				if (nodes[index].style.display != 'none') {
						
					if (nodes[index].offsetHeight > simpleHeight) {
						text = nodes[index].all('regionnodetext').innerText;
						nodes[index].title = text;
							
						while (nodes[index].offsetHeight > simpleHeight && text.length > 1) {
							text = text.substr(0, text.length - 1);
							nodes[index].all('regionnodetext').innerText = text + '...';
						};
					};
						
				};
					
			};
		};
	};

};

function goTop() {
	if (window.parent) {
		if (window.parent.goTop) {
			window.parent.goTop();
		};
	};
};

function deleteFile(path) {
	var URL = '';
	
	var tunnel = new ActiveXObject("MSXML2.XMLHTTP");
	
	URL = parRoot + 'utils/deleteFileFolder.asp' + 
													'?path=' + escape(path) + 
													'&isFile=1' + 
													'&nocache=' + newTarget();
	try {
		tunnel.open('POST', URL, false);
		tunnel.setRequestHeader("Content-Length", 0);
		tunnel.send();
	} catch (exception) {
		//
  };
	
	if (tunnel.status == '200') {
		return new Array( 
											tunnel.responseText.substr(0, 3), 
											tunnel.responseText.substr(4, 2), 
											tunnel.responseText.substr(7));
	} else {
		return new Array('ERR', '00', tunnel.responseText);
	};
}

function deleteFolder(path) {
	var URL = '';
	
	var tunnel = new ActiveXObject("MSXML2.XMLHTTP");
	
	URL = parRoot + 'utils/deleteFileFolder.asp' + 
													'?path=' + escape(path) + 
													'&isFile=0' + 
													'&nocache=' + newTarget();
	try {
		tunnel.open('POST', URL, false);
		tunnel.setRequestHeader("Content-Length", 0);
		tunnel.send();
	} catch (exception) {
		//
  };
	
	if (tunnel.status == '200') {
		return new Array( 
											tunnel.responseText.substr(0, 3), 
											tunnel.responseText.substr(4, 2), 
											tunnel.responseText.substr(7));
	} else {
		return new Array('ERR', '00', tunnel.responseText);
	};
}

function uploadFile(sourcePath, targetFileName, targetPath, folder, overwrite) {
	var URL = '';
			
	var stream = new ActiveXObject('ADODB.Stream');
	stream.Mode = 8; // adModeShareDenyWrite
	stream.Type = 1; // adTypeBinary
	stream.Open();
	stream.LoadFromFile(sourcePath);
	
	var tunnel = new ActiveXObject("MSXML2.XMLHTTP");
	
	URL = parRoot + 'utils/fsExplorer/uploads_copyXML.asp' + 
													'?targetFileName=' + escape(targetFileName) + 
													'&targetPath=' + escape(targetPath) + 
													'&folder=' + escape(folder) + 
													'&overwrite=' + ((overwrite) ? '1':'0') + 
													'&nocache=' + newTarget();
	try {
		tunnel.open('POST', URL, false);
		tunnel.setRequestHeader("Content-Length", stream.Size);
		tunnel.send(stream.Read(stream.Size));
	} catch (exception) {
		//
  };
	
	if (tunnel.status == '200') {
		return new Array( 
											tunnel.responseText.substr(0, 3), 
											tunnel.responseText.substr(4, 2), 
											tunnel.responseText.substr(7));
	} else {
		return new Array('ERR', '00', tunnel.responseText);
	};
};

function uploadFileWithProgress(sourcePath, targetFileName, targetPath, folder, overwrite, chunkSize, rename, renameAs, unzip, replaceFor) {
	var URL = '';
	var index = 0;
	var response = '';
	var append = false;
			
	if (!chunkSize) chunkSize = (1024 * 1024);

	var stream = new ActiveXObject('ADODB.Stream');
	stream.Mode = 3; // read/write
	stream.Type = 1; // adTypeBinary
	stream.Open();
	stream.LoadFromFile(sourcePath);
			
	var tunnel = new ActiveXObject("MSXML2.XMLHTTP");
			
	if (newUpload && stream.Size > chunkSize) { 

		newUpload(sourcePath, targetFileName, targetPath, folder, stream.Size);
				
	}
			
	try {

		if (rename != false && rename != true) rename = false;
		if (!renameAs) renameAs = '';
		if (!replaceFor) replaceFor = '';
		
		for(index = 0; index < stream.Size; index = index + chunkSize) {

			URL = parRoot + 'utils/fsExplorer/uploads_copyXML.asp' + 
															'?targetFileName=' + escape(targetFileName) + 
															'&sourcePath=' + escape(sourcePath) + 
															'&fileSize=' + stream.Size + 
															'&targetPath=' + escape(targetPath) + 
															'&folder=' + escape(folder) + 
															'&overwrite=' + ((overwrite) ? '1':'0') + 
															'&rename=' + ((rename && (index + chunkSize) >= stream.Size) ? '1':'0') +
															'&renameAs=' + escape(renameAs) + 
															'&append=' + ((append) ? '1':'0') + 
															'&lastChunk=' + (((index + chunkSize) >= stream.Size) ? '1':'0') +
															'&unzip=' + ((unzip) ? '1':'0') +
															'&replaceFor=' + escape(replaceFor) + 
															'&nocache=' + newTarget();
			
			tunnel.open('POST', URL, false);
			tunnel.setRequestHeader("Content-Length", chunkSize);
					
			stream.Position = index;
			tunnel.send(stream.Read(chunkSize));
					
			if (tunnel.status == '200') {
						
				response = tunnel.responseText;
						
				if (response.substr(0, 2) !=  'OK') {
					return new Array( 
														response.substr(0, 3), 
														response.substr(4, 2), 
														response.substr(7));
				} else {
					overwrite = true;
					append = true;
							
					if (uploadFileProgress && (stream.Size > chunkSize)) { 

						uploadFileProgress(sourcePath, targetFileName, targetPath, folder, stream.Size, (index + chunkSize));
						
					};
				};
						
			} else {
				return new Array('ERR', '00', tunnel.responseText);
			};
					
			tunnel.close;

		};
				
		return new Array( 
											response.substr(0, 3), 
											response.substr(4, 2), 
											response.substr(7));
				
	} catch (exception) {
		return new Array('ERR', '00', 'Unspecified error');
  };
		  
};

function getTextAreaValue(id, html) {
	var oEditor;
	var sValue = '';
	
	// FCKeditor
	oEditor = document.getElementById(id + '___frame');
	if (oEditor) {
		if (oEditor.contentWindow) {
			if (oEditor.contentWindow.eEditorArea) {
				
				oEditor = oEditor.contentWindow.eEditorArea.document;
				if (oEditor) {
					if (oEditor.body) {
						
						if (html) {
							return oEditor.body.innerHTML;
						} else {
							return oEditor.body.innerText;
						};
						
					};
				};
				
			};
		};
	};
	
	// TEXTAREA
	oEditor = document.getElementById(id);
	if (oEditor) {
		sValue = oEditor.value;
	};
	
	return sValue;
};

function resizeEmbeddedTemplateFrame(oFrame, sCallbackFunctionName, iMinHeight) {
	var oInnerDoc;
	var oToResize;
	
	if (isNaN(iMinHeight)) iMinHeight = 0;
	
	try {
		oInnerDoc = (oFrame.contentDocument) ? oFrame.contentDocument : oFrame.contentWindow.document;
		oToResize = (oFrame.style) ? oFrame.style : oFrame;
		oToResize.height = (iMinHeight > oInnerDoc.body.scrollHeight) ? iMinHeight : oInnerDoc.body.scrollHeight + 10;
	} catch(e) {
		//
	};
	
	if (sCallbackFunctionName) {
		if (sCallbackFunctionName != '') {
			eval(sCallbackFunctionName + '()');
		};
	};
};

function resizeTextArea(oTextArea, iMinRows, iMaxDiff, sCallbackFunctionName) { 
	var bMinChecked = false;
	var bMaxChecked = false;
	
	if (isNaN(iMinRows)) iMinRows = 1;
	if (iMinRows < 1) iMinRows = 1;
	if (isNaN(iMaxDiff)) iMaxDiff = 7;
	if (iMaxDiff < 0) iMaxDiff = 0;
	
	while (Math.abs(oTextArea.clientHeight - oTextArea.scrollHeight) > iMaxDiff) {
		if (oTextArea.clientHeight > oTextArea.scrollHeight) {
			if (oTextArea.rows <= iMinRows) break;
			oTextArea.rows -= 1;
			if (oTextArea.clientHeight < oTextArea.scrollHeight) {
				oTextArea.rows += 1;
				bMaxChecked = true;
			};
			bMinChecked = true;
		} else {
			oTextArea.rows += 1;
			bMaxChecked = true;
		};
		
		if (bMinChecked && bMaxChecked) break;
	};
	
	if (sCallbackFunctionName) {
		if (sCallbackFunctionName != '') {
			eval(sCallbackFunctionName + '()');
		};
	};
};



































function MostrarOcultarMenu() {
	window.parent.frames['MenuBar'].mostrarOcultarPanel();	
};

function MostrarOcultarPanelDerecho() {
	window.parent.frames['RightBar'].mostrarOcultarPanel();
};

function MostrarInfoSesion() {
	openWindow(parRoot + 'loggedUserInfo.asp', 'Main');
};

function CerrarSesion() {
	openWindow(parRoot + 'logout.asp', 'Main');
};

function MostrarMapaSitio() {
	openWindow(parRoot + 'mapaSitio.asp', '_blank', 'width=500px, height=500px');
};

function MostrarAdministradorSistema() {
	openWindowCallback(parRoot + 'SecurityManager/adminGeneral/adminGeneral.asp', RefrescarMenu, true, 'width=600px, height=600px, scrollbars=no');
};

function RefrescarMenu() {
	openWindow(parRoot + 'menu.asp', 'MenuBar');
};

function MostrarAdministradorAccesosDirectos(idUsuario) {
	// 20070305 ddignazi
	//openWindow(parRoot + 'SecurityManager/accesosDirectos.asp', '_blank', 'width=750px, height=400px');
	openWindow(parRoot + 'run.asp?sistema=1&opcion=mnuAccesosDirectos&USU_CODIGO=' + idUsuario, '_blank', 'width=750px, height=400px');
	
};

function CambiarClaveAcceso() {
	openWindow(parRoot + 'SecurityManager/cambiarClaveAcceso.asp', 
							'_blank', 
							'directories=no, fullscreen=no, location=no, menubar=no, resizable=yes, status=no, titlebar=no, toolbar=no, width=500px, height=400px');
};

function CambiarIdioma() {
	openWindow(parRoot + 'language.asp', 
							'_blank', 
							'directories=no, fullscreen=no, location=no, menubar=no, resizable=yes, status=no, titlebar=no, toolbar=no, width=500px, height=400px');
};

// Buscador de contenidos
function ModificarParametro(id) {
	openWindow(parRoot + 'SecurityManager/adminParametros/adminParametros_valores.asp' + 
							'?alias=' + id + 
							'&mostrarParamsGenerales=on' + 
							'&mostrarParamsSistema=on' + 
							'&mostrarParamsUsuario=on', 
							'_blank', 
							'height=500px, width=600px');
};

// Buscador de contenidos
function MostrarInfoDirFiltro(id) {
	openWindow(parRoot + 'ContentManager/buscadorContenidos/buscadorContenidos_verPermisos.asp' + 
							'?idDirectorio=' + id, 
							'_blank', 
							'height=500px, width=600px');
};

// Buscador de contenidos
function MostrarInfoContenido(id) {
	openWindow(parRoot + 'ContentManager/buscadorContenidos/buscadorContenidos_verPermisos.asp' + 
							'?idContenido=' + id, 
							'_blank', 
							'height=500px, width=600px');
};

// Buscador de contenidos
function MostrarContenido(id) {
	openWindow(parRoot + 'ContentManager/contenido.asp' + 
							'?idContenido=' + id, 
							'_blank');
};
