/*****************************************************************************************
'Descripcion:
'		Recibe una cadena y la retorna sin espacios vacíos a la derecha, a la izquierda
'		ó a ámbos lados, según se especifique
'.........................................................................................
'Parametros:
'		varText: Texto al cual se le quieren eliminar los espacios en blanco
'		side: Constante que indica de qué lado se le quieren eliminar los espacios, así:
'			TRIM_LEFT --> Eliminar espacios a la izquierda
'			TRIM_RIGHT --> Eliminar espacios a la derecha
'			TRIM_BOTH --> Eliminar espacios a ambos lados
'.........................................................................................
'Validaciones:
*****************************************************************************************/
var TRIM_LEFT  = 0x0001;
var TRIM_RIGHT = 0x0002;
var TRIM_BOTH  = TRIM_LEFT | TRIM_RIGHT;

function strTrim( varText, side )
	{
	var i = 0;
	var j = varText.length - 1;

	if( side & TRIM_LEFT )
		{
		for( i = 0; i < varText.length; i++ )
			{
			if( varText.substring( i, i+1 ) != " " && varText.substring( i, i+1 ) != "\t")
				{
				break;
				}
			}
		}

	if( side & TRIM_RIGHT )
		{
		for( j = varText.length - 1; j >= 0; j-- )
			{
			if( varText.substring( j, j+1 ) != " " && varText.substring( j, j+1 ) != "\t")
				{
				break;
				}
			}
		}

	if( i <= j )
		return( varText.substring( i, (j+1) ) );
	else
		return("");
	}

/*****************************************************************************************
'Descripcion:
'		Funcion para validar que el texto ingresado en un campo texto,
'		corresponda a una dirección válida de correo (e-mail)
'.........................................................................................
'Parametros:
'		Campo:		Control con el valor a validar
'		Mensaje:	Cadena con el nombre descriptivo del control, usada para mostrar
'					un mensaje personalizado.
'.........................................................................................
'Validaciones:
'		- Los caracteres que contiene la cuenta de correo deben estar dentro de la siguiente lista
'			"0123456789abcdefghijlkmnopqrstuvwxyz@.-_"
'		- El primer y último caracter no pueden ser alguno de los caracteres "@.-_"
'		- Los caracteres anterior y posterior a la arroba (@), no pueden ser "@.-_"
'		- La cadena NO puede contener más de una arroba (@)
'		- La cadena debe contener al menos UNA arroba (@)
'		- La cadena NO puede contener espacios vacíos (" ")
'		- Después del último punto, debe haber AL MENOS 2 caracteres
*****************************************************************************************/
function ValidarEmail(Campo, Mensaje)
	{
	var perfect = true;

	with (Campo)
		{
		// Validar que los caracteres que contiene la cuenta de correo
		// esten dentro de los caracteres de la siguiente lista
		var car_validos = "0123456789abcdefghijlkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.-_"
		var car_otros = "@.-_";

		for (var i=0; i < value.length; i++) {
			var ch = value.substring(i, i+1);
			if (car_validos.indexOf(ch) == -1) perfect = false;
		}

		apos = value.indexOf("@");
		lastpos = value.length-1;

		// Validar primer y ultimo caracter
		var car1 = value.substring(0, 1);
		var car2 = value.substring(lastpos, lastpos+1);
		if ((car_otros.indexOf(car1) != -1) || (car_otros.indexOf(car2) != -1)) perfect = false;

		// Validar anterior y siguiente caracter despues de "@"
		car1 = value.substring(apos-1, apos);
		car2= value.substring(apos+1, apos+2);
		if ((car_otros.indexOf(car1) != -1) || (car_otros.indexOf(car2) != -1)) perfect = false;

		// Buscar si existe otro simbolo "@" en el campo
		var subcadena = value.substring(apos + 1, 100);
		a2pos = subcadena.indexOf("@");
		spacepos = value.indexOf(" ");
		dotpos = value.lastIndexOf(".");

		//if (apos < 1 || a2pos != -1 || dotpos - apos < 2 || lastpos - dotpos > 3 || lastpos - dotpos < 2 || spacepos != -1) {
		if (apos < 1 || a2pos != -1 || lastpos - dotpos < 2 || spacepos != -1) perfect = false;
		}

	if (!perfect) 
		{
		alert('\nE-posten er ugyldig.=\n\n Vennligst forandre informasjonen.');
		Campo.focus();
		return false;
		}

	return true;

	}
