Função Wesley Safadão :p
by Bruno Augusto
HTML
<select id="days"></select>
<select id="months"></select>
<select id="years"></select>
<button>
Calcular
</button>
<div class="hidden" id="results">
<h2>Você é...</h2>
<span id="angel">
<img...
CSS
@import url('https://fonts.googleapis.com/css?family=Roboto');
body {
font-family: 'Roboto';
}
span {
font-size: .9em;
}
#angel img, #naughty img {
margin: -4px 0 0 5px;
vertical-align: middle;
}
#angel img {
width: 1.4em;
}
#naughty img {
width: 1.2em;
}
.hidden {
display: none;
}
JavaScript
function addDays() {
var $days = $( '#days' );
$days.empty();
for( var i = 0; i < 31; i++ ) {
$( '<option />' ).text( i + 1 ).val( i + 1 ).appendTo( $days );
}
}
function addMonths() {
var months = [
'Janeiro','Fevereiro','Março','Abril','Maio','Junho',
'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'
];
for( var i = 0; i < 12; i++ ) {
$( '<option />' ).text( months[ i ] ).val( i + 1 ).appendTo( $( '#months' ) );
}
}
function addYears() {
var currYear = new Date().getUTCFullYear();
for( var i = currYear; i >= ( currYear - 100 ); i-- ) {
$("<option />").text( i ).val( i ).appendTo( $( '#years' ) );
}
}
function wesley_safadao( day, month, year ) {
var safadeza;
/**
* Modificado ligeiramente da função "somatorio" original
* pois o resultado computado de um número fatorial pode
* ser bem grande e estragar a brincadeira ^_^
*/
safadeza = parseInt( factorial( month ).toString().substr( 0, 2 ) ) +
( ( ( year % 100 ) / 100 ) * ( 50 - day ) );
if( safadeza > 100 ) {
safadeza -= ( safadeza - 100 ) * 2;
}
$( '#angel' ).prepend( ( 100 - safadeza ) + '%' );
$( '#naughty' ).prepend( safadeza + '%' )
$( '#results' ).removeClass( 'hidden' );
}
function factorial( num ) {
var rval = 1;
for( var i = 2; i <= num; i++ ) rval = rval * i;
return rval;
}
addDays();
addMonths();
addYears();
$( 'button' ).on( 'click', function() {
$( '#angel img' ).clone().appendTo( $( '#angel' ).empty() );
$( '#naughty img' ).clone().appendTo( $( '#naughty' ).empty() );
wesley_safadao(
$( '#days' ).val(), $( '#months' ).val(), $( '#years' ).val()
);
})
$( 'select' ).on( 'change', function() {
$( '#results' ).addClass( 'hidden' );
})