// JavaScript Document
var nextfield = "";
var current_element;
var display_row = "table-row";
var browser = "FF";
if (window.navigator.appName.indexOf("Explorer") != -1)
{
	var browser = "IE";
	display_row = "block";
}

Array.prototype.swap=function(a, b)
{
	var tmp=this[a];
	this[a]=this[b];
	this[b]=tmp;
}

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

function LEFT(ancho)
{
	return (window.screen.width/2) - (ancho/2);
}

function TOP(alto)
{
	return (window.screen.height/2) - (alto/2);
}

function NAV()
{
	if (window.navigator.appName.indexOf("Explorer") != -1)
		return "IE";
	else
		return "FF";
}

function htmlspecialchars(str)
{
	if (typeof(str) == "string")
	{
		str = str.replace(/&gt;/ig, ">");
		str = str.replace(/&lt;/ig, "<");
		str = str.replace(/&#039;/g, "'");
		str = str.replace(/&quot;/ig, '"');
		str = str.replace(/&iquest;/ig, "¿");
		str = str.replace(/&aacute;/ig, "a");
		str = str.replace(/&eacute;/g, "e");
		str = str.replace(/&iacute;/ig, 'i');
		str = str.replace(/&oacute;/g, "o");
		str = str.replace(/&uacute;/ig, 'u');
		str = str.replace(/&amp;/ig, '&'); /* must do &amp; last */
	}
	return str;
}

function copyToClipboard(texto)
{
	if (window.clipboardData)
		window.clipboardData.setData("Text", texto);
	else
	{
		ZeroClipboard.setMoviePath('include/ZeroClipboard.swf');
		clip = new ZeroClipboard.Client();
		clip.setText(texto);
		clip.glue('imgcp');
	}
	return true;
} 

function getClipboard()
{
	if (window.clipboardData)
		return window.clipboardData.getData("Text");
	else
	{
		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;
		
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;
		
		trans.addDataFlavor('text/unicode');
		
		var str = new Object();
		var len = new Object();
		
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		
		var strlength;
		
		trans.getTransferData("text/unicode", str, strlength);
		
		var clipid = Components.interfaces.nsIClipboard;
		
		if (!clip) return false;
		
		return clip.getData(trans, clipid.kGlobalClipboard);
	}
}

function numbers(evt)
{
	var er, char;
	er = new RegExp(/\d/);
	if (browser == "IE")
	{
		char = String.fromCharCode(evt.keyCode);
		if (er.test(char) == false)
		{
			return false;
		}
	}
	else
	{
		if ((String(evt.ctrlKey) == "true") && ((evt.charCode == 118) || (evt.charCode == 86) || (evt.charCode == 99)))
			return true
		else if ((evt.keyCode == 8) || (evt.keyCode == 9) || (evt.keyCode == 46) || (evt.keyCode == 116) || (evt.keyCode == 35) || (evt.keyCode == 36) || (evt.keyCode == 37) || (evt.keyCode == 39))
				return evt.keyCode;
			else if (evt.keyCode == 0)
					char = String.fromCharCode(evt.which);
				else if (evt.keyCode == 13)
						char = "";
					else
						char = String.fromCharCode(evt.keyCode);
						
		if (er.test(char) == false)
			return false;
	}
}

function verifyHour(obj)
{
	if (trim(obj.value) != "")
	{
		current_element = obj;
		var er = new RegExp(/^[0-9]{1,2}$/);
		if ((er.test(obj.value) == false) || (parseInt(obj.value, 10) > 24))
		{
			alert("Hora incorrecta, vuelva a ingresarla");
			setTimeout("current_element.focus()", 1);
		}
	}
}

function verifyMinute(obj)
{
	if (trim(obj.value) != "")
	{
		current_element = obj;
		var er = new RegExp(/^[0-9]{1,2}$/);
		if ((er.test(obj.value) == false) || (parseInt(obj.value, 10) > 59))
		{
			alert("Minuto incorrecto, vuelva a ingresarlo");
			setTimeout("current_element.focus()", 1);
		}
	}
}

function solo_nros(e, objid)
{
var er, char;
	er = new RegExp(/\d/);
	obj = document.getElementById(objid);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			er = new RegExp(/^\d*$/);
			if (obj.title == obj.value)
			{
				obj.title = '';
				return char;
			}
			else
			{
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86) || (e.charCode == 99)))
			return true
		
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
				
		if (e.keyCode == 13)
		{
			if (obj.onkeyup == "")
				Proximo_Focus(objid);
		}
		else if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
				return false;
			else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116) || (e.keyCode == 35) || (e.keyCode == 36) || (e.keyCode == 37) || (e.keyCode == 39))
					return e.keyCode;
				else 
				{
					if (er.test(obj.value + char) == false)
						return false;
					else
						return char;
				}
	}
}