/*****************************************************************************************
'Descripcion:
'		Funcion para validar que el texto ingresado en un campo texto,
'		solo con letras
'.........................................................................................
'Parametros:
'		Campo:		Control con el valor a validar
'		Mensaje:	Cadena con el nombre descriptivo del control, usada para mostrar
'					un mensaje personalizado.
'.........................................................................................
'Validaciones:
'		- Los caracteres que contiene la cuenta de correo deben estar dentro de la siguiente lista
'			"0123456789abcdefghijlkmnopqrstuvwxyz@.-_"
'		- El primer y último caracter no pueden ser alguno de los caracteres "@.-_"
'		- Los caracteres anterior y posterior a la arroba (@), no pueden ser "@.-_"
'		- La cadena NO puede contener más de una arroba (@)
'		- La cadena debe contener al menos UNA arroba (@)
'		- La cadena NO puede contener espacios vacíos (" ")
'		- Después del último punto, debe haber AL MENOS 2 caracteres
*****************************************************************************************/
function ValidarLetras(Campo, Mensaje)
	{
	var perfect = true;

	with (Campo)
		{
		// Validar que los caracteres que el campo
		// esten dentro de los caracteres de la siguiente lista
		var car_validos = "åáíéóøúñabcdefghijlkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "

		for (var i=0; i < value.length; i++) {
			var ch = value.substring(i, i+1);
			if (car_validos.indexOf(ch) == -1) perfect = false;
		}

		apos = value.indexOf("@");
		lastpos = value.length-1;
		
		}

	if (!perfect) 
		{
		alert('\nFelt ' + Mensaje + ' er ugyldig.\n\nDu må bare bruke staver.\n\nVennligst forandre informasjonen.');
		Campo.focus();
		return false;
		}

	return true;

	}
		
/*****************************************************************************************
'Descripcion:
'		Validar que de un conjunto de Radio Buttons que están TODOS bajo el mismo name
'		se escoja al menos uno de ellos
'.........................................................................................
'Parametros:
'		- Nombre bajo el cual están agrupados los checkboxes, enviarlo como una cadena,
'			es decir, entre comillas dobles ""
'		- Nombre del dato o control que se está validando para personalizar el mensaje de error
'.........................................................................................
'Validaciones: 
*****************************************************************************************/
function Validar_Radio(par_nombre_control,par_nom_dato)
	{
	var_band = 0
	eval("var_nro_obj = " + par_nombre_control + ".length;");
	if (var_nro_obj > 0)
		{
		for (g=0; g<var_nro_obj; g++)
			{
			if (eval(par_nombre_control + "[" + g + "].checked"))
				{
				var_band = 1;
				}
			}
		}
	else
		{
		if (eval("document.thisForm." + par_nombre_control + ".checked"))
			{
			var_band = 1;
			}
		}
			
	if (var_band == 0)
		{
		alert("Du må velge " + par_nom_dato + " \n\nVennligst skriv inn informasjonen.");
		return false;
		}
	return true;
	}

/*****************************************************************************************
'Fecha : Octubre 12/2000
'.........................................................................................
'Descripcion:
'		Validar que de un conjunto de checkboxes que están TODOS bajo el mismo name
'		se escoja al menos uno de ellos
'.........................................................................................
'Parametros:
'		- Nombre bajo el cual están agrupados los checkboxes
'		- Nombre del dato o control que se está validando para personalizar el mensaje de error
'.........................................................................................
'Validaciones: 
*****************************************************************************************/
function Validar_Checkboxes(par_nombre_control,par_nom_dato)
	{
	var_band = 0
	eval("var_nro_obj = document.thisForm." + par_nombre_control + ".length;");
	if (var_nro_obj > 0)
		{
		for (g=0; g<var_nro_obj; g++)
			{
			if (eval("document.thisForm." + par_nombre_control + "[" + g + "].checked"))
				{
				var_band = 1;
				}
			}
		}
	else
		{
		if (eval("document.thisForm." + par_nombre_control + ".checked"))
			{
			var_band = 1;
			}
		}
			
	if (var_band == 0)
		{
		alert("Du må velge " + par_nom_dato + " \n\nVennligst skriv inn informasjonen.");
		return false;
		}
	return true;
	}

