

function ajaxContent() {

    var id = $(this).attr('id');

    var resourceUrl = $('#'+ id + '_ajax_table .resourceUrl').html();
    var params = $('#'+ id + '_ajax_table .params').html();
    var target = $('#'+ id + '_ajax_table .target').html();
    var validationScope = $('#'+ id + '_ajax_table .validationScope').html();
    var initFunction = $('#'+ id + '_ajax_table .initFunction').html();
    var successFunction = $('#'+ id + '_ajax_table .successFunction').html();
    var failureFunction = $('#'+ id + '_ajax_table .failureFunction').html();
    var successPopup = $('#'+ id + '_ajax_table .successPopup').html();
    var failurePopup = $('#'+ id + '_ajax_table .failurePopup').html();

    var result = true;

    if ( !isEmpty(validationScope) ) result = validateForm( validationScope );

    if ( result && !isEmpty(initFunction) ) result = eval( initFunction + "()" );

    if ( !result ) return false;

    params = parseParams( params );

    startSearch();

    $.ajax({
        async:true,
        url: resourceUrl,
        data: params,
        type: 'POST',
        timeoutNumber: 15000,                      
        success: function(content) { processSuccess(target,content,successFunction,successPopup) },
        error: function(content) { processFailure( content.responseText , failureFunction , failurePopup ) }
    });

    return true;

}

function ajaxSimpleForm() {

    var id = $(this).attr('id');

    var resourceUrl = $('#'+ id + '_ajax_table .resourceUrl').html();
    var params = $('#'+ id + '_ajax_table .params').html();
    var validationScope = $('#'+ id + '_ajax_table .validationScope').html();
    var initFunction = $('#'+ id + '_ajax_table .initFunction').html();
    var successFunction = $('#'+ id + '_ajax_table .successFunction').html();
    var failureFunction = $('#'+ id + '_ajax_table .failureFunction').html();
    var searchOverlay = $('#'+ id + '_ajax_table .searchOverlay').html();
    var successPopup = $('#'+ id + '_ajax_table .successPopup').html();
    var failurePopup = $('#'+ id + '_ajax_table .failurePopup').html();

    var result = true;

    if ( !isEmpty(validationScope) ) result = validateForm( validationScope );

    if ( result && !isEmpty(initFunction) ) result = eval( initFunction + "()" );

    if ( !result ) return false;

    params = parseParams( params );

    if ( searchOverlay == 'true' ) startSearch();

    $.ajax({
        async:true,
        url: resourceUrl,
        data: params,
        type: 'POST',
        timeoutNumber: 15000,
        success: function(content) { processFailure( content, successFunction, successPopup ) },
        error: function(content) { processFailure( content.responseText , failureFunction, failurePopup ) }
    });

    return true;

}

function ajaxForm() {

    var id = $(this).attr('id');

    var resourceUrl = $('#'+ id + '_ajax_table .resourceUrl').html();
    var params = $('#'+ id + '_ajax_table .params').html();
    var validationScope = $('#'+ id + '_ajax_table .validationScope').html();
    var searchOverlay = $('#'+ id + '_ajax_table .searchOverlay').html();
    var initFunction = $('#'+ id + '_ajax_table .initFunction').html();
    var postReloadFunction = $('#'+ id + '_ajax_table .postReloadFunction').html();
    var elementsToReload = $('#'+ id + '_ajax_table .elementsToReload').html();
    var showStatus = $('#'+ id + '_ajax_table .showStatus').html();
    var reloadPage = $('#'+ id + '_ajax_table .reloadPage').html();
    var redirectUrl = $('#'+ id + '_ajax_table .redirectUrl').html();

    var result = true;

    if ( !isEmpty(validationScope) ) result = validateForm( validationScope );

    if ( result && !isEmpty(initFunction) ) result = eval( initFunction + "()" );

    if ( !result ) return false;

    params = parseParams( params );

    if ( searchOverlay == 'true' ) startSearch();

    $.ajax({
        async:true,
        url: resourceUrl,
        data: params,
        type: 'POST',
        timeoutNumber: 15000,
        success: function(content) { processAjaxSuccess( postReloadFunction, showStatus, content, reloadPage, elementsToReload, redirectUrl ) },
        error: function(content) { processAjaxError( postReloadFunction, showStatus, content.responseText ) }
    });

    return true;

}

function ajaxSelect() {

    var id = $(this).attr('id');
    var resourceUrl = $('#'+ id + '_ajax_table .resourceUrl').html();
    var target = $('#'+ id + '_ajax_table .target').html();
    var successFunction = $('#'+ id + '_ajax_table .successFunction').html();
    var failureFunction = $('#'+ id + '_ajax_table .failureFunction').html();

    startSearch();

    $.ajax({
        async:false,
        url: resourceUrl,
        data: ({id:$(this).val(), operation: 'delivery'}),
        type: 'POST',
        timeoutNumber: 15000,
        success: function(content) { processSuccess( target, content, successFunction) },
        error: function(content) { processFailure( content.responseText , failureFunction ) }
    });

    return true;

}

function processSuccess( target, content, successFunction, successPopup ) {

    hideSearch();

    $('#'+target).html( content );

    if ( !isEmpty(successFunction) ) eval( successFunction + "()" );

    if ( !isEmpty(successPopup) ) jQuery.facebox({ ajax: successPopup });

}

function processFailure( content, failureFunction, failurePopup ) {

    hideSearch();

    if ( !isEmpty(failureFunction) ) eval( failureFunction + '(\''+content+'\')' );

    if ( !isEmpty(failurePopup) ) jQuery.facebox({ ajax: failurePopup });

}

function processAjaxSuccess( postReloadFunction, showStatus, responseText, reloadPage, elementsToReload, redirectUrl ) {

    hideSearch();

    if ( !isEmpty(postReloadFunction) ) {

        eval( postReloadFunction + '(\''+responseText+'\')' );

    } else {

        var reload = false;

        if ( reloadPage == 'true' ) reload = true;
        if ( showStatus == 'true' ) openStatusPopup( 'success', responseText, reload, redirectUrl );

    }
}

function processAjaxError( postReloadFunction, showStatus, responseText ) {

    hideSearch();

    if ( !isEmpty(postReloadFunction) ) {

        eval( postReloadFunction + '(\''+responseText+'\')' );

    } else {

        if ( showStatus == 'true' ) openStatusPopup( 'warning', responseText, false, '' );

    }

}

function parseParams( paramsString ) {

    var paramsArray = paramsString.split(',');
    var result = new Object();

    for( var x = 0 ; x < paramsArray.length ; x++ ) {

        var param = paramsArray[x].split('=');

        if ( param[1].substring(0,1) == '#' )
            param[1] = $(param[1]).val();

        result[param[0]] = param[1];

    }

    return result;

}

function startSearch() {
    $('#search_overlay').show();
    $('#search_overlay .loading').css({
        top:    getPageScroll()[1] + (getPageHeight() / 2)

    });
}
function hideSearch() {
    $('#search_overlay').hide();
}

