Hacked By AnonymousFox
home/missmand/public_html/gameapp/js/Front.js 0000644 00000011003 15200107137 0015254 0 ustar 00
//(FRONT-SIDE only)
//avoid propagation of any input
function KeepEvents(elem) {
//Stop propagation of common events
elem.mouseup(function (e) {
e.stopPropagation();
});
elem.mousedown(function (e) {
e.stopPropagation();
});
elem.click(function (e) {
e.stopPropagation();
});
elem.keydown(function (e) {
e.stopPropagation();
});
elem.keyup(function (e) {
e.stopPropagation();
});
}
//Get int id of a dom elem with prefix
function GetElemId(elem, idPrefix) {
var id = elem.attr('id');
if (typeof(id) == 'undefined') return -1;
id = parseInt(id.substring((idPrefix).length));
if (isNaN(id)) return -1;
return id;
}
//Convert form to object
function GetObject(form)
{
var elems = form.find('input[type!=submit],select,textarea');
var array = {};
elems.each(function()
{
var elem = $(this);
var name = elem.attr('name');
var val = GetValue(elem);
if (typeof(name) != 'undefined' && typeof(val) != 'undefined')
array[name] = val;
});
return array;
}
function GetValue(elem)
{
if (elem.is('[type=checkbox]'))
return elem.prop('checked') ? '1':'0';
else if (elem.is('[type=radio]'))
{
if (elem.is(':checked'))
return elem.val();
}
else
return elem.val();
}
function GetValues(elems)
{
var vals = [];
elems.each(function()
{
var elem = $(this);
if (elem.is('[type=checkbox]') || elem.is('[type=radio]'))
{
if (elem.is(':checked'))
vals.push(elem.val());
}
else
vals.push(elem.val());
});
return vals;
}
function SetValue(elem, val)
{
if (elem.is('[type=checkbox]') || elem.is('[type=radio]'))
elem.prop('checked', val);
else
elem.val(val);
}
function SetValues(elems, vals)
{
for (var i = 0; i < elems.length; i++)
{
var elem = elems.eq(i);
if (elem.is('[type=checkbox]') || elem.is('[type=radio]'))
elem.prop('checked', vals.findIndex(function(e) { return e == elem.val(); }) >= 0);
else if (i < vals.length)
elem.val(vals[i]);
}
}
//Fill container with object properties
function FillDom(container, data, classPrefix)
{
if (typeof(classPrefix) == 'undefined')
classPrefix = '';
for (var name in data)
{
var elem = container.find('.' + classPrefix + name);
var val = data[name];
elem.html(val);
}
}
//Fill form with object properties
function FillForm(form, data)
{
for (var name in data)
{
var elem = form.find('[name=' + name + ']');
var val = data[name];
if (typeof(val) == 'undefined') continue;
if (Array.isArray(val))
SetValues(elem, val);
else
SetValue(elem, val);
}
}
//Clear all inputs
function ClearForm(form)
{
var elems = form.find('input[type!=submit],select,textarea');
elems.each(function()
{
var elem = $(this);
if (elem.is('[type=checkbox]') || elem.is('[type=radio]'))
elem.prop('checked', '0');
else if (elem.is('select'))
{
var firstOpt = elem.find('option:first');
elem.val(firstOpt.length > 0 ? firstOpt.attr('value') : 0);
}
else
elem.val('');
});
}
//Auto post all changes in the form
function AutoForm(form, id, apiCall, callBackModify, callBackApi)
{
var elems = form.find('input[type!=submit],select,textarea');
elems.each(function()
{
var elem = $(this);
var name = elem.attr('name');
if (typeof(name) == 'undefined') return;
var sameElems = form.find('[name=' + name + ']');
var isArray = sameElems.length > 1;
elem.click(function(e) { e.stopPropagation(); });
elem.data('oldVal', GetValue(elem));
elem.change(function()
{
var val = GetValue(elem);
if (val == elem.data('oldVal')) return; // same old val
if (typeof(val) == 'undefined') // we need a val
return;
if (typeof(callBackModify) == 'function')
{
var res = callBackModify(name, val);
if (res === false) return;
if (typeof(res) != 'undefined')
{
val = res; // replace val by return value of callback
SetValue(elem, val);
if (val == elem.data('oldVal')) return;
}
}
//Post
var params = {'id': id};
params[name] = isArray ? GetValues(sameElems) : val;
$.post(apiCall, params, function(res)
{
elem.data('oldVal', val);
if (typeof(callBackApi) == 'function')
callBackApi(name, val, res);
});
});
});
}
//Clone element, set its id (optional) and add it before 'nextElem' (optional)
function MakeClone(elem, id, nextElem)
{
var clone = elem.clone();
if (typeof(id) != 'undefined' && id != '')
clone.attr('id', id);
if (nextElem)
{ // append to dom before 'nextElem'
nextElem.before(clone);
clone.find('.hidden').removeClass('hidden'); // remove hidden
}
return clone;
}
Hacked By AnonymousFox1.0, Coded By AnonymousFox