jQuery.formTabs = { tabTitles: {}, tabContents: {}, build: function (startindex) { this.each(function (index, el) { var tid = jQuery(el).attr('id'); jQuery.formTabs.grabElements(el,tid); jQuery.formTabs.makeTitlesClickable(tid); jQuery.formTabs.setAllContentsInactive(tid); jQuery.formTabs.setTitleActive(startindex,tid); jQuery.formTabs.setContentActive(startindex,tid); }); }, grabElements: function(el,tid) { var children = jQuery(el).children(); children.each(function(index, child) { if (index == 0) jQuery.formTabs.tabTitles[tid] = jQuery(child).find('a'); else if (index == 1) jQuery.formTabs.tabContents[tid] = jQuery(child).children(); }); }, setAllTitlesInactive: function (tid) { this.tabTitles[tid].each(function(index, title) { jQuery(title).removeClass('active'); }); }, setTitleActive: function (index,tid) { index = parseInt(index); if (tid == 'rsform_directory_tab') document.getElementById('ptab').value = index; jQuery(this.tabTitles[tid][index]).addClass('active'); }, setAllContentsInactive: function (tid) { this.tabContents[tid].each(function(index, content) { jQuery(content).addClass('rsfp-hidden'); }); }, setContentActive: function (index,tid) { index = parseInt(index); jQuery(this.tabContents[tid][index]).removeClass('rsfp-hidden'); }, makeTitlesClickable: function (tid) { this.tabTitles[tid].each(function(index, title) { jQuery(title).click(function () { jQuery.formTabs.setAllTitlesInactive(tid); jQuery.formTabs.setTitleActive(index,tid); jQuery.formTabs.setAllContentsInactive(tid); jQuery.formTabs.setContentActive(index,tid); }); }); } }; jQuery.fn.extend({ formTabs: jQuery.formTabs.build }); function tidyOrderDir() { stateLoading(); var params = []; var orders = document.getElementsByName('dirorder[]'); var cids = document.getElementsByName('dircid[]'); var formId = document.getElementById('formId').value; for (var i = 0; i < orders.length; i++) { params.push('cid[' + cids[i].value + ']=' + parseInt(i + 1)); orders[i].value = i + 1; } params.push('formId='+formId); var xml = buildXmlHttp(); var url = 'index.php?option=com_rsform&task=directory.saveordering'; xml.open("POST", url, true); params = params.join('&'); //Send the proper header information along with the request xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send(params); xml.onreadystatechange = function() { if (xml.readyState === 4) { dirAutogenerateLayout(); stateDone(); } } } function dirAutoGenerate() { stateLoading(); var params = []; var cids = document.getElementsByName('dirindetails[]'); var orders = document.getElementsByName('dirorder[]'); var formId = document.getElementById('formId').value; for (var i = 0; i < cids.length; i++) { params.push('cid[' + cids[i].value + ']=' + (cids[i].checked ? '1' : '0')); params.push('order[' + cids[i].value + ']=' + parseInt(i + 1)); orders[i].value = i + 1; } params.push('formId='+formId); var xml = buildXmlHttp(); var url = 'index.php?option=com_rsform&task=directory.savedetails'; xml.open("POST", url, true); params = params.join('&'); //Send the proper header information along with the request xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send(params); xml.onreadystatechange = function() { if (xml.readyState === 4) { dirAutogenerateLayout(); stateDone(); } } } function changeDirectoryAutoGenerateLayout(value) { stateLoading(); var layoutName = document.querySelector('[name="jform[ViewLayoutName]"]:checked').value; var formId = document.getElementById('formId').value; value = parseInt(value); var xml = buildXmlHttp(); xml.onreadystatechange = function () { if (xml.readyState === 4) { document.getElementById('ViewLayout').readOnly = value === 1; setCodeMirrorReadonly('ViewLayout', value === 1); Joomla.removeMessages(); if (value === 0) { Joomla.renderMessages({'warning': [Joomla.JText._('RSFP_SUBM_DIR_AUTOGENERATE_LAYOUT_DISABLED')]}); } stateDone(); } }; var data = [ 'task=directory.changeAutoGenerateLayout', 'formId=' + formId, 'status=' + value, 'ViewLayoutName=' + layoutName ]; xml.open('POST', 'index.php?option=com_rsform', true); xml.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xml.send(data.join('&')); } function saveDirectoryLayoutName(layoutName) { stateLoading(); var formId = document.getElementById('formId').value; var xml = buildXmlHttp(); var data = [ 'task=directory.savename', 'formId=' + formId, 'ViewLayoutName=' + layoutName ]; xml.open('POST', 'index.php?option=com_rsform', true); xml.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xml.send(data.join('&')); xml.onreadystatechange = function () { if (xml.readyState === 4) { dirAutogenerateLayout(); stateDone(); } } } function generateDirectoryLayout(alert) { if (alert && !confirm(Joomla.JText._('RSFP_AUTOGENERATE_LAYOUT_WARNING_SURE'))) { return; } var formId = document.getElementById('formId').value; var layoutName = document.querySelector('[name="jform[ViewLayoutName]"]:checked').value; var hideEmptyValues = document.querySelector('[name="jform[HideEmptyValues]"]:checked').value; var showGoogleMap = document.querySelector('[name="jform[ShowGoogleMap]"]:checked').value; stateLoading(); var xml = buildXmlHttp(); xml.onreadystatechange = function () { if (xml.readyState === 4) { document.getElementById('ViewLayout').value = xml.responseText; if (typeof Joomla.editors.instances['ViewLayout'] != 'undefined') { Joomla.editors.instances['ViewLayout'].setValue(xml.responseText); } stateDone(); } }; var data = [ 'task=directory.generate', 'layoutName=' + layoutName, 'formId=' + formId, 'hideEmptyValues=' + hideEmptyValues, 'showGoogleMap=' + showGoogleMap ]; xml.open('POST', 'index.php?option=com_rsform', true); xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send(data.join('&')); } function saveDirectorySetting(settingName, settingValue) { stateLoading(); var formId = document.getElementById('formId').value; var xml = buildXmlHttp(); var data = [ 'task=directory.savesetting', 'formId=' + formId, 'settingName=' + settingName, 'settingValue=' + settingValue ]; xml.open('POST', 'index.php?option=com_rsform', true); xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xml.send(data.join('&')); xml.onreadystatechange = function () { if (xml.readyState === 4) { dirAutogenerateLayout(); stateDone(); } } } function dirAutogenerateLayout() { if (document.querySelector('[name="jform[ViewLayoutAutogenerate]"]:checked').value === '1') { generateDirectoryLayout(false); } } function dirSelectAll(what) { var $elements = jQuery(document.getElementsByName(what + '[]')); var $checkbox = jQuery(document.getElementById(what + 'check')); $elements.prop('checked', $checkbox.prop('checked')); } jQuery(document).ready(function($){ $('#rsform_directory_tab').formTabs(document.getElementById('ptab').value); $('#dirSubmissionsTable tbody').tableDnD({ onDragClass: 'rsform_dragged', onDragStop: function (table, row) { tidyOrderDir(); } }); toggleQuickAdd(); if (document.querySelector('[name="jform[ViewLayoutAutogenerate]"]:checked').value === '0') { Joomla.renderMessages({'warning': [Joomla.JText._('RSFP_SUBM_DIR_AUTOGENERATE_LAYOUT_DISABLED')]}); } });