function listaIdsSelecc() {   
}

function ordenar(campo) {
    $('orden').value=campo;    
    document.Form.submit();   
}

var nSel=0;
function seleccionandoFila(fila) {
    if (fila.Control.className=='filaHover') mouseOut(fila.Index);        
}
function filaSeleccionada(fila) {      
   nSel++;  
}
function filaDeseleccionada(fila) {     
   nSel--;
}
function estaSeleccionada(indice) {
    
}

function buscaref(e) {

    tecla = (document.all) ? e.keyCode : e.which;
  
    if (tecla==13) {
      
        __doPostBack('buscaref','');
        
    }
}

function inicializar() {
    if (!$('orden')) return;
    
    var elems = document.getElementsByClassName('ordenable');
    var campoorden = $('orden').value.toLowerCase();
    var dirorden;
    if (campoorden.length>0) {
         var nc = (campoorden.indexOf('desc')>0) ? 5:4;
         dirorden = campoorden.substring(campoorden.length-nc+1);
         campoorden = campoorden.substring(1,campoorden.length-nc);
    }     
    
    for (ie=0;ie<elems.length;ie++) {  
        elems[ie].id='tdcab'+ie;
        Event.observe(elems[ie],'mouseover',function(e) {omovercab(e.target.id)},false);
        Event.observe(elems[ie],'mouseout',function(e) {omoutcab(e.target.id)},false);
        
        if (campoorden && campoorden.length>0 && elems[ie].attributes["onclick"] && elems[ie].attributes["onclick"].value.indexOf(campoorden)>=0) {
            elems[ie].className ='orden'+dirorden;   
            
            if (elems[ie].nodeName=='TD') colsel(elems[ie]); // si es una columna se resalta como 'ordenada'
        }                
    }
}
function colsel(elemtd) {        
        var idx = obtColIdx(elemtd);        
        var trs = obtTabla(elemtd).rows;
        for (var i = 1; i < trs.length; i++) {
            trs[i].cells[idx].className += ' col_sel';
        }         
}
// obtiene la tabla de un td
function obtTabla(elemtd) { 
       
    tabla=elemtd.parentNode;
    while(tabla && tabla.nodeName.toLowerCase()!='table') {
        tabla=tabla.parentNode;
    }
    return tabla;
         
}

function obtColIdx(elemtd) { //obtiene el indice de columna de un td
    var rtrn = elemtd.cellIndex || 0;
    if (rtrn == 0) {
        do{
            if (elemtd.nodeType == 1) rtrn++;
            elemtd = elemtd.previousSibling;
        } while (elemtd);
        --rtrn;
    }
    return rtrn;
}

var clsant;
function omovercab(elemid) {
    var elem=$(elemid);
  
    clsant = elem.className.toLowerCase();
    if (elem.className.indexOf('ordenasc')>=0) {
        elem.className='ordendesc';
    }
    else if (elem.className.indexOf('ordendesc')>=0) {
        elem.className='ordenable';
    }
    else {
        elem.className='ordenasc';
    }    
}

function omoutcab(elemid) {   
    
   var elem=$(elemid);
   elem.className=clsant; 
}

function fr(id) {
    var fr = $('rowfr'+id);
    if (!fr) {   
     
      llamadaAJAX('/DesktopModules/Inzoco.UI/AjaxProductos.aspx', 'exp'+id,'accion=fichaReducida&verGaleria=true&verCabecera=false&id=' + id,id,frvuelta,null,true); 
          
      
    }
    else { 
        $('exp'+id).removeClassName('reducir');
        $('exp'+id).addClassName('ampliar');        
        $('prod'+id).removeClassName('open');
        //Effect.toggle(div.id,'slide', {duration:0.1, afterfinish: function() { Element.remove(fr); }});
        Element.remove(fr);        
        
    }
}

