// usage: $(div_id_2).update(AA_Config.loader);
var AA_Config = {
AA_INSTAL_PATH: '/apc-aa/',
SESS_NAME: '',
SESS_ID: '',
loader: '',
icon_new: '',
icon_close: ''
}
// now AA specific functions
function AA_HtmlToggle(link_id, link_text_1, div_id_1, link_text_2, div_id_2) {
if ( $(jqid(div_id_1)).is(':visible') ) {
$(jqid(div_id_1)).hide('fast');
$(jqid(div_id_2)).show('fast');
$(jqid(link_id)).html(link_text_2);
$(jqid(link_id)).addClass("is-on");
} else {
$(jqid(div_id_2)).hide('fast');
$(jqid(div_id_1)).show('fast');
$(jqid(link_id)).html(link_text_1);
$(jqid(link_id)).removeClass("is-on");
}
}
function AA_HtmlToggleCss(link_id, link_text_1, link_text_2, selector) {
var link = jqid(link_id);
if ( $(link).hasClass('is-on')) {
$(selector).hide('fast');
$(link).html(link_text_1);
$(link).toggleClass('is-on');
} else {
$(selector).show('fast');
$(link).toggleClass('is-on');
$(link).html(link_text_2);
}
}
function AA_Ajax(div_id, url, param, onload) {
AA_AjaxCss(jqid(div_id), url, param, onload);
}
function AA_AjaxCss(selector, url, param, onload) {
$(selector).hide('fast');
$(selector).html(AA_Config.loader);
$(selector).show('fast');
$(selector).load(url, param, onload);
}
/** selector_update is optional and is good for updating table rows, where we want to show/hide tr, but update td */
function AA_HtmlAjaxToggleCss(link_id, link_text_1, link_text_2, selector_hide, url, selector_update) {
var link = jqid(link_id);
if ( $(link).hasClass('is-on')) {
$(selector_hide).hide('fast');
$(link).html(link_text_1);
$(link).toggleClass('is-on');
} else {
$(selector_hide).show('fast');
$(link).toggleClass('is-on');
// not loaded from remote url, yet?
if ( !$(link).hasClass('aa-loaded')) {
$(link).addClass('aa-loaded');
AA_AjaxCss(selector_update ? selector_update : selector_hide, url);
}
$(link).html(link_text_2);
}
}
function AA_HtmlAjaxToggle(link_id, link_text_1, div_id_1, link_text_2, div_id_2, url) {
if ( $(jqid(div_id_1)).is(':visible') ) {
$(jqid(div_id_1)).hide('fast');
$(jqid(div_id_2)).show('fast');
// not loaded from remote url, yet?
if ( $(jqid(div_id_2)).attr('data-aa-loaded') != '1') {
$(jqid(div_id_2)).attr('data-aa-loaded', '1');
AA_Ajax(div_id_2, url);
}
$(jqid(link_id)).html(link_text_2);
} else {
$(jqid(div_id_2)).hide('fast');
$(jqid(div_id_1)).show('fast');
$(jqid(link_id)).html(link_text_1);
}
}
/** calls AA responder with permissions of current user and displays returned
* html code into div_id
* Usage:
* FrmSelectEasy('from_slice', $slice_array, $from_slice, 'onchange="DisplayAaResponse(\'fieldselection\', \'Get_Fields\', {slice_id:this.options[this.selectedIndex].value})"');
* echo '
';
**/
function DisplayAaResponse(div_id, method, params) {
var sess = (AA_Config.SESS_NAME != '') ? AA_Config.SESS_NAME + '=' + AA_Config.SESS_ID : 'AA_CP_Session=' + GetCookie('AA_Sess');
AA_AjaxCss(jqid(div_id), AA_Config.AA_INSTAL_PATH + 'central/responder.php?' + sess + '&command='+ method, {parameters: params});
}
function AA_Response(method, resp_params, ok_func, err_func) {
var sess = (AA_Config.SESS_NAME != '') ? AA_Config.SESS_NAME + '=' + AA_Config.SESS_ID : 'AA_CP_Session=' + GetCookie('AA_Sess');
$.post(AA_Config.AA_INSTAL_PATH + 'central/responder.php?' + sess + '&command='+ method, resp_params, function(data) {
if ( data.substring(0,5) == 'Error' ) {
if (typeof err_func != "undefined") {
err_func(data);
}
} else {
if (typeof ok_func != "undefined") {
ok_func(data);
}
}
});
}
function AA_Refresh(id,inside,ok_func) {
AA_Ajax(id, $(jqid(id)).attr('data-aa-url'));
}
/** Send the form by AJAX and on success displays the ok_html text
* @param id - form id
* @param refresh - id of the html element, which you want to refresh.
* - Such element must have data-aa-url attributes
* @param ok_html - function to call after the page update
* Note, that the form action atribute must be RELATIVE (not with 'http://...')
*/
function AA_SendForm(id, refresh, ok_func) {
var form_id = jqid(id);
// browser supports HTML5 validation
if (typeof $(form_id)[0].checkValidity == 'function') {
if (!$(form_id)[0].checkValidity()) {
// $(form_id)[0].submit();
// AA_StateChange(base_id, 'invalid');
return;
}
}
var url = $(form_id).attr('action');
$(form_id).append(AA_Config.loader);
var code = $(form_id + ' *').serialize();
$.post( url, code).always( function() {
if (typeof refresh != "undefined") {
AA_Refresh(refresh,false,ok_func);
}
})
}
/** Sends the form and replaces the form with the response
* Polls ussage - @see: http://actionapps.org/en/Polls_Module#AJAX_Polls_Design
*/
function AA_AjaxSendForm(form_id, url) {
var filler_url = url || 'modules/polls/poll.php3'; // by default it is used for Polls
if (filler_url.charAt(0)!='/') {
filler_url = AA_Config.AA_INSTAL_PATH + filler_url; // AA link
}
var valdiv = jqid(form_id);
var code = $(valdiv + ' *').serialize();
$(valdiv).append(AA_Config.loader);
$.post(filler_url, code, function(data) {
$(valdiv).attr("data-aa-edited", "0");
$(valdiv).html(data);
});
}
function displayInput(valdivid, item_id, fid) {
var valdiv = jqid(valdivid);
// already editing ?
switch ($(valdiv).attr('data-aa-edited')) {
case '1': return;
case '2': $(valdiv).attr("data-aa-edited", "0"); // the state 2 is needed for Firefox 3.0 - Storno not works
return;
}
$(valdiv).attr("data-aa-oldval", $(valdiv).html());
$(valdiv).html(AA_Config.loader);
AA_Response('Get_Widget', { field_id: fid, item_id: item_id }, function(data) {
var valdiv = jqid(valdivid);
$(valdiv).attr('data-aa-edited', '1');
$(valdiv).html(data);
var aa_input = $(valdiv).children('select,textarea,input').first();
$(aa_input).focus(); // select the input field (