Frewacom
10/10/2017 - 8:56 PM

Pärsons.js

// ==UserScript==
// @name         Pärssons 
// @version      0.1
// @description  Get some skivor from havet
// @author       Fredrik Engstrand
// @match        http://kuponger.parsons.se/*
// @grant        none
// ==/UserScript==

// Här bestämmer du vilket nummer som vi ska försöka skicka till
// Exempel: 
// var TELEFON_NUMMER = "0723334455";
var TELEFON_NUMMER = "";





function showModal(text)
{
	document.body.innerHTML += '<div id="popover" style="position:fixed;top:0px;z-index:99999;width:100%;'+
				   'height:100vh;background-color:rgba(20,20,20,0.98);display:flex;'+
				   'flex-direction:column;justify-content:center;align-items:center">'+
				   '<button style="position:absolute;top:50px;right:50px;color:white;font-family:arial;'+
				   'background-color:transparent;border:none" id="close-btn">STÄNG</button>'+
				   '<p style="font-size:50px;color:white;font-family:arial;">' + text + '</p></div>';
	$('#close-btn').click(closeModal);
}

function closeModal()
{
	$('#popover').css('display', 'none');
}

// Kolla ifall nummret är giltigt
function isValid(p) {
	var patterns = /[0-9]/g;
    var str = p.replace(/\D/g, "");

    var lang = parseInt(str).toString();
    var okLangCode = [
      	'46',
      	'70',
      	'72',
      	'73',
      	'76',
      	'79'
    ];
	if (/^\d+$/.test(p) === true)
	{
		if (okLangCode.indexOf(lang.slice(0, 2)) != -1) {
			var newstr = str.substring(str.indexOf("7"));
			var okStartDigits = ['70', '72', '73', '76', '79'];

			if (okStartDigits.indexOf(newstr.slice(0, 2)) >= 0 && newstr.length == 9) {
				console.log('valid phone number');
				return patterns.test(newstr);
			} else {
				console.log('not valid');
				return 'Skriv in ett giltigt telefonnummer';
			}
		} 
		else
		{
			return "Ogiltigt nummer";
		}
	}
	else
	{
		return "Ogiltigt nummer";
	}
}

// Main
(function() {
	if (isValid(TELEFON_NUMMER) === true)
	{
		var number = {
      		phone: TELEFON_NUMMER
    	};

		$.ajax({
			type: "POST",
			url: window.siteURL + "/ajax/coupon.php",
			data: number,
			dataType: "json",
			success: function(response) {
				console.log(response);
				if (response.sent === false) {
					$('.error-message').text(response.message);
					if (response.message == "slut")
					{
						showModal("Kupongerna är slut, laddar om..");
					}
					else
					{
						showModal("Något blev fel!<br>Error: " + response.message);
					}

					setTimeout(function() {
						window.location = window.siteURL;
					}, 3000);
				} else {
					$.get("ajax/thankyou.php", {coupon: response.typeOfcoupon}).done(function(data) {
					$('.top-content-container').html(data);
					$('.form-container').css('display', 'none');
					showModal("Allt gick som planerat, kupongen bör vara skickad.");
				});
			  }
			},
			error: function(xhr, ajaxOptions, thrownError) {
				console.log(xhr);
				console.log(thrownError);
				showModal("AJAX-ERROR, försöker igen");
				setTimeout(function() {
					window.location = window.siteURL;
				}, 3000);
			}
		});	
	}
	else
	{
		showModal("Telefonnummret du angav är fel,<br>fixa till mobilnummret och ladda om sidan."+
				  "<br>Angett nummer: <span style='color:green'>" + TELEFON_NUMMER + "</span>");
	}
})();