2021-01-03 00:22:47 -03:00
class Amount {
constructor ( elem ) {
this . elem = elem
this . minus = elem . parent ( ) . find ( '.minus' )
this . plus = elem . parent ( ) . find ( '.plus' )
this . n = 0
this . setup ( )
this . max = 999
}
setup ( ) {
this . elem . val ( 0 )
this . plus . click ( ( e ) => {
this . increment ( )
this . print ( )
} )
this . minus . click ( ( e ) => {
this . decrement ( )
this . print ( )
} )
this . elem . change ( ( e ) => {
this . n = parseInt ( this . elem . val ( ) )
this . print ( )
} )
this . print ( )
}
enable _button ( name ) {
this [ name ] . removeClass ( 'disabled' )
if ( name == 'plus' ) {
this [ name ] . html ( '<i class="plus icon"></i>' )
}
if ( name == 'minus' ) {
this [ name ] . html ( '<i class="minus icon"></i>' )
}
}
disable _button ( name ) {
this [ name ] . addClass ( 'disabled' )
this [ name ] . html ( '' )
}
check _limits ( ) {
this . enable _button ( 'plus' )
this . enable _button ( 'minus' )
if ( this . n > this . max ) {
this . n = this . max
}
if ( this . n == this . max ) {
this . disable _button ( 'plus' )
}
if ( this . n < 0 ) {
this . n = 0
}
if ( this . n == 0 ) {
this . disable _button ( 'minus' )
}
}
increment ( ) {
this . n += 1
}
decrement ( ) {
this . n -= 1
}
get value ( ) {
return this . n
}
print ( ) {
this . check _limits ( )
this . elem . val ( this . n )
}
}
class Colors {
constructor ( elem , changing = false ) {
this . color = {
white : 'blanco' ,
black : 'negro' ,
blue : 'azul' ,
green : 'verde' ,
yellow : 'amarillo' ,
orange : 'naranjo' ,
red : 'rojo'
}
this . picked = 'blue'
this . elem = elem
this . input = elem . find ( 'input[name="color"]' )
this . changing = null
if ( changing ) {
this . changing = elem . parent ( ) . parent ( ) . find ( '.column2 img' )
}
this . setup ( )
}
setup ( ) {
this . elem . find ( '.circle' ) . each ( ( i , el ) => {
$ ( el ) . click ( ( e ) => {
let color = $ ( el ) . attr ( 'class' ) . split ( ' ' ) [ 0 ]
this . change _color ( color )
} )
} )
this . change _color ( 'blue' )
}
default _color _format ( el ) {
$ ( el ) . removeClass ( 'selected' )
}
change _color ( color ) {
this . picked = this . color [ color ]
this . input . val ( this . picked )
this . elem . find ( '.circle' ) . each ( ( i , el ) => {
this . default _color _format ( el )
} )
this . elem . find ( '.' + color + '.circle' ) . addClass ( 'selected' )
if ( this . changing != null ) {
this . changing . attr ( 'src' , './assets/images/' + this . picked + '.png' )
}
}
}
let smtp = {
2021-01-06 23:43:16 -03:00
SecureToken : '4adcdc1f-6b6e-4e60-ab72-20da4c329b09' ,
From : 'contacto@3dstand.cl'
2021-01-03 00:22:47 -03:00
}
let sticky _form = {
elem : $ ( '.sticky form' ) ,
setup : function ( ) {
this . elem . submit ( ( e ) => {
e . preventDefault ( )
this . submit ( )
return false
} )
} ,
submit : function ( ) {
console . debug ( 'submit sticky' )
}
}
let cotiza _form = {
elem : $ ( '#corporativos form' ) ,
setup : function ( ) {
this . elem . submit ( ( e ) => {
e . preventDefault ( )
this . submit ( )
return false
} )
this . file = this . elem . find ( 'input[type="file"]' )
this . elem . find ( '.file' ) . click ( ( e ) => {
this . file . trigger ( 'click' )
} )
} ,
submit : function ( ) {
let email = this . elem . find ( '[name="email"]' ) . val ( )
let data = new FormData ( this . elem [ 0 ] )
let body = [
'Nombre: ' + this . elem . find ( '[name="nombre"]' ) . val ( ) ,
'E-mail: ' + email ,
'Teléfono: ' + this . elem . find ( '[name="telefono"]' ) . val ( ) ,
'' ,
'Color: ' + this . elem . find ( '[name="color"]' ) . val ( ) ,
'Cantidad: ' + this . elem . find ( '[name="cantidad"]' ) . val ( ) ,
this . elem . find ( '[name="mensaje"]' ) . val ( )
]
let content = {
2021-01-06 23:43:16 -03:00
SecureToken : smtp . SecureToken ,
2021-01-03 00:22:47 -03:00
To : email ,
From : smtp . From ,
Subject : 'Cotizacion - ' + ( new Date ( ) ) . toLocaleString ( 'es-CL' , { timezone : "UTC-3" } ) ,
Body : body . join ( '<br />' ) ,
Attachments : [
{
name : "Logo" ,
data : data . get ( 'archivo' )
}
]
}
2021-01-06 23:43:16 -03:00
Email . send ( content )
2021-01-03 00:22:47 -03:00
}
}
let conversemos _form = {
elem : $ ( '#contacto' ) ,
setup : function ( ) {
this . elem . submit ( ( e ) => {
e . preventDefault ( )
this . submit ( )
return false
} )
} ,
submit : function ( ) {
let email = this . elem . find ( '[name="email"]' ) . val ( )
let body = [
'Nombre: ' + this . elem . find ( '[name="nombre"]' ) . val ( ) ,
'E-mail: ' + email ,
'' ,
this . elem . find ( '[name="mensaje"]' ) . val ( )
]
let content = {
2021-01-06 23:43:16 -03:00
SecureToken : smtp . SecureToken ,
2021-01-03 00:22:47 -03:00
From : smtp . From ,
To : email ,
Subject : 'Contacto ' + ( new Date ( ) ) . toLocaleString ( 'es-CL' , { timezone : "UTC-3" } ) ,
Body : body . join ( '<br />' )
}
2021-01-06 23:43:16 -03:00
Email . send ( content )
2021-01-03 00:22:47 -03:00
}
}
2021-01-04 01:06:50 -03:00
let testimonios = {
testimonios : [
"Este soporte que compré en @Stand-cl me cambió la vida, me sirve para el teléfono y el ipad, y ya no tengo que andar acomodando los aparatos en cualquier parte para las videollamadas" ,
"Siiii todo mi gusto.. me encantó lo completo que es. Gracias" ,
"Está super cool se ve de buena calidad" ,
"Llego el mío, y es excelente, estoy feliz con mi compra" ,
"Hola!!Me llegó el pedido, Muchas gracias muy bello. Me salvaste la vida" ,
"Perfecto el producto, funciona impecable, muchas gracias" ,
"Están bacanes! muchísimas gracias. Le regalé a mis viejos y lo aman" ,
"Hola! Quería decirte que me encantaron los soportes, Muy útiles!" ,
"Compré 3 y olvidé decirte que los encontré geniales! Me encantaron" ,
"Diseño simple y funcional, minimalista y excelente precio, despacho súper Rápido.. gracias!"
] ,
elem : $ ( '#felices .testimonios' ) ,
page : 0 ,
setup : function ( ) {
this . draw ( )
} ,
draw : function ( ) {
var n = this . page * 3
this . elem . find ( '.testimonio' ) . each ( ( i , el ) => {
if ( n >= this . testimonios . length ) {
$ ( el ) . html ( '' )
return
}
$ ( el ) . html ( this . testimonios [ n ] )
n += 1
} )
this . draw _nav ( )
} ,
draw _nav : function ( ) {
let N = Math . ceil ( this . testimonios . length / 3 )
let k = this . page
let nav = this . elem . parent ( ) . find ( '.nav' )
let tests = this
nav . html ( '' )
for ( var i = 0 ; i < N ; i ++ ) {
var circle = $ ( '<i></i>' ) . attr ( 'class' , 'small circle outline icon' ) . css ( 'cursor' , 'pointer' ) . attr ( 'data-page' , i )
if ( i == k ) {
circle . removeClass ( 'outline' )
}
circle . click ( function ( e ) {
tests . page = parseInt ( $ ( this ) . attr ( 'data-page' ) )
tests . draw ( )
} )
nav . append ( circle )
}
}
}
2020-12-18 15:05:09 -03:00
$ ( document ) . ready ( function ( ) {
2021-01-04 01:06:50 -03:00
2021-01-02 17:08:58 -03:00
$ ( '.menu.sticky' ) . sticky ( )
$ ( '.column2 .sticky' ) . sticky ( {
2020-12-18 15:05:09 -03:00
context : '#column'
} )
2021-01-04 01:06:50 -03:00
$ ( '#subir' ) . sticky ( )
2020-12-20 20:28:40 -03:00
$ ( '.shopping.cart' ) . innerText = 0
2021-01-03 00:22:47 -03:00
let sticky _amount = new Amount ( $ ( '.sticky .input input[name="cantidad"]' ) )
let sticky _color = new Colors ( $ ( '.sticky .colores' ) , true )
sticky _form . setup ( )
let cotiza _amount = new Amount ( $ ( '#corporativos .input input[name="cantidad"]' ) )
let cotiza _color = new Colors ( $ ( '#corporativos .colores' ) )
cotiza _form . setup ( )
conversemos _form . setup ( )
2021-01-04 01:06:50 -03:00
testimonios . setup ( )
2020-12-18 15:05:09 -03:00
} )