function userControll ( view, command, param, target ){
    new TextRequest( 'pages/dues/_controll_user.php', 
        createControllParam ( view, command, param ), target ? target : 'contentText' ).todo( true );
}

function adminControll ( view, command, param, target ){
    new TextRequest( 'pages/dues/_controll_admin.php', 
        createControllParam ( view, command, param ), target ? target : 'contentText' ).todo( true );
}

function createControllParam ( view, command, param ){
    var result = '';
    result = addParam ( result, 'view', view );
    result = addParam ( result, 'CMD', command );
    result += param ? ( result.length > 0 ? '&' : '') + param : '';
    return result;
}

function addParam ( paramFrag, name, value ){
    var result = paramFrag;
    if ( value && value.length > 0 ){
        if ( result.length > 0 ){
            result += '&';
        } 
        result += name + '=' + encodeURIComponent (value);
    } 
    return result;
}

//LoginBean
function getLoginParam (){
    var usr = jQuery.trim( $( "#username" ).val() ) == 'Felhasználói név...' ? 'NULL_VALUE' : getFieldValue ( 'username' );
    
    return 'CMD=Login&username=' + usr + 
    '&password=' + getFieldValue ( 'password' );
}

function loadDataForRow ( url, selectedId, fill ){
    new TextRequest( url, (fill?'CMD=FillUser&':'')+'selectedid='+selectedId+'&mode=list&selectedmemberid=-1&selecteddueid=-1', 'editor' ).todo( true );
}

function selectRow ( tableId, rowIndex ){
    byId('message').innerHTML = '&nbsp;';
    var table = byId( tableId );
    var className = null;
    for ( var i = 1; i < table.rows.length; i++ ){
        className = (i == rowIndex ? 'selectedRow' : ( i % 2 == 0 ? 'oddRow' : 'evenRow' )) + 
        (table.rows[i].className.indexOf( 'noneMember') == -1 ? '' : ' noneMember');
        table.rows[i].className = className;
    }
}

function deleteUsers ( chbPrefix ){
    var checkedList = getCheckedList ( chbPrefix, '|' );
    showConfirm( 'Felhasználó(k) törlése', 'Biztosan törölni kívánja  a kijelölt felhasználó(ka)t?', function (){
        adminControll ( null, 'DeleteUser', 'deletables='+checkedList );
    });
}

function deleteDue (){
    showConfirm( 'Befizetés törlése', 'Biztosan törölni szeretné a kijelölt befizetést?', function (){
        adminControll ( 'modul.userlist.php', 'DeleteDue', '' );
    });
}

function exitMember ( selectedmemberid ){
    showConfirm( 'Kilépés', 'Biztosan kilépteti a felhasználót az egyesületb\u0151l?', function (){
        adminControll(  'modul.userlist.php', 'ExitMember', 'selectedmemberid='+selectedmemberid );
    });
}

function deleteMember (){
    showConfirm( 'Tagság törlése', 'A tagság törlésekor törl\u0151dnek a tagsághoz kapcsolódó'+
        ' befizetések is!<br>&nbsp;<br>Biztosan törli a felhasználó tagságát?', function (){
            adminControll(  'modul.userlist.php', 'DeleteMember', '' );
        });
}

function getCheckedList ( chbPrefix, delim ){
    var result = '';
    var obj = null;
    for ( var i = 0; ; i++ ){
        obj = byId( chbPrefix+i );
        if ( obj ){
            if ( obj.className == 'checkboxChecked' ){
                if ( result.length > 0 ){
                    result += delim;
                }
                result += obj.lang;
            }
        } else {
            break;
        }
    }
    return result;
}

function invSel (idPrefix){
    var obj = null;
    for ( var i = 0; ; i++ ){
        obj = byId( idPrefix+i );
        if ( obj ){
            obj.className = obj.className == 'checkbox' ? 'checkboxChecked' : 'checkbox';
        } else {
            break;
        }
    }
}

function allSel (idPrefix){
    var obj = null;
    for ( var i = 0; ; i++ ){
        obj = byId( idPrefix+i );
        if ( obj ){
            obj.className = 'checkboxChecked';
        } else {
            break;
        }
    }
}