var id_prod_frm_contacto;
function contacto_listado(id_prod) {
    var frm = $('frm_contacto_listado');
     
    if (id_prod!=id_prod_frm_contacto) {
        if (id_prod_frm_contacto) { // ya se ha mostrado en una fila->la ocultamos
            $(frm.parentNode.parentNode).hide();
        }
        var celda = agregarfilatabla($('tblres'),'prod'+id_prod);
        celda.style.padding='4px 0';
        
        var frm = $('frm_contacto_listado');    
        frm.style.marginTop='-8px'; // tapa el borde de la fila superior 
        frm.style.zIndex=40;
        celda.appendChild(frm);   
        frm.show(); 
        $('ovlInputIdAnuncio').value=id_prod;
        id_prod_frm_contacto=id_prod;
        
        
    }
    
    $(frm.parentNode.parentNode).show();
  
    
}

function frvuelta(arg,ctx) {

    var fila;
    var tabla=$('tblres');    
    var idFila = 'prod'+ctx;
    var i=0;
    
    $(idFila).addClassName('open');   
    
    while (tabla.rows[i].id!=idFila) i++;       
    fila = tabla.insertRow(i+1);
    fila.id = 'rowfr' + ctx;
    
    celda =  fila.insertCell(0);   
    celda.colSpan = tabla.rows[i].cells.length;   
        
    var div=document.createElement('div');
    div.id = 'divfr' + ctx;
    div.innerHTML = arg;
    div.style.display='none'; 
        
    celda.appendChild(div);    
    Effect.toggle(div.id,'slide', {duration:0.1});  
      
    $('exp'+ctx).removeClassName('ampliar');      
    $('exp'+ctx).addClassName('reducir'); 
    
    // la ficha reducida puede venir con thumbnails para lightbox, asi que lo reiniciamos
    initLightbox();     
}

function mouseover(indice) {

    var fila = $("prod"+indice);
    if (fila.className.length>0) {         
        fila.addClassName('filaHover');
    }
}
function mouseout(indice) {

     var fila = $("prod"+indice); 
     fila.removeClassName('filaHover');
            
}
 
function retornoFavorito(arg,options) { 
    var elem = $(options.target);
    
    if (elem.src) { // es una imagen
        elem.src = 'http://' + subdominio('static') + ( arg=='0' ? '/Portals/0/save.gif' : '/Portals/0/save_on.gif');   
    }
    else {
        if (arg=='0') {
            elem.removeClassName('estrellabw_on');elem.addClassName('estrellabw');             
            if (options.fade) { Effect.Appear('prod'+options.id,{duration:0.25,from: 1.0, to: 0.4}); }
        }
        else {
            elem.removeClassName('estrellabw');elem.addClassName('estrellabw_on');
            if (options.fade) { Effect.Appear('prod'+options.id,{duration:0.25,from: 0.4, to: 1.0}); }
        }        
    }      
}    

function favoritos(id,options) {   
    if (!options) options={};     
    if (!options.target) options.target = 'af'+id; // botón/enlace pulsado    
    if (!options.fade) options.fade = false; // ¿eliminar la fila al cambiar a no favorito?    
    options.id=id;
    
    irSiRegistrado('javascript:llamadaAJAX(\'/DesktopModules/Inzoco.UI/AjaxProductos.aspx\',\''+options.target+'\',\'accion=favoritos&id=' + id + '\',' + Object.toJSON(options)+ ',retornoFavorito,null,true)','guardar favoritos');         
 
}

Event.observe(window,'load',inicializar,false);

/** MENU DE CADA FILA **/
var idActivo=0;


function mom(objtr,b) {    objtr.className= b ? 'opthover' : 'opt';}


//Ajax.Responders.register({
//  onCreate: function(){
//    // Si se trata de un cambio de criterios, orden, o paginación, hay que recargar la lista
//    
//    //if (true) { AJAXUpdate(); }
//    // Poner div 'Loading' en la tabla
//  }
// 
//});


function iniciaJSON() {
    // Obtenemos el objeto de criterios
    llamadaAJAX('/DesktopModules/Inzoco.UI/AjaxProductos.aspx?accion=JSONCriterios',null,null,'obtenerCriterios',JSONProductos,null,true,null);
}

