
////////////////////////////////////////////////////////////////////////////////////////////
//Funciones para validar las cadenas de texto que se ingresan


var lowercaseLetters = " abcdefghijklmnopqrstuvwxyzáéíóúñü";
var uppercaseLetters = " ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ";
var whitespace = " \t\n\r";
var defaultEmptyOK = false;

// Quita todos los caracteres que que estan en "bag" del string "s" s.
function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";

    // Buscar por el string, si el caracter no esta en "bag", 
    // agregarlo a returnString
    
    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

//Campo Vacio
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

//Espacios en Blanco
function isWhitespace (s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        // si el caracter en que estoy no aparece en whitespace,
        // entonces retornar falso
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

//Es letra
function isLetter (c)
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

//Es numero
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

//Es del alfabeto
function isAlphabetic (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }
    return true;
}

//Nombres comunes
function isName (s)
{
    if (isEmpty(s)) 
       if (isName.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    
    return( isAlphabetic( stripCharsInBag( s, whitespace ) ) );
}


// s tiene solo letras y numeros
function isAlphanumeric (s)
{   var i;

    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

// s tiene solo letras, numeros o espacios en blanco
function isName2 (s)
{
    if (isEmpty(s)) 
       if (isName.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);
    
    return( isAlphanumeric( stripCharsInBag( s, whitespace ) ) );
}

//Es entero
function isInteger (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

///////////////////////////////////////////////////////////////////////////////////////////

//Función para Contactenos Usuarios sin Registro

function validarcontacto(v){

if (v.nombre.value == ''){
		alert("Debe Ingresar su Nombre");
		v.nombre.focus();
		return false;
}
else if (!isName(v.nombre.value)){
		alert("El Nombre que Ingresó no es Válido");
		v.nombre.select();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("Correo Inválido");
		v.email.focus();
		return false; 
}
else if (v.mensaje.value == ''){
			alert("Debe Ingresar un Mensaje");
			v.mensaje.focus();
			return false; 
}
else if (isWhitespace(v.mensaje.value)){
			alert("Debe Ingresar un Mensaje");
			v.mensaje.select();
			return false; 
}
else {
	return true;
} 
} 


///////////////////////////////////////////////////////////////////////////////////////////

//Función para Contactenos Usuarios con Registro

function validarcontacto2(v){

if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("Correo Inválido");
		v.email.focus();
		return false; 
}
else if (v.mensaje.value == ''){
			alert("Debe Ingresar un Mensaje");
			v.mensaje.focus();
			return false; 
}
else if (isWhitespace(v.mensaje.value)){
			alert("Debe Ingresar un Mensaje");
			v.mensaje.select();
			return false; 
}
else {
	return true;
} 
}



///////////////////////////////////////////////////////////////////////////////////////////

//Función para Llenar el Contrato

function validarcontrato(v){

if (v.nombre.value == ''){
		alert("Debe Ingresar su Nombre");
		v.nombre.focus();
		return false;
}

else if (!isName(v.nombre.value)){
		alert("El Nombre que Ingresó no es Válido");
		v.nombre.select();
		return false;
}
else if (v.direccion.value == ''){
			alert("Debe Ingresar su Dirección");
			v.direccion.focus();
			return false; 
}
else if (isWhitespace(v.direccion.value)){
			alert("Debe Ingresar su Dirección");
			v.direccion.select();
			return false; 
}
else if (v.cedula.value == ''){
			alert("Debe Ingresar su Cédula");
			v.cedula.focus();
			return false; 
}
else if (isWhitespace(v.cedula.value)){
			alert("Debe Ingresar su Cédula");
			v.cedula.select();
			return false; 
}
else if (!isDigit(v.cedula.value)){
			alert("Ingrese sólo los números de su Cédula");
			v.cedula.focus();
			return false; 
}
else if (v.titulo.value == ''){
			alert("Debe Ingresar el Título de la Obra");
			v.titulo.focus();
			return false; 
}
else if (isWhitespace(v.titulo.value)){
			alert("Debe Ingresar el Título de la Obra");
			v.titulo.select();
			return false; 
}
else {
	return true;
} 
} 


///////////////////////////////////////////////////////////////////////////////////////////

//Función para validar ingreso a correos

function validarcorreo(v){

if (v.nombre.value == ''){
		alert("Debe Ingresar el Usuario");
		v.nombre.focus();
		return false;
}
else if (isWhitespace(v.nombre.value)){
			alert("Debe Ingresar el Usuario");
			v.nombre.select();
			return false; 
}
else if (v.pwd.value == ''){
			alert("Debe Ingresar la Contraseña");
			v.pwd.focus();
			return false; 
}
else if (isWhitespace(v.pwd.value)){
			alert("Debe Ingresar la Contraseña");
			v.pwd.select();
			return false; 
}
else {
	return true;
} 
} 




///////////////////////////////////////////////////////////////////////////////////////////

//Función para la Cotizacion Inicial

function validarcotizacion(v){

if (v.paginas.value == ''){
		alert("Debe Ingresar las páginas del Libro");
		v.paginas.focus();
		return false;
}
else if (isWhitespace(v.paginas.value)){
			alert("Debe Ingresar las páginas del Libro");
			v.paginas.select();
			return false; 
}
else if (!isInteger(v.paginas.value)){
			alert("Número Inválido de Páginas");
			v.paginas.focus();
			return false; 
}
else if (eval(v.paginas.value)<=30){
			alert("El número de páginas debe ser mayor a 30");
			v.paginas.focus();
			return false; 
}
else if (v.ejemplares.value == ''){
		alert("Debe Ingresar el número de libros");
		v.ejemplares.focus();
		return false;
}
else if (isWhitespace(v.ejemplares.value)){
			alert("Debe Ingresar el número de libros");
			v.ejemplares.select();
			return false; 
}
else if (!isInteger(v.ejemplares.value)){
			alert("Número Inválido de libros");
			v.ejemplares.focus();
			return false; 
}
else if (eval(v.ejemplares.value)<100){
			alert("El número de ejemplares debe ser 100 o superior en la primera edición");
			v.paginas.focus();
			return false; 
}
else {
	return true;
} 
} 


///////////////////////////////////////////////////////////////////////////////////////////

//Función para la Cotizacion Final

function validarcotizacion2(v){

if (v.paginas.value == ''){
		alert("Debe Ingresar las páginas del Libro");
		v.paginas.focus();
		return false;
}
else if (isWhitespace(v.paginas.value)){
			alert("Debe Ingresar las páginas del Libro");
			v.paginas.select();
			return false; 
}
else if (!isInteger(v.paginas.value)){
			alert("Número Inválido de Páginas");
			v.paginas.focus();
			return false; 
}
else if (v.ejemplares.value == ''){
		alert("Debe Ingresar el número de ejemplares");
		v.ejemplares.focus();
		return false;
}
else if (isWhitespace(v.ejemplares.value)){
			alert("Debe Ingresar el número de ejemplares");
			v.ejemplares.select();
			return false; 
}
else if (!isInteger(v.ejemplares.value)){
			alert("Número Inválido de Ejemplares");
			v.ejemplares.focus();
			return false; 
}
else if (v.caratulas.value == ''){
		alert("Debe Ingresar el número de carátulas");
		v.caratulas.focus();
		return false;
}
else if (isWhitespace(v.caratulas.value)){
			alert("Debe Ingresar el número de carátulas");
			v.caratulas.select();
			return false; 
}
else if (!isInteger(v.caratulas.value)){
			alert("Número Inválido de carátulas");
			v.caratulas.focus();
			return false; 
}
else {
	return true;
} 
} 



///////////////////////////////////////////////////////////////////////////////////////////

//Función para Comentarios

function validarcomentario(v){

if (v.nombre.value == ''){
		alert("Debe Ingresar su Nombre");
		v.nombre.focus();
		return false;
}
else if (!isName(v.nombre.value)){
		alert("El Nombre que Ingresó no es Válido");
		v.nombre.select();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("Correo Inválido");
		v.email.focus();
		return false; 
}
else if (v.comentario.value == ''){
			alert("Debe Ingresar un Comentario");
			v.comentario.focus();
			return false; 
}
else if (isWhitespace(v.comentario.value)){
			alert("Debe Ingresar un Comentario");
			v.comentario.select();
			return false; 
}
else if (eval(v.comentario.value.length)>1000){
			alert("El comentario no puede superar los 1000 caracteres");
			v.comentario.focus();
			return false;
}
else {
	return true;
} 
} 



///////////////////////////////////////////////////////////////////////////////////////////

//Función para Suscripción de Usuarios

function validarregistro(v){

if (isWhitespace(v.nombre.value)){
			alert("Debe ingresar su Nombre");
			v.nombre.select();
			return false; 
}
else if (!isName(v.nombre.value)){
		alert("El Nombre que Ingresó no es Válido");
		v.nombre.select();
		return false;
}
else if (eval(v.nombre.value.length)<5){
		alert("El nombre debe ser mayor a 5 caracteres");
		v.nombre.focus();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("El Email que ingresó no es válido");
		v.email.focus();
		return false; 
}
/*else if (v.password1.value == ''){
		alert("Debe ingresar la Contraseña");
		v.password1.focus();
		return false;
}
else if (isWhitespace(v.password1.value)){
			alert("La Contraseña que ingresó no es válida");
			v.password1.select();
			return false; 
}
else if (eval(v.password1.value.length)<3){
		alert("La contraseña debe ser mayor a 3 caracteres");
		v.password1.focus();
		return false;
}
else if (v.password2.value == ''){
		alert("Debe ingresar la confirmación de la Contraseña");
		v.password2.focus();
		return false;
}
else if (eval(v.password2.value.length)<3){
		alert("La confirmación de contraseña debe ser mayor a 3 caracteres");
		v.password2.focus();
		return false;
}
else if (isWhitespace(v.password2.value)){
			alert("Confirmación de Contraseña Inválida");
			v.password2.select();
			return false; 
}*/
else {
	return true;
} 
} 



///////////////////////////////////////////////////////////////////////////////////////////

//Función para Modificar Registro de Usuarios

function modificarregistro(v){

if (v.nombre.value == ''){
		alert("Por favor ingrese su Nombre");
		v.nombre.focus();
		return false;
}
else if (!isName(v.nombre.value)){
		alert("El Nombre que Ingresó no es Válido");
		v.nombre.select();
		return false;
}
else if (eval(v.nombre.value.length)<5){
		alert("El nombre debe ser mayor a 5 caracteres");
		v.nombre.focus();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("El Correo que ingresó no es válido");
		v.email.focus();
		return false; 
}/*
else if (v.password1.value != ''){
		if (v.password2.value == ''){
		alert("Debe ingresar la confirmación de la Contraseña");
		v.password2.focus();
		return false;
		}
		else if (eval(v.password1.value.length)<3){
		alert("La contraseña debe ser mayor a 3 caracteres");
		v.password1.focus();
		return false;
		}
		else if (v.password1.value != v.password2.value){
		alert("La contraseña y su confirmación no coinciden");
		v.password1.focus();
		return false;
		}
}
else if (v.password2.value != ''){
		if (v.password1.value == ''){
		alert("Debe ingresar la Contraseña antes de la confirmación");
		v.password1.focus();
		return false;
		}
		else if (eval(v.password2.value.length)<3){
		alert("La confirmación de contraseña debe ser mayor a 3 caracteres");
		v.password2.focus();
		return false;
		}
		else if (v.password1.value != v.password2.value){
		alert("La contraseña y su confirmación no coinciden");
		v.password1.focus();
		return false;
		}
}*/
else {
	return true;
} 
} 




///////////////////////////////////////////////////////////////////////////////////////////

//Función para Validar Olvido de contraseña

function validarolvido(v){

if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("Correo Inválido");
		v.email.focus();
		return false; 
}
else {
	return true;
} 
} 


///////////////////////////////////////////////////////////////////////////////////////////

//Función para Paginación

function validarpaginas(v){

if (isWhitespace(v.P.value)){
		alert("Número vacío de páginas");
		v.P.select();
		return false;
}
else if (!isInteger(v.P.value)){
		alert("Número de página inválido");
		v.P.select();
		return false;
}
else if (eval(v.P.value)>eval(v.maximo.value)){
		alert("Número de página excede el máximo valor");
		v.P.select();
		return false;
}
else if (v.P.value==0){
		alert("Número de página es cero");
		v.P.select();
		return false;
}
else {
	return true;
} 
} 


///////////////////////////////////////////////////////////////////Guardar Página

function guardar (filename)
{
	document.execCommand('SaveAs',null,filename)
}

////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////

//Función para Recomendar

function validarrecomendar(v){

if (v.nombre.value == ''){
		alert("Debe Ingresar el nombre del destinatario");
		v.nombre.focus();
		return false;
}
else if (!isName(v.nombre.value)){
		alert("El Nombre del destinatario no es válido");
		v.nombre.select();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email.value))){
		alert("El correo del destinatario no es válido");
		v.email.focus();
		return false; 
}
else if (v.nombre2.value == ''){
		alert("Debe Ingresar su nombre");
		v.nombre2.focus();
		return false;
}
else if (!isName(v.nombre2.value)){
		alert("Su nombre no es válido");
		v.nombre2.select();
		return false;
}
else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(v.email2.value))){
		alert("Su correo no es válido");
		v.email2.focus();
		return false; 
}
else {
	return true;
} 
} 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//funcion para abrir las ventanas emergentes

function popUp_ayuda(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=320,height=400,left=0,top=0');");
}


