
//FUNCIONES ESPECIALIZADAS

function buscarLlave(parm_ODI) {
    return goUrl('parent','showad.aspx?parm_ODI='+parm_ODI);
}
function compararAnuncios(parm_Nodo) {
    return goUrl('parent','compare.aspx?parm_Nodo='+parm_Nodo+'&'+getFormVariables('frmDetalleAnuncios'));
}
function buscarAnuncios(parm_Nodo, parm_Tipo, parm_Pagina, parm_Texto) {
    return goUrl('parent','search.aspx?parm_Nodo='+parm_Nodo+'&parm_Tipo='+parm_Tipo+'&parm_Pagina='+parm_Pagina+'&parm_Texto='+parm_Texto+'&'+getFormVariables('frmBusquedaDetallada'));
}
function traducirAnuncio(parm_ODI) {
    //return invocacionAjax('traductor','GET','parm_ODI='+parm_ODI,'SearchResultsFrame');
    return goUrl('parent','http://209.85.171.104/translate_c?hl=es&sl=es&tl=en&u=http://wvw.economicos.com/showad.aspx?parm_ODI='+parm_ODI);
}
function doHandlerChangeNode(categoria){
    invocacionAjax('searchform.aspx','POST','parm_Nodo='+categoria,'SearchFormFrame','refresh();');
}
function doHandlerDropDown(campo, valor, padre) {
    ejecutarJavaScript('jsdoHandlerDropDown("'+campo+'", v'+valor+', '+padre+')', 'SearchFormFrame');
}


//FUNCIONES GENÉRICAS
var isIE6 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? 1 : 0;

//Ir a una url en determinado target
function goUrl(targ,url){
  eval(targ+".location='"+url+"'");
}

// Traer un objeto
function getObject() {
	obj = document.getElementById(arguments[0]);
	if (obj == null && arguments.length > 0) {
		name = arguments[0];
		index = 0;
		if (arguments.length > 1) {
			index = arguments[1];
		};
		Elements = document.getElementsByName(name);
		obj = Elements[index];
	};
	return obj;
}

// Ocultar un objeto
function hideObject(name) {
	obj = getObject(name);
	obj.style.visibility = 'hidden';
};

// Mostrar un objeto
function showObject(name) {
	obj = getObject(name);
	obj.style.visibility = 'visible';
};


function objetoAjax(file) {
    xmlhttp = false;
    this.AjaxFailedAlert = "Su navegador no soporta las funciónalidades de este sitio " +
                           "y podria experimentarlo de forma diferente a la que fue pensada.\n" +
		                   "Por favor habilite javascript en su navegador para verlo normalmente.\n";
    this.requestFile = file;
    this.encodeURIString = true;
    this.execute = false;
    if (window.XMLHttpRequest) {
        this.xmlhttp = new XMLHttpRequest();
        if (this.xmlhttp.overrideMimeType) {
            this.xmlhttp.overrideMimeType('text/xml');
        }
    }
    else if (window.ActiveXObject) { // IE
        try {
            this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
            try {
                this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                this.xmlhttp = null;
            }
        }
        if (!this.xmlhttp && typeof XMLHttpRequest!='undefined') {
            this.xmlhttp = new XMLHttpRequest();
            if (!this.xmlhttp){
                this.failed = true;
            }
        }
    }
    return this.xmlhttp ;
}

function ejecutarJavaScript(funcionJs, capa) {
    if (document.getElementById(capa)){
        var js = document.getElementById(capa).getElementsByTagName("script");
        for( var i=0; i < js.length; i++) {
            eval(js[i].text);
        }
    }
    try {
        eval(funcionJs);
    } catch (e) {
        alert("La función " + funcionJs + " no se pudo ejecutar.\r\n" + e);
    }
}