function solo_porcentaje_entero(e, objid)
{
var er, char;
	er = new RegExp(/^(0*100{1,1}%?$)|(^0*\d{0,2}%?)$/);
	obj = document.getElementById(objid);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			er = new RegExp(/^\d*$/);
			if (obj.title == obj.value)
			{
				obj.title = '';
				return char;
			}
			else
			{
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86) || (e.charCode == 99)))
			return true
		
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if ((e.keyCode == 13) && (e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116) || (e.keyCode == 35) || (e.keyCode == 36) || (e.keyCode == 37) || (e.keyCode == 39))
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
				
		if (e.keyCode == 13)
		{
			if (obj.onkeyup == "")
				Proximo_Focus(objid);
		}
		else if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
				return false;
			else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116) || (e.keyCode == 35) || (e.keyCode == 36) || (e.keyCode == 37) || (e.keyCode == 39))
					return e.keyCode;
				else 
				{
					if (obj.title == obj.value)
						obj.value = "";
					if (er.test(obj.value + char) == false)
						return false;
					else
						return char;
				}
	}
}

function solo_decimal(e, objid)
{
var er, char, obj;
	er = new RegExp(/^[0-9]|\./);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			er = new RegExp(/^[0-9]+\.?[0-9]*$/);
			obj = document.getElementById(objid);
			if (obj.title == obj.value)
			{
				if (er.test(char) == false)
					return false;
				else
				{
					obj.title = '';
					return char;
				}
			}
			else
			{
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86) || (e.charCode == 99)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
				{
					er = new RegExp(/^[0-9]+\.?[0-9]{0,2}$/);
					obj = document.getElementById(objid);
					if (obj.value == obj.title)
					{
						if (er.test(char) == false)
							return false;
						else
						{
							obj.title = '';
							return char;
						}
					}
					else
					{
						if (er.test(obj.value + char) == false)
							return false;
						else
							return char;
					}
				}
	}
}

function valor_solo_nros(obj)
{
	var valor = obj.value;
	var er = new RegExp(/\d/);
	var result = "";
	for (var i = 0; i < valor.length; i++)
	{
		if (er.test(valor.charAt(i)))
			result += valor.charAt(i);
	}
	obj.value = result;
}

function solo_letras(e, objid)
{
var er, char;
	er = new RegExp(/[A-Za-z\á\é\í\ó\ú\Á\É\Í\Ó\Ú\ñ\Ñ\ ]/);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
			return char;
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					if (Def(objid))
						Proximo_Focus(objid);
					//return true;
				}
				else
					return char;
	}
}

function Nombre_Campos(e)
{
var er, char;
	er = new RegExp(/[A-Za-z\_0-9]/);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
			return char;
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
					return char;
	}
}

function solo_alfanumerico(e, objid)
{
var er, char;
	er = new RegExp(/[a-zA-Z0-9]/);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			er = new RegExp(/^[a-zA-Z0-9]*$/);
			obj = document.getElementById(objid);
			if (obj.title == obj.value)
			{
				obj.title = '';
				return char;
			}
			else
			{
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
					return char;
	}
}

function sin_nros(e, objid)
{
var er, char;
	er = new RegExp(/\D/);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
			return char;
	}
	else// Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
					return char;
	}
}

function solo_fechas(e)
{
var er, char;
	er = new RegExp(/[0-9\/]/);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
			return char;
	}
	else // Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
					return char;
	}
}

