2021-01-12 11:44:15 -03:00
let available _colors = {
white : {
name : 'blanco' ,
rgb : 'rgb(255, 255, 255)'
} ,
black : {
name : 'negro' ,
rgb : 'rgb(0, 0, 0)'
} ,
blue : {
name : 'azul' ,
rgb : 'rgb(0, 0, 255)'
} ,
petrol : {
name : 'petroleo' ,
rgb : 'rgb(0, 0, 150)'
} ,
cyan : {
name : 'celeste' ,
rgb : 'rgb(150, 150, 255)'
} ,
green : {
name : 'verde' ,
rgb : 'rgb(0, 255, 0)'
} ,
yellow : {
name : 'amarillo' ,
rgb : 'rgb(255, 255, 0)'
} ,
orange : {
name : 'naranjo' ,
rgb : 'rgb(255, 130, 0)'
} ,
red : {
name : 'rojo' ,
rgb : 'rgb(255, 0, 0)'
}
}
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 ) {
2021-01-12 18:36:10 -03:00
this . colors = available _colors
2021-01-03 00:22:47 -03:00
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 ) => {
2021-01-12 18:36:10 -03:00
let color = $ ( el ) . attr ( 'class' ) . split ( ' ' ) [ 0 ]
let cssColor = $ ( el ) . css ( 'background-color' )
if ( cssColor != this . colors [ color ] [ 'rgb' ] ) {
$ ( el ) . css ( 'background-color' , this . colors [ color ] [ 'rgb' ] )
}
2021-01-03 00:22:47 -03:00
$ ( el ) . click ( ( e ) => {
this . change _color ( color )
} )
} )
this . change _color ( 'blue' )
}
default _color _format ( el ) {
$ ( el ) . removeClass ( 'selected' )
}
change _color ( color ) {
2021-01-12 18:36:10 -03:00
this . picked = this . colors [ color ] [ 'name' ]
2021-01-03 00:22:47 -03:00
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' )
}
}
}
2021-01-12 11:44:15 -03:00
let ventajas = {
elem : $ ( '#ventajas' ) ,
2021-01-12 18:36:10 -03:00
fotos : 6 ,
2021-01-12 11:44:15 -03:00
setup : function ( ) {
let h = this . elem . css ( 'height' )
let w = this . elem . css ( 'width' )
this . elem . find ( '.diagonal' ) . css ( 'borderBottomWidth' , h )
this . elem . find ( '.diagonal' ) . css ( 'borderRightWidth' , w )
2021-01-12 18:36:10 -03:00
this . elem . find ( '.nav.left' ) . click ( ( e ) => {
this . prev ( )
} )
this . elem . find ( '.nav.right' ) . click ( ( e ) => {
this . next ( )
} )
2021-01-13 16:50:22 -03:00
this . elem . find ( '.gallery' ) . swipe ( {
swipeLeft : ( e , dir , d , t , n , data ) => {
this . next ( )
} ,
swipeRight : ( e , dir , d , t , n , data ) => {
this . prev ( )
}
} )
2021-01-12 18:36:10 -03:00
} ,
current : 1 ,
next : function ( ) {
var n = this . current + 1
if ( n > this . fotos ) {
n = 1
}
this . elem . find ( '.gallery .image img' ) . attr ( 'src' , './assets/images/galeria/foto' + n + '.jpg' )
this . current = n
} ,
prev : function ( ) {
var n = this . current - 1
if ( n < 1 ) {
n = this . fotos
}
this . elem . find ( '.gallery .image img' ) . attr ( 'src' , './assets/images/galeria/foto' + n + '.jpg' )
this . current = n
2021-01-12 11:44:15 -03:00
}
}
let dimensiones = {
colors : available _colors ,
elem : $ ( '#dimensiones' ) ,
setup : function ( ) {
this . elem . find ( '.colores .circle' ) . each ( ( i , el ) => {
let color = $ ( el ) . attr ( 'class' ) . split ( ' ' ) [ 0 ]
if ( color == 'petrol' || color == 'cyan' ) {
$ ( el ) . css ( 'background-color' , this . colors [ color ] [ 'rgb' ] )
}
$ ( el ) . click ( ( e ) => {
this . change _color ( color )
} )
} )
} ,
change _color : function ( color ) {
this . picked = this . colors [ color ] [ 'name' ]
this . elem . find ( '.colores .circle' ) . each ( ( i , el ) => {
$ ( el ) . removeClass ( 'selected' )
} )
this . elem . find ( '.colores .' + color + '.circle' ) . addClass ( 'selected' )
this . change _images ( this . colors [ color ] [ 'name' ] )
} ,
change _images : function ( color ) {
this . elem . find ( '.fotos img' ) . each ( ( i , el ) => {
let pos = $ ( el ) . attr ( 'class' )
$ ( el ) . attr ( 'src' , './assets/images/fotos/' + color + '/' + pos + '.jpg' )
} )
}
}
2021-01-03 00:22:47 -03:00
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 = {
2021-01-13 14:17:30 -03:00
elem : $ ( '#contacto_form' ) ,
2021-01-03 00:22:47 -03:00
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 : [
2021-01-13 14:17:30 -03:00
{
"autor" : "John Master" ,
"contenido" : "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"
} ,
{
"autor" : "John Master" ,
"contenido" : "Siiii todo mi gusto.. me encantó lo completo que es. Gracias"
} ,
{
"autor" : "John Master" ,
"contenido" : "Está super cool se ve de buena calidad"
} ,
{
"autor" : "John Master" ,
"contenido" : "Llego el mío, y es excelente, estoy feliz con mi compra"
} ,
{
"autor" : "John Master" ,
"contenido" : "Hola!!Me llegó el pedido, Muchas gracias muy bello. Me salvaste la vida"
} ,
{
"autor" : "John Master" ,
"contenido" : "Perfecto el producto, funciona impecable, muchas gracias"
} ,
{
"autor" : "John Master" ,
"contenido" : "Están bacanes! muchísimas gracias. Le regalé a mis viejos y lo aman"
} ,
{
"autor" : "John Master" ,
"contenido" : "Hola! Quería decirte que me encantaron los soportes, Muy útiles!"
} ,
{
"autor" : "John Master" ,
"contenido" : "Compré 3 y olvidé decirte que los encontré geniales! Me encantaron"
} ,
{
"autor" : "John Master" ,
"contenido" : "Diseño simple y funcional, minimalista y excelente precio, despacho súper Rápido.. gracias!"
}
2021-01-04 01:06:50 -03:00
] ,
2021-01-13 14:17:30 -03:00
elem : $ ( '#testimonios' ) ,
2021-01-04 01:06:50 -03:00
page : 0 ,
setup : function ( ) {
2021-01-13 14:17:30 -03:00
if ( this . amount != 3 ) {
this . elem . find ( '.testimonios' ) . removeClass ( 'three' )
this . elem . find ( '.testimonios' ) . addClass ( this . word _amount [ this . amount ] )
}
2021-01-04 01:06:50 -03:00
this . draw ( )
} ,
2021-01-13 14:17:30 -03:00
amount : 3 ,
word _amount : {
1 : 'one' ,
3 : 'three'
} ,
2021-01-04 01:06:50 -03:00
draw : function ( ) {
2021-01-13 14:17:30 -03:00
var n = this . page * this . amount
let p = this . elem . find ( '.testimonios' )
p . html ( '' )
for ( var i = 0 ; i < this . amount ; i ++ ) {
2021-01-04 01:06:50 -03:00
if ( n >= this . testimonios . length ) {
2021-01-13 14:17:30 -03:00
break
2021-01-04 01:06:50 -03:00
}
2021-01-13 14:17:30 -03:00
p . append (
$ ( '<div></div>' ) . attr ( 'class' , 'ui centered fluid card' ) . append (
$ ( '<div></div>' ) . attr ( 'class' , 'center aligned content' ) . append (
$ ( '<div></div>' ) . attr ( 'class' , 'header' ) . html ( this . testimonios [ n ] [ 'autor' ] . toUpperCase ( ) )
) . append (
$ ( '<div></div>' ) . attr ( 'class' , 'description' ) . html ( this . testimonios [ n ] [ 'contenido' ] )
)
) . append (
$ ( '<div></div>' ) . attr ( 'class' , 'center aligned content' ) . append (
$ ( '<div></div>' ) . attr ( 'class' , 'ui mini black rating disabled' ) . attr ( 'data-rating' , '5' ) . attr ( 'data-max-rating' , '5' )
)
)
)
n ++
}
this . elem . find ( '.ui.rating' ) . rating ( )
2021-01-04 01:06:50 -03:00
this . draw _nav ( )
} ,
draw _nav : function ( ) {
2021-01-13 14:17:30 -03:00
let N = Math . ceil ( this . testimonios . length / this . amount )
2021-01-04 01:06:50 -03:00
let k = this . page
2021-01-13 14:17:30 -03:00
let nav = this . elem . find ( '.nav' )
2021-01-04 01:06:50 -03:00
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:33 -03:00
$ ( document ) . ready ( function ( ) {
2021-01-12 11:44:15 -03:00
$ ( '#menu.sticky' ) . sticky ( )
2021-01-02 17:08:58 -03:00
$ ( '.column2 .sticky' ) . sticky ( {
2020-12-18 15:05:33 -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-12 11:44:15 -03:00
ventajas . setup ( )
dimensiones . setup ( )
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-13 14:17:30 -03:00
window . mobileCheck = function ( ) {
let check = false ;
( function ( a ) { if ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i . test ( a ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i . test ( a . substr ( 0 , 4 ) ) ) check = true ; } ) ( navigator . userAgent || navigator . vendor || window . opera ) ;
return check ;
} ;
if ( window . mobileCheck ( ) ) {
testimonios . amount = 1
}
2021-01-04 01:06:50 -03:00
testimonios . setup ( )
2020-12-18 15:05:33 -03:00
} )