function invocacionAjax(_pagina, metodo, datos, capa, funcion){
    ajax=objetoAjax(_pagina);
    if(metodo == "POST"){
        ajax.open("POST", _pagina+"?key="+new Date().getTime(),true);
    } else {
        ajax.open("GET", _pagina+"?key="+new Date().getTime()+"&"+datos,true);
    }
    ajax.onreadystatechange=function() {
        if (ajax.readyState==0 || //UNINITIALIZED
            ajax.readyState==1 || //LOADING
            ajax.readyState==2 || //LOADED
            ajax.readyState==3 //INTERACTIVE
            ){
            document.getElementById(capa).innerHTML = "<img src='/imgs/loading.gif' width='32' height='32'> Aguarde por favor...";
        }
        if (ajax.readyState==4) {
            if(ajax.status==200)
            {
                document.getElementById(capa).innerHTML = ajax.responseText;
                if ( funcion ) ejecutarJavaScript(funcion, capa);
            }
            else if(ajax.status==404)
            {
                capa.innerHTML = "La direccion no existe";
            }
            else
            {
                capa.innerHTML = "Error: ".ajax.status;
            }
        }
    }
    if(metodo == "POST"){
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ajax.send(datos);
    } else {
        ajax.send(null);
    }
}

// function getFormVariables
function getFormVariables(form_name)
{
    var formvars='';
    //decodeURI(Form.serialize(form));
    if ( getObject(form_name) ) 
    {
        var childElements= getObject(form_name).getElementsByTagName("INPUT");
        for(var i=0;i<childElements.length;i++){
            if (childElements[i].type.toLowerCase() == 'checkbox' ||
                childElements[i].type.toLowerCase() == 'radio' ) {
                if (childElements[i].checked)
                    formvars += childElements[i].getAttribute('name')+'='+
                                childElements[i].getAttribute('value')+'&';
            } else {
                formvars += childElements[i].name+'='+
                            childElements[i].value+'&';
            }
        }

        var childElements= getObject(form_name).getElementsByTagName("HIDDEN");
        for(var i=0;i<childElements.length;i++){
                formvars += childElements[i].getAttribute('name')+'='+
                            childElements[i].getAttribute('value')+'&';
        }

        var childElements= getObject(form_name).getElementsByTagName("TEXTAREA");
        for(var i=0;i<childElements.length;i++){
                formvars += childElements[i].name+'='+
                            childElements[i].value+'&';
        }

        var childElements= getObject(form_name).getElementsByTagName("SELECT");
        for(var i=0;i<childElements.length;i++){
                formvars += childElements[i].getAttribute('name')+'='+
                            childElements[i].options[childElements[i].selectedIndex].value+'&';
        }

        if (formvars.length > 1)
            formvars=formvars.substring(0,formvars.length-1);
    }
    return formvars;
}



/*
 *	JavaScript para manejar elementos de navegación del sitio
 *	Derechos Reservados, Grupo Nación GN S.A.
 */

// MENU DE CATEGORIAS
function nC(data, parent, name) {
	this.name = name;
	this.parent = parent;
	this.data = data;
};

var	clist = new Array();

function haveContent(seleccion) {
	contenido = false;
	for (i=0; i < clist.length && !contenido; i++){
		if (clist[i] != null) {
			contenido = (clist[i].parent == seleccion);
		};
	};
	return contenido;
};

// TREE VIEW DE NAVEGACIÓN
function makeTV(padre, a, b, nodoSeleccionado, cadena, antecesor, pintarNodo){
	for (a=0; a < clist.length; a++){
		if (clist[a] != null) {
			if (clist[a].parent == padre) {
				pintarNodo = false;
				antecesor = "";
				if (clist[a].parent == nodoSeleccionado) {
					pintarNodo = true;
				} else
				if (haveContent(clist[a].data)) {
					antecesor += makeTV(clist[a].data,0,b+1, nodoSeleccionado, "", "", false);
					if (antecesor != "" || padre == -1) {
						pintarNodo = true;
					}
				};
				if (pintarNodo) {
					identacion = "";
					for (c=1; c < b; c++) {
						identacion += "&nbsp;&nbsp;&nbsp;";
					};
					if (haveContent(clist[a].data)) {
						if (clist[a].data == nodoSeleccionado || antecesor != "") {
							identacion += "<a href='javascript:drawTV("+clist[a].parent+");'> - ";
						} else {
							identacion += "<a href='javascript:drawTV("+clist[a].data+");'> + ";
						}
					} else {
						identacion += "<a href='/search.aspx?parm_Nodo="+clist[a].data+"'> » ";
					}
					cadena += identacion + clist[a].name+"</a><br>";
					cadena += antecesor;
				};
			};
		};
	};
	return cadena;
};

