
var Prototype={Version:'1.3.1',emptyFunction:function(){}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}
return destination;}
Object.prototype.extend=function(object){return Object.extend.apply(this,[this,object]);}
Function.prototype.bind=function(object){var __method=this;return function(){__method.apply(object,arguments);}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){__method.call(object,event||window.event);}}
if(!Function.prototype.apply){Function.prototype.apply=function(object,parameters){var parameterStrings=new Array();if(!object)object=window;if(!parameters)parameters=new Array();for(var i=0,n=parameters.length;i<n;i++)
parameterStrings[i]='parameters['+i+']';object.__apply__=this;var result=eval('object.__apply__('+
parameterStrings.join(', ')+')');object.__apply__=null;return result;}}
if(!Array.prototype.push){Array.prototype.push=function(){var startLength=this.length;for(var i=0,n=arguments.length;i<n;i++)
this[startLength+i]=arguments[i];return this.length;}}
if(!Array.prototype.equals){Array.prototype.equals=function(){var i,j,n,b=true;for(i=0,n=arguments.length;b&&i<n;i++)
{b=((arguments[i].length||0)==this.length);for(j=0;b&&j<this.length;j++)
if(this[j].equals)
b=this[j].equals(arguments[i][j]);else
b=(this[j]==arguments[i][j]);}
return b;}}
if(!Array.prototype.iterate){Array.prototype.iterate=function(func)
{for(var i=0,n=this.length;i<n;i++)func(this[i],i);}}
if(!Array.prototype.each)Array.prototype.each=Array.prototype.iterate;if(!Array.prototype.indexOf){Array.prototype.indexOf=function(v,b){for(var i=(b||0),n=this.length;i<n;i++)
if(this[i]==v)
return i;return-1;}}
function $c(array){var nArray=[];for(var i=0,n=array.length;i<n;i++)nArray.push(array[i]);return nArray;}
var Try={these:function(){var returnValue;for(var i=0,n=arguments.length;i<n;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}

function $(){var elements=[],children,i,n;for(i=0,n=arguments.length;i<n;i++)
{var element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);if(n==1)
return element;elements.push(element);}
return elements;}
function $M(){var elements=[],children=[],i,j,n,cn;for(i=0,n=arguments.length;i<n;i++)
{var element=arguments[i];if(typeof element=='string')
{element=document.getElementById(element);children.length=0;if(element)
{if(element.name)
children=document.getElementsByName(element.name);else if(element.tagName)
children=document.getElementsByTagName(element.tagName);for(j=0,cn=children.length;j<cn;j++)
if(children[j].id==element.id)
elements.push(children[j]);if(cn>0)
element=null;}}
if(element)
elements.push(element);}
return elements;}
if(!window.Element)var Element=new Object();Object.extend(Element,{remove:function(element){element=$(element);element.parentNode.removeChild(element);},removeChildren:function(element){element=$(element);for(var i=element.childNodes.length-1;i>=0;i--)
element.removeChild(element.childNodes[i]);},hasClassName:function(element,className){element=$(element);if(!element)return;var hasClass=false;element.className.split(' ').each(function(cn){if(cn==className)hasClass=true;});return hasClass;},setClassName:function(element,className,set){if(set==null)set=true;if(set)
Element.addClassName(element,className);else
Element.removeClassName(element,className);},addClassName:function(element,className){element=$(element);if(!element)return;Element.removeClassName(element,className);element.className+=' '+className;},removeClassName:function(element,className){element=$(element);if(!element)return;var newClassName='';element.className.split(' ').each(function(cn,i){if(cn!=className){if(i>0)newClassName+=' ';newClassName+=cn;}});element.className=newClassName;},cleanWhitespace:function(element){element=$(element);$c(element.childNodes).each(function(node){if(node.nodeType==3&&!/\S/.test(node.nodeValue))Element.remove(node);});},find:function(element,what){element=$(element)[what];while(element.nodeType!=1)element=element[what];return element;}});document.getElementsByClassName=function(className){return getElementsByClassName(document,className);}
function getElementsByClassName(doc,className){var children=doc.getElementsByTagName('*')||doc.all;var elements=[];$c(children).each(function(child){if(Element.hasClassName(child,className))elements.push(child);});return elements;}

CElementoCondicionEstado=Class.create();CElementoCondicionEstado.prototype={initialize:function(id)
{this.elementos=[];this.leedatos=null;this.id=id;this.GetElementos();},Elemento:function(id)
{return($(id)||$('o'+id));},ElementosLeedatos:function(ld,o)
{var ret=[],os;if(!o||!ld)return ret;os=ld.getElementsByTagName(o.tagName);for(i=0;i<os.length;i++)
if(os[i].id==o.id)
ret.push(os[i]);return ret;},GetElementos:function()
{if(this.id&&this.elementos.length<1)
{var el=this.Elemento(this.id);if(el)
{if(this.GetLeedatos())
this.elementos=this.ElementosLeedatos(this.GetLeedatos(),el);else
this.elementos=$M(el.id);this.leedatos=this.LeedatosPadre(el);this.id=el.id;}}
else if(this.leedatos&&this.id.length>0&&(!this.leedatos.parentNode||!this.leedatos.parentNode.tagName))
this.elementos=this.ElementosLeedatos(this.GetLeedatos(),this.Elemento(this.id));return this.elementos;},GetImplicados:function(o)
{var ret=[],i=0;this.GetElementos();if(!o)
return this.elementos;for(i=0;i<this.elementos.length;i++)
if(o==this.elementos[i])
ret.push(this.elementos[i]);return ret;},GetIndiceImplicado:function(o)
{var ret=-1,i=0;if(!o)
return ret;this.GetElementos();for(i=0;i<this.elementos.length;i++)
if(o==this.elementos[i])
return i;return ret;},GetAfectados:function(o,ld)
{var ret=[],i=0;this.GetElementos();if(ld&&ld==this.GetLeedatos())
{var os=this.ElementosLeedatos(this.GetLeedatos(),o)
if(os.length>0)
for(i=0;i<os.length;i++)
if(os[i]==o&&i<this.elementos.length)
return[this.elementos[i]];}
if(!o||o.id!=this.id)
return this.elementos;for(i=0;i<this.elementos.length;i++)
if(o==this.elementos[i])
ret.push(this.elementos[i]);return ret;},EnLeedatos:function(o)
{return!!(this.LeedatosPadre(o));},EsLeedatos:function(o)
{return(o&&o.tagName&&o.tagName.toLowerCase()=='table'&&Element.hasClassName(o,'leedatos'));},LeedatosPadre:function(o)
{var t=o;for(;t&&!this.EsLeedatos(t);t=t.parentNode);return this.EsLeedatos(t)?t:null;},GetLeedatos:function()
{if(!this.leedatos)
return null;if(this.leedatos.parentNode&&this.leedatos.parentNode.tagName)
return this.leedatos;this.leedatos=this.LeedatosPadre(this.Elemento(this.leedatos.id));return this.leedatos;}}
CCondicionEstado=Class.create();CCondicionEstado.prototype={initialize:function(ce)
{this.afectados=[];this.implicados=[];this.condicion=ce.condicion;this.accion=ce.accion;this.IniciaImplicados(ce.implicados);this.IniciaAfectados(ce.afectados);},IniciaImplicados:function(impl)
{for(var i=0;i<impl.length;i++)
this.implicados.push(new CElementoCondicionEstado(impl[i]));},IniciaAfectados:function(aff)
{for(var i=0;i<aff.length;i++)
this.afectados.push(new CElementoCondicionEstado(aff[i]));},AddAfectados:function(aff)
{var i=0,j=0,el;for(i=0;i<aff.length;i++)
{el=new CElementoCondicionEstado(aff[i]);for(j=0;el&&j<this.afectados.length;j++)
if(this.afectados[j].id==el.id)
break;if(j>=this.afectados.length)
this.afectados.push(el);}},ActualizaEstado:function(o)
{var i=0,j=0,impl=[],aff=[];impl=this.GetImplicados(o);if(this.implicados.length>0&&impl.length<1)
return;aff=this.GetAfectados(o);for(i=0;i<aff.length;i++)
for(j=0;j<aff[i].length;j++)
this.accion(aff[i][j],this.condicion(this.FiltraImplicados(impl,aff[i][j]),aff[i][j]));},FiltraImplicados:function(impl,aff)
{var ret=[],ce=new CElementoCondicionEstado,ld,p,tr,i;ret=ret.concat(impl);if(ret.length>0&&(ld=ce.LeedatosPadre(aff)))
for(i=0;!tr&&i<ld.rows.length;i++)
for(tr=aff.parentNode;tr&&tr!=ld.rows[i];tr=tr.parentNode);if(tr)
for(i=ret.length-1;i>=0;i--)
if(ce.LeedatosPadre(ret[i])==ld)
{for(p=ret[i].parentNode;p&&p!=tr;p=p.parentNode);if(!p)
ret.splice(i,1);}
return ret;},GetImplicados:function(o)
{var i=0,ix=-1,ld,ret=[],impl=[],impl2=[];for(i=0;i<this.implicados.length;i++)
{impl=this.implicados[i].GetImplicados(o);if(o&&impl.length>0&&this.implicados[i].GetLeedatos())
{ld=this.implicados[i].GetLeedatos();ix=this.implicados[i].GetIndiceImplicado(o);}
if(o&&impl.length<1)
impl2.push(this.implicados[i]);ret=ret.concat(impl);}
for(i=0;i<impl2.length;i++)
{impl=impl2[i].GetImplicados();if(ld&&ix>=0&&impl.length>0&&impl2[i].GetLeedatos()==ld&&ix<impl.length)
ret.push(impl[ix]);else
ret=ret.concat(impl);}
return ret;},GetAfectados:function(o)
{var i=0,aff=[],ld=null;for(i=0;o&&i<this.implicados.length;i++)
if(o.id==this.implicados[i].id)
ld=this.implicados[i].GetLeedatos();for(i=0;i<this.afectados.length;i++)
aff.push(this.afectados[i].GetAfectados(o,ld));return aff;},GetValorTexto:function(impl,o)
{var obj=$(o);for(i=0;i<impl.length;i++)
if(obj&&obj.id==impl[i].id)
return GetValorTexto(impl[i]);return GetValorTexto(o);},SoloLectura:function(o,b)
{SoloLecturaSaapo(o,b);},OcultarCelda:function(td,o,b)
{if(td&&o&&(td==o||td.id=='o'+o.id))
OcultarObjetoSaapo(td,b);},Ocultar:function(o,b)
{var td=o,tr,tb;if(self.EsObjetoSaapoListaChecks&&EsObjetoSaapoListaChecks(o))
for(;td&&td.tagName&&td.tagName.toLowerCase()!='table';td=td.parentNode);for(;td&&td.tagName&&td.tagName.toLowerCase()!='td';td=td.parentNode);tr=td?td.parentNode:null;for(;tr&&tr.tagName&&tr.tagName.toLowerCase()!='tr';tr=tr.parentNode);if(tr)
{var ld=(new CElementoCondicionEstado).LeedatosPadre(o),i=0,j=0,os=[],ts;if(ld)
{OcultarObjetoSaapo(o,b);if(b)
{ts=ld.getElementsByTagName(o.tagName);for(i=0;i<ts.length;i++)
if(ts[i].id==o.id)
os.push(ts[i]);for(i=0;i<os.length;i++)
if(os[i].style.display!='none')
break;}
if(!b||i>=os.length)
{for(j=0;j<tr.cells.length;j++)
if(tr.cells[j]==td)
break;for(i=0;i<ld.rows.length;i++)
if(j<ld.rows[i].cells.length)
OcultarObjetoSaapo(ld.rows[i].cells[j],b);}}
for(i=0;i<tr.cells.length;i++)
this.OcultarCelda(tr.cells[i],o,b);}},Requerido:function(o,b)
{RequeridoSaapo(o,b);}}
var CGestorCondicionEstado=new function()
{this.condiciones=[];this.Add=function(ce)
{for(var i=0;i<this.condiciones.length;i++)
if(this.condiciones[i].condicion.toString()==ce.condicion.toString()&&this.condiciones[i].accion.toString()==ce.accion.toString())
break;if(i<this.condiciones.length)
this.condiciones[i].AddAfectados(ce.afectados);else
this.condiciones.push(new CCondicionEstado(ce));};this.ActualizaEstado=function(o)
{for(var i=0;i<this.condiciones.length;i++)
this.condiciones[i].ActualizaEstado(o);};}

var Field={clear:function(){for(var i=0,n=arguments.length;i<n;i++)
$(arguments[i]).value='';},focus:function(element){$(element).focus();},present:function(){for(var i=0,n=arguments.length;i<n;i++)
if($(arguments[i]).value=='')return false;return true;},select:function(element){$(element).select();},activate:function(element){$(element).focus();$(element).select();}}
var Form={serialize:function(form,id){var elements=Form.getElements($(form));var queryComponents=[];for(var i=0,n=elements.length;i<n;i++){var queryComponent=Form.Element.serialize(elements[i],id);if(queryComponent)
queryComponents.push(queryComponent);}
return queryComponents.join('&');},getElements:function(form){var form=$(form);var elements=[];var tagElements=form.getElementsByTagName('*');for(var j=0,n=tagElements.length;j<n;j++)
if(Form.Element.Serializers[tagElements[j].tagName.toLowerCase()])
elements.push(tagElements[j]);return elements;},getInputs:function(form,typeName,name){var form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)
return inputs;var matchingInputs=[],input;for(var i=0,n=inputs.length;i<n;i++){input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(input);}
return matchingInputs;},disable:function(form){var elements=Form.getElements(form);for(var i=0,n=elements.length;i<n;i++){var element=elements[i];element.blur();element.disabled='true';}},enable:function(form){var elements=Form.getElements(form);for(var i=0,n=elements.length;i<n;i++){var element=elements[i];element.disabled='';}},focusFirstElement:function(form){var form=$(form);var elements=Form.getElements(form);for(var i=0,n=elements.length;i<n;i++){var element=elements[i];if(element.type!='hidden'&&!element.disabled){Field.activate(element);break;}}},reset:function(form){$(form).reset();}}
Form.Element={serialize:function(element,id){var element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
{var ret='';if(id&&parseInt(element.id)>0)
ret+=encodeURIComponent(element.id);else
ret+=encodeURIComponent(parameter[0]);ret+='='+encodeURIComponent(parameter[1]);return ret;}},getValue:function(element){var element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
return parameter[1];}}
Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'submit':case'hidden':case'password':case'text':return Form.Element.Serializers.textarea(element);case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);}
return false;},inputSelector:function(element){if(element.checked)
return[element.name,element.value];},textarea:function(element){return[element.name,element.value];},select:function(element){var value='';if(element.type=='select-one'){var index=element.selectedIndex;if(index>=0)
value=element.options[index].value||element.options[index].text;}else{value=[];for(var i=0,n=element.length;i<n;i++){var opt=element.options[i];if(opt.selected)
value.push(opt.value||opt.text);}}
return[element.name,value];}}
var $F=Form.Element.getValue;Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});

