var DATE_PART_DAY = 1;
var DATE_PART_MONTH = 2;
var DATE_PART_MON = 4;
var DATE_PART_YEAR = 8;
var DATE_PART_HOUR = 16;
var DATE_PART_MIN = 32;
var DATE_PART_SEC = 64;
var MESSAGE_TYPE_INFO = 1;
var MESSAGE_TYPE_WARNING = 2;
var MESSAGE_TYPE_ERROR = 3;
var _isMessageShown = false;
var _userEventRoles = null;
function callAPI(postData, onResponse, onError)
{
waitMessage(true);
$.ajax({
url: "https://api.ludusmaterials.com/backend/api/index.php",
type: "POST",
data: JSON.stringify(postData),
dataType: 'jsonp',
headers: { 'Content-Type': 'application/json' },
success: function (json)
{
waitMessage(false);
if (json["rc"] != 0)
{
if (json["rc"] == 201)
{
showMessage("Invalid token. Please login again", MESSAGE_TYPE_ERROR, function()
{
execLogout();
});
return;
}
showMessage(json["message"], MESSAGE_TYPE_ERROR, function()
{
if (json["rc"] == 103)
{
gotoHomePage();
}
});
return;
}
if (onResponse)
{
onResponse(json);
}
},
error: function()
{
waitMessage(false);
if (onError)
{
onError(json);
}
showMessage("Unknown error", MESSAGE_TYPE_ERROR);
}
});
}
function waitMessage(isOn)
{
if (isOn)
{
$("#outerCover").show();
}
else
{
$("#outerCover").hide();
}
}
File.prototype.convertToBase64 = function(callback)
{
var reader = new FileReader();
reader.onloadend = function (e)
{
callback(e.target.result, e.target.error);
};
reader.readAsDataURL(this);
};
function readURL(input, targetElement)
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function (e)
{
$(targetElement).attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
String.prototype.replaceAll = function(search, replacement)
{
var target = this;
return target.split(search).join(replacement);
};
String.prototype.format = function()
{
var args = arguments;
return this.replace(/{(\d+)}/g, function(match, number)
{
return typeof args[number] != 'undefined' ? args[number] : match;
});
};
function objectToList(obj)
{
return JSON.stringify(obj);
}
function getObjectPropsCount(obj)
{
return Object.keys(obj).length;
}
function getUrlParams()
{
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value)
{
vars[key] = value;
});
return vars;
}
function htmlEscape(str)
{
return str.replaceAll("\"", """);
}
function formatDateDefault(date)
{
return formatDate(date, DATE_PART_DAY | DATE_PART_MON | DATE_PART_YEAR | DATE_PART_HOUR | DATE_PART_MIN);
}
function formatDate(date, parts)
{
var monthNamesLong = [
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
];
var monthNamesShort = [
"Jan", "Feb", "Mar",
"Apr", "May", "Jun",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"
];
if (typeof date == "string")
{
date = new Date(date);
}
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
var hour = date.getHours();
var min = date.getMinutes();
var sec = date.getSeconds();
var datetime = "";
var needDateSep = false;
var needTimeSep = false;
if (parts & DATE_PART_DAY)
{
if (day < 10) datetime += "0";
datetime += day;
needDateSep = true;
}
if (parts & DATE_PART_MONTH)
{
if (datetime != "") datetime += "-";
datetime += monthNamesLong[monthIndex];
needDateSep = true;
}
if (parts & DATE_PART_MON)
{
if (datetime != "") datetime += "-";
datetime += monthNamesShort[monthIndex];
needDateSep = true;
}
if (parts & DATE_PART_YEAR)
{
if (datetime != "") datetime += "-";
datetime += year;
needDateSep = true;
}
if (parts & DATE_PART_HOUR)
{
if (needDateSep)
{
needDateSep = false;
datetime += " ";
}
if (hour < 10) datetime += "0";
datetime += hour;
needTimeSep = true;
}
if (parts & DATE_PART_MIN)
{
if (needDateSep)
{
needDateSep = false;
datetime += " ";
}
if (needTimeSep) datetime += ":";
if (min < 10) datetime += "0";
datetime += min;
needTimeSep = true;
}
if (parts & DATE_PART_SEC)
{
if (needDateSep) datetime += " ";
if (needTimeSep) datetime += ":";
if (sec < 10) datetime += "0";
datetime += sec;
}
return datetime;
}
function isMessageShown()
{
return _isMessageShown;
}
function showMessage(message, type, onDismiss)
{
var msg = "";
var errType = "none";
_isMessageShown = true;
if (type == MESSAGE_TYPE_INFO)
{
errType = "info";
}
else if (type == MESSAGE_TYPE_WARNING)
{
errType = "warning";
}
else if (type == MESSAGE_TYPE_ERROR)
{
msg = "Error: ";
errType = "error";
}
msg += message.replace(/\n/g, "
");
html = '