Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; PasswordHash has a deprecated constructor in /var/www/held-i-lotto.dk/public_html/PasswordHash.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at /var/www/held-i-lotto.dk/public_html/PasswordHash.php:27) in /var/www/held-i-lotto.dk/public_html/LottoSystems.js.php on line 11
//JS-START var LottoSystems = new function() { this.loaded = false; // Doesn't show any systems (blocks calls to systemajax.php) until everything has been loaded this.hideNumberSpace = false; this.numberSpaceLabel = 'Udtrukne tal:'; this.hideNumbersDrawn = false; this.numbersDrawnLabel = 'Rækkelængde:'; this.numbersDrawnCSS = {off: 'grayradio', on: 'yellowradio'}; this.numbersDrawnButtonText = function(val){return val;}; this.numbersPicked = []; this.numbersDrawn = new Array(); this.currentNumbersDrawn = -1; this.addNumberDrawn = function(num, current) { this.numbersDrawn.push(num); if (typeof current !== 'undefined') this.currentNumbersDrawn = this.numbersDrawn.length - 1; }; this.numbersDrawnValue = function() { return LottoSystems.numbersDrawn[LottoSystems.currentNumbersDrawn]; }; this.onNumbersDrawnChanged = function() { }; // Gives the possibility to change the NumberSpace depending on Numbers Drawn. Alternatively, numberSpace should contain objects instead of numbers, but that is too hard to implement at this point in time, since it is directly referenced from many places. this.numberSpace = new Array(); this.currentNumberSpace = -1; this.addNumberSpace = function(num, current) { this.numberSpace.push(num); if (typeof current !== 'undefined') this.currentNumberSpace = this.numberSpace.length - 1; }; this.numberSpaceValue = function() { return LottoSystems.numberSpace[LottoSystems.currentNumberSpace]; }; this.resetNumberSpace = function() { for (var i = 1; i <= this.numberSpaceValue(); i++) if (this.isNumberPicked(i)) this.toggleNumber(i); this.numberSpace = new Array(); }; this.systems = new Array(); this.currentSystem = -1; this.addSystem = function(sys) { this.systems.push(sys); if (sys.isDefault && sys.numbersPerRow == LottoSystems.numbersDrawnValue()) this.currentSystem = this.systems.length - 1; }; this.print = function(div, title) { div.html(" \ \ \ \ \ \
\ \ \

\
Rækkelængde:  
\
Udtrukne tal:  
\
\ Vælg det system du vil spille.
\ \ \ \ \ \ \
\
\ \ \ \ \ \ \ \ \ \
Reducerede systemer
M6-36
\
\
\
\ \ \ \ \ \ \ \ \ \
Garantisystemer
M6-36
\
\
\
\ \ \ \ \ \ \ \ \ \
Matematiske systemer
M6-36
\
\
\ \ \ \ \ \ \ \ \ \
LYN-systemer
PMAD
\
\
\ \
\ \

\ System beskrivelse:\
\ \
\
\

\ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ Du mangler at vælge ... tal til systemet\
\ \ \
\
\
Antal rækker:
\
\ \ \
\ \

Garantitabel

\
\

\

\ Matematiske systemer\
\ I systemerne spilles alle de mulige kombinationer af rækker der er, med det antal af tal som man ønsker at spille. \

\

\ Vil man spille på 8 tal, så skal man spille alle de mulige kombinationer med 8 tal der findes. \

\

\ Reducerede systemer\
\ De reducerede systemer spilles på færre rækker, og rækkerne er udvalgt blandt alle de mulige kombinationer af der er, med det antal af tal, som man ønsker at spille.\

\

\ Vil man spille på 8 tal kan man, i princippet, nøjes med at spille 1 række.\

\

\ Gevinstsystemer\
\ Gevinstsystemer er også reducerede systemer, og systemerne spilles på færre rækker end i de fleste andre reducerede systemer. Til gengæld giver systemerne kun garanti for 4 rigtige, hvis de \ 7 udtrukne lottotal passer med 7 tal i gevinstsystemet.\

\

\ LYN-systemer\
\ Et LYN-system er lottorækker udtrukket af en tilfældighedsgenerator.\

