function SerVisitaNueva()
{ var F=document.all.Formulario;
  var Idv=trim(F.Idv.value);
  if(Idv=="")
  { alert("Favor ingresar el Id del video a visitar.");
    F.Idv.focus();
  }
  else
  { 
    Idv=parseInt(Idv);
    if(Idv==0)
    { alert("El numero debe ser mayor a cero.");
      F.Idv.value="";
      F.Idv.focus();
    }
    else
    { F.submit(); }
  }
}

function SerVisitaCorte()
{ var F=document.all.Formulario;
  var Idv=trim(F.Idv.value);
  if(Idv=="")
  { alert("Favor ingresar el Id de la visita.");
    F.Idv.focus();
  }
  else
  { 
    Idv=parseInt(Idv);
    if(Idv==0)
    { alert("El numero debe ser mayor a cero.");
      F.Idv.value="";
      F.Idv.focus();
    }
    else
    { F.submit(); }
  }
}

function SerUltimosVideos()
{ var F=document.all.Formulario;
  var Max=trim(F.Max.value);
  if(Max=="")
  { alert("Favor ingresar el numero de registros que desear obtener");
    F.Max.focus();
  }
  else
  { 
    Max=parseInt(Max);
    if(Max==0)
    { alert("El numero debe ser mayor a cero.");
      F.Max.value="";
      F.Max.focus();
    }
    else
    { F.submit(); }
  }
}

function SerCategoriaActual()
{ var F=document.all.Formulario;
  var Max=F.Max.value;
  var Idv=F.Idv.value;
  var Fei=F.Fei.value;
  var Fet=F.Fet.value;
  
  if(Max=="" || Idv=="" || Fei=="" || Fet=="")
  { alert("Favor ingresar todos los datos.");  }
  else
  { 
    Max=parseInt(Max);
    if(Max==0)
    { alert("El número debe ser mayor a cero.");
      F.Max.value="";
      F.Max.focus();
    }
    else
    { F.submit(); }
  }
}

function SerMasVistos()
{ var F=document.all.Formulario;
  var Max=F.Max.value;
  var Fei=F.Fei.value;
  var Fet=F.Fet.value;
  
  if(Max=="" || Fei=="" || Fet=="")
  { alert("Favor ingresar todos los datos.");  }
  else
  { 
    Max=parseInt(Max);
    if(Max==0)
    { alert("El número debe ser mayor a cero.");
      F.Max.value="";
      F.Max.focus();
    }
    else
    { F.submit(); }
  }
}


function SerVideosRelacionados()
{ var F=document.all.Formulario;
  var Max=F.Max.value;
  var Idv=F.Idv.value;
  var Fei=F.Fei.value;
  var Fet=F.Fet.value;
  
  if(Max=="" || Idv=="" || Fei=="" || Fet=="")
  { alert("Favor ingresar todos los datos.");  }
  else
  { 
    Max=parseInt(Max);
    if(Max==0)
    { alert("El número debe ser mayor a cero.");
      F.Max.value="";
      F.Max.focus();
    }
    else
    { F.submit(); }
  }
}


function SerTagClouds()
{ var F=document.all.Formulario;
  var MaxV=F.MaxV.value;
  var MaxT=F.MaxT.value;
  var Fei=F.Fei.value;
  var Fet=F.Fet.value;
  
  if(MaxV=="" || MaxT=="" || Fei=="" || Fet=="")
  { alert("Favor ingresar todos los datos.");  }
  else
  { 
    MaxV=parseInt(MaxV);
    MaxT=parseInt(MaxT);
    if(MaxV==0 || MaxT==0)
    { alert("Los valores de retornos deben ser mayor a cero.");
      F.MaxV.focus();
    }
    else
    { F.submit(); }
  }
}

//////////// Utiles
function trim(str)
{   while(str.charAt(str.length-1)==" ")
    {   str=str.substring(0,str.length-1);  }
    while(str.charAt(0)==" ")
    {   str=str.substring(1,str.length);    }
    return(str);
}

function acceptNum(evt)
{ var kc=evt.keyCode;

  if(kc>=48 && kc<=57)
  { return true;  }
  else
  { return false; }
}

function deleteRow(tableID)
{ try
  { var table = document.getElementById(tableID);
    var rowCount = table.rows.length;

    for(var i=rowCount-1; i>0; i--)
    { table.deleteRow(i); }
  }
  catch(e)
  { alert(e); }
}

function ReadOnly(evt)
{ evt=evt?evt:event;

  keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  if(keycode!=37 && keycode!=39)
  { return false; }
  else
  { return true;} 
}

function ValidaHora(Hora)
{ Dur=trim(Hora);
  
  if(Hora.length!=8)
  { return false; }
  else
  { HH=parseInt(Hora.substring(0,2));
    MM=parseInt(Hora.substring(3,5));
    SS=parseInt(Hora.substring(6,8));
    
    //Para seguimiento
    /*alert("Dur: " + HH + Hora.substring(2,3) + MM + Hora.substring(5,6) + SS);
    return false*/
    
    if(isNaN(HH) || Hora.substring(2,3)!=":" || isNaN(MM) || Hora.substring(5,6)!=":" || isNaN(SS))
    { return false; }
    else
    { if(MM<60 && SS<60)
      { return true;  }
      else
      { return false; }
    }
  }
}