/*****************************************************************************************
'Fecha : Mayo 28/2001
'.........................................................................................
'Descripcion:
'		Validar los campos obligatorios del conjunto de campos que componen las direcciones
'		en los diferentes formularios de los 3 portales
'.........................................................................................
'Parametros:
'		- par_tipo_calle : Control (List Box) que contiene el tipo de calle
'		- par_num_calle : Control (text box) que contiene el número de la calle
'		- par_num_uno : Control (text box) que contiene el primer número de la nomenclatura
'		- par_num_dos : Control (text box) que contiene el segundo número de la nomenclatura
'		- par_nom_dato : Nombre del dato que se está validando, para personalizar el mensaje de error
'.........................................................................................
'Validaciones: 
'		- Ninguno de los primeros cuatro parámetros puede ser vacío
*****************************************************************************************/
function Validar_Direccion(par_tipo_calle, par_num_calle, par_num_uno, par_num_dos, par_nom_dato)
	{
	var_tipo_calle = par_tipo_calle.selectedIndex;
	var_num_calle = strTrim(par_num_calle.value,TRIM_BOTH);
	var_num_uno = strTrim(par_num_uno.value,TRIM_BOTH);
	var_num_dos = strTrim(par_num_dos.value,TRIM_BOTH);
	
	//Validar el Tipo de Calle
	if (var_tipo_calle == 0)
		{
		alert("Por favor ingresa la " + par_nom_dato + " Completa");
		par_tipo_calle.focus();
		return false;
		}
		
	//Validar el Número de la Calle
	if (var_num_calle == "")
		{
		alert("Vennligst skriv inn adressen " + par_nom_dato + "");
		par_num_calle.focus();
		return false;
		}
	validar_num_calle = isNumeric(var_num_calle);
	if (!validar_num_calle)
		{
		alert("El valor del Número de la Calle debe contener sólo números\n\nPor favor corrije la información");
		par_num_calle.focus();
		return false;
		}
	
	//Validar el Primer número de la nomenclatura
	if (var_num_uno == "")
		{
		alert("Por favor ingresa la " + par_nom_dato + " Completa");
		par_num_uno.focus();
		return false;
		}
	validar_num_uno = isNumeric(var_num_uno);
	if (!validar_num_uno)
		{
		alert("El valor del primer Número de la nomenclatura debe contener sólo números\n\nPor favor corrije la información");
		par_num_uno.focus();
		return false;
		}
		
	//Validar el Segundo número de la nomenclatura
	if (var_num_dos == "")
		{
		alert("Por favor ingresa la " + par_nom_dato + " Completa");
		par_num_dos.focus();
		return false;
		}
	validar_num_dos = isNumeric(var_num_dos);
	if (!validar_num_dos)
		{
		alert("El valor del segundo Número de la nomenclatura debe contener sólo números\n\nPor favor corrije la información");
		par_num_dos.focus();
		return false;
		}
	
	return true;
	
	}