\ \
\ \ "); $('#numberPickTitle').html(title); if (this.currentNumbersDrawn == -1) this.currentNumbersDrawn = 0; this.updateNumbersDrawn(); if (this.currentNumberSpace == -1) this.currentNumberSpace = 0; this.updateNumberSpace(); if (this.currentSystem == -1) this.currentSystem = 0; this.setCurrentSystem(this.currentSystem); // Update Guarantee Table this.updateSystems(); this.updateRowCountChooser(); this.updateNumberPicker(); this.updateNumbersNeeded(); if (this.hideNumberSpace) $('#numberspacerow').hide(); $('#numberspacelabel').html(this.numberSpaceLabel); if (this.hideNumbersDrawn) $('#numbersdrawnrow').hide(); $('#numbersdrawnlabel').html(this.numbersDrawnLabel); this.loaded = true; } this.setCurrentNumbersDrawn = function(div, index) { if (index == this.currentNumbersDrawn) return; $('#numbersdrawn span').removeClass(this.numbersDrawnCSS.on); $('#numbersdrawn span').addClass(this.numbersDrawnCSS.off); div.removeClass(this.numbersDrawnCSS.off); div.addClass(this.numbersDrawnCSS.on); this.currentNumbersDrawn = index; this.onNumbersDrawnChanged(); this.updateNumberSpace(); this.updateSystems(); this.updateNumberPicker(); this.updateExplanation(); var defaultSystem = this.getDefaultSystemId(); if (defaultSystem >= 0) this.setCurrentSystem(defaultSystem); }; this.updateNumbersDrawn = function() { var html = ''; for (var i in this.numbersDrawn) { html += '' + this.numbersDrawnButtonText(this.numbersDrawn[i]) + ' '; } $('#numbersdrawn').html(html); }; this.setCurrentNumberSpace = function(div, index) { $('#numberspace span').removeClass('yellowradio'); $('#numberspace span').addClass('grayradio'); div.removeClass('grayradio'); div.addClass('yellowradio'); // If the numberspace is being reduced, uncheck the numbers out of the new range var oldmaxnumber = this.numberSpace[this.currentNumberSpace]; var newmaxnumber = this.numberSpace[index]; if (oldmaxnumber > newmaxnumber) { for (var i = newmaxnumber + 1; i <= oldmaxnumber; i++) { if (this.isNumberPicked(i)) this.toggleNumber(i); } } this.currentNumberSpace = index; this.updateNumberPicker(); this.updateExplanation(); if (this.isSystemVisible(this.systems[this.currentSystem]) == false) { var newsystem = -1; for (var i in this.systems) { var system = this.systems[i]; if (!this.isSystemVisible(system)) continue; if (newsystem == -1) newsystem = i; if (system.isDefault) newsystem = i; } if (newsystem != -1) this.setCurrentSystem(newsystem); } this.updateSystems(); }; this.getCurrentNumberSpace = function() { return this.numberSpace[this.currentNumberSpace]; }; this.updateNumberSpace = function() { var html = ''; for (var i in this.numberSpace) { html += '' + this.numberSpace[i] + ' '; } $('#numberspace').html(html); }; this.setCurrentSystem = function(index) { $('#guaranteetitle').html('Garantitabel: ' + this.systems[index].displayName); this.systems[index].printGuarantee($('#guarantee')); this.updateExplanation(index); if (!this.systems[index].allowed) { $('#pretext').html('Det er gratis at bruge garantisystemer og matematiske systemer.

Det er også gratis at oprette sig som bruger og få mulighed for at gemme de systemer, du selv har udfyldt.

Hvis du vil bruge de reducerede systemer, skal du være oprettet som bruger og købe et abonnement.

Et abonnemnent koster 29,00 kr. for 3 måneder, og 12 måneders abonnement koster 49,00 kr.

Læs om betingelserne her.'); $('#pretext').show(); $('#numberpicker').hide(); $('#numchooseleft').hide(); } else { $('#pretext').hide(); $('#numberpicker').show(); $('#numchooseleft').show(); } if (this.currentSystem == index) return; $('#system' + this.currentSystem).removeClass('selected'); this.currentSystem = index; $('#system' + this.currentSystem).addClass('selected'); if (/^RAND-/.test(LottoSystems.systems[LottoSystems.currentSystem].name)) { $('#computerchoosenumbers').html('  '); } else { $('#computerchoosenumbers').empty(); } this.updateRowCountChooser(); // Must be called before updateNumbersNeeded, otherwise getCurrentRowCount() will not work when updateNumbersNeeded(->toggleNumber->showSystem) calls systemajax.php this.updateNumbersNeeded(); }; this.consumeSeed = function() { if (this.seedConsumed) return undefined; this.seedConsumed = true; if ('seed' in urlParams) { return urlParams['seed']; } return undefined; }; this.updateSystems = function() { this.printSystems($('#msystems'), /^M[0-9]/, 'Matematiske systemer'); this.printSystems($('#rsystems'), /^R[0-9]/, 'Reducerede systemer'); this.printSystems($('#gsystems'), /^G[0-9]/, 'Garantisystemer'); this.printSystems($('#randomsystems'), /^RAND/, 'LYN-systemer'); }; this.getDefaultSystemId = function() { for (var i = 0; i < this.systems.length; i++) { var system = this.systems[i]; if (system.isDefault && LottoSystems.numbersDrawnValue() == system.numbersPerRow) { return i; } } return -1; } this.updateExplanation = function(index) { if (index == undefined) index = this.currentSystem; var explanation; if (/^RAND-/.test(this.systems[index].name)) explanation = "Med dette Risk\/Reward system fjerner du nogle tal, blandt alle de tal du kan spille p\u00e5, og hvis du har valgt rigtig og fjernet tal der ikke bliver udtrukket som rigtige, har du markant forbedret dine chancer for at vinde pr\u00e6mier.
Du fjerner mellem 1 og 16<\/b> forskellige tal for lotto med i alt [BBB]<\/b> tal og en r\u00e6kkel\u00e6ngde p\u00e5 [CCC]<\/b>. Systemet spilles p\u00e5 [AAA]<\/b> r\u00e6kker.