function drawTV(nodoSeleccionado){
	getObject("treeview").innerHTML = "<p align=left>"+makeTV(-1,0,1,nodoSeleccionado,"","",false)+"</p>";
};



/*
 *	JavaScript para manejar campos de formularios de búsqueda
 *	Derechos Reservados, Grupo Nación GN S.A.
 */


function nV(cod_valor, cod_valor_padre, dato) {
	this.v = cod_valor;
	this.vp = cod_valor_padre;
	this.d = dato;
};

function createDropDownFromValues(campo, inicial, valor, padre, seleccion){
    obj = getObject(campo);
    obj.options.length = 0;
	obj.options[obj.options.length]
            = new Option(" << "+inicial+" >>",-1, false, seleccion == null || seleccion == -1);
	for (i=0; i < valor.length; i++){
		if (valor[i] != null) {
			if (valor[i].vp == padre) {
				obj.options[obj.options.length] =
                        new Option(valor[i].d, valor[i].v, false, valor[i].v == seleccion);
			};
		};
	};
    if (isIE6) {
        for (i=0; i < obj.options.length; i++){
            if (obj.options[i].value == seleccion) {
                    obj.options.selectedIndex = i;
                    i = obj.options.length;
            };
        };
    }
}

function createDropDown(campo, valor, padre, seleccion){
    createDropDownFromValues(campo, "CUALQUIERA", valor, padre, seleccion)
}

function createDropDownR1(campo, valor, padre, seleccion){
    createDropDownFromValues(campo, "DE", valor, padre, seleccion)
}

function createDropDownR2(campo, valor, padre, seleccion){
    createDropDownFromValues(campo, "A", valor, padre, seleccion)
}


function getSelectedOption(campo) {
    try {
        return getObject(campo).options[getObject(campo).selectedIndex].value;
    } catch(e) {
        return -1;
    }
}

function jsdoHandlerDropDown(campo, valor, padre) {
    createDropDown(campo, valor, padre, -1);
}


// function setFormVariable
function setFormVariables(form_name, form_field, form_field_value)
{
    if ( getObject(form_name) )
    {
        var childElements= getObject(form_name).getElementsByTagName("INPUT");
        for(var i=0;i<childElements.length;i++){
            if (childElements[i].name == form_field) {
                if ((childElements[i].type.toLowerCase() == 'checkbox' ||
                    childElements[i].type.toLowerCase() == 'radio') &&
                    childElements[i].value == form_field_value ) {
                    childElements[i].checked = true;
                } else {
                    childElements[i].value = form_field_value;
                }
                return;
            }
        }

        var childElements= getObject(form_name).getElementsByTagName("HIDDEN");
        for(var i=0;i<childElements.length;i++){
            if (childElements[i].name == form_field) {
                childElements[i].value = form_field_value;
                return;
            }
        }

        var childElements= getObject(form_name).getElementsByTagName("TEXTAREA");
        for(var i=0;i<childElements.length;i++){
            if (childElements[i].name == form_field) {
                childElements[i].value = form_field_value;
                return;
            }
        }

        var childElements= getObject(form_name).getElementsByTagName("SELECT");
        for(var i=0;i<childElements.length;i++){
            if (childElements[i].name == form_field)
            for (var j=0;j<childElements[i].options.length; j++){
                childElements[i].options[j].selected = (childElements[i].options[j].value == form_field_value);
            };
        }
    }
}

