1<!DOCTYPE html> 2<html > 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>#sinob GmbH | Affiliate Register</title> 8 9 <!-- SEO --> 10 <link rel="canonical" href="https://affiliate.sinob.de/sinob-shop/register"> 11 <meta property="og:url" content=" AFFILIATE.SINOB.DE "/> 12 <meta name="og:url" content=" AFFILIATE.SINOB.DE "/> 13 <meta property="og:title" content="Standard Affiliate Commission"/> 14 <meta name="og:title" content="Standard Affiliate Commission"/> 15 <meta property="og:description" content="You will get a 10% commission on total referral sales when a customer makes a purchase through your affiliate link or uses your coupon code."/> 16 <meta name="description" content="You will get a 10% commission on total referral sales when a customer makes a purchase through your affiliate link or uses your coupon code." /> 17 <meta name="google-site-verification" content="pOYpx-eOMPaJiCevCZG6arNYQKhiIQjOLmFdreGMIV8"/> 18 <meta property="og:image" content="https://cdn.uppromote.com/storage/uploads/logo/1696426432_3794569_90d596b15e864641880de5992b5306e1.png" /> 19 <meta name="twitter:image" content=" https://cdn.uppromote.com/storage/uploads/logo/1696426432_3794569_90d596b15e864641880de5992b5306e1.png"> 20 21 <!-- Google Analytics 4 -->
vendor: 68 bytes, lines 21-22
21 22 <script async src="https://www.googletagmanager.com/gtag/js?id=
22G-G9KH2ZWF4J
vendor: 16 bytes, lines 22-23
22"></script> 23
23<script> 24 window.dataLayer = window.dataLayer || []; 25 function gtag(){ dataLayer.push(arguments); } 26 gtag('js', new Date()); 27 28 const shopName = `sinob-shop.myshopify.com`; 29 if (shopName) { 30 const currentUrl = new URL(window.location.href); 31 currentUrl.searchParams.set('shop', shopName.replace('.myshopify.com', '')); 32 33 gtag('config', 'G-G9KH2ZWF4J', { 34 page_location: currentUrl.toString() 35 }); 36 } 37 </script>
37 38 39 <!-- Font Icon --> 40 <link href="https://affiliate.sinob.de/css/bootstrap.min.css" rel="stylesheet"> 41 <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.15.1/css/all.css" integrity="sha384-9ZfPnbegQSumzaE7mks2IYgHoayLtuto3AS6ieArECeaR8nCfliJVuLh/GaQ1gyM" crossorigin="anonymous"> 42 <link href="https://affiliate.sinob.de/registerv3/fonts/material-icon/css/material-design-iconic-font.min.css" rel="stylesheet"> 43 <link href="https://affiliate.sinob.de/registerv3/vendor/nouislider/nouislider.min.css" rel="stylesheet"> 44 45 <!-- Main css --> 46 <link href="https://d1639lhkj5l89m.cloudfront.net/registerv3/css/style.min.css" rel="stylesheet"> 47 48 49 50 <link rel="stylesheet" href="https://d1639lhkj5l89m.cloudfront.net/css/plugins/select2/select2.min.css"/> 51 <style type="text/css"> 52 @import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500;600;700&display=swap'); 53 54 body { 55 font-family: "Helvetica Neue"; 56 57 } 58 59 60 #page_heading { 61 color: #333333; 62 } 63 64 #text_benefit { 65 color: #222222; 66 background-color: #ffffff; 67 } 68 69 #register-form { 70 color: #333333; 71 } 72 73 #register-form input { 74 color: #222222; 75 } 76 77 .signup-img-content #main_heading{ 78 color: #ffffff; 79 } 80 81 .signup-img-content #sub_main_heading{ 82 color: #ffffff; 83 } 84 85 #signup_form { 86 overflow: hidden; 87 background-color: #ffffff; 88 background-size: cover; 89 background-position: center center; 90 } 91 92 select.error, 93 select.error:focus 94 { 95 border: 1px solid #c70000; 96 } 97 98 #left_side { 99 background-color: #000000; 100 background-size: cover; 101 background-position: center center; 102 } 103 104 #submit { 105 background-color: #eb0000; 106 color: #ffffff; 107 } 108 109 110 .benefit-table tr td { 111 vertical-align: top; 112 padding: 0 0 2px; 113 } 114 115 .login button { 116 color: #222222; 117 border-color: #eb0000; 118 } 119 120 .logo-container { 121 margin-bottom: 15px; 122 } 123 124 #text_benefit .tick-mark { 125 background-color: #329e5e; 126 } 127 128 129 130 .content-container p { 131 font-weight: 300; 132 } 133 134 .input-group-addon { 135 border: 1px solid #ebebeb; 136 } 137 138 .input-group input[type=text] { 139 border-top-left-radius: 0px; 140 border-bottom-left-radius: 0px; 141 } 142 143 #logo { 144 max-width: 250px; 145 max-height: 100px; 146 } 147 148 .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { 149 padding: 12px; 150 } 151 152 .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { 153 border-top: 1px solid #e7eaec; 154 line-height: 1.42857; 155 vertical-align: top; 156 } 157 158 .modal { 159 text-align: center; 160 } 161
162 .modal-dialog { 163 display: inline-block; 164 text-align: left; 165 vertical-align: middle; 166 } 167 168 /* .payment-infor-container div div .text-danger{ 169 border: 1px solid #a94442; 170 } */ 171 172 input:disabled { 173 background: #fff; 174 cursor: not-allowed; 175 } 176 177 #main_heading, #sub_main_heading, #page_heading, #text_benefit, #g-recaptcha, #login, #submit, #term_and_condition, #text_benefit { 178 scroll-margin-top: 100px; 179 } 180 181 @media screen and (min-width: 768px) { 182 .modal:before { 183 display: inline-block; 184 vertical-align: middle; 185 content: " "; 186 height: 100%; 187 } 188 } 189 190 .text-caution { 191 color: #092C4C; 192 font-family: Poppins; 193 font-size: 12px; 194 font-style: italic; 195 font-weight: 400; 196 line-height: normal; 197 } 198 199 form#register-form.disable-all *, form#register-form.disable-all input, form#register-form.disable-all button, form#register-form *[disabled]{ 200 cursor: not-allowed !important; 201 } 202 203 /* Select2 Country Dropdown Styling */ 204 .select2-container .select2-selection--single { 205 height: auto; 206 padding: 10.5px 16px; 207 border: 1px solid #ebebeb; 208 border-radius: 4px; 209 background-color: #ffffff; 210 font-size: 14px; 211 } 212 213 .select2-container--default .select2-selection--single .select2-selection__rendered { 214 color: #222222; 215 line-height: 20px; 216 padding-left: 0; 217 padding-right: 20px; 218 } 219 220 .select2-container--default .select2-selection--single .select2-selection__arrow { 221 height: 100%; 222 position: absolute; 223 top: 0; 224 right: 10px; 225 width: 20px; 226 } 227 228 .select2-dropdown { 229 border: 1px solid #ebebeb; 230 border-radius: 4px; 231 z-index: 9999; 232 } 233 234 .select2-container--default .select2-results__option { 235 color: #222222; 236 padding: 8px 12px; 237 } 238 239 .select2-container--default .select2-results__option--highlighted[aria-selected] { 240 background-color: #f5f5f5; 241 color: #222222; 242 } 243 244 .select2-container--default .select2-results__option[aria-selected="true"] { 245 font-weight: 700; 246 } 247 248 .select2-container--default .select2-search--dropdown .select2-search__field { 249 border: 1px solid #ebebeb; 250 padding: 6px 0 6px 32px; 251 font-size: 14px; 252 height: 34px; 253 } 254 255 .select2-container--default .select2-search--dropdown { 256 position: relative; 257 padding: 12px; 258 border-bottom: 1px solid #ebebeb; 259 } 260 261 .select2-container--default .select2-search--dropdown:before { 262 content: "\f002"; 263 font-family: "Font Awesome 5 Pro"; 264 font-weight: 300; 265 position: absolute; 266 left: 20px; 267 top: 50%; 268 transform: translateY(-50%); 269 color: #999; 270 z-index: 2; 271 pointer-events: none; 272 font-size: 16px; 273 } 274 275 .select2-container .select2-selection--single.error, 276 .select2-container .select2-selection--single.error:focus { 277 border: 1px solid #c70000; 278 } 279 280 .has-error .select2-selection { 281 border: 1px solid #c70000 !important; 282 } 283 284 /* File upload field - container dùng chung cho cả 2 trạng thái */ 285 .reg-form-file-upload { 286 background: #fafafa; 287 outline: 1px dashed #e3e3e3; 288 border-radius: 4px; 289 display: flex !important; 290 align-items: center; 291 justify-content: center; 292 padding: 20px; 293 gap: 10px; 294 width: 100%; 295 cursor: pointer; 296 transition: border-color 0.2s; 297 position: relative; 298 line-height: normal; 299 } 300 .reg-form-file-upload:hover { border-color: #bbb; } 301 .reg-form-file-upload .file-upload-text { width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 400; line-height: 18px; color: #222222; } 302 .reg-form-file-upload .file-upload-icon { color: #329e5e;; font-size: 14px; } 303 304 /* Tooltip "Replace file" */ 305 .reg-form-file-upload .reg-form-file-tooltip { 306 display: none; 307 position: absolute; 308 top: -45px; 309 left: 50%; 310 transform: translateX(-50%); 311 background: #fff; 312 padding: 8px 16px; 313 border-radius: 4px; 314 box-shadow: 0 2px 8px rgba(0,0,0,0.11); 315 font-size: 13px; 316 color: #092C4C; 317 white-space: nowrap; 318 font-weight: 400; 319 } 320 .reg-form-file-upload .reg-form-file-tooltip::after { 321 content: ''; 322 position: absolute; 323 bottom: -6px; 324 left: 50%; 325 transform: translateX(-50%); 326 border-left: 6px solid transparent; 327 border-right: 6px solid transparent; 328 border-top: 6px solid #fff; 329 } 330 .reg-form-icon-wrapper { position: relative; display: inline-flex; } 331 .reg-form-icon-wrapper:hover .reg-form-file-tooltip { display: block; } 332 333 a.reg-form-file-helper { 334 display: inline-block; 335 font-size: 12px; 336 font-style: italic; 337 margin-top: 4px; 338 color: #1d85e8; 339 text-decoration: none; 340 } 341 a.reg-form-file-helper:hover { 342 text-decoration: none; 343 } 344 345 input.reg-form-browse-file.hidden { display: none !important; } 346 .reg-form-file-error { display: block; color: #a94442; font-size: 14px; margin-top: 4px; } 347 .reg-form-file-helper ~ span.error.text-danger { display: block; } 348 </style> 349 350 <link href="https://fonts.googleapis.com/css?family=Helvetica+Neue" rel="stylesheet" 351 type="text/css"> 352 <link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@700;900&display=swap" 353 rel="stylesheet"> 354
354<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
354 355
355<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/purify.min.js"></script>
355 356
356<script> 357 358 </script>
358 359</head> 360<body> 361 362<div class="main"> 363 <div class="container-fluid"> 364 <div class="signup-content"> 365 <div class="signup-img" id="left_side"> 366 <div class="signup-img-content" style="z-index: 99"> 367 368 <h1 id="main_heading"> 369 #sinob GmbH Affiliates 370 </h1> 371 <p style="font-size: 16px;" id="sub_main_heading"> 372 Verdiene Geld mit #sinob 373 </p> 374 375 </div> 376 </div> 377 <div class="signup-form " id="signup_form"> 378 <div class="login" style="overflow: hidden;"> 379 380 <div id="google_translate_element" 381 style="display: none" ></div> 382 <a href=" https://affiliate.sinob.de " style="align-self: flex-end;padding-top: 18px;"> 383 <button id="login" 384 type="button"> Einloggen 385 </button> 386 </a> 387 </div> 388 <div class="signup-head"> 389 390 <div class="logo"> 391 392 <div class="logo-container text-center" 393 > 394 <a target="_blank" href="https://sinob.de"> 395 <img id="logo" src="https://cdn.uppromote.com/storage/uploads/logo/1696426432_3794569_90d596b15e864641880de5992b5306e1.png"/> 396 </a> 397 </div> 398 <h2 class="form-title" id="page_heading"> 399 400 Werde #sinob Ambassador 401 402 </h2> 403 </div> 404 405 <div class="commission_detail"> 406 407 <div class="commission_detail_content container-fluid" id="text_benefit"> 408 <h3 class="title" style="margin-top: 10px; margin-bottom: 20px;"
409 id="benefit_title"> Benefits 410 </h3> 411 412 <table style="width:100%" class="info-text benefit-table"> 413 <col width="50"> 414 <col width="160"> 415 <tr> 416 <td> 417 <strong id="cookie_label"> Cookie Tracking 418 </strong> 419 </td> 420 <td> 421 <p> 422 <i class="fa fa-check tick-mark"> 423 424 </i> 425 <span id="cookie_value"> 30 days 426 </span> 427 </p> 428 </td> 429 </tr> 430 431 <tr> 432 <td> 433 <strong id="commission_type_label"> Vergütungsart 434 </strong> 435 </td> 436 <td> 437 <p> 438 <i class="fa fa-check tick-mark"></i> 439 <span id="commission_type_value"> % per Verkauf 440 </span> 441 </p> 442 </td> 443 </tr> 444 445 <tr> 446 <td> 447 <strong id="commission_amount_label"> 448 Provision 449 </strong> 450 </td> 451 <td> 452 <p> 453 <i class="fa fa-check tick-mark"></i> 454 <a href="#" data-toggle="modal" 455 data-target="#rate-details">Vergütungsdetails (klick)</a> 456 </p> 457 </td> 458 </tr> 459 460 <tr class="additional_term_tr"> 461 <td> 462 <strong id="additional_term_label"> Weitere Infos 463 </strong> 464 </td> 465 <td> 466 <div class="additional-term-container" style="display: -webkit-box;"> 467 <i class="fa fa-check tick-mark"></i> 468 <div id="additional_term_value" style="width: calc(100% - 23px);padding-left: 4px;"> 469 Verdiene bis zu 10% Provision (mindestens 5%) auf den Gesamtbetrag der Empfehlungsverkäufe in unserem Affiliate-System. Sichere dir die Provision, wenn ein Kunde über deinen Affiliate-Link kauft oder deinen Gutscheincode verwendet. Die Provisionen werden auf den Nettoverkaufspreis ohne Mehrwertsteuer berechnet, Versandkosten zählen nicht zum Umsatz. 470 471Provisionsstaffelung: 472 4735% für Verkäufe zwischen 0 und 49 Euro. 4746% ab 50 Euro. 4757% ab 80 Euro. 47610% ab 95 Euro. 477Je mehr du verkaufst, desto höher deine Provision. Einige Produkte bieten höhere Provisionssätze! 478 479Du erhältst einen individuellen Rabattcode, der deinen Freunden, Kunden und Verwandten 10% Rabatt bietet. Erreiche 500⬠Umsatz in einem Monat, und du trittst unserem Pro-Ambassad
479oren Programm bei. Dort erhalten deine Freunde, Kunden und Verwandten 10% Rabatt, und du verdienst unter denselben Konditionen weiter. Wir unterstützen dich aktiv in diesem Programm. 480 </div> 481 </div> 482 </td> 483 </tr> 484 485 <tr> 486 <td id="additional_term_label_1"></td> 487 <td id="additional_term_value_1"></td> 488 </tr> 489 <tr> 490 <td id="additional_term_label_2"></td> 491 <td id="additional_term_value_2"></td> 492 </tr> 493 <tr> 494 <td id="additional_term_label_3"></td> 495 <td id="additional_term_value_3"></td> 496 </tr> 497 <tr> 498 <td id="additional_term_label_4"></td> 499 <td id="additional_term_value_4"></td> 500 </tr> 501 <tr> 502 <td id="additional_term_label_5"></td> 503 <td id="additional_term_value_5"></td> 504 </tr> 505 <tr> 506 <td id="additional_term_label_6"></td> 507 <td id="additional_term_value_6"></td> 508 </tr> 509 <tr> 510 <td id="additional_term_label_7"></td> 511 <td id="additional_term_value_7"></td> 512 </tr> 513 </table> 514 </div> 515 </div> 516 </div> 517 518 519 <form method="POST" enctype="multipart/form-data" class="register-form " id="register-form" 520 action="https://affiliate.sinob.de/sinob-shop/register_aff" 521 > 522 523 524 525 526 527 <input type="hidden" name="_token" value="NJ3DRk6GvkNlQB3ObSUNOqVkOtX3NxLiepeMQkMT"> 528 <input type="hidden" name="shop_id" value="" > 529 <input type="hidden" name="program_id" value="132186" > 530 <input type="hidden" name="marketplace_user_id" 531 value="" > 532 <input type="hidden" name="marketplace_affiliate_profile" 533 value="" > 534 <input type="hidden" name="upc_token" 535 value="" > 536 <textarea name="interaction" id="interaction" style="display: none;" ></textarea> 537 <input type="hidden" name="uppromote_detection" > 538 539 <div class="form-group" 540 > 541 <label for="first_name" id="first_name_label" 542 class="required" >Vorname</label> 543 <div class="" 544 > 545 546 <input type="text" name="first_name" id="first_name" value="" 547 class="" 548 > 549 </div> 550 </div> 551 552 <div class="form-group" 553 > 554 <label for="last_name" id="last_name_label" 555 class="required" >Nachname</label> 556 <div class="" 557 > 558 559 <input type="text" name="last_name" id="last_name" value="" 560 class="" 561 > 562 </div> 563 </div> 564 565 <div class="form-group" 566 > 567 <label for="email" id="email_label" 568 class="required" >Email</label> 569 <div class="" 570 > 571 572 <input type="text" name="email" id="email" value="" 573 class="" 574 > 575 <div id="err_email_text" class="text-danger"></div> 576 </div> 577 </div> 578 579 <div class="form-group" 580 > 581 <label for="password" id="password_label" 582 class="required" >Passwort</label> 583 <div class="" 584 > 585 586 <input type="password" name="password" id="password" 587 value="" 588 > 589 </div> 590 </div> 591 592 <div class="form-group" 593 > 594 <label for="password_confirmation" id="password_confirmation_label" 595 class="required" >Passwort wiederholen</label> 596 <div class="" 597 > 598 599 <input type="password" name="password_confirmation" id="password_confirmation" 600 value="" 601 > 602 </div> 603 </div> 604 605 <div class="form-group" 606 > 607 <label for="company" id="company_label" 608 style="display: none;" >Company</label> 609 <div class="" 610 disabled style="display: none;" > 611 612 <input type="text" name="company" id="company" value="" 613 disabled style="display: none;" 614 class="" 615 > 616 </div> 617 </div> 618 619 <div class="form-group" 620 > 621 <label for="vat_number" id="vat_number_label" 622 style="display: none;" class="required" >VAT number</label> 623 <div class="" 624 disabled style="display: none;" > 625 626 <input type="text" name="vat_number" id="vat_number" value="" 627 disabled style="display: none;" 628 class="" 629 > 630 </div> 631 </div> 632 633 <div class="form-group" 634 > 635 <label for="address" id="address_label" 636 >Adresse</label> 637 <div class="" 638 > 639 640 <input type="text" name="address" id="address" value="" 641 class="" 642 > 643 </div> 644 </div> 645 646 <div class="form-group" 647 > 648 <label for="city" id="city_label" 649 >Stadt</label> 650 <div class="" 651 > 652 653 <input type="text" name="city" id="city" value="" 654 class="" 655 > 656 </div> 657 </div> 658 659 <div class="form-group" 660 > 661 <label for="zipcode" id="zipcode_label" 662 >PLZ</label> 663 <div class="" 664 > 665 666 <input type="text" name="zipcode" id="zipcode" value="" 667 class="" 668 > 669 </div> 670 </div> 671 672 <div class="form-group" 673 > 674 <label for="state" id="state_label" 675 style="display: none;" >State</label> 676 <div class="" 677 disabled style="display: none;" > 678 679
679 <input type="text" name="state" id="state" value="" 680 disabled style="display: none;" 681 class="" 682 > 683 </div> 684 </div> 685 686 <div class="form-group" 687 > 688 <label for="country" id="country_label" 689 style="display: none;" >Country</label> 690 <div class="" 691 disabled style="display: none;" > 692 693 <select class="form-control m-b select2-country" 694 name="country" 695 disabled style="display: none" 696 > 697 <option selected="" value="">--Select country</option> 698 <option value="AF">Afghanistan</option> 699 <option value="AL">Albania</option> 700 <option value="DZ">Algeria</option> 701 <option value="AS">American Samoa</option> 702 <option value="AD">Andorra</option> 703 <option value="AO">Angola</option> 704 <option value="AI">Anguilla</option> 705 <option value="AQ">Antarctica</option> 706 <option value="AG">Antigua and Barbuda</option> 707 <option value="AR">Argentina</option> 708 <option value="AM">Armenia</option> 709 <option value="AW">Aruba</option> 710 <option value="AU">Australia</option> 711 <option value="AT">Austria</option> 712 <option value="AZ">Azerbaijan</option> 713 <option value="BS">Bahamas</option> 714 <option value="BH">Bahrain</option> 715 <option value="BD">Bangladesh</option> 716 <option value="BB">Barbados</option> 717 <option value="BY">Belarus</option> 718 <option value="BE">Belgium</option> 719 <option value="BZ">Belize</option> 720 <option value="BJ">Benin</option> 721 <option value="BM">Bermuda</option> 722 <option value="BT">Bhutan</option> 723 <option value="BO">Bolivia</option> 724 <option value="BA">Bosnia and Herzegovina</option> 725 <option value="BW">Botswana</option> 726 <option value="BV">Bouvet Island</option> 727 <option value="BR">Brazil</option> 728 <option value="BQ">British Antarctic Territory</option> 729 <option value="IO">British Indian Ocean Territory</option> 730 <option value="VG">British Virgin Islands</option> 731 <option value="BN">Brunei</option> 732 <option value="BG">Bulgaria</option> 733 <option value="BF">Burkina Faso</option> 734 <option value="BI">Burundi</option> 735 <option value="KH">Cambodia</option> 736 <option value="CM">Cameroon</option> 737 <option value="CA">Canada</option> 738 <option value="CT">Canton and Enderbury Islands</option> 739 <option value="CV">Cape Verde</option> 740 <option value="KY">Cayman Islands</option> 741 <option value="CF">Central African Republic</option> 742 <option value="TD">Chad</option> 743 <option value="CL">Chile</option> 744 <option value="CN">China</option> 745 <option value="CX">Christmas Island</option> 746 <option value="CC">Cocos [Keeling] Islands</option> 747 <option value="CO">Colombia</option> 748 <option value="KM">Comoros</option> 749 <option value="CG">Congo - Brazzaville</option> 750 <option value="CD">Congo - Kinshasa</option> 751 <option value="CK">Cook Islands</option> 752 <option value="CR">Costa Rica</option> 753 <option value="HR">Croatia</option> 754 <option value="CU">Cuba</option> 755 <option value="CY">Cyprus</option> 756 <option value="CZ">Czech Republic</option> 757 <option value="CI">Côte d'Ivoire</option> 758 <option value="DK">Denmark</option> 759 <option value="DJ">Djibouti</option> 760 <option value="DM">Dominica</option> 761 <option value="DO">Dominican Republic</option> 762 <option value="NQ">Dronning Maud Land</option> 763 <option value="EC">Ecuador</option> 764 <option value="EG">Egypt</option> 765 <option value="SV">El Salvador</option> 766 <option value="GQ">Equatorial Guinea</option> 767 <option value="ER">Eritrea</option> 768 <option value="EE">Estonia</option> 769 <option value="ET">Ethiopia</option> 770 <option value="FK">Falkland Islands</option> 771 <option value="FO">Faroe Islands</option> 772 <option value="FJ">
772Fiji</option> 773 <option value="FI">Finland</option> 774 <option value="FR">France</option> 775 <option value="GF">French Guiana</option> 776 <option value="PF">French Polynesia</option> 777 <option value="TF">French Southern Territories</option> 778 <option value="FQ">French Southern and Antarctic Territories</option> 779 <option value="GA">Gabon</option> 780 <option value="GM">Gambia</option> 781 <option value="GE">Georgia</option> 782 <option value="DE">Germany</option> 783 <option value="GH">Ghana</option> 784 <option value="GI">Gibraltar</option> 785 <option value="GR">Greece</option> 786 <option value="GL">Greenland</option> 787 <option value="GD">Grenada</option> 788 <option value="GP">Guadeloupe</option> 789 <option value="GU">Guam</option> 790 <option value="GT">Guatemala</option> 791 <option value="GG">Guernsey</option> 792 <option value="GN">Guinea</option> 793 <option value="GW">Guinea-Bissau</option> 794 <option value="GY">Guyana</option> 795 <option value="HT">Haiti</option> 796 <option value="HM">Heard Island and McDonald Islands</option> 797 <option value="HN">Honduras</option> 798 <option value="HK">Hong Kong SAR China</option> 799 <option value="HU">Hungary</option> 800 <option value="IS">Iceland</option> 801 <option value="IN">India</option> 802 <option value="ID">Indonesia</option> 803 <option value="IR">Iran</option> 804 <option value="IQ">Iraq</option> 805 <option value="IE">Ireland</option> 806 <option value="IM">Isle of Man</option> 807 <option value="IL">Israel</option> 808 <option value="IT">Italy</option> 809 <option value="JM">Jamaica</option> 810 <option value="JP">Japan</option> 811 <option value="JE">Jersey</option> 812 <option value="JT">Johnston Island</option> 813 <option value="JO">Jordan</option> 814 <option value="KZ">Kazakhstan</option> 815 <option value="KE">Kenya</option> 816 <option value="KI">Kiribati</option> 817 <option value="KW">Kuwait</option> 818 <option value="KG">Kyrgyzstan</option> 819 <option value="LA">Laos</option> 820 <option value="LV">Latvia</option> 821 <option value="LB">Lebanon</option> 822 <option value="LS">Lesotho</option> 823 <option value="LR">Liberia</option> 824 <option value="LY">Libya</option> 825 <option value="LI">Liechtenstein</option> 826 <option value="LT">Lithuania</option> 827 <option value="LU">Luxembourg</option> 828 <option value="MO">Macau SAR China</option> 829 <option value="MK">Macedonia</option> 830 <option value="MG">Madagascar</option> 831 <option value="MW">Malawi</option> 832 <option value="MY">Malaysia</option> 833 <option value="MV">Maldives</option> 834 <option value="ML">Mali</option> 835 <option value="MT">Malta</option> 836 <option value="MH">Marshall Islands</option> 837 <option value="MQ">Martinique</option> 838 <option value="MR">Mauritania</option> 839 <option value="MU">Mauritius</option> 840 <option value="YT">Mayotte</option> 841 <option value="FX">Metropolitan France</option> 842 <option value="MX">Mexico</option> 843 <option value="FM">Micronesia</option> 844 <option value="MI">Midway Islands</option> 845 <option value="MD">Moldova</option> 846 <option value="MC">Monaco</option> 847 <option value="MN">Mongolia</option> 848 <option value="ME">Montenegro</option> 849 <option value="MS">Montserrat</option> 850 <option value="MA">Morocco</option> 851 <option value="MZ">Mozambique</option> 852 <option value="MM">Myanmar [Burma]</option> 853 <option value="NA">Namibia</option> 854 <option value="NR">Nauru</option> 855 <option value="NP">Nepal</option> 856 <option value="NL">Netherlands</option> 857 <option value="AN">Netherlands Antilles</option> 858 <option value="NT">Neutral Zone</option> 859 <option value="NC">New Caledonia</option> 860 <option value="NZ">New Zealand</option> 861 <option value="NI">Nicaragua</option> 862 <option value="NE">Niger</option> 863 <option value="NG">Nigeria</option> 864 <option value="NU">Niue</option> 865 <option value="NF">Norfolk Island</option> 866 <option value="KP">North Korea</option> 867 <option value="MP">Northern Mariana Islands</option> 868 <option value="NO">Norway</option> 869 <option value="OM">Oman</option> 870 <option value="PC">Pacific Islands Trust Territory</option> 871 <option value="PK">Pakistan</option> 872 <option value="PW">Palau</option> 873 <option value="PS">Palestinian Territories</option> 874 <option value="PA">Panama</option> 875 <option value="PZ">Panama Canal Zone</option> 876 <option value="PG">Papua New Guinea</option> 877 <option value="PY">Paraguay</option> 878 <option value="YD">People's Democratic Republic of Yemen</option> 879 <option value="PE">
879Peru</option> 880 <option value="PH">Philippines</option> 881 <option value="PN">Pitcairn Islands</option> 882 <option value="PL">Poland</option> 883 <option value="PT">Portugal</option> 884 <option value="PR">Puerto Rico</option> 885 <option value="QA">Qatar</option> 886 <option value="RO">Romania</option> 887 <option value="RU">Russia</option> 888 <option value="RW">Rwanda</option> 889 <option value="RE">Réunion</option> 890 <option value="BL">Saint Barthélemy</option> 891 <option value="SH">Saint Helena</option> 892 <option value="KN">Saint Kitts and Nevis</option> 893 <option value="LC">Saint Lucia</option> 894 <option value="MF">Saint Martin</option> 895 <option value="PM">Saint Pierre and Miquelon</option> 896 <option value="VC">Saint Vincent and the Grenadines</option> 897 <option value="WS">Samoa</option> 898 <option value="SM">San Marino</option> 899 <option value="SA">Saudi Arabia</option> 900 <option value="SN">Senegal</option> 901 <option value="RS">Serbia</option> 902 <option value="CS">Serbia and Montenegro</option> 903 <option value="SC">Seychelles</option> 904 <option value="SL">Sierra Leone</option> 905 <option value="SG">Singapore</option> 906 <option value="SK">Slovakia</option> 907 <option value="SI">Slovenia</option> 908 <option value="SB">Solomon Islands</option> 909 <option value="SO">Somalia</option> 910 <option value="ZA">South Africa</option> 911 <option value="GS">South Georgia and the South Sandwich Islands</option> 912 <option value="KR">South Korea</option> 913 <option value="ES">Spain</option> 914 <option value="LK">Sri Lanka</option> 915 <option value="SD">Sudan</option> 916 <option value="SR">Suriname</option> 917 <option value="SJ">Svalbard and Jan Mayen</option> 918 <option value="SZ">Swaziland</option> 919 <option value="SE">Sweden</option> 920 <option value="CH">Switzerland</option> 921 <option value="SY">Syria</option> 922 <option value="ST">São Tomé and PrÃncipe</option> 923 <option value="TW">Taiwan</option> 924 <option value="TJ">Tajikistan</option> 925 <option value="TZ">Tanzania</option> 926 <option value="TH">Thailand</option> 927 <option value="TL">Timor-Leste</option> 928 <option value="TG">Togo</option> 929 <option value="TK">Tokelau</option> 930 <option value="TO">Tonga</option> 931 <option value="TT">Trinidad and Tobago</option> 932 <option value="TN">Tunisia</option> 933 <option value="TR">Turkey</option> 934 <option value="TM">Turkmenistan</option> 935 <option value="TC">Turks and Caicos Islands</option> 936 <option value="TV">Tuvalu</option> 937 <option value="UM">U.S. Minor Outlying Islands</option> 938 <option value="PU">U.S. Miscellaneous Pacific Islands</option> 939 <option value="VI">U.S. Virgin Islands</option> 940 <option value="UG">Uganda</option> 941 <option value="UA">Ukraine</option> 942 <option value="AE">United Arab Emirates</option> 943 <option value="GB">United Kingdom</option> 944 <option value="US">United States</option> 945 <option value="ZZ">Unknown or Invalid Region</option> 946 <option value="UY">Uruguay</option> 947 <option value="UZ">Uzbekistan</option> 948 <option value="VU">Vanuatu</option> 949 <option value="VA">Vatican City</option> 950 <option value="VE">Venezuela</option> 951 <option value="VN">Vietnam</option> 952 <option value="WK">Wake Island</option> 953 <option value="WF">Wallis and Futuna</option> 954 <option value="EH">Western Sahara</option> 955 <option value="YE">Yemen</option> 956 <option value="ZM">Zambia</option> 957 <option value="ZW">Zimbabwe</option> 958 <option value="AX">à land Islands</option> 959</select> </div> 960 </div> 961 962 <div class="form-group" 963 > 964 <label for="phone" id="phone_label" 965 style="display: none;" >Phone</label> 966 <div class="" 967 disabled style="display: none;" > 968 969 <input type="text" name="phone" id="phone" value="" 970 disabled style="display: none;" 971 class="" 972 > 973 </div> 974 </div> 975 976 <div class="form-group" 977 > 978 <label for="website" id="website_label" 979 style="display: none;" >Website</label> 980 <div class=" input-group m-b " 981 disabled style="display: none;" > 982 <sp
982an class="input-group-addon">https://</span> 983 984 <input type="text" name="website" id="website" value="" 985 disabled style="display: none;" 986 class="" 987 > 988 </div> 989 </div> 990 991 <div class="form-group" 992 > 993 <label for="instagram" id="instagram_label" 994 >Instagram</label> 995 <div class=" input-group m-b " 996 > 997 <span class="input-group-addon">@</span> 998 999 <input type="text" name="instagram" id="instagram" value="" 1000 class="" 1001 > 1002 </div> 1003 </div> 1004 1005 <div class="form-group" 1006 > 1007 <label for="tiktok" id="tiktok_label" 1008 >TikTok</label> 1009 <div class=" input-group m-b " 1010 > 1011 <span class="input-group-addon">@</span> 1012 1013 <input type="text" name="tiktok" id="tiktok" value="" 1014 class="" 1015 > 1016 </div> 1017 </div> 1018 1019 <div class="form-group" 1020 > 1021 <label for="facebook" id="facebook_label" 1022 >Facebook</label> 1023 <div class="" 1024 > 1025 1026 <input type="text" name="facebook" id="facebook" value="" 1027 class="" 1028 > 1029 </div> 1030 </div> 1031 1032 <div class="form-group" 1033 > 1034 <label for="twitter" id="twitter_label" 1035 >Twitter</label> 1036 <div class=" input-group m-b " 1037 > 1038 <sp
1038an class="input-group-addon">@</span> 1039 1040 <input type="text" name="twitter" id="twitter" value="" 1041 class="" 1042 > 1043 </div> 1044 </div> 1045 1046 <div class="form-group" 1047 > 1048 <label for="youtube" id="youtube_label" 1049 >Youtube channel</label> 1050 <div class=" input-group m-b " 1051 > 1052 <span class="input-group-addon">https://youtube.com/</span> 1053 1054 <input type="text" name="youtube" id="youtube" value="" 1055 class="" 1056 > 1057 </div> 1058 </div> 1059 1060 <div class="form-group" 1061 > 1062 <label for="personal_detail" id="personal_detail_label" 1063 style="display: none;" >Personal details</label> 1064 <div class="" 1065 disabled style="display: none;" > 1066 1067 <textarea style="width: 100%; height: 100px;" name="personal_detail" 1068 id="personal_detail" 1069 disabled style="display: none;" 1070 class="form-control" 1071 style="padding: 8px 20px" 1072 ></textarea> 1073 </div> 1074 </div> 1075 1076 <div class="form-group"> 1077 <label for="payment_method" id="payment_method_label" class="form-label-line form-label-select " 1078 disabled style= "display: none;" >Payment method</label> 1079 <div disabled style= "display: none;" > 1080 <select class="form-control" name="payment_method" id="payment_method" 1081 disabled style= "display: none;" 1082 > 1083 <option value="none" selected >No Payment Method</option> 1084 <option value="store_credit" selected >Store credit</option> 1085 1086 </select> 1087 </div> 1088 </div> 1089 1090 <div class="payment-infor-container" disabled style= "display: none;" ></div> 1091 1092 <div class="h-captcha" id="g-recaptcha" data-sitekey="b8204d44-8232-4e54-b9b4-b7cab9c22616" 1093 style="margin-bottom: 20px; display: block; "></div> 1094 1095 <div class="form-submit" style="margin-bottom: 20px;"> 1096 <button type="submit" class="submit" id="submit" name="submit" 1097 data-loading-text="<i class='fa fa-spinner fa-spin '></i>" 1098 data-original-text=" Anmelden " 1099 > 1100 Anmelden 1101 </button> 1102 </div> 1103 <div class="form-row term text-muted" id="term_and_condition" 1104 style="text-align: center; margin-bottom: 20px;"> 1105 <p style="margin-left: auto;margin-right: auto;"> 1106 <font style="vertical-align: inherit;"> 1107 <font style="vertical-align: inherit;" id="policy_display_text"> 1108 Durch deine Anmeldung stimmst du unseren 1109 </font> 1110 </font> 1111 <a href="" class="text-muted" data-toggle="modal" data-target="#termsModal" 1112 style="text-decoration: underline; text-underline-position: under;"> 1113 <font style="vertical-align: inherit;" id="policy_display_text_term"> 1114 AGB's 1115 </font> 1116 </a> 1117 <font class="and-none" style="vertical-align: inherit;"> 1118 <font style="vertical-align: inherit;" id="policy_display_text_and"> 1119 und 1120 </font> 1121 </font> 1122 <a href="" class="text-muted" data-toggle="modal" 1123 data-target="#policyModal" 1124 style="text-decoration: underline; text-underline-position: under;"> 1125 <font style="vertical-align: inherit;"> 1126 <font style="vertical-align: inherit;" id="policy_display_text_privacy"> 1127 Datenschutzbestimmungen zu 1128 </font> 1129 </font> 1130 </a> 1131 </p> 1132 </div> 1133 </form> 1134 1135 1136 <div data-iframe-height="true"></div> 1137 </div> 1138 </div> 1139 </div> 1140 <div data-iframe-height="true"></div> 1141</div> 1142 1143<div class="payment-info-input" style="display: none !important;"> 1144 <div class="payment-info-wrapper" data-payment="paypal"> 1145 <div class="form-group"> 1146 <label>Paypal email</label> 1147 <div> 1148 <input type="text" class="paypal-email" placeholder="Paypal email" name="payment_info[email]" id="email" required> 1149 <div id="err_email_paypal_text" style="color: #a94442"></div> 1150 </div> 1151 </div> 1152</div> <div class="payment-info-wrapper" data-payment="bank"> 1153 <div class="form-group"> 1154 <label for="account_type" class="form-label-line form-label-select my-2">
1155 <span><strong>Status</strong></span> 1156 <select class="form-control form-control-select label__pointer" name="payment_info[account_type]" id="account_type"> 1157 <option value="checking" >Checking</option> 1158 <option value="saving" >Savings</option> 1159 </select> 1160 </label> 1161 </div> 1162 <div class="form-group"> 1163 <div> 1164 <input type="text" name="payment_info[name]" placeholder="Bank name"> 1165 </div> 1166 </div> 1167 <div class="form-group"> 1168 <div> 1169 <input type="text" name="payment_info[account]" placeholder="Account name"> 1170 </div> 1171 </div> 1172 <div class="form-group"> 1173 <div> 1174 <input type="text" name="payment_info[number]" placeholder="Account Number"> 1175 </div> 1176 </div> 1177 <div class="form-group"> 1178 <div> 1179 <input type="text" name="payment_info[branch]" placeholder="Branch Code"> 1180 </div> 1181 </div> 1182 <div class="form-group"> 1183 <div> 1184 <input type="text" name="payment_info[swift]" placeholder="Swift Code" > 1185 </div> 1186 </div> 1187 </div> <div class="payment-info-wrapper" data-payment="debit"> 1188 <div class="form-group"> 1189 <div> 1190 <input type="text" name="payment_info[name]" placeholder="Name" required> 1191 </div> 1192 </div> 1193 <div class="form-group"> 1194 <div> 1195 <input type="text" class="card" name="payment_info[number]" placeholder="Debit Card Number" required> 1196 </div> 1197 </div> 1198</div> <div class="payment-info-wrapper" data-payment="cheque"> 1199 <div class="form-group"> 1200 <div> 1201 <input type="text" name="payment_info[payto]" placeholder="Pay to" required> 1202 </div> 1203 </div> 1204 <div class="form-group"> 1205 <div> 1206 <input type="text" name="payment_info[address]" placeholder="Address" required> 1207 </div> 1208 </div> 1209</div> <div class="payment-info-wrapper" data-payment="venmo"> 1210 <div class="form-group"> 1211 <div> 1212 <input type="text" name="payment_info[mobile_email]" placeholder="Venmo link, username, email address or phone number" required> 1213 </div> 1214 </div> 1215</div> <div class="payment-info-wrapper" data-payment="paytm"> 1216 <div class="form-group"> 1217 <div> 1218 <input type="text" name="payment_info[number]" placeholder="PayTm mobile number" required> 1219 </div> 1220 </div> 1221</div> <div class="payment-info-wrapper" data-payment="upi"> 1222 <div class="form-group"> 1223 <div> 1224 <input type="text" name="payment_info[id]" placeholder="UPI ID" required> 1225 </div> 1226 </div> 1227</div> <div class="payment-info-wrapper" data-payment="other"> 1228 <div class="form-group"> 1229 <div> 1230 <textarea name="payment_info[other]" class="form-control" style="width:100%; height:100px; padding: 8px 20px"></textarea> 1231 </div> 1232 </div> 1233</div></div> 1234 1235<div class="modal inmodal" id="rate-details" tabindex="-1" role="dialog" aria-hidden="true"> 1236 <div class="modal-dialog modal-lg"> 1237 <div class="modal-content animated fadeIn"> 1238 <div class="modal-header"> 1239 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span 1240 class="sr-only">Close</span></button> 1241 <h4 class="modal-title">Vergütungsdetails (klick)</h4> 1242 </div> 1243 1244 <div class="modal-body"> 1245 1246 <table class="table table-striped table-bordered"> 1247 <tbody> 1248 <tr> 1249 <th>Stufe</th> 1250 <th>Mindestbestellwert</th> 1251 <th>Provisionswert</th> 1252 </tr> 1253 <tr> 1254 <td>1</td> 1255 <td> 1256 0⬠1257 </td> 1258 <td> 1259 5% 1260 </td> 1261 </tr> 1262 <tr> 1263 <td>2</td> 1264 <td> 1265 50,00⬠1266 </td> 1267 <td> 1268 6% 1269 </td> 1270 </tr> 1271 <tr> 1272 <td>3</td> 1273 <td> 1274 80,00⬠1275 </td> 1276 <td> 1277 7% 1278 </td> 1279 </tr> 1280 <tr> 1281 <td>4</td> 1282 <td> 1283 95,00⬠1284 </td> 1285 <td> 1286 10% 1287 </td> 1288 </tr> 1289 </tbody> 1290 </table> 1291 1292 </div> 1293 <div class="modal-footer"> 1294 <button type="button" class="btn btn-white" data-dismiss="modal">Close</button> 1295 </div> 1296 </div> 1297 </div> 1298</div> 1299 1300<div class="modal inmodal" id="termsModal" tabindex="-1" role="dialog" aria-hidden="true"> 1301 <div class="modal-dialog modal-lg"> 1302 <div class="modal-content animated fadeIn"> 1303 <div class="modal-header"> 1304 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span 1305 class="sr-only">Close</span></button> 1306 1307 <h4 class="modal-title"> Allgemeine Geschäftsbedinhungen (AGB) 1308 </h4> 1309 1310 <div style="display: none;" class="alert alert-danger" role="alert"></div> 1311 </div> 1312 1313 <div class="modal-body"> 1314 1315 <div class="content-container"> 1316 <p>Moin, du Fitnessbegeisterter!</p> 1317<p>Willkommen im Webshop der #sinob GmbH! Schön, dass du bei unserem Partnerprogramm dabei bist.</p> 1318<p>Folgende Konditionen gelten für alle, die am Programm teilnehmen, egal ob als Händler ("wir" oder "Händler") oder als Partner ("du" oder "Affiliate"), der Kunden an uns vermittelt.</p> 1319<p>Indem du am Programm teilnimmst, erklärst du dich einverstanden, es so zu nutzen, wie in diesen Bedingungen festgelegt. Wenn du nicht komplett mit den Konditionen einverstanden bist, darfst du dich nicht als Affiliate registrieren oder in irgendeiner Weise am Programm teilnehmen.</p> 1320<p><strong>1. **Zulassung oder Ablehnung der Registrierung**</strong><br>Wir behalten uns das Recht vor, JEDE Affiliate-Programm-Registrierung nach unserem eigenen Ermessen zu akzeptieren oder abzulehnen. Gegen eine Ablehnung deiner Registrierung kannst du rechtlich nichts unternehmen.</p> 1321<p><strong>2. **Affiliate-Links und Gutscheine**</strong><br>Dein Affiliate-Link wird automatisch generiert, aber du kannst auch einen speziellen Link für ein bestimmtes Produkt oder eine Kollektion erstellen. Klickt jemand auf den Link eines anderen und später auf deinen, zählt deiner.<br>Als Affiliate bekommst du vielleicht einen Gutscheincode, alle Details dazu findest du im Dashboard. Klickt ein Kunde auf deinen Link und verwendet den Gutschein, gibt's keine doppelte Provision. Wenn du keinen eigenen Gutschein hast, darfst du auch keinen bewerben.<br>Du darfst unseren Shop auch online (z.B. Facebook, Instagram) oder offline (Zeitschriften, Zeitungen) bewerben.</p> 1322<p><strong>3. **Provisionen und Zahlungen**</strong><br>Verweist du einen Kunden an uns und dieser kauft etwas, bekommst du eine Provision. Wie hoch diese ist, hängt vom Bestellwert ab (ohne Extra-Gebühren wie Steuern, Versand, etc.).<br>Um eine Provision zu erhalten, musst du deine Zahlungsdetails angeben. Wann genau gezahlt wird, steht im Affiliate Guide.<br>Zahlungen erfolgen nur für abgeschlossene Transaktionen. Jede Bestellung wird überprüft. Bei Rückbuchungen oder Rückerstattungen g
1322ibt's keine Provision.</p> 1323<p><strong>4. **Marketing-Tools**</strong><br>Wir stellen dir eventuell Werbematerial wie Banner oder Logos zur Verfügung. Diese findest du im Marketing-Tool-Tab.</p> 1324<p><strong>5. **Netzwerk**</strong><br>Falls aktiviert, kannst du andere als Affiliates einladen. Bringt einer deiner Affiliates einen Kunden, bekommst du auch eine Provision. Zum Einladen teile einfach deinen Netzwerk-Link.</p> 1325<p><strong>6. **Cookies**</strong><br>Wir nutzen Cookies, um die Leute zu verfolgen, die auf deinen Link klicken. Wenn jemand Cookies deaktiviert oder löscht, können wir ihn nicht verfolgen und du bekommst keine Provision.</p> 1326<p><strong>7. **Austritt aus dem Partnerprogramm**</strong><br>Möchtest du nicht mehr teilnehmen, schreib einfach eine Mail an: [email protected].</p> 1327<p>Jetzt aber ran an den Speck und vermitteln!<br>Schön, dass du es bis hierher geschafft hast.<br>Wir wünschen dir viel Erfolg! Bei Fragen schreib einfach an [email protected].</p> 1328 </div> 1329 1330 </div> 1331 <div class="modal-footer"> 1332 <button type="button" class="btn btn-white" data-dismiss="modal">Close</button> 1333 </div> 1334 </div> 1335 </div> 1336</div> 1337 1338<div class="modal inmodal" id="policyModal" tabindex="-1" role="dialog" aria-hidden="true"> 1339 <div class="modal-dialog modal-lg"> 1340 <div class="modal-content animated fadeIn"> 1341 <div class="modal-header"> 1342 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span 1343 class="sr-only">Close</span></button> 1344 1345 <h4 class="modal-title"> Datenschutzbestimmungen 1346 </h4> 1347 1348 <div style="display: none;" class="alert alert-danger" role="alert"></div> 1349 </div> 1350 1351 <div class="modal-body"> 1352 1353 <div class="content-container"> 1354 <p>Moin, du Datenliebhaber!</p> 1355<p>Hier ist die Datenschutzrichtlinie von sinob für unser Affiliate-Marketing-System. Hier erklären wir, wie wir persönliche Daten sammeln und verwenden und welche Rechte Händler, Affiliates und Kunden in Bezug auf ihre Daten haben.</p> 1356<p>Indem du dich für das Affiliate-Programm anmeldest, zeigst du, dass du mit den hier festgelegten Bedingungen einverstanden bist. Wenn du nicht zustimmst, darfst du das Affiliate-Marketing-System nicht nutzen.</p> 1357<p>Manchmal aktualisieren wir diese Datenschutzrichtlinie, z.B. wegen Ãnderungen unserer Datenschutzpraktiken oder aus rechtlichen Gründen. Wenn du nach solchen Ãnderungen weiterhin unser Partnerprogramm nutzt, stimmst du der überarbeiteten Richtlinie zu.</p> 1358<p><strong>**Persönliche Informationskontrolle**</strong><br>Alle persönlichen Informationen, die UpPromote zur Verfügung gestellt oder von UpPromote gesammelt werden, werden von UpPromote (dem Datenverantwortlichen) gespeichert und kontrolliert.</p> 1359<p><strong>**Informationen von Händlern**</strong><br>Wenn du die App als Händler nutzt, können wir automatisch bestimmte Infos von deinem Shopify-Konto sehen, z.B. E-Mail, Namen und Shop-Infos. Diese Daten brauchen wir, um dir unsere Dienste anzubieten.</p> 1360<p><strong>**Informationen von Affiliates**</strong><br>Wenn sich ein Affiliate anmeldet, sammeln wir Infos wie E-Mail, persönliche Daten und Zahlungsdetails. Diese Daten helfen dem Händler, den Affiliate zu bewerten und bei Bedarf zu kontaktieren.</p> 1361<p><strong>**Informationen von Kunden**</strong><br>Um Bestellungen nachzuverfolgen, sammelt das UpPromote-System bei einem Kauf Daten wie den Gesamtbetrag und die Bestell-ID.</p> 1362<p><strong>**Ãber Cookies**</strong><br>Cookies sind kleine Dateien, die auf deinem Gerät gespeichert werden. Sie entstehen, wenn du eine Website besuchst. Mehr über Cookies erfährst du auf allaboutcookies.org. Wir empfehlen, Cookies aktiviert zu lassen, damit du alle Funktionen nutzen kannst.</p> 1363<p><strong>**Informationsweitergabe**</strong><br>Deine Privatsphäre ist uns wichtig. Wir teilen deine Daten nicht mit Dritten, auÃer wie in dieser Richtlinie beschrieben. Manchmal geben wir Daten an Dienstleister weiter, z.B. für E-Mail-Marketing. Diese Dienstleister dürfen die Daten nur so nutzen, wie in dieser Richtlinie beschrieben.</p> 1364<p><strong>**Nutzung der UpPromote-App durch Kinder**</strong><br>UpPromote ist nichts für Kinder. Wenn du unter 13 bist, darfst du das System nur mit Zustimmung deiner Eltern nutzen.</p> 1365<p><strong>**Deine Rechte**</strong><br>Du hast Rechte bezüglich deiner Daten. Wenn du diese Rechte nutzen möchtest, schreib uns einfach an [email protected]. Wenn du Affiliate bist und diese Rechte nutzen möchtest, wende dich direkt an den Händler.</p> 1366<p><strong>**Kontakt**</strong><br>Fragen? Beschwerden? Schreib uns einfach an [email protected].</p> 1367 </div> 1368 1369 </div> 1370 <div class="modal-footer"> 1371 <button type="button" class="btn btn-white" data-dismiss="modal">Close</button> 1372 </div> 1373 </div> 1374 </div> 1375</div> 1376 1377 1378<!-- JS -->
1379<script src="https://d1639lhkj5l89m.cloudfront.net/js/jquery-3.1.1.min.js"></script>
vendor: 1 bytes, line 1379
1379
1380<script src="https://d1639lhkj5l89m.cloudfront.net/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 1380
1380
1381<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/vendor/nouislider/nouislider.min.js"></script>
vendor: 1 bytes, line 1381
1381
1382<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/vendor/wnumb/wNumb.js"></script>
vendor: 1 bytes, line 1382
1382
1383<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/vendor/jquery-validation/dist/jquery.validate.min.js"></script>
vendor: 1 bytes, line 1383
1383
1384<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/vendor/jquery-validation/dist/additional-methods.min.js"></script>
vendor: 1 bytes, line 1384
1384
1385<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/js/main.js"></script>
vendor: 1 bytes, line 1385
1385
1386<script src="https://d1639lhkj5l89m.cloudfront.net/js/app/helpers.js"></script>
vendor: 1 bytes, line 1386
1386
1387<script src="https://d1639lhkj5l89m.cloudfront.net/registerv3/js/embedded-preview.js"></script>
vendor: 1 bytes, line 1387
1387
1388<script src="https://d1639lhkj5l89m.cloudfront.net/js/plugins/iframeResizer/iframeResizer.contentWindow.js" 1389 type="text/javascript" data-react-helmet="true"></script>
vendor: 1 bytes, line 1389
1389
1390<script src="https://d1639lhkj5l89m.cloudfront.net/js/plugins/inputmask/jquery.inputmask.bundle.js"></script>
vendor: 1 bytes, line 1390
1390
1391<script src="https://d1639lhkj5l89m.cloudfront.net/js/plugins/select2/select2.min.js"></script>
vendor: 1 bytes, line 1391
1391
1392<script type="text/javascript"> 1393 var fieldsData = '[{\"label\":\"Vorname\",\"id\":\"first_name\",\"isRequired\":true,\"isDefault\":true,\"isEnabled\":true,\"isDisableCb\":true,\"size\":6},{\"label\":\"Nachname\",\"id\":\"last_name\",\"isRequired\":true,\"isDefault\":true,\"isEnabled\":true,\"isDisableCb\":true,\"size\":6},{\"label\":\"Email\",\"id\":\"email\",\"isRequired\":true,\"isDefault\":true,\"type\":\"email\",\"isEnabled\":true,\"isDisableCb\":true,\"size\":12},{\"label\":\"Passwort\",\"id\":\"password\",\"isRequired\":true,\"isDefault\":true,\"type\":\"password\",\"isEnabled\":true,\"isDisableCb\":true,\"size\":12},{\"label\":\"Passwort wiederholen\",\"id\":\"password_confirmation\",\"isRequired\":true,\"isDefault\":true,\"type\":\"password\",\"isEnabled\":true,\"isDisableCb\":true,\"size\":12},{\"label\":\"Company\",\"id\":\"company\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"size\":12},{\"label\":\"VAT number\",\"id\":\"vat_number\",\"isRequired\":true,\"isDefault\":true,\"isEnabled\":false,\"type\":\"text\",\"size\":12},{\"label\":\"Adresse\",\"id\":\"address\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"size\":12},{\"label\":\"Stadt\",\"id\":\"city\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"size\":12},{\"label\":\"PLZ\",\"id\":\"zipcode\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"size\":12},{\"label\":\"State\",\"id\":\"state\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"size\":12},{\"label\":\"Country\",\"id\":\"country\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"type\":\"country\",\"size\":12},{\"label\":\"Phone\",\"id\":\"phone\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"size\":12},{\"label\":\"Website\",\"id\":\"website\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"prepend\":\"https:\\/\\/\",\"size\":12},{\"label\":\"Instagram\",\"id\":\"instagram\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"prepend\":\"@\",\"size\":12},{\"label\":\"TikTok\",\"id\":\"tiktok\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"prepend\":\"@\",\"size\":12},{\"label\":\"Facebook\",\"id\":\"facebook\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"size\":12},{\"label\":\"Twitter\",\"id\":\"twitter\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"prepend\":\"@\",\"size\":12},{\"label\":\"Youtube channel\",\"id\":\"youtube\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":true,\"prepend\":\"https:\\/\\/youtube.com\\/\",\"size\":12},{\"label\":\"Personal details\",\"id\":\"personal_detail\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"type\":\"textarea\",\"size\":12},{\"label\":\"Payment method\",\"id\":\"payment_method\",\"isRequired\":false,\"isDefault\":true,\"isEnabled\":false,\"size\":12,\"type\":\"dropdown\"}]'; 1394 /* console.log(fieldsData); */ 1395 1396 fieldsData = JSON.parse(fieldsData); 1397 var rules = {}; 1398 var messages = {}; 1399 for (var i = fieldsData.length - 1; i >= 0; i--) { 1400 if (fieldsData[i].isEnabled) { 1401 if (fieldsData[i].isRequired) { 1402 rules[fieldsData[i].id] = {required: true} 1403 messages[fieldsData[i].id] = {required: "This field is required."} 1404 if (fieldsData[i].id === 'payment_method') { 1405 rules[fieldsData[i].id] = { 1406 required: true, 1407 selectNone: true 1408 } 1409 messages[fieldsData[i].id] = { 1410 required: "This field is required.", 1411 selectNone: "This field is required." 1412 } 1413 } 1414 if (fieldsData[i].id === 'email') { 1415 rules[fieldsData[i].id] = { 1416 required: true, 1417 customEmail: true 1418 } 1419 messages[fieldsData[i].id] = { 1420 required: "This field is required.", 1421 customEmail: "Invalid email format." 1422 } 1423 } 1424 } else { 1425 rules[fieldsData[i].id] = {required: false} 1426 } 1427 if (fieldsData[i].type === 'file') { 1428 rules[fieldsData[i].id].accept = false;
1429 rules[fieldsData[i].id].extension = false; 1430 } 1431 if (fieldsData[i].id === 'coupon_code') { 1432 rules[fieldsData[i].id] = rules[fieldsData[i].id] || {}; 1433 rules[fieldsData[i].id].validCoupon = true; 1434 messages[fieldsData[i].id] = messages[fieldsData[i].id] || {}; 1435 messages[fieldsData[i].id].validCoupon = "Coupon code is invalid."; 1436 } 1437 } 1438 } 1439 1440 var emailRegex = /^[\p{L}\u{0E00}-\u{0E7F}\.\-_+0-9!#\$%&'*+=?^_{|}~\/]{1,}[@][\p{L}\u{0E00}-\u{0E7F}\.\-_+0-9!#\$%&'*+=?^_{|}~\/]*[\p{L}0-9][\p{L}\u{0E00}-\u{0E7F}0-9\.\-_+!#\$%&'*+=?^_{|}~\/]*[.][\p{L}\u{0E00}-\u{0E7F}0-9\.\-_+!#\$%&'*+=?^_{|}~\/]{2,}$/u; 1441 1442 $.validator.addMethod("customEmail", function(value, element) { 1443 return this.optional(element) || emailRegex.test(value); 1444 }, "Please enter a valid email address"); 1445 1446 // Reject "0" / all-zero coupon codes so an affiliate cannot bypass auto-gen 1447 // coupon creation by typing "0". A code that merely contains a zero is fine. 1448 // Blank input is left to the `required` rule via this.optional(element). 1449 $.validator.addMethod("validCoupon", function(value, element) { 1450 // blank is optional (auto-gen handles it); whitespace-only or all-zeros is invalid 1451 if (value === '') return true; 1452 return String(value).trim().replace(/0/g, '') !== ''; 1453 }, "Coupon code is invalid."); 1454 1455 $(document).ready(function () { 1456 $.validator.addMethod('selectNone', function(value, element) { 1457 return value !== 'none'; 1458 }, "This field is required"); 1459 1460 $('#register-form').validate({ 1461 ignore: ':hidden:not(.reg-form-browse-file)', 1462 rules: rules, 1463 messages: messages, 1464 errorElement: 'span', 1465 errorClass: 'error text-danger', 1466 onfocusout: false, 1467 onkeyup: function(element) { 1468 // Clear error when user starts typing (but don't validate) 1469 var $element = $(element); 1470 if ($element.hasClass('error')) { 1471 $element.removeClass('error'); 1472 $element.siblings('span.error.text-danger').remove(); 1473 // Clear custom error divs for email fields 1474 if ($element.attr('name') === 'email') { 1475 $('#err_email_text').html(''); 1476 } 1477 } 1478 }, 1479 errorPlacement: function(error, element) { 1480 // Handle Select2 (country field) - place error after Select2 container 1481 if (element.hasClass('select2-country')) { 1482 error.insertAfter(element.siblings('.select2-container')); 1483 } else if (element.hasClass('reg-form-browse-file')) { 1484 var container = $('[data-file-trigger="' + element.attr('id') + '"]'); 1485 container.siblings('.reg-form-file-error').remove(); 1486 var helper = container.siblings('.reg-form-file-helper'); 1487 if (helper.length) { 1488 error.insertAfter(helper); 1489 } else { 1490 error.insertAfter(container); 1491 } 1492 } else { 1493 error.insertAfter(element); 1494 } 1495 }, 1496 /* onfocusout: function (element) { 1497 if ($(element).attr('name') == "payment_info[email]") { 1498 $(element).rules('add', { 1499 required: true, 1500 pattern: /^[\p{L}\u{0E00}-\u{0E7F}\.\-_+0-9!#\$%&'*+=?^_{|}~\/]{1,}[@][\p{L}\u{0E00}-\u{0E7F}\.\-_+0-9!#\$%&'*+=?^_{|}~\/]*[\p{L}0-9][\p{L}\u{0E00}-\u{0E7F}0-9\.\-_+!#\$%&'*+=?^_{|}~\/]*[.][\p{L}\u{0E00}-\u{0E7F}0-9\.\-_+!#\$%&'*+=?^_{|}~\/]{2,}$/u, 1501 messages: { 1502 required: "This field is required", 1503 pattern: "Please enter a valid email address" 1504 } 1505 }); 1506 } 1507 1508 var isValid = $(element).valid(); 1509 console.log(isValid) 1510 if (isValid) { 1511 if($(element).attr('name') == "payment_info[email]") { 1512 $("#err_email_paypal_text").html(""); 1513 } 1514 1515 if($(element).attr('name') == "email") { 1516 $("#err_email_text").html(""); 1517 } 1518 return; 1519 } 1520 }, 1521 errorPlacement: function(error, element) { 1522 if (element.attr("name") === "email") { 1523 $("#err_email_text").html(error.text()); 1524 } else if (element.attr("name") === "payment_info[email]"){ 1525 $("#err_email_paypal_text").html(error.text()); 1526 } else { 1527 error.insertAfter(element); 1528 } 1529 } */ 1530 }); 1531 1532 1533 $(document).on('submit', '#register-form', function () { 1534 $('#submit').button('loading'); 1535 }); 1536 1537 // Clear error when select changes 1538 $(document).on('change', '#register-form select', function() { 1539 var $element = $(this); 1540 if ($element.hasClass('error')) { 1541 $element.removeClass('error'); 1542 $element.siblings('span.error.text-danger').remove(); 1543 } 1544 // Handle Select2 error state 1545 $element.siblings('.select2').removeClass('has-error'); 1546 }); 1547 1548 // Clear error when payment_info fields change 1549 $(document).on('input', '.payment-infor-container input', function() { 1550 var $element = $(this); 1551 if ($element.hasClass('error')) { 1552 $element.removeClass('error'); 1553 $element.siblings('span.error.text-danger').remove(); 1554 } 1555 if ($element.attr('name') === 'payment_info[email]') { 1556 $('#err_email_paypal_text').html(''); 1557 } 1558 }); 1559 1560 }); 1561 1562 $(document).ready(function() { 1563 var inputEl = $('#phone');
1564 var goodKey = '0123456789+ !"#$%&\'()*,-./:;<=>?@[\\]^_`{|}~'; 1565 1566 var checkInputTel = function(e) { 1567 var key = (typeof e.which == "number") ? e.which : e.keyCode; 1568 var start = this.selectionStart, 1569 end = this.selectionEnd; 1570 1571 var filtered = $(this).val().split('').filter(filterInput); 1572 $(this).val(filtered.join("")); 1573 1574 /* Prevents moving the pointer for a bad character */ 1575 var move = (filterInput(String.fromCharCode(key)) || (key == 0 || key == 8)) ? 0 : 1; 1576 $(this).prop('selectionStart', start - move); 1577 $(this).prop('selectionEnd', end - move); 1578 } 1579 1580 var filterInput = function(val) { 1581 return (goodKey.indexOf(val) > -1); 1582 } 1583 1584 inputEl.on('input', checkInputTel); 1585 applyRealtimeHtmlStripping(); 1586 applyRealtimeHtmlStrippingForTextarea(); 1587 1588 // Initialize Select2 for country dropdown 1589 $('.select2-country').select2({ 1590 placeholder: "Select country", 1591 allowClear: true, 1592 width: '100%', 1593 language: { 1594 noResults: function() { 1595 return "No data"; 1596 } 1597 }, 1598 matcher: function(params, data) { 1599 // If there are no search terms, return all of the data 1600 if ($.trim(params.term) === '') { 1601 return data; 1602 } 1603 1604 // Trim the search term before matching 1605 var trimmedTerm = $.trim(params.term); 1606 1607 // If the text contains the term, return it 1608 if (data.text.toLowerCase().indexOf(trimmedTerm.toLowerCase()) > -1) { 1609 return data; 1610 } 1611 1612 // Return null if the term should not be displayed 1613 return null; 1614 } 1615 }); 1616 1617 function updateSelect2ErrorState() { 1618 $('.select2-country').each(function() { 1619 var $select = $(this); 1620 var $select2Container = $select.siblings('.select2'); 1621 var hasError = $select.hasClass('error'); 1622 var hasValue = $select2Container.find('.select2-selection__clear').length > 0; 1623 1624 if (hasError && !hasValue) { 1625 $select2Container.addClass('has-error'); 1626 } else { 1627 $select2Container.removeClass('has-error'); 1628 } 1629 }); 1630 } 1631 1632 $('#register-form').on('submit', function() { 1633 setTimeout(updateSelect2ErrorState, 50); 1634 }); 1635 1636 $('.select2-country').on('change', function() { 1637 setTimeout(updateSelect2ErrorState, 50); 1638 }); 1639 1640 function stripHtml(input, isForTextarea = true) { 1641 if (typeof input !== 'string') { 1642 return String(input ?? ''); 1643 } 1644 1645 if (!input || input.trim() === '') { 1646 return ''; 1647 } 1648 1649 const allowedTags = isForTextarea ? ['b', 'br', 'ul', 'li'] : []; 1650 1651 const clean = DOMPurify.sanitize(input, { 1652 ALLOWED_TAGS: allowedTags, 1653 ALLOWED_ATTR: [], 1654 }); 1655 1656 if (isForTextarea) { 1657 return clean; 1658 } 1659 1660 const div = document.createElement('div'); 1661 div.innerHTML = clean; 1662 return div.textContent || div.innerText || ''; 1663 } 1664 1665 function applyRealtimeHtmlStripping() { 1666 $('#register-form input[type="text"]').each(function() { 1667 const $input = $(this); 1668 if ($input.data('html-stripping-applied')) { 1669 return; 1670 } 1671 1672 $input.on('input', function(e) { 1673 const $this = $(this); 1674 const currentValue = $this.val(); 1675 const cursorPosition = this.selectionStart; 1676 const cleanedValue = stripHtml(currentValue, false); 1677 1678 if (cleanedValue !== currentValue) { 1679 const textBeforeCursor = currentValue.substring(0, cursorPosition); 1680 const cleanedTextBeforeCursor = stripHtml(textBeforeCursor, false); 1681 const removedBeforeCursor = textBeforeCursor.length - cleanedTextBeforeCursor.length; 1682 let newCursorPosition = cursorPosition - removedBeforeCursor; 1683 newCursorPosition = Math.max(0, Math.min(newCursorPosition, cleanedValue.length)); 1684 $this.val(cleanedValue); 1685 1686 setTimeout(function() { 1687 if ($this[0].setSelectionRange) { 1688 $this[0].setSelectionRange(newCursorPosition, newCursorPosition); 1689 } else if ($this[0].createTextRange) { 1690 const range = $this[0].createTextRange(); 1691 range.collapse(true); 1692 range.moveEnd('character', newCursorPosition); 1693 range.moveStart('character', newCursorPosition); 1694 range.select(); 1695 } 1696 }, 0); 1697 } 1698 }); 1699 1700 $input.on('paste', function (e) { 1701 const $this = $(this); 1702 const clipboardData = (e.originalEvent || e).clipboardData; 1703 if (!clipboardData) return; 1704 1705 e.preventDefault(); 1706 1707 const pastedText = clipboardData.getData('text/plain') || ''; 1708 const cleanedText = stripHtml(pastedText, false); 1709 1710 const start = this.selectionStart; 1711 const end = this.selectionEnd; 1712 const value = $this.val(); 1713 1714 const newValue = 1715 value.substring(0, start) + 1716 cleanedText + 1717 value.substring(end); 1718 1719 $this.val(newValue); 1720 1721 const newCursorPosition = start + cleanedText.length; 1722 this.setSelectionRange(newCursorPosition, newCursorPosition); 1723 }); 1724 1725 $input.on('copy', function(e) { 1726 const $this = $(this); 1727 const selectedText = $this.val().substring(this.selectionStart, this.selectionEnd); 1728 if (selectedText) { 1729 const cleanedText = stripHtml(selectedText, false); 1730 if (cleanedText !== selectedText) { 1731 e.preventDefault(); 1732 e.originalEvent.clipboardData.setData('text/plain', cleanedText); 1733 } 1734 } 1735 }); 1736 1737 $input.on('cut', function(e) { 1738 const $this = $(this); 1739 const selectedText = $this.val().substring(this.selectionStart, this.selectionEnd); 1740 if (selectedText) { 1741 const cleanedText = stripHtml(selectedText, false); 1742 if (cleanedText !== selectedText) { 1743 e.preventDefault(); 1744 const start = this.selectionStart; 1745 const end = this.selectionEnd; 1746 const newValue = $this.val().substring(0, start) + $this.val().substring(end); 1747 $this.val(newValue); 1748 e.originalEvent.clipboardData.setData('text/plain', cleanedText); 1749 setTimeout(function() { 1750 if ($this[0].setSelectionRange) { 1751 $this[0].setSelectionRange(start, start); 1752 } 1753 }, 0); 1754 } 1755 } 1756 }); 1757 1758 $input.on('drop', function(e) { 1759 e.preventDefault(); 1760 e.stopPropagation(); 1761 const $this = $(this); 1762 const originalValue = $this.val(); 1763 let droppedData = e.originalEvent.dataTransfer.getData('text/plain'); 1764 let needsStrip = false;
1765 1766 if (!droppedData || droppedData.trim() === '') { 1767 const htmlData = e.originalEvent.dataTransfer.getData('text/html'); 1768 if (htmlData && htmlData.trim() !== '') { 1769 droppedData = htmlData; 1770 needsStrip = true; 1771 } 1772 } 1773 1774 if (droppedData) { 1775 const cleanedDroppedData = needsStrip ? stripHtml(droppedData, false) : droppedData; 1776 const start = this.selectionStart; 1777 const end = this.selectionEnd; 1778 const newValue = originalValue.substring(0, start) + cleanedDroppedData + originalValue.substring(end); 1779 $this.val(newValue); 1780 const newCursorPosition = start + cleanedDroppedData.length; 1781 setTimeout(function() { 1782 if ($this[0].setSelectionRange) { 1783 $this[0].setSelectionRange(newCursorPosition, newCursorPosition); 1784 } 1785 }, 0); 1786 } 1787 }); 1788 1789 $input.on('dragover', function(e) { 1790 e.preventDefault(); 1791 e.originalEvent.dataTransfer.dropEffect = 'copy'; 1792 }); 1793 1794 $input.on('keydown', function(e) { 1795 if ((e.ctrlKey || e.metaKey) && e.key === 'v') { 1796 return true; 1797 } 1798 }); 1799 1800 $input.data('html-stripping-applied', true); 1801 }); 1802 } 1803 1804 function applyRealtimeHtmlStrippingForTextarea() { 1805 const $textAreas = $('#register-form textarea:not(#interaction)'); 1806 1807 $textAreas.each(function () { 1808 const $textarea = $(this); 1809 1810 if ($textarea.data('html-stripping-applied')) { 1811 return; 1812 } 1813 1814 $textarea.on('paste', function (e) { 1815 const clipboardData = (e.originalEvent || e).clipboardData; 1816 if (!clipboardData) return; 1817 1818 e.preventDefault(); 1819 1820 const pastedText = clipboardData.getData('text/plain') || ''; 1821 const cleanedText = stripHtml(pastedText); 1822 1823 const start = this.selectionStart; 1824 const end = this.selectionEnd; 1825 const value = this.value; 1826 1827 this.value = 1828 value.substring(0, start) + 1829 cleanedText + 1830 value.substring(end); 1831 1832 const cursor = start + cleanedText.length; 1833 this.setSelectionRange(cursor, cursor); 1834 }); 1835 1836 $textarea.on('drop', function (e) { 1837 e.preventDefault(); 1838 e.stopPropagation(); 1839 1840 const dataTransfer = e.originalEvent.dataTransfer; 1841 if (!dataTransfer) return; 1842 1843 const droppedText = dataTransfer.getData('text/plain') || ''; 1844 const cleanedText = stripHtml(droppedText); 1845 1846 const start = this.selectionStart; 1847 const end = this.selectionEnd; 1848 const value = this.value; 1849 1850 this.value = 1851 value.substring(0, start) + 1852 cleanedText + 1853 value.substring(end); 1854 1855 const cursor = start + cleanedText.length; 1856 this.setSelectionRange(cursor, cursor); 1857 }); 1858 1859 $textarea.on('dragover', function (e) { 1860 e.preventDefault(); 1861 e.originalEvent.dataTransfer.dropEffect = 'copy'; 1862 }); 1863 1864 $textarea.on('copy', function (e) { 1865 const selectedText = this.value.substring( 1866 this.selectionStart, 1867 this.selectionEnd 1868 ); 1869 1870 if (!selectedText) return; 1871 1872 const cleanedText = stripHtml(selectedText); 1873 if (cleanedText !== selectedText) { 1874 e.preventDefault(); 1875 e.originalEvent.clipboardData.setData( 1876 'text/plain', 1877 cleanedText 1878 ); 1879 } 1880 }); 1881 1882 $textarea.on('cut', function (e) { 1883 const start = this.selectionStart; 1884 const end = this.selectionEnd; 1885 1886 if (start === end) return; 1887 1888 const selectedText = this.value.substring(start, end); 1889 const cleanedText = stripHtml(selectedText); 1890 1891 e.preventDefault(); 1892 e.originalEvent.clipboardData.setData( 1893 'text/plain', 1894 cleanedText 1895 ); 1896 1897 this.value = 1898 this.value.substring(0, start) + 1899 this.value.substring(end); 1900 1901 this.setSelectionRange(start, start); 1902 }); 1903 1904 $textarea.on('blur', function () { 1905 const cleaned = stripHtml(this.value); 1906 if (cleaned !== this.value) { 1907 this.value = cleaned; 1908 } 1909 }); 1910 1911 $textarea.data('html-stripping-applied', true); 1912 }); 1913 } 1914 }); 1915 1916 function googleTranslateElementInit() { 1917 new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element'); 1918 const checkHasEnglishOption = function (languages) { 1919 const hasEnglish = languages.find(option => option.value === 'en'); 1920 if (!hasEnglish) { 1921 const enOption = document.createElement('option'); 1922 const selectLanguage = document.querySelector('.goog-te-combo'); 1923 enOption.value = 'en'; 1924 enOption.textContent = 'English'; 1925 selectLanguage.append(enOption); 1926 } 1927 } 1928 const waitForGoogleFillLanguages = setInterval(() => { 1929 const languages = [...document.querySelectorAll('.goog-te-combo option')]; 1930 if (languages.length > 0) { 1931 clearInterval(waitForGoogleFillLanguages); 1932 checkHasEnglishOption(languages); 1933 } 1934 }); 1935 setTimeout(() => clearInterval(waitForGoogleFillLanguages), 5e3); 1936 } 1937</script>
1937 1938
1939<script type="text/javascript" 1940 src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
vendor: 1 bytes, line 1940
1940
1941<script src="https://d1639lhkj5l89m.cloudfront.net/js/affiliate/bot_detection.min.js"></script>
vendor: 1 bytes, line 1941
1941
1942<script src="https://d1639lhkj5l89m.cloudfront.net/js/affiliate/register.js"></script>
vendor: 1 bytes, line 1942
1942
1943<script src="https://d1639lhkj5l89m.cloudfront.net/js/affiliate/payment_dropdown.js"></script>
1943 1944 1945
1946<script type="text/javascript"> 1947$(document).ready(function() { 1948 // Click upload area â trigger hidden file input 1949 $(document).on('click', '.reg-form-file-upload', function(e) { 1950 e.preventDefault(); 1951 var fieldId = $(this).data('file-trigger'); 1952 $('#' + fieldId).trigger('click'); 1953 }); 1954 1955 // File selected â toggle icon and text in same container 1956 $(document).on('change', 'input.reg-form-browse-file', function() { 1957 var fieldId = $(this).attr('id'); 1958 var container = $('[data-file-trigger="' + fieldId + '"]'); 1959 var iconEmpty = $('[data-icon-empty="' + fieldId + '"]'); 1960 var iconFile = $('[data-icon-file="' + fieldId + '"]'); 1961 var fileText = $('[data-file-text="' + fieldId + '"]'); 1962 var maxSize = 2 * 1024 * 1024; // 2MB 1963 var helper = container.siblings('.reg-form-file-helper'); 1964 var insertAfter = helper.length ? helper : container; 1965 1966 // Xóa error cÅ© (cả custom và jQuery validate) 1967 container.siblings('.reg-form-file-error').remove(); 1968 container.siblings('span.error.text-danger').remove(); 1969 1970 if (this.files && this.files.length > 0) { 1971 var acceptAttr = $(this).attr('accept'); 1972 if (acceptAttr) { 1973 var allowedExtensions = acceptAttr.split(',').map(function(t) { return t.trim().toLowerCase(); }); 1974 var fileName = this.files[0].name.toLowerCase(); 1975 var fileExt = fileName.substring(fileName.lastIndexOf('.')); 1976 1977 if (allowedExtensions.indexOf(fileExt) === -1) { 1978 $(this).val(''); 1979 var errorMsg = fieldId === 'w9_form' 1980 ? 'Only PDF files are accepted. Please choose another one.' 1981 : 'This file type is not supported. Please choose another one.'; 1982 insertAfter.after('<span class="reg-form-file-error">' + errorMsg + '</span>'); 1983 return; 1984 } 1985 } 1986 1987 if (this.files[0].size > maxSize) { 1988 // Reset file input 1989 $(this).val(''); 1990 // Hiá»n thá» error sau helperText (nếu có), nếu không thì sau container 1991 insertAfter.after('<span class="reg-form-file-error">The file must not be larger than 2MB.</span>'); 1992 return; 1993 } 1994 1995 fileText.text(this.files[0].name); 1996 iconEmpty.hide(); 1997 iconFile.show(); 1998 container.addClass('has-file'); 1999 } 2000 // No else: if user cancels file picker, keep current state 2001 }); 2002}); 2003</script>
2003 2004 2005 2006</body> 2007</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.