public static function chatpanel()
    {
        $t = time();
        ?>
<style>
    .chatpanel{
        position: fixed;
        bottom: 0px;
        left: 0px;
        z-index: 100;
        width: 100%;
    }
    .chatpanelbox{
        float: right;
        text-align: center;
       // width: 100px;
        background-color: #efefef; 
        line-height: 30px;
        height: 30px;
        border-top: 1px solid #dedede;
        width: 50px;      
        border-left: 1px solid #dedede;
        border-right: 1px solid #dedede;
        border-bottom: 1px solid #dedede;
        padding-left: 10px;
        padding-right: 10px;
    }
    .chatpanelbaloon{
        float: right;
        width: 300px;
        //height: 300px;
        //overflow-y: auto;
        background-color: #dedede;
        display:none;
    }
    .mygroup-item{
        padding: 5px;
        background-color: #efefef;
        border-bottom: 1px dotted #dedede;
    }
    .mygroup-item-header{
        background-color: #005f8d;
        color:white;
        padding-left: 10px;  
        padding-right:5px;
        height: 30px;
        line-height: 30px;
    }
    #mygroup_chatlist{
        height: 300px;
        overflow-y: auto;
        width: 100%;
    }
    #chatinputtext{
        border-top: 1px solid #dedede;
        background-color: #efefef;       
        border-left: 1px solid #dedede;
        border-right: 1px solid #dedede;
        height:50px;
        margin-right: 50px;
        display: none;
    }
.badge1 {
   position:relative;
}
.badge1[data-badge]:after {
   content:attr(data-badge);
   position:absolute;
   top:-9px;
   right:-7px;
   font-size:.7em;
   background:red;
   color:white;
   width:15px;height:15px;
   text-align:center;
   line-height:15px;
   border-radius:50%;
   box-shadow:0 0 1px #333;
}
.groupchat_viewmore{
    width: 100%;
    padding: 10px;
    text-align: center;
    background-color: #cccccc;
    font-style:italic;
    cursor:pointer;
}
#chatpanelbaloon{
    margin-bottom:30px;
}
.myusercheckbox,.usercheckbox{
    background-color: #efefef;
    border-radius: 5px;
    margin-bottom: 10px;
}
.chatmember{
    float:left;
    padding: 10px; margin: 5px;
    background-color: #dedede;
    border-radius: 5px;
}
</style>
<div style="padding:5px; margin-top: 10px;clear: both;">&nbsp;</div>
<div id="chatpanel" class="chatpanel">
    <div class="container">
        <div class="chatpanelbox">
            <i style="cursor:pointer;" onclick="showmygroup();" class="glyphicon glyphicon-comment badge1"></i> 
            <span id="envelopebaloon" class="badge1" data-badge="" style="display:none;">&nbsp;</span>
            <!--|  <i onclick="showaddgroupchat();" class="glyphicon glyphicon-plus"></i>-->
        </div>
        <div id="chatinputtext" >
            <div style="padding-top:8px;" class="col-md-12">
                <div style="padding-left: 10px; padding-right: 10px;">
                <div class="input-group">
                    <input id="sendChatText" type="text" class="form-control">
                    <span class="input-group-btn">
                      <button id="sendChatButton" class="btn btn-default" type="button"><?php 
        echo Lang::t('Send');
        ?>
</button>
                    </span>
                  </div><!-- /input-group -->
                  <script>
                      $('#sendChatButton').click(function(){
                          process_chatmsg();
                      });
                      $("#sendChatText").keyup(function (event) {
                            if (event.keyCode == 13) { 
                                //on enter
                                process_chatmsg();
                            } 
                        });
                 // sendReplyMsg
                  </script>
                </div>
            </div>
        </div>
        
    </div>
</div>  
<div id="chatpanelbaloon" class="chatpanel">
    <div class="container">
        <div id="chatpanelbaloon2" class="chatpanelbaloon">
            <div id="mygroupchat" style="display:none;">
                <div class="mygroup-item-header">
                    <div style="float:right; width: 40px;">
                        <?php 
        BootstrapUX::createModal('Create Chat Group', _SPPATH . "ChatMsgGroupWeb/selectMember?t=" . $t);
        ?>
                        <i style="cursor:pointer;" class="glyphicon glyphicon-remove" onclick="showmygroup();"></i>
                    </div>
                        <?php 
        echo Lang::t('My Group Chat');
        ?>
 
                </div>
                <div id="mygroup_chatlist">
                    
                </div>
                
            </div>
            <div style="display:none; " class="chatboxrooms" id="groupchatmainbox">
                
            </div>
            <div id="selectChatmember" style="display:none;">
                <div class="mygroup-item-header"><?php 
        echo Lang::t('Select Member');
        ?>
</div>
                <div class="mygroup-item">member1</div>
                <div class="mygroup-item">member2</div>
                <div class="mygroup-item">member3</div>
            </div>
            
        </div>
        
    </div>
</div>


<script>
    var active_chat_baloon = '';
    var chatMemberArr = [];
    var chatMemberArrName = [];
    var alreadyLoad = 0;
    var active_gid = 0;
    var latest_entry = -1;
    var loaded_gid = [];
    function showmygroup(){
        
        if(active_chat_baloon != 'mygroupchat'){
            showGroupProcess();
            active_chat_baloon = "mygroupchat";
        }
        else{
           hideBaloon();
        }
        
        
    }
    function hideBaloon(){
         $('#selectChatmember').hide();
            $('#mygroupchat').hide();
            $('#chatpanelbaloon2').hide();
            active_chat_baloon = "";
    }
    function showGroupProcess(){
            $('#selectChatmember').hide();
            $('#mygroupchat').show();
            $('#chatpanelbaloon2').show();
            $("#groupchatmainbox").hide()
            //load my group chat
            loadGroupChatProcess();
    }
    function loadGroupChatProcess(){
        if(!alreadyLoad){
            $.ajax({
                //timeout: 35000,
                url: "<?php 
        echo _SPPATH;
        ?>
ChatMsgGroupWeb/getMyGroup?t=<?php 
        echo $t;
        ?>
",
                success: function(data){
                    $("#mygroup_chatlist").empty().html(data);
                    //scroll2Bottom();
                }, 
                global: false     // this makes sure ajaxStart is not triggered
                //dataType: 'json',
                //complete: longpoll
            });
        }
        //$("#mygroup_chatlist").load("<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/getMyGroup?t=<?php 
        echo $t;
        ?>
");
        
        alreadyLoad = 1;
    }
    function showaddgroupchat(){
       // $('#chatpanelbaloon2').toggle();
        //$('#selectChatmember').toggle();
        
        if(active_chat_baloon != 'selectChatmember'){
            $('#selectChatmember').show();
            $('#mygroupchat').hide();
            $('#chatpanelbaloon2').show();
            active_chat_baloon = "selectChatmember";
            
        }
        else{
            $('#selectChatmember').hide();
            $('#mygroupchat').hide();
            $('#chatpanelbaloon2').hide();
            active_chat_baloon = "";
        }
        
    }
    function carikanMember(t){
        //alert('in'+t);
        var slc = $("#searchmemberBox"+t).val();
        $("#memberes"+t).load("<?php 
        echo _SPPATH;
        ?>
ChatMsgGroupWeb/searchMember?qi="+slc+"&t="+t);
    }
    function carikanMemberBaru(t,gid){
        //alert('in'+t);
        var slc = $("#searchmemberBox"+t).val();
        $("#memberes"+t).load("<?php 
        echo _SPPATH;
        ?>
ChatMsgGroupWeb/searchMemberBaru?qi="+slc+"&gid="+gid+"&t="+t);
    }
    function addToMemberArr(id,name,t){
        var pos = jQuery.inArray( id, chatMemberArr );
        var gobj = {id:id,name:name};
        if(pos<0){
            chatMemberArr.push(id);
            chatMemberArrName.push(gobj);
        }
        else{
            chatMemberArr.splice(pos,1);
            chatMemberArrName.splice(pos,1);
        }
        updateViewArrMember(t);
        console.log(chatMemberArr);
        console.log(chatMemberArrName);
        
    }
    function emptyChatMemberArr(){
        chatMemberArr = [];
        chatMemberArrName = [];
    }
    function updateViewArrMember(t){
        $('#membergroup'+t).empty();
        for(var x in chatMemberArrName){
            var obj = chatMemberArrName[x];
            $('#membergroup'+t).append("<div class='chatmember'>"+obj.name+"</div>");
            
        }
        $('#arrMember'+t).val(chatMemberArr.join());
    }
    function activateChatMode(){
        $("#footer").hide();
        hideBaloon();
        doSlideHeader();
        $("#chatinputtext").show();
        $("#chatpanelbaloon").css({'margin-bottom':"50px"});
    }
    function deActivateChatMode(){
        doSlideDownHeader();
        $("#chatinputtext").hide();
        $("#footer").show();
        $("#chatpanelbaloon").css({'margin-bottom':"0px"});
    }
    function scroll2Bottom(){
        $("html, body").animate({ scrollTop: $(document).height() }, "slow");
    }
    function chatleap_setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}
function chatleap_getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
    }
    return "";
}

function process_chatmsg(){
    var slc = $('#sendChatText').val();
    if(slc!=""){
        $.post("<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/sendReplyMsg",{inboxid:active_gid,isi:slc},function(data){
            $('#sendChatText').val('');
            $.get('<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/getLastEntries?latest='+latest_entry+"&gid="+active_gid,function(data){
                $('#chatboxcontainer').append(data);
                scroll2Bottom();
            });

            //activateChatMode();
              //active_gid = '<?php 
        echo $gr->group_id;
        ?>
';
             // lwrefresh('groupchat');

            //openLw('groupchat','<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/loadGroupChat?t='+$.now()+'&gid='+active_gid,'fade');
        });
    }else{
        alert('<?php 
        echo Lang::t("Text must not empty");
        ?>
');
    }
}

function close_group_chat(gid){

    if(confirm("<?php 
        echo Lang::t('This will delete this group chat and its contents');
        ?>
"))
    $.post("<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/closeGroup",{inboxid:gid},function(data){
        console.log(data);
            if(data.bool){
                lwclose(selected_page);
                alreadyLoad = 0;
                loadGroupChatProcess();
            }else{
                alert(data.err);
            }
        },'json');
}
function leave_group_chat(gid){
    if(confirm("<?php 
        echo Lang::t('Are you sure you want to leave this chatroom?');
        ?>
"))
    $.post("<?php 
        echo _SPPATH;
        ?>
ChatMsgWeb/leaveGroup",{inboxid:gid},function(data){
        console.log(data);
            if(data.bool){
                lwclose(selected_page);
                alreadyLoad = 0;
                loadGroupChatProcess();
            }else{
                alert(data.err);
            }
        },'json');
}
function invite_group_chat(gid){
    
}
</script>
        <?php 
    }
    public function loadFolder()
    {
        $tid = isset($_GET['tid']) ? addslashes($_GET['tid']) : die('no ID');
        $t = isset($_GET['t']) ? addslashes($_GET['t']) : die('no t');
        /*
         * sort
         */
        if (!isset($_SESSION['loadFolderSort'])) {
            $_SESSION['loadFolderSort'] = "name";
        }
        $sortBy = isset($_GET['sortBy']) ? addslashes($_GET['sortBy']) : $_SESSION['loadFolderSort'];
        $_SESSION['loadFolderSort'] = $sortBy;
        $ftext = " ORDER BY folder_name ASC ";
        $dtext = " ORDER BY file_url ASC ";
        if ($sortBy == "type") {
            $dtext = " ORDER BY file_ext ASC,file_url ASC ";
        }
        if ($sortBy == "date") {
            $dtext = " ORDER BY file_date ASC,file_url ASC ";
            $ftext = " ORDER BY folder_date ASC,folder_name ASC ";
        }
        /*
         * search
         */
        $sdtext = "";
        $sftext = "";
        $search = isset($_GET['search']) ? addslashes(urldecode($_GET['search'])) : '';
        //echo $search;
        if ($search != '') {
            $sftext = " folder_name LIKE '%{$search}%'";
            $sdtext = " ( file_url LIKE '%{$search}%' OR file_isi  LIKE '%{$search}%' )";
        }
        $_SESSION['loadFolderSearch'] = $search;
        $full = isset($_GET['full']) ? addslashes($_GET['full']) : 0;
        if ($full && $search != '') {
            //ambil semua anak2 dari semua folder...dan search accordingly
            if ($tid < 1) {
                //folder paling luar langsung saja keluarkan semuanya...
                $df = new DocumentsPortalFolder();
                $arr = $df->getWhere(" {$sftext} {$ftext} ");
                $ff = new DocumentsPortal();
                $arrfiles = $ff->getWhere(" {$sdtext} {$dtext}");
            } else {
                if ($sdtext != "") {
                    $sdtext = " AND " . $sdtext;
                }
                if ($sftext != "") {
                    $sftext = " AND " . $sftext;
                }
                //get semua child foldernya
                $df = new DocumentsPortalFolder();
                $arrChildFolder = $this->findChildren($tid);
                //pr($arrChildFolder);
                $result = array_unique(explode(",", $arrChildFolder));
                //pr($result);
                $arrFtext = array("folder_parent_id = '{$tid}'");
                $arrDtext = array("file_folder_id = '{$tid}'");
                foreach ($result as $r) {
                    $arrFtext[] = "folder_parent_id = '{$r}'";
                    $arrDtext[] = "file_folder_id = '{$r}'";
                }
                $ands = implode(" OR ", $arrFtext);
                $ands = "(" . $ands . ")";
                //echo $ands." $sftext $ftextbr <br><br>";
                $df = new DocumentsPortalFolder();
                $arr = $df->getWhere(" {$ands} {$sftext} {$ftext} ");
                //pr($arr);
                $andsf = implode(" OR ", $arrDtext);
                $andsf = "(" . $andsf . ")";
                //echo "  $andsf $sdtext $dtext <br>";
                $ff = new DocumentsPortal();
                $arrfiles = $ff->getWhere(" {$andsf} {$sdtext} {$dtext}");
            }
        } else {
            if ($sdtext != "") {
                $sdtext = " AND " . $sdtext;
            }
            if ($sftext != "") {
                $sftext = " AND " . $sftext;
            }
            $df = new DocumentsPortalFolder();
            $arr = $df->getWhere("folder_parent_id = '{$tid}' {$sftext} {$ftext} ");
            $ff = new DocumentsPortal();
            $arrfiles = $ff->getWhere(" file_folder_id = '{$tid}' {$sdtext} {$dtext}");
        }
        ?>

<style>
    .findet{
        background-color:yellow;
    }
    </style>
         <?php 
        foreach ($arr as $f) {
            ?>
<div class="folderdoc-item">
    <div class="foldername">

        <div  title="<?php 
            echo Lang::t('Expand Folder');
            ?>
" class='foldername-plus' id="foldername_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
">
            <i class="ficon glyphicon glyphicon-expand"></i>
        </div>
        <div title="<?php 
            echo Lang::t('View Folder in a new Page');
            ?>
" class="foldername-text">
            <i style="cursor:pointer;" class="glyphicon glyphicon-folder-close" onclick="winBaru4ByPass('UploadDoc_<?php 
            echo $f->folder_id;
            ?>
','<?php 
            echo _SPPATH;
            ?>
DMWeb/upload?t=<?php 
            echo $t;
            ?>
&tid=<?php 
            echo $f->folder_id;
            ?>
','fade');"></i>   &nbsp;   <span  ondblclick="this.contentEditable=true;this.className='inEdit';" onblur="this.contentEditable=false;this.className='';saveFolderName_<?php 
            echo $t;
            ?>
('<?php 
            echo $f->folder_id;
            ?>
');" id="foldernameedit_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
">
            <?php 
            $xx = $f->folder_name;
            if ($search != '') {
                $xx = str_ireplace($search, "<i class='findet'>" . $search . "</i>", $f->folder_name);
            }
            echo $xx;
            ?>
            </span>
            <?php 
            //if not view only
            if ($_SESSION['DocumentPortal_view_only'] < 1) {
                ?>
        <?php 
                //BootstrapUX::createModal(Lang::t('Choose Destination Folder'), _SPPATH."DMWeb/movefile?t=".$t."&tid=".$f->folder_id, "glyphicon glyphicon-retweet",$f->folder_id."_folder");
                ?>
        <?php 
                BootstrapUX::createModal(Lang::t('Edit Folder [' . $f->folder_name . ']'), _SPPATH . "DMWeb/editfolder?t=" . $t . "&tid=" . $f->folder_id, "glyphicon glyphicon-edit muda", $f->folder_id . "_folderedit");
                ?>
            
            
            
    <?php 
            }
            ?>
    <?php 
            if ($search != '') {
                //search mode
                ?>
            <span class="location">
                
            </span>    
        <?php 
            }
            ?>
        </div>
    </div>
<div id="folders_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
" class="folderPortal" style="display:none;" >
</div>

</div>
<script>
    $("#foldername_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
").click(function(){

        if($("#folders_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
").css("display") == "none"){
            $("#folders_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
").show();
            activeTID_<?php 
            echo $t;
            ?>
 = <?php 
            echo $f->folder_id;
            ?>
;


            $("#foldername_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
 i.ficon").removeClass("glyphicon glyphicon-expand").addClass("glyphicon glyphicon-collapse-down");
            if(jQuery.inArray(<?php 
            echo $f->folder_id;
            ?>
, activeHistory_<?php 
            echo $t;
            ?>
)!==-1){
                loadfolder_<?php 
            echo $t;
            ?>
('<?php 
            echo $f->folder_id;
            ?>
');
            }else{
                console.log(jQuery.inArray('<?php 
            echo $f->folder_id;
            ?>
', activeHistory_<?php 
            echo $t;
            ?>
));
                loadfolder_<?php 
            echo $t;
            ?>
('<?php 
            echo $f->folder_id;
            ?>
');
                activeHistory_<?php 
            echo $t;
            ?>
.push(activeTID_<?php 
            echo $t;
            ?>
);
                console.log(activeHistory_<?php 
            echo $t;
            ?>
);
            }
        }else{
            $("#folders_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
").hide();
            activeTID_<?php 
            echo $t;
            ?>
 = <?php 
            echo $f->folder_parent_id;
            ?>
;
            $("#foldername_<?php 
            echo $f->folder_id;
            ?>
_<?php 
            echo $t;
            ?>
 i.ficon").removeClass("glyphicon glyphicon-collapse-down").addClass("glyphicon glyphicon-expand");
        }
        markActiveFolder_<?php 
            echo $t;
            ?>
();
    });
</script>
            <?php 
        }
        foreach ($arrfiles as $fil) {
            $arrParents = $fil->findAllParents();
            //pr($arrParents);
            //pr($p);
            $arrpar = array();
            $arrParents = array_reverse($arrParents);
            foreach ($arrParents as $par) {
                $arrpar[] = "<span style='cursor:pointer;text-decoration:underline;' onclick=\"winBaru4ByPass('UploadDoc_" . $par->folder_id . "','" . _SPPATH . "DMWeb/upload?t=" . $t . "&tid=" . $par->folder_id . "','fade');\">" . $par->folder_name . "</span>";
            }
            $strpar = implode(" / ", $arrpar);
            ?>
<div class="filedoc">
    <i class="glyphicon glyphicon-list-alt"></i> &nbsp;
    <!-- benerin file viewer -->
    <?php 
            $url = "dm";
            $link = _SPPATH . "InputFileWeb/show?gurl=" . $url . "&id=" . $fil->file_id;
            $onclick = "onclick=\"openLw('DocViewer','" . $link . "','fade');\"";
            if ($_SESSION['DocumentPortal_view_only']) {
                $link = _SPPATH . "docviewer?gurl=" . $url . "&id=" . $fil->file_id;
                $onclick = "onclick=\"window.open('" . $link . "','_blank');\"";
            }
            ?>
    <!--<a href="<?php 
            echo _SPPATH;
            echo $fil->upload_url;
            echo $fil->file_filename;
            ?>
" target="_blank">-->
    <a style="cursor:pointer;" <?php 
            echo $onclick;
            ?>
>
        <?php 
            $xx = $fil->file_url;
            if ($search != '') {
                $xx = str_ireplace($search, "<i class='findet'>" . $search . "</i>", $fil->file_url);
            }
            echo $xx;
            ?>
    
    </a>
    <?php 
            //if not view only
            if ($_SESSION['DocumentPortal_view_only'] < 1) {
                ?>
    <i id="deletefile_<?php 
                echo $fil->file_id;
                ?>
_<?php 
                echo $t;
                ?>
" class="glyphicon glyphicon-remove-sign"></i>
    <?php 
                //BootstrapUX::createModal(Lang::t('Choose Destination Folder'), _SPPATH."DMWeb/movefile?fid=".$fil->file_id."&t=".$t."&tid=".$tid, "glyphicon glyphicon-retweet",$fil->file_id);
                ?>
    <?php 
                BootstrapUX::createModal(Lang::t($fil->file_url), _SPPATH . "DMWeb/editfile?fid=" . $fil->file_id . "&t=" . $t . "&tid=" . $tid, "glyphicon glyphicon-edit muda", $fil->file_id . "_fileedit");
                ?>
    
    <?php 
            }
            ?>
    <?php 
            if ($search != '') {
                //search mode
                ?>
    <span class="location" style="font-style: italic;font-size: 12px;">
                <?php 
                echo $strpar;
                ?>
            </span>    
        <?php 
            }
            ?>
</div>
<?php 
            if ($_SESSION['DocumentPortal_view_only'] < 1) {
                ?>
<script>
$("#deletefile_<?php 
                echo $fil->file_id;
                ?>
_<?php 
                echo $t;
                ?>
").click(function(){
    if(confirm("<?php 
                echo Lang::t('Are you sure? This action is not undoable');
                ?>
")){
        $.get("<?php 
                echo _SPPATH;
                ?>
DMWeb/deleteFile?t=<?php 
                echo $t;
                ?>
&fid=<?php 
                echo $fil->file_id;
                ?>
",function(data){
            winBaru4ByPass("UploadDoc_<?php 
                echo $tid;
                ?>
","<?php 
                echo _SPPATH;
                ?>
DMWeb/upload?tid=<?php 
                echo $tid;
                ?>
&t=<?php 
                echo $t;
                ?>
");
        });
    }
});
</script>
<?php 
            }
            ?>
             <?php 
        }
    }