Intermittent Dupicate or triplicate divs in File Browser API using JS, JQuery

my function.js that display the home directory of the selected project.

function getDisplayPath(){

/*Below are variables declared for shortcut copntrol on iframe*/
var iframe                     = $("#idisplay").contents().find("span.data");
var href_src                   = $("#idisplay").contents().find("a#src_path");
var adirUp                     = $("#idisplay").contents().find("a#dirUp");
var dirUpImg                   = $("#idisplay").contents().find("a#dirUp img");
var displayContent             = $("#idisplay").contents().find("a#displayContent");
var displayImg                 = $("#idisplay").contents().find("img#folder");
var fileList                   = $("#idisplay").contents().find("a#fileList");
var filesize                   = $("#idisplay").contents().find("span#filesize");
var filedate                   = $("#idisplay").contents().find("span#filedate");
var filenames                  = $("#idisplay").contents().find("span#filename");
var fileListIcon               = $("#idisplay").contents().find("img#icon");
var dirUp                      = $("#idisplay").contents().find("div#dirUp");
var foldersdetail              = $("#idisplay").contents().find("div#homedirs");
var subfolders              = $("#idisplay").contents().find("div#homefolder");
var filesdetail                = $("#idisplay").contents().find("div#homefiles");
var anken_id                   = $("select option:selected").val();
var hostname                   = "https://info.tmj.jp/dev2-sync/index.php/getpath/";
var datapage                   = hostname + anken_id;

    $.getJSON( datapage, function( data ) {
      var items        = [];
      var foldercount  = [];
      var folders      = [];
      var filedetails  = [];
      var filecount    = [];
      // var divId        = [];

      $.each( data, function( key, val ) {
         items.push('<a>' + val.anken_src_path + '<br>');
         foldercount.push(val.foldercnt);
         filecount.push(val.filecnt);
         // fileType.push(folderImage(val.imageSrc.folder));            
         // alert(val.imageSrc.folder);
            for (var i = 0; i<foldercount; i++) {
                 // folders.push(val.folderDetail[i]);
                 folders.push(foldersDisplay(val.folderDetail[i], val.homefolderName[i]));
                 // divId.push(addDivId(val.newfolderName[i]));
                 
            };
            for (var i = 0; i<filecount; i++) {
                  // alert(i);
                  // alert(val.fileDetail[i]);
                  filedetails.push(filesDisplay(val.fileDetail[i]));
             };
          });

        if($(anken_id).change()){
            $(iframe).empty();
            $( "<a>", {
                  "class": "my-new-list",
                  html: items.join('')
            }).appendTo(iframe).html();

            $(foldersdetail).empty();
            $(foldersdetail).appendEach(folders);
            // $(foldersdetail).appendEach(divId);


            $(filesdetail).empty();
            $(filesdetail).appendEach(filedetails);    

            // var sublinkDiv = $(foldersdetail).find("div#sublink")
            // for (var i = 0; i < sublinkDiv.length; i++) {
            //     // alert(sublinkDiv.length);
            //     return $(foldersdetail).find("div#sublink a").prepend(fileType);
            // }

                    
            
        }        

});

    // JQUERY PLUGIN: I append each jQuery object (in array of
    // jQuery objects) to the currently selected collection.
    jQuery.fn.appendEach = function( arrayOfWrappers ){

        // Map the array of jQuery objects to an array of
        // raw DOM nodes.
        var rawArray = jQuery.map(
            arrayOfWrappers,
            function( value, index ){

                // Return the unwrapped version. This will return
                // the underlying DOM nodes contained within each
                // jQuery value.
                return( value.get() );

            }
        );

        // Add the raw DOM array to the current collection.
        this.append( rawArray );

        // Return this reference to maintain method chaining.
        return( this );

    };        

    function foldersDisplay(foldernames, newId) {

        return (
               // $("<div class='homefolder'>" + foldernames + "</div>")
               $("<div id="+newId+">" + foldernames + "</div>")
           );
    }

    function filesDisplay(filenames) {
        return (
               $( "<div>" + filenames + "</div>" )
           );
    }

    // function folderImage(folderimg){
    //     return(
    //             $("<img src=" +folderimg+ ">")
    //         );
    // }

}


my showcontent.js where I encounter the propblem. This displays all the subdirectories on my directories using recursive function.

$(function(){

$("#homedirs").delegate("#homefolder", "click", function(event){
    event.preventDefault();
    event.stopPropagation(); 
    var location             = $(this).attr('id');
    var directory            = $(this).find('img').attr('id');
    var projectId            = $(this).find('img').attr('class');
    var mydivs               = $("div a#homefolder");
    var subHomeDir           = $( this ).find('span').attr('id');
    var homecheck1              = $(this).siblings().is('.contentFolders');
    var homecheck2              = $(this).siblings().is('.contentFiles');

    getmain(projectId, directory, mydivs, subHomeDir, homecheck1, homecheck2);
});

 $("#homedirs").delegate(".contentFolders", "click", function(event){
     
     var projectId                    = $('#homefolder').find('img').attr('class');
     var contentdivs                  = $(".contentFolders");
     var location                     = $(this).find('a').attr('id');
     var nextSubDir                   = $(this).attr('id');
     var parentDirectory              = $(this).find('img').attr('id');
     var refDirectory                 = $(this).children().attr('class');
     var childDirectory               = $(this).attr('id');

     var filecheck1                       = $(this).children().is('.contentFolders');
    var filecheck2                      = $(this).children().is('.contentFiles');

    // $(document).ready(function(){
        var filecheck3                     = $(this).children().next().is('.contentFolders');
        var filecheck4                     = $(this).children().next().is('.contentFiles');
        var filecheckFolderA             = ($(this).children().next().attr('id'));
        var filecheckFolderB             = ($(this).children().next().attr('class'));

        alert("CLASS EXIST: " +$(this).children().children().attr('class'));

        // alert("HTML : " +$(this).html());
        // alert("CHECKER: " +$(this).children().next().html());

        // alert("FILECHECK 3 : " + $(this).children().next().attr('id'));
        // alert("FILECHECK 4 : " + $(this).children().next().attr('class'));
    
         if(!($(this).children().next().attr('class'))){
         // if(!($(this).children().children().attr('class'))){
         //     alert("FILECHECK 3 : " + $(this).children().next().attr('id'));
            // alert("FILECHECK 4 : " + $(this).children().next().attr('class'));
             getsub(location, projectId, parentDirectory, childDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB);
             return false;
         }

     // });
        return false;

 });

function getmain (id, mainDirectory, mydivs, subHomeDir, homecheck1, homecheck2){

    var dirname        = mainDirectory;
    var id                = id;
    var homeFolderDivs = mydivs;

    getDirectoryList(null, id, dirname, homeFolderDivs, subHomeDir, homecheck1, homecheck2);
}

function getsub (locate, id, mainDirectory, subDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){

    var dirname = mainDirectory;
    var id = id;

    getDirectoryList(locate, id, dirname, null, null, null, null, subDirectory, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB);
}

function getDirectoryList(locate, id, mainDir, homeFolderDivs, subHomeDir, homecheck1, homecheck2, subDir, nextSubDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){

    var nextSubDir       = nextSubDir;
    var filecheck1       = filecheck1; 
    var filecheck2       = filecheck2;
    var filecheckFolderA = filecheckFolderA;
    var filecheckFolderB = filecheckFolderB;
    var refDirectory     = refDirectory;
    var homeFolderDivs   = homeFolderDivs;


    if(locate){
        var hostname     = "https://info.tmj.jp/dev2-sync/index.php/getsub/";
        var dirpage      = $.trim(hostname+id+'?dir=/'+mainDir+subDir);
    }else{
        var hostname     = "https://info.tmj.jp/dev2-sync/index.php/getsub/";
        var dirpage      = $.trim(hostname+id+'?dir=/'+mainDir);
    }
    // alert(dirpage);
    $.getJSON( dirpage, function(data){

        var directorycount  = [];
        var directories     = [];
        var filedetails     = [];
        var filecount       = [];
        var isCondir        = [];
        var dirNames        = [];
        $.each(data, function(key, val){

            directorycount.push(val.foldercnt);
            filecount.push(val.filecnt);
            isCondir.push(val.dotdotdir);

            for (var i = 0; i<directorycount; i++){
                directories.push(foldersDisplay(val.folderDetail[i], val.homefolderName[i]));
                dirNames.push(val.homefolderName[i]);
            };
            for (var i = 0; i<filecount; i++){
                filedetails.push(filesDisplay(val.fileDetail[i]));
            };
        });
        
        if (isCondir != "/") {
            displaySubDirectories(directories, filedetails, directorycount, filecount, dirNames, nextSubDir, mainDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB)
        }else{
            displayHomeDirectories(directories, filedetails, homeFolderDivs, subHomeDir, homecheck1, homecheck2)
        }
        
    });
}

function displayHomeDirectories(directories, filedetails, homeFolderDivs, subHomeDir,  homecheck1, homecheck2){    

    for (var i = 0; i < homeFolderDivs.length; i++){
        var parentDir = ($(homeFolderDivs[i]).find('span').attr('id'));
        if(subHomeDir === parentDir){
            if((!homecheck1) && (!homecheck2)){
                $('div a#homefolder')
                .filter(function( index ){
                    return index === i;
                }).after(filedetails)
                  .after(directories);
            }                    
        }                
    }              
}

function displaySubDirectories(directories, filedetails, directorycount, filecount, dirNames, nextSubDir, mainDir, filecheck1, filecheck2, refDirectory, filecheckFolderA, filecheckFolderB){
     var contentdivs = $("div a#contentFolders").filter('.'+refDirectory);

     if((!filecheckFolderA) && (!filecheckFolderB)){

         alert("nextSubDir " + nextSubDir + " DIRECTORY COUNT IS: " + directorycount + " and FILE COUNT" + filecount);
         if(directorycount == ""){
             directorycount = 0;                     
         }else if((filecount == "")){
             filecount = 0; 
         }
         var documentCounter = parseInt(directorycount) + parseFloat(filecount);
         alert("Total DOCUMENT CUNT IS: " + documentCounter);

        for (var i = 0; i<contentdivs.length; i++){
            var parentDir = ($(contentdivs[i]).children().next().next().attr('id'));
            if(nextSubDir === parentDir){
                if((!filecheck1) && (!filecheck2)){
                    // $("div a#contentFolders").children('img').addClass("exist");
                    $("div a#contentFolders").filter('.'+refDirectory).eq(i).after(filedetails).after(directories);
                    return false;
                }                                        
            }            
        }
    }              
}

function showhide(){
    /*If the image is plus. When the sublink is clicked. Below function will change the plus image to minus*/    
    if($('.homefolder img#showhide').hasClass('plus')){
        $('.homefolder img#showhide').removeClass('plus');
        $('.homefolder img#showhide').addClass('minus');
    }

    /*Below image will toggel or hide and show the subdir linnk list.*/
    $(".homefolder img").click(function(event){
        event.preventDefault();
        if($('.homefolder img#showhide').hasClass('minus')){
            $('.homefolder img#showhide').removeClass('minus');
            $('.homefolder img#showhide').addClass('plus');
            // var mydivs    = $("div.contentFolders");
            // for (var i = 0; i < mydivs.length; i++){
            //     alert(i);
            //     alert(mydivs);
            // };
            // alert($('.contentFolders').children().children().contains('.app'));
            // var spanid    = $(this).parent().next().parent().attr('id').is(imgId).hide();
            // var imgId     = $(this).parent().parent().attr('id');
            // alert("SPAN ID is:" + spanid + "& IMAGE ID is:" + imgId);
            // alert("TEST:" + ($(spanid).next().attr('class')));
            // if(spanid === imgId){
            //         alert("IMAGE ID is:" + imgId);
            //         // $('.contentFolders').hide();
            //         var imgId = '#'+imgId;
            //         $(this).parent().next().parent().attr('id').is(imgId).hide();    
            // };
            // $('.contentFolders').hide();    
            // $('.contentFiles').hide();
        }else {
            $('.homefolder img#showhide').removeClass('plus');
            $('.homefolder img#showhide').addClass('minus');
            // $('.contentFolders').show();    
            // $('.contentFiles').show();
        }
        if($('.contentFolders img#showhide').hasClass('plus')){
            $('.contentFolders img#showhide').removeClass('minus');
            $('.contentFolders img#showhide').addClass('plus');
            // $('.contentFolders').hide();    
            // $('.contentFiles').hide();
        }else {
            $('.contentFolders img#showhide').removeClass('minus');
            $('.contentFolders img#showhide').addClass('plus');
            // $('.contentFolders').show();    
            // $('.contentFiles').show();
        }
        
    });

}

jQuery.fn.appendEach = function( arrayOfWrappers ){
    var rawArray = jQuery.map(
        arrayOfWrappers,
        function( value, index ){
            return( value.get() );
        });
    this.append( rawArray );
    return( this );
};

function foldersDisplay(directorynames, newId) {
    return (
        $( "<div class='contentFolders' id="+newId+">" + directorynames + "</div>" ).css({"margin-left":"20px"})
        // $("<></input>")
    );
}

function filesDisplay(filenames) {
    return (
        $( "<div class='contentFiles'>" + filenames + "</div>" ).css({"margin-left":"20px"})
    );
}

return false;

});

Thanks once again,
Warly