PageSourceSearch

https://www.ikorkortmc.se/javascript/game/game_lite.js?v=1782256033

js ikorkortmc.se collected 2026-09-28 18:04:49 UTC 14,822 bytes, 400 lines download raw bytes

1var freeGameEnd = "motteo03";
2
3//current reward interval
4var rewardInterval = 15;
5
6//individual reward intervals
7var reward1 = 15;
8var reward2 = 20;//35 total
9var reward3 = 25;//60 total
10var reward4 = 30;//90 total
11var reward5 = 35;//125 total
12var reward6 = 40;//165 total
13var reward7 = 45;//210 total
14var reward8 = 65;//275 total
15var reward9 = 100;//not used
16
17//setup listeners specific to Free game
18function setupSpecificListeners() {
19	
20}
21
22//get user's data from cookies if exists or create new data set
23function getUserData() {
24
25	gameSource = "freeGame";
26	myUser.competitor = 0;
27	myUser.playerID = -1;
28	myUser.playerName = null;
29	myUser.playerAvatar = null;
30	myUser.savedQuizState = null;
31	myUser.savedQuizUpdated = null;
32
33	//does user data exit?
34    let isGuestPlayerData = getCookie("isGuestPlayerData") == 'true';
35	let isGuestPlayerDataAchievementsCompatible = getCookie("isGuestPlayerDataAchievementsCompatible") == 'true';
36
37    if (isGuestPlayerData == true && isGuestPlayerDataAchievementsCompatible == true) {
38    	processGuestPlayerData();
39    }else{
40    	createGuestPlayerData();
41    }
42
43	initAchievements();
44
45}
46
47//guess data doesn't exist. create and set up new player.
48function createGuestPlayerData() {
49
50	setCookie("isGuestPlayerData", true, 365);
51
52	const firstLevel = 'int01';
53
54	myUser.newUser = 1;
55	myUser.currentLevel = 0;
56	myUser.maxLevel = 0;
57	myUser.currentProgress = firstLevel;
58	myUser.maxProgress = firstLevel;
59	myUser.rewardsEarned = 0;
60	myUser.totalStars = 0;
61	myUser.starsCurrentPeriod = 0;
62	myUser.unrewardedStars = 0;
63	myUser.stepHistory = '{}';
64	myUser.quizzesHistory = '{}';
65	myUser.quizzesCurrentPeriod = '{}';
66	myUser.totalCorrect = 0;
67	myUser.totalQuestions = 0;
68	myUser.totalPercentCorrect = 0;
69	myUser.correctCurrentPeriod = 0;
70	myUser.questionsCurrentPeriod = 0;
71	myUser.percentCorrectCurrentPeriod = 0;
72	myUser.userCouponCode = null;
73	myUser.dpQuestionsAnswered = [];
74	myUser.sptpQuestionsAnswered = [];
75	myUser.questionsCorrectlyAnswered = [];
76	myUser.numConsecutiveQuestionsCorrect = 0;
77	myUser.roadsignsViewed = [];
78	myUser.theoryRead = [];
79	myUser.achievementLevelAmber = 0;
80	myUser.achievementLevelAmethyst = 0;
81	myUser.achievementLevelEmerald = 0;
82	myUser.achievementLevelSapphire = 0;
83	myUser.achievementLevelRuby = 0;
84	myUser.achievementLevelDiamond = 0;
85
86	saveUserData();
87
88	getGameData();
89	
90}
91
92//save guest player data to cookies
93function saveUserData() {
94
95	setCookie("guestNewUser", myUser.newUser, 365);
96	setCookie("guestCurrentLevel", myUser.currentLevel, 365);
97	setCookie("guestMaxLevel", myUser.maxLevel, 365);	
98	setCookie("guestCurrentProgress", myUser.currentProgress, 365);
99	setCookie("guestMaxProgress", myUser.maxProgress, 365);
100	setCookie("guestRewardsEarned", myUser.rewardsEarned, 365);
101	setCookie("guestTotalStars", myUser.totalStars, 365);
102	setCookie("guestStarsCurrentPeriod", myUser.starsCurrentPeriod, 365);
103	setCookie("guestUnrewardedStars", myUser.unrewardedStars, 365);
104	setCookie("guestTotalCorrect", myUser.totalCorrect, 365);
105	setCookie("guestTotalQuestions", myUser.totalQuestions, 365);
106	setCookie("guestTotalPercentCorrect", myUser.totalPercentCorrect, 365);
107	setCookie("guestCorrectCurrentPeriod", myUser.correctCurrentPeriod, 365);
108	setCookie("guestQuestionsCurrentPeriod", myUser.questionsCurrentPeriod, 365);
109	setCookie("guestPercentCorrectCurrentPeriod", myUser.percentCorrectCurrentPeriod, 365);
110	setCookie("guestStepHistory", JSON.stringify(myUserStepHistory), 365);
111	setCookie("guestQuizzesHistory", JSON.stringify(myUserQuizzesHistory), 365);
112	setCookie("guestQuizzesCurrentPeriod", JSON.stringify(myUserQuizzesCurrentPeriod), 365);
113	setCookie("guestUserCouponCode", myUser.userCouponCode, 365);
114
115	setCookie("guest_dpQuestionsAnswered", JSON.stringify(myUser.dpQuestionsAnswered), 365);
116	setCookie("guest_sptpQuestionsAnswered", JSON.stringify(myUser.sptpQuestionsAnswered), 365);
117	setCookie("guest_questionsCorrectlyAnswered", JSON.stringify(myUser.questionsCorrectlyAnswered), 365);
118	setCookie("guest_numConsecutiveQuestionsCorrect", myUser.numConsecutiveQuestionsCorrect, 365);
119	setCookie("guest_roadsignsViewed", JSON.stringify(myUser.roadsignsViewed), 365);
120	setCookie("guest_theoryRead", JSON.stringify(myUser.theoryRead), 365);
121	setCookie("guest_achievementLevelAmber", myUser.achievementLevelAmber, 365);
122	setCookie("guest_achievementLevelAmethyst", myUser.achievementLevelAmethyst, 365);
123	setCookie("guest_achievementLevelEmerald", myUser.achievementLevelEmerald, 365);
124	setCookie("guest_achievementLevelSapphire", myUser.achievementLevelSapphire, 365);
125	setCookie("guest_achievementLevelRuby", myUser.achievementLevelRuby, 365);
126	setCookie("guest_achievementLevelDiamond", myUser.achievementLevelDiamond, 365);
127	setCookie("isGuestPlayerDataAchievementsCompatible", true, 365);
128}
129
130//get and handle existing guest player data
131function processGuestPlayerData() {
132
133	const firstLevel = 'int01';
134
135	//TEMP
136	//resetUserData();
137	//return;
138
139	myUser.newUser = parseInt(getCookie("guestNewUser"));
140    if (isNaN(myUser.newUser)) myUser.newUser = 0;
141
142    myUser.currentLevel = parseInt(getCookie("guestCurrentLevel"));
143    if (isNaN(myUser.currentLevel)) myUser.currentLevel = 0;
144
145    myUser.maxLevel = parseInt(getCookie("guestMaxLevel"));
146    if (isNaN(myUser.maxLevel)) myUser.maxLevel = 0;
147
148    myUser.currentProgress = getCookie("guestCurrentProgress");
149    if (typeof myUser.currentProgress == 'undefined') myUser.currentProgress = firstLevel;
150
151    myUser.maxProgress = getCookie("guestMaxProgress");
152    if (typeof myUser.maxProgress == 'undefined') myUser.maxProgress = firstLevel;
153
154    myUser.rewardsEarned = parseInt(getCookie("guestRewardsEarned"));
155    if (isNaN(myUser.rewardsEarned)) myUser.rewardsEarned = 0;
156
157    myUser.totalStars = parseInt(getCookie("guestTotalStars"));
158    if (isNaN(myUser.totalStars)) myUser.totalStars = 0;
159
160    myUser.starsCurrentPeriod = parseInt(getCookie("guestStarsCurrentPeriod"));
161    if (isNaN(myUser.starsCurrentPeriod)) myUser.starsCurrentPeriod = 0;
162
163    myUser.unrewardedStars = parseInt(getCookie("guestUnrewardedStars"));
164    if (isNaN(myUser.unrewardedStars)) myUser.unrewardedStars = 0;
165
166    myUser.totalCorrect = parseInt(getCookie("guestTotalCorrect"));
167    if (isNaN(myUser.totalCorrect)) myUser.totalCorrect = 0;
168
169    myUser.totalQuestions = parseInt(getCookie("guestTotalQuestions"));
170    if (isNaN(myUser.totalQuestions)) myUser.totalQuestions = 0;
171
172    myUser.totalPercentCorrect = parseInt(getCookie("guestTotalPercentCorrect"));
173    if (isNaN(myUser.totalPercentCorrect)) myUser.totalPercentCorrect = 0;
174
175    myUser.correctCurrentPeriod = parseInt(getCookie("guestCorrectCurrentPeriod"));
176    if (isNaN(myUser.correctCurrentPeriod)) myUser.correctCurrentPeriod = 0;
177
178    myUser.questionsCurrentPeriod = parseInt(getCookie("guestQuestionsCurrentPeriod"));
179    if (isNaN(myUser.questionsCurrentPeriod)) myUser.questionsCurrentPeriod = 0;
180
181   	myUser.percentCorrectCurrentPeriod = parseInt(getCookie("guestPercentCorrectCurrentPeriod"));
182    if (isNaN(myUser.percentCorrectCurrentPeriod)) myUser.percentCorrectCurrentPeriod = 0;
183
184    myUserStepHistory = JSON.parse(getCookie("guestStepHistory"), true);
185    if (typeof myUserStepHistory == 'undefined' || myUserStepHistory.length < 3) myUserStepHistory = {};
186
187    myUserQuizzesHistory = JSON.parse(getCookie("guestQuizzesHistory"), true);
188    if (typeof myUserQuizzesHistory == 'undefined' || myUserQuizzesHistory.length < 3) myUserQuizzesHistory = {};
189
190    myUserQuizzesCurrentPeriod = JSON.parse(getCookie("guestQuizzesCurrentPeriod"), true);
191    if (typeof myUserQuizzesCurrentPeriod == 'undefined' || myUserQuizzesCurrentPeriod.length < 3) myUserQuizzesCurrentPeriod = {};
192
193    myUser.userCouponCode = getCookie("guestUserCouponCode");
194    if (typeof myUser.userCouponCode == 'undefined') myUser.userCouponCode = null;
195
196	myUser.dpQuestionsAnswered = JSON.parse(getCookie('guest_dpQuestionsAnswered'), true);
197	if (typeof myUser.dpQuestionsAnswered == 'undefined') myUser.dpQuestionsAnswered = [];
198
199	myUser.sptpQuestionsAnswered = JSON.parse(getCookie('guest_sptpQuestionsAnswered'), true);
200	if (typeof myUser.sptpQuestionsAnswered == 'undefined') myUser.sptpQuestionsAnswered = [];
201
202	myUser.questionsCorrectlyAnswered = JSON.parse(getCookie('guest_questionsCorrectlyAnswered'), true);
203	if (typeof myUser.questionsCorrectlyAnswered == 'undefined') myUser.questionsCorrectlyAnswered = [];
204
205	myUser.numConsecutiveQuestionsCorrect = parseInt(getCookie("guest_numConsecutiveQuestionsCorrect"));
206	if (isNaN(myUser.numConsecutiveQuestionsCorrect)) myUser.numConsecutiveQuestionsCorrect = 0;
207
208	myUser.roadsignsViewed = JSON.parse(getCookie('guest_roadsignsViewed'), true);
209	if (typeof myUser.roadsignsViewed == 'undefined') myUser.roadsignsViewed = [];
210
211	myUser.theoryRead = JSON.parse(getCookie('guest_theoryRead'), true);
212	if (typeof myUser.theoryRead == 'undefined') myUser.theoryRead = [];
213
214	myUser.achievementLevelAmber = parseInt(getCookie("guest_achievementLevelAmber"));
215	if (isNaN(myUser.achievementLevelAmber)) myUser.achievementLevelAmber = 0;
216
217	myUser.achievementLevelAmethyst = parseInt(getCookie("guest_achievementLevelAmethyst"));
218	if (isNaN(myUser.achievementLevelAmethyst)) myUser.achievementLevelAmethyst = 0;
219
220	myUser.achievementLevelEmerald = parseInt(getCookie("guest_achievementLevelEmerald"));
221	if (isNaN(myUser.achievementLevelEmerald)) myUser.achievementLevelEmerald = 0;
222
223	myUser.achievementLevelSapphire = parseInt(getCookie("guest_achievementLevelSapphire"));
224	if (isNaN(myUser.achievementLevelSapphire)) myUser.achievementLevelSapphire = 0;
225
226	myUser.achievementLevelRuby = parseInt(getCookie("guest_achievementLevelRuby"));
227	if (isNaN(myUser.achievementLevelRuby)) myUser.achievementLevelRuby = 0;
228
229	myUser.achievementLevelDiamond = parseInt(getCookie("guest_achievementLevelDiamond"));
230	if (isNaN(myUser.achievementLevelDiamond)) myUser.achievementLevelDiamond = 0;
231
232    getGameData();
233
234}
235
236//destroy guest player cookie data
237function resetUserData() {
238
239	//console.log("TIme to destroy data");
240
241	setCookie("isGuestPlayerData", false, 365);
242
243	window.location.reload();
244
245}
246
247function getGameData() {
248
249	$.get("/php/game/get_free_game_data.php", {level: myUser.currentLevel}, function(data){
250
251			processUserData();
252
253			updateRewards();
254
255			var data = JSON.parse(data);
256
257			myUser.gameTotalSteps = data.gameTotalSteps;
258			myUser.gameTotalStars = data.gameTotalStars;
259			myUser.gameTotalQuestions = data.gameTotalQuestions;
260			myUser.gameTotalStepsTheory = data.gameTotalStepsTheory;
261			myUser.gameTotalStepsRoadsigns = data.gameTotalStepsRoadsigns;
262			myUser.gameTotalStepsVideo = data.gameTotalStepsVideo;
263			myUser.gameTotalStepsDelprov = data.gameTotalStepsDelprov;
264			myUser.gameTotalStepsSlutprov = data.gameTotalStepsSlutprov;
265			myUser.gameTotalStepsTeoriprov = data.gameTotalStepsTeoriprov;
266
267			gameData = JSON.parse(data.gameData);
268
269	        processGameData();
270
271	        getLevelData();
272
273	        //end loading, show start button
274			if (isLoading) {
275				setTimeout(function(){
276					initGame();
277				}, 100);
278				
279			}
280
281	        playTheme(true);
282			
283		}
284	);
285
286}
287
288
289function processReward(rewardNumber) {
290
291	myUser.userCouponCode = "E56X41KA";
292
293	saveUserData();
294	updateRewards();
295
296	var rewardTitle = "";
297	var rewardMessage = "";
298
299	rewardTitle = "Du har fått din första belöning!";
300	rewardMessage = "<p>Du har fått en rabattkod som ger dig upp till <strong>25 % rabatt</strong>
300 när du skapar ett nytt konto.</p>" +
301	"<p><strong><a href='#' onclick='handleUserCoupon(event);'>Klicka här</a></strong> för att utnyttja rabatten nu eller använd koden <strong>" + myUser.userCouponCode + "</strong> innan du väljer medlemskap.</p>";
302
303	setTimeout(function(){
304
305		showRewardStar(rewardTitle, rewardMessage);
306
307	}, REWARD_ANIMATION);
308
309}
310
311
312function showPlayerDialog(action) {
313
314	playFX("dialogOpen");
315
316	var message = "<p>Som medlem kan du välja spelarnamn och profilbild och tävla mot alla andra som spelar MC-Resan. Varje månad har alla som tävlar chans att vinna ett pris!</p>";
317	if (action == "compete") {
318		message = "<p>Som medlem kan du tävla mot alla andra som spelar MC-Resan. Varje månad har alla som tävlar chans att vinna ett pris!</p>";
319	}
320
321	message += "<p><img id='playerNewAvatar' src='graphics/avatars/256/avatar001.png'></p>"
322
323
324	$.confirm ({
325		'title'		: 'Bli medlem och tävla!',
326		'message'	: message,
327		'buttons'	: {
328			'Bli medlem'	: {
329				'class'	: 'blue',
330				'action': function(){
331					playFX("dialogClose");
332					window.location.href = "signup.php";
333				}
334			},
335			'Stäng'	: {
336				'class'	: 'gray',
337				'action': function(){
338					//do nothing
339					playFX("dialogClose");
340				}	
341			}
342		}
343	});
344
345}
346
347//guest has been shown a discount promo dialog
348function updateDiscountPromoStats(isShown, isConverted) {
349	$.post('/php/promo/update_free_game_discount_promo_stats.php', {
350		isShown : isShown,
351		isConverted : isConverted
352	}, function(data){
353		//console.log(data);
354	});
355}
356
357//show discount offer
358function showSignupDiscountDialog() {
359
360	// only show this promo if pop up promo dialog button has already been shown
361	const isShownSignupPromoDialogToday = getCookie('isShownSignupPromoDialogToday');
362	if (isShownSignupPromoDialogToday != 'true') {
363		return;
364	}
365
366	var isShown = true;
367	var isConverted = false;
368
369	myUser.userCouponCode = "IKÖRKORTMC15";
370
371	//adjust title and text for an in-progress or completed game
372	var title = "Bli medlem och få 15 % rabatt";
373	var message = "<p>Skapa ett konto idag och få <strong>15 %</strong> rabatt på ditt medlemskap. Som medlem får du tillgång till allt du behöver för att klara teoriprovet på första försöket!</p><p><span style='color:#00EE00;'>&#x2714;</span>&nbsp; Hela MC-Resan<br><span style='color:#00EE00;'>&#x2714;</span>&nbsp; Hela Vägmärkesspelet<br><span style='color:#00EE00;'>&#x2714;</span>&nbsp; Alla 1 300 körkortsfrågor för MC<br><span style='color:#00EE00;'>&#x2714;</span>&nbsp; Obegränsat antal prov</p>";
374
375	playFX("dialogOpen");
376
377	$.confirm({
378		'title'		: title,
379		'message'	: message,
380		'buttons'	: {
381			'Bli medlem och spara 15 %' : {
382				'class'	: 'blue',
383				'action': function(){
384					playFX("dialogClose");
385					isConverted = true;
386					updateDiscountPromoStats(isShown, isConverted);
387					handleUserCoupon(event);
388				}
389			},
390			'Stäng'	: {
391				'class'	: 'gray',
392				'action': function(){
393					//do nothing
394					updateDiscountPromoStats(isShown, isConverted);
395					playFX("dialogClose");
396				}	
397			}
398		}
399	});
400}

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.