formulario.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!doctype html>
  2. <head>
  3. <meta charset="utf-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1">
  5. <!-- <link type="text/css" rel="Stylesheet" href="css/menu.css" /> -->
  6. <link type="text/css" rel="Stylesheet" href="css/spinner.css" />
  7. <link type="text/css" rel="Stylesheet" href="css/normalize.css" />
  8. <link type="text/css" rel="Stylesheet" href="css/skeleton.css" />
  9. <link type="text/css" rel="Stylesheet" href="css/formulario.css" />
  10. <link type="text/css" rel="Stylesheet" href="css/themes/original.css" />
  11. <script src="js/rivets.bundled.min.js"></script>
  12. <script src="js/humane.min.js"></script>
  13. </head>
  14. <body id="view">
  15. <div class="row nav-bar">
  16. <div class="left">
  17. <a class="button" href="#">Volver</a>
  18. </div>
  19. <div class="right">
  20. <a href="http://especificosba.com.ar"><img src="Images/logo-horizontal.png" class="logo"></a>
  21. </div>
  22. </div>
  23. <div class="section promocion">
  24. <div class="container max-top-space">
  25. <div class="row">
  26. <div class="eight columns xl-top-space">
  27. <h1>Actualizá tus datos</h1>
  28. <p>Estarás participando por un sorteo para ganar un set de productos de ESPECIFICOS Buenos Aires</p>
  29. </div>
  30. <div class="four columns">
  31. <img src="Images/productos/productos.png" class="productos">
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="section">
  37. <div class="container">
  38. <div id="spinner" class="loading">Loading&#8230;</div>
  39. <form onsubmit="return false">
  40. <div class="row">
  41. <h4>Datos personales</h4>
  42. </div>
  43. <div class="row">
  44. <div class="four columns">
  45. <label for="exampleEmailInput">Nombre</label>
  46. <input id="nombre" class="u-full-width" type="text" rv-value='user.nombre'>
  47. </div>
  48. <div class="four columns">
  49. <label for="exampleEmailInput">Apellido</label>
  50. <input id="ap" class="u-full-width" type="text" rv-value='user.apellido'>
  51. </div>
  52. </div>
  53. <div class="row">
  54. <div class="four columns">
  55. <label for="exampleEmailInput">País</label>
  56. <!-- <input class="u-full-width" type="text" rv-value='user.pais'> -->
  57. <select rv-value="user.pais" class="twelve columns">
  58. <option rv-each-country="countries" rv-value="country"> { country } </option>
  59. </select>
  60. </div>
  61. <div class="four columns">
  62. <label for="exampleEmailInput">Provincia/Estado</label>
  63. <input class="u-full-width" type="text" rv-value='user.provincia'>
  64. </div>
  65. <div class="four columns">
  66. <label for="exampleEmailInput">Ciudad</label>
  67. <input class="u-full-width" type="text" rv-value='user.zona'>
  68. </div>
  69. </div>
  70. <div class="row">
  71. <div class=" column">
  72. <label>Cumpleaños <span class="mandatory">*</span></label>
  73. <div class="row">
  74. <input class="two columns" type="number" min="1" max="31" placeholder="Dia (DD)" maxlength=2 numbersonly rv-value='user.dia'>
  75. <input class="two columns" type="number" min="1" max="12" placeholder="Mes (MM)" maxlength=2 numbersonly rv-value='user.mes'>
  76. </div>
  77. <div class="help"> <span class="mandatory">*</span> Durante el mes de tu cumpleaños, recibirás importantes descuentos y beneficios</div>
  78. </div>
  79. </div>
  80. <hr>
  81. <div class="row">
  82. <h4>Contacto</h4>
  83. </div>
  84. <div class="row">
  85. <div class="six columns">
  86. <label for="exampleEmailInput">Email</label>
  87. <input class="u-full-width" placeholder="email@ejemplo.com" type="email" required rv-value='user.email'>
  88. </div>
  89. <div class="six columns">
  90. <label for="exampleEmailInput">Teléfono</label>
  91. <div class="row">
  92. <input class="four columns" type="text" numbersonly maxlength=5 placeholder="Cod. Area (ej: 011)" rv-value='user.prefijo'>
  93. <input class="eight columns" type="text" numbersonly maxlength=12 rv-value='user.telefono'>
  94. </div>
  95. </div>
  96. </div>
  97. <hr>
  98. <div class="row">
  99. <label class="example-send-yourself-copy">
  100. <input type="checkbox" rv-checked='user.infocursos'>
  101. <span class="label-body">Quiero recibir información sobre los cursos presenciales y a distancia</span>
  102. </label>
  103. <div class="u-pull-right">
  104. <input class="button-primary" value="Enviar" type="submit" id="button">
  105. </div>
  106. </div>
  107. <hr>
  108. </form>
  109. <div class="disclaimer">
  110. <p>En cumplimiento de la Ley 25.326 (Protección de Datos Personales) - Art 27. inc 3 y del Decreto 1558/2001 (cuyas partes pertinentes se transcriben a continuación)le informamos que si deseara no recibir más información publicitaria, tiene el derecho de solicitar el retiro o bloqueo total o parcial de su nombre en nuestras bases de datos seleccionando la opción que se encuentra al final de este anuncio. Ley 25.326 (Protección de Datos Personales), Artículo 27, inciso 3: El titular podrá en cualquier momento solicitar el retiro o bloqueo de su nombre de los bancos de datos a los que se refiere el presente artículo. Decreto 1558/2001, Anexo I, artículo 27, párrafo tercero: En toda comunicación con fines de publicidad que se realice por correo, teléfono, correo electrónico, Internet u otro medio a distancia a conocer, se deberá indicar, en forma expresa y destacada, la posibilidad del titular del dato de solicitar el retiro o bloqueo, total o parcial, de su nombre de la base de datos. A pedido del interesado, se deberá informar el nombre del responsable o usuario del banco de datos que proveyó la información.</p>
  111. </div>
  112. <div class="u-pull-right">
  113. <a class="button" href="#">No quiero recibir más información</a>
  114. </div>
  115. </div>
  116. </div>
  117. <script>
  118. var urlparams=window.location.search.replace("?", "").split("&");
  119. var params={};
  120. var user = {};
  121. var xhttp = new XMLHttpRequest();
  122. var el = $('#view');
  123. var update = 0;
  124. var countries = ["Argentina","Ecuador","M\u00e9xico","Per\u00fa","----------------------------","Afganist\u00e1n","Albania","Alemania","Andorra","Angola","Anguila","Antigua y Barbuda","Antillas Neerlandesas","Ant\u00e1rtida","Arabia Saud\u00ed","Argelia","Argentina","Armenia","Aruba","Australia","Austria","Azerbaiy\u00e1n","Bahamas","Bahr\u00e9in","Bangladesh","Barbados","Belice","Ben\u00edn","Bermudas","Bielorrusia","Bolivia","Bosnia-Herzegovina","Botsuana","Brasil","Brun\u00e9i","Bulgaria","Burkina Faso","Burundi","But\u00e1n","B\u00e9lgica","Cabo Verde","Camboya","Camer\u00fan","Canad\u00e1","Chad","Chile","China","Chipre","Ciudad del Vaticano","Colombia","Comoras","Congo","Corea del Norte","Corea del Sur","Costa Rica","Costa de Marfil","Croacia","Cuba","Dinamarca","Dominica","Ecuador","Egipto","El Salvador","Emiratos \u00c1rabes Unidos","Eritrea","Eslovaquia","Eslovenia","Espa\u00f1a","Estados Unidos","Estonia","Etiop\u00eda","Filipinas","Finlandia","Fiyi","Francia","Gab\u00f3n","Gambia","Georgia","Ghana","Gibraltar","Granada","Grecia","Groenlandia","Guadalupe","Guam","Guatemala","Guayana Francesa","Guernsey","Guinea","Guinea Ecuatorial","Guinea-Bissau","Guyana","Hait\u00ed","Honduras","Hong Kong","Hungr\u00eda","India","Indonesia","Iraq","Irlanda","Ir\u00e1n","Isla Bouvet","Isla Christmas","Isla Niue","Isla Norfolk","Isla de Man","Islandia","Israel","Italia","Jamaica","Jap\u00f3n","Jersey","Jordania","Kazajist\u00e1n","Kenia","Kirguist\u00e1n","Kiribati","Kuwait","Laos","Lesoto","Letonia","Liberia","Libia","Liechtenstein","Lituania","Luxemburgo","L\u00edbano","Macao","Macedonia","Madagascar","Malasia","Malaui","Maldivas","Mali","Malta","Marruecos","Martinica","Mauricio","Mauritania","Mayotte","Micronesia","Moldavia","Mongolia","Montenegro","Montserrat","Mozambique","Myanmar","M\u00e9xico","M\u00f3naco","Namibia","Nauru","Nepal","Nicaragua","Nigeria","Noruega","Nueva Caledonia","Nueva Zelanda","N\u00edger","Om\u00e1n","Pakist\u00e1n","Palau","Palestina","Panam\u00e1","Pap\u00faa Nueva Guinea","Paraguay","Pa\u00edses Bajos","Per\u00fa","Pitcairn","Polinesia Francesa","Polonia","Portugal","Puerto Rico","Qatar","Regi\u00f3n desconocida o no v\u00e1lida","Reino Unido","Rep\u00fablica Centroafricana","Rep\u00fablica Checa","Rep\u00fablica Democr\u00e1tica del Congo","Rep\u00fablica Dominicana","Reuni\u00f3n","Ruanda","Ruman\u00eda","Rusia","Samoa","Samoa Americana","San Bartolom\u00e9","San Crist\u00f3bal y Nieves","San Marino","San Mart\u00edn","San Pedro y Miquel\u00f3n","San Vicente y las Granadinas","Santa Elena","Santa Luc\u00eda","Santo Tom\u00e9 y Pr\u00edncipe","Senegal","Serbia","Serbia y Montenegro","Seychelles","Sierra Leona","Singapur","Siria","Somalia","Sri Lanka","Suazilandia","Sud\u00e1frica","Sud\u00e1n","Suecia","Suiza","Surinam","Svalbard y Jan Mayen","S\u00e1hara Occidental","Tailandia","Taiw\u00e1n","Tanzania","Tayikist\u00e1n","Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico","Territorios Australes Franceses","Timor Oriental","Togo","Tokelau","Tonga","Trinidad y Tobago","Turkmenist\u00e1n","Turqu\u00eda","Tuvalu","T\u00fanez","Ucrania","Uganda","Uruguay","Uzbekist\u00e1n","Vanuatu","Venezuela","Vietnam","Wallis y Futuna","Yemen","Yibuti","Zambia","Zimbabue"];
  125. urlparams.forEach(function(elem,ind,arr) {
  126. var k = elem.split("=")[0];
  127. var v = elem.split("=")[1];
  128. params[k]=v;
  129. });
  130. function $(sel){
  131. var ret =document.querySelectorAll(sel);
  132. if (ret.length==1)
  133. return ret[0];
  134. return ret;
  135. }
  136. window.addEventListener('load', function() {
  137. var spinner = $("#spinner");
  138. var bigbox = humane.create({baseCls: 'humane-original', timeout: 150})
  139. var button = $("#button");
  140. button.style.display="none";
  141. button.onclick = send;
  142. bigbox.error = bigbox.spawn({addnCls: 'humane-bigbox-error'})
  143. function send() {
  144. if ($("form").checkValidity()==false)
  145. return;
  146. spinner.style.display="block";
  147. xhttp.onreadystatechange = function() {
  148. if (xhttp.readyState == 4) {
  149. var data =JSON.parse(xhttp.responseText);
  150. spinner.style.display="none";
  151. switch (xhttp.status) {
  152. case 200:
  153. bigbox.log(data.mensaje, { timeout: 5000, clickToClose: true });
  154. break;
  155. case 401:
  156. bigbox.error(data.mensaje, { timeout: 5000, clickToClose: true });
  157. break;
  158. }
  159. }
  160. };
  161. if (update==1)
  162. xhttp.open("POST", "back/update.php", true);
  163. else
  164. xhttp.open("PUT", "back/update.php", true);
  165. xhttp.send(JSON.stringify(user));
  166. };
  167. function get() {
  168. xhttp.onreadystatechange = function() {
  169. if (xhttp.readyState == 4) {
  170. var data =JSON.parse(xhttp.responseText);
  171. spinner.style.display="none";
  172. switch (xhttp.status) {
  173. case 200:
  174. $("input[type='email']").disabled=true;
  175. user = data;
  176. user.hash=params["hash"];
  177. view.update({user:user}); //Esto esta mal. ????
  178. button.style.display="block";
  179. break;
  180. case 401: //Registrate
  181. bigbox.error(data.mensaje, { timeout: 5000, clickToClose: true });
  182. button.style.display="block";
  183. user.pais="Argentina";
  184. view.update({user:user}); //Esto esta mal. ????
  185. break;
  186. case 402:
  187. bigbox.error(data.mensaje, { timeout: 5000, clickToClose: true });
  188. break;
  189. }
  190. }
  191. };
  192. xhttp.open("GET", "back/update.php?mail="+params["email"]+"&hash="+params["hash"], true);
  193. xhttp.send();
  194. }
  195. get();
  196. }, false);
  197. var view = rivets.bind(el, {countries:countries, user: user});
  198. var numbers=$("input[numbersonly]");
  199. for(var i=0; i<numbers.length;i++){
  200. var e = numbers[i];
  201. e.onkeypress = function(e){ return e.charCode<= 26 || (e.charCode>=48 && e.charCode<=57); }
  202. }
  203. numbers=$("input[maxlength]");
  204. for(var i=0; i<numbers.length;i++){
  205. var e = numbers[i];
  206. e.oninput = function(){ var l = this.getAttribute("maxlength"); if (this.value.length >l) this.value=this.value.slice(0,l); }
  207. }
  208. </script>
  209. </body>