function esBisiesto( anio ){
    if ( (anio % 4 == 0) && ( (anio % 100 != 0) || (anio % 400 == 0) ) ) return true;
    else return false;
}


var Traductor = function(){
    this.etiquetas = new Array( 'Usuario', 'Contraseña', 'Vuelva a introducir la contraseña', 'e-mail', 'Fecha de nacimiento', 'Sexo', 'Regístrate!', 'Al hacer clic en Regístrate certifico que soy mayor de edad y que he leído y aceptado las condiciones de uso y política de privacidad', 'Inicia Sesión' );
    
    this.nombreMeses = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
    
    this.tipoUsuario = new Array('superusuario', 'normal', 'premium');
    this.estadoOnline = new Array('desconectado', 'conectado');
    this.identidadSexual = new Array( 'mujer', 'hombre', 'transhombre', 'transmujer');
    this.orientacionSexual = new Array( 'no especificada', 'heterosexual', 'bisexual', 'homosexual', 'pansexual', 'asexual');
    this.situacionSentimental = new Array( 'no especificada', 'soltero', 'casado' );
    this.colorOjos = new Array('no especificado', 'castaño', 'ámbar', 'avellana', 'verde', 'azul', 'gris', 'negro','rojizo', 'violeta', 'heterocromía');
    this.colorPiel = new Array('no especificado', 'rosada', 'blanca', 'trigueña', 'morena', 'muy morena', 'negra');
    this.colorPelo = new Array('no especificado', 'negro', 'castaño oscuro', 'castaño claro', 'rubio oscuro', 'rubio claro', 'rojo', 'gris', 'blanco', 'teñido')
    this.etnia = new Array('no especificado','blanco','asiático','latinoamericano', 'mediterráneo', 'negro', 'mestizo', 'árabe', 'hindú');
    
    this.etiquetasApariencia = new Array('Altura (cm)', 'Peso (kg)', 'Color de Ojos', 'Color de Piel', 'Color de Pelo', 'Etnia');
    this.etiquetasPersonal = new Array( 'Nombre', 'Apellidos', 'e-mail', 'Estado usuario', 'Sexo', 'Sexualidad', 'Situación sentimental', 'Número de hijos', 'Fecha de nacimiento', 'Lugar de nacimiento', 'Lugar de residencia');

    this.visibilidad = new Array('No visible', 'Visible');
    
}

var Fecha = function( ){
    
    if( arguments.length == 0 ){
        var fechaActual = new Date( );
        var fechaUtc = fechaActual.getTime() + fechaActual.getTimezoneOffset()*60000;
    }
    else{
        var anio = arguments[0];
        var mes = arguments[1]-1;
        var dia = arguments[2];
        var horas = arguments[3];
        var minutos = arguments[4];
        var segundos = arguments[5];
        
        var fechaUtc = new Date( anio, mes, dia, horas, minutos, segundos, 0 );
    }
    
    this.fecha = new Date( fechaUtc );
    this.grafico = false;
    
}
Fecha.prototype.getAnio = function(){ 
    return this.fecha.getFullYear(); 
}
Fecha.prototype.getMes = function(){ return (this.fecha.getMonth()+1); }
Fecha.prototype.getDia = function(){ return this.fecha.getDate(); }
Fecha.prototype.getHoras = function(){ return this.fecha.getHours(); }
Fecha.prototype.getMinutos = function(){ return this.fecha.getMinutes(); }
Fecha.prototype.getSegundos = function(){ return this.fecha.getSeconds(); }
Fecha.prototype.getMesNombre = function( ){ 
    return (traductor.nombreMeses[this.fecha.getMonth()]); 
}




/*Fecha.prototype.mover = function( x, y ){
    mover( this.id, x, y );
}
Fecha.prototype.crearGrafico = function( id, padre, ancho, alto, x, y ){

    this.id = id;
    this.grafico = true;
    
    contenedor( id, padre, ancho, alto, '0px solid', 15, 1.0, 'white' );
    
    etiqueta( id+'_1', id, ancho, alto*0.2, '0px', 0, 1.0, 'red', this.getAnio(), 'black', 0.7, 'center' );
    etiqueta( id+'_2', id, ancho, alto*0.2, '0px', 0, 1.0, 'yellow', this.getMesNombre(), 'black', 0.7, 'center' );
    etiqueta( id+'_3', id, ancho, alto*0.4, '0px', 0, 1.0, 'white', this.getDia(), 'black', 0.7, 'center' );
    
    etiqueta( id+'_4', id, ancho*0.25, alto*0.2, '0px', 0, 1.0, 'black', this.getHoras(), 'white', 0.5, 'center' );
    etiqueta( id+'_5', id, ancho*0.25, alto*0.2, '0px', 0, 1.0, 'black', this.getMinutos(), 'white', 0.5, 'center' );
    etiqueta( id+'_6', id, ancho*0.25, alto*0.2, '0px', 0, 1.0, 'black', this.getSegundos(), 'white', 0.5, 'center' );
    etiqueta( id+'_7', id, ancho*0.125, alto*0.2, '0px', 0, 1.0, 'black', ':', 'white', 0.5, 'center' );
    etiqueta( id+'_8', id, ancho*0.125, alto*0.2, '0px', 0, 1.0, 'black', ':', 'white', 0.5, 'center' );
    
    
    mover(id, x, y);
    colocar( id+'_2', id+'_1', 0, 6, 0, 0 );
    colocar( id+'_3', id+'_2', 0, 6, 0, 0 );
    
    colocar( id+'_4', id+'_3', 0, 6, 0, 0 );
    colocar( id+'_7', id+'_4', 3, 5, 0, 0 );
    colocar( id+'_5', id+'_7', 3, 5, 0, 0 );
    colocar( id+'_8', id+'_5', 3, 5, 0, 0 );
    colocar( id+'_6', id+'_8', 3, 5, 0, 0 );
    
    
}


Fecha.prototype.crearGraficoTipo1 = function( id, padre, ancho, alto, x, y ){

    this.id = id;
    this.grafico = true;
    
    var colorAnio = 'red';
    var colorMes = 'yellow';
    var colorDia = 'grey';
    
    contenedor( id, padre, ancho, alto, '1px solid', 15, 1.0, 'white' );
    
    etiqueta( id+'_1', id, ancho, alto*0.2, '0px', 0, 1.0, colorAnio, this.getAnio(), 'black', 0.7, 'center' );
    etiqueta( id+'_2', id, ancho, alto*0.2, '0px', 0, 1.0, colorMes, this.getMesNombre(), 'black', 0.7, 'center' );
    etiqueta( id+'_3', id, ancho, alto*0.6, '0px', 0, 1.0, colorDia, this.getDia(), 'black', 0.7, 'center' );
    
    
    mover(id, x, y);
    colocar( id+'_2', id+'_1', 0, 6, 0, 0 );
    colocar( id+'_3', id+'_2', 0, 6, 0, 0 );
    
    
    
    
    
}*/

var FotoUsuario = function( idUsuario, src, ancho, alto, visibilidad, fecha, titulo, perfil ){
    this.idUsuario = idUsuario;
    this.src = src;
    this.ancho = ancho;
    this.alto = alto;
    this.visibilidad = visibilidad;
    this.fecha = fecha;
    this.titulo = titulo;
    this.perfil = perfil;
}

var Usuario = function( idUsuario ){
    this.idUsuario = idUsuario;
}
Usuario.prototype.modificarNombre = function( x ) { this.nombre = x; }
Usuario.prototype.modificarApellidos = function( x ) { this.apellidos = x; }
Usuario.prototype.modificarEmail = function( x ) { this.email = x; }
Usuario.prototype.modificarEstadoUsuario = function( x ) { this.estadoUsuario = x; }
Usuario.prototype.modificarEstadoOnline = function( x ) { this.estadoOnline = x; }
Usuario.prototype.modificarTipoUsuario = function( x ) { this.tipoUsuario = x; }
Usuario.prototype.modificarAltura = function( x ) { this.altura = x; }
Usuario.prototype.modificarPeso = function( x ) { this.peso = x; }
Usuario.prototype.modificarColorOjos = function( x ) { this.colorOjos = x; }
Usuario.prototype.modificarColorPelo = function( x ) { this.colorPelo = x; }
Usuario.prototype.modificarColorPiel = function( x ) { this.colorPiel = x; }
Usuario.prototype.modificarEtnia = function( x ) { this.etnia = x; }
Usuario.prototype.modificarIdentidadSexual = function( x ) { this.identidadSexual = x; }
Usuario.prototype.modificarOrientacionSexual = function( x ) { this.orientacionSexual = x; }
Usuario.prototype.modificarSituacionSentimental = function( x ) { this.situacionSentimental = x; }
Usuario.prototype.modificarCantidadHijos = function( x ) { this.cantidadHijos = x; }
Usuario.prototype.modificarVisibilidad = function( x ) { 
    this.visibilidad = new Array( x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22] ); 
}
Usuario.prototype.modificarFechaRegistro= function( ano, mes, dia, horas, minutos, segundos ){
    this.fechaRegistro = new Fecha( ano, mes, dia, horas, minutos, segundos );
} 
Usuario.prototype.modificarFechaNacimiento= function( ano, mes, dia, horas, minutos, segundos ){
    this.fechaNacimiento = new Fecha( ano, mes, dia, horas, minutos, segundos );
} 
Usuario.prototype.modificarZonaHoraria= function( zonaHorariaNombre, zonaHorariaOffset ){ 
    this.zonaHorariaNombre = zonaHorariaNombre;
    this.zonaHorariaOffset = zonaHorariaOffset;
}
Usuario.prototype.visibilidadNombre = function( ) { return this.visibilidad[3]; }

Usuario.prototype.visibilidadAltura = function( ) { return this.visibilidad[12]; }
Usuario.prototype.visibilidadPeso = function( ) { return this.visibilidad[13]; }
Usuario.prototype.visibilidadColorOjos = function( ) { return this.visibilidad[14]; }
Usuario.prototype.visibilidadColorPiel = function( ) { return this.visibilidad[15]; }
Usuario.prototype.visibilidadColorPelo = function( ) { return this.visibilidad[16]; }
Usuario.prototype.visibilidadEtnia = function( ) { return this.visibilidad[17]; }

Usuario.prototype.aparienciaVisibilidad = function( vAltura, vPeso, vCOjos, vCPiel, vCPelo, vEtnia ){
    this.visibilidad[12] = vAltura;
    this.visibilidad[13] = vPeso;
    this.visibilidad[14] = vCOjos;
    this.visibilidad[15] = vCPiel;
    this.visibilidad[16] = vCPelo;
    this.visibilidad[17] = vEtnia;
}
Usuario.prototype.visibilidadCadena = function(){
    var s = "";
    for( var i = 0; i<this.visibilidad.length;i++) s+=this.visibilidad[i];
    
    return s;
}

/*----------------------------------------------------------------------------*/

//$idUsuario, $pass, $email, $nombre, $apellidos, $estadoUsuario, $tipoUsuario, $estadoOnline, $fechaNacimiento, $fechaRegistro,$zonaHoraria, $altura, $peso, $colorOjos, $colorPiel, $colorPelo, $etnia, $lugarNacimiento, $lugarResidencia, $identidadSexual,$orientacionSexual, $situacionSentimental, $cantidadHijos, $visibilidad

