var maxCat=0

function catSt() {
	var t=getType()
  return st("Seleccione aqu&iacute; la "+entidad[t].cat.toLowerCase()+" "+entidad[t].named)
}

function othercatSt() {
  return st("Escriba aqu&iacute; la "+entidad[getType()].cat.toLowerCase()+" si no la encuentra en la lista")
}

function clearCat(id) {
  var fld=eval("document.forms[0].cat"+id)
  for (var i=fld.options.length-1; i>=0; i--) fld.options[i]=null
}

function setCat(t,f,c,id) {
  var fld=eval("document.forms[0].cat"+id)
  var val=c?c:fld.options[fld.selectedIndex].value
  clearCat(id)
  var max=Tcat.length
  var str=(f=="search")?htmlToHex("Todas las "+entidad[t].cats):htmlToHex("Seleccione una "+entidad[t].cat.toLowerCase()+"...")
  fld.options[0]=new Option(str,"_")
  var j=1
  for (var i=0; i<max; i++) {
    with (Tcat[i]) {
    	if (t=="T" || types.indexOf(t)>-1) {
        str=htmlToHex(name)
        fld.options[j]=new Option(str,code)
        j++
      }
    }
  }
  if (f=="search") {
    var i=srchCat(t,val)
    if (i>-1) i++
    else i=0
    fld.selectedIndex=i
  } else {
    fld.options[j]=new Option("Otra...","other")
    fld.selectedIndex=(f=="subscribe" || f=="change" || f=="register")?0:1
  }
}

function setCats(t,f,c) {
  for (var i=1; i<=maxCat; i++) {setCat(t,f,c,i);}
}

function valCat(t) {
  var ct=entidad[t].cat.toLowerCase()
  var ent=entidad[t].named
  var str="la "+ct+" "+ent
  return valSelect(document.forms[0].cat1, document.forms[0].othercat1, Tcat.length, str)
}

function checkCat(f,id) {
  var fld=eval("document.forms[0].cat"+id)
  if (f!="search") var other = eval("document.forms[0].othercat"+id)
  var i=fld.selectedIndex
  var v=fld.options[fld.selectedIndex].value
  if (i==0) {
    if (f!="search") disableField("othercat"+id,true)
    fld.focus()
  } else {
    if (v=="other") {
      if (f!="search") disableField("othercat"+id,false)
    } else {
      if (f!="search") {
        disableField("othercat"+id,true)
        other.value=""
      }
    }
  }
}

function formCat(t,f,c,ind) {
  maxCat=ind
  var str=entidad[t].cat
  var s=""
  var max=Tcat.length
  with (document) {
    write('<tr>')
    write('<td class="')
    if (f!="search" && ind==1) write('mand')
    else write('content')
    write('" valign="top">Categor&iacute;a:</td>')
    if (f!="search") s="Seleccione aqu&iacute; la "+str+" "+entidad[t].named
    else s="Seleccione aqu&iacute; la categor&iacute;a"
    write('<td class="frm" valign="top"')
    if (f=="search") write(' colspan="3"')
    write ('>')
    write('<select name="cat'+ind+'" id="cat'+ind+'" size="1" onfocus="fldFocus(\'cat'+ind+'\')" onblur="fldRelease(\'cat'+ind+'\')" onChange="checkCat(&quot;'+f+'&quot;,'+ind+')" alt="'+s+'" title="'+s+'" onMouseOver="return catSt()" onMouseOut="return dst()">')
    s=(f=="search")?"Todas las "+entidad[t].cats:"Seleccione una "+entidad[t].cat.toLowerCase()+"..."
    write('<option value="_">'+s+'</option>')
    var ic=srchCat(t,c)
    var j=-1
    for (var i=0; i<max; i++) {
      with (Tcat[i]) {
      	if (t=="T" || types.indexOf(t)>-1) {
      		j++
        	write('<option value="'+code+'"')
        	if (f=="ex") {
        		if (j==1) write(' selected')
        	} else {
        		if (j==ic) write(' selected')
        	}
        	write('>'+name+'</option>')
        }
      }
    }
    if (f!="search") write('<option value="other">Otra...</option>')
    write('</select>')
    write('</td>')
    if (f!="search") {
      write('<td class="content" valign="top">Otra:</td>')
      s="Escriba aqu&iacute; la "+str.toLowerCase()+" si no la encuentra en la lista"
      write('<td class="frm" valign="top"><input type="text" name="othercat'+ind+'" id="othercat'+ind+'" size="30" maxlength="256" alt="'+s+'" title="'+s+'" onfocus="fldFocus(\'othercat'+ind+'\')" onblur="fldRelease(\'othercat'+ind+'\')" onMouseOver="return othercatSt()" onMouseOut="return dst()" /></td>')
      fld = eval("document.forms[0].othercat"+ind)
      disableField("othercat"+ind,true)
    }
    write('</tr>')
  }
}
