How to repeat a function not continously but every 10 seconds? - javascript

I have this function which I use in Chrome Console. My question is how to edit the code so that this is executes every 10 seconds.
Thank you
var minValue = 1E-8,
maxLoss = 10000000000000,
aimedProfit = 10,
maxOps = 500000000000000,
endResult = 0,
ops = 0,
bet = function (a, b, c) {
var seed = window.document.getElementById('next_client_seed').value;
$.get("?op=double_your_btc&m=" + (b ? "lo" : "hi") + "&stake=" + a + "&multiplier=2&jackpot=0&client_seed=" + seed, function (d) {
d = d.split(":");
$("#balance").html(d[3]);
c(a, b, "w" === d[1])
})
}, martingale = function (a, b, c) {
c || a >= maxLoss && 0 !== maxLoss ? (b = !b, newValue = minValue) : newValue = 2 * a;
endResult = c ? endResult + a : endResult - a;
console.log((c ? "+" : "-") + a);
ops++;
(ops < maxOps || 0 === maxOps) && (endResult < aimedProfit || 0 === aimedProfit) ? bet(newValue, b, martingale) :
(console.log("Martingale finished in " + ops + " operations!"), console.log("Result: " + endResult))
};
martingale(minValue, !1, !1);

You can use either setTimeout or setInterval.
With setInterval your code will look as follows:
var myFunction = function () {
var minValue = 1E-8,
maxLoss = 10000000000000,
aimedProfit = 10,
maxOps = 500000000000000,
endResult = 0,
ops = 0,
bet = function (a, b, c) {
var seed = window.document.getElementById('next_client_seed').value;
$.get("?op=double_your_btc&m=" + (b ? "lo" : "hi") + "&stake=" + a + "&multiplier=2&jackpot=0&client_seed=" + seed, function (d) {
d = d.split(":");
$("#balance").html(d[3]);
c(a, b, "w" === d[1])
})
}, martingale = function (a, b, c) {
c || a >= maxLoss && 0 !== maxLoss ? (b = !b, newValue = minValue) : newValue = 2 * a;
endResult = c ? endResult + a : endResult - a;
console.log((c ? "+" : "-") + a);
ops++;
(ops < maxOps || 0 === maxOps) && (endResult < aimedProfit || 0 === aimedProfit) ? bet(newValue, b, martingale) :
(console.log("Martingale finished in " + ops + " operations!"), console.log("Result: " + endResult))
};
martingale(minValue, !1, !1);
};
setInterval(myFunction, 10000);

Try:
setInterval(funcion(){
martingale(minValue, !1, !1);
}, 10000);

Related

How to get String output as in single quote in javascript

Advance thanks, Question looks like simple but i could not able to find the solution.
function sumStrings(a, b)
{
return +a + +b;
}
sumStrings('1','2') //=>3
Expected output
sumStrings('1','2') // => '3'
After addition, add ' to beginning and end.
function sumStrings(a, b){
return "'" + (Number(a) + Number(b)) + "'";
}
console.log(sumStrings('1','2'));
function sumStrings(a, b) {
// Separate decimal part here
var pointa = a.indexOf(".");
var pointb = b.indexOf(".");
var deca = pointa != -1 ? a.substring(pointa + 1) : "0";
var decb = pointb != -1 ? b.substring(pointb + 1) : "0";
if (deca.length < decb.length)
deca += (Math.pow(10, decb.length - deca.length)).toString().substring(1);
else
decb += (Math.pow(10, deca.length - decb.length)).toString().substring(1);
var inta = pointa != -1 ? a.substring(0, pointa) : a;
var intb = pointb != -1 ? b.substring(0, pointb) : b;
// console.log(deca + " " + decb);
var decc = addBigInt(deca, decb);
var intc = addBigInt(inta, intb);
if (decc.length > deca.length) {
intc = addBigInt(intc, "1");
decc = decc.substring(1);
}
var lastZero = decc.length - 1;
while (lastZero >= 0 && decc[lastZero] == "0") {
lastZero--;
}
if (lastZero >= 0)
return intc + "." + decc.substring(0, lastZero + 1);
else
return intc;
}
function addBigInt(a, b) {
var inda = a.length - 1;
var indb = b.length - 1;
var c = [];
const zero = "0".charCodeAt(0);
var carry = 0;
var sum = 0;
while (inda >= 0 && indb >= 0) {
var d1 = a.charCodeAt(inda--) - zero;
var d2 = b.charCodeAt(indb--) - zero;
sum = (d1 + d2 + carry);
carry = Math.floor(sum / 10);
sum %= 10;
c.unshift(sum);
}
if (inda >= 0) {
while (carry && inda >= 0) {
sum = a.charCodeAt(inda--) - zero + carry;
c.unshift(sum % 10);
carry = Math.floor(sum / 10);
}
c.unshift(a.substring(0, inda + !carry));
} else {
while (carry && indb >= 0) {
sum = b.charCodeAt(indb--) - zero + carry;
c.unshift(sum % 10);
carry = Math.floor(sum / 10);
}
c.unshift(b.substring(0, indb + !carry));
}
if (carry)
c.unshift(carry);
return c.join("");
}
console.log(sumStrings("1","2"));
console.log(sumStrings("800","9567"));
console.log(sumStrings("99.1","1"));
console.log(sumStrings("00103","08567"));
console.log(sumStrings("50095301248058391139327916261.5","81055900096023504197206408605"));
If you want to escape the single quote, you can try to add a backslash before the single quote.
i.e.
var x = '\'5\'';
With the new template literal you can try this:
a=`'5'`;
console.log(a);

