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 cTxtArea(id,idTxt)
{
	var c=gBId(id);
	dChilds(c);
	var d=cElem("textarea");
	d.setAttribute("id",idTxt);
	
	c.appendChild(d);
}
function cOptCheck(value, str)
{
	var o=document.createElement("OPTION");	
	var t=document.createTextNode(str);
	o.setAttribute("value",value);
	o.setAttribute("selected", "selected");
	o.appendChild(t);
	return o;
}
function cLabel(t){var o=cElem("LABEL");var c=cTxtN(t);o.appendChild(c);return o;}
function gBId(id)
{
	var e = document.getElementById(id);	
	if(!e)
	{
		alert("No se puede obtener el elemento: "+ id);
	}
	return e;
}
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 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(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 fillCBMultiple(id, s, idA, descA, iV, dC)
{
	var c = gBId(id);
	if(dC)
		dChilds(c);
	if ( iV ){
		var aOpt = cOpt( "_", "- - Seleccione - -");
		c.appendChild(aOpt);
	}
	for(i=0;i<idA.length;i++)
	{
		if(in_array(idA[i], s))
		{
			aOpt = cOptCheck( idA[i], descA[i]);
		}
		else
		{
			aOpt = cOpt( idA[i], descA[i]);
		}
		
		//aOpt = cOpt( idA[i], descA[i]);
		c.appendChild(aOpt);
	}	
	/*if (s == '')
		c.selectedIndex = 0;
	else
		c.value = s;*/
}
function in_array(value, array)
{
	for(j=0; j<array.length; j++)
	{
		if(array[j] == value)
			return true;
	}
	return false;
}



function fillDependentCB (id, s, idA, descA, masterIdA, mId, iV)
{
	var c = gBId(id);
	dChilds(c);

	var aOpt = cOpt( "_", "- - Seleccione - -");
	c.appendChild(aOpt);
	
	for(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);
	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 hideZone(id)
{
	var z = gBId(id);
	if(z)
	 z.style.display = "none";
}
function showZone(id)
{
	var z = gBId(id);
	if(z)
	 z.style.display = "block";	
}
function validateForm(fId, eDiv)
{
	var errorList = new Array();
	var f = gBId(fId);
	var errorDiv = document.getElementById(eDiv);
	for(var itr=0;itr < f.elements.length;itr++)
	{
		if(f.elements[itr].validationset)
		{
		 f.elements[itr].validationset.validate( errorList );
		}
	}
	//setTextToArea("error_zone", errorList.length > 0 ? errorList[0]: "");
	setTextArrayToArea("error_zone", 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 gBTName(tag, obj)
{
	if(obj == null)
	{
		//alert("d");
		return document.getElementsByName(tag);
	}
	else
	{
		//alert(obj);
		return obj.getElementsByTagName(tag);
	}
}
function setTextToArea(idArea, msg)
{
	if(gBId(idArea).style.display == "none")
		gBId(idArea).style.display = "block";
	gBId(idArea).innerHTML = msg;
}

function setTextArrayToArea(idArea, arr)
{
	var str = "<ol>";
	for(var i=0; i<arr.length; i++)
	{
		str += "<li>"+arr[i]+"</li>";
	}
	str += "</ol>";
	setTextToArea(idArea, str);
}

function getValue(id)
{
	return gBId(id).value;
}
function setValue(id, val)
{
	gBId(id).value = val;
}
/**
 * Filtrar elementos de un a arreglo de colecciones html 
 * @param {Object} elems
 * @param {Object} att
 * @param {Object} valor
 */
function filtrar(elems, att, valor)
{
	var aux = new Array();
	var cont = 0;
	for(var i=0; i<elems.length; i++)
	{
		if(elems[i].getAttribute(att) == valor)
		{
			aux[cont++] = elems[i];
		}
	}
	return aux;
}

function resetPageNo()
{
	var element  = gBId("pageNo");
	element.value = 0;
}