function PopUpWindow(sURL,iAncho,iAlto,sScrollbars,sResize,sToolbar,sDirectories,sMenuBar,sStatus,sVentana,sLocation){
	if (!sURL) sURL = 'http://www.axesor.com';
	if (!iAncho) iAncho = 500
	if (!iAlto) iAlto = 400
	if (!sScrollbars) sScrollbars = 'no'
	if (!sResize) sResize = 'yes'
	if (!sToolbar) sToolbar = 'no'
	if (!sDirectories) sDirectories = 'no'
	if (!sMenuBar) sMenuBar = 'no'
	if (!sStatus) sStatus = 'no'
	if (!sVentana) sVentana = 'no'
	if (!sLocation) sLocation = 'no'
	window.open(sURL,sVentana,'width=' + iAncho + ',height=' + iAlto + ',toolbar=' + sToolbar + ',directories=' + sDirectories + ',menubar=' + sMenuBar + ',status=' + sStatus + ',scrollbars=' + sScrollbars + ',resizable=' + sResize + ',top='+ ((screen.width/2)-(iAncho/2)) +',left='+ ((screen.height/2)-(iAlto/2)) +',location=' + sLocation + '');		
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var firstChars=validChars
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom="(" + firstChars + validChars + "*" + ")"
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		alert("You must enter your email address in the format myemail@website.com")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
	    alert("You must enter your email address in the format myemail@website.com")
	    return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					alert("You must enter your email address in the format myemail@website.com")
			return false
		    }
	    }
	    return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("You must enter your email address in the format myemail@website.com")
	    return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
	   domArr[domArr.length-1].length>3) {
	   alert("You must enter your email address in the format myemail@website.com")
	   return false
	}

	if (domArr[domArr.length-1].length==3 && len<2) {
	   var errStr="You must enter your email address in the format myemail@website.com"
	   alert(errStr)
	   return false
	}

	return true;
}
function trim(arg) {
	var trimvalue = "";
	arglen = arg.length;
	if (arglen < 1) return trimvalue;
	i = 0;
	pos = -1;
	while (i < arglen) 
	{
		if (arg.charCodeAt(i) != 32 && !isNaN(arg.charCodeAt(i))) {
			pos = i;
			break;
		}
		i++;
	}
	var lastpos = -1;
	i = arglen;
	while (i >= 0)
	{
		if (arg.charCodeAt(i) != 32 && !isNaN(arg.charCodeAt(i))) 
		{
			lastpos = i;
			break;
		}
		i--;
	}
	trimvalue = arg.substring(pos,lastpos + 1);
	return trimvalue;
}
function ltrim(arg) 
{
	var trimvalue = "";
	arglen = arg.length;
	if (arglen < 1) return trimvalue;
	i = 0;
	pos = -1;
	while (i < arglen) 
	{
		if (arg.charCodeAt(i) != 32 && !isNaN(arg.charCodeAt(i))) 
		{
			pos = i;
			break;
		}
		i++;
	}
	trimvalue = arg.substring(pos,arglen-1);
	return trimvalue;
}
function rtrim(arg) {
	var trimvalue = "";
	arglen = arg.length;
	if (arglen < 1) return trimvalue;
	var lastpos = -1;
	i = arglen;
	while (i >= 0) 
	{
		if (arg.charCodeAt(i) != 32 && !isNaN(arg.charCodeAt(i))) 
		{
			lastpos = i;
			break;
		}
		i--;
	}
	trimvalue = arg.substring(0,lastpos+1);
	return trimvalue;
}
/*
COMPRUEBA
*/
function ComprobarValor(Valor, Caracteres, Objeto)
{
	if(Valor != "" && Valor.length < Caracteres)
	{
		alert("El Campo " + Objeto.name + " deben tener al menos " + Caracteres + " caracteres")
		Objeto.focus()
		return false
	}
	return true
}
/*
PARA VERIFICAR QUE EL CAMPO SEA NUMERICO (SOLO IE)
*/
function SoloNumerico(e)
{	
	if (((event.keyCode < 48) || (event.keyCode > 57)) && event.keyCode != 13)
		event.keyCode = 0;
}
/*
FUNCION PARA VER SI UNA FECHA ES VALIDA
*/
function isValidDate(dateStr,nomFecha) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var matchArray = dateStr.match(datePat);
	if (!nomFecha) 
		nomFecha = '' 
	else 
		nomFecha = ' ' + nomFecha
	if (matchArray == null) {
		alert('The date' + nomFecha + ' is not in a valid format.')
		return false;
	}
	month = matchArray[1];
	day = matchArray[3];
	year = matchArray[4];	
	if (month < 1 || month > 12) {
		alert("Month must be between 1 and 12");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Day must be between 1 and 31");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Month "+month+" doesn't have 31 days!")
		return false
	}
	if (month == 2) {
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert("February " + year + " doesn't have " + day + " days!");
			return false;
		}
	}
	if ((year < 1900) || (year > 2078))
	{
		alert("Year will be 1900 to 2078");
		return false;		
	}
	return true;
}
//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) 
{
	var string="1234567890";
	if (string.indexOf(num) != -1) 
	{
		return true;
	}
	return false;
}