error in loader: JSON Parse error: Invalid number located in jquery

I am having trouble getting a page to load because the js loader is being effected by an error in query JSON parse.
This is the error in noted by Safari.
error in loader: JSON Parse error: Invalid number at line 2618: http://localhost:8888/iicode/jquery-1.11.2.min.js
here is a snippet of the code at line 2618, which has the asterix.
var vc = m.now(), wc = /\?/, xc = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
m.parseJSON = function(b) {
if (a.JSON && a.JSON.parse)
**return a.JSON.parse(b + "");**
var c, d = null, e = m.trim(b + "");
return e&&!m.trim(e.replace(xc, function(a, b, e, f) {
return c && b && (d = 0), 0 === d ? a : (c = e || b, d+=!f-!e, "")
})) ? Function("return " + e)() : m.error("Invalid JSON: " + b)
}, m.parseXML = function(b) {
var c, d;
if (!b || "string" != typeof b)
return null;
try {
a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b))
} catch (e) {
c = void 0
}
return c && c.documentElement&&!c.getElementsByTagName("parsererror").length || m.error("Invalid XML: " + b), c
};
Here is the the first few lines of the js loader that the error is disabling, and I have no idea why. Safari highlighted the part that I asterix.
(function(window, jQuery) {
var namespace = 'de.kubikfoto', engine = null, args = {}, jsonFiles = {}, xmlFiles = {}, filesToLoad = 1, oldloadXML = null, oldloadJSON = null;
function logerror(errortext) {
if (typeof console === "object" && typeof console.error === "function") {
**console.error("error in loader: " + errortext)**
}
}
Any help would be appreciated my website is currently at a standstill.
As some have noted a potential problem with the Ajax, here is the call.
the ajax call I found was this : v[d](k[d]);
if (i = Mc(Ic, k, b, v)) {
v.readyState = 1, h && n.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function() {
v.abort("timeout")
}, k.timeout));
try {
t = 1, i.send(r, x)
} catch (w) {
if (!(2 > t))
throw w;
x( - 1, w)
}
} else
x( - 1, "No Transport");
function x(a, b, c, d) {
var j, r, s, u, w, x = b;
2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Oc(k, v, c)), u = Pc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (m.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (m.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j=!s)) : (s = x, (a ||!x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && n.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r: s]), p.fireWith(l, [v, x]), h && (n.trigger("ajaxComplete", [v, k]), --m.active || m.event.trigger("ajaxStop")))
}

trailing zeros with comma functionality using php

