<!--
function Trim(TheString)
{
	var len;

	len = TheString.length;
 	while(TheString.substring(0,1) == " "){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}

 	while(TheString.substring(len-1, len) == " "){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}
 	return TheString;
}

function AttrChckChangedByArray( arrayName )
{
	var state = !(window.event.srcElement.checked)
	for( var i=0; i< arrayName.length; i++ )
	{
		AttrChangeEnabledOf( arrayName[i], state )
	}
}

//El state: 
function AttrChckChangedByArrayWithState( arrayName, state, iniIndex )
{
	for( var i=iniIndex; i< arrayName.length; i++ )
	{
		AttrChangeEnabledOf( arrayName[i], !state )
	}	
}

function AttrChckChangedById( tableId, evt )
{

//Modified by WRG (15-July-2008): Change browser type identifier, with the correct way to do it
//this was made to get compatibility
	//IE?
	//if (typeof window.showModalDialog != "undefined") //wrong way
	if(navigator.appName == 'Microsoft Internet Explorer') //correct way
	{
		var state = !(window.event.srcElement.checked)
		AttrChangeEnabledOf( document.getElementById(tableId), state )
	}
	else //Mozilla
	{
		var state = !(evt.target.checked)
		AttrChangeEnabledOf( document.getElementById(tableId), state )
		
	}
}

function AttrChangeEnabledOf(attribute, state)
{	
	var row;
	var controles;
	row = attribute.rows[0];
	var tableName = attribute.id;	
	var hasCheck= false;
	//alert("Estado: " + state);	
	for (var x = row.cells.length -1; x != -1; x--)
	{
		controles = row.cells[x].childNodes;		
		for (var y = controles.length -1; y!= -1 ; y--)
		{	
			//Es el que permite activar, desactivar un control
			if ( (x==0) && (y ==0) && (controles[y].type == "checkbox" ) )	
			{
				hasCheck = true;
				continue;
			}
				
			//No es un objeto
			if (typeof(controles[y].disabled) == "undefined") continue;
			
			controles[y].disabled = state;
			controles[y].enabled = !state;
			controles[y].readOnly = state;

			if ( controles[y].id == (tableName +  "v") )
			{
				controles[y].enabled = !state;
				controles[y].disabled = ""
				ValidatorEnable( controles[y], controles[y].enabled )
			}
		}
	}
	if ( !hasCheck )
	{
		attribute.disabled = state;
		attribute.enabled = !state;
	}
}

function AttrEnableValidatorOf(attribute, state)
{	
	var row;
	var controles;
	row = attribute.rows[0];
	var tableName = attribute.id;	
	var hasCheck= false;
	//alert("Estado: " + state);	
	for (var x = row.cells.length -1; x != -1; x--)
	{
		controles = row.cells[x].childNodes;		
		for (var y = controles.length -1; y!= -1 ; y--)
		{	
			//No es un objeto
			if (typeof(controles[y].disabled) == "undefined") continue;
			
			//controles[y].disabled = state;
			//controles[y].enabled = !state;
			//controles[y].readOnly = state;
			
			if ( controles[y].id == (tableName +  "_v") )
			{
				controles[y].enabled = state;
				controles[y].disabled = ""
				ValidatorEnable( controles[y], controles[y].enabled )
			}
		}
	}
}

function coreGetElementByName(strControlParentName,strControlName )
{	
	return (document.getElementsByName( strControlParentName + ":" + strControlName ).item(0) )
}
function coreGetElementById(strControlParentName,strControlName )
{	
	return (document.getElementById( strControlParentName + "_" + strControlName ) )
}

function vGenNUMKP()
{
	var inputKey =  event.keyCode;
	var returnCode = true;
	 
	if ( inputKey > 47 && inputKey < 58 ) // numbers
	{
		return;
	}
	else
	{
		returnCode = false;
		event.keyCode = 0;
	}
	event.returnValue = returnCode;
}

function vTxtANUMKP()
{ 
	var taObject = event.srcElement;
	var returnCode = true;
	
	if ( typeof(taObject.maxlength) == "string" )
	{
		if (taObject.innerText.length > taObject.maxlength) 
		{
			returnCode = false;
			event.keyCode = 0;
		}
	}	
	event.returnValue = returnCode;
}

-->