Nedenfor v\u00e6lger du de tal, der skal fjernes fra systemerne, og herefter udskrives r\u00e6kkerne.

Du kan ogs\u00e5 v\u00e6lge at lade en tilf\u00e6ldighedsgenerator v\u00e6lge antallet af tal samt hvilke tal der skal fjernes fra systemerne."; else explanation = "Med dette system kan du spille p\u00e5 [DDD] <\/b>forskellige tal og systemet spilles p\u00e5 [AAA] <\/b>r\u00e6kker. Systemet g\u00e6lder for spil med [BBB] <\/b>tal og en r\u00e6kkel\u00e6ngde p\u00e5 [CCC]. <\/b>

Nedenfor v\u00e6lger du de tal, der skal v\u00e6re med i systemet, og s\u00e5 udskrives systemn\u00f8glen."; explanation = explanation.replace('[AAA]', this.systems[index].rowCount.join('/')); explanation = explanation.replace('[BBB]', this.numberSpace[this.currentNumberSpace]); explanation = explanation.replace('[CCC]', this.numbersDrawn[this.currentNumbersDrawn]); explanation = explanation.replace('[DDD]', this.systems[index].minNumbersNeeded === this.systems[index].maxNumbersNeeded ? this.systems[index].minNumbersNeeded : 'mellem ' + this.systems[index].minNumbersNeeded + ' og ' + this.systems[index].maxNumbersNeeded); $('#explanation').html(explanation); }; this.isSystemVisible = function(system) { return LottoSystems.numbersDrawnValue() == system.numbersPerRow && (system.numberSpace === null || $.inArray(this.numberSpaceValue(), system.numberSpace) != -1); }; this.printSystems = function(div, prefix, title) { var html = ''; html += ''; html += ''; html += ''; html += ''; var systems = []; for (var i = 0; i < this.systems.length; i++) { var system = this.systems[i]; if (prefix.test(system.name) && this.isSystemVisible(system)) { systems.push(i); } } var c = 0; while ((systems.length % 3) != 0) systems.push(-1); for (var i = 0; i < systems.length; ) { html += ''; for (var j = 0; j < 3; j++) { if (systems[i] == -1) { html += ''; } else { var system = this.systems[systems[i]]; html += ''; } i++; } html += ''; } if (systems.length == 0) { html += ''; } html += '
'+title+'
' + system.displayName + '
'; div.html(html); }; this.updateNumberPicker = function() { var html = ''; var maxnumber = this.numberSpace[this.currentNumberSpace]; for (var i = 1; i <= maxnumber; i++) { if (i != 1 && (i-1)%10 == 0) html += '
'; var ispicked = this.isNumberPicked(i); html += ''+i+''; } $('#numberpicker').html(html); }; this.showSystemVersion = 1; this.isSystemShown = false; this.showSystemDefault = function(init, seed) { this.showSystem(this.numbersDrawn[this.currentNumbersDrawn], this.numberSpace[this.currentNumberSpace], this.systems[this.currentSystem].name, this.numbersPicked, seed, current_filename(), $('#lottosystem'), init); }; this.showSystem = function(numbersdrawn, numberspace, sys, numbers, seed, filename, div, init) { if (!this.loaded) return; if (init == undefined) init = false; LottoSystems.isSystemShown = true; this.showSystemVersion++; var req = this.showSystemVersion; div.html('
'); $.get('systemajax.php', { 'numbersdrawn': numbersdrawn, 'numberspace': numberspace, 'rowcount': this.getCurrentRowCount(), 'data': sys, 'numbers': numbers.join(','), 'seed': seed, 'file': filename, 'init': init?1:0}, function(data) { if (LottoSystems.showSystemVersion != req) return; div.html(data); var randomize = $('#randomize'); if (LottoSystems.systems[LottoSystems.currentSystem].name.substr(0, 1) != 'M') { if (LottoSystems.isRandomized()) { randomize.html('     '); } else { var buttonText = "Randomiser"; if (/^RAND-/.test(LottoSystems.systems[LottoSystems.currentSystem].name)) buttonText = "Randomiser igen"; randomize.html(''); } } //$.scrollTo('#lottosystem', {duration:0}); //setTimeout(function(){$.scrollTo('#lottosystem', {duration:0, offset: {top:-57, left:0}});}, 10); }); }; this.hideSystem = function(div) { this.showSystemVersion++; LottoSystems.isSystemShown = false; div.empty() var randomize = $('#randomize'); randomize.empty(); }; this.chooseNumbersRandomly = function() { while (this.numbersPicked.length > 0) { this.toggleNumber(this.numbersPicked[0]); } var system = this.systems[this.currentSystem]; console.log('system', system); var numberCount = Math.floor(Math.random() * (system.maxNumbersNeeded - system.minNumbersNeeded + 1)) + system.minNumbersNeeded; var allowedNumbers = []; for (var i = 1; i <= this.getCurrentNumberSpace(); i++) allowedNumbers.push(i); console.log('allowed numbers', allowedNumbers); for (var i = 0; i < numberCount; i++) { var pickedIndex = Math.floor(Math.random() * allowedNumbers.length); var number = allowedNumbers[pickedIndex]; allowedNumbers.splice(pickedIndex, 1); console.log('picking number', number, 'remaining list', allowedNumbers); this.toggleNumber(number); } }; this.randomizeSystem = function(nums) { if (this.isSystemShown == false) return; if (/^RAND-/.test(this.systems[this.currentSystem].name)) { // Calling showSystem will automatically get new numbers. } else { if (nums == undefined) { for (var i = 0; i < this.numbersPicked.length; i++) { var r = Math.floor(Math.random()*(this.numbersPicked.length - i)) + i; if (r == i) continue; var temp = this.numbersPicked[i]; this.numbersPicked[i] = this.numbersPicked[r]; this.numbersPicked[r] = temp; } } else { this.numbersPicked = nums; } $('#randomizebutton').disableInput(); $('#randomizebutton').val('Randomiserer...'); } this.showSystemDefault(nums != undefined); }; this.unrandomizeSystem = function() { if (this.isSystemShown == false) return; $('#randomize').empty(); this.numbersPicked.sort(function(a,b){return a-b;}); this.showSystemDefault(); }; this.isRandomized = function() { for (var i = 0; i < this.numbersPicked.length - 1; i++) if (this.numbersPicked[i] > this.numbersPicked[i+1]) return true; return false; }; this.toggleNumber = function(num) { var removed = false; for (var i = 0; i < this.numbersPicked.length; i++) { if (this.numbersPicked[i] == num) { this.numbersPicked.splice(i, 1); removed = true; break; } } if (!removed) { this.numbersPicked.push(num); } if (removed) { $('#picknumber'+num).removeClass('greennum'); $('#picknumber'+num).addClass('graynum'); } else { $('#picknumber'+num).removeClass('graynum'); $('#picknumber'+num).addClass('greennum'); } var minNumbersNeeded = this.systems[this.currentSystem].minNumbersNeeded; var maxNumbersNeeded = this.systems[this.currentSystem].maxNumbersNeeded; var numbersNeeded = minNumbersNeeded; if (minNumbersNeeded !== maxNumbersNeeded) { $('#numchooseleft').html('Vælg mellem ' + minNumbersNeeded + ' og ' + maxNumbersNeeded + ' tal'); if (this.numbersPicked.length < minNumbersNeeded || this.numbersPicked.length > maxNumbersNeeded) { this.hideSystem($('#lottosystem')); } else { this.numbersPicked.sort(function(a,b){return a-b;}); if (this.systems[this.currentSystem].allowed) { this.showSystemDefault(); } } } else if (this.numbersPicked.length == 0) { this.hideSystem($('#lottosystem')); $('#numchooseleft').html('Klik på de ' + (numbersNeeded - this.numbersPicked.length) + ' tal, der skal være med i systemet'); } else if (this.numbersPicked.length < numbersNeeded) { this.hideSystem($('#lottosystem')); $('#numchooseleft').html('Du mangler at vælge ' + (numbersNeeded - this.numbersPicked.length) + ' tal til systemet'); } else if (this.numbersPicked.length == numbersNeeded) { $('#numchooseleft').empty(); this.numbersPicked.sort(function(a,b){return a-b;}); if (this.systems[this.currentSystem].allowed) { this.showSystemDefault(); } } else { this.hideSystem($('#lottosystem')); $('#numchooseleft').html('Du skal fravælge ' + -(numbersNeeded - this.numbersPicked.length) + ' tal'); } }; this.updateNumbersNeeded = function() { this.toggleNumber(1); this.toggleNumber(1); }; this.updateRowCountChooser = function() { if (this.systems[this.currentSystem].rowCount.length > 1) { $('#rowCountList').empty(); $.each(this.systems[this.currentSystem].rowCount, function (i, item) { $('#rowCountList').append($('