if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event?(event.target||event.srcElement):null;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event)
{return(((event.which)&&(event.which!=1))||((event.button)&&(event.button!=1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},pointer:function(event)
{return[this.pointerX(event),this.pointerY(event)];},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture)
{if(!this.observers)this.observers=[];if(element.addEventListener)
element.addEventListener(name,observer,useCapture);else if(element.attachEvent)
element.attachEvent('on'+name,observer);else
return null;var n=this.observers.push([element,name,observer,useCapture]);return this.observers[n-1];},unloadCache:function(){if(!Event.observers)return;for(var i=0,length=Event.observers.length;i<length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture)
{var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';return this._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture)
{var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){try{element.detachEvent('on'+name,observer);}catch(e){}}},fire:function(element,name)
{for(var i=0;i<this.observers.length;i++)
if(element==this.observers[i][0]&&name==this.observers[i][1]&&this.observers[i][2]&&this.observers[i][2].call)
this.observers[i][2].call();var f=eval('element.on'+name);if(f)
f.call(element);}});Event.observe(window,'unload',Event.unloadCache,false);

var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')},function(){return new XMLHttpRequest()})||false;}}
Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,parameters:''}.extend(options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=(new Ajax.Base()).extend({initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{if(this.options.method=='get')
url+='?'+parameters;this.transport.open(this.options.method,url,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);}
this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);}catch(e){}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version];if(this.options.method=='post'){requestHeaders.push('Content-type','application/x-www-form-urlencoded');if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);},onStateChange:function(){var readyState=this.transport.readyState;if(readyState!=1)
this.respondToReadyState(this.transport.readyState);},respondToReadyState:function(readyState){var event=Ajax.Request.Events[readyState];if(event=='Complete')
(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(this.transport);(this.options['on'+event]||Prototype.emptyFunction)(this.transport);if(event=='Complete')
this.transport.onreadystatechange=Prototype.emptyFunction;}});