function getFieldValue ( id ){
    var result = byId( id ) ? byId( id ).value : null;
    if ( !result || result.length == 0 ){
        result = 'NULL_VALUE';
    }
    return encodeURIComponent(jQuery.trim( result ));
}

function insertDue ( franchise ){
    var param = 'CMD=InsertDue'
    + '&year='+getFieldValue ( 'year' ) 
    + '&total='+(franchise == 1 ? '0' : getFieldValue ( 'total' ) )
    + '&comment='+(franchise == 1 ? getFieldValue ( 'comment' ) : 'NULL_VALUE' )
    + '&franchise='+franchise;
    new TextRequest( 'pages/dues/frag.duelist.php', param, 'editor' ).todo( true );
}

function getUserDataParam (){
    //szemelyes adatok
    var result = 'fullname=' + getFieldValue( 'fullname' ) +
    '&nameprefix=' + getFieldValue( 'nameprefix' ) + 
    '&username=' + getFieldValue( 'username' ) + 
    '&password=' + getFieldValue( 'password' ) +
    //elerhetoseg
    '&institute=' + getFieldValue( 'institute' ) +
    '&email=' + getFieldValue( 'email' )+
    '&address=' + getFieldValue( 'address' ) +
    '&statement=' + (byId( 'stm_1' ).checked ? '1' : ( byId( 'stm_0' ).checked ? '0' : 'NULL_VALUE' ))+
    '&tel=' + getFieldValue( 'tel' ) +
    '&post=' + getFieldValue( 'post' ) +
    //egyeb
    '&admin=' + (byId( 'admin' ).className == 'checkboxChecked' ? '1' : '0');
    if ( byId( 'createmember' ) ){
        result += '&createmember='+(byId( 'createmember' ).className == 'checkboxChecked' ? '1' : '0');
    }
    return result;
}

function clearUserDatas (myData){
    if ( !myData ){
        byId('fullname' ).value='';
        byId('admin' ).checked = false;
    }
    byId('username' ).value='';
    byId('password' ).value='';
    byId('institute' ).value='';
    byId('email' ).value='';
    byId('address' ).value='';
    byId('post' ).value='';
    byId('stm_1' ).checked = true;
    byId('tel' ).value='';
    
}

function setDisabledButtons ( _disabled ){
    var btn = byId('insertUserBtn');
    if ( btn ){
        btn.disabled = _disabled;
    }
    btn = byId('updateUserBtn');
    if ( btn ){
        btn.disabled = _disabled;
    }
}

function getMemberParams (){
    var result = 'begin=' + getFieldValue( 'beginDisplay' ) +
    '&end=' + getFieldValue( 'endDisplay' ) + 
    '&comment=' + getFieldValue( 'comment' );
    return result;
}

function loadFragMember ( params ){
    new TextRequest( 'pages/dues/frag.memberlist.php', params, 'member' ).todo( true );
}

function loadFragDue ( params ){
    new TextRequest( 'pages/dues/frag.duelist.php', params, 'editor' ).todo( true );
}

function insertMember (){
    loadFragMember( 'CMD=FillMember&selectedmemberid=-1&showdialog=1');
}

function showDialog ( dialogType ){
    new TextRequest ('pages/dues/frag.due.edit.php', 'dialogtype='+dialogType, 'dialog').todo( true );
}

function loadReportUserList ( year, rowIndex ){
    selectRow ( 'reporttable', rowIndex );
    new TextRequest ('pages/dues/frag.report.userlist.php', 'filter=NULL_VALUE&pageindex=0&selectedyear='+year, 'reportuserlist').todo( true );
}

function setReportUserListType ( listtype ){
    new TextRequest ('pages/dues/frag.report.userlist.php', '&pageindex=0&listtype='+listtype, 'reportuserlist').todo( true );
}

function setReportUserListFilter (){
    new TextRequest ('pages/dues/frag.report.userlist.php', 'pageindex=0&filter='+getFieldValue('filter'), 'reportuserlist').todo( true );
}

function setReportUserListpageindex ( pageindex ){
    new TextRequest ('pages/dues/frag.report.userlist.php', 'pageindex='+pageindex, 'reportuserlist').todo( true );
}