function iniciarMapaProductos() {
    AJAXUpdate();
}

var jsoncriterios=null;
// Actualiza la tabla y el mapa (si lo hay)
function AJAXUpdate() {

    if (verMapa) {
        if (jsoncriterios._critGeo._id_provincia==0 && ifmap.contentWindow.map.getZoom()>10)
            showLoadingAJAX('divMapa','Buscando... <br/><span style="font-size:10px" class="dimm">Si quieres que esto vaya más rápido, selecciona un área menor</span>');
        else
            showLoadingAJAX('divMapa','Buscando...');
    }
    
    jsoncriterios["_fecha_renovacion"]=null;
    jsoncriterios["_fechaAltaIni"]=null;
    jsoncriterios["_fechaAltaFin"]=null;
    jsoncriterios["_fechaModifIni"]=null;
    jsoncriterios["_fechaModifFin"]=null;
    
    var zoom = null,width,height;
    
    if (ifmap) {
        ifmap.contentWindow.document.getElementById('ajaxMapa').style.display='block';
        
        if (!jsoncriterios["_critGeo"]["_longitud"])
            zoom=0; // la primera vez que cargamos, centraremos el mapa en los resultados. para ello no enviamos zoom al controlador. 
        else 
            zoom = ifmap.contentWindow.map.getZoom();    
            
        var mapsize = ifmap.contentWindow.map.getSize();
        
        height = mapsize.height;
        width = mapsize.width;
            
    }
    
    llamadaAJAX('/DesktopModules/Inzoco.UI/AjaxProductos.aspx?accion=JSONProductos',null,'&selectores=1&width='+width+'&height='+height+'&zoom='+zoom+'&crits='+Object.toJSON(jsoncriterios),null,JSONProductos,null,true);
}

function JSONProductos(transport,contexto,jsondata) {
   
    if (jsondata) {
    
        if (contexto=='obtenerCriterios') { // vienen los criterios 
            jsoncriterios = jsondata;
        }  
        else {
       
            // viene un objeto con la actualización del listado y el título 
            if ($('tituloSelector'))
                $('tituloSelector').update(jsondata["tituloListado"]);
                
            
            
            // en el transport vienen varios objetos            
            var datosJSON = transport.evalJSON();
            
            if (datosJSON["num_representables"]==0) {
                ifmap.contentWindow.verTooltip(unescape(decodeURI(datosJSON["tooltip_info"])));
                datosJSON["max_lat"]=datosJSON["min_lat"]=datosJSON["max_lng"]=datosJSON["min_lng"]=null;
            }
            else {
                ifmap.contentWindow.ocultarTooltip();
            }
                  
            if (datosJSON["HTMLTabla"])      
                $('tblres').update(unescape(decodeURI(datosJSON["HTMLTabla"])));
            
            if (datosJSON["HTMLSelectores"]) {
                $('panel_selectores').update(unescape(decodeURI(datosJSON["HTMLSelectores"])));
            }
          
            // Si no se ha especificado área, centramos en los resultados
            if (!jsoncriterios["_critGeo"]["_longitud"]) {
              
                // damos un 10% de margen
                var max_lat = datosJSON["max_lat"];
                var min_lat = datosJSON["min_lat"];
                var max_lng = datosJSON["max_lng"];
                var min_lng = datosJSON["min_lng"];
                
                max_lat += (max_lat-min_lat)*0.1;
                min_lat -= (max_lat-min_lat)*0.1;
                max_lng += (max_lng-min_lng)*0.1;
                min_lng -= (max_lng-min_lng)*0.1;
                
               
                ifmap.contentWindow.centrarExtension(max_lat,min_lat,max_lng,min_lng); 
            }
            
            if (verMapa) {
                situarMarkers(unescape(decodeURI(datosJSON["MarkersMapa"])).evalJSON());
                hideLoadingAJAX('divMapa');
            }           
            
        }      
        
    }
    
}
