﻿(function ($) {
$.jGrid = {
ajaxUrl: '/Ajax/ControlsWrapper.aspx',
width: 400,
height: 400,
changeOff: false,
isAllCheckedValue: true,
filter: function (fid, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, lang, cf) {
if ($('#' + fid).val().trim() == '') return;
$.jGrid.updateGrid(gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, $('#' + fid).val().trim(), '', lang, cf);
},
advancedfilter: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, w, h) {
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf,
null,
w != null ? w : width,
h != null ? h : height);
},
details: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, w, h) {
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf,
null,
w != null ? w : width,
h != null ? h : height);
},
addRow: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, w, h) {
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf,
null,
w != null ? w : width,
h != null ? h : height);
},
editRow: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, id, w, h) {
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&id=' + id + '&lang=' + lang + '&cf=' + cf,
null,
w != null ? w : width,
h != null ? h : height);
},
deleteRows: function (title, message, data) {
return jConfirm(message, title, function (condition) {
if (condition) {
var ids = '';
$.each($('.checkboxCell', $('#' + data.gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
if (ids.length == 0) return;
$.jGrid.updateGrid(data.gid, data.tid, data.mid, data.suid, data.ctrl, data.bctrl, data.pi, data.ps, data.sort, data.skey, data.askey, data.lang, data.cf, 'del', ids);
}
});
},
publishRows: function (title, message, data) {
return jConfirm(message, title, function (condition) {
if (condition) {
var ids = '';
$.each($('.checkboxCell', $('#' + data.gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
if (ids.length == 0) return;
$.jGrid.updateGrid(data.gid, data.tid, data.mid, data.suid, data.ctrl, data.bctrl, data.pi, data.ps, data.sort, data.skey, data.askey, data.lang, data.cf, 'pub', ids);
}
});
},
publishIconClick: function (img) {
$('input', $('td:first-child', $(img).parent().parent())).attr('checked', true);
},
exportRows: function () {
jAlert('Not implemented yet.');
},
change: function (checkbox, tableID) {
if ($.jGrid.changeOff) return;
$.jGrid.changeOff = true;
if ($(checkbox).parent()[0].nodeName == 'TH') {
$.each($('.checkboxCell', $('#' + tableID)), function (index, value) {
if ($($('th input[type=checkbox]', $('#' + tableID))[0]).attr('checked') == true && !$(value).parent().hasClass('displayfilternone'))
$($('input[type=checkbox]', $(value))[0]).check();
else
$($('input[type=checkbox]', $(value))[0]).uncheck();
});
}
else {
$.jGrid.isAllChecked('#' + tableID);
if ($(checkbox).attr('checked') == true && $.jGrid.isAllCheckedValue == true)
$($('th input[type=checkbox]', $('#' + tableID))[0]).check();
else
$($('th input[type=checkbox]', $('#' + tableID))[0]).uncheck();
}
$.jGrid.changeOff = false;
},
exportToCSV: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf) {
location.href = $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf + '&meth=exp';
},
exportToXSLX: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf) {
location.href = $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf + '&meth=xslx';
},
customAction: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action) {
var ids = '';
$.each($('.checkboxCell', $('#' + gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
$.jGrid.updateGrid(gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action, ids);
},
customActionHref: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action) {
var ids = '';
$.each($('.checkboxCell', $('#' + gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
if (ids.length == 0) return;
location.href = $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf + '&meth=' + action + '&ids=' + ids;
},
multiActionHref: function (gid, url) {
var ids = '';
$.each($('.checkboxCell', $('#' + gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
if (ids.length == 0) return;
location.href = format(url, ids);
},
customActionOpenWindow: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, w, h) {
var ids = '';
$.each($('.checkboxCell', $('#' + gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf + '&ids=' + ids,
null,
w != null ? w : width,
h != null ? h : height);
},
customRowAction: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action, id) {
$.jGrid.updateGrid(gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action, id);
},
customRowActionHref: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, action, id) {
location.href = $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&lang=' + lang + '&cf=' + cf + '&meth=' + action + '&ids=' + id;
},
customRowActionOpenWindow: function (title, gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, id, w, h) {
jPopup(title, $.jGrid.ajaxUrl + '?gid=' + gid + '&tid=' + tid + '&mid=' + mid + '&suid=' + suid + '&ctrl=' + ctrl + '&bctrl=' + bctrl + '&pi=' + pi + '&ps=' + ps + '&sort=' + sort + '&skey=' + skey + '&askey=' + askey + '&id=' + id + '&lang=' + lang + '&cf=' + cf,
null,
w != null ? w : width,
h != null ? h : height);
},
updateGrid: function (gid, tid, mid, suid, ctrl, bctrl, pi, ps, sort, skey, askey, lang, cf, meth, ids, mes_h, mes_m, mes_d, mes_t, mes_s) {
$.cookie(ctrl, JSON.stringify({ pi: pi, ps: ps, sort: sort, skey: skey, askey: askey, cf: cf, meth: meth, ids: ids }));
$.alerts._hide();
var over = $('<div>');
over.addClass('clip');
over.css({ width: $('#' + gid).outerWidth() + 'px', height: $('#' + gid).outerHeight() + 'px' });
over.css($('#' + gid).offset());
over.html('&nbsp;');
$('#' + gid).after(over);
$('#' + gid).load($.jGrid.ajaxUrl + ' #formWrapperContent', { gid: gid, tid: tid, mid: mid, suid: suid, ctrl: ctrl, bctrl: bctrl, pi: pi, ps: ps, sort: sort, skey: skey, askey: askey, lang: lang, cf: cf, meth: meth, ids: ids }, function (response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
$('#' + gid).html(msg + xhr.status + " " + xhr.statusText);
}
over.remove();
$("tr", $('#' + gid)).hover(
function () {
if (!$(this).hasClass('header')) $('td', $(this)).addClass("highlight");
},
function () {
if (!$(this).hasClass('header')) $('td', $(this)).removeClass("highlight");
});
$('#' + gid + ' .filterInput').keypress(function (e) {
if (e.keyCode == 13) {
eval($("a:first", $('#' + gid + ' .filterInput').parent()).attr("href"))
return false;
}
});
ib_tooltip();
$('.ex_grid td').click(function () {
$('.ex_grid td').removeClass('on');
$('td', $(this).parent()).addClass('on');
});
$(document).click(function (e) {
if (!$(e.target).hasClass('ex_grid_actions') && !$(e.target).hasClass('gitem') && !$(e.target).parent().hasClass('ex_grid_actions'))
$('ul.ex_grid_actions').hide();
});
$('img.ex_grid_actions').click(function () {
$('ul.ex_grid_actions').hide();
$(this).prev().show();
});
$('a.ex_grid_actions').click(function () {
$('ul.ex_grid_actions').hide();
var ids = '';
$.each($('.checkboxCell', $('#' + gid + ' table')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
ids += $($('input[type=checkbox]', $(value))[0]).attr("alt") + ';';
});
if (ids.length > 0)
ids = ids.substring(0, ids.lastIndexOf(';'));
if (ids.length == 0) return;
$(this).prev().show();
});
if (mes_m != undefined)
$.noticeAdd({
text: mes_m,
title: mes_h,
duration: mes_d,
stay: mes_s,
type: mes_t,
position: 'center'
});
else if ($('.grid_msg', this).html() != '') eval($('.grid_msg', this).html());
});
},
isAllChecked: function (tableID) {
$.jGrid.isAllCheckedValue = true;
$.each($('.checkboxCell', $(tableID)), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') != true)
$.jGrid.isAllCheckedValue = false;
});
}
}
jGridUpdate = function (args) {
$.jGrid.updateGrid(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.meth, args.ids, args.mes_h, args.mes_m, args.mes_d, args.mes_t, args.mes_s);
};
jGridDetails = function (title, args, w, h) {
$.jGrid.details(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, w, h);
};
jGridAdd = function (title, args, w, h) {
$.jGrid.addRow(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, w, h);
};
jGridEdit = function (title, args, id, w, h) {
$.jGrid.editRow(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, id, w, h);
};
jGridTranslate = function (title, args, id, w, h) {
$.jGrid.editRow(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, id, w, h);
};
jGridDelete = function (title, message, args) {
$.jGrid.deleteRows(title, message, args);
};
jGridPublish = function (title, message, args) {
$.jGrid.publishRows(title, message, args);
};
jGridPublishIconClick = function (img) {
$.jGrid.publishIconClick(img);
};
jGridSearch = function (fid, args) {
$.jGrid.filter(fid, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.lang, args.cf);
};
jGridAdvancedSearch = function (title, args, w, h) {
$.jGrid.advancedfilter(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, w, h);
};
jGridCustomActionScript = function (args) {
$.jGrid.customAction(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.action);
};
jGridCustomActionHrefScript = function (args) {
$.jGrid.customActionHref(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.action);
};
jGridMultiActionHref = function (args) {
$.jGrid.multiActionHref(args.gid, args.url);
};
jGridCustomActionOpenWindowScript = function (title, args, w, h) {
$.jGrid.customActionOpenWindow(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, w, h);
};
jGridCustomRowActionScript = function (args) {
$.jGrid.customRowAction(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.action, args.id);
};
jGridCustomRowActionHrefScript = function (args) {
$.jGrid.customRowActionHref(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.action, args.id);
};
jGridCustomRowActionOpenWindowScript = function (title, args, w, h) {
$.jGrid.customRowActionOpenWindow(title, args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf, args.id, w, h);
};
jGridChange = function (checkbox, tableID) {
$.jGrid.change(checkbox, tableID);
};
jGridExportCsv = function (args) {
$.jGrid.exportToCSV(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf);
};
jGridExportXslx = function (args) {
$.jGrid.exportToXSLX(args.gid, args.tid, args.mid, args.suid, args.ctrl, args.bctrl, args.pi, args.ps, args.sort, args.skey, args.askey, args.lang, args.cf);
};
jGridPrint = function (args) {
Print($('.ex_grid', $('#' + args.gid)), args.title, args.styleToAdd, args.classNameToAdd);
};
jGridSuccessNotify = function (title, message, duration, stay) {
$.noticeAdd({
text: message,
title: title,
duration: duration,
stay: stay,
type: 'success',
position: 'center'
});
};
})(jQuery);
(function ($) {
$.jMultiSelect = {
currentView: 'all',
search: function (id) {
var s = $.trim($('#' + id + ' input[type=text]').val().toLowerCase());
$.each($('tr', $('#' + id + ' table.ex_grid')), function (index, value) {
if (index != 0) {
if ($.trim($(value).text().toLowerCase()).indexOf(s) >= 0)
$(value).removeClass('displayfilternone');
else
$(value).addClass('displayfilternone');
}
});
$.jMultiSelect.refresh(id);
$('#' + id + ' a.searchback').css('display', s == '' ? 'none' : 'inline');
},
clear: function (id) {
$('#' + id + ' input[type=text]').val('');
$.jMultiSelect.search(id);
},
all: function (id) {
$.jMultiSelect.currentView = 'all';
$.each($('.checkboxCell', $('#' + id + ' table.ex_grid')), function (index, value) {
$(value).parent().removeClass('displaynone');
});
$.jMultiSelect.select(id, 1);
},
selected: function (id) {
$.jMultiSelect.currentView = 'sel';
$.each($('.checkboxCell', $('#' + id + ' table.ex_grid')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
$(value).parent().removeClass('displaynone');
else
$(value).parent().addClass('displaynone');
});
$.jMultiSelect.select(id, 2);
},
unselected: function (id) {
$.jMultiSelect.currentView = 'uns';
$.each($('.checkboxCell', $('#' + id + ' table.ex_grid')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
$(value).parent().addClass('displaynone');
else
$(value).parent().removeClass('displaynone');
});
$.jMultiSelect.select(id, 3);
},
createSearchData: function (tid) {
var searchdata = new Array();
$.each($('td', $('#' + tid)), function (index, value) {
if (searchdata.toString().indexOf(',' + $.trim($(value).text())) == -1) {
searchdata.push($.trim($(value).text()));
}
});
searchdata.sort();
return searchdata;
},
getSelected: function (id) {
var list = '';
$.each($('.checkboxCell', $('#' + id + ' table.ex_grid')), function (index, value) {
if ($($('input[type=checkbox]', $(value))[0]).attr('checked') == true)
list += $($('input[type=checkbox]', $(value))[0]).attr('alt') + ';';
});
if (list.length > 0)
list = list.substring(0, list.length - 1);
return list;
},
refresh: function (id) {
switch ($.jMultiSelect.currentView) {
default:
case 'all':
$.jMultiSelect.all(id);
break;
case 'sel':
$.jMultiSelect.selected(id);
break;
case 'uns':
$.jMultiSelect.unselected(id);
break;
}
},
select: function (id, index) {
$('#' + id + ' a.all').removeClass('current');
$('#' + id + ' a.selected').removeClass('current');
$('#' + id + ' a.unselected').removeClass('current');
if (index == 1)
$('#' + id + ' a.all').addClass('current');
else if (index == 2)
$('#' + id + ' a.selected').addClass('current');
else if (index == 3)
$('#' + id + ' a.unselected').addClass('current');
$.jMultiSelect.refreshClass(id)
},
refreshClass: function (id) {
var isAlternate = false;
$.each($('tr', $('#' + id + ' table.ex_grid')), function (index, value) {
if (index != 0) {
if (!$(value).hasClass('displayfilternone') && !$(value).hasClass('displaynone')) {
$(value).removeClass('row');
$(value).removeClass('alternaterow');
$(value).addClass(isAlternate ? 'row' : 'alternaterow');
isAlternate = !isAlternate;
}
}
});
}
}
jMultiSelectSearch = function (id) {
$.jMultiSelect.search(id);
return false;
};
jMultiSelectClear = function (id) {
$.jMultiSelect.clear(id);
};
jMultiSelectAll = function (id) {
$.jMultiSelect.all(id);
};
jMultiSelectSelected = function (id) {
$.jMultiSelect.selected(id);
};
jMultiSelectUnselected = function (id) {
$.jMultiSelect.unselected(id);
};
jMultiSelectGetSearchData = function (tid) {
return $.jMultiSelect.createSearchData(tid);
};
jMultiSelectGetSelected = function (id) {
return $.jMultiSelect.getSelected(id);
};
})(jQuery);
$(function () {
try {
$('div.multiselect_filter input[type=text]').keypress(function (e) {
if (e.keyCode == 13) {
$('div.multiselect_filter input[type=button]').click();
return false;
}
});
} catch (err) { }
});
function icp_change(panelID, stateID, ciID, eiID) {
var state = $(stateID).val();
var c = $(ciID).val();
var e = $(eiID).val();
if (state == 'False') {
$('.icp_inner', $(panelID)).show();
$('.icp_title img', $(panelID)).attr('src', e)
$(stateID).val('True');
$.cookie(panelID, 'True');
}
else {
$('.icp_inner', $(panelID)).hide();
$('.icp_title img', $(panelID)).attr('src', c)
$(stateID).val('False');
$.cookie(panelID, 'False');
}
}
function icp_popup(panelID, width) {
showOverlay(false);
$('body').append('<div id="icp_popup" style="width:' + width + 'px;"></div>');
$('#icp_popup').css('background-color', 'white');
$('#icp_popup').append('<div align="right"><img src="/images/close.gif" onclick="javascript:icp_hidepopup();" class="pointer" /></div>')
$('#icp_popup').append('<div id="icp_popup_overflow" style="max-height:400px; overflow:auto;"></div>');
$('#icp_popup_overflow').append($('.icp_inner', $(panelID)).html());
$('#icp_popup').fixedBox();
}
function icp_hidepopup() {
$('#icp_popup').remove();
hideOverlay();
}
function addFilter(q, c, o, v, h) {
var query = $('#' + q);
var column = $('#' + c).val();
var operation = $('#' + o).val();
var value = $('#' + v).val();
if (value == '') {
alert(resorce_iqfgv);
return;
}
var sql = '<span><span onclick="javascript:swichToEdit(this, \'' + q + '\', \'' + h + '\');">' + column + '</span><select style="display:none;" onchange="javascript:swichToView(this, \'' + q + '\', \'' + h + '\');" onkeydown="javascript:escapeKey(this, event, \'' + q + '\', \'' + h + '\');">' + resorce_iqfgi + '</select></span>'
+ ' <span><span class="operation" onclick="javascript:swichToEdit(this, \'' + q + '\', \'' + h + '\');">' + operation + '</span>'
+ '<select style="display:none;" onchange="javascript:swichToView(this, \'' + q + '\', \'' + h + '\');" onkeydown="javascript:escapeKey(this, event, \'' + q + '\', \'' + h + '\');">'
+ '<option value="String Equals">String Equals</option>'
+ '<option value="String Not Equals">String Not Equals</option>'
+ '<option value="String Begin">String Begin</option>'
+ '<option value="String End">String End</option>'
+ '<option value="String Contains">String Contains</option>'
+ '<option value="Decimal Equals">Decimal Equals</option>'
+ '<option value="Decimal Not Equals">Decimal Not Equals</option>'
+ '<option value="Decimal Greater">Decimal Greater</option>'
+ '<option value="Decimal Greater Or Equal">Decimal Greater Or Equal</option>'
+ '<option value="Decimal Less">Decimal Less</option>'
+ '<option value="Decimal Less Or Equal">Decimal Less Or Equal</option>'
+ '<option value="Date Greater">Date Greater</option>'
+ '<option value="Date Less">Date Less</option>'
+ '</select>'
+ ' <span class="value" onclick="javascript:swichToEditValue(this);">' + value + '</span><input style="display:none;" type="text" value="' + value + '" onkeydown="javascript:enterKey(this, event);" onkeypress="removeIllegalChars(this, event, \'' + q + '\', \'' + h + '\')" /><a class="pointer" style="display:none;" onclick="javascript:swichToViewValue(this, \'' + q + '\', \'' + h + '\');">OK</a></span>';
var item = $('<li class="filterItem">');
var span = $('<span>');
span.html(sql);
item.append(span);
item.append($('<img src="/images/drag.jpg" class="pointer">'));
item.append($('<img src="/images/delete.gif" onclick="javascript:deleteFilter(this, \'' + q + '\', \'' + h + '\');" class="pointer" >'));
query.append(item);
getSQL(q, h)
}
function addGroup(q, h) {
var query = $('#' + q);
var classID = Math.round(Math.random() * 10000);
query.prepend($('<li><span> ( </span><img src="/images/drag.jpg" class="pointer"/><img class="g' + classID + '" src="/images/delete.gif" onclick="javascript:deleteGroup(this, \'' + q + '\', \'' + h + '\');" class="pointer"/></li>'));
query.append($('<li><span> ) </span><img src="/images/drag.jpg" class="pointer"/><img class="g' + classID + '"src="/images/delete.gif" onclick="javascript:deleteGroup(this, \'' + q + '\', \'' + h + '\');" class="pointer"/></li>'));
getSQL(q, h)
}
function deleteGroup(ctrl, q, h) {
$('.' + $(ctrl).attr('class')).parent().remove();
getSQL(q, h)
}
function addLogic(q, l, h) {
var query = $('#' + q);
var logic = $('#' + l).val();
query.append($('<li class="logicFilter"> <span onclick="javascript:swichToEdit(this, \'' + q + '\', \'' + h + '\');">' + logic + '</span> <select style="display:none;" onchange="javascript:swichToView(this, \'' + q + '\', \'' + h + '\');"><option value="AND">AND</option><option value="OR">OR</option></select><img src="/images/drag.jpg" class="pointer"/><img src="/images/delete.gif" onclick="javascript:deleteFilter(this, \'' + q + '\', \'' + h + '\');" class="pointer"/></li>'));
getSQL(q, h)
}
function deleteFilter(ctrl, q, h) {
$(ctrl).parent().remove();
$('#' + q + ' li.logicFilter').each(function (i) {
if ($(this).prev().length == 0 || $(this).next().length == 0 || $(this).next().hasClass('logicFilter')) {
$(this).remove();
}
});
getSQL(q, h)
}
function swichToEdit(ctrl, q, h) {
$('#' + q + ' select:visible').each(function (i) {
swichToView(this, q, h);
});
$(ctrl).hide();
var ctrl2 = $('select', $(ctrl).parent())
ctrl2.show();
ctrl2.val($(ctrl).text());
ctrl2.focus();
ctrl2.select();
}
function swichToEditValue(ctrl) {
$(ctrl).hide();
var ctrl2 = $('input', $(ctrl).parent())
ctrl2.show();
$('a', ctrl2.parent()).show();
ctrl2.val($(ctrl).text());
ctrl2.focus();
ctrl2.select();
}
function swichToView(ctrl, q, h) {
$(ctrl).hide();
var ctrl2 = $('span:not(.value)', $(ctrl).parent())
ctrl2.show();
ctrl2.text($(ctrl).val());
getSQL(q, h)
}
function swichToViewValue(ctrl, q, h) {
$(ctrl).hide();
$(ctrl).prev().hide();
var ctrl2 = $('span.value', $(ctrl).parent())
ctrl2.show();
ctrl2.text($(ctrl).prev().val());
getSQL(q, h)
}
function enterKey(ctrl, e, q, h) {
if (e.keyCode == 13) {
$(ctrl).hide();
$(ctrl).next().hide();
var ctrl2 = $('span.value', $(ctrl).parent())
ctrl2.show();
ctrl2.text($(ctrl).val());
getSQL(q, h)
}
}
function removeIllegalChars(ctrl, e) {
if ((e.charCode == 39 && !e.shiftKey)
|| (e.charCode == 59 && !e.shiftKey)
|| (e.charCode == 61 && !e.shiftKey)
|| (e.charCode == 62 && e.shiftKey)
|| (e.charCode == 60 && e.shiftKey)) {
e.preventDefault();
}
}
function escapeKey(ctrl, e, q, h) {
if (e.keyCode == 27 || e.keyCode == 13) {
swichToView(ctrl, q, h)
}
}
function getSQL(q, h) {
var sqlCtrl = $($('#' + q).html());
$(':not(span)', $(sqlCtrl)).remove();
$(sqlCtrl).each(function (i) {
if (!$(this).hasClass('filterItem')) return;
var operation = $('span.operation', $(this))
var value = $('span.value', $(this))
switch (operation.text()) {
case "String Equals":
operation.text(' = ');
value.text("'" + value.text() + "'");
break;
case "String Not Equals":
operation.text(' <> ');
value.text("'" + value.text() + "'");
break;
case "String Begin":
operation.text(' LIKE ');
value.text("'" + value.text() + "%'");
break;
case "String End":
operation.text(' LIKE ');
value.text("'%" + value.text() + "'");
break;
case "String Contains":
operation.text(' LIKE ');
value.text("'%" + value.text() + "%'");
break;
case "Decimal Equals":
operation.text(' = ');
break;
case "Decimal Not Equals":
operation.text(' <> ');
break;
case "Decimal Greater":
operation.text(' > ');
break;
case "Decimal Greater Or Equal":
operation.text(' >= ');
break;
case "Decimal Less":
operation.text(' < ');
break;
case "Decimal Less Or Equal":
operation.text(' <= ');
break;
case "Date Greater":
operation.text(' > ');
value.text("'" + value.text() + "'");
break;
case "Date Less":
operation.text(' < ');
value.text("'" + value.text() + "'");
break;
}
});
if (!isSetSql)
$('#' + h).val(sqlCtrl.text());
}
var groupClasses = new Array();
var isSetSql = false;
function setSQL(h, q, l, c, o, v) {
var sql = $('#' + h).val();
var items = sql.replace(/ {2,}/g, ' ').split(' ');
isSetSql = true;
$(items).each(function (i) {
var query = $('#' + q);
if (items[i] == 'AND' || items[i] == 'OR') {
$('#' + l).val(items[i]);
addLogic(q, l, h);
}
else if (items[i] == '(') {
var classID = Math.round(Math.random() * 10000);
groupClasses.push(classID);
query.append($('<li><span> ( </span><img src="/images/drag.jpg" class="pointer"/><img class="g' + classID + '" src="/images/delete.gif" onclick="javascript:deleteGroup(this, \'' + q + '\', \'' + h + '\');" class="pointer"/></li>'));
}
else if (items[i] == ')') {
var classID = groupClasses.pop();
query.append($('<li><span> ) </span><img src="/images/drag.jpg" class="pointer"/><img class="g' + classID + '"src="/images/delete.gif" onclick="javascript:deleteGroup(this, \'' + q + '\', \'' + h + '\');" class="pointer"/></li>'));
}
else if (items[i] == 'LIKE') {
var str = items[i + 1].substring(items[i + 1].indexOf("'") + 1);
var begin = false;
var end = false;
var counter = 1;
if (str.indexOf("%") == 0) {
begin = true;
str = str.substring(1);
}
for (; ; ) {
if (str.indexOf("'") == -1) {
counter++;
str += ' ' + items[i + counter];
}
else {
str = str.substring(0, str.length - 1);
break;
}
}
if (str.indexOf("%") == str.length - 1) {
end = true;
str = str.substring(0, str.length - 1);
}
$('#' + c).val(items[i - 1]);
if (begin && end)
$('#' + o).val("String Contains");
else if (end)
$('#' + o).val("String Begin");
else if (begin)
$('#' + o).val("String End");
$('#' + v).val(str);
addFilter(q, c, o, v, h);
}
else if (items[i] == '=' && items[i + 1].indexOf("'") != -1) {
var str = items[i + 1].substring(items[i + 1].indexOf("'") + 1);
var counter = 1;
for (; ; ) {
if (str.indexOf("'") == -1) {
counter++;
str += ' ' + items[i + counter];
}
else {
str = str.substring(0, str.length - 1);
break;
}
}
$('#' + c).val(items[i - 1]);
$('#' + o).val("String Equals");
$('#' + v).val(str);
addFilter(q, c, o, v, h);
}
else if (items[i] == '=') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Equals");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
else if (items[i] == '<>' && items[i + 1].indexOf("'") != -1) {
var str = items[i + 1].substring(items[i + 1].indexOf("'") + 1);
var counter = 1;
for (; ; ) {
if (str.indexOf("'") == -1) {
counter++;
str += ' ' + items[i + counter];
}
else {
str = str.substring(0, str.length - 1);
break;
}
}
$('#' + c).val(items[i - 1]);
$('#' + o).val("String Not Equals");
$('#' + v).val(str);
addFilter(q, c, o, v, h);
}
else if (items[i] == '<>') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Not Equals");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
else if (items[i] == '<' && items[i + 1].indexOf("'") != -1) {
var str = items[i + 1].substring(items[i + 1].indexOf("'") + 1);
var counter = 1;
for (; ; ) {
if (str.indexOf("'") == -1) {
counter++;
str += ' ' + items[i + counter];
}
else {
str = str.substring(0, str.length - 1);
break;
}
}
$('#' + c).val(items[i - 1]);
$('#' + o).val("Date Less");
$('#' + v).val(str);
addFilter(q, c, o, v, h);
}
else if (items[i] == '<') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Less");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
else if (items[i] == '>' && items[i + 1].indexOf("'") != -1) {
var str = items[i + 1].substring(items[i + 1].indexOf("'") + 1);
var counter = 1;
for (; ; ) {
if (str.indexOf("'") == -1) {
counter++;
str += ' ' + items[i + counter];
}
else {
str = str.substring(0, str.length - 1);
break;
}
}
$('#' + c).val(items[i - 1]);
$('#' + o).val("Date Greater");
$('#' + v).val(str);
addFilter(q, c, o, v, h);
}
else if (items[i] == '>') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Greater");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
else if (items[i] == '<=') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Less Or Equal");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
else if (items[i] == '>=') {
$('#' + c).val(items[i - 1]);
$('#' + o).val("Decimal Greater Or Equal");
$('#' + v).val(items[i + 1]);
addFilter(q, c, o, v, h);
}
});
$('#' + c).val('');
$('#' + o).val('');
$('#' + v).val('');
isSetSql = false;
}
function clearSQL(q) {
$('#' + q).html('');
}
