Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- javascript: (function () {
- MBLDATA = {
- names: {
- first: [
- 'Anne','Kirsten','Hanne','Mette','Anna','Helle','Susanne','Lene','Maria','Marianne','Inge','Karen','Lone','Bente','Camilla','Pia','Jette','Charlotte','Louise','Inger','Peter','Jens','Lars','Michael','Henrik','Søren','Thomas','Jan','Niels','Christian','Jørgen','Martin','Hans','Anders','Morten','Jesper','Ole','Per','Erik','Mads'
- ],
- last: [
- 'Jensen','Nielsen','Hansen','Pedersen','Andersen','Christensen','Larsen','Sørensen','Rasmussen','Jørgensen','Petersen','Madsen','Kristensen','Olsen','Thomsen','Christiansen','Poulsen','Johansen','Møller','Knudsen'
- ]
- },
- street: {
- start: [
- "Æble", "Pære", "Nørre", "Sønder", "Øster", "Vester", "Over", "Lærke", "Ege", "Bøge"
- ],
- end: [
- "vej", "gade", "gaden", "stræde", "stien"
- ]
- },
- company:{
- first: [
- "Transparent", "Alfa", "Rød", "Blå", "Sort"
- ],
- second: [
- "Svane", "Struds", "Løve", "Æble", "Ko", "Due", "And"
- ],
- third:[
- "Marketing", "Software", "Arkitektbureau", "Byfornyelse", "Web Design"
- ]
- },
- defnumber:{
- dk1: [ "543", "131", "151" ],
- dk2: [ "740", "911" ],
- dkgas: [ "982", "980" ],
- se1: [ "750" ],
- se2: [ "500" ],
- se3: [ "250" ],
- se4: [ "100" ],
- no: [ "000" ]
- },
- zipcode:{
- dk1: [ '8000', '8200', '9000', '9400' ],
- dk2: [ '2000', '2100' ],
- dkgas: [ '8000', '8200', '9000', '9400', '2000', '2100' ],
- se1: [ '93000', '94000', '95000' ],
- se2: [ '82000', '83000' ],
- se3: [ '10000', '15000', '40000', '50000' ],
- se4: [ '20000', '25000' ],
- no1: [ '1001', '3001', '3300' ],
- no2: [ '3290', '3722', '5750' ],
- no3: [ '2680', '6699', '7003' ],
- no4: [ '9380', '9620', '9991' ],
- no5: [ '5003', '5640', '5831' ],
- de: [ '74564', '10115', '20095', '70173' ]
- }
- };
- function randomDigits(i) {
- var j = "";
- while (j.length < i) {
- j = j + Math.floor(Math.random() * 10)
- }
- return j
- }
- function ensureLength(j, i) {
- if (j.length < i) {
- return j + randomDigits(i - j.length)
- }
- if (j.length > i) {
- return j.substring(0, i)
- }
- return j
- }
- function modulus(i, j) {
- return Math.round((i / j - Math.floor(i / j)) * j)
- }
- function meterCheckDigit(l) {
- var j, k;
- j = 0;
- for (k = 0; k < l.length; k += 2) {
- j += parseInt(l[k], 10) * 3
- }
- for (k = 1; k < l.length; k += 2) {
- j += parseInt(l[k], 10)
- }
- return modulus(10 - modulus(j, 10), 10)
- }
- function checkDigit(l, weights, mod){
- var j, k;
- j = 0;
- for (k = 0; k < l.length; k ++) {
- j += parseInt(l[k], 10) * weights[k];
- }
- return modulus(mod - modulus(j, mod), mod)
- }
- function randomNumberWithModulusCheck(length, weights, mod){
- var number;
- do{
- number = randomDigits(length-1);
- number = number + checkDigit(number, weights, mod);
- }while(number.length!=length);
- return number;
- }
- function randomCvrNumber() {
- return randomNumberWithModulusCheck(8, [2, 7, 6, 5, 4, 3, 2], 11);
- }
- function randomPNumber() {
- return randomNumberWithModulusCheck(10, [4, 3, 2, 7, 6, 5, 4, 3, 2], 11);
- }
- function eanCheckDigit(l) {
- return meterCheckDigit(l);
- }
- function fixMeterNumber(i) {
- if (i.indexOf("5713131") == 0 || i.indexOf("5715151") == 0 || i.indexOf("735999") == 0 || i.indexOf("7070575") == 0) {
- number = ensureLength(i, 17);
- return number + meterCheckDigit(number)
- } else {
- if(isGasMeterSelected()){
- var j = "5713131";
- number = ensureLength(i, 10);
- return number + meterCheckDigit(j + number);
- }else{
- var j = "5713131";
- number = ensureLength(i, 10);
- return number + meterCheckDigit(j + number)
- }
- }
- }
- function integerInRange(min, max) {
- return Math.floor(Math.floor(Math.random() * (max-min))+min);
- }
- function pick(ary) {
- return ary[integerInRange(0, ary.length)];
- }
- function maybePick(chance,ary) {
- if(Math.random() < chance){
- return pick(ary);
- }else{
- return "";
- }
- }
- function fill(fieldName, func) {
- fill2(fieldName, func, 0);
- }
- function fill2(fieldName, func, index) {
- var fields = document.getElementsByName(fieldName);
- if(!fields){
- console.log(fields);
- }
- if(fields.length>index){
- var field = fields[index];
- //if (field.value === '') {
- field.value = func();
- $(field).keyup();
- //}
- }else{
- console.log(fields);
- }
- }
- function doclick(button) {
- if(button.getAttribute("disabled") === null || button.getAttribute("disabled") === ""){
- console.log("Ok");
- button.click();
- }else{
- console.log("wait");
- setTimeout(function() { doclick(button); }, 100);
- }
- }
- function click(buttonName) {
- var buttons = document.getElementsByTagName('button');
- for(var i=0; i<buttons.length; i++){
- var button = buttons[i];
- if(button.id.indexOf(buttonName) === 0){
- doclick(button);
- return;
- }
- }
- var divs = document.getElementsByTagName('div');
- for(var i=0; i<divs.length; i++){
- var div = divs[i];
- if(div.id.indexOf(buttonName) === 0){
- doclick(div);
- return;
- }
- }
- }
- function select(name, value) {
- var radiobuttons = document.getElementsByName(name);
- for(var i=0; i<radiobuttons.length; i++){
- var radiobutton = radiobuttons[i];
- if(radiobutton.value === value){
- radiobutton.checked = true;
- console.log('check');
- console.log(radiobutton);
- return;
- }
- }
- }
- function isSwedish(){
- return midas.util.locale === 'sv_SE';
- }
- function isNorwegian() {
- return midas.util.locale === 'nb_NO';
- }
- function isGasEnabled() {
- return midas.util.isFeatureEnabled('GAS');
- }
- function isGermany() {
- return midas.util.locale === 'de_DE';
- }
- function isGasMeterSelected() {
- var radiobuttons = document.getElementsByName('commodityType');
- for(var i=0; i<radiobuttons.length; i++){
- var radiobutton = radiobuttons[i];
- if(radiobutton.value === 'GAS' && radiobutton.checked){
- return true;
- }
- }
- return false;
- }
- function isBusiness(){
- return document.getElementsByName('cvrNumber').length>0;
- }
- function companyName(){
- switch (integerInRange(0,3)) {
- case 0:
- return lastname() + " " + companySuffix();
- case 1:
- return lastname() + ", " + lastname() + " & " + lastname()+ " "+companySuffix();
- case 2:
- return pick(MBLDATA.company.first) + " "+ pick(MBLDATA.company.second) +" "+ pick(MBLDATA.company.third) +" "+companySuffix();
- case 3:
- return lastname +" " +pick(MBLDATA.company.third) +" "+companySuffix();
- }
- }
- function companySuffix(){
- return maybePick(0.5, ['A/S', 'ApS']);
- }
- function firstname(){
- return pick(MBLDATA.names.first);
- }
- function lastname(){
- return pick(MBLDATA.names.last);
- }
- function streetname(){
- return pick(MBLDATA.street.start)+pick(MBLDATA.street.end);
- }
- function streetnumber(){
- return integerInRange(1, 100);
- }
- function letter(){
- return maybePick(0.1, ['A','B','C','D','E','F']);
- }
- function floor(){
- return maybePick(0.1, ['kl','st','1','2','3','4','5','6']);
- }
- function door(){
- return maybePick(0.1, ['tv','th','mf']);
- }
- function zipCode(){
- if(isSwedish()) {
- return pick(MBLDATA.zipcode.se1.concat(MBLDATA.zipcode.se2, MBLDATA.zipcode.se3, MBLDATA.zipcode.se4));
- } else if(isNorwegian()) {
- return pick(MBLDATA.zipcode.no1.concat(MBLDATA.zipcode.no2, MBLDATA.zipcode.no3, MBLDATA.zipcode.no4, MBLDATA.zipcode.no5));
- } else if (isGermany()) {
- return pick(MBLDATA.zipcode.de);
- } else {
- return pick(MBLDATA.zipcode.dk1.concat(MBLDATA.zipcode.dk2));
- }
- }
- function allAreas(){
- if(isSwedish()){
- return ['SE1', 'SE2', 'SE3', 'SE4'];
- }else if (isNorwegian()) {
- return ['NO1', 'NO2', 'NO3', 'NO4', 'NO5'];
- } else {
- if(isGasEnabled()){
- return ['DK1', 'DK2', 'DKGAS'];
- }else{
- return ['DK1', 'DK2'];
- }
- }
- }
- function area(){
- return pick(allAreas());
- }
- function meterNumber(area){
- return function(){
- var defnumber;
- var prefix;
- if(isSwedish()) {
- prefix = '735999';
- if(area === 'SE1') {
- defnumber = pick(MBLDATA.defnumber.se1);
- } else if(area === 'SE2') {
- defnumber = pick(MBLDATA.defnumber.se2);
- } else if(area === 'SE3') {
- defnumber = pick(MBLDATA.defnumber.se3);
- } else {
- defnumber = pick(MBLDATA.defnumber.se4);
- }
- } else if (isNorwegian()) {
- prefix = '7070575';
- defnumber = pick(MBLDATA.defnumber.no);
- } else {
- if(area==='DK1'){
- prefix = '5713131';
- defnumber = pick(MBLDATA.defnumber.dk1);
- }else if(area==='DK2'){
- prefix = '5713131';
- defnumber = pick(MBLDATA.defnumber.dk2);
- }else{
- prefix = '5715151';
- defnumber = pick(MBLDATA.defnumber.dkgas);
- }
- }
- var meternumber = fixMeterNumber(prefix+defnumber);
- return meternumber;
- }
- }
- function cvrNumber(){
- return randomCvrNumber();
- }
- function pNumber(){
- if(Math.random() < 0.5){
- var first = randomDigits(9);
- return randomPNumber();
- }else{
- return "";
- }
- }
- function eanNumber(){
- if(Math.random() < 0.5){
- var first = randomDigits(12);
- return first + eanCheckDigit(first);
- }else{
- return "";
- }
- }
- function zipCode2(area){
- return function(){
- var zipcode;
- if(isSwedish()) {
- if (area === 'SE1') {
- zipcode = pick(MBLDATA.zipcode.se1);
- } else if (area === 'SE2') {
- zipcode = pick(MBLDATA.zipcode.se2);
- } else if (area === 'SE3') {
- zipcode = pick(MBLDATA.zipcode.se3);
- } else {
- zipcode = pick(MBLDATA.zipcode.se4);
- }
- } else if (isNorwegian()) {
- if (area === 'NO1') {
- zipcode = pick(MBLDATA.zipcode.no1);
- } else if (area === 'NO2') {
- zipcode = pick(MBLDATA.zipcode.no2);
- } else if (area === 'NO3') {
- zipcode = pick(MBLDATA.zipcode.no3);
- } else if (area === 'NO4') {
- zipcode = pick(MBLDATA.zipcode.no4);
- } else {
- zipcode = pick(MBLDATA.zipcode.no5);
- }
- } else if (isGermany()) {
- zipcode = pick(MBLDATA.zipcode.de);
- } else {
- if(area==='DK1'){
- zipcode = pick(MBLDATA.zipcode.dk1);
- }else if(area==='DK2'){
- zipcode = pick(MBLDATA.zipcode.dk2);
- }else{
- zipcode = pick(MBLDATA.zipcode.dkgas);
- }
- }
- return zipcode;
- }
- }
- function companyContact(){
- if(Math.random() < 0.5){
- return firstname()+" "+lastname();
- }else{
- return "";
- }
- }
- function email(){
- if(Math.random() < 0.5){
- return firstname().replace(/[^a-zA-Z0-9]/g,'x')+randomDigits(4)+"@example.org";
- }else{
- return "";
- }
- }
- function phoneNumber(){
- if(Math.random() < 0.5){
- return randomDigits(8);
- }else{
- return "";
- }
- }
- function city(){
- if(isSwedish()){
- return "Stockholm";
- }else{
- return "Bynavn";
- }
- }
- function addMeter(area){
- console.log(area);
- if(area==='DKGAS'){
- select('commodityType', 'GAS');
- } else {
- select('commodityType', 'ELECTRICITY');
- }
- fill("meterNumber", meterNumber(area));
- fill("address", address);
- fill("consumptionAddress", fullAddress);
- fill2("zipCode", zipCode2(area), 1);
- fill("yearlyConsumption", yearlyConsumption);
- click("addConsumptionButton");
- }
- function addMetersWithIndex(areas, i, attempts){
- if(attempts>10){
- return;
- }
- if(i>=areas.length){
- return;
- }
- var meterNumberFields = document.getElementsByName('meterNumber');
- if(!!meterNumberFields[0].value){
- setTimeout(function() { addMetersWithIndex(areas, i, attempts+1); }, 100);
- return;
- }
- var area = areas[i];
- addMeter(area);
- console.log(document.getElementsByName('meterNumber').value);
- addMetersWithIndex(areas, i+1, 0);
- }
- function addMeters(areas){
- addMetersWithIndex(areas, 0);
- }
- function address(){
- var res = streetname()+" "+streetnumber();
- var letterx = letter();
- var floorx = floor();
- var doorx = door();
- if(letterx!==""){
- res = res + letterx;
- }
- if(floorx!==""){
- res = res + ", " + floorx;
- }
- if(doorx!==""){
- res = res + " " + doorx;
- }
- return res;
- }
- function fullAddress(){
- return address() + ", " + zipCode() + " " + city();
- }
- function yearlyConsumption(){
- return integerInRange(30,100)*100;
- }
- if(isBusiness()){
- fill("name1", companyName);
- fill("email", email);
- fill("cvrNumber", cvrNumber);
- fill("pNumber", pNumber);
- fill("eanNumber", eanNumber);
- fill("companyContact", companyContact);
- }else{
- fill("name1", firstname);
- fill("name2", lastname);
- }
- fill("street", streetname);
- fill("number", streetnumber);
- fill("letter", letter);
- fill("floor", floor);
- fill("door", door);
- fill("zipCode", zipCode);
- fill("customerAddress", fullAddress);
- if(isSwedish()){
- fill("city", city);
- }
- fill("telephone", phoneNumber);
- fill("email", email);
- var areas = allAreas();
- addMeters(areas);
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement