if ( document.location.pathname == '/business-solutions/mps') { ajax_request ('https://secure.brother.de/sitecore/forms/printsmart_haendlersuche/form.cfm', 7, -1 ); } if ( document.location.pathname == '/business-solutions/managed-print-services/brother-leasing') { ajax_request ('https://secure.brother.de/sitecore/forms/printsmart_haendlersuche/form.cfm', 1, -1 ); } if ( document.location.pathname == '/etiketten-und-belegdrucker/beschriften-beginnt-mit-brother') { ajax_request ('https://secure.brother.de/sitecore/forms/ptouchtv_haendlersuche/form.cfm', 1, -1 ); del_empty_divs(1); } if ( document.location.pathname == '/landingpages/diy') { del_empty_divs(3); } if ( document.location.pathname == '/business-solutions/mps/brother-leasing' ) { del_empty_divs(4); } if ( document.location.pathname == '/etiketten-und-belegdrucker/tested-to-the-extreme') { del_empty_divs(2); } if ( document.location.pathname == '/etiketten-und-belegdrucker/schriftbaender') { ajax_loadpage('https://secure.brother.de/sitecore/ptbaender/index_ajax.cfm', 0); } if ( document.location.pathname == '/etiketten-und-belegdrucker/etiketten-und-papierrollen') { ajax_loadpage('https://secure.brother.de/preview/_include/overview-etiketten.cfm', 0); } if ( document.location.pathname == '/etiketten-und-belegdrucker/etikettenrollen-ql-vc500w') { ajax_loadpage('https://secure.brother.de/preview/_include/overview-etiketten-ql-vc500w.cfm', 0); } if ( document.location.pathname == '/etiketten-und-belegdrucker/pt-h105wb') { var orgdiv = document.getElementsByClassName('btn-info'); } if ( document.location.pathname == '/xdrucker/fuer-farbe-gemacht') { ajax_request ('https://secure.brother.de/sitecore/forms/color_gewinnspiel/index.cfm', 0, -999 ); } if ( document.location.pathname == '/drucker/tintengeraete/dehoga/register') { ajax_request ('https://secure.brother.de/sitecore/forms/dehoga_aktion/index.cfm', 0, -999 ); } function ajax_request( remote_path, id, plz ) { if ( document.getElementsByClassName('common-richtext component')[id] != null) { var orgdiv = document.getElementsByClassName('common-richtext component')[id]; $url = encodeURI( remote_path+'?lk=DE&id='+id+'&plz='+plz+'&'+Math.random()); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { orgdiv.innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET", $url, true); xmlhttp.send(); } else { console.log('Richtext Element ID: '+id+' existiert nicht!'); } } function ajax_loadpage( remote_path, id ) { if ( document.getElementsByClassName('common-richtext component')[id] != null) { var orgdiv = document.getElementsByClassName('common-richtext component')[id]; $url = encodeURI( remote_path+'?lk=DE&id='+id+'&'+Math.random()); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { orgdiv.innerHTML = xmlhttp.responseText if(remote_path.indexOf('overview-etiketten') != -1){ //alert(remote_path); window.onload = addRowHandlers(); } } } xmlhttp.open("GET", $url, true); xmlhttp.send(); } else { console.log('Richtext Element ID: '+id+' existiert nicht!'); } } function ajax_request( remote_path, id, plz ) { if ( document.getElementsByClassName('common-richtext component')[id] != null) { var orgdiv = document.getElementsByClassName('common-richtext component')[id]; $url = encodeURI( remote_path+'?lk=DE&id='+id+'&plz='+plz+'&'+Math.random()); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { orgdiv.innerHTML = xmlhttp.responseText } } xmlhttp.open("GET", $url, true); xmlhttp.send(); } else { console.log('Richtext Element ID: '+id+' existiert nicht!'); } } function del_all_empty_divs() { var divs = document.getElementsByClassName('col-xs-12'); for (var i = 0; i < divs.length; i++) { if ( divs[i].textContent.trim() == '' ) { divs[i].style.display = 'none'; } } } function del_empty_divs(page) { var divs = document.getElementsByClassName('col-xs-12'); //console.log(divs); if (page == 1) { divs[4].style.display = 'none'; divs[8].style.display = 'none'; divs[12].style.display = 'none'; divs[15].style.display = 'none'; } if (page == 2) { divs[1].style.display = 'none'; divs[4].style.display = 'none'; divs[19].style.display = 'none'; divs[22].style.display = 'none'; } if (page == 3) { console.log(document.getElementsByClassName('col-xs-12')); divs[1].style.display = 'none'; divs[4].style.display = 'none'; divs[12].style.display = 'none'; divs[15].style.display = 'none'; divs[22].style.display = 'none'; } if (page == 4) { console.log(document.getElementsByClassName('col-xs-12')); divs[1].style.display = 'none'; divs[8].style.display = 'none'; divs[15].style.display = 'none'; } } function get_form_section(placeholder){ elements = document.getElementsByTagName("section"); for (var i = 0, len = elements.length; i < len; i++) { if ( elements[i].innerHTML.indexOf( placeholder ) != -1 ) { console.log(i); section_element = elements[i]; } } return section_element; } function ajax_form_init(url){ section_element = get_form_section("[ajaxform]"); if (typeof(section_element) != "undefined") { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { section_element.innerHTML = xmlhttp.responseText; section_element.style.padding = "10px 15px 20px 15px"; section_element.style.overflow = "hidden"; } } url = encodeURI(url); xmlhttp.open("POST", url, true); xmlhttp.send(); } } function ajax_form_post(myself) { var elem = myself.form.elements; var url = myself.form.action; var params = ""; var value; section_element = get_form_section("[ajaxform]"); for (var i = 0; i < elem.length; i++) { if (elem[i].tagName == "SELECT") { value = elem[i].options[elem[i].selectedIndex].value; } else { if (elem[i].type == "checkbox") { value = encodeURIComponent(elem[i].checked); } else { value = elem[i].value; } } params += elem[i].name + "=" + encodeURIComponent(value) + "&"; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("POST",url,false); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send(params); section_element.innerHTML = xmlhttp.responseText; } /** Follow functions could be used for German ajax Form implementation: */ /** This function cann be used for every email validation */ function check_email(s){ var strReg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; var regex = new RegExp(strReg); if (regex.test(document.getElementById("email" + s).value) == false) { document.getElementById("email" + s + "_group").className = "form-group has-error"; return 0; } else { document.getElementById("email" + s + "_group").className = "form-group has-success"; return 1; } } /** Check whether both email are validated */ function check_email2(){ if (check_email('') * check_email('2') > 1) { var e1 = document.getElementById("email").value; var e2 = document.getElementById("email2").value; if(e1 == e2){ document.getElementById("email_group").className = "form-group has-success"; document.getElementById("email2_group").className = "form-group has-success"; return 1; } else{ document.getElementById("email_group").className = "form-group has-error"; document.getElementById("email2_group").className = "form-group has-error"; return 0; } } else { return 0; } } function check_str(){ if (document.getElementById("str").value.length < 4) { document.getElementById("str_group").className = "form-group has-error"; return 0; } else { document.getElementById("str_group").className = "form-group has-success"; return 1; } } function check_hsnr() { if (document.getElementById("hsnr").value.length < 1) { document.getElementById("hsnr_group").className = "form-group has-error"; return 0 } else { document.getElementById("hsnr_group").className = "form-group has-success"; return 1 } } function check_ort() { if (document.getElementById("ort").value.length <= 3) { document.getElementById("ort_group").className = "form-group has-error"; return 0 } else { document.getElementById("ort_group").className = "form-group has-success"; return 1 } } function check_plz(){ if (document.getElementById("plz").value.length < 4) { document.getElementById("plz_group").className = "form-group has-error"; return 0 } else { if (isNaN(document.getElementById("plz").value)) { document.getElementById("plz_group").className = "form-group has-error"; return 0; } else { document.getElementById("plz_group").className = "form-group has-success"; return 1 } } } function check_text(group) { var pgrp = document.getElementById(group); if (pgrp === null) { return 1; } else { if (pgrp.value.length < 1) { document.getElementById(group + "_group").className = "form-group has-error"; return 0 } else { document.getElementById(group + "_group").className = "form-group has-success"; return 1 } } } /** CHECK USTID and calcualte */ function testUstIDNumber(){ var usttag = document.getElementById('ustid'); if(!usttag.hasAttribute('required')){ return 1; } var ustid = usttag.value document.querySelector('#error-message-ustid').style.display = 'none'; if (ustid.length == 0) { document.getElementById("ustid_group").className = "form-group has-error"; return 0; } if(ustid == 'DE010101010'||ustid == 'ATU10101010'){ document.getElementById("ustid_group").className = "form-group has-success"; return 1; } var newVATNumber = checkVATNumber(ustid); if (newVATNumber == 'ungueltig') {return 0;} if (!newVATNumber) { document.getElementById("ustid_group").className = "form-group has-error"; document.querySelector('#error-message-ustid').style.display = 'block'; document.querySelector('#error-message-ustid').innerText = 'Eingegebene Umsatzsteuer ist nicht gültig.'; return 0; } document.getElementById("ustid_group").className = "form-group has-success"; return 1; } function check_tnb(group) { if (document.getElementById(group).checked == false) { document.getElementById(group+"_group").className = "form-group has-error"; return 0; } else { document.getElementById(group+"_group").className = "form-group has-success"; return 1; } } function select_validate(str){ var dix = document.getElementById(str); // alert(dix.length) if (dix === null) { return 1; } else { if (dix.tagName == 'SELECT') { var selectedValue = dix.options[dix.selectedIndex].value; if (selectedValue != "") { dix.parentElement.classList.remove("has-error"); dix.parentElement.classList.add("has-success"); if (dix.parentElement.classList.contains("form-select-wrapper")) { dix.parentElement.parentNode.classList.remove("has-error"); dix.parentElement.parentNode.classList.add("has-success"); } /* USTID label änderung abgeschaltet (DEHOGA AKTION) var lblUstID = "Umsatzsteuer-ID"; //alert(selectedValue); if(selectedValue == 'de'){ document.getElementById('lblustid').innerHTML = lblUstID } else { document.getElementById('lblustid').innerHTML = "UID-Nummer"; } */ return 1; } else { dix.parentElement.classList.remove("has-success"); dix.parentElement.classList.add("has-error"); if (dix.parentElement.classList.contains("form-select-wrapper")) { dix.parentElement.parentNode.classList.add("has-error"); dix.parentElement.parentNode.classList.remove("has-success"); } return 0; } } } } function check_sernr(){ var snrInstance = document.getElementById("sernr"); var snrValue = snrInstance.value.toUpperCase().replace(" ", ""); document.querySelector('#error-message-sernr').style.display = 'none'; snrInstance.value = snrValue; // console.log(snrValue); var strReg = /[A-Z]\d[A-Z]\d{6}/, minlength = 9; var lastNine = snrValue.substr(snrValue.length - minlength); var regex = new RegExp(strReg); if (snrValue.length == 0) { //document.getElementById("sernr_group").className = "form-group has-error"; return 0; } if (regex.test(lastNine) == false) { document.getElementById("sernr_group").className = "form-group has-error"; document.querySelector('#error-message-sernr').style.display = 'block'; document.querySelector('#error-message-sernr').innerText = 'Ungültige Seriennummer.'; return 0; } /* else { var url_snrcheck = "ajax_snrcheck.cfm"; }*/ document.getElementById("sernr_group").className = "form-group has-success"; return 1; } function change_valid(e){ if (e.value != '') { e.parentElement.classList.remove("has-error"); e.parentElement.classList.add("has-success"); if (e.parentElement.classList.contains("checkbox") || e.parentElement.classList.contains("form-select-wrapper")) { e.parentElement.parentNode.classList.remove("has-error"); e.parentElement.parentNode.classList.add("has-success"); } } else { if (!e.parentElement.classList.contains("has-error")) { e.parentElement.classList.remove("has-success"); e.parentElement.classList.add("has-error"); if (e.parentElement.classList.contains("checkbox") || e.parentElement.classList.contains("form-select-wrapper")) { e.parentElement.parentNode.classList.remove("has-error"); e.parentElement.parentNode.classList.remove("has-success"); } } } } Number.prototype.leadZero = function(size) { var s = String(this); while (s.length < (size || 2)) {s = "0" + s;} return s; } function checkDatum(vd,bd){ //mv,jv,mb,jb if(typeof vd == 'undefiend'){ var vd = "01.01.2019"; } if(typeof bd == 'undefiend'){ var bd = "31.12.2019"; } var tvd = vd.split('.'); var tbd = bd.split('.'); var dateVon = new Date(tvd[2],tvd[1]-1,tvd[0]); var dateBis = new Date(tbd[2],tbd[1]-1,tbd[0]); var currentDate = new Date(); var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/; var getDatumValue = document.getElementById('kaufdatum').value; document.querySelector('#error-message-kaufdatum').style.display = 'none'; document.getElementById("kaufdatum_group").className = "form-group"; if(getDatumValue.length == 0){ document.getElementById("kaufdatum_group").className = "form-group has-error"; //document.querySelector('#error-message-kaufdatum').style.display = 'block'; //document.querySelector('#error-message-kaufdatum').innerText = 'Kaufdattum bitte eingeben'; return 0; } var newDatumValue = getDatumValue.split(/[.-]+/); var kaufDatum = parseInt(newDatumValue[0]).leadZero()+"."+parseInt(newDatumValue[1]).leadZero()+"."+parseInt(newDatumValue[2]); document.getElementById('kaufdatum').value = kaufDatum; var newDate = parseInt(newDatumValue[1])+"/"+newDatumValue[0]+"/"+parseInt(newDatumValue[2]); if(!kaufDatum.match(dateReg)){ document.getElementById("kaufdatum_group").className = "form-group has-error"; document.querySelector('#error-message-kaufdatum').style.display = 'block'; document.querySelector('#error-message-kaufdatum').innerText = 'Datumsformat ist nicht gültig.'; return 0; } if(isValidDate(newDate) == false){ document.getElementById("kaufdatum_group").className = "form-group has-error"; document.querySelector('#error-message-kaufdatum').style.display = 'block'; document.querySelector('#error-message-kaufdatum').innerText = 'Bitte korrigieren Sie das Datum.'; return 0; } if(new Date(newDate) > currentDate){ document.getElementById("kaufdatum_group").className = "form-group has-error"; document.querySelector('#error-message-kaufdatum').style.display = 'block'; document.querySelector('#error-message-kaufdatum').innerText = 'Datum liegt in der Zukunft.'; return 0; } if(new Date(newDate) < dateVon || new Date(newDate) > dateBis){ document.getElementById("kaufdatum_group").className = "form-group has-error"; document.querySelector('#error-message-kaufdatum').style.display = 'block'; document.querySelector('#error-message-kaufdatum').innerText = 'Gültiger Zeitraum: ' + vd + ' - ' +bd; return 0; } document.getElementById("kaufdatum_group").className = "form-group has-success"; return 1; } function isValidDate(dateString) { // First check for the pattern if(!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(dateString)) return false; // Parse the date parts to integers var parts = dateString.split("/"); var day = parseInt(parts[1], 10); var month = parseInt(parts[0], 10); var year = parseInt(parts[2], 10); // Check the ranges of month and year if(year < 1000 || year > 3000 || month == 0 || month > 12) return false; var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; // Adjust for leap years if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) monthLength[1] = 29; // Check the range of the day return day > 0 && day <= monthLength[month - 1]; }; var RecaptchaOptions = { theme : 'white', tabindex : 2 }; function form_check(form_parameter,a,b){ var fp = "_"; if(typeof form_parameter !== 'undefined'){ var fp = fp + form_parameter + fp; } if(typeof a == 'undefined'){ var a = ''; } if(typeof b == 'undefined'){ var b = ''; } if (select_validate('anrede') * select_validate('lk') * check_text('firma') * check_text('vorname') * check_text('nachname') * check_email('') * check_email('2') * check_plz() * check_ort() * check_str() * check_hsnr() * select_validate('modell') * check_sernr() * testUstIDNumber() * checkDatum(a,b) * rechnungfileCheck() * check_tnb('tnb') > 0) { //if (grecaptcha.getResponse() == ""){ // alert("Bitte bestätigen Sie das reCaptcha."); //return false; //} else { sendData(fp); //return false; //} } } /* function form_check(){ var form = document.querySelector('#form-fuer-farbe'); // console.log(formSerialize(form)); // ajaxFormForColor(formSerialize(form)) } */ function rechnungfileCheck(){ var file = document.querySelector('#rechnungfile'), excel_mime_types = [ 'image/jpeg', 'image/png', 'image/bmp', 'application/pdf' ]; document.querySelector('#error-message-rechnungfile').style.display = 'none'; if(file.value.length == 0){ document.getElementById("rechnungfile_group").className = "form-group has-error"; //document.querySelector('#error-message-rechnungfile').style.display = 'block'; //document.querySelector('#error-message-rechnungfile').innerText = 'Bitte Rechnungsfile auswählen.'; return 0; } // Validate MIME type if(excel_mime_types.indexOf(file.files[0].type) == -1) { document.getElementById("rechnungfile_group").className = "form-group has-error"; document.querySelector('#error-message-rechnungfile').style.display = 'block'; document.querySelector('#error-message-rechnungfile').innerText = 'Gültige Dateiformate: PDF, JPG, PNG, BMP'; return 0; } // Max 2 Mb allowed if(file.files[0].size > 2*1024*1024) { document.getElementById("rechnungfile_group").className = "form-group has-error"; document.querySelector('#error-message-rechnungfile').style.display = 'block'; document.querySelector('#error-message-rechnungfile').innerText = 'Maximale Dateigröße: 2 MB'; return 0; } document.getElementById("rechnungfile_group").className = "form-group has-success"; return 1; } function sendData(urltxt) { var url = "https://secure.brother.de/sitecore/data/ajax" + urltxt + "form.cfm"; var form = document.querySelector('#form-fuer-farbe'); var file = document.querySelector('#rechnungfile').files[0]; var fdData = new FormData(form); // gathering the form data // manually create a new file obj for each File in the FileList /* fdData.append('rechnungfile', file); const values = {}; const inputs = form.elements; for (let i = 0; i < inputs.length; i++) { fdData.append(inputs[i].name, inputs[i].value); // console.log(inputs[i].name + ', ' + inputs[i].value); } */ // sendData(fd); var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); //xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); succesInfo(); } }; // var data = JSON.stringify(fdData); // console.log(data); xhr.send(fdData); } function succesInfo(){ var htmlHinweis = ''; htmlHinweis += ''; document.getElementById('row-form-inputs').innerHTML = htmlHinweis; location.hash = "#row-form-inputs"; return false; } /* function sendData(data) { var filelink = "https://secure.brother.de/sitecore/data/ajaxform.cfm" // console.log("data -> " + JSON.stringify(data)) fetch(filelink, { method: 'POST', body: data }).then(response => { console.log(response) }).catch(error => console.error('Error:', error)); } */ //sizeParentIFrame(); function checkVATNumber(toCheck){ // Array holds the regular expressions for the valid VAT number var vatexp = new Array(); var broustid_type = ['DE120060636','ATU65216759']; //var broustid_type = ['DE120060630','ATU65216750']; // To change the default country (e.g. from the AT to Germany - DE): // 1. Change the country code in the defCCode variable below to "DE". // 2. Remove the question mark from the regular expressions associated with the DE VAT number: // i.e. "(AT)?" -> "(DE)" // 3. Add a question mark into the regular expression associated with Germany's number // following the country code: i.e. "(DE)" -> "(DE)?" var defCCode = "DE"; // Note - VAT codes without the "**" in the comment do not have check digit checking. vatexp.push(/^(AT)U(\d{8})$/); //** Austria vatexp.push(/^(DE)([1-9]\d{8})$/); //** Germany // Load up the string to check var VATNumber = toCheck.toUpperCase(); // Remove spaces etc. from the VAT number to help validation VATNumber = VATNumber.replace(/(\s|-|\.)+/g, ''); if(broustid_type.indexOf(VATNumber) != -1) { document.getElementById("ustid_group").className = "form-group has-error"; document.querySelector('#error-message-ustid').style.display = 'block'; document.querySelector('#error-message-ustid').innerText = 'Eingegebene Umsatzsteuer ist nicht zugelassen.'; return 'ungueltig'; } // Assume we're not going to find a valid VAT number var valid = false; // Check the string against the regular expressions for all types of VAT numbers for (i = 0; i < vatexp.length; i++) { // Have we recognised the VAT number? if (vatexp[i].test(VATNumber)) { // Yes - we have var cCode = RegExp.$1; // Isolate country code var cNumber = RegExp.$2; // Isolate the number if (cCode.length == 0) cCode = defCCode; // Set up default country code // Call the appropriate country VAT validation routine depending on the country code if (eval(cCode + "VATCheckDigit ('" + cNumber + "')")) valid = VATNumber; // Having processed the number, we break from the loop break; } } // Return with either an error or the reformatted VAT number return valid; } function ATVATCheckDigit(vatnumber){ // Checks the check digits of an Austrian VAT number. var total = 0; var multipliers = [1, 2, 1, 2, 1, 2, 1]; var temp = 0; // Extract the next digit and multiply by the appropriate multiplier. for (var i = 0; i < 7; i++) { temp = Number(vatnumber.charAt(i)) * multipliers[i]; if (temp > 9) total += Math.floor(temp / 10) + temp % 10 else total += temp; } // Establish check digit. total = 10 - (total + 4) % 10; if (total == 10) total = 0; // Compare it with the last character of the VAT number. If it's the same, then it's valid. if (total == vatnumber.slice(7, 8)) return true else return false; } function DEVATCheckDigit (vatnumber) { // Checks the check digits of a German VAT number. var product = 10; var sum = 0; var checkdigit = 0; for (var i = 0; i < 8; i++) { // Extract the next digit and implement peculiar algorithm!. sum = (Number(vatnumber.charAt(i)) + product) % 10; if (sum == 0) {sum = 10}; product = (2 * sum) % 11; } // Establish check digit. if (11 - product == 10) {checkdigit = 0} else {checkdigit = 11 - product}; // Compare it with the last two characters of the VAT number. If the same, then it is a valid // check digit. if (checkdigit == vatnumber.slice (8,9)) return true; else return false; }