function solo_decimal_mil(e, objid)
{
var er, char, obj;
	er = new RegExp(/^[0-9]|\./);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			er = new RegExp(/^[0-9]+\.?[0-9]{0,3}$/);
			obj = document.getElementById(objid);
			if (obj.title == obj.value)
			{
				if (er.test(char) == false)
					return false;
				else
				{
					obj.title = '';
					return char;
				}
			}
			else
			{
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else // Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (e.keyCode == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
			return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
				{
					er = new RegExp(/^[0-9]+\.?[0-9]{0,3}$/);
					obj = document.getElementById(objid);
					if (obj.title == obj.value)
					{
						if (er.test(char) == false)
							return false;
						else
						{
							obj.title = '';
							return char;
						}
					}
					else
					{
						if (er.test(obj.value + char) == false)
							return false;
						else
							return char;
					}
				}
	}
}

function solo_decimal_y_negativos(e, objid)
{
var er, char, obj;
	er = new RegExp(/^\-|[0-9]|\./);
	if (NAV() == "IE")
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
		{
			obj = document.getElementById(objid);
			if (obj.title == obj.value)
			{
				er = new RegExp(/^(\-|[0-9])$/);
				if (er.test(char) == false)
					return false;
				else
				{
					obj.title = '';
					return char;
				}
			}
			else
			{
				er = new RegExp(/^\-?[0-9]+\.?[0-9]{0,2}$/);
				if (er.test(obj.value + char) == false)
					return false;
				else
					return char;
			}
		}
	}
	else // Netscape/Firefox/Opera
	{
		if ((String(e.ctrlKey) == "true") && ((e.charCode == 118) || (e.charCode == 86)))
			return true;
			
		if (parseInt(e.keyCode) == 0)
			char = String.fromCharCode(e.which);
		else if (e.keyCode == 13)
				char = "";
			else
				char = String.fromCharCode(e.keyCode);
		if ((er.test(char) == false) && (e.keyCode != 8) && (e.keyCode != 9) && (e.keyCode != 46) && (e.keyCode != 13) && (e.keyCode != 116))
				return false;
		else if ((e.keyCode == 8) || (e.keyCode == 9) || (e.keyCode == 46) || (e.keyCode == 116))
				return e.keyCode;
			else if (e.keyCode == 13)
				{
					Proximo_Focus(objid);
					return;
				}
				else
				{
					obj = document.getElementById(objid);
					if (obj.value == obj.title)
					{
						er = new RegExp(/^(\-|[0-9])$/);
						if (er.test(char) == false)
							return false;
						else
						{
							obj.title = '';
							return char;
						}
					}
					else
					{
						er = new RegExp(/^\-?[0-9]+\.?[0-9]{0,2}$/);
						if (er.test(obj.value + char) == false)
							return false;
						else
							return char;
					}
				}
	}
}

function Proximo_Focus(objid)
{
var pos = 0;
	/*if (document.getElementById(objid).form)
	{
		var form = document.getElementById(objid).form;
		for (var i = 0; i < form.elements.length; i++)
		{
			if (form.elements[i].id == objid)
			{
				for (var j = (i + 1); j < form.elements.length; j++)
				{
					if ((form.elements[i].type != "hidden") && (!form.elements[i].disabled)
						&& (form.elements[i].style.display != "none") && (form.elements[i].style.visibility != "hidden"))
					{
						pos = j;
						break;
					}
				}
			}
			if (pos > 0)
				break;
		}
		
		if ((pos > 0) && (Def(form.elements[pos])))
			form.elements[pos].focus();
	}*/
}

function Completa_Decimal(objid, cant_decimal)
{
var valor;
	var obj = document.getElementById(objid);
	if (obj.value == undefined)
		valor = obj.innerHTML;
	else
		valor = obj.value;
		
	if (valor != '')
	{
		/*if ((valor.search(/\./) != -1) && (valor.search(/[0-9]\./) == -1))
			valor = '';
		else if (valor.search(/\./) == -1)
				valor += '.00';
			else if (valor.search(/\.[0-9]/) == -1)
					valor += '00';
				else if (valor.search(/\.[0-9][0-9]/) == -1)
						valor += '0';
					else	
					{*/
						if (isNaN(cant_decimal))
							cant_decimal = 2;
						valor = Redondea(valor, cant_decimal);	
					//}
	}
	else
		valor = "0.00";
	
	if (obj.value == undefined)
		obj.innerHTML = valor;
	else
		obj.value = valor;
}