function LimpiaKeywords(Keywords)
{ //Saca doble coma (,,), espacio-coma y coma-espacio
  while(Keywords.indexOf(",,")>=0 || Keywords.indexOf(" ,")>=0 || Keywords.indexOf(", ")>=0)    
  { 
    Keywords=Keywords.replace(",,",",");
    Keywords=Keywords.replace(" ,",",");
    Keywords=Keywords.replace(", ",",");
  }
  
  //Saca coma al inicio y al final si existe
  if(Keywords.charAt(0)==",")
  { Keywords=Keywords.substring(1,Keywords.length);  }
  
  if(Keywords.charAt(Keywords.length-1)==",")
  { Keywords=Keywords.substring(0,Keywords.length-1);  }
  
  return(Keywords);
}

function XmlToMatriz(docElem)
{ var aux=new Array;
  if(docElem==null)
  { return -1;  }
  
  registros=docElem.childNodes;
  if(registros.length==0)
  { aux[0]=new Array(0,0);  }
  else
  { aux[0]=new Array(registros.length,registros[0].childNodes.length);
    for(i=0;i<registros.length;i++)
    { aux[i+1]=new Array;
      aux[i+1][0]="";
      for(j=0;j<registros[i].childNodes.length;j++)
      { aux[i+1][j+1]=registros[i].childNodes[j].text;  }
    }
  }
  return aux;
}

//Ordenar grilla
function Ordenar(NomDiv,NomEnc,NomTabla,NroColumna,TipoDato,Orden)
{ var t=document.getElementById(NomTabla);
  var ObjCol=document.getElementById(NomEnc).rows[0].cells[NroColumna].childNodes[0];
  
  if(t.rows.length>1)
  { 
    //Genera arreglo
    var biblioteca=new objetoLibros();
    
    for(i=0;i<t.rows.length;i++)
    { if(TipoDato==1)
      { biblioteca.nuevoLibro(i+1,parseInt(t.rows[i].cells[NroColumna].innerHTML),"<TR onDblClick=\"SeleccionaVideo(this)\" style=\"cursor:hand;\" onmouseover=\"this.className='FilaSeleccionada'\" onmouseout=\"out(this);\">" + t.rows[i].innerHTML + "</TR>"); }
      else
      { biblioteca.nuevoLibro(i+1,t.rows[i].cells[NroColumna].innerHTML,"<TR onDblClick=\"SeleccionaVideo(this)\" style=\"cursor:hand;\" onmouseover=\"this.className='FilaSeleccionada'\" onmouseout=\"out(this);\">" + t.rows[i].innerHTML + "</TR>"); }
    }

    //Setea nombre campo y ordenamiento
    var value=trim(ObjCol.value);
    var Signo=value.substring(value.length-1,value.length);
    if(Signo=="<" || Signo==">")
    { value=trim(value.substring(0,value.length-1));  }
        
    //Borra Signos de otras columnas
    f=ObjCol.parentNode.parentNode;
    for(i=0;i<f.cells.length;i++)
    {	var v=f.cells[i].childNodes[0].value;
      if(v!=undefined)
      { if(v.substring(v.length-1,v.length)==">" || v.substring(v.length-1,v.length)=="<")
        { f.cells[i].childNodes[0].value=trim(v.substring(0,v.length-1));  }
      } 
    }

    if(Signo=="<")
    { ObjCol.value=value + ">";
      biblioteca.ordenar('Valor','D'); 
    }
    else
    { ObjCol.value=value + "<";
      biblioteca.ordenar('Valor','A');
    }

    nt="<table id=\"" + NomTabla + "\" style=\"font-family:Tahoma;font-size:10;\" width=\"100%\" cellpadding=\"1px\" cellspacing=\"0px\"><TBODY>";
    //nt="<TBODY>";
    //Busca filas
    for(i=0;i<biblioteca.libro.length;i++)
    { nt+=biblioteca.libro[i].Fila;     }
    nt+="</TBODY></table>";
    
    var d=document.getElementById(NomDiv);
    d.innerHTML=nt;

    //Pone items
    var t=document.getElementById(NomTabla);
    for(f=0;f<t.rows.length;f++)
    { t.rows[f].cells[0].innerHTML=(f+1)+"";
      t.rows[f].className="FilaPar";
      //t.rows[f].setAttribute("onMouseOut","this.className='FilaPar'");
      if(f%2==1)
      { t.rows[f].className="FilaImpar";
        //t.rows[f].setAttribute("onMouseOut","this.className='FilaImpar'");
      }
    }
  }
  ObjCol.blur();
}

function out(ObjTr)
{ if(ObjTr.rowIndex%2==0)
  { ObjTr.className="FilaPar";  }
  else
  { ObjTr.className="FilaImpar";  }
}

//--------- función de definición del objeto libros

function objetoLibros()
{ this.libro=new Array(); }


//--------- función de definición del objeto para contener datos de cada libro

function libro(Codigo,Valor,Fila)
{ this.Codigo=Codigo;
  this.Valor=Valor;
  this.Fila=Fila;
}

//--------- función de definición del método nuevoLibro, para agregar instancias al array libro
objetoLibros.prototype.nuevoLibro=function(Codigo,Valor,Fila)
{ this.libro[this.libro.length]=new libro(Codigo,Valor,Fila); } 

objetoLibros.prototype.ordenar=function()
{ var param = "return ", dato, orden;

  for (var i = 0; i < arguments.length; i += 2)
  { dato = arguments[i];
    orden = (arguments[i+1] == "D")? 1 : -1;

    param += "(x." + dato + " < y." + dato + ")?" + orden + ":";
    param += "(x." + dato + " > y." + dato + ")?" + (0 - orden) + ":"; 
  }

  param += "0;";

  this.libro.sort(new Function("x","y",param)); 
} 