//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val) 
{
	var dp = false;
	for (var i=0; i < val.length; i++) 
	{
		if (!isDigit(val.charAt(i))) 
		{ 
			if (val.charAt(i) == '.') 
			{
				if (dp == true) { return false; } // already saw a decimal point
				else 
				{ 
					dp = true; 
				}
			}
			else 
			{
				return false; 
			}
		}
	}
	return true;
}
//-------------------------------------------------------------------
// isAlphaNumeric(str)
//   Comprueba que un string sea alfanumerico
//	 (A/Z) o (a/z) o (0/9)
//   y chkAll es el que se encarga de checkear o descheckear todos
//-------------------------------------------------------------------

function isAlphaNumeric(str)
{
	var i
	str = str.toLowerCase()

	for (i = 0; i < str.length; i++)
	{		
		if ((!(isNumeric(str.charAt(i)))) && ((str.charAt(i) < 'a') || (str.charAt(i) > 'z')))
		{
			return false;			
		}
	}
	return true;
}

/******************************************************************
 NOMBRE:
	PassItem
 DESCRIPCION:
	Pasa un Item de un multiselect a otro dejando el Select destino ordenado por texto
 PARAMETROS:
	mSelectO(Select Multiple) = Select de origen
	mSelectD(Select Multiple) = Select de Destino
	OIndex(int) = Indice del item del Select de Origen
 RETORNO: Indice del item insertado en el Select de Destino
******************************************************************/

function PassItem(mSelectO,mSelectD,OIndex)
{
	if (OIndex < 0)
	{
		alert('Debe seleccionar un item.')
		return -1
	}
	iCantO = mSelectD.options.length

	mSelectD.disabled = true
	mSelectO.disabled = true
	
	
	for (j = iCantO - 1; j >= 0; j--) 
	{
		if (mSelectO.options[OIndex].text > mSelectD.options[j].text)
			break
		mSelectD.options[j + 1] = new Option(mSelectD.options[j].text, mSelectD.options[j].value)
	}
	mSelectD.options[j + 1] = new Option(mSelectO.options[OIndex].text, mSelectO.options[OIndex].value)
	mSelectO.options[OIndex] = null
	
	mSelectD.disabled = false
	mSelectO.disabled = false

	return j+1;
}
/******************************************************************
 NOMBRE:
	PassAll
 DESCRIPCION:
	Pasa todos los Items de un multiselect a otro dejando el Destino ordenado por el texto
 PARAMETROS:
	mSelectO(Select Multiple) = Select de origen
	mSelectD(Select Multiple) = Select de Destino
 RETORNO: Cantidad de elementos en el Destino
******************************************************************/
function PassAll(mSelectO,mSelectD)
{
	iCantO = mSelectO.options.length
	for (i = iCantO-1; i >= 0; i--)
	{
		mSelectO.selectedIndex = i
		PassItem(mSelectO,mSelectD,i)	
	}
	return mSelectD.options.length
}
/******************************************************************
 NOMBRE:
	LayerText
 DESCRIPCION:
	Cambia el Texto de una layer (div)
 PARAMETROS:
	strLayer(str) = id del Layer a cambiar
	strText(str) = Nuevo texto del Layer
 RETORNO: Cantidad de elementos en el Destino
******************************************************************/
function LayerText(strLayer,strText)
{
	if(document.all)
		eval("document.all." + strLayer + ".innerText ='" + strText +"'")
	else 
		eval("document.layers." + strLayer + ".innerText = '" + strText +"'")
}

function hide(hi){
	if(document.all) {
		eval("document.all." + hi + ".style.visibility = 'hidden'")
	} else {
		eval("document.layers." + hi + ".visibility = 'hide'")
	}
}
function show(sho){
	if(document.all) {
		eval("document.all." + sho + ".style.visibility = 'visible'")
	} else {
		eval("document.layers['" + sho + "'].visibility = 'visible'")
	}
}

function RelativePos(hi){
	if(document.all) {
		eval("document.all." + hi + ".style.position = 'relative'")
	} else {
		eval("document.layers." + hi + ".position = 'relative'")
	}
}
function AbsolutePos(sho){
	if(document.all) {
		eval("document.all." + sho + ".style.position = 'absolute'")
	} else {
		eval("document.layers['" + sho + "'].position = 'absolute'")
	}
}

function MoveLayer(lyr, left, top)
{
	if(document.all) {
		eval("document.all." + lyr + ".style.left = " + left)
		eval("document.all." + lyr + ".style.top = " + top)
	} else {
		eval("document.layers['" + lyr + "'].left = " + left)
		eval("document.layers['" + lyr + "'].top = " + top)
	}
}