function Redondea(valor, cant_decimales)
{
	if (valor.indexOf(".", 0) != -1)
	{
		if (cant_decimales == 0)
			return String(Math.round(valor)) + ".00";
		else
		{
			var decimales = valor.substr(valor.indexOf(".", 0) + 1);
			var aux = decimales.substr(cant_decimales, 1);
			var decimales_fin = valor.substr(valor.indexOf(".", 0) + 1, cant_decimales);
			var cero = 0;
			while ((decimales_fin.substr(cero, 1) == "0") && (cero < (cant_decimales - 1)))
				cero++;
			var maximo = "1";
			for (var i = 0; i < cant_decimales; i++)
				maximo += "0";
			
			if (!isNaN(aux))
			{
				if (aux >= 5)
					decimales_fin++;
				if (decimales_fin == maximo)
				{
					var entero = parseInt(valor.substr(0, valor.indexOf(".", 0)));
					if (entero < 0)
						entero--;
					else
						entero++;
					return String(entero) + "." + maximo.replace("1", "");
				}
				else if (String(decimales_fin).length > cant_decimales)
						decimales_fin = parseInt(String(decimales_fin).substr(0, cant_decimales));
					else if (cero > 0)
						{
							var i = 0;
							while ((String(decimales_fin).length < cant_decimales) && (i < cero))
							{
								decimales_fin = "0" + String(decimales_fin);
								i++;
							}
						}
			}
			
			for (var i = decimales_fin.length; i < cant_decimales; i++)
				decimales_fin = String(decimales_fin) + "0";
		
			return String(valor.substr(0, valor.indexOf(".", 0))) + "." + decimales_fin;
		}
	}
	else	
	{
		if (valor == "")
			valor = "0";
		valor += ".";
		for (var i = 0; i < cant_decimales; i++)
			valor += "0";
		return String(valor);
	}
}

function nros_y_letras(e)
{
var er, char;
	er = new RegExp(/[A-Za-z\á\é\í\ó\ú\Á\É\Í\Ó\Ú\ñ\Ñ0-9\ ]/);
	if (window.event) //IE
	{
		char = String.fromCharCode(e.keyCode);
		if (er.test(char) == false)
			return false;
		else
			return char;
	}
	else if(e.which) // Netscape/Firefox/Opera
		{
			char = String.fromCharCode(e.which);
			if (er.test(char) == false)
				return false;
			else
				return char;
		}
}

function ctrl_long(obj, long)
{
var valor = obj.value;
	
	if (valor.length >= long)
	{
		window.event.keyCode = 0;
		alert("Ha llegado a la longitud máxima");
	}
}

function ctrl_paste(obj, long)
{
var pegado = window.clipboardData.getData("Text");
var text = obj.value + pegado;

	if (text.length >= long)
	{
		window.event.returnValue = false;
		alert("Ha llegado a la longitud máxima");
	}
}

function FocoText(objid)
{
	if (Def(objid))
	{
		var obj = document.getElementById(objid);
		obj.style.backgroundColor = "#FFFFCC";
		//obj.style.border = "1px groove #FFF";
		//obj.style.borderTop = "1px solid #A5ACB2";
		//obj.style.borderLeft = "1px solid #A5ACB2";
		obj.select();
	}
}

function SinFocoText(objid)
{
	if (Def(objid))
	{
		var obj = document.getElementById(objid);
		obj.style.backgroundColor = "";
		//obj.style.border = "1px solid #A5ACB2";
		obj.style.height = "14px";
	}
}

function SinFocoText18(objid)
{
var obj = document.getElementById(objid);
	obj.style.backgroundColor = "";
	//obj.style.border = "1px solid #A5ACB2";
	obj.style.height = "18px";
}

function FocoTextArea(objid)
{
var obj = document.getElementById(objid);
	obj.style.backgroundColor = "#FFFFCC";
	//obj.style.border = "1px groove #FFF";
	//obj.style.borderTop = "1px solid #A5ACB2";
	//obj.style.borderLeft = "1px solid #A5ACB2";
	obj.select();
}

