/*++++++++++++++
.IDENTIFICATION vmine.js
.LANGUAGE       JavaScript
.AUTHOR         G.Landais [CDS]
.ENVIRONMENT    VizieR
.VERSION  1.0   10-Jun-2010
.COMMENTS       JavaScript Routines used by VizieR in Page 1
---------------*/

var vmine_lock=0;
var vmine_show=0;
var vmine_target=0;

function _vmine(){
  var i,n=0;
  var max=20;
  var f=$("form[name$='form0']");
  var cmd="/viz-bin/vizmine.exe?-vmine.out=count&-vmine.max="+max+"&-vmine.weight=0&-vmine.sort&";
 
  var input=f.find("select[name$='-c.u']");
  if (input.length>0){
    if (input.eq(0).val()=='deg') return vmine_up("--");
    if (input.eq(0).val()=='arcmin'){
      input=f.find("input[name$='-c.r']"); 
      if (input.length>0 && input.eq(0).val()>15) return vmine_up("--");
    }
  }

  input=f.find(":input");
  vmine_target=0;
  for (i=0;i<input.length;i++){
    var name=input.eq(i).attr('name');
    if (name=='-source') {}
    else if (name=='-related') {}
    else if (name.search(/-kw./)==0) {}
    else if (name.search(/-c/)==0) {if (name=="-c"){if (input.eq(i).val()!="") vmine_target=1;}}
    else if (name.search(/-withcol/)==0) {}
    else if (name.search(/-ucd/)==0) {}
    else if (name.search(/-media/)==0) {}
    else continue;

    if (input.eq(i).val()=="") continue;
    if (input.eq(i).attr('type')=='radio' && input.eq(i).attr('checked')==false) continue;
    if (input.eq(i).attr('type')=='checkbox' && input.eq(i).attr('checked')==false) continue;
      
    if (input.eq(i).attr('type')=='select-multiple')
      input.eq(i).find(":selected").each(function(){cmd=cmd+"&"+name+"="+$(this).text()});
    else cmd=cmd+"&"+name+"="+encodeURIComponent(input.eq(i).val().replace(/ */,""));
    n++;
  }

  if (n==0) {vmine_up("~ ?? matching catalogs ");return;}

  vmine_info("<img src='/vizier/VizieR/vizmine/blue.gif'>");
  $.ajax({
    url:cmd,
    global:false,
    type:"get",
    dataType:"xml",
    timeout:5000,
    success: function(xml){
      var vmine=$(xml).find('VMINE');
      if (vmine.length==0) return vmine_error("wrong format");
      var count=vmine.find('count');
      if (count.lenth==0) vmine_error("wrong format");
      var pos= f.find("input[name$='-c']");
      if (pos.length>0 && pos.eq(0).val().length>0)
           vmine_up("&le; "+count.text()+" matching catalogs ");
      else vmine_up("~ "+count.text()+" matching catalogs ");

      var div=$("#vminelist");
      if (div.length<1) return;
      var cl,str,select,elt,i,cat=vmine.find('CAT');

      if( cat.length<count.text()) str="the "+max+" most popular catalogs among ~"+count.text()+" found";
      else str=" ~"+count.text()+" catalogs found";

      //if (vmine_show) cl="in";
      //else cl="out";
      //div.html("<a href='javascript:void(0)' onClick='vmine_showrst()'><div class='actaref "+cl+"' id='vmineashow'>(Quick) Result: "+str+"</div></a>");

      str="";
      if (vmine_target==1) str+="<span class='warning '>Catalogs succeptibles to have data (within 10')</span>";
      if( cat.length<count.text()) str+="<span class='warn'>(truncated)</span>";

      if (vmine_show) cl="";
      else cl="hidden";
      var divselect=$("<div class='divselect "+cl+"'>");
      div.append(divselect);
      if (str.length>0) divselect.append($(str));

      for (i=0;i<cat.length;i++){
          var elt=$("<div class='divoption'>");
          var popu=cat.eq(i).attr("popu");
          var str="<div class='popubarre' style='width: 50px;'><div class='imgpopu' style='width: "+popu+"px;'></div></div>";
          str+="<div class='popuval hidden'>"+popu+"("+cat.eq(i).attr("popu")+")"+"</div>";
          str+="<a href='VizieR-2?-source="+cat.eq(i).attr("catid")+"'>"+cat.eq(i).text()+"</a>";
          elt.html(str);
          divselect.append(elt);
      }
    },
    error:function(request,status, err){
      if (status=="parsererror")  return; 
      if (status=="timeout")  vmine_up("...");
      else vmine_error("Ajax error: "+status);
    }
  });
}

function vmine_timer(){
   if(vmine_lock) return;
   vmine_lock=1;
   setTimeout("_vmine()",2000);
}
function vmine(){
   if(vmine_lock) {return setTimeout("vmine()",500);}
   vmine_lock=1;
   _vmine();
}

function vmine_showrst(){
   var e=$('#vminelist .divselect');
   var menu=$("#vmineashow");
   if (e.length<1) return;
   if (vmine_show){
     menu.removeClass("in");
     menu.addClass("out");
     e.addClass('hidden');
     vmine_show=0}
   else{
     menu.removeClass("out");
     menu.addClass("in");
     e.removeClass('hidden');
     vmine_show=1;}
}

function vmine_info(s){$(".unknown").html("");$("#vmine").html("&nbsp;"+s+"&nbsp;");}
function vmine_up(s){vmine_info(s);vmine_lock=0;}
function vmine_error(s){vmine_up("error: "+s);}
function vmine_off(){vmine_up("-- matching catalogs ");}

function showucd(){
  var f=selectForm("form0");
  var l=$("input[name='-ucd']");
  if (l.length==0) l=$("input[name='//ucd']");
  
  if (l.length==0) {
    $("<input type='hidden' name='-ucd' value='1'>").appendTo($(f));
    l=$("input[name='-to']");
    if (l.length>0) l.each(function(i){l.eq(i).val(-1)});
    $("<input type='hidden' name='-to' value='-1'>").appendTo($(f));

    resubmit(f);
    return;
  }

  var ue=$("#ucd2core");
  var sucd=$("#select_ucd");
  var ucd=sucd.find(".in");
  var noucd=sucd.find(".out");

  if (ucd.eq(0).hasClass("hidden")) {
    //l.each(function(i){l.eq(i).attr('name','-ucd')});
    ue.removeClass("hidden");
    ucd.removeClass("hidden");
    noucd.addClass("hidden");
    sucd.removeClass("filled");
    sucd.attr("title","");
  }
  else{ 
    var i,l;
    //l.each(function(i){l.eq(i).attr('name','//ucd')});
    ue.addClass("hidden");
    noucd.removeClass("hidden");
    ucd.addClass("hidden");

    l=ue.find("input[name='-ucd']");
    for (i=0;i<l.length;i++){
      if (l.eq(i).val().length>0) {
        sucd.addClass("filled");
        sucd.attr("title","The (UCD) hidden values are taken into account");
        return;
      }
    }
  }
}

function show(id,divid){
    var e=$("#"+id);
    if (e.length==0) return;
    var i,s=e.find("span");
    for (i=0;i<s.length;i++){
        if (s.eq(i).hasClass("actaref")){
            if (s.eq(i).hasClass("hidden")) 
                s.eq(i).removeClass("hidden");
            else s.eq(i).addClass("hidden");
        }
    }
    e=$("#"+divid);
    if (e.length==0) return;
    if (e.hasClass("hidden")) e.removeClass("hidden");
    else e.addClass("hidden");
}