function showConfirm ( _title, text, okFnc, cancelFnc ){
    var cd = jQuery('<div/>', {  
        id: 'myconfirm',  
        title: _title,
        width:'auto',
        html:text
    }); 
    if ( !okFnc ){
        okFnc = function(){};
    }
    if ( !cancelFnc ){
        cancelFnc = function(){};
    }
    cd.appendTo( $(document) );
    var dConf = {
        buttons:{
            "Ok":function (){
                okFnc();
                $(this).dialog( "close" );
                $(this).remove();
            },
            "Mégsem":function (){
                cancelFnc ();
                $(this).dialog( "close" );
                $(this).remove();
            }
        },
        modal:true,
        resizable:false,
        open: function() {
            $(this).parent().children().children("a.ui-dialog-titlebar-close").remove();
        }
    }
    cd.dialog( dConf );
}


function showAlert ( _title, text, okFnc ){
    var cd = jQuery('<div/>', {  
        id: 'myconfirm',
        width:'auto',
        title: _title,
        html:text
    }); 
    if ( !okFnc ){
        okFnc = function(){};
    }
    cd.appendTo( $(document) );
    var dConf = {
        buttons:{
            "Ok":function (){
                okFnc();
                $(this).dialog( "close" );
                $(this).remove();
            }
        },
        modal:true,
        resizable:false,
        open: function() {
            $(this).parent().children().children("a.ui-dialog-titlebar-close").remove();
        }
    }
    cd.dialog( dConf );
}

function resetFields (){
    adminControll ( null, null, 'CMD=FillUser&selectedid=-1' );
}

function clickOnCheckBox ( source ){
    source.className = source.className == 'checkbox' ? 'checkboxChecked' : 'checkbox';
}

function insertUser (){
    var text = 'A felhasználóhoz <b>automatikusan tagság</b> vehet\u0151 fel, amely kezdete a mai nap!<br>&nbsp;<br>'+
    '<table><tr><td><div id="createmember" class="checkboxChecked" onclick="clickOnCheckBox(this);"></td>'+
    '<td class="checkboxText">'+
    'tagság automatikus felvétele a mai nappal'+
    '</td></div></tr></table>';
    var okFnc = function() {
        adminControll ( 'modul.userlist.php', 'InsertUser', getUserDataParam() );
    };
    var cancelFnc = function() {
        byId( 'message' ).innerHTML = '<div class="msgWarning">A m\u0171velet az adminisztrátor által megszakítva!</div>';
    };
    showConfirm ( 'Új felhasználó', text, okFnc, cancelFnc );
}

function searchMember (){
    var adminview = byId('adminview') ? (byId('adminview').className == 'checkboxChecked' ? 1 : 0) : 0;
    loadTarget ( 'pages/dues/_membersearch.php', 'adminview='+adminview+'&filter='+ jQuery.trim( getFieldValue ( 'filter' ) ) );
}

function showUrlInDialog(url, userid){
    options = {};
    var tag = $("<div></div>"); //This tag will the hold the dialog content.
    $.ajax({
        url: url,
        type: 'POST',
        data:'userid='+userid,
        success: function(data, textStatus, jqXHR) {
            tag.html(data).dialog({
                modal: true, 
                width:'auto',
                resizable:false,
                title: 'Tag szakmai adatai'
            }).dialog('open');
        //$.isFunction(options.success) && (options.success)(data, textStatus, jqXHR);
        }
    });
}

function setMemberStatement ( fullname, userid, statement ){
    var text = 'Biztosan megváltoztatja "'+fullname+'" tag nyilatkozatát, és ';
    if ( statement == 1 ){
        text += 'megjeleníti szakmai adatait?';
    } else {
        text += 'elrejti szakmai adatait?';
    }
    var okFnc = function (){
        loadTarget ( 'pages/dues/_membersearch.php', 'CMD=SetMemberStatement&userid='+userid+'&statement='+statement );
    };
    var cancelFnc = function (){
        
    };
    showConfirm ( 'Tag nyiltkozata', text, okFnc, cancelFnc );
}