function SinFocoTextArea(objid)
{
var obj = document.getElementById(objid);
	obj.style.backgroundColor = "";
	//obj.style.border = "1px solid #A5ACB2";
}

function FocoCombo(objid)
{
	if (Def(objid))
	{
		var obj = document.getElementById(objid);
		obj.style.backgroundColor = "#FFFFCC";
		//obj.style.border = "1px solid #A5ACB2";
	}
}

function SinFocoCombo(objid)
{
	if (Def(objid))
	{
		var obj = document.getElementById(objid);
		obj.style.backgroundColor = "";
		//obj.style.border = "1px solid #A5ACB2";
	}
}

function ComboSelectValue(obj, valor)
{
	for (var i = 0; i < obj.length; i++)
	{
		if (obj[i].value == valor)
			obj.selectedIndex = i;
	}
}

function trim(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function Undef(o)
{
	return typeof(o)=='undefined'||o===''||o==null;
}

function Def(o)
{
	return!Undef(o);
}

function Array_Swap_Parallel(array1, array2, a, b)
{
	var tmp = array1[a];
	array1[a] = array1[b];
	array1[b] = tmp;
	var tmp = array2[a];
	array2[a] = array2[b];
	array2[b] = tmp;
}

function Partition_Parallel(array1, array2, begin, end, pivot)
{
	var piv=array1[pivot];
	Array_Swap_Parallel(array1, array2, pivot, end-1);
	var store=begin;
	var ix;
	for(ix=begin; ix<end-1; ++ix) {
		if(array1[ix]<=piv) {
			Array_Swap_Parallel(array1, array2, store, ix);
			++store;
		}
	}
	Array_Swap_Parallel(array1, array2, end-1, store);

	return store;
}

function QSort_Parallel(array1, array2, begin, end)
{
	if(end-1>begin) {
		var pivot=begin+Math.floor(Math.random()*(end-begin));

		pivot=Partition_Parallel(array1, array2, begin, end, pivot);

		QSort_Parallel(array1, array2, begin, pivot);
		QSort_Parallel(array1, array2, pivot+1, end);
	}
}

function Quick_Sort_Parallel(array1, array2)
{
	QSort_Parallel(array1, array2, 0, array1.length);
}

function Partition(array, begin, end, pivot)
{
	var piv=array[pivot];
	array.swap(pivot, end-1);
	var store=begin;
	var ix;
	for(ix=begin; ix<end-1; ++ix) {
		if(array[ix]<=piv) {
			array.swap(store, ix);
			++store;
		}
	}
	array.swap(end-1, store);

	return store;
}

function QSort(array, begin, end)
{
	if(end-1>begin) {
		var pivot=begin+Math.floor(Math.random()*(end-begin));

		pivot=Partition(array, begin, end, pivot);

		QSort(array, begin, pivot);
		QSort(array, pivot+1, end);
	}
}

function Quick_Sort(array)
{
	QSort(array, 0, array.length);
}

function SelectOptions(objOpt, objTr, valor)
{
	var continuar = true;
	if (Def(objTr))
	{
		if (objTr.style.display == "none")
			continuar = false;
	}
	if ((valor != "") && (continuar))
	{
		var valores = valor.split(",");
		for (var j = 0; j < valores.length; j++)
		{
			for (var i = 0; i < objOpt.length; i++)
			{
				if (objOpt[i].value == valores[j])
				{
					if (Def(objOpt[i].type))
					{
						if ((objOpt[i].type == "radio") || (objOpt[i].type == "checkbox"))
							objOpt[i].click();//objOpt[i].checked = true;
						
						if (objOpt[i].type == "checkbox")
							Marcar(objOpt[i]);
					}
					else
						objOpt[i].selected = true;
					
					break;
				}
			}
		}
	}
}

function CheckboxSelected(obj)
{
	var vec = Array();
	var j = -1;
	if (Def(obj.length))
	{
		for (var i = 0; i < obj.length; i++)
		{
			if (obj[i].checked)
			{
				j++;
				vec[j] = obj[i].value;
			}
		}
	}
	else
	{
		if (obj.checked)
			vec[0] = obj.value;
	}
	return vec;
}