Hi I've code in javascript which is working fine but same functionality I want in php language I find different sources on the internet but didn't get successes.
Javascript Code:
Number.prototype.formatMoney = function(c, d, t){
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d ? "." : d,
t = t ? "," : t,
s = n < 0 ? "-" : "",
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
function trailingZerosWithComma() {
var costAmount = $("#costAmount").val();
if(costAmount != "") {
var costAmountReplace = parseFloat(costAmount.replace(/\,/g,''));
$("#costAmount").val((costAmountReplace).formatMoney(2, '.', ','));
}
}
<input type="text" name="costAmount" id="costAmount" onblur="trailingZerosWithComma();">
But I need this in php
Number.prototype.formatMoney = function(c, d, t){
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d ? "." : d,
t = t ? "," : t,
s = n < 0 ? "-" : "",
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
var costAmountReplace = parseFloat(costAmount.replace(/\,/g,''));

Jquery Countdown... time is running out

I am trying to change the end of the countdown so it displays a countdown till the end date of 22nd of May 2014 on the below countdown, any idea how I do that?
Here is the webiste nordicitsourcing.com you will see it currently is counting down to a date I cannot even seem to find
Please help
Code here:
(function ($) {
function Countdown() {
this.regional = [];
this.regional[''] = {
labels: ['Years', 'Months', 'Weeks', 'Days', 'Hours', 'Minutes', 'Seconds'],
labels1: ['Year', 'Month', 'Week', 'Day', 'Hour', 'Minute', 'Second'],
compactLabels: ['y', 'm', 'w', 'd'],
whichLabels: null,
digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
timeSeparator: ':',
isRTL: false
};
this._defaults = {
until: null,
since: null,
timezone: null,
serverSync: null,
format: 'dHMS',
layout: '',
compact: false,
significant: 0,
description: '',
expiryUrl: '',
expiryText: '',
alwaysExpire: false,
onExpiry: null,
onTick: null,
tickInterval: 1
};
$.extend(this._defaults, this.regional['']);
this._serverSyncs = [];
var c = (typeof Date.now == 'function' ? Date.now : function () {
return new Date().getTime()
});
var d = (window.performance && typeof window.performance.now == 'function');
function timerCallBack(a) {
var b = (a < 1e12 ? (d ? (performance.now() + performance.timing.navigationStart) : c()) : a || c());
if (b - f >= 1000) {
x._updateTargets();
f = b
}
e(timerCallBack)
}
var e = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || null;
var f = 0;
if (!e || $.noRequestAnimationFrame) {
$.noRequestAnimationFrame = null;
setInterval(function () {
x._updateTargets()
}, 980)
} else {
f = window.animationStartTime || window.webkitAnimationStartTime || window.mozAnimationStartTime || window.oAnimationStartTime || window.msAnimationStartTime || c();
e(timerCallBack)
}
}
var Y = 0;
var O = 1;
var W = 2;
var D = 3;
var H = 4;
var M = 5;
var S = 6;
$.extend(Countdown.prototype, {
markerClassName: 'hasCountdown',
propertyName: 'countdown',
_rtlClass: 'countdown_rtl',
_sectionClass: 'countdown_section',
_amountClass: 'countdown_amount',
_rowClass: 'countdown_row',
_holdingClass: 'countdown_holding',
_showClass: 'countdown_show',
_descrClass: 'countdown_descr',
_timerTargets: [],
setDefaults: function (a) {
this._resetExtraLabels(this._defaults, a);
$.extend(this._defaults, a || {})
},
UTCDate: function (a, b, c, e, f, g, h, i) {
if (typeof b == 'object' && b.constructor == Date) {
i = b.getMilliseconds();
h = b.getSeconds();
g = b.getMinutes();
f = b.getHours();
e = b.getDate();
c = b.getMonth();
b = b.getFullYear()
}
var d = new Date();
d.setUTCFullYear(b);
d.setUTCDate(1);
d.setUTCMonth(c || 0);
d.setUTCDate(e || 1);
d.setUTCHours(f || 0);
d.setUTCMinutes((g || 0) - (Math.abs(a) < 30 ? a * 60 : a));
d.setUTCSeconds(h || 0);
d.setUTCMilliseconds(i || 0);
return d
},
periodsToSeconds: function (a) {
return a[0] * 31557600 + a[1] * 2629800 + a[2] * 604800 + a[3] * 86400 + a[4] * 3600 + a[5] * 60 + a[6]
},
_attachPlugin: function (a, b) {
a = $(a);
if (a.hasClass(this.markerClassName)) {
return
}
var c = {
options: $.extend({}, this._defaults),
_periods: [0, 0, 0, 0, 0, 0, 0]
};
a.addClass(this.markerClassName).data(this.propertyName, c);
this._optionPlugin(a, b)
},
_addTarget: function (a) {
if (!this._hasTarget(a)) {
this._timerTargets.push(a)
}
},
_hasTarget: function (a) {
return ($.inArray(a, this._timerTargets) > -1)
},
_removeTarget: function (b) {
this._timerTargets = $.map(this._timerTargets, function (a) {
return (a == b ? null : a)
})
},
_updateTargets: function () {
for (var i = this._timerTargets.length - 1; i >= 0; i--) {
this._updateCountdown(this._timerTargets[i])
}
},
_optionPlugin: function (a, b, c) {
a = $(a);
var d = a.data(this.propertyName);
if (!b || (typeof b == 'string' && c == null)) {
var e = b;
b = (d || {}).options;
return (b && e ? b[e] : b)
}
if (!a.hasClass(this.markerClassName)) {
return
}
b = b || {};
if (typeof b == 'string') {
var e = b;
b = {};
b[e] = c
}
if (b.layout) {
b.layout = b.layout.replace(/</g, '<').replace(/>/g, '>')
}
this._resetExtraLabels(d.options, b);
var f = (d.options.timezone != b.timezone);
$.extend(d.options, b);
this._adjustSettings(a, d, b.until != null || b.since != null || f);
var g = new Date();
if ((d._since && d._since < g) || (d._until && d._until > g)) {
this._addTarget(a[0])
}
this._updateCountdown(a, d)
},
_updateCountdown: function (a, b) {
var c = $(a);
b = b || c.data(this.propertyName);
if (!b) {
return
}
c.html(this._generateHTML(b)).toggleClass(this._rtlClass, b.options.isRTL);
if ($.isFunction(b.options.onTick)) {
var d = b._hold != 'lap' ? b._periods : this._calculatePeriods(b, b._show, b.options.significant, new Date());
if (b.options.tickInterval == 1 || this.periodsToSeconds(d) % b.options.tickInterval == 0) {
b.options.onTick.apply(a, [d])
}
}
var e = b._hold != 'pause' && (b._since ? b._now.getTime() < b._since.getTime() : b._now.getTime() >= b._until.getTime());
if (e && !b._expiring) {
b._expiring = true;
if (this._hasTarget(a) || b.options.alwaysExpire) {
this._removeTarget(a);
if ($.isFunction(b.options.onExpiry)) {
b.options.onExpiry.apply(a, [])
}
if (b.options.expiryText) {
var f = b.options.layout;
b.options.layout = b.options.expiryText;
this._updateCountdown(a, b);
b.options.layout = f
}
if (b.options.expiryUrl) {
window.location = b.options.expiryUrl
}
}
b._expiring = false
} else if (b._hold == 'pause') {
this._removeTarget(a)
}
c.data(this.propertyName, b)
},
_resetExtraLabels: function (a, b) {
var c = false;
for (var n in b) {
if (n != 'whichLabels' && n.match(/[Ll]abels/)) {
c = true;
break
}
}
if (c) {
for (var n in a) {
if (n.match(/[Ll]abels[02-9]|compactLabels1/)) {
a[n] = null
}
}
}
},
_adjustSettings: function (a, b, c) {
var d;
var e = 0;
var f = null;
for (var i = 0; i < this._serverSyncs.length; i++) {
if (this._serverSyncs[i][0] == b.options.serverSync) {
f = this._serverSyncs[i][1];
break
}
}
if (f != null) {
e = (b.options.serverSync ? f : 0);
d = new Date()
} else {
var g = ($.isFunction(b.options.serverSync) ? b.options.serverSync.apply(a, []) : null);
d = new Date();
e = (g ? d.getTime() - g.getTime() : 0);
this._serverSyncs.push([b.options.serverSync, e])
}
var h = b.options.timezone;
h = (h == null ? -d.getTimezoneOffset() : h);
if (c || (!c && b._until == null && b._since == null)) {
b._since = b.options.since;
if (b._since != null) {
b._since = this.UTCDate(h, this._determineTime(b._since, null));
if (b._since && e) {
b._since.setMilliseconds(b._since.getMilliseconds() + e)
}
}
b._until = this.UTCDate(h, this._determineTime(b.options.until, d));
if (e) {
b._until.setMilliseconds(b._until.getMilliseconds() + e)
}
}
b._show = this._determineShow(b)
},
_destroyPlugin: function (a) {
a = $(a);
if (!a.hasClass(this.markerClassName)) {
return
}
this._removeTarget(a[0]);
a.removeClass(this.markerClassName).empty().removeData(this.propertyName)
},
_pausePlugin: function (a) {
this._hold(a, 'pause')
},
_lapPlugin: function (a) {
this._hold(a, 'lap')
},
_resumePlugin: function (a) {
this._hold(a, null)
},
_hold: function (a, b) {
var c = $.data(a, this.propertyName);
if (c) {
if (c._hold == 'pause' && !b) {
c._periods = c._savePeriods;
var d = (c._since ? '-' : '+');
c[c._since ? '_since' : '_until'] = this._determineTime(d + c._periods[0] + 'y' + d + c._periods[1] + 'o' + d + c._periods[2] + 'w' + d + c._periods[3] + 'd' + d + c._periods[4] + 'h' + d + c._periods[5] + 'm' + d + c._periods[6] + 's');
this._addTarget(a)
}
c._hold = b;
c._savePeriods = (b == 'pause' ? c._periods : null);
$.data(a, this.propertyName, c);
this._updateCountdown(a, c)
}
},
_getTimesPlugin: function (a) {
var b = $.data(a, this.propertyName);
return (!b ? null : (b._hold == 'pause' ? b._savePeriods : (!b._hold ? b._periods : this._calculatePeriods(b, b._show, b.options.significant, new Date()))))
},
_determineTime: function (k, l) {
var m = function (a) {
var b = new Date();
b.setTime(b.getTime() + a * 1000);
return b
};
var n = function (a) {
a = a.toLowerCase();
var b = new Date();
var c = b.getFullYear();
var d = b.getMonth();
var e = b.getDate();
var f = b.getHours();
var g = b.getMinutes();
var h = b.getSeconds();
var i = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;
var j = i.exec(a);
while (j) {
switch (j[2] || 's') {
case 's':
h += parseInt(j[1], 10);
break;
case 'm':
g += parseInt(j[1], 10);
break;
case 'h':
f += parseInt(j[1], 10);
break;
case 'd':
e += parseInt(j[1], 10);
break;
case 'w':
e += parseInt(j[1], 10) * 7;
break;
case 'o':
d += parseInt(j[1], 10);
e = Math.min(e, x._getDaysInMonth(c, d));
break;
case 'y':
c += parseInt(j[1], 10);
e = Math.min(e, x._getDaysInMonth(c, d));
break
}
j = i.exec(a)
}
return new Date(c, d, e, f, g, h, 0)
};
var o = (k == null ? l : (typeof k == 'string' ? n(k) : (typeof k == 'number' ? m(k) : k)));
if (o) o.setMilliseconds(0);
return o
},
_getDaysInMonth: function (a, b) {
return 32 - new Date(a, b, 32).getDate()
},
_normalLabels: function (a) {
return a
},
_generateHTML: function (c) {
var d = this;
c._periods = (c._hold ? c._periods : this._calculatePeriods(c, c._show, c.options.significant, new Date()));
var e = false;
var f = 0;
var g = c.options.significant;
var h = $.extend({}, c._show);
for (var i = Y; i <= S; i++) {
e |= (c._show[i] == '?' && c._periods[i] > 0);
h[i] = (c._show[i] == '?' && !e ? null : c._show[i]);
f += (h[i] ? 1 : 0);
g -= (c._periods[i] > 0 ? 1 : 0)
}
var j = [false, false, false, false, false, false, false];
for (var i = S; i >= Y; i--) {
if (c._show[i]) {
if (c._periods[i]) {
j[i] = true
} else {
j[i] = g > 0;
g--
}
}
}
var k = (c.options.compact ? c.options.compactLabels : c.options.labels);
var l = c.options.whichLabels || this._normalLabels;
var m = function (a) {
var b = c.options['compactLabels' + l(c._periods[a])];
return (h[a] ? d._translateDigits(c, c._periods[a]) + (b ? b[a] : k[a]) + ' ' : '')
};
var n = function (a) {
var b = c.options['labels' + l(c._periods[a])];
return ((!c.options.significant && h[a]) || (c.options.significant && j[a]) ? '<span class="' + x._sectionClass + '">' + '<span class="' + x._amountClass + '">' + d._translateDigits(c, c._periods[a]) + '</span><br/>' + (b ? b[a] : k[a]) + '</span>' : '')
};
return (c.options.layout ? this._buildLayout(c, h, c.options.layout, c.options.compact, c.options.significant, j) : ((c.options.compact ? '<span class="' + this._rowClass + ' ' + this._amountClass + (c._hold ? ' ' + this._holdingClass : '') + '">' + m(Y) + m(O) + m(W) + m(D) + (h[H] ? this._minDigits(c, c._periods[H], 2) : '') + (h[M] ? (h[H] ? c.options.timeSeparator : '') + this._minDigits(c, c._periods[M], 2) : '') + (h[S] ? (h[H] || h[M] ? c.options.timeSeparator : '') + this._minDigits(c, c._periods[S], 2) : '') : '<span class="' + this._rowClass + ' ' + this._showClass + (c.options.significant || f) + (c._hold ? ' ' + this._holdingClass : '') + '">' + n(Y) + n(O) + n(W) + n(D) + n(H) + n(M) + n(S)) + '</span>' + (c.options.description ? '<span class="' + this._rowClass + ' ' + this._descrClass + '">' + c.options.description + '</span>' : '')))
},
_buildLayout: function (c, d, e, f, g, h) {
var j = c.options[f ? 'compactLabels' : 'labels'];
var k = c.options.whichLabels || this._normalLabels;
var l = function (a) {
return (c.options[(f ? 'compactLabels' : 'labels') + k(c._periods[a])] || j)[a]
};
var m = function (a, b) {
return c.options.digits[Math.floor(a / b) % 10]
};
var o = {
desc: c.options.description,
sep: c.options.timeSeparator,
yl: l(Y),
yn: this._minDigits(c, c._periods[Y], 1),
ynn: this._minDigits(c, c._periods[Y], 2),
ynnn: this._minDigits(c, c._periods[Y], 3),
y1: m(c._periods[Y], 1),
y10: m(c._periods[Y], 10),
y100: m(c._periods[Y], 100),
y1000: m(c._periods[Y], 1000),
ol: l(O),
on: this._minDigits(c, c._periods[O], 1),
onn: this._minDigits(c, c._periods[O], 2),
onnn: this._minDigits(c, c._periods[O], 3),
o1: m(c._periods[O], 1),
o10: m(c._periods[O], 10),
o100: m(c._periods[O], 100),
o1000: m(c._periods[O], 1000),
wl: l(W),
wn: this._minDigits(c, c._periods[W], 1),
wnn: this._minDigits(c, c._periods[W], 2),
wnnn: this._minDigits(c, c._periods[W], 3),
w1: m(c._periods[W], 1),
w10: m(c._periods[W], 10),
w100: m(c._periods[W], 100),
w1000: m(c._periods[W], 1000),
dl: l(D),
dn: this._minDigits(c, c._periods[D], 1),
dnn: this._minDigits(c, c._periods[D], 2),
dnnn: this._minDigits(c, c._periods[D], 3),
d1: m(c._periods[D], 1),
d10: m(c._periods[D], 10),
d100: m(c._periods[D], 100),
d1000: m(c._periods[D], 1000),
hl: l(H),
hn: this._minDigits(c, c._periods[H], 1),
hnn: this._minDigits(c, c._periods[H], 2),
hnnn: this._minDigits(c, c._periods[H], 3),
h1: m(c._periods[H], 1),
h10: m(c._periods[H], 10),
h100: m(c._periods[H], 100),
h1000: m(c._periods[H], 1000),
ml: l(M),
mn: this._minDigits(c, c._periods[M], 1),
mnn: this._minDigits(c, c._periods[M], 2),
mnnn: this._minDigits(c, c._periods[M], 3),
m1: m(c._periods[M], 1),
m10: m(c._periods[M], 10),
m100: m(c._periods[M], 100),
m1000: m(c._periods[M], 1000),
sl: l(S),
sn: this._minDigits(c, c._periods[S], 1),
snn: this._minDigits(c, c._periods[S], 2),
snnn: this._minDigits(c, c._periods[S], 3),
s1: m(c._periods[S], 1),
s10: m(c._periods[S], 10),
s100: m(c._periods[S], 100),
s1000: m(c._periods[S], 1000)
};
var p = e;
for (var i = Y; i <= S; i++) {
var q = 'yowdhms'.charAt(i);
var r = new RegExp('\\{' + q + '<\\}([\\s\\S]*)\\{' + q + '>\\}', 'g');
p = p.replace(r, ((!g && d[i]) || (g && h[i]) ? '$1' : ''))
}
$.each(o, function (n, v) {
var a = new RegExp('\\{' + n + '\\}', 'g');
p = p.replace(a, v)
});
return p
},
_minDigits: function (a, b, c) {
b = '' + b;
if (b.length >= c) {
return this._translateDigits(a, b)
}
b = '0000000000' + b;
return this._translateDigits(a, b.substr(b.length - c))
},
_translateDigits: function (b, c) {
return ('' + c).replace(/[0-9]/g, function (a) {
return b.options.digits[a]
})
},
_determineShow: function (a) {
var b = a.options.format;
var c = [];
c[Y] = (b.match('y') ? '?' : (b.match('Y') ? '!' : null));
c[O] = (b.match('o') ? '?' : (b.match('O') ? '!' : null));
c[W] = (b.match('w') ? '?' : (b.match('W') ? '!' : null));
c[D] = (b.match('d') ? '?' : (b.match('D') ? '!' : null));
c[H] = (b.match('h') ? '?' : (b.match('H') ? '!' : null));
c[M] = (b.match('m') ? '?' : (b.match('M') ? '!' : null));
c[S] = (b.match('s') ? '?' : (b.match('S') ? '!' : null));
return c
},
_calculatePeriods: function (c, d, e, f) {
c._now = f;
c._now.setMilliseconds(0);
var g = new Date(c._now.getTime());
if (c._since) {
if (f.getTime() < c._since.getTime()) {
c._now = f = g
} else {
f = c._since
}
} else {
g.setTime(c._until.getTime());
if (f.getTime() > c._until.getTime()) {
c._now = f = g
}
}
var h = [0, 0, 0, 0, 0, 0, 0];
if (d[Y] || d[O]) {
var i = x._getDaysInMonth(f.getFullYear(), f.getMonth());
var j = x._getDaysInMonth(g.getFullYear(), g.getMonth());
var k = (g.getDate() == f.getDate() || (g.getDate() >= Math.min(i, j) && f.getDate() >= Math.min(i, j)));
var l = function (a) {
return (a.getHours() * 60 + a.getMinutes()) * 60 + a.getSeconds()
};
var m = Math.max(0, (g.getFullYear() - f.getFullYear()) * 12 + g.getMonth() - f.getMonth() + ((g.getDate() < f.getDate() && !k) || (k && l(g) < l(f)) ? -1 : 0));
h[Y] = (d[Y] ? Math.floor(m / 12) : 0);
h[O] = (d[O] ? m - h[Y] * 12 : 0);
f = new Date(f.getTime());
var n = (f.getDate() == i);
var o = x._getDaysInMonth(f.getFullYear() + h[Y], f.getMonth() + h[O]);
if (f.getDate() > o) {
f.setDate(o)
}
f.setFullYear(f.getFullYear() + h[Y]);
f.setMonth(f.getMonth() + h[O]);
if (n) {
f.setDate(o)
}
}
var p = Math.floor((g.getTime() - f.getTime()) / 1000);
var q = function (a, b) {
h[a] = (d[a] ? Math.floor(p / b) : 0);
p -= h[a] * b
};
q(W, 604800);
q(D, 86400);
q(H, 3600);
q(M, 60);
q(S, 1);
if (p > 0 && !c._since) {
var r = [1, 12, 4.3482, 7, 24, 60, 60];
var s = S;
var t = 1;
for (var u = S; u >= Y; u--) {
if (d[u]) {
if (h[s] >= t) {
h[s] = 0;
p = 1
}
if (p > 0) {
h[u]++;
p = 0;
s = u;
t = 1
}
}
t *= r[u]
}
}
if (e) {
for (var u = Y; u <= S; u++) {
if (e && h[u]) {
e--
} else if (!e) {
h[u] = 0
}
}
}
return h
}
});
var w = ['getTimes'];
function isNotChained(a, b) {
if (a == 'option' && (b.length == 0 || (b.length == 1 && typeof b[0] == 'string'))) {
return true
}
return $.inArray(a, w) > -1
}
$.fn.countdown = function (a) {
var b = Array.prototype.slice.call(arguments, 1);
if (isNotChained(a, b)) {
return x['_' + a + 'Plugin'].apply(x, [this[0]].concat(b))
}
return this.each(function () {
if (typeof a == 'string') {
if (!x['_' + a + 'Plugin']) {
throw 'Unknown command: ' + a;
}
x['_' + a + 'Plugin'].apply(x, [this].concat(b))
} else {
x._attachPlugin(this, a || {})
}
})
};
var x = $.countdown = new Countdown()
})(jQuery);
There is a javascript file called custom.js
Here is the code to find you will see the date you have to modify,
Additional information regarding this plugin can be found http://keith-wood.name/countdown.html
// Countdown //
$('#countdown').countdown({
until: new Date(2014, 10 - 1, 9), // new Date(year, mth - 1, day, hr, min, sec) - date/time to count down to
// or numeric for seconds offset, or string for unit offset(s):
// 'Y' years, 'O' months, 'W' weeks, 'D' days, 'H' hours, 'M' minutes, 'S' seconds
timezone: -4, // The timezone (hours or minutes from GMT) for the target times, or null for client local
layout: '{d<}<div class="span3"><div class="digit-container">{dn}<span class="label-container">{dl}</span></div></div>{d>}{h<}<div class="span3"><div class="digit-container">{hn}<span class="label-container">{hl}</span></div></div>{h>}{m<}<div class="span3"><div class="digit-container">{mn}<span class="label-container">{ml}</span></div></div>{m>}{s<}<div class="span3"><div class="digit-container">{sn}<span class="label-container">{sl}</span></div></div>{s>}',
timeSeparator: '', // Separator for time periods
isRTL: false, // True for right-to-left languages, false for left-to-right
format: 'dHMS', // Format for display - upper case for always, lower case only if non-zero,
// 'Y' years, 'O' months, 'W' weeks, 'D' days, 'H' hours, 'M' minutes, 'S' seconds
alwaysExpire: true, // True to trigger onExpiry even if never counted down
onExpiry: liftOff // Callback when the countdown expires -
// receives no parameters and 'this' is the containing division
});

SO: what does this js mean? I am studying SO source code [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
(some code)(jQuery);
What does this mean?
(function (a) {
function d(g) {
return typeof g == "object" ? g : {
top: g,
left: g
}
}
var b = a.scrollTo = function (g, e, f) {
a(window).scrollTo(g, e, f)
};
b.defaults = {
axis: "xy",
duration: parseFloat(a.fn.jquery) >= 1.3 ? 0 : 1
};
b.window = function () {
return a(window)._scrollable()
};
a.fn._scrollable = function () {
return this.map(function () {
if (!(!this.nodeName || a.inArray(this.nodeName.toLowerCase(), ["iframe", "#document", "html", "body"]) != -1)) return this;
var g = (this.contentWindow || this).document || this.ownerDocument || this;
return a.browser.safari || g.compatMode == "BackCompat" ? g.body : g.documentElement
})
};
a.fn.scrollTo = function (g, e, f) {
if (typeof e == "object") {
f = e;
e = 0
}
if (typeof f == "function") f = {
onAfter: f
};
if (g == "max") g = 9E9;
f = a.extend({}, b.defaults, f);
e = e || f.speed || f.duration;
f.queue = f.queue && f.axis.length > 1;
if (f.queue) e /= 2;
f.offset = d(f.offset);
f.over = d(f.over);
return this._scrollable().each(function () {
function k(w) {
j.animate(r, e, f.easing, w &&
function () {
w.call(this, g, f)
})
}
var h = this,
j = a(h),
i = g,
m, r = {},
u = j.is("html,body");
switch (typeof i) {
case "number":
case "string":
if (/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(i)) {
i =
d(i);
break
}
i = a(i, this);
case "object":
if (i.is || i.style) m = (i = a(i)).offset()
}
a.each(f.axis.split(""), function (w, v) {
var q = v == "x" ? "Left" : "Top",
s = q.toLowerCase(),
y = "scroll" + q,
D = h[y],
H = b.max(h, v);
if (m) {
r[y] = m[s] + (u ? 0 : D - j.offset()[s]);
if (f.margin) {
r[y] -= parseInt(i.css("margin" + q)) || 0;
r[y] -= parseInt(i.css("border" + q + "Width")) || 0
}
r[y] += f.offset[s] || 0;
if (f.over[s]) r[y] += i[v == "x" ? "width" : "height"]() * f.over[s]
} else {
q = i[s];
r[y] = q.slice && q.slice(-1) == "%" ? parseFloat(q) / 100 * H : q
}
if (/^\d+$/.test(r[y])) r[y] = r[y] <= 0 ? 0 : Math.min(r[y], H);
if (!w && f.queue) {
D != r[y] && k(f.onAfterFirst);
delete r[y]
}
});
k(f.onAfter)
}).end()
};
b.max = function (g, e) {
var f = e == "x" ? "Width" : "Height",
k = "scroll" + f;
if (!a(g).is("html,body")) return g[k] - a(g)[f.toLowerCase()]();
f = "client" + f;
var h = g.ownerDocument.documentElement,
j = g.ownerDocument.body;
return Math.max(h[k], j[k]) - Math.min(h[f], j[f])
}
})(jQuery);
It is a closure.
It is a part of your code that can have own variables that will not be shared with the rest of your code.
And the final parenthesis have the parameters passed to this closure.
Like this:
(function (what, howmany){
for (var i = howmany; i--;){
alert(what);
}
})("John",3);
In your example the closure is being calling with jquery object as parameter.
With this you can isolate the execution of this part of your code. It is powerful and must be well know to programming real javascript.
To view more information about closures in javascript see this: http://jibbering.com/faq/notes/closures/

Categories

Resources