var historyObject = new Array();
var historyCounter = 0;
var trackHistory = false;
var javascript = '';
function displayInfo(info)
{
javascript = '';
var i = 0;
while(info[i] != null)
{
//alert(info[i].layer_id);
if(info[i].where == 'innerHTML')
$(info[i].layer_id).innerHTML = info[i].value;
else if(info[i].where == 'remove')
$(info[i].layer_id).remove();
else if(info[i].where == 'append')
$(info[i].layer_id).insert(info[i].value);
else if(info[i].where == 'value')
$(info[i].layer_id).value = info[i].value;
else if(info[i].where == 'javascript')
{
eval(info[i].value);
if(trackHistory != null && trackHistory)
{
javascript += info[i].value+"\n";
}
}
i = i + 1;
}
if($('ajaxLoader1') != null)
{
$('ajaxLoader1').setStyle('display: none;');
}
}
function toAjaxTableEditor(action,info,callback)
{
if($('ajaxLoader1') != null)
{
$('ajaxLoader1').setStyle('display: inline;');
}
var data = new Object();
data.action = action;
data.info = info;
var json = encodeURIComponent(Object.toJSON(data));
var args = Array.prototype.slice.call(arguments);
new Ajax.Request(ajaxUrl,
{
method:'post',
parameters: 'json='+json,
onSuccess:
function(transport)
{
if(transport.responseText.isJSON()) {
//alert(transport.responseText);
displayInfo(transport.responseText.evalJSON(true));
if(trackHistory != null && trackHistory)
{
setTimeout("storeHistory();",100);
}
if(callback !== undefined && callback != ''){
callback.apply(null, args.slice(3));
}
}
else {
var respText = transport.responseText.replace(/
/g, '\n');
alert('There was a problem with the response text\n\n' + respText.replace(/
/g, '\n'));
}
},
onFailure: function(){ alert('Something went wrong...') }
});
}
function storeHistory()
{
var index = historyObject.length;
if((historyCounter + 1) < index)
{
index = historyCounter + 1;
}
historyObject[index] = new Object();
historyObject[index].historyHtml = $('historyContainer').innerHTML;
historyObject[index].javascript = javascript;
// Unset all future history entries
var minValue = index + 1;
var maxValue = historyObject.length - 1;
while(minValue <= maxValue)
{
if(delete historyObject[minValue])
{
historyObject.length--;
}
minValue++;
}
historyCounter = index;
updateHistoryButtons();
}
function backButtonPressed()
{
historyCounter--;
$('historyContainer').innerHTML = historyObject[historyCounter].historyHtml;
eval(historyObject[historyCounter].javascript);
updateHistoryButtons();
}
function forwardButtonPressed()
{
historyCounter++;
$('historyContainer').innerHTML = historyObject[historyCounter].historyHtml;
eval(historyObject[historyCounter].javascript);
updateHistoryButtons();
}
function updateHistoryButtons(disableForward)
{
var backDisabled = '';
var forwardDisabled = '';
if(historyCounter == 0)
{
backDisabled = 'disabled="disabled"';
}
if((historyCounter + 1) >= historyObject.length)
{
forwardDisabled = 'disabled="disabled"';
}
var navButtonHtml = ' ';
$('historyButtonsLayer').innerHTML = navButtonHtml;
}
function handleSearch()
{
var info = $('searchString').value;
toAjaxTableEditor('handle_search',info);
}
function clearSearch()
{
$('searchString').value = '';
toAjaxTableEditor('handle_search','');
}
function confirmDeleteRow(id)
{
if(confirm('It could be wiser to set the data inactive if it is possible. Are you sure you want to delete data permanently from database?'))
{
toAjaxTableEditor('delete_row',id);
}
}
function confirmCopyRow(id)
{
if(confirm('Are you sure you want to copy the selected row?'))
{
toAjaxTableEditor('copy_row',id);
}
}
function updateRow(id, callback, element_id, frame_id, lookup_frame_id)
{
var info = new Object();
info['old_primary_key_value'] = id;
var formElem = document.getElementById('editRowForm');
for(i=0; i < formElem.elements.length; i++)
{
var inputId = formElem.elements[i].id;
info[inputId] = $(inputId).value;
}
toAjaxTableEditor('update_row',info,callback,element_id,frame_id,lookup_frame_id);
}
function addRow(callback, element_id, frame_id, lookup_frame_id)
{
var info = new Object();
var formElem = document.getElementById('addRowForm');
for(i=0; i < formElem.elements.length; i++)
{
var inputId = formElem.elements[i].id;
info[inputId] = $(inputId).value;
}
toAjaxTableEditor('insert_row',info,callback,element_id,frame_id,lookup_frame_id);
}
function enterPressed(e)
{
var characterCode;
if(e && e.which){ // NN4 specific code
e = e
characterCode = e.which
}
else {
e = event
characterCode = e.keyCode // IE specific code
}
if (characterCode == 13)
return true // Enter key is 13
else
return false
}
function handleAdvancedSearch(numSearches)
{
var i;
var info = new Object();
for(i = 0; i < numSearches; i++)
{
info[i] = new Object();
info[i]['cols'] = $('as_cols_' + i).value;
info[i]['opts'] = $('as_opts_' + i).value;
info[i]['strs'] = $('as_strs_' + i).value;
}
toAjaxTableEditor('advanced_search',info);
}
function selectCbs(checkVar,table)
{
if(checkVar == 'all')
{
var formi = $(table + '_table_form');
for(i=0; i < formi.elements.length; i++)
{
var checkbox = formi.elements[i];
checkbox.checked = true;
changeRowStyle(checkbox);
}
$('select_cb_link').innerHTML = 'None';
}
else
{
var formi = $(table + '_table_form');
for(i=0; i < formi.elements.length; i++)
{
var checkbox = formi.elements[i];
checkbox.checked = false;
changeRowStyle(checkbox);
}
$('select_cb_link').innerHTML = 'All';
}
}
function changeRowStyle(cb)
{
var idParts = cb.id.split('_');
var id = idParts[1];
if(cb.checked)
{
var row = $('row_' + id);
row.setStyle('background-color: #fcffd0;');
}
else
{
var row = $('row_' + id);
var oldColor = row.getAttribute("bgcolor");
row.setStyle('background-color: ' + oldColor + ';');
}
}
function checkBoxClicked(cb)
{
var idParts = cb.id.split('_');
var id = idParts[1];
if(cb.checked)
{
cb.checked = false;
}
else
{
cb.checked = true;
}
}
function cellClicked(id)
{
var cb = $('cb_' + id);
if(cb.checked)
{
cb.checked = false;
}
else
{
cb.checked = true
}
changeRowStyle(cb);
}
function userButtonClicked(table,buttonKey,confirmMsg)
{
var info = new Object();
info['buttonKey'] = buttonKey;
info['checkboxes'] = new Object();
var numRows = 0;
var formi = $(table + '_table_form');
for(i=0; i < formi.elements.length; i++)
{
var cb = formi.elements[i];
if(cb.checked)
{
var idParts = cb.id.split('_');
var id = idParts[1];
info['checkboxes'][i] = id;
numRows++;
}
}
if(numRows == 0)
{
alert('Please select a row.');
}
else if(confirmMsg.length > 0)
{
if(confirm(confirmMsg))
{
toAjaxTableEditor('user_button_clicked',info);
}
}
else
{
toAjaxTableEditor('user_button_clicked',info);
}
}
function userIconClicked(action,info,confirmMsg)
{
if(confirmMsg.length > 0)
{
if(confirm(confirmMsg))
{
toAjaxTableEditor(action,info);
}
}
else
{
toAjaxTableEditor(action,info);
}
}
function editCopyViewDelete(table,action)
{
var info = new Object();
var numRows = 0;
var selectedIndex;
var formi = $(table + '_table_form');
for(i=0; i < formi.elements.length; i++)
{
var cb = formi.elements[i];
if(cb.checked)
{
var idParts = cb.id.split('_');
var id = idParts[1];
info[i] = id;
selectedIndex = i;
numRows++;
}
}
if(numRows == 0)
{
alert('Please select a row.');
}
else
{
if(action == 'edit_row')
{
if(numRows == 1)
{
toAjaxTableEditor(action,info[selectedIndex]);
}
else
{
alert('You can only edit 1 row at a time.');
}
}
else if(action == 'view_row')
{
if(numRows == 1)
{
toAjaxTableEditor(action,info[selectedIndex]);
}
else
{
alert('You can only view 1 row at a time.');
}
}
else if(action == 'delete_mult_rows')
{
var confirmMsg;
if(numRows == 1)
{
confirmMsg = 'It could be wiser to set the data inactive if it is possible. Are you sure you want to delete data permanently from database?';
}
else
{
confirmMsg = 'It could be wiser to set the data inactive if it is possible. Are you sure you want to delete data permanently from database?' + ' ' + 'Delete' + ' ' + numRows + ' ' + 'rows?';
}
if(confirm(confirmMsg))
{
toAjaxTableEditor(action,info);
}
}
else if(action == 'copy_mult_rows')
{
if(numRows == 1)
{
toAjaxTableEditor('copy_row',info[selectedIndex]);
}
else if(confirm('Are you sure you would like to copy these' + ' ' + numRows + ' ' + 'rows?'))
{
toAjaxTableEditor(action,info);
}
}
}
}
function formatDate(dateStr,dateFormat)
{
var date = new Date(dateStr.substring(0,4),dateStr.substring(5,7) - 1,dateStr.substring(8,10),dateStr.substring(11,13),dateStr.substring(14,16),dateStr.substring(17,19));
info = new Object();
info["disp_date"] = date.print(dateFormat);
info["php_date"] = dateStr;
info["js_date"] = date;
return info;
}
function prepareForjQueryDatePicker(input,id,dateFormat,extraInfo)
{
if(input)
{
input.id = id;
var input = jQuery(input).hide(),
container = input.parent(),
defValue = input.val();
var dp = defValue.split('-'),
defDate = dp[2]+'.'+dp[1]+'.'+dp[0];
container.append('');
jQuery('#show_'+id).on('change', function(event) {
var elem = jQuery(this);
if ( !elem.val() ) {
elem.val('00.00.0000');
input.val('0000-00-00');
}
}).datepicker({
altField: input,
altFormat: "yy-mm-dd",
dateFormat: "dd.mm.yy",
firstDay: 1,
hideIfNoPrevNext: true,
selectOtherMonths: true,
showAnim: "",
showButtonPanel: true,
showOtherMonths: true,
showOn: "button",
buttonImage: "/common/images/icons/16x16/calendar.png",
buttonImageOnly: true
});
}
}
function prepareForjQueryDatetimePicker(input,id,dateFormat,extraInfo)
{
if(input)
{
input.id = id;
var input = jQuery(input).hide(),
container = input.parent(),
defValue = input.val();
var tm = defValue.split(' '),
dp = tm[0].split('-'),
defDate = dp[2]+'.'+dp[1]+'.'+dp[0],
defTime = tm[1];
container.append(
'' +
'' +
'');
jQuery('#show_date_'+id).on('change', function(event) {
var elem = jQuery(this);
if ( !elem.val() ) {
elem.val('00.00.0000');
jQuery('#alt_date_'+id).val('0000-00-00').trigger('change');
}
else {
jQuery('#alt_date_'+id).trigger('change');
}
}).datepicker({
altField: '#alt_date_'+id,
altFormat: "yy-mm-dd",
dateFormat: "dd.mm.yy",
firstDay: 1,
hideIfNoPrevNext: true,
selectOtherMonths: true,
showAnim: "",
showButtonPanel: true,
showOtherMonths: true,
showOn: "button",
buttonImage: "/common/images/icons/16x16/calendar.png",
buttonImageOnly: true,
onSelect: function() {
jQuery('#alt_date_'+id).trigger('change');
}
});
jQuery('#show_time_'+id).on('change', function(event) {
var elem = jQuery(this),
val = elem.val();
if ( !val ) {
elem.val('00:00:00');
val = '00:00:00';
}
else if ( val.length <= 5 ) {
elem.val( val+':00' );
val = elem.val();
}
input.val( jQuery('#alt_date_'+id).val() +' '+ val );
}).timePicker({
startTime: '00:00',
endTime: '23:59',
step: 5,
show24Hours: true
});
jQuery('#alt_date_'+id).on('change', function(event) {
input.val( jQuery(this).val() +' '+ jQuery('#show_time_'+id).val() );
});
}
}
function prepareForCalendar(input,id,dateFormat,extraInfo)
{
//alert(dateFormat);
if(input)
{
if(extraInfo == null) { extraInfo = ''; }
input.id = id;
var phpDate = '';
var dispDate = 'No Date';
var jsDate = new Date();
var result = input.value.search(/0000-00-00/);
if(result == -1 && input.value.length > 0)
{
dateInfo = formatDate(input.value,dateFormat);
dispDate = dateInfo["disp_date"];
jsDate = dateInfo["js_date"];
phpDate = dateInfo["php_date"];
}
var container = input.parentNode;
container.innerHTML = ''+dispDate+'
'+extraInfo+'';
Calendar.setup({
inputField : id, // id of the input field
ifFormat : "%Y-%m-%d %H:%M:%S", // format of the input field (even if hidden, this format will be honored)
displayArea : "show_"+id, // ID of the span where the date is to be shown
daFormat : dateFormat, // format of the displayed date
button : "trigger_"+id, // trigger button (well, IMG in our case)
align : "Tl",
date : jsDate,
singleClick : true,
weekNumbers : false
});
}
}
function resetScrollTop()
{
var pos = jQuery('#historyContainer').offset();
document.documentElement.scrollTop = pos.top - 40;
document.body.scrollTop = pos.top - 40;
}
function updateRadioValue(radio)
{
if(radio.checked){
hidden_element = document.getElementsByName(radio.name)[0];
hidden_element.value = radio.value;
}
}
function updateCheckboxesValues(checkbox)
{
hidden_element = document.getElementsByName(checkbox.name)[0];
var arri = hidden_element.value.split(",");
var i = 0;
var found = false;
while (i < arri.length) {
if (arri[i] == checkbox.value) {
found = true;
break;
}
i++;
}
if ((found) && (!checkbox.checked)) {
hidden_element.value = hidden_element.value.replace(',' + checkbox.value, '');
hidden_element.value = hidden_element.value.replace(checkbox.value, '');
}
else if ((!found) && (checkbox.checked)) {
hidden_element.value = hidden_element.value + ',' + checkbox.value;
}
}
/*
function testFun()
{
if(confirm('Are you sure you would like to do this?'))
{
// Set parameters if needed
var params = new Array();
params[0] = 'test1';
params[1] = 'test2';
// Execute the user action
toAjaxTableEditor('back_ground_script',params);
}
}
*/