/*****************************************************************************************
'Fecha : Febrero 15/2000
'.........................................................................................
'Descripcion:
'		Valida una fecha que viene descompuesta en Año, Mes y Dia
'		Retorna "true" ó "false" según sea el caso
'.........................................................................................
'Parametros:
'		Todos los parámetros son convertidos a enteros, dentro de la función, antes de 
'		proceder a validarlos
'		Anno: Año a validar 
'		Mes: Mes a validar 
'		Dia: Dia a validar 
'		Dato: Nombre del Dato que se está validando, para personalizar los mensajes
'.........................................................................................
'Validaciones:
'		Valida fechas de años bisiestos (de Febrero) y, que el dia sea valido dentro del
'		mes elegido
*****************************************************************************************/
function ValidarFecha(Anno, Mes, Dia, Dato) 
	{

	var intAnno = parseInt(Anno);
	var intMes = parseInt(Mes);
	var intDia = parseInt(Dia);

	// Validar que los valores no sean igual a cero
	if ((Anno == 0) || (Mes == 0) || (Dia == 0)) 
		{
		alert('Debes elegir los valores para el mes, el día y el año de ' + Dato);
		return false;
		}

	// Validar que, en un año NO bisiesto, el número de días del mes de Febrero no sea mayor que 28
	if (((intAnno % 4) != 0) && (intMes == 2) && (intDia > 28)) 
		{
		alert('El mes de Febrero no puede contener más de 28 días.\n\nPor favor, corrije la información de ' + Dato);
		return false;
		}

	// Validar que, en un año bisiesto, el número de días del mes de Febrero no sea mayor que 29
	if (((intAnno % 4) == 0) && (intMes == 2) && (intDia > 29)) 
		{
		alert('El mes de Febrero no puede contener más de 29 días.\n\n Por favor, corrije la información de ' + Dato);
		return false;
		}

	// Validar que el dia sea válido para el mes elegido, no mayor que 30
	if ( ((intMes == 4) || (intMes == 6) || (intMes == 9) || (intMes == 11)) && (intDia > 30) ) 
		{
		alert('El mes seleccionado sólo contiene 30 días.\n\nPor favor, corrije la información de ' + Dato);
		return false;
		}

	return true;
	}

/*****************************************************************************************
'Fecha : Mayo 28/2001
'.........................................................................................
'Descripcion:
'		Verifica que una cadena contenga únicamente caracteres numéricos.
'		Retorna "true" ó "false" según sea el caso
'.........................................................................................
'Parametros:
'		- str : Cadena que se quiere evaluar
'.........................................................................................
'Validaciones: 
'		- Ninguno de los caracteres que componen la cadena debe ser diferente de los
'		  caracteres de la lista "0123456789"
*****************************************************************************************/
function isNumeric(str)
	{
	for (var i=0; i < str.length; i++) 
		{
		var ch = str.substring(i, i+1);
		if(ch < "0" || ch > "9") 
			{
			return false;
			}
		}

		return true;
	}
/*****************************************************************************************
'Fecha : Mayo 28/2001
'.........................................................................................
'Descripcion:
'		Verifica que una cadena contenga únicamente caracteres numéricos.
'		Retorna "true" ó "false" según sea el caso
'.........................................................................................
'Parametros:
'		- q : Cadena que se quiere evaluar
'.........................................................................................
'Validaciones: 
'		- Ninguno de los caracteres que componen la cadena debe ser diferente de los
'		  caracteres de la lista "0123456789"
*****************************************************************************************/
function isInteger(q)
 {
	var test = "true"
	inputStr = q.toString()
	for (var i = 0; i < inputStr.length; i++)
		{
			var oneChar = inputStr.charAt(i)			
			if (oneChar < "0" || oneChar > "9")
		     {
				test = "false"
			 }
		}
	return (test)
 }


/**************************************************************************************
'*** Funciones Dreamweaber
'**************************************************************************************/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  alert("swap");
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
/*****************************************************************************************
'Fecha : Noviembre 21/2001
'.........................................................................................
'Descripcion:
'		Verifica que login y password de una forma existan sino devuelve un mensaje.
'.........................................................................................
'Parametros: 0
'.........................................................................................
'Validaciones: 
'		- Ninguno de los caracteres que componen la cadena debe ser diferente de los
'		  caracteres de la lista "0123456789"
*****************************************************************************************/


function Val_Login()
{
if (strTrim(document.frm_usuario.Txt_login.value, TRIM_BOTH) == "")
	{
	alert("Ingrese el login!");
	return false;
	}
else 
	{
	if (strTrim(document.frm_usuario.Txt_clave.value, TRIM_BOTH) == "")
		{
		alert("Ingrese la clave!");
		return false;
		}
	else
		{
		//alert(" Recuerda: Si ya cuentas con  clave de 007 mundo.com puedes utilizar la misma  para consultar tarifa personal y puntos verdes en internet.");
		return true;
		}
	}
}




