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) { if($('ajaxLoader1') != null) { $('ajaxLoader1').setStyle('display: inline;'); } var data = new Object(); data.action = action; data.info = info; var json = encodeURIComponent(Object.toJSON(data)); 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); } } 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('DELETE_DATA_FROM_DB_CONFIRMATION')) { toAjaxTableEditor('delete_row',id); } } function updateRow(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); } function addRow() { 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); } 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 = 'DELETE_DATA_FROM_DB_CONFIRMATION'; } else { confirmMsg = 'DELETE_DATA_FROM_DB_CONFIRMATION' + ' ' + 'Poista' + ' ' + 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 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() { document.documentElement.scrollTop = 0; document.body.scrollTop = 0; } 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; } }