function cElem(e){
   return document.createElement(e);
}
function cTxtN(t){
   return document.createTextNode(t);
}
function dChilds(c){
   while ( c.hasChildNodes()) c.removeChild(c.lastChild);
}
function cOpt(value, str){	
   var o=document.createElement("OPTION");
   var t=document.createTextNode(str);
   o.setAttribute("value",value);
   o.appendChild(t);
   return o;
}
function cLabel(t){
   var o=cElem("LABEL");
   var c=cTxtN(t);
   o.appendChild(c);
   return o;
}
function gBId(id){
   return document.getElementById(id);
}
function itemPos(s){
   if (this.length != 0){
      var i = 0;
      while (i < this.length){
         if (this[i] == s)return i;
         i++;
      }
   }
   return -1;
}
Array.prototype.itemPos = itemPos;

function dTableChilds( mTable ){
   mTable.tBodies[0].rows;
} 

function trim (str) 
{
   return str.replace(/^\s+|\s+$/g, "");
}

function ltrim(str) 
{
   return str.replace(/^\s+/, "");
}


function rtrim(str) 
{
   return str.replace(/\s+$/, "");
}

function newDef(t, d)
{
   var dt = cElem("DT");
   var dd = cElem("DD");
   var tN = cTxtN(t);
   var tD = cTxtN(d);
   dd.appendChild(tD);
   dt.appendChild(tN);
   dt.appendChild(dd);
   this.elem.appendChild(dt);
}
dlElem.prototype.addDef = newDef;
dlElem.prototype.getElem = function(){
   return this.elem
};
function dlElem()
{
   this.elem = document.createElement("DL");
}

function fillCB(id, s, idA, descA, iV)
{
   var c = gBId(id);
   dChilds(c);
   if ( iV ){
      var aOpt = cOpt( "_", "- - Seleccione - -");
      c.appendChild(aOpt);
   }
   for(var i=0;i<idA.length;i++)
   {
      aOpt = cOpt( idA[i], descA[i]);
      c.appendChild(aOpt);
   }
	
   if (s == '')
      c.selectedIndex = 0;
   else
      c.value = s;
}

function addElemCB(c, id, desc)
{
   aOpt = cOpt(id, desc);
   c.appendChild(aOpt);
}

function addRangeCB(c, idA, descA)
{
   for(var i=0;i<idA.length;i++)
      addElemCB(c, idA[i], descA[i]);
}

function addSubRangeCB(c, idA, descA, refIdA, refId)
{
   for(var i=0;i<idA.length;i++)
      if (refIdA[i] === refId)
         addElemCB(c, idA[i], descA[i]);
}

function fillIniCB(c, idA, descA, idFirst, descFirst)
{	
   dChilds(c);
   if ((idFirst != null) || (descFirst != null))
   {
      var tId = (idFirst == null)?"":idFirst;
      var tDesc = (descFirst == null)?"":descFirst;
      addElemCB(c, tId, tDesc);
   }
   addRangeCB(c, idA, descA);
}

function fillDepIniCB(c, idA, descA, refIdA, refId, idFirst, descFirst)
{
   dChilds(c);
   if ((idFirst != null) || (descFirst != null))
   {
      var tId = (idFirst == null)?"":idFirst;
      var tDesc = (descFirst == null)?"":descFirst;
      addElemCB(c, tId, tDesc);
   }
   addSubRangeCB(c, idA, descA, refIdA, refId);
}

function selValCB(c, val)
{
   var i = 0;
   while (i<c.length && c.options[i].value !== val)
      i++;
   if (i<c.length) c.selectedIndex = i;
}

function selDescCB(c, desc)
{
   for(var i=0; i<c.length; i++)
      if (c.options[i].text === desc)
      {
         c.selectedIndex = i;
         return;
      }
}

function fillDependentCB (id, s, idA, descA, masterIdA, mId, iV)
{
   var c = gBId(id);
   dChilds(c);

   var aOpt = cOpt( "-", "- - Seleccione - -");
   c.appendChild(aOpt);
	
   for(var i=0;i<idA.length;i++)
   {
      if (masterIdA[i] == mId)
      {
         var aOpt = cOpt( idA[i], descA[i]);
         c.appendChild(aOpt);
      }
   }
	
   if (s == '')
      c.selectedIndex = 0;
   else
      c.value = s;
}

function fillTb ( id, v, idA, descA )
{
   var c = gBId(id);
   if (descA[idA.itemPos(v)] != null)
      c.value = descA[idA.itemPos(v)];
}

function fillUl( ul, arr )
{
   var li, t;
   dChilds(ul);
   for ( var i = 0; i < arr.length; i++)
   {
      t = cTxtN(arr[i]);
      li = cElem("li");
      li.appendChild(t);
      ul.appendChild(li);
   }
}

function validateForm(fId, eDiv, eUl)
{
   var errorList = new Array();
   var f = gBId(fId);

   for(var itr=0;itr < f.elements.length;itr++)
   {
      if(f.elements[itr].validationset)
      {
         f.elements[itr].validationset.validate( errorList );
      }
   }
   var errorDiv = document.getElementById(eDiv);
   var ul = document.getElementById(eUl);
   fillUl( ul, errorList );
   errorDiv.style.display = (errorList.length == 0 ? "none":"block");
   return (errorList.length == 0);
}


function _setDisplay( display )
{
   this.style.display = display;
}

function prevPage(formName)
{
   var page = gBId("pageNo");
   page.value = page.value - 1;
   gBId(formName).submit();
}
function nextPage(formName)
{
   var page = gBId("pageNo");
   page.value = parseInt(page.value) + 1;
   gBId(formName).submit();
}
function gBId(id){
   return document.getElementById(id);
}
function resetPageNo()
{
   var element  = gBId("pageNo");
   element.value = 0;
}