function delSingleRecord(chiediConferma, clientID, IDRecord) {
    var go = true;
    if (chiediConferma == true) {
        go = confirm('Sicuro di voler eliminare il record selezionato?');
    }
    if (go == true)
        __doPostBack(clientID, '$del$' + IDRecord);
}


function selectrow(row, ch_id, IDRecord) {
    var t = row.parentElement;
    var i = 0;
    for (i = 0; i < t.rows.length; i++)
        t.rows[i].style.backgroundColor = '';

    row.style.backgroundColor = 'yellow';
    document.getElementById(ch_id).value = IDRecord;
}

function el_set_filter(e, el_ClientID) {

    var inputs = $$('#' + el_ClientID + ' input.el_filterinput');
    var h_FilterConfig = $$('#' + el_ClientID + ' input.wp_el_FilterConfig')[0];
    var filterValue = '';

    var i = 0;
    for (i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        if (input.value.trim() != '') {
            filterValue += '\t' + input.getProperty('fieldname') + '\t' + input.value + '\t' + input.getProperty('fieldtype');
        }
    }

    if (filterValue.substring(0, 1) == '\t') {
        filterValue = filterValue.substring(1);

    }
    h_FilterConfig.value = filterValue;

}

function el_set_pager(e, el_ClientID, pageNumber) {


    //quando il reload è dovuto all'invio sui filtri, la pagina corrente non viene esplicitamente scelta,
    //pageNumber è dunque undefined e passo al server il valore correntemente memorizzato (numerico o stringa vuota) in h_PagerConfig
    if ($defined(pageNumber)) {
        var h_PagerConfig = $$('#' + el_ClientID + ' input.wp_el_PagerConfig')[0];
        h_PagerConfig.value = pageNumber.toString();
    }


}

function el_set_order(e, el_ClientID, orderClientID) {
    //orderClientID = client ID del controllo div su cui ho fatto click per ordinare
    if ($defined(orderClientID)) {
        var h_OrderConfig = $$('#' + el_ClientID + ' input.wp_el_OrderConfig')[0];
        var ctlOrder = $(orderClientID);
        var newOrderClause = ctlOrder.getProperty('fieldname') + ' ' + ctlOrder.getProperty('wpDir')

        if (!e.shift) {
            h_OrderConfig.value = newOrderClause;
        }
        else {
            h_OrderConfig.value = (h_OrderConfig.value == '' ? newOrderClause : h_OrderConfig.value + ',' + newOrderClause);
        }


    }

}

function el_reload(e, el_ClientID, pageNumber, orderClientID) {

    //e è l'evento. Può essere null, ad es. sui click della paginazione perchè
    //non uso eventi ma l'attributo onclick.

    el_set_order(e, el_ClientID, orderClientID);
    el_set_filter(e, el_ClientID);
    el_set_pager(e, el_ClientID, pageNumber);

    //blockSubmitOnEnter = true;
    __doPostBack('', '');
}



