/* Requiere:
	* "funciones1.js"
	* "funciones2.js" */

function dom_rC(nodoDest,nodoNHijo)
{ //alias corto a "dom_reemplazarContenido"
	return dom_reemplazarContenido(nodoDest,nodoNHijo);
}

function dom_reemplazarContenido(nodoDest,nodoNHijo)
{ //llama a "dom_borrarHijos" para borrarle a 'nodoDest' todos los hijos y luego ponerle el 'nodoNHijo'
	try {
		if (!dom_borrarHijos(nodoDest))
			return false;

		if (!nodoDest.appendChild(nodoNHijo)){
			window.alert ("Error reemplazando contenido (0x0)");
			return false;
		}

		return true;
	}catch(anye){
		alertError("Error reemplazando contenido",anye);
		return false;
	}
}


function dom_borrarHijos(obj)
{  //elimina todos los sub-nodos del obj. pasado
	try {
		var o = new Object;
		if (!obj.id){
			o = document.getElementById(obj);
		}else{
			o=obj;
		}
		
		while (o.firstChild){
			o.removeChild(o.firstChild);
		}
		return true;
	}catch(anye){
		var nom="";
		if (o.id){
			nom=o.id;
		}else{
			nom=o;
		}
		alertError("Error borrando hijos del objeto '"+nom+"' (DOM_FUNCS)",anye);
		return false;
	}
}

function dom_crearNodoTexto(texto) { //alias a "dom_crearTextNode"
	return dom_crearTextNode(texto);
}

function dom_crearTextNode(texto)
{
	try {
		return document.createTextNode(texto);
	}catch(anye){
		alertError("Error creando nodo de texto (DOM_FUNCS)",anye);
		return false;
	}
}

function dom_crearElement(nombreNodo){ //alias a "dom_crearElemento"
	return dom_crearElemento(nombreNodo);
}

function dom_crearElemento(nombreNodo)
{
	try {
		return document.createElement(nombreNodo);
	}catch(anye){
		alertError("Error creando nodo (DOM_FUNCS)",anye);
		return false;
	}
}

function dom_setearAtributo(obj,nomAt,valAt)
{
	return dom_setearAt(obj,nomAt,valAt);
}

function dom_setearAt(o,nAt,vAt)
{
	try {
		o.setAttribute(nAt,vAt);
		return true;
	}catch(anye){
		alertError("Error seteando atributo (dom_setearAt)",anye);
		return false;
	}
}

function dom_setearEstilo(o,nomEstilo)
{
	try {
		if (esIE()){
			dom_setearAtributo(o,"className",nomEstilo);
		}else{
			dom_setearAtributo(o,"class",nomEstilo);
		}
		return true;
	}catch(anye){
		if (o.name){
			alertError("Error seteando estilo al obj. '"+o.name+"'",anye);
		}else{
			alertError("Error seteando estilo ",anye);
		}
		return false;	
	}
}

//funciones especiales para que funcionen "mouseOv(this)" y "mouseOut(this)" con el "e" (evento)

function dom_mouseOv(e)
{
	try {
		var o = obtObjDesdeE(e);
		mouseOv(o);
		return true;
	}catch(anye){
		alertError("",anye);
		return false;
	}
}

function dom_mouseOut(e)
{
	try {
		var o = obtObjDesdeE(e);
		mouseOut(o);
		return true;
	}catch(anye){
		alertError("",anye);
		return false;
	}
}

function dom_eventoExiste(e)
{ //verifica si es una "object"
	try {
		if (!esIE()){
			if ((typeof e)=='undefined'){
				return false;
			}else{
				if ((typeof e)=='object'){
					return true;
				}else{
					return false;
				}
			}
		}else{
			if ((typeof e)!='undefined'){
				//epa, como no debería llegar nada, esto no es un evento, es un valor
				return false;			
			}else{
				//como Internet Explorer maneja el Obj. 'Event' siempre creado el evento siempre existe
				return true;
			}
		}
	}catch(anye){
///		alertError("",anye);
		return false;
	}
}

function dom_addEvent(o,nombreEvento,refFunc)
{
	try {
		if(window.addEventListener){ // Mozilla, Netscape, Firefox
			o.addEventListener(nombreEvento, refFunc, false);
		} else { // IE
			o.attachEvent("on"+nombreEvento, refFunc);
		}
		return true;
	}catch(anye){
		alertError("Error seteando evento '"+nombreEvento+"' ",anye);
		return false;
	}
}

/*
function
{
	try {

		return true;
	}catch(anye){
		alertError("",anye);
		return false;
	}
}
*/