CRelacionComboDependiente=Class.create();CRelacionComboDependiente.prototype={initialize:function(padres,hijos)
{this.ps=padres;this.hs=(hijos||[]);}}
CComboDependiente=Class.create();CComboDependiente.prototype={initialize:function(idPadre,idHijo,options)
{this.p=idPadre;this.h=idHijo;this.SetOptions(options);this.InitRellenoHijo();this.InitRelacion();this.loading=[];},SetOptions:function(options)
{this.options={enciclopedia:0,autoDiccionario:0,soloSeleccion:0,comboBusqueda:0}.extend(options||{});},InitRellenoHijo:function()
{if(this.h)
this.rh=eval('self.r_'+this.h);},InitRelacion:function()
{if(!this.p||!this.h)
return;this.r=[];var r=eval('self.r_'+this.p+'_'+this.h);if(r)
r.each((function(e){this.AddRelacion([[this.p,e[0]]],e[1],true);}).bind(this));},IndiceHijo:function(iden)
{if(!this.rh||!this.rh.length)return-1;var ini=0,fin=this.rh.length-1,i=0,c=parseInt(iden),ret=-1;do
{i=Math.floor((ini+fin)/2);if(parseInt(this.rh[i][0])==c){ret=i;break;}
if(parseInt(this.rh[ini][0])==c){ret=ini;break;}
if(parseInt(this.rh[fin][0])==c){ret=fin;break;}
if(parseInt(this.rh[i][0])<c)ini=i;else fin=i;}while(ini+1<fin);for(;ret>0&&ret<this.rh.length&&parseInt(this.rh[ret][0])==parseInt(this.rh[ret-1][0]);ret--);return ret;},Ejecuta:function(padre,hijo,options)
{if(!padre||!hijo)
return;if(options&&options.evitarSoloSeleccion&&options.evitarSoloSeleccion==this.h&&this.options.soloSeleccion)
return;var i=0;if(!padre.tagName&&padre.length)
{if(!hijo.tagName&&hijo.length&&padre.length==hijo.length)
for(i=0;i<padre.length;i++)
this.Ejecuta(padre[i],hijo[i],options);else
for(i=0;i<padre.length;i++)
this.Ejecuta(padre[i],hijo,options);return;}
if(!hijo.tagName)
for(i=0;i<hijo.length;i++)
this.Ejecuta(padre,hijo[i],options);this.EjecutaDependencia(padre,hijo);},Cargando:function(sel)
{var s=sel.toString();if(!this.loading[s])
this.loading[s]=1;},EnCarga:function(sel)
{return(this.loading[sel.toString()]>0)},Cargado:function(sel)
{this.loading[sel.toString()]=-1;},Seleccion:function(padre,hijo)
{var ps=CGestorDependientes.ObjetosDependientePadre(hijo),ret=[],i=0,compruebaPadre=0;for(i=0;i<ps.length;i++)
{if(ps[i]==padre)
compruebaPadre=1;ret.push([ps[i].id,Form.Element.getValue(ps[i])]);}
if(!compruebaPadre)
return[];return ret;},EjecutaDependencia:function(padre,hijo)
{if(!padre.tagName||!hijo.tagName||padre.id!=this.p||hijo.id!=this.h||padre.id==hijo.id)
return;var sel=this.Seleccion(padre,hijo),rel=this.Relacion(sel),i=0;for(i=0;i<sel.length;i++)
if(sel[i][1]!=''&&sel[i][1]!='*NULL*')
break;if(i>=sel.length&&!CGestorDependientes.consulta)
this.VaciaCombo(hijo,true);else if(rel)
{if(this.options.soloSeleccion)
this.SeleccionaCombo(hijo,rel);else
this.RellenaCombo(hijo,rel);}
else
this.GetRelacion(sel,padre,hijo);},GetRelacion:function(sel,padre,hijo)
{if(CGestorDependientes.EsJerarquico(hijo))
{this.AddRelacion(sel,[]);return this.EjecutaDependencia(padre,hijo);}
var body='idHijo='+this.h,hs=CGestorDependientes.M(this.h.toString()),input=this.InputBox(hijo),uri=CGestorDependientes.uriBase,i=0;for(i=0;i<hs.length;i++)
body+='&otro='+Form.Element.getValue(hs[i]);for(i=0;i<sel.length;i++)
body+='&padre='+sel[i][0]+'.'+sel[i][1];if(input)
body+='&vc='+Form.Element.getValue(input);if(uri&&sel.length>0)
{if(this.EnCarga(sel))
setTimeout((function(){this.EjecutaDependencia(padre,hijo);}).bind(this),150);else
{this.Cargando(sel);new Ajax.Request(uri,{method:'post',postBody:body,onSuccess:(function(req){this.OnSuccessRelacion(sel,req)}).bind(this),onLoading:(function(){this.OnLoadingRelacion(sel,hijo)}).bind(this),onFailure:(function(req){this.OnFailureRelacion(sel,req)}).bind(this),onComplete:(function(){this.OnCompleteRelacion(sel,padre,hijo)}).bind(this)});}}},OnSuccessRelacion:function(sel,req)
{var r=null,rh=null;try{eval('r='+req.responseText);}
catch(e){r=null;}
if(r&&r.r&&r.rh)
{rh=r.rh;r=r.r;}
this.AddRelacion(sel,r);if(rh)
this.rh=rh;},OnLoadingRelacion:function(sel,hijo)
{if(this.EnCarga(sel))
hijo.disabled=true;},OnFailureRelacion:function(sel,req)
{this.AddRelacion(sel);},OnCompleteRelacion:function(sel,padre,hijo)
{this.Cargado(sel);this.EjecutaDependencia(padre,hijo);hijo.disabled=false;var input=this.InputBox(hijo);if(input&&input.value.length>0)
this.r=[];},AddRelacion:function(sel,r,init)
{if(init||!this.Relacion(sel))
this.r.push(new CRelacionComboDependiente(sel,(r||[])));},Relacion:function(sel,g)
{var i=0,r=null;for(i=0;i<this.r.length;i++)
if(this.r[i].ps.equals(sel))
return this.r[i].hs;for(i=0;!g&&!r&&i<CGestorDependientes.dependientes.length;i++)
if(CGestorDependientes.dependientes[i]!=this&&CGestorDependientes.dependientes[i].h==this.h)
r=CGestorDependientes.dependientes[i].Relacion(sel,1);return r;},RecargaVariableHijo:function(o)
{var body='idHijo='+this.h,hs=CGestorDependientes.M(this.h.toString()),ps=CGestorDependientes.ObjetosDependientePadre(o),uri=CGestorDependientes.uriBase,i=0;for(i=0;i<hs.length;i++)
body+='&otro='+Form.Element.getValue(hs[i]);for(i=0;i<ps.length;i++)
body+='&padre='+ps[i].id+'.'+Form.Element.getValue(ps[i]);if(o&&uri)
new Ajax.Request(uri,{method:'post',postBody:body+'&rh=1',onSuccess:this.OnSuccessTablaHijo.bind(this),onComplete:(function(){this.OnCompleteTablaHijo(o)}).bind(this)});},OnSuccessTablaHijo:function(req)
{var r=null;try{eval('r='+req.responseText);}
catch(e){r=null;}
this.rh=(r||[]);},OnCompleteTablaHijo:function(hijo)
{eval('self.r_'+this.h+'=this.rh');RefrescaCombos(hijo.id);if(CGestorDependientes.EsJerarquico(hijo))
{var init=eval('self.Init_'+hijo.id+'_arbolD');if(init)
a=init(hijo,null,{noDesplegar:true});}
else if(!this.options.enciclopedia)
CGestorDependientes.dependientes.each((function(d){if(d.h==this.h&&d.p!=d.h){d.rh=this.rh;CGestorDependientes.Ejecuta(d.p,null,d.h,null,{evitarSoloSeleccion:this.h});}}).bind(this));this.OnChangeHijo(hijo);},ValidaCombo:function(o,ov)
{if(ov&&ov.comboBox&&ov.comboBox.DropdownVisible())return;var body='idHijo='+this.h,v=Form.Element.getValue(ov);ps=CGestorDependientes.ObjetosDependientePadre(o),uri=CGestorDependientes.uriBase,i=0;if(v.length>0&&!this.InputCambiado(o,ov))
return;for(i=0;i<ps.length;i++)
body+='&padre='+ps[i].id+'.'+Form.Element.getValue(ps[i]);if(o)
{if(v.length<1)
this.VaciaCombo(o,true);else if(uri)
new Ajax.Request(uri,{method:'post',postBody:body+'&rh=1&vc='+v,onSuccess:(function(req){this.OnSuccessValidaCombo(o,v,req)}).bind(this),onFailure:(function(req){this.OnFailureValidaCombo(o,v,req)}).bind(this),onComplete:(function(){this.OnCompleteValidaCombo(o,ov)}).bind(this)});}},OnSuccessValidaCombo:function(o,v,req)
{var r=null;try{eval('r='+req.responseText);}
catch(e){r=null;}
if(r&&r.length)
{o.options.length=1;o.options[0]=new Option(r[r.length-1][1],r[r.length-1][0]);o.options[0].selected=true;}
else
this.VaciaCombo(o);},OnFailureValidaCombo:function(o,v,req)
{this.VaciaCombo(o);},OnCompleteValidaCombo:function(o,ov)
{this.OnChangeHijo(o);if(ov&&o.selectedIndex>=0)
ov.size=Math.max(ov.size,o[o.selectedIndex].text.length*1.2);if(this.options.autoDiccionario&&(o.options.length<1||o.value=='*NULL*')&&o.nextSibling&&o.nextSibling.name=='diccionario'&&o.nextSibling.type.toLowerCase()=='button')
Event.fire(o.nextSibling,'click');},CallbackRellenoCombo:function(o,combobox)
{var body='idHijo='+this.h,v=Form.Element.getValue(o);select=this.SelectBox(o),ps=CGestorDependientes.ObjetosDependientePadre(select?select:o),uri=CGestorDependientes.uriBase,i=0;for(i=0;i<ps.length;i++)
body+='&padre='+ps[i].id+'.'+Form.Element.getValue(ps[i]);if(o&&combobox)
{if(v.length<1)
combobox.HideDropdown();else if(uri)
new Ajax.Request(uri,{method:'post',postBody:body+'&rh=1&cb=1&vc='+v,onSuccess:(function(req){this.OnSuccessCallbackRellenoCombo(combobox,req)}).bind(this),onFailure:(function(req){this.OnFailureCallbackRellenoCombo(o,v,combobox,req)}).bind(this)});}},OnSuccessCallbackRellenoCombo:function(combobox,req)
{var a=null;try{eval('a='+req.responseText);}
catch(e){a=null;}
if(!combobox.DropdownVisible()&&(typeof a=="undefined"||a.length<1))
a=combobox.allItems;if(a)
combobox.SetItems(a);},OnFailureCallbackRellenoCombo:function(o,v,combobox,req)
{},ColoreaInput:function(o,i)
{o=(o||this.SelectBox(i));i=(i||this.InputBox(o));if(!o||!i)return;if(i.comboBox&&i.comboBox.options.cbColoreaInput)
return i.comboBox.options.cbColoreaInput(o,i);var tr=Element.hasClassName(i,"datosrojo"),rojo=this.InputCambiado(o,i);if(!tr&&rojo)
Element.addClassName(i,"datosrojo");if(tr&&!rojo)
Element.removeClassName(i,"datosrojo");},InputCambiado:function(o,i)
{if(!o||!i)return false;var v=Form.Element.getValue(i);return(v.length>0&&(o.options.length<1||o.selectedIndex<0||o.value=='*NULL*'||o.options[o.selectedIndex].text!=v));},RellenaCombo:function(hijo,rel)
{if(!rel||rel.length<1)
this.VaciaCombo(hijo,true);else
{var sel=Form.Element.getValue(hijo),i,ix,n,selTxt=(hijo.selectedIndex>=0&&hijo.value!='*NULL*')?hijo.options[hijo.selectedIndex].text:'';input=this.InputBox(hijo);this.VaciaCombo(hijo);for(i=0;i<rel.length;i++)
{if((ix=this.IndiceHijo(rel[i]))>=0)
{n=hijo.options.length;hijo.options[n]=new Option(this.rh[ix][1],this.rh[ix][0]);if(sel==this.rh[ix][0]||(input&&input.value==this.rh[ix][1])||(selTxt.length>0&&selTxt==this.rh[ix][1]))
hijo.selectedIndex=n;}}
if(hijo.options.length==2&&hijo.options[0].value=='*NULL*'&&self.requeridosSaapo)
{if(requeridosSaapo.indexOf(hijo.id.toString())>=0)
hijo.remove(0);}
this.OnChangeHijo(hijo,sel);}},SeleccionaCombo:function(hijo,rel)
{if(rel&&rel.length>0)
{var sel=Form.Element.getValue(hijo),i,j,ix,n,input=this.InputBox(hijo);for(i=0;i<rel.length;i++)
if((ix=this.IndiceHijo(rel[i]))>=0)
{for(j=0;j<hijo.options.length;j++)
if(hijo.options[j].value==this.rh[ix][0])
break;if(j<hijo.options.length)
{hijo.selectedIndex=j;break;}}
this.OnChangeHijo(hijo,sel);}},VaciaCombo:function(hijo,ch)
{if(this.options.soloSeleccion)return;var sel=Form.Element.getValue(hijo);if(hijo.tagName&&hijo.tagName.toLowerCase()=='select')
{var len=0,i,txtNulo=null;for(i=0;i<2&&i<hijo.options.length;i++)
{if(i<1&&hijo.options[i].value==-1)
len=1;else if(hijo.options[i].value=='*NULL*')
txtNulo=hijo.options[i].text;}
hijo.options.length=len;if(len<1&&txtNulo!=null)
hijo.options[len]=new Option(txtNulo,'*NULL*');}
if(ch)
this.OnChangeHijo(hijo,sel);},InputBox:function(o)
{var b=o?o.previousSibling:null;if(b&&b.tagName&&b.tagName.toLowerCase()=='input'&&b.name==o.name+'_txt')
return b;return null;},SelectBox:function(i)
{var b=i?i.nextSibling:null;if(b&&b.tagName&&b.tagName.toLowerCase()=='select'&&b.name+'_txt'==i.name)
return b;return null;},OnChangeHijo:function(hijo,sel)
{var input=this.InputBox(hijo),seln=Form.Element.getValue(hijo);if(input)
{if(hijo.selectedIndex>=0&&hijo.value!='*NULL*')
input.value=hijo.options[hijo.selectedIndex].text;this.ColoreaInput(hijo,input);}
if(!this.options.comboBusqueda&&self.EsComboBusqueda&&EsComboBusqueda(hijo))
{if(sel!=null&&sel!=seln&&seln>0)
Event.fire(hijo,'change');}
else if(sel==null||sel!=seln)
Event.fire(hijo,'change');if(CGestorDependientes.EsJerarquico(hijo))
{var init=eval('self.Init_'+hijo.id+'_arbolD');if(init)
a=init(hijo,null,{noDesplegar:true});}},Trace:function(s)
{var p=document.createElement('p');p.innerHTML=(new Date().getTime())+':'+s;document.body.appendChild(p);}}
var CGestorDependientes=new function()
{this.dependientes=[];this.uriBase;this.consulta=false;this.Add=function(idPadre,idHijo,options)
{this.dependientes.push(new CComboDependiente(idPadre,idHijo,options));};this.Ejecuta=function(idPadre,objeto,idHijo,objetoHijo,options)
{var i,j,ps,hs,h;if(!idPadre)
{this.dependientes.each((function(d){if(!idHijo||d.h==idHijo)
this.Ejecuta(d.p,objeto,d.h,null,options);}).bind(this));return;}
if(!objeto&&objetoHijo)
{ps=this.ObjetosDependientePadre(objetoHijo);for(i=0;i<ps.length;i++)
this.Ejecuta(idPadre,ps[i],idHijo,objetoHijo,options);return;}
ps=CGestorDependientes.M(idPadre.toString());if(!objeto)
{for(i=0;i<ps.length;i++)
this.Ejecuta(idPadre,ps[i],idHijo,null,options);return;}
if(objeto.id!=idPadre)return;for(i=0;i<this.dependientes.length;i++)
if(this.dependientes[i].p==idPadre&&(!idHijo||this.dependientes[i].h==idHijo))
{h=null;hs=CGestorDependientes.M(this.dependientes[i].h.toString());if(objetoHijo&&objetoHijo.id==this.dependientes[i].h)
h=objetoHijo;else if(ps.length==1)
h=hs;else if(ps.length==hs.length)
for(j=0;!h&&j<ps.length;j++)
if(ps[j]==objeto)
h=hs[j];if(!h)
alert('grrr comboDependiente.js');this.dependientes[i].Ejecuta(objeto,h,options);}};this.Inicia=function(idPadre,objeto,idHijo,objetoHijo)
{var i,j,ps,hs,h;if(!idPadre)
{this._m=[];this.dependientes.each((function(d){if(!idHijo||d.h==idHijo)
this.Inicia(d.p,objeto,d.h,null);}).bind(this));this._m=null;return;}
if(!objeto&&objetoHijo)
{ps=this.ObjetosDependientePadre(objetoHijo);for(i=0;i<ps.length;i++)
this.Inicia(idPadre,ps[i],idHijo,objetoHijo);return;}
ps=CGestorDependientes.M(idPadre.toString());if(!objeto)
{for(i=0;i<ps.length;i++)
this.Inicia(idPadre,ps[i],idHijo,null);return;}
if(objeto.id!=idPadre)return;for(i=0;i<this.dependientes.length;i++)
if(this.dependientes[i].p==idPadre&&(!idHijo||this.dependientes[i].h==idHijo))
{hs=CGestorDependientes.M(this.dependientes[i].h.toString());if(objetoHijo&&objetoHijo.id==this.dependientes[i].h)
h=objetoHijo;else if(ps.length==1)
h=hs;else if(ps.length==hs.length)
for(j=0;!h&&j<ps.length;j++)
if(ps[j]==objeto)
h=hs[j];if(!h)
alert('grrr comboDependiente.js');if(this.consulta)
{if(parseInt(Form.Element.getValue(objeto))>0)
this.dependientes[i].Ejecuta(objeto,h);}
else if(ps.length>1&&h.tagName&&!parseInt(Form.Element.getValue(h)))
this.dependientes[i].Ejecuta(objeto,h);}};this.EsJerarquico=function(objeto)
{var ps=this.ObjetosDependientePadre(objeto),i;for(i=0;i<ps.length;i++)
if(ps[i].id==objeto.id)
return true;return false;};this.ObjetosDependientePadre=function(objeto)
{var ret=[],i,j,p;objeto=this.GetObjetoDependiente(objeto);for(i=0;objeto&&i<this.dependientes.length;i++)
if((p=this.ObjetoDependientePadre(this.dependientes[i].p,objeto))&&ret.indexOf(p)<0)
ret.push(p);return ret;};this.ObjetoDependientePadre=function(idPadre,objeto)
{var i,j,ps,hs,ret=null;objeto=this.GetObjetoDependiente(objeto);if(!objeto)return ret;ps=CGestorDependientes.M(idPadre.toString());for(i=0;!ret&&i<this.dependientes.length;i++)
if(this.dependientes[i].p==idPadre&&this.dependientes[i].h==objeto.id)
{if(ps.length==1)
ret=ps[0];else
{hs=CGestorDependientes.M(this.dependientes[i].h.toString());if(ps.length==hs.length)
for(j=0;!ret&&j<hs.length;j++)
if(hs[j]==objeto)
ret=ps[j];}}
return ret;};this.GetObjetoDependiente=function(obj)
{if(obj&&obj.name=='diccionario'&&obj.type.toLowerCase()=='button')
for(obj=obj.previousSibling;obj&&obj.tagName.toLowerCase()!='select';obj=obj.previousSibling);return obj;};this.M=function(id)
{if(this._m)
{if(!this._m[id])
this._m[id]=$M(id);return this._m[id];}
return $M(id);}}