var monitor_initEntityList = 0;
function initEntityList() {

    if (monitor_initEntityList == 0) {

        monitor_initEntityList = 1;

        var z = 0;

        for (z = 0; z < elList.length; z++) {

            var el = $(elList[z]);
            if ($defined(el)) {


                if (el.getSize().x > 0) {

                    var hPanel = el.getElement('.wp_el_headerPanel');
                    var dPanel = el.getElement('.wp_el_dataPanel');

                    var tblHeader = el.getElement('.wp_el_headerTable');
                    var tblData = el.getElement('.wp_el_dataTable');

                    if (!$defined(tblHeader) || !$defined(tblData)) {
                        monitor_initEntityList = 0;
                        return;
                    }


                    var tblHeader_tBody = tblHeader.getChildren()[0];
                    var tblData_tBody = tblData.getChildren()[0];

                    if (!$defined(tblHeader_tBody) || !$defined(tblData_tBody)) {
                        monitor_initEntityList = 0;
                        return;
                    }

                    var DataRowCount = tblData_tBody.getChildren().length - 1; //tolgo il footer

                    var headerRow = tblHeader_tBody.getChildren()[0];
                    var dataRow = tblData_tBody.getChildren()[DataRowCount - 1];

                    if (!$defined(headerRow) || !$defined(dataRow)) {
                        monitor_initEntityList = 0;
                        return;
                    }

                    var maxWidths = new Array();
                    var hWidths = new Array();
                    var dWidths = new Array();

                    var paddingLeft = headerRow.getChildren()[0].getStyle('padding-left').toInt();
                    var paddingRight = headerRow.getChildren()[0].getStyle('padding-right').toInt();
                    var totPadding = paddingLeft + paddingRight;

                    var borderLeft = headerRow.getChildren()[0].getStyle('border-left-width').toInt();
                    var borderRight = headerRow.getChildren()[0].getStyle('border-right-width').toInt();
                    var totBorder = borderLeft + borderRight;

                    var cellCount = headerRow.getChildren().length;

                    var filterInputs = new Array();
                    if (tblHeader_tBody.getChildren().length > 1) {
                        var filterRow = tblHeader_tBody.getChildren()[1];
                        filterInputs = filterRow.getElements('input');

                        for (i = 0; i < filterInputs.length; i++) {
                            filterInputs[i].setStyle('width', '0px');
                        }
                    }


                    for (i = 0; i < cellCount; i++) {
                        hWidths[i] = headerRow.getChildren()[i].getSize().x - totPadding - totBorder;

                        //come larghezza della colonna corrente dei dati - di indice i - prendo il massimo tra la dimensione automatica e quella forzatamente specificata.
                        dWidths[i] = Math.max(dataRow.getChildren()[i].getSize().x - totPadding - totBorder, dataRow.getChildren()[i].getProperty('wp_width').toInt());
                    }

                    for (i = 0; i < cellCount; i++) {
                        maxWidths[i] = Math.max(hWidths[i], dWidths[i]);
                        maxWidths[i] = Math.max(maxWidths[i], 0);
                    }


                    var sum = 0;
                    var sizes = new Array();



                    for (i = 0; i < maxWidths.length; i++) {
                        headerRow.getChildren()[i].setStyle('width', maxWidths[i] + 'px');
                        dataRow.getChildren()[i].setStyle('width', maxWidths[i] + 'px');
                    }

                    //sistemazione textbox filtri
                    if (tblHeader_tBody.getChildren().length > 1) {
                        var filterRow = tblHeader_tBody.getChildren()[1];
                        for (i = 0; i < filterRow.getChildren().length; i++) {
                            var cell = filterRow.getChildren()[i];
                            var txt = cell.getElement('input');

                            if ($defined(txt)) {
                                txt.setStyle('width', (maxWidths[i] - 4) + 'px');
                            }


                        }
                    }




                    for (i = 0; i < maxWidths.length; i++) {
                        sum += maxWidths[i] + totPadding + totBorder;
                    }

                    tblHeader.setStyle('width', sum + 'px');
                    tblData.setStyle('width', sum + 'px');



                    var body = $$('body')[0];

                    var divWidth;
                    var divHeight;
                    var divHeaderWidth;

                    if (sum < body.getDimensions().x) {
                        divWidth = sum + 17;
                    }
                    else {
                        divWidth = body.getDimensions().x;
                        divWidth -= 12;
                    }

                    divHeaderWidth = divWidth - 17;


                    var height = el.getProperty('wp_height').toInt();

                    if (height == -1) {
                        divHeight = body.getDimensions().y;
                        divHeight -= dPanel.getPosition().y;

                    }
                    else {

                        divHeight = height;

                    }

                 
                    
                    el.getElement('.wp_el_toolbar').setStyle('width', divHeaderWidth + 'px')


                   
                    
                    hPanel.setStyle('width', divHeaderWidth + 'px');
                    dPanel.setStyle('width', divWidth + 'px');
                    dPanel.setStyle('height', Math.max(divHeight, 200) + 'px'); //200 è comunque un valore minimo

                    dPanel.setProperty('el_id', el.id)


                    dPanel.removeEvents('scroll');
                    if (sum + 17 > divWidth) { //tengo un po' di pixel di sicurezza

                        var f = function() { var div = $($(this).getProperty('el_id')); div.getElement('.wp_el_headerPanel').getChildren()[0].setStyle('margin-left', '-' + div.getElement('.wp_el_dataPanel').scrollLeft.toInt() + 'px'); }

                        dPanel.addEvent('scroll', f);




                    }



                }
            }
        }
        monitor_initEntityList = 